From 43403fc3d51efe557570bb5a06daced2b09fb408 Mon Sep 17 00:00:00 2001
From: Jamie Birch <14055146+shirakaba@users.noreply.github.com>
Date: Sat, 24 Jul 2021 22:48:13 +0100
Subject: [PATCH 1/7] Update README.md
---
README.md | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/README.md b/README.md
index 1ec15d9f..335b37eb 100644
--- a/README.md
+++ b/README.md
@@ -146,17 +146,6 @@ React NativeScript shares most of the good parts of React Native, but above all
Javascript VM threading
From 06af237dbfd2cee6ffa7bf98a19c410e5a8ae8c0 Mon Sep 17 00:00:00 2001
From: wSedlacek
Date: Sat, 30 Jul 2022 13:15:39 -0700
Subject: [PATCH 2/7] chore: update README.md
---
README.md | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 335b37eb..bc182439 100644
--- a/README.md
+++ b/README.md
@@ -49,8 +49,8 @@ tns run android
## Documentation
-* [React NativeScript docs](https://react-nativescript.netlify.com)
-* [NativeScript docs](https://docs.nativescript.org/start/introduction)
+- [React NativeScript docs](https://react-nativescript.netlify.com)
+- [NativeScript docs](https://docs.nativescript.org/introduction.html)
## Example real-world app
@@ -85,7 +85,6 @@ One example is my `rpstrackerrns` issue-tracking example app, which demonstrates
-
## Plugins
Although NativeScript lets you write native code inline as JavaScript, you can also write modules purely using native code (e.g. Objective-C and Java), and access the code directly in NativeScript via JavaScript. When a common, cross-platform JavaScript API is provided for such modules, it is called a "plugin", and can be thought of as equivalent to a React Native "native module". NativeScript has a rich ecosystem of these plugins β see the [NativeScript Marketplace](https://market.nativescript.org/?tab=plugins).
@@ -252,7 +251,7 @@ It's based on React, NativeScript Core, and NativeScript Vue, which are each ind
**Can this consume React Native projects?**
-No, but it *could* with a lot of hard work. Allowing React NativeScript to run projects that were written for React Native is a huge project, but it's theoretically very possible β it would be a project on exactly the same scale as [React Native Web](https://github.com/necolas/react-native-web). See [react-nativescript-compat-react-native](https://github.com/shirakaba/react-nativescript-compat-react-native) for work towards this, where I've ported part of RNTester as a proof-of-concept... π©βπ¬π¨βπ¬
+No, but it _could_ with a lot of hard work. Allowing React NativeScript to run projects that were written for React Native is a huge project, but it's theoretically very possible β it would be a project on exactly the same scale as [React Native Web](https://github.com/necolas/react-native-web). See [react-nativescript-compat-react-native](https://github.com/shirakaba/react-nativescript-compat-react-native) for work towards this, where I've ported part of RNTester as a proof-of-concept... π©βπ¬π¨βπ¬
**Can this consume React Native native modules?**
@@ -262,4 +261,4 @@ StanisΕaw Chmiela ([@sjchmiela](https://twitter.com/sjchmiela)) produced a [pro
## Contributing πββοΈ
-Ideally get in contact via the [Slack channel](https://nativescriptcommunity.slack.com/messages/CJ2B77CJ1/) before starting any PRs!
+Ideally get in contact via the [Discord chanel](https://discord.gg/kcTwmBUuTE) before starting any PRs!
From 55527949bfee2adeb71ebe9f26cbacbe8c926009 Mon Sep 17 00:00:00 2001
From: wSedlacek
Date: Sat, 30 Jul 2022 13:16:41 -0700
Subject: [PATCH 3/7] chore: move editorconfig to root
---
.editorconfig | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 .editorconfig
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000..85652768
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+charset = utf-8
+
+[*.json]
+indent_style = space
+indent_size = 2
+
+[*.ts]
+indent_style = space
+indent_size = 4
From e1a1ee738aa722894416c05cf600c8034eedd209 Mon Sep 17 00:00:00 2001
From: wSedlacek
Date: Sat, 30 Jul 2022 13:33:41 -0700
Subject: [PATCH 4/7] chore: configure prettier to match existing code
---
.prettierrc | 12 ++++++++++++
1 file changed, 12 insertions(+)
create mode 100644 .prettierrc
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 00000000..95c18bbe
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,12 @@
+{
+ "tabWidth": 4,
+ "printWidth": 140,
+ "overrides": [
+ {
+ "files": "*.json",
+ "options": {
+ "tabWidth": 2
+ }
+ }
+ ]
+}
From d836d3a85f7bd5696e4bdfca01c99398929b1e9b Mon Sep 17 00:00:00 2001
From: wSedlacek
Date: Sat, 30 Jul 2022 13:36:35 -0700
Subject: [PATCH 5/7] feat: react-nativescript update to nativescript 8 and
react 18
---
react-nativescript/package-lock.json | 2076 ++++++++---------
react-nativescript/package.json | 25 +-
....9.34.patch => @types+react+18.0.15.patch} | 26 +-
.../src/client/ComponentTree.ts | 69 +-
.../src/client/EventHandling.ts | 14 +-
react-nativescript/src/client/HostConfig.ts | 178 +-
.../src/client/ReactNativeScriptComponent.ts | 282 +--
react-nativescript/src/client/ReactPortal.ts | 3 +-
react-nativescript/src/client/StyleSheet.ts | 6 +-
.../src/client/validateDOMNesting.ts | 14 +-
.../src/components/ListView.tsx | 43 +-
react-nativescript/src/index.ts | 97 +-
.../src/lib/react-nativescript-jsx.ts | 178 +-
.../src/nativescript-vue-next/global.d.ts | 18 +-
.../runtime/navigation.ts | 19 +-
.../nativescript-vue-next/runtime/nodeOps.ts | 21 +-
.../nativescript-vue-next/runtime/nodes.ts | 351 ++-
.../nativescript-vue-next/runtime/registry.ts | 442 +---
.../runtime/runtimeHelpers.ts | 25 +-
.../src/nativescript-vue-next/shared/index.ts | 13 +-
.../src/shared/CSSPropertyOperations.ts | 31 -
.../src/shared/HostConfigTypes.ts | 10 +-
react-nativescript/src/shared/Logger.ts | 7 +-
react-nativescript/src/shared/ReactTypings.ts | 4 +
.../src/shared/ReactWorkTags.ts | 24 +
.../src/shared/assertValidProps.ts | 2 +-
26 files changed, 1502 insertions(+), 2476 deletions(-)
rename react-nativescript/patches/{@types+react+16.9.34.patch => @types+react+18.0.15.patch} (96%)
create mode 100644 react-nativescript/src/shared/ReactTypings.ts
create mode 100644 react-nativescript/src/shared/ReactWorkTags.ts
diff --git a/react-nativescript/package-lock.json b/react-nativescript/package-lock.json
index 39cb05ad..b1e20dcf 100644
--- a/react-nativescript/package-lock.json
+++ b/react-nativescript/package-lock.json
@@ -1,621 +1,1033 @@
{
"name": "react-nativescript",
- "version": "2.1.0",
- "lockfileVersion": 1,
+ "version": "2.2.0",
+ "lockfileVersion": 2,
"requires": true,
- "dependencies": {
- "@nativescript/core": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-7.1.0.tgz",
- "integrity": "sha512-gQNqFD5wZN7gGa7JblYRuXvR969ZzNg+fjkVHpXRZNzqJqdAy7k//+kNAb9Fu0HW2a2QPkSrtFJGrzQGi3ORcw==",
+ "packages": {
+ "": {
+ "name": "react-nativescript",
+ "version": "2.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "react-reconciler": "^0.29.0",
+ "scheduler": "0.23.0",
+ "set-value": "4.1.0"
+ },
+ "devDependencies": {
+ "@nativescript/core": "^8.3.1",
+ "@types/react": "18.0.15",
+ "@types/react-reconciler": "0.28.0",
+ "@types/webpack-env": "^1.17.0",
+ "patch-package": "^6.4.7",
+ "prettier": "2.7.1",
+ "react": "^18.2.0",
+ "typescript": "~4.7.4"
+ },
+ "peerDependencies": {
+ "@nativescript/core": "^8.3.1",
+ "react": "^18.2.0"
+ }
+ },
+ "node_modules/@nativescript/core": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.3.1.tgz",
+ "integrity": "sha512-MpcWobCciWsVuY0Nqj09rMByxGH5Zbqul2aUNt39QjywfDXPCyGE17+tKOHh7RGeehRN1rpXVY6rx604IPSHsw==",
"dev": true,
- "requires": {
+ "hasInstallScript": true,
+ "dependencies": {
"@nativescript/hook": "~2.0.0",
- "css-tree": "^1.0.0-alpha.39",
+ "acorn": "^8.7.0",
+ "css-tree": "^1.1.2",
"reduce-css-calc": "^2.1.7",
- "tslib": "~2.0.0"
+ "tslib": "^2.0.0"
}
},
- "@nativescript/hook": {
+ "node_modules/@nativescript/hook": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@nativescript/hook/-/hook-2.0.0.tgz",
"integrity": "sha512-v3Hj3Zpd69sQJfFpDNXonV0EjO1a2OL4l48wlo1Ycsqk4r7RY822d/irFTjt0LllRG0OcdEGgfG6wKb0YgPyHw==",
"dev": true,
- "requires": {
+ "dependencies": {
"glob": "^7.1.0",
"mkdirp": "^1.0.4"
}
},
- "@types/prop-types": {
+ "node_modules/@types/prop-types": {
"version": "15.7.3",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
"integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==",
"dev": true
},
- "@types/react": {
- "version": "16.9.34",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.34.tgz",
- "integrity": "sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow==",
+ "node_modules/@types/react": {
+ "version": "18.0.15",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz",
+ "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==",
"dev": true,
- "requires": {
+ "dependencies": {
"@types/prop-types": "*",
- "csstype": "^2.2.0"
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
}
},
- "@types/react-reconciler": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.18.0.tgz",
- "integrity": "sha512-hLVaxzL7cGgk/2C/sc8yyyvi+aeeimv7SKOFgyuPFYqNb2rnnQApHabcxo5Xp+GloUAfMe3tyQm2nkrmbLXq4w==",
+ "node_modules/@types/react-reconciler": {
+ "version": "0.28.0",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.0.tgz",
+ "integrity": "sha512-5cjk9ottZAj7eaTsqzPUIlrVbh3hBAO2YaEL1rkjHKB3xNAId7oU8GhzvAX+gfmlfoxTwJnBjPxEHyxkEA1Ffg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@types/react": "*"
}
},
- "@types/webpack-env": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz",
- "integrity": "sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ==",
+ "node_modules/@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
"dev": true
},
- "@yarnpkg/lockfile": {
+ "node_modules/@types/webpack-env": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.17.0.tgz",
+ "integrity": "sha512-eHSaNYEyxRA5IAG0Ym/yCyf86niZUIF/TpWKofQI/CVfh5HsMEUyfE2kwFxha4ow0s5g0LfISQxpDKjbRDrizw==",
+ "dev": true
+ },
+ "node_modules/@yarnpkg/lockfile": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
"dev": true
},
- "ansi-styles": {
+ "node_modules/acorn": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
- "requires": {
+ "dependencies": {
"color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "dev": true
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true
- },
- "balanced-match": {
+ "node_modules/balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "dev": true,
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
- "brace-expansion": {
+ "node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
- "requires": {
+ "dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
"dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "dev": true,
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
+ "fill-range": "^7.0.1"
},
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- }
- }
+ "engines": {
+ "node": ">=8"
}
},
- "chalk": {
+ "node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "ci-info": {
+ "node_modules/ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
"dev": true
},
- "class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "dev": true,
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
- "collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "dev": true,
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- }
- },
- "color-convert": {
+ "node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "requires": {
+ "dependencies": {
"color-name": "1.1.3"
}
},
- "color-name": {
+ "node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
- "component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "dev": true
- },
- "concat-map": {
+ "node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
- "copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
- "dev": true
- },
- "cross-spawn": {
+ "node_modules/cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
"semver": "^5.5.0",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
}
},
- "css-tree": {
+ "node_modules/css-tree": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz",
"integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"mdn-data": "2.0.14",
"source-map": "^0.6.1"
},
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "css-unit-converter": {
+ "node_modules/css-tree/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/css-unit-converter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz",
"integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==",
"dev": true
},
- "csstype": {
- "version": "2.6.10",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz",
- "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==",
+ "node_modules/csstype": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
+ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
"dev": true
},
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true,
- "requires": {
- "ms": "2.0.0"
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-yarn-workspace-root": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
+ "dev": true,
+ "dependencies": {
+ "micromatch": "^4.0.2"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
}
},
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
},
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
"dependencies": {
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
"dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
},
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "node_modules/is-primitive": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz",
+ "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "dependencies": {
+ "is-docker": "^2.0.0"
},
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "dev": true,
"dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
+ "graceful-fs": "^4.1.11"
+ }
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "dev": true
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/patch-package": {
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz",
+ "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==",
+ "dev": true,
+ "dependencies": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^2.4.2",
+ "cross-spawn": "^6.0.5",
+ "find-yarn-workspace-root": "^2.0.0",
+ "fs-extra": "^7.0.1",
+ "is-ci": "^2.0.0",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.0",
+ "open": "^7.4.2",
+ "rimraf": "^2.6.3",
+ "semver": "^5.6.0",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33"
+ },
+ "bin": {
+ "patch-package": "index.js"
+ },
+ "engines": {
+ "npm": ">5"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ },
+ "node_modules/prettier": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/react": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-reconciler": {
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz",
+ "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "peerDependencies": {
+ "react": "^18.2.0"
+ }
+ },
+ "node_modules/reduce-css-calc": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz",
+ "integrity": "sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==",
+ "dev": true,
+ "dependencies": {
+ "css-unit-converter": "^1.1.1",
+ "postcss-value-parser": "^3.3.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/set-value": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz",
+ "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==",
+ "funding": [
+ "https://github.com/sponsors/jonschlinkert",
+ "https://paypal.me/jonathanschlinkert",
+ "https://jonschlinkert.dev/sponsor"
+ ],
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "is-primitive": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=11.0"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true
+ },
+ "node_modules/typescript": {
+ "version": "4.7.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
+ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ }
+ },
+ "dependencies": {
+ "@nativescript/core": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.3.1.tgz",
+ "integrity": "sha512-MpcWobCciWsVuY0Nqj09rMByxGH5Zbqul2aUNt39QjywfDXPCyGE17+tKOHh7RGeehRN1rpXVY6rx604IPSHsw==",
+ "dev": true,
+ "requires": {
+ "@nativescript/hook": "~2.0.0",
+ "acorn": "^8.7.0",
+ "css-tree": "^1.1.2",
+ "reduce-css-calc": "^2.1.7",
+ "tslib": "^2.0.0"
+ }
+ },
+ "@nativescript/hook": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@nativescript/hook/-/hook-2.0.0.tgz",
+ "integrity": "sha512-v3Hj3Zpd69sQJfFpDNXonV0EjO1a2OL4l48wlo1Ycsqk4r7RY822d/irFTjt0LllRG0OcdEGgfG6wKb0YgPyHw==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.0",
+ "mkdirp": "^1.0.4"
+ }
+ },
+ "@types/prop-types": {
+ "version": "15.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
+ "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==",
+ "dev": true
+ },
+ "@types/react": {
+ "version": "18.0.15",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz",
+ "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==",
+ "dev": true,
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/react-reconciler": {
+ "version": "0.28.0",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.0.tgz",
+ "integrity": "sha512-5cjk9ottZAj7eaTsqzPUIlrVbh3hBAO2YaEL1rkjHKB3xNAId7oU8GhzvAX+gfmlfoxTwJnBjPxEHyxkEA1Ffg==",
+ "dev": true,
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
+ "dev": true
+ },
+ "@types/webpack-env": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.17.0.tgz",
+ "integrity": "sha512-eHSaNYEyxRA5IAG0Ym/yCyf86niZUIF/TpWKofQI/CVfh5HsMEUyfE2kwFxha4ow0s5g0LfISQxpDKjbRDrizw==",
+ "dev": true
+ },
+ "@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "css-tree": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz",
+ "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==",
"dev": true,
"requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
},
"dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
}
}
},
+ "css-unit-converter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz",
+ "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==",
+ "dev": true
+ },
+ "csstype": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
+ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
"fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "to-regex-range": "^5.0.1"
}
},
"find-yarn-workspace-root": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz",
- "integrity": "sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==",
- "dev": true,
- "requires": {
- "fs-extra": "^4.0.3",
- "micromatch": "^3.1.4"
- },
- "dependencies": {
- "fs-extra": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
- "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- }
- }
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
- },
- "fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
"dev": true,
"requires": {
- "map-cache": "^0.2.2"
+ "micromatch": "^4.0.2"
}
},
"fs-extra": {
@@ -635,12 +1047,6 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
- "get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
- "dev": true
- },
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -667,38 +1073,6 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "dev": true,
- "requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- }
- },
- "has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
- "dev": true,
- "requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -715,32 +1089,6 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
- },
"is-ci": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
@@ -750,70 +1098,17 @@
"ci-info": "^2.0.0"
}
},
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true
},
"is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
},
"is-plain-object": {
"version": "2.0.4",
@@ -823,17 +1118,19 @@
"isobject": "^3.0.1"
}
},
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true
+ "is-primitive": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz",
+ "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w=="
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
},
"isexe": {
"version": "2.0.0",
@@ -860,12 +1157,6 @@
"graceful-fs": "^4.1.6"
}
},
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true
- },
"klaw-sync": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
@@ -883,21 +1174,6 @@
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
- "map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "dev": true
- },
- "map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
- "dev": true,
- "requires": {
- "object-visit": "^1.0.0"
- }
- },
"mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
@@ -905,24 +1181,13 @@
"dev": true
},
"micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
}
},
"minimatch": {
@@ -940,118 +1205,18 @@
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
- "mixin-deep": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "dev": true,
- "requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- }
- },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
- "dev": true,
- "requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
- "dev": true,
- "requires": {
- "isobject": "^3.0.0"
- }
- },
- "object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -1061,32 +1226,37 @@
"wrappy": "1"
}
},
+ "open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
- "pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
- "dev": true
- },
"patch-package": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz",
- "integrity": "sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==",
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz",
+ "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==",
"dev": true,
"requires": {
"@yarnpkg/lockfile": "^1.1.0",
"chalk": "^2.4.2",
"cross-spawn": "^6.0.5",
- "find-yarn-workspace-root": "^1.2.1",
+ "find-yarn-workspace-root": "^2.0.0",
"fs-extra": "^7.0.1",
"is-ci": "^2.0.0",
"klaw-sync": "^6.0.0",
"minimist": "^1.2.0",
+ "open": "^7.4.2",
"rimraf": "^2.6.3",
"semver": "^5.6.0",
"slash": "^2.0.0",
@@ -1105,10 +1275,10 @@
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
"dev": true
},
- "posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
"postcss-value-parser": {
@@ -1118,57 +1288,26 @@
"dev": true
},
"prettier": {
- "version": "1.18.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
- "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
"dev": true
},
- "prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
- }
- },
"react": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz",
- "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==",
- "dev": true,
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
"requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2"
+ "loose-envify": "^1.1.0"
}
},
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
"react-reconciler": {
- "version": "0.25.1",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.25.1.tgz",
- "integrity": "sha512-R5UwsIvRcSs3w8n9k3tBoTtUHdVhu9u84EG7E5M0Jk9F5i6DA1pQzPfUZd6opYWGy56MJOtV3VADzy6DRwYDjw==",
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz",
+ "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==",
"requires": {
"loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2",
- "scheduler": "^0.19.1"
- },
- "dependencies": {
- "scheduler": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
- "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- }
+ "scheduler": "^0.23.0"
}
},
"reduce-css-calc": {
@@ -1181,40 +1320,6 @@
"postcss-value-parser": "^3.3.0"
}
},
- "regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "dev": true,
- "requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- }
- },
- "repeat-element": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
- "dev": true
- },
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
- },
- "resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "dev": true
- },
- "ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "dev": true
- },
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -1224,22 +1329,12 @@
"glob": "^7.1.3"
}
},
- "safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
- "dev": true,
- "requires": {
- "ret": "~0.1.10"
- }
- },
"scheduler": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz",
- "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==",
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
"requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.1.0"
}
},
"semver": {
@@ -1249,11 +1344,12 @@
"dev": true
},
"set-value": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-3.0.2.tgz",
- "integrity": "sha512-npjkVoz+ank0zjlV9F47Fdbjfj/PfXyVhZvGALWsyIYU/qrMzpi6avjKW3/7KeSU2Df3I46BrN1xOI1+6vW0hA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz",
+ "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==",
"requires": {
- "is-plain-object": "^2.0.4"
+ "is-plain-object": "^2.0.4",
+ "is-primitive": "^3.0.1"
}
},
"shebang-command": {
@@ -1277,168 +1373,6 @@
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"dev": true
},
- "snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "dev": true,
- "requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "dev": true,
- "requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
- "snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "dev": true,
- "requires": {
- "kind-of": "^3.2.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
- },
- "source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "dev": true,
- "requires": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "source-map-url": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
- "dev": true
- },
- "split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "dev": true,
- "requires": {
- "extend-shallow": "^3.0.0"
- }
- },
- "static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
- "dev": true,
- "requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -1457,46 +1391,13 @@
"os-tmpdir": "~1.0.2"
}
},
- "to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "dev": true,
- "requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- }
- },
"to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
+ "is-number": "^7.0.0"
}
},
"tslib": {
@@ -1506,104 +1407,17 @@
"dev": true
},
"typescript": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz",
- "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==",
+ "version": "4.7.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
+ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
"dev": true
},
- "union-value": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "dev": true,
- "requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- }
- }
- }
- },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
},
- "unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
- "dev": true,
- "requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
- "dev": true,
- "requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- }
- }
- }
- },
- "has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
- "dev": true
- }
- }
- },
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "dev": true
- },
- "use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "dev": true
- },
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
diff --git a/react-nativescript/package.json b/react-nativescript/package.json
index fef11eb3..1e94c447 100644
--- a/react-nativescript/package.json
+++ b/react-nativescript/package.json
@@ -33,22 +33,21 @@
},
"homepage": "https://github.com/shirakaba/react-nativescript#readme",
"peerDependencies": {
- "react": "^16.9.0",
- "@nativescript/core": "^7.1.0"
+ "react": "^18.2.0",
+ "@nativescript/core": "^8.3.1"
},
"dependencies": {
- "react-reconciler": "^0.25.1",
- "scheduler": "0.18.0",
- "set-value": "3.0.2"
+ "react-reconciler": "^0.29.0",
+ "set-value": "4.1.0"
},
"devDependencies": {
- "@nativescript/core": "^7.1.0",
- "@types/react": "16.9.34",
- "@types/react-reconciler": "0.18.0",
- "@types/webpack-env": "^1.15.2",
- "patch-package": "^6.2.2",
- "prettier": "1.18.2",
- "react": "^16.13.1",
- "typescript": "~4.0.3"
+ "@nativescript/core": "^8.3.1",
+ "@types/react": "18.0.15",
+ "@types/react-reconciler": "0.28.0",
+ "@types/webpack-env": "^1.17.0",
+ "patch-package": "^6.4.7",
+ "prettier": "2.7.1",
+ "react": "^18.2.0",
+ "typescript": "~4.7.4"
}
}
diff --git a/react-nativescript/patches/@types+react+16.9.34.patch b/react-nativescript/patches/@types+react+18.0.15.patch
similarity index 96%
rename from react-nativescript/patches/@types+react+16.9.34.patch
rename to react-nativescript/patches/@types+react+18.0.15.patch
index 6b878923..4b353d24 100644
--- a/react-nativescript/patches/@types+react+16.9.34.patch
+++ b/react-nativescript/patches/@types+react+18.0.15.patch
@@ -1,13 +1,12 @@
diff --git a/node_modules/@types/react/index.d.ts b/node_modules/@types/react/index.d.ts
-index 72c43ea..c4271cc 100644
+index 50f1817..574ce5b 100755
--- a/node_modules/@types/react/index.d.ts
+++ b/node_modules/@types/react/index.d.ts
-@@ -2963,186 +2963,8 @@ declare global {
- // tslint:disable-next-line:no-empty-interface
+@@ -3137,186 +3137,6 @@ declare global {
+ interface IntrinsicAttributes extends React.Attributes { }
interface IntrinsicClassAttributes extends React.ClassAttributes { }
-
-+ // tslint:disable-next-line:no-empty-interface
- interface IntrinsicElements {
+
+- interface IntrinsicElements {
- // HTML
- a: React.DetailedHTMLProps, HTMLAnchorElement>;
- abbr: React.DetailedHTMLProps, HTMLElement>;
@@ -21,7 +20,7 @@ index 72c43ea..c4271cc 100644
- bdi: React.DetailedHTMLProps, HTMLElement>;
- bdo: React.DetailedHTMLProps, HTMLElement>;
- big: React.DetailedHTMLProps, HTMLElement>;
-- blockquote: React.DetailedHTMLProps, HTMLElement>;
+- blockquote: React.DetailedHTMLProps, HTMLQuoteElement>;
- body: React.DetailedHTMLProps, HTMLBodyElement>;
- br: React.DetailedHTMLProps, HTMLBRElement>;
- button: React.DetailedHTMLProps, HTMLButtonElement>;
@@ -34,8 +33,8 @@ index 72c43ea..c4271cc 100644
- data: React.DetailedHTMLProps, HTMLDataElement>;
- datalist: React.DetailedHTMLProps, HTMLDataListElement>;
- dd: React.DetailedHTMLProps, HTMLElement>;
-- del: React.DetailedHTMLProps, HTMLElement>;
-- details: React.DetailedHTMLProps, HTMLElement>;
+- del: React.DetailedHTMLProps, HTMLModElement>;
+- details: React.DetailedHTMLProps, HTMLDetailsElement>;
- dfn: React.DetailedHTMLProps, HTMLElement>;
- dialog: React.DetailedHTMLProps, HTMLDialogElement>;
- div: React.DetailedHTMLProps, HTMLDivElement>;
@@ -76,7 +75,7 @@ index 72c43ea..c4271cc 100644
- menu: React.DetailedHTMLProps, HTMLElement>;
- menuitem: React.DetailedHTMLProps, HTMLElement>;
- meta: React.DetailedHTMLProps, HTMLMetaElement>;
-- meter: React.DetailedHTMLProps, HTMLElement>;
+- meter: React.DetailedHTMLProps, HTMLMeterElement>;
- nav: React.DetailedHTMLProps, HTMLElement>;
- noindex: React.DetailedHTMLProps, HTMLElement>;
- noscript: React.DetailedHTMLProps, HTMLElement>;
@@ -84,7 +83,7 @@ index 72c43ea..c4271cc 100644
- ol: React.DetailedHTMLProps, HTMLOListElement>;
- optgroup: React.DetailedHTMLProps, HTMLOptGroupElement>;
- option: React.DetailedHTMLProps, HTMLOptionElement>;
-- output: React.DetailedHTMLProps, HTMLElement>;
+- output: React.DetailedHTMLProps, HTMLOutputElement>;
- p: React.DetailedHTMLProps, HTMLParagraphElement>;
- param: React.DetailedHTMLProps, HTMLParamElement>;
- picture: React.DetailedHTMLProps, HTMLElement>;
@@ -116,7 +115,7 @@ index 72c43ea..c4271cc 100644
- tfoot: React.DetailedHTMLProps, HTMLTableSectionElement>;
- th: React.DetailedHTMLProps, HTMLTableHeaderCellElement>;
- thead: React.DetailedHTMLProps, HTMLTableSectionElement>;
-- time: React.DetailedHTMLProps, HTMLElement>;
+- time: React.DetailedHTMLProps, HTMLTimeElement>;
- title: React.DetailedHTMLProps, HTMLTitleElement>;
- tr: React.DetailedHTMLProps, HTMLTableRowElement>;
- track: React.DetailedHTMLProps, HTMLTrackElement>;
@@ -187,6 +186,7 @@ index 72c43ea..c4271cc 100644
- tspan: React.SVGProps;
- use: React.SVGProps;
- view: React.SVGProps;
- }
+- }
++ interface IntrinsicElements {}
}
}
diff --git a/react-nativescript/src/client/ComponentTree.ts b/react-nativescript/src/client/ComponentTree.ts
index b9832f60..3ad05716 100644
--- a/react-nativescript/src/client/ComponentTree.ts
+++ b/react-nativescript/src/client/ComponentTree.ts
@@ -5,17 +5,18 @@
* This source code is licensed under the MIT license found in /LICENSE.
*/
import * as ReactReconciler from "react-reconciler";
-import { Instance, TextInstance } from "../shared/HostConfigTypes";
-import * as console from "../shared/Logger";
+import { Container, Instance } from "../shared/HostConfigTypes";
-const randomKey: string = Math.random()
- .toString(36)
- .slice(2);
-const internalInstanceKey: string = "__reactInternalInstance$" + randomKey;
-const internalEventHandlersKey: string = "__reactEventHandlers$" + randomKey;
+const internalInstanceKey = Symbol("__reactFiber$");
+const internalContainerInstanceKey = Symbol("__reactContainer$");
+const internalEventHandlersKey = Symbol("__reactEventHandlers$");
-export function precacheFiberNode(hostInst: ReactReconciler.OpaqueHandle, node: Instance): void {
- node.setAttribute(internalInstanceKey, hostInst);
+export function precacheFiberNode(hostInst: ReactReconciler.OpaqueHandle, node: object): void {
+ node[internalInstanceKey] = hostInst;
+}
+
+export function getInternalInstance(node: object): ReactReconciler.OpaqueHandle | null {
+ return node[internalInstanceKey] ?? null;
}
/**
@@ -23,15 +24,12 @@ export function precacheFiberNode(hostInst: ReactReconciler.OpaqueHandle, node:
* ReactDOMTextComponent instance ancestor.
*/
export function getClosestInstanceFromNode(node: Instance): ReactReconciler.OpaqueHandle {
- if (node.getAttribute(internalInstanceKey)) {
- return node.getAttribute(internalInstanceKey) as ReactReconciler.OpaqueHandle;
+ if (node[internalInstanceKey]) {
+ return node[internalInstanceKey] as ReactReconciler.OpaqueHandle;
}
- while (!node.getAttribute(internalInstanceKey)) {
+ while (!node[internalInstanceKey]) {
if (node.parentNode) {
- // if(!node.parent){
- // console.warn(`node.parent was null; meanwhile, node.parentNode was:`, node.parentNode);
- // }
node = node.parentNode;
} else {
// Top of the tree. This node must not be part of a React tree (or is
@@ -40,13 +38,9 @@ export function getClosestInstanceFromNode(node: Instance): ReactReconciler.Opaq
}
}
- const inst = node.getAttribute(internalInstanceKey) as ReactReconciler.OpaqueHandle;
- // if (inst.tag === HostComponent || inst.tag === HostText) {
- // In Fiber, this will always be the deepest root.
- return inst;
- // }
+ const inst = node[internalInstanceKey] as ReactReconciler.OpaqueHandle;
- // return null;
+ return inst;
}
/**
@@ -54,14 +48,9 @@ export function getClosestInstanceFromNode(node: Instance): ReactReconciler.Opaq
* instance, or null if the node was not rendered by this React.
*/
export function getInstanceFromNode(node: Instance): ReactReconciler.OpaqueHandle {
- const inst = node.getAttribute(internalInstanceKey) as ReactReconciler.OpaqueHandle;
+ const inst = node[internalInstanceKey] as ReactReconciler.OpaqueHandle;
if (inst) {
return inst;
- // if (inst.tag === HostComponent || inst.tag === HostText) {
- // return inst;
- // } else {
- // return null;
- // }
}
return null;
}
@@ -71,23 +60,25 @@ export function getInstanceFromNode(node: Instance): ReactReconciler.OpaqueHandl
* DOM node.
*/
export function getNodeFromInstance(inst: ReactReconciler.OpaqueHandle): Instance {
- // if (inst.tag === HostComponent || inst.tag === HostText) {
- // // In Fiber this, is just the state node right now. We assume it will be
- // // a host component or host text.
- // return inst.stateNode;
- // }
return inst.stateNode;
-
- // Without this first invariant, passing a non-DOM-component triggers the next
- // invariant for a missing parent, which is super confusing.
- // invariant(false, 'getNodeFromInstance: Invalid argument.');
- // throw new Error('getNodeFromInstance: Invalid argument.');
}
export function getFiberCurrentPropsFromNode(node: Instance): object | null {
- return (node.getAttribute(internalEventHandlersKey) as object) || null;
+ return (node[internalEventHandlersKey] as object) || null;
}
export function updateFiberProps(node: Instance, props: object): void {
- node.setAttribute(internalEventHandlersKey, props);
+ node[internalEventHandlersKey] = props;
+}
+
+export function markContainerAsRoot(hostRoot: ReactReconciler.Fiber, node: Container) {
+ node[internalContainerInstanceKey] = hostRoot;
+}
+
+export function unmarkContainerAsRoot(node: Container): void {
+ node[internalContainerInstanceKey] = null;
+}
+
+export function getInternalContainerInstance(node: Container) {
+ return node[internalContainerInstanceKey] ?? null;
}
diff --git a/react-nativescript/src/client/EventHandling.ts b/react-nativescript/src/client/EventHandling.ts
index 651dd6ce..bdf4364c 100644
--- a/react-nativescript/src/client/EventHandling.ts
+++ b/react-nativescript/src/client/EventHandling.ts
@@ -1,7 +1,6 @@
import { GestureTypes, Observable, EventData } from "@nativescript/core";
import * as console from "../shared/Logger";
-// type GenericListener = (...args: any[]) => void;
type GenericListener = (data: EventData) => void;
export function updateListener(
@@ -17,21 +16,18 @@ export function updateListener(
console.log(
`Replacing '${eventLogName}' currentListener ${currentListener.toString()} with an incomingListener ${incomingListener.toString()}.`
);
- node.off((eventName as any) as string, currentListener);
- node.on((eventName as any) as string, incomingListener);
+ node.off(eventName as string, currentListener);
+ node.on(eventName as string, incomingListener);
} else {
- // console.log(`No change to '${eventLogName}' incomingListener.`);
}
} else {
- console.log(
- `Removing '${eventLogName}' listener as there is a currentListener without an incomingListener.`
- );
- node.off((eventName as any) as string, currentListener);
+ console.log(`Removing '${eventLogName}' listener as there is a currentListener without an incomingListener.`);
+ node.off(eventName as string, currentListener);
}
} else {
if (incomingListener) {
console.log(`Adding '${eventLogName}' incomingListener; currentListener was falsy.`);
- node.on((eventName as any) as string, incomingListener);
+ node.on(eventName as string, incomingListener);
}
}
}
diff --git a/react-nativescript/src/client/HostConfig.ts b/react-nativescript/src/client/HostConfig.ts
index 6f7e95b3..cb34f552 100644
--- a/react-nativescript/src/client/HostConfig.ts
+++ b/react-nativescript/src/client/HostConfig.ts
@@ -10,11 +10,15 @@
* LICENSE file in the root directory of this source tree.
*/
-// import ReactReconciler = require('react-reconciler');
import * as ReactReconciler from "react-reconciler";
-import * as scheduler from "scheduler";
+import { DefaultEventPriority } from "react-reconciler/constants";
import { isKnownView } from "../nativescript-vue-next/runtime/registry";
-import { precacheFiberNode, updateFiberProps } from "./ComponentTree";
+import {
+ precacheFiberNode,
+ updateFiberProps,
+ getInternalInstance,
+ getInternalContainerInstance,
+} from "./ComponentTree";
import { diffProperties, updateProperties, setInitialProperties } from "./ReactNativeScriptComponent";
import * as console from "../shared/Logger";
import {
@@ -26,7 +30,9 @@ import {
TextInstance,
HydratableInstance,
PublicInstance,
+ SuspenseInstance,
} from "../shared/HostConfigTypes";
+import { HostComponent, HostRoot, HostText, SuspenseComponent } from "../shared/ReactWorkTags";
import { NSVElement, NSVText, NSVRoot } from "../nativescript-vue-next/runtime/nodes";
type UpdatePayload = {
@@ -38,6 +44,8 @@ type TimeoutHandle = number; // Actually strictly should be Node-style timeout
type NoTimeout = any;
const noTimeoutValue: NoTimeout = undefined;
+let currentEventPriority = DefaultEventPriority;
+
// https://medium.com/@agent_hunt/hello-world-custom-react-renderer-9a95b7cd04bc
const hostConfig: ReactReconciler.HostConfig<
Type,
@@ -45,6 +53,7 @@ const hostConfig: ReactReconciler.HostConfig<
Container,
Instance,
TextInstance,
+ SuspenseInstance,
HydratableInstance,
PublicInstance,
HostContext,
@@ -53,18 +62,6 @@ const hostConfig: ReactReconciler.HostConfig<
TimeoutHandle,
NoTimeout
> = {
- //https://github.com/sencha/ext-react/issues/306#issuecomment-521906095
-
- scheduleDeferredCallback: scheduler.unstable_scheduleCallback,
- cancelDeferredCallback: scheduler.unstable_cancelCallback,
-
- // @ts-ignore not in typings
- schedulePassiveEffects: scheduler.unstable_scheduleCallback,
- cancelPassiveEffects: scheduler.unstable_cancelCallback,
-
- // @ts-ignore not in typings
- shouldYield: scheduler.unstable_shouldYield,
- now: scheduler.unstable_now,
getPublicInstance(instance: Instance | TextInstance): PublicInstance {
// TODO (this was a complete guess).
return instance;
@@ -82,21 +79,20 @@ const hostConfig: ReactReconciler.HostConfig<
},
getChildHostContext(parentHostContext: HostContext, type: Type, rootContainerInstance: Container): HostContext {
/*
- * Given the following, wrapped in a Page:
+ * Given the following, wrapped in a Page:
- *
+ *
* 'type' evidently refers to the type of the child:
- *
+ *
* When type 'flexboxLayout' passes into here, it will have parentHostContext.isInAFlexboxLayout: false.
* We return a HostContext with `"isInAFlexboxLayout": true`.
- *
+ *
* When type 'label' or 'button' passes into here, they will then find that
* parentHostContext.isInAFlexboxLayout === true.
*/
- // console.log(`[getChildHostContext] type: ${type}`);
const prevIsInAParentText: boolean = parentHostContext.isInAParentText;
const prevIsInAParentSpan: boolean = parentHostContext.isInAParentSpan;
const prevIsInAParentFormattedString: boolean = parentHostContext.isInAParentFormattedString;
@@ -157,8 +153,9 @@ const hostConfig: ReactReconciler.HostConfig<
* For example: In the case of react-dom, it keeps track of all the currently focused elements, disabled events temporarily, etc.
* @param rootContainerInstance - root dom node you specify while calling render. This is most commonly
*/
- prepareForCommit(rootContainerInstance: Container): void {
+ prepareForCommit(rootContainerInstance: Container): Record | null {
// TODO
+ return null;
},
/**
* This function gets executed after the inmemory tree has been attached to the root dom element. Here we can do any post attach operations that needs to be done.
@@ -176,19 +173,8 @@ const hostConfig: ReactReconciler.HostConfig<
hostContext: HostContext,
internalInstanceHandle: ReactReconciler.OpaqueHandle
): Instance {
- // if(type === "page" || type === "frame"){
- // (() => {
- // const { children, ...rest } = props;
- // console.log(`[createInstance() 1a] type: ${type}. props:`, {
- // ...rest,
- // });
- // })();
- // console.log(`[createInstance() 1b] type: ${type}`);
- // }
-
let view: Instance;
- // const viewConstructor: InstanceCreator | null = typeof type === "string" ? elementMap[type] : null;
if (typeof type === "string" && isKnownView(type)) {
view = new NSVElement(type);
precacheFiberNode(internalInstanceHandle, view);
@@ -220,7 +206,6 @@ const hostConfig: ReactReconciler.HostConfig<
return view;
},
appendInitialChild(parentInstance: Instance, child: Instance | TextInstance): void {
- // console.log(`[appendInitialChild()] ${parentInstance.nativeView} > ${(child as Instance).nativeView || `"` + (child as TextInstance).text + `"`}`);
hostConfig.appendChild(parentInstance, child);
},
/**
@@ -239,7 +224,6 @@ const hostConfig: ReactReconciler.HostConfig<
rootContainerInstance: Container,
hostContext: HostContext
): boolean {
- // console.log(`finalizeInitialChildren() with parentInstance type: ${type}`, parentInstance);
setInitialProperties(parentInstance, type, props, rootContainerInstance, hostContext);
return false;
@@ -247,14 +231,7 @@ const hostConfig: ReactReconciler.HostConfig<
shouldSetTextContent(type: Type, props: Props): boolean {
return typeof props.children === "string" || typeof props.children === "number";
},
- /**
- * This function is used to deprioritize rendering of some subtrees. Mostly used in cases where the subtree is hidden or offscreen.
- * @param type - the DOM type of the element, e.g. "div"
- * @param props - the props to be passed to the Element.
- */
- shouldDeprioritizeSubtree(type: Type, props: Props): boolean {
- return !!props.hidden; // Purely based on React-DOM.
- },
+
createTextInstance(
text: string,
rootContainerInstance: Container,
@@ -269,35 +246,20 @@ const hostConfig: ReactReconciler.HostConfig<
}
const textNode = new NSVText(text);
- /**
- * I'm not too sure what precacheFiberNode does, but I think it sets a bunch of attributes on the node.
- * As NSVText never implemented node.setAttribute() in the first place, this line of code (now commented
- * out) could only ever have led to a crash before. So I'm now omitting it.
- *
- * In any case, I guess in normal usage, developers don't end up going down this path, maybe because of
- * the above guard.
- */
- // precacheFiberNode(internalInstanceHandle, textNode as Instance);
+ precacheFiberNode(internalInstanceHandle, textNode);
return textNode;
},
- // scheduleDeferredCallback(callback: () => any, options?: { timeout: number }): any {
- // // TODO: check whether default timeout should be 0.
- // if (!options) options = { timeout: 0 };
-
- // return setTimeout(callback, options.timeout);
- // },
- // cancelDeferredCallback(callbackID: any): void {
- // clearTimeout(callbackID);
- // },
- setTimeout(handler: (...args: any[]) => void, timeout: number): TimeoutHandle | NoTimeout {
+
+ scheduleTimeout(handler: (...args: any[]) => void, timeout: number): TimeoutHandle | NoTimeout {
return setTimeout(handler, timeout);
},
- clearTimeout(handle: TimeoutHandle | NoTimeout): void {
+
+ cancelTimeout(handle: TimeoutHandle | NoTimeout): void {
clearTimeout(handle);
},
+
noTimeout: noTimeoutValue,
- // now: Date.now,
isPrimaryRenderer: true,
supportsMutation: true, // TODO
supportsPersistence: false,
@@ -305,7 +267,6 @@ const hostConfig: ReactReconciler.HostConfig<
/* Mutation (optional) */
appendChild(parentInstance: Instance, child: Instance | TextInstance): void {
- // console.log(`[appendChild()] ${parentInstance} > ${child}`);
if (parentInstance === null) {
console.warn(
`[appendChild()] parent is null (this is a typical occurrence when rendering a child into a detached tree); shall no-op here: ${parentInstance} > ${child}`
@@ -343,10 +304,7 @@ const hostConfig: ReactReconciler.HostConfig<
type: Type,
newProps: Props,
internalInstanceHandle: ReactReconciler.OpaqueHandle
- ): void {
- console.log(`commitMount() with type: ${type}`, instance);
- // (instance as View).focus();
- },
+ ): void {},
/**
* From: https://blog.atulr.com/react-custom-renderer-3/
* Expanded on in: https://hackernoon.com/learn-you-some-custom-react-renderers-aed7164a4199
@@ -366,33 +324,6 @@ const hostConfig: ReactReconciler.HostConfig<
rootContainerInstance: Container,
hostContext: HostContext
): null | UpdatePayload {
- // console.log(`prepareUpdate() with type: ${type}`, instance);
-
- // if ((global as any).__DEV__) {
- // const hostContextDev: HostContextDev = hostContext as HostContextDev;
- // if (
- // typeof newProps.children !== typeof oldProps.children &&
- // (typeof newProps.children === 'string' ||
- // typeof newProps.children === 'number')
- // ) {
- // const str: string = '' + newProps.children;
- // const ownAncestorInfo = updatedAncestorInfo(
- // hostContextDev.ancestorInfo,
- // type as string,
- // );
- // validateDOMNesting(null, str, ownAncestorInfo);
- // }
- // }
-
- // (()=>{
- // const { children, ...rest } = oldProps;
- // console.log(`About to run diffProperties on ${instance}. oldProps:`, { ...rest });
- // })();
- // (()=>{
- // const { children, ...rest } = newProps;
- // console.log(`About to run diffProperties on ${instance}. newProps:`, { ...rest });
- // })();
-
const diffed: null | UpdatePayload["updates"] = diffProperties(
instance,
type,
@@ -401,17 +332,12 @@ const hostConfig: ReactReconciler.HostConfig<
rootContainerInstance
);
- // console.log(`[prepareUpdate] for ${instance}, diffed:`, diffed);
-
return diffed === null
? null
: {
hostContext,
updates: diffed,
};
-
- // return {}; // Simply return a non-null value to permit commitUpdate();
- // return null;
},
commitUpdate(
instance: Instance,
@@ -421,8 +347,6 @@ const hostConfig: ReactReconciler.HostConfig<
newProps: Props,
internalInstanceHandle: ReactReconciler.OpaqueHandle
): void {
- // console.log(`commitUpdate() with type: ${type}`, instance);
-
// Update the props handle so that we know which props are the ones with
// with current event handlers.
updateFiberProps(instance, newProps);
@@ -483,6 +407,55 @@ const hostConfig: ReactReconciler.HostConfig<
resetTextContent(instance: Instance): void {
instance.text = "";
},
+
+ getCurrentEventPriority: () => {
+ return currentEventPriority;
+ },
+
+ preparePortalMount: () => {},
+
+ getInstanceFromNode: (instance: Instance) => {
+ const internalInstance = getInternalInstance(instance) ?? getInternalContainerInstance(instance);
+
+ if (internalInstance) {
+ if (
+ internalInstance.tag === HostComponent ||
+ internalInstance.tag === HostText ||
+ internalInstance.tag === SuspenseComponent ||
+ internalInstance.tag === HostRoot
+ ) {
+ return internalInstance;
+ } else {
+ return null;
+ }
+ }
+
+ return null;
+ },
+
+ clearContainer: (container) => {
+ if ("removeChild" in container) {
+ container.childNodes.forEach((child) => {
+ container.removeChild(child);
+ });
+ }
+ },
+
+ getInstanceFromScope: () => {
+ // TODO: Update when Scope API is introduced
+ return null;
+ },
+
+ prepareScopeUpdate: () => {
+ // TODO: Update when Scope API is introduced
+ },
+
+ /**
+ * Noops
+ */
+ afterActiveInstanceBlur: () => {},
+ beforeActiveInstanceBlur: () => {},
+ detachDeletedInstance: () => {},
};
export const reactReconcilerInst = ReactReconciler<
@@ -491,6 +464,7 @@ export const reactReconcilerInst = ReactReconciler<
Container,
Instance,
TextInstance,
+ SuspenseInstance,
HydratableInstance,
PublicInstance,
HostContext,
diff --git a/react-nativescript/src/client/ReactNativeScriptComponent.ts b/react-nativescript/src/client/ReactNativeScriptComponent.ts
index 9a23ddde..90a5e9be 100644
--- a/react-nativescript/src/client/ReactNativeScriptComponent.ts
+++ b/react-nativescript/src/client/ReactNativeScriptComponent.ts
@@ -21,35 +21,9 @@ const CHILDREN = "children";
const TEXT = "text";
const STYLE = "style";
const HTML = "__html";
-// const TEXT_NODE: string = '';
function setTextContent(node: Instance, text: string): void {
/* No concept of text nodes in NativeScript as far as I know... */
- // if (text) {
- // let firstChild;
- // let i: number = 0;
- // node.eachChild((child: ViewBase) => {
- // if(i === 0){
- // firstChild = child;
- // } else if(i > 0){
- // return false;
- // }
- // i++;
- // return true;
- // });
- // const isLastChild: boolean = firstChild && i === 1;
- // if (
- // firstChild &&
- // isLastChild &&
- // // firstChild.nodeType === TEXT_NODE
- // typeof firstChild === "string" || typeof firstChild === "number"
- // ) {
- // const oldText: string = firstChild.text;
- // firstChild.text = text;
- // firstChild.notifyPropertyChange("text", text, oldText);
- // return;
- // }
- // }
node.text = text;
}
@@ -61,123 +35,12 @@ export function setInitialProperties(
rootContainerElement: Container,
hostContext: HostContext
): void {
- // const isCustomComponentTag = isCustomComponent(tag, rawProps);
- // if ((global as any).__DEV__) {
- // validatePropertiesInDevelopment(tag, rawProps);
- // if (
- // isCustomComponentTag &&
- // !didWarnShadyDOM &&
- // (domElement: any).shadyRoot
- // ) {
- // warning(
- // false,
- // '%s is using shady DOM. Using shady DOM with React can ' +
- // 'cause things to break subtly.',
- // getCurrentFiberOwnerNameInDevOrNull() || 'A component',
- // );
- // didWarnShadyDOM = true;
- // }
- // }
-
// TODO: Make sure that we check isMounted before firing any of these events.
- // let props: Object;
- // switch (tag) {
- // case 'iframe':
- // case 'object':
- // trapBubbledEvent(TOP_LOAD, domElement);
- // props = rawProps;
- // break;
- // case 'video':
- // case 'audio':
- // // Create listener for each media event
- // for (let i = 0; i < mediaEventTypes.length; i++) {
- // trapBubbledEvent(mediaEventTypes[i], domElement);
- // }
- // props = rawProps;
- // break;
- // case 'source':
- // trapBubbledEvent(TOP_ERROR, domElement);
- // props = rawProps;
- // break;
- // case 'img':
- // case 'image':
- // case 'link':
- // trapBubbledEvent(TOP_ERROR, domElement);
- // trapBubbledEvent(TOP_LOAD, domElement);
- // props = rawProps;
- // break;
- // case 'form':
- // trapBubbledEvent(TOP_RESET, domElement);
- // trapBubbledEvent(TOP_SUBMIT, domElement);
- // props = rawProps;
- // break;
- // case 'details':
- // trapBubbledEvent(TOP_TOGGLE, domElement);
- // props = rawProps;
- // break;
- // case 'input':
- // ReactDOMInputInitWrapperState(domElement, rawProps);
- // props = ReactDOMInputGetHostProps(domElement, rawProps);
- // trapBubbledEvent(TOP_INVALID, domElement);
- // // For controlled components we always need to ensure we're listening
- // // to onChange. Even if there is no listener.
- // ensureListeningTo(rootContainerElement, 'onChange');
- // break;
- // case 'option':
- // ReactDOMOptionValidateProps(domElement, rawProps);
- // props = ReactDOMOptionGetHostProps(domElement, rawProps);
- // break;
- // case 'select':
- // ReactDOMSelectInitWrapperState(domElement, rawProps);
- // props = ReactDOMSelectGetHostProps(domElement, rawProps);
- // trapBubbledEvent(TOP_INVALID, domElement);
- // // For controlled components we always need to ensure we're listening
- // // to onChange. Even if there is no listener.
- // ensureListeningTo(rootContainerElement, 'onChange');
- // break;
- // case 'textarea':
- // ReactDOMTextareaInitWrapperState(domElement, rawProps);
- // props = ReactDOMTextareaGetHostProps(domElement, rawProps);
- // trapBubbledEvent(TOP_INVALID, domElement);
- // // For controlled components we always need to ensure we're listening
- // // to onChange. Even if there is no listener.
- // ensureListeningTo(rootContainerElement, 'onChange');
- // break;
- // default:
- // props = rawProps;
- // }
const props = rawProps;
assertValidProps(tag, props);
setInitialDOMProperties(tag, domElement, rootContainerElement, props, false, hostContext);
-
- // switch (tag) {
- // case 'input':
- // // TODO: Make sure we check if this is still unmounted or do any clean
- // // up necessary since we never stop tracking anymore.
- // track((domElement: any));
- // ReactDOMInputPostMountWrapper(domElement, rawProps, false);
- // break;
- // case 'textarea':
- // // TODO: Make sure we check if this is still unmounted or do any clean
- // // up necessary since we never stop tracking anymore.
- // track((domElement: any));
- // ReactDOMTextareaPostMountWrapper(domElement, rawProps);
- // break;
- // case 'option':
- // ReactDOMOptionPostMountWrapper(domElement, rawProps);
- // break;
- // case 'select':
- // ReactDOMSelectPostMountWrapper(domElement, rawProps);
- // break;
- // default:
- // if (typeof props.onClick === 'function') {
- // // TODO: This cast may not be sound for SVG, MathML or custom elements.
- // trapClickOnNonInteractiveElement(((domElement: any): HTMLElement));
- // }
- // break;
- // }
}
export function setInitialDOMProperties(
@@ -188,14 +51,13 @@ export function setInitialDOMProperties(
isCustomComponentTag: boolean,
hostContext: HostContext
): void {
- // console.log(`[setInitialDOMProperties] for: ${domElement}`);
for (const propKey in nextProps) {
if (!nextProps.hasOwnProperty(propKey)) {
continue;
}
const nextProp = nextProps[propKey];
if (propKey === STYLE) {
- if ((global as any).__DEV__) {
+ if ((globalThis as any).__DEV__) {
if (nextProp) {
// Freeze the next style object so that we can assume it won't be
// mutated. We have already warned for this in the past.
@@ -204,11 +66,6 @@ export function setInitialDOMProperties(
}
// Relies on `updateStylesByID` not mutating `styleUpdates`.
setValueForStyles(domElement, nextProp as StyleUpdates);
- // } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
- // const nextHtml = nextProp ? nextProp[HTML] : undefined;
- // if (nextHtml != null) {
- // setInnerHTML(domElement, nextHtml);
- // }
} else if (propKey === CHILDREN) {
if (typeof nextProp === "string") {
// Avoid setting initial textContent when the text is empty. In IE11 setting
@@ -229,13 +86,6 @@ export function setInitialDOMProperties(
// We could have excluded it in the property list instead of
// adding a special case here, but then it wouldn't be emitted
// on server rendering (but we *do* want to emit it in SSR).
- // } else if (registrationNameModules.hasOwnProperty(propKey)) {
- // if (nextProp != null) {
- // if (__DEV__ && typeof nextProp !== 'function') {
- // warnForInvalidEventListener(propKey, nextProp);
- // }
- // ensureListeningTo(rootContainerElement, propKey);
- // }
// TODO: check whether this condition, which makes sense for DOM, makes sense for NativeScript.
} else if (nextProp != null) {
setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag, hostContext);
@@ -250,14 +100,13 @@ export function updateDOMProperties(
isCustomComponentTag: boolean,
hostContext: HostContext
): void {
- // console.log(`[updateDOMProperties] for: ${instance}`);
// TODO: Handle wasCustomComponentTag
for (let i = 0; i < updatePayload.length; i += 2) {
const propKey = updatePayload[i];
const propValue = updatePayload[i + 1];
if (propKey === STYLE) {
- if(propValue !== null){
- /*
+ if (propValue !== null) {
+ /*
* When a React element updates from having no style prop at all to having one, the Host Config's commitUpdate()
* the diffProperties() update payload will consist of e.g. ["style", null, "style", { color: "red" }].
* As far as I can tell, we can just no-op for the ["style", null] update. Alternatively, we could pass in an
@@ -267,8 +116,6 @@ export function updateDOMProperties(
console.log(`[updateDOMProperties] ${instance}.style`, propValue);
setValueForStyles(instance, propValue as StyleUpdates);
}
- // } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
- // setInnerHTML(instance, propValue);
} else if (propKey === CHILDREN) {
/* The fact that React DOM don't handle child nesting here suggests that
* it has already been filtered out beforehand, and children can only be
@@ -277,7 +124,6 @@ export function updateDOMProperties(
} else if (propKey === TEXT && instance instanceof TextBase) {
setTextContent(instance, propValue);
} else {
- // console.log(`[updateDOMProperties] calling setValueForProperty on ${instance} for propKey: ${propKey}; value:`, propValue);
setValueForProperty(instance, propKey, propValue, isCustomComponentTag, hostContext);
}
}
@@ -290,49 +136,11 @@ export function diffProperties(
nextRawProps: object,
rootContainerElement: Container
): null | Array {
- // if(__DEV__){
- // validatePropertiesInDevelopment(tag, nextRawProps);
- // }
-
let updatePayload: null | Array = null;
let lastProps: object = lastRawProps;
let nextProps: object = nextRawProps;
- // switch(tag){
- // case 'input':
- // lastProps = ReactDOMInputGetHostProps(domElement, lastRawProps);
- // nextProps = ReactDOMInputGetHostProps(domElement, nextRawProps);
- // updatePayload = [];
- // break;
- // case 'option':
- // lastProps = ReactDOMOptionGetHostProps(domElement, lastRawProps);
- // nextProps = ReactDOMOptionGetHostProps(domElement, nextRawProps);
- // updatePayload = [];
- // break;
- // case 'select':
- // lastProps = ReactDOMSelectGetHostProps(domElement, lastRawProps);
- // nextProps = ReactDOMSelectGetHostProps(domElement, nextRawProps);
- // updatePayload = [];
- // break;
- // case 'textarea':
- // lastProps = ReactDOMTextareaGetHostProps(domElement, lastRawProps);
- // nextProps = ReactDOMTextareaGetHostProps(domElement, nextRawProps);
- // updatePayload = [];
- // break;
- // default:
- // lastProps = lastRawProps;
- // nextProps = nextRawProps;
- // if (
- // typeof lastProps.onClick !== 'function' &&
- // typeof nextProps.onClick === 'function'
- // ) {
- // // TODO: This cast may not be sound for SVG, MathML or custom elements.
- // trapClickOnNonInteractiveElement(((domElement: any): HTMLElement));
- // }
- // break;
- // }
-
if (typeof tag === "string") {
assertValidProps(tag, nextProps);
} else {
@@ -343,21 +151,22 @@ export function diffProperties(
let propKey: string;
let styleName: string;
- let styleUpdates: StyleUpdates|null = null;
+ let styleUpdates: StyleUpdates | null = null;
for (propKey in lastProps) {
if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {
- // console.log(`[diffProperties] skipping on lastProps key:`, propKey);
continue;
}
if (propKey === STYLE) {
const lastStyle: NativeScriptAttributes["style"] = lastProps[propKey];
- if(lastStyle){
+ if (lastStyle) {
for (styleName in lastStyle) {
if (lastStyle.hasOwnProperty(styleName)) {
if (!styleUpdates) {
styleUpdates = {};
}
- console.log(`[diffProperties.lastProps] style.${styleName} found in last update's style object.`);
+ console.log(
+ `[diffProperties.lastProps] style.${styleName} found in last update's style object.`
+ );
styleUpdates[styleName] = rnsDeletedPropValue; // Will be deleted by default, unless updated.
}
}
@@ -369,13 +178,6 @@ export function diffProperties(
// Noop
} else if (propKey === AUTOFOCUS) {
// Noop. It doesn't work on updates anyway.
- // } else if (registrationNameModules.hasOwnProperty(propKey)) {
- // // This is a special case. If any listener updates we need to ensure
- // // that the "current" fiber pointer gets updated so we need a commit
- // // to update this element.
- // if (!updatePayload) {
- // updatePayload = [];
- // }
} else {
console.log(`[diffProperties] INSPECTING OLDPROPS key:`, propKey);
// For all other deleted properties we add it to the queue. We use
@@ -385,17 +187,14 @@ export function diffProperties(
}
}
- // console.log(`[diffProperties] updatePayload as of lastProp`, updatePayload);
-
for (propKey in nextProps) {
const nextProp = nextProps[propKey];
const lastProp = lastProps != null ? lastProps[propKey] : undefined;
if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || (nextProp == null && lastProp == null)) {
- // console.log(`[diffProperties] skipping on nextProps key:`, propKey);
continue;
}
if (propKey === STYLE) {
- if ((global as any).__DEV__) {
+ if ((globalThis as any).__DEV__) {
if (nextProp) {
// Freeze the next style object so that we can assume it won't be
// mutated. We have already warned for this in the past.
@@ -433,56 +232,22 @@ export function diffProperties(
}
styleUpdates = nextProp;
}
- // } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
- // const nextHtml = nextProp ? nextProp[HTML] : undefined;
- // const lastHtml = lastProp ? lastProp[HTML] : undefined;
- // if (nextHtml != null) {
- // if (lastHtml !== nextHtml) {
- // (updatePayload = updatePayload || []).push(propKey, '' + nextHtml);
- // }
- // } else {
- // // TODO: It might be too late to clear this if we have children
- // // inserted already.
- // }
} else if (propKey === CHILDREN) {
- // console.log(`[diffProperties] got propKey === CHILDREN.`);
- // console.log(`[diffProperties] lastProp`, lastProp);
- // console.log(`[diffProperties] nextProp`, nextProp);
if (lastProp !== nextProp && (typeof nextProp === "string" || typeof nextProp === "number")) {
(updatePayload = updatePayload || []).push(propKey, "" + nextProp);
} else {
- // console.log(`[diffProperties] not pushing for propKey === CHILDREN.`);
}
} else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) {
// Noop
- // } else if (registrationNameModules.hasOwnProperty(propKey)) {
- // if (nextProp != null) {
- // // We eagerly listen to this even though we haven't committed yet.
- // if (__DEV__ && typeof nextProp !== 'function') {
- // warnForInvalidEventListener(propKey, nextProp);
- // }
- // ensureListeningTo(rootContainerElement, propKey);
- // }
- // if (!updatePayload && lastProp !== nextProp) {
- // // This is a special case. If any listener updates we need to ensure
- // // that the "current" props pointer gets updated so we need a commit
- // // to update this element.
- // updatePayload = [];
- // }
} else {
- // console.log(`[diffProperties] INSPECTING NEWPROPS key and nextProp`, propKey, nextProp);
// For any other property we always add it to the queue and then we
// filter it out using the whitelist during the commit.
(updatePayload = updatePayload || []).push(propKey, nextProp);
}
}
if (styleUpdates) {
- // if (__DEV__) {
- // validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE]);
- // }
(updatePayload = updatePayload || []).push(STYLE, styleUpdates);
}
- // console.log(`[diffProperties] updatePayload as of nextProp:`, updatePayload);
return updatePayload;
}
@@ -497,36 +262,7 @@ export function updateProperties(
// Update checked *before* name.
// In the middle of an update, it is possible to have multiple checked.
// When a checked radio tries to change name, browser makes another radio's checked false.
- // if (
- // tag === 'input' &&
- // nextRawProps.type === 'radio' &&
- // nextRawProps.name != null
- // ) {
- // ReactDOMInputUpdateChecked(instance, nextRawProps);
- // }
-
- /* More relevant to HTML. */
- // const wasCustomComponentTag = isCustomComponent(tag, lastRawProps);
- // const isCustomComponentTag = isCustomComponent(tag, nextRawProps);
// Apply the diff.
updateDOMProperties(instance, updatePayload, false, false, hostContext);
-
- /* TODO: I Won't be implementing these for now. */
- // switch (tag) {
- // case 'input':
- // // Update the wrapper around inputs *after* updating props. This has to
- // // happen after `updateDOMProperties`. Otherwise HTML5 input validations
- // // raise warnings and prevent the new value from being assigned.
- // ReactDOMInputUpdateWrapper(instance, nextRawProps);
- // break;
- // case 'textarea':
- // ReactDOMTextareaUpdateWrapper(instance, nextRawProps);
- // break;
- // case 'select':
- // // |