diff --git a/.github/actions/setup-deps/action.yml b/.github/actions/setup-deps/action.yml
new file mode 100644
index 00000000..8f42e008
--- /dev/null
+++ b/.github/actions/setup-deps/action.yml
@@ -0,0 +1,13 @@
+name: "Setup Dependencies"
+runs:
+ using: "composite"
+ steps:
+ - name: Setup Node.js LTS
+ uses: actions/setup-node@v3
+ with:
+ node-version: lts/*
+ cache: yarn
+
+ - name: Install Dependencies
+ run: yarn install
+ shell: bash
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index ce9add29..642bc90e 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -20,27 +20,7 @@ jobs:
with:
fetch-depth: 0
- - name: Set Node.js 16.x
- uses: actions/setup-node@main
- with:
- node-version: 16.x
-
- - name: Get yarn cache directory path
- id: yarn-cache-dir-path
- run: echo "::set-output name=dir::$(yarn cache dir)"
-
- - uses: actions/cache@v2
- id: yarn-cache
- with:
- path: |
- ${{ steps.yarn-cache-dir-path.outputs.dir }}
- node_modules
- key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-yarn-
-
- - name: Install Dependencies
- run: yarn
+ - uses: ./.github/actions/setup-deps
- name: Run Tests
run: yarn cross-env CI=true yarn jest --coverage --color
@@ -56,27 +36,7 @@ jobs:
steps:
- uses: actions/checkout@main
- - name: Set Node.js 16.x
- uses: actions/setup-node@main
- with:
- node-version: 16.x
-
- - name: Get yarn cache directory path
- id: yarn-cache-dir-path
- run: echo "::set-output name=dir::$(yarn cache dir)"
-
- - uses: actions/cache@v2
- id: yarn-cache
- with:
- path: |
- ${{ steps.yarn-cache-dir-path.outputs.dir }}
- node_modules
- key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-yarn-
-
- - name: Install Dependencies
- run: yarn
+ - uses: ./.github/actions/setup-deps
- name: Check Types
run: yarn tsc
@@ -86,27 +46,7 @@ jobs:
steps:
- uses: actions/checkout@main
- - name: Set Node.js 16.x
- uses: actions/setup-node@main
- with:
- node-version: 16.x
-
- - name: Get yarn cache directory path
- id: yarn-cache-dir-path
- run: echo "::set-output name=dir::$(yarn cache dir)"
-
- - uses: actions/cache@v2
- id: yarn-cache
- with:
- path: |
- ${{ steps.yarn-cache-dir-path.outputs.dir }}
- node_modules
- key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-yarn-
-
- - name: Install Dependencies
- run: yarn
+ - uses: ./.github/actions/setup-deps
- name: Run ESLint
run: yarn lint
diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml
new file mode 100644
index 00000000..8732726f
--- /dev/null
+++ b/.github/workflows/publish_snapshot.yml
@@ -0,0 +1,49 @@
+name: Publish (Snapshot)
+
+on:
+ workflow_dispatch:
+ inputs:
+ tag:
+ description: "The npm tag to publish to"
+ required: true
+
+jobs:
+ publish_snapshot:
+ name: Publish (Snapshot)
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@main
+ with:
+ persist-credentials: true # needed for git push
+
+ - uses: ./.github/actions/setup-deps
+
+ - name: version packages
+ run: yarn changeset version --snapshot ${{ inputs.tag }}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: git commit
+ run: |
+ git config --global user.name 'Thinkmill Release Bot'
+ git config --global user.email 'automation+github@thinkmill.com.au'
+ git commit -a -m 'rc'
+
+ - run: yarn build
+
+ - name: Creating .npmrc
+ run: |
+ cat << EOF > "$HOME/.npmrc"
+ //registry.npmjs.org/:_authToken=$NPM_TOKEN
+ EOF
+ env:
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+
+ - name: npm publish, git tag
+ run: yarn changeset publish --tag ${{ inputs.tag }}
+
+ # reset, then push the dangling commit
+ - name: git push
+ run: |
+ git reset HEAD~1 --hard
+ git push origin --tags
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0e670ef5..9ea4de3f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -15,27 +15,7 @@ jobs:
with:
fetch-depth: 0
- - name: Setup Node.js 16.x
- uses: actions/setup-node@main
- with:
- node-version: 16.x
-
- - name: Get yarn cache directory path
- id: yarn-cache-dir-path
- run: echo "::set-output name=dir::$(yarn cache dir)"
-
- - uses: actions/cache@v2
- id: yarn-cache
- with:
- path: |
- ${{ steps.yarn-cache-dir-path.outputs.dir }}
- node_modules
- key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-yarn-
-
- - name: Install Dependencies
- run: yarn
+ - uses: ./.github/actions/setup-deps
- name: "Create Pull Request or Publish to npm"
uses: changesets/action@v1
diff --git a/.gitignore b/.gitignore
index d4fd368c..a8423703 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,5 @@ coverage/
.cache/
public/
dist/
-*.log
\ No newline at end of file
+*.log
+.vscode/settings.json
diff --git a/.nvmrc b/.nvmrc
index dc79191d..2edeafb0 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-16.16
\ No newline at end of file
+20
\ No newline at end of file
diff --git a/README.md b/README.md
index e6ae5c66..38302f58 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,20 @@
> Dev and build your code painlessly in monorepos
+
+
+
+
+
+
+
+
+
+
+
+
+---
+
## Key Features
- In dev mode, your code behaves the same as it will in production, including locally linked in monorepos
diff --git a/build/package.json b/build/package.json
index 32d667c7..a5a695eb 100644
--- a/build/package.json
+++ b/build/package.json
@@ -4,7 +4,7 @@
"main": "index.js",
"license": "MIT",
"dependencies": {
- "@preconstruct/cli": "^1.1.11"
+ "@preconstruct/cli": "^2.8.1"
},
"resolutions": {
"**/@babel/parser": "^7.7.7"
diff --git a/build/yarn.lock b/build/yarn.lock
index 2382dbb6..8b7eae64 100644
--- a/build/yarn.lock
+++ b/build/yarn.lock
@@ -9,6 +9,13 @@
dependencies:
"@babel/highlight" "^7.0.0"
+"@babel/code-frame@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658"
+ integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==
+ dependencies:
+ "@babel/highlight" "^7.22.5"
+
"@babel/code-frame@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
@@ -16,26 +23,6 @@
dependencies:
"@babel/highlight" "^7.8.3"
-"@babel/core@^7.6.4":
- version "7.6.4"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff"
- integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==
- dependencies:
- "@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.4"
- "@babel/helpers" "^7.6.2"
- "@babel/parser" "^7.6.4"
- "@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.3"
- "@babel/types" "^7.6.3"
- convert-source-map "^1.1.0"
- debug "^4.1.0"
- json5 "^2.1.0"
- lodash "^4.17.13"
- resolve "^1.3.2"
- semver "^5.4.1"
- source-map "^0.5.0"
-
"@babel/core@^7.7.7":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
@@ -58,15 +45,15 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.6.3", "@babel/generator@^7.6.4":
- version "7.6.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671"
- integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==
+"@babel/generator@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7"
+ integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==
dependencies:
- "@babel/types" "^7.6.3"
+ "@babel/types" "^7.22.5"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
- lodash "^4.17.13"
- source-map "^0.5.0"
"@babel/generator@^7.9.0", "@babel/generator@^7.9.5":
version "7.9.5"
@@ -78,14 +65,18 @@
lodash "^4.17.13"
source-map "^0.5.0"
-"@babel/helper-function-name@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
- integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
+"@babel/helper-environment-visitor@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
+ integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
+
+"@babel/helper-function-name@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
+ integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==
dependencies:
- "@babel/helper-get-function-arity" "^7.0.0"
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/template" "^7.22.5"
+ "@babel/types" "^7.22.5"
"@babel/helper-function-name@^7.9.5":
version "7.9.5"
@@ -96,13 +87,6 @@
"@babel/template" "^7.8.3"
"@babel/types" "^7.9.5"
-"@babel/helper-get-function-arity@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
- integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
- dependencies:
- "@babel/types" "^7.0.0"
-
"@babel/helper-get-function-arity@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5"
@@ -110,6 +94,13 @@
dependencies:
"@babel/types" "^7.8.3"
+"@babel/helper-hoist-variables@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
"@babel/helper-member-expression-to-functions@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c"
@@ -117,12 +108,12 @@
dependencies:
"@babel/types" "^7.8.3"
-"@babel/helper-module-imports@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
- integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
+"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
+ integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.22.5"
"@babel/helper-module-imports@^7.8.3":
version "7.8.3"
@@ -131,17 +122,19 @@
dependencies:
"@babel/types" "^7.8.3"
-"@babel/helper-module-transforms@^7.4.4":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
- integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==
- dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/template" "^7.4.4"
- "@babel/types" "^7.5.5"
- lodash "^4.17.13"
+"@babel/helper-module-transforms@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef"
+ integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-module-imports" "^7.22.5"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.5"
+ "@babel/template" "^7.22.5"
+ "@babel/traverse" "^7.22.5"
+ "@babel/types" "^7.22.5"
"@babel/helper-module-transforms@^7.9.0":
version "7.9.0"
@@ -163,10 +156,10 @@
dependencies:
"@babel/types" "^7.8.3"
-"@babel/helper-plugin-utils@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
- integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
+"@babel/helper-plugin-utils@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
+ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
"@babel/helper-replace-supers@^7.8.6":
version "7.8.6"
@@ -178,13 +171,12 @@
"@babel/traverse" "^7.8.6"
"@babel/types" "^7.8.6"
-"@babel/helper-simple-access@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
- integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
+"@babel/helper-simple-access@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
+ integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
dependencies:
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.22.5"
"@babel/helper-simple-access@^7.8.3":
version "7.8.3"
@@ -194,12 +186,12 @@
"@babel/template" "^7.8.3"
"@babel/types" "^7.8.3"
-"@babel/helper-split-export-declaration@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
- integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
+"@babel/helper-split-export-declaration@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08"
+ integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.22.5"
"@babel/helper-split-export-declaration@^7.8.3":
version "7.8.3"
@@ -208,20 +200,21 @@
dependencies:
"@babel/types" "^7.8.3"
+"@babel/helper-string-parser@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
+ integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
+
+"@babel/helper-validator-identifier@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
+ integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
+
"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==
-"@babel/helpers@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153"
- integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==
- dependencies:
- "@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.2"
- "@babel/types" "^7.6.0"
-
"@babel/helpers@^7.9.0":
version "7.9.2"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f"
@@ -240,6 +233,15 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
+"@babel/highlight@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031"
+ integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.5"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
"@babel/highlight@^7.8.3":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
@@ -249,20 +251,19 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4", "@babel/parser@^7.7.7", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0":
+"@babel/parser@^7.22.5", "@babel/parser@^7.7.7", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0":
version "7.9.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8"
integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==
-"@babel/plugin-transform-modules-commonjs@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486"
- integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==
+"@babel/plugin-transform-modules-commonjs@^7.7.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa"
+ integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==
dependencies:
- "@babel/helper-module-transforms" "^7.4.4"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
- babel-plugin-dynamic-import-node "^2.3.0"
+ "@babel/helper-module-transforms" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-simple-access" "^7.22.5"
"@babel/runtime@^7.7.7":
version "7.9.2"
@@ -271,14 +272,14 @@
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
- integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==
+"@babel/template@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
+ integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==
dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.6.0"
- "@babel/types" "^7.6.0"
+ "@babel/code-frame" "^7.22.5"
+ "@babel/parser" "^7.22.5"
+ "@babel/types" "^7.22.5"
"@babel/template@^7.8.3", "@babel/template@^7.8.6":
version "7.8.6"
@@ -289,20 +290,21 @@
"@babel/parser" "^7.8.6"
"@babel/types" "^7.8.6"
-"@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9"
- integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==
- dependencies:
- "@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.3"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/parser" "^7.6.3"
- "@babel/types" "^7.6.3"
+"@babel/traverse@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1"
+ integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==
+ dependencies:
+ "@babel/code-frame" "^7.22.5"
+ "@babel/generator" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.5"
+ "@babel/parser" "^7.22.5"
+ "@babel/types" "^7.22.5"
debug "^4.1.0"
globals "^11.1.0"
- lodash "^4.17.13"
"@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0":
version "7.9.5"
@@ -319,13 +321,13 @@
globals "^11.1.0"
lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09"
- integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==
+"@babel/types@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
+ integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
dependencies:
- esutils "^2.0.2"
- lodash "^4.17.13"
+ "@babel/helper-string-parser" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.5"
to-fast-properties "^2.0.0"
"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5":
@@ -337,6 +339,48 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
+"@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
+ integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+
+"@jridgewell/set-array@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+
+"@jridgewell/source-map@^0.3.3":
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.4.tgz#856a142864530d4059dda415659b48d37db2d556"
+ integrity sha512-KE/SxsDqNs3rrWwFHcRh15ZLVFrI0YoZtgAdIyIq9k5hUNmiWRXXThPomIxHuL20sLdgzbDFyvkUMna14bvtrw==
+
+"@jridgewell/sourcemap-codec@1.4.14":
+ version "1.4.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.18"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
+ integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
"@nodelib/fs.scandir@2.1.3":
version "2.1.3"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
@@ -358,102 +402,106 @@
"@nodelib/fs.scandir" "2.1.3"
fastq "^1.6.0"
-"@preconstruct/cli@^1.1.11":
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/@preconstruct/cli/-/cli-1.1.11.tgz#066769ac3e64d72a72b4cb73201bf3335f61a10f"
- integrity sha512-QRG7u+DQMBKNYRPocGJP2Of3rhCVHgpucHSlN7p7NQj3c+C9Fq2mfD85Xi9G97NehIGJj5y7f0PR2TrPe1U/Ug==
+"@preconstruct/cli@^2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@preconstruct/cli/-/cli-2.8.1.tgz#7d7f9fa32e1bfd355d79062a9ccc5af4c97b3915"
+ integrity sha512-PX5w+au06iY/QaT+9RLmRlIfavRCRoMTC/krwtNrgPEnubR9e6P+QlywrKmwiEvkzbR9AEzGnRZL8uNRDDMzrQ==
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/core" "^7.7.7"
+ "@babel/helper-module-imports" "^7.10.4"
"@babel/runtime" "^7.7.7"
- "@preconstruct/hook" "^0.1.0"
- "@rollup/plugin-alias" "^3.0.1"
- "@rollup/plugin-commonjs" "^11.0.2"
- "@rollup/plugin-json" "^4.0.2"
- "@rollup/plugin-node-resolve" "^7.1.1"
- "@rollup/plugin-replace" "^2.3.1"
- "@rollup/pluginutils" "^3.0.8"
+ "@preconstruct/hook" "^0.4.0"
+ "@rollup/plugin-alias" "^3.1.1"
+ "@rollup/plugin-commonjs" "^15.0.0"
+ "@rollup/plugin-json" "^4.1.0"
+ "@rollup/plugin-node-resolve" "^11.2.1"
+ "@rollup/plugin-replace" "^2.4.1"
builtin-modules "^3.1.0"
- chalk "^2.4.2"
- dataloader "^1.4.0"
+ chalk "^4.1.0"
+ dataloader "^2.0.0"
detect-indent "^6.0.0"
- enquirer "^2.3.2"
+ enquirer "^2.3.6"
+ estree-walker "^2.0.1"
fast-deep-equal "^2.0.1"
- fs-extra "^8.1.0"
- globby "^10.0.1"
- jest-worker "24.9.0"
- magic-string "^0.25.4"
- meow "^5.0.0"
- micromatch "^4.0.2"
+ fast-glob "^3.2.4"
+ fs-extra "^9.0.1"
+ is-ci "^2.0.0"
+ is-reference "^1.2.1"
+ jest-worker "^26.3.0"
+ magic-string "^0.30.0"
+ meow "^7.1.0"
ms "^2.1.2"
normalize-path "^3.0.0"
- npm-packlist "^2.0.2"
- p-limit "^2.2.1"
+ npm-packlist "^2.1.2"
+ p-limit "^3.0.2"
parse-glob "^3.0.4"
- parse-json "^5.0.0"
- quick-lru "^4.0.1"
- resolve "^1.12.0"
+ parse-json "^5.1.0"
+ quick-lru "^5.1.1"
+ resolve "^1.17.0"
resolve-from "^5.0.0"
- rollup "^1.30.1"
- terser "^4.3.9"
- v8-compile-cache "^2.1.0"
- xxhash-wasm "^0.3.1"
+ rollup "^2.79.1"
+ semver "^7.3.4"
+ terser "^5.16.8"
+ v8-compile-cache "^2.1.1"
+ zod "^3.21.4"
-"@preconstruct/hook@^0.1.0":
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/@preconstruct/hook/-/hook-0.1.0.tgz#a65b9bbbd03528f203589124fdf9ffc32841bb0b"
- integrity sha512-d9wGFZmxZF/SH9xFhUy9bYZxcg+JQamc0xQw6IFgbw6BMwqQNoB06mDoY/1o+s+GhDPuWLv+7jRyvWkbsib9fQ==
+"@preconstruct/hook@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@preconstruct/hook/-/hook-0.4.0.tgz#c15dfacfc6e60652a6837209c2fd87f0240b099e"
+ integrity sha512-a7mrlPTM3tAFJyz43qb4pPVpUx8j8TzZBFsNFqcKcE/sEakNXRlQAuCT4RGZRf9dQiiUnBahzSIWawU4rENl+Q==
dependencies:
- "@babel/core" "^7.6.4"
- "@babel/plugin-transform-modules-commonjs" "^7.6.0"
+ "@babel/core" "^7.7.7"
+ "@babel/plugin-transform-modules-commonjs" "^7.7.5"
pirates "^4.0.1"
- source-map-support "^0.5.13"
+ source-map-support "^0.5.16"
-"@rollup/plugin-alias@^3.0.1":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.0.tgz#4f7bc9d15e030d75da9224aaa5105129c54a3ffd"
- integrity sha512-IzoejtAqdfwAvx4D0bztAJFoL5Js36kJgnbO00zfI1B9jf9G80vWysyG0C4+E6w5uG5hz0EeetPpoBWKdNktCQ==
+"@rollup/plugin-alias@^3.1.1":
+ version "3.1.9"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf"
+ integrity sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==
dependencies:
slash "^3.0.0"
-"@rollup/plugin-commonjs@^11.0.2":
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz#60636c7a722f54b41e419e1709df05c7234557ef"
- integrity sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==
+"@rollup/plugin-commonjs@^15.0.0":
+ version "15.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz#1e7d076c4f1b2abf7e65248570e555defc37c238"
+ integrity sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==
dependencies:
- "@rollup/pluginutils" "^3.0.8"
+ "@rollup/pluginutils" "^3.1.0"
commondir "^1.0.1"
- estree-walker "^1.0.1"
- glob "^7.1.2"
- is-reference "^1.1.2"
- magic-string "^0.25.2"
- resolve "^1.11.0"
+ estree-walker "^2.0.1"
+ glob "^7.1.6"
+ is-reference "^1.2.1"
+ magic-string "^0.25.7"
+ resolve "^1.17.0"
-"@rollup/plugin-json@^4.0.2":
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.0.3.tgz#747e2c2884c5a0fa00b66c9c0f3f1012cddca534"
- integrity sha512-QMUT0HZNf4CX17LMdwaslzlYHUKTYGuuk34yYIgZrNdu+pMEfqMS55gck7HEeHBKXHM4cz5Dg1OVwythDdbbuQ==
+"@rollup/plugin-json@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3"
+ integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==
dependencies:
"@rollup/pluginutils" "^3.0.8"
-"@rollup/plugin-node-resolve@^7.1.1":
- version "7.1.3"
- resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca"
- integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==
+"@rollup/plugin-node-resolve@^11.2.1":
+ version "11.2.1"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60"
+ integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==
dependencies:
- "@rollup/pluginutils" "^3.0.8"
- "@types/resolve" "0.0.8"
+ "@rollup/pluginutils" "^3.1.0"
+ "@types/resolve" "1.17.1"
builtin-modules "^3.1.0"
+ deepmerge "^4.2.2"
is-module "^1.0.0"
- resolve "^1.14.2"
+ resolve "^1.19.0"
-"@rollup/plugin-replace@^2.3.1":
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.3.2.tgz#da4e0939047f793c2eb5eedfd6c271232d0a033f"
- integrity sha512-KEEL7V2tMNOsbAoNMKg91l1sNXBDoiP31GFlqXVOuV5691VQKzKBh91+OKKOG4uQWYqcFskcjFyh1d5YnZd0Zw==
+"@rollup/plugin-replace@^2.4.1":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a"
+ integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==
dependencies:
- "@rollup/pluginutils" "^3.0.8"
- magic-string "^0.25.5"
+ "@rollup/pluginutils" "^3.1.0"
+ magic-string "^0.25.7"
"@rollup/pluginutils@^3.0.8":
version "3.0.9"
@@ -464,51 +512,51 @@
estree-walker "^1.0.1"
micromatch "^4.0.2"
+"@rollup/pluginutils@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
+ integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
+ dependencies:
+ "@types/estree" "0.0.39"
+ estree-walker "^1.0.1"
+ picomatch "^2.2.2"
+
"@types/estree@*", "@types/estree@0.0.39":
version "0.0.39"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
-"@types/events@*":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
- integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
-
-"@types/glob@^7.1.1":
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
- integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
- dependencies:
- "@types/events" "*"
- "@types/minimatch" "*"
- "@types/node" "*"
-
-"@types/minimatch@*":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
- integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+"@types/minimist@^1.2.0":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c"
+ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
"@types/node@*":
version "12.12.5"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.5.tgz#66103d2eddc543d44a04394abb7be52506d7f290"
integrity sha512-KEjODidV4XYUlJBF3XdjSH5FWoMCtO0utnhtdLf1AgeuZLOrRbvmU/gaRCVg7ZaQDjVf3l84egiY0mRNe5xE4A==
-"@types/resolve@0.0.8":
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
- integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301"
+ integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==
+
+"@types/resolve@1.17.1":
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
+ integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
dependencies:
"@types/node" "*"
-acorn@^7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
- integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
+acorn@^8.8.2:
+ version "8.9.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59"
+ integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==
-ansi-colors@^3.2.1:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
- integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
+ansi-colors@^4.1.1:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
+ integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
ansi-styles@^3.2.1:
version "3.2.1"
@@ -517,27 +565,22 @@ ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
-array-find-index@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
- integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
-
-array-union@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
- integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-babel-plugin-dynamic-import-node@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
- integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
- dependencies:
- object.assign "^4.1.0"
+at-least-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+ integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
balanced-match@^1.0.0:
version "1.0.0"
@@ -552,7 +595,7 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
-braces@^3.0.1:
+braces@^3.0.1, braces@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -569,21 +612,21 @@ builtin-modules@^3.1.0:
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==
-camelcase-keys@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
- integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=
+camelcase-keys@^6.2.2:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0"
+ integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==
dependencies:
- camelcase "^4.1.0"
- map-obj "^2.0.0"
- quick-lru "^1.0.0"
+ camelcase "^5.3.1"
+ map-obj "^4.0.0"
+ quick-lru "^4.0.1"
-camelcase@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
- integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
+camelcase@^5.0.0, camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-chalk@^2.0.0, chalk@^2.4.2:
+chalk@^2.0.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -592,6 +635,19 @@ chalk@^2.0.0, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+chalk@^4.1.0:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
color-convert@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@@ -599,11 +655,23 @@ color-convert@^1.9.0:
dependencies:
color-name "1.1.3"
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@@ -619,13 +687,6 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-convert-source-map@^1.1.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
- integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
- dependencies:
- safe-buffer "~5.1.1"
-
convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
@@ -633,17 +694,10 @@ convert-source-map@^1.7.0:
dependencies:
safe-buffer "~5.1.1"
-currently-unhandled@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
- integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
- dependencies:
- array-find-index "^1.0.1"
-
-dataloader@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8"
- integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==
+dataloader@^2.0.0:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0"
+ integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==
debug@^4.1.0:
version "4.1.1"
@@ -652,44 +706,35 @@ debug@^4.1.0:
dependencies:
ms "^2.1.1"
-decamelize-keys@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
- integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=
+decamelize-keys@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8"
+ integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==
dependencies:
decamelize "^1.1.0"
map-obj "^1.0.0"
-decamelize@^1.1.0:
+decamelize@^1.1.0, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-define-properties@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
- dependencies:
- object-keys "^1.0.12"
+deepmerge@^4.2.2:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
detect-indent@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd"
integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==
-dir-glob@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
- integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
- dependencies:
- path-type "^4.0.0"
-
-enquirer@^2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.2.tgz#1c30284907cadff5ed2404bd8396036dd3da070e"
- integrity sha512-PLhTMPUXlnaIv9D3Cq3/Zr1xb7soeDDgunobyCmYLUG19n24dvC8i+ZZgm2DekGpDnx7JvFSHV7lxfM58PMtbA==
+enquirer@^2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+ integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
dependencies:
- ansi-colors "^3.2.1"
+ ansi-colors "^4.1.1"
error-ex@^1.3.1:
version "1.3.2"
@@ -708,6 +753,11 @@ estree-walker@^1.0.1:
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
+estree-walker@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
+ integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -718,16 +768,16 @@ fast-deep-equal@^2.0.1:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
-fast-glob@^3.0.3:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.0.tgz#77375a7e3e6f6fc9b18f061cddd28b8d1eec75ae"
- integrity sha512-TrUz3THiq2Vy3bjfQUB2wNyPdGBeGmdjbzzBLhfHN4YFurYptCKwGq/TfiRavbGywFRzY6U2CdmQ1zmsY5yYaw==
+fast-glob@^3.2.4:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0"
+ integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.0"
+ glob-parent "^5.1.2"
merge2 "^1.3.0"
- micromatch "^4.0.2"
+ micromatch "^4.0.4"
fastq@^1.6.0:
version "1.6.0"
@@ -743,27 +793,34 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-find-up@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
dependencies:
- locate-path "^2.0.0"
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
-fs-extra@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
- integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+fs-extra@^9.0.1:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+ integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
dependencies:
+ at-least-node "^1.0.0"
graceful-fs "^4.2.0"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -789,14 +846,14 @@ glob-parent@^2.0.0:
dependencies:
is-glob "^2.0.0"
-glob-parent@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
- integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
+glob-parent@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
-glob@^7.1.2, glob@^7.1.6:
+glob@^7.1.6:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -808,51 +865,37 @@ glob@^7.1.2, glob@^7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.3:
- version "7.1.5"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0"
- integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==
- 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"
-
globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-globby@^10.0.1:
- version "10.0.1"
- resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22"
- integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==
- dependencies:
- "@types/glob" "^7.1.1"
- array-union "^2.1.0"
- dir-glob "^3.0.1"
- fast-glob "^3.0.3"
- glob "^7.1.3"
- ignore "^5.1.1"
- merge2 "^1.2.3"
- slash "^3.0.0"
-
-graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+hard-rejection@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
+ integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
-has-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
- integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
hosted-git-info@^2.1.4:
version "2.8.5"
@@ -866,15 +909,10 @@ ignore-walk@^3.0.3:
dependencies:
minimatch "^3.0.4"
-ignore@^5.1.1:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
- integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
-
-indent-string@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
- integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
+indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
inflight@^1.0.4:
version "1.0.6"
@@ -894,6 +932,20 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+ dependencies:
+ ci-info "^2.0.0"
+
+is-core-module@^2.11.0:
+ version "2.12.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
+ integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
+ dependencies:
+ has "^1.0.3"
+
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
@@ -938,20 +990,21 @@ is-plain-obj@^1.1.0:
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
-is-reference@^1.1.2:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427"
- integrity sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==
+is-reference@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
+ integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
dependencies:
- "@types/estree" "0.0.39"
+ "@types/estree" "*"
-jest-worker@24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
- integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
+jest-worker@^26.3.0:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+ integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
dependencies:
+ "@types/node" "*"
merge-stream "^2.0.0"
- supports-color "^6.1.0"
+ supports-color "^7.0.0"
js-tokens@^4.0.0:
version "4.0.0"
@@ -968,12 +1021,10 @@ json-parse-better-errors@^1.0.1:
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-json5@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6"
- integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==
- dependencies:
- minimist "^1.2.0"
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
json5@^2.1.2:
version "2.1.3"
@@ -982,94 +1033,91 @@ json5@^2.1.2:
dependencies:
minimist "^1.2.5"
-jsonfile@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
- integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
optionalDependencies:
graceful-fs "^4.1.6"
+kind-of@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
lines-and-columns@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-load-json-file@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
- integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
- strip-bom "^3.0.0"
-
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
+ p-locate "^4.1.0"
lodash@^4.17.13:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-loud-rejection@^1.0.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
- integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
dependencies:
- currently-unhandled "^0.4.1"
- signal-exit "^3.0.0"
+ yallist "^4.0.0"
-magic-string@^0.25.2, magic-string@^0.25.4:
- version "0.25.4"
- resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143"
- integrity sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==
+magic-string@^0.25.7:
+ version "0.25.9"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
+ integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
dependencies:
- sourcemap-codec "^1.4.4"
+ sourcemap-codec "^1.4.8"
-magic-string@^0.25.5:
- version "0.25.7"
- resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
- integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
+magic-string@^0.30.0:
+ version "0.30.0"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529"
+ integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==
dependencies:
- sourcemap-codec "^1.4.4"
+ "@jridgewell/sourcemap-codec" "^1.4.13"
map-obj@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
-map-obj@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9"
- integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk=
+map-obj@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
+ integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
-meow@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4"
- integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==
- dependencies:
- camelcase-keys "^4.0.0"
- decamelize-keys "^1.0.0"
- loud-rejection "^1.0.0"
- minimist-options "^3.0.1"
- normalize-package-data "^2.3.4"
- read-pkg-up "^3.0.0"
- redent "^2.0.0"
- trim-newlines "^2.0.0"
- yargs-parser "^10.0.0"
+meow@^7.1.0:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306"
+ integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==
+ dependencies:
+ "@types/minimist" "^1.2.0"
+ camelcase-keys "^6.2.2"
+ decamelize-keys "^1.1.0"
+ hard-rejection "^2.1.0"
+ minimist-options "4.1.0"
+ normalize-package-data "^2.5.0"
+ read-pkg-up "^7.0.1"
+ redent "^3.0.0"
+ trim-newlines "^3.0.0"
+ type-fest "^0.13.1"
+ yargs-parser "^18.1.3"
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-merge2@^1.2.3, merge2@^1.3.0:
+merge2@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==
@@ -1082,6 +1130,19 @@ micromatch@^4.0.2:
braces "^3.0.1"
picomatch "^2.0.5"
+micromatch@^4.0.4:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ dependencies:
+ braces "^3.0.2"
+ picomatch "^2.3.1"
+
+min-indent@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
+ integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -1089,18 +1150,14 @@ minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
-minimist-options@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954"
- integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==
+minimist-options@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
+ integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==
dependencies:
arrify "^1.0.1"
is-plain-obj "^1.1.0"
-
-minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
- integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+ kind-of "^6.0.3"
minimist@^1.2.5:
version "1.2.5"
@@ -1117,7 +1174,7 @@ node-modules-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
+normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
@@ -1144,31 +1201,16 @@ npm-normalize-package-bin@^1.0.1:
resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
-npm-packlist@^2.0.2:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.1.tgz#08806a1df79acdc43d02d20c83a3d5472d96c90c"
- integrity sha512-95TSDvGwujIhqfSpIiRRLodEF+y6mJMopuZdahoGzqtRDFZXGav46S0p6ngeWaiAkb5R72w6eVARhzej0HvZeQ==
+npm-packlist@^2.1.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8"
+ integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==
dependencies:
glob "^7.1.6"
ignore-walk "^3.0.3"
npm-bundled "^1.1.1"
npm-normalize-package-bin "^1.0.1"
-object-keys@^1.0.11, object-keys@^1.0.12:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object.assign@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
- integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
- dependencies:
- define-properties "^1.1.2"
- function-bind "^1.1.1"
- has-symbols "^1.0.0"
- object-keys "^1.0.11"
-
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -1176,31 +1218,26 @@ once@^1.3.0:
dependencies:
wrappy "1"
-p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
- integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
- dependencies:
- p-try "^1.0.0"
-
-p-limit@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
- integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
dependencies:
p-try "^2.0.0"
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+p-limit@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
dependencies:
- p-limit "^1.1.0"
+ yocto-queue "^0.1.0"
-p-try@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
- integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
p-try@^2.0.0:
version "2.2.0"
@@ -1217,14 +1254,6 @@ parse-glob@^3.0.4:
is-extglob "^1.0.0"
is-glob "^2.0.0"
-parse-json@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
- dependencies:
- error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
-
parse-json@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
@@ -1235,10 +1264,20 @@ parse-json@^5.0.0:
json-parse-better-errors "^1.0.1"
lines-and-columns "^1.1.6"
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+parse-json@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
path-is-absolute@^1.0.0:
version "1.0.1"
@@ -1250,27 +1289,20 @@ path-parse@^1.0.6:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
-path-type@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
- integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
- dependencies:
- pify "^3.0.0"
-
-path-type@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
- integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
picomatch@^2.0.5:
version "2.1.0"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.0.tgz#0fd042f568d08b1ad9ff2d3ec0f0bfb3cb80e177"
integrity sha512-uhnEDzAbrcJ8R3g2fANnSuXZMBtkpSjxTTgn2LeSiQlfmq72enQJWdQllXW24MBLYnA1SBD2vfvx2o0Zw3Ielw==
-pify@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
- integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+picomatch@^2.2.2, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pirates@^4.0.1:
version "4.0.1"
@@ -1279,40 +1311,42 @@ pirates@^4.0.1:
dependencies:
node-modules-regexp "^1.0.0"
-quick-lru@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
- integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=
-
quick-lru@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
-read-pkg-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
- integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=
+quick-lru@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+ integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
dependencies:
- find-up "^2.0.0"
- read-pkg "^3.0.0"
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
-read-pkg@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
dependencies:
- load-json-file "^4.0.0"
- normalize-package-data "^2.3.2"
- path-type "^3.0.0"
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
-redent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa"
- integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=
+redent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+ integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
dependencies:
- indent-string "^3.0.0"
- strip-indent "^2.0.0"
+ indent-string "^4.0.0"
+ strip-indent "^3.0.0"
regenerator-runtime@^0.13.4:
version "0.13.5"
@@ -1324,33 +1358,33 @@ resolve-from@^5.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.2:
+resolve@^1.10.0, resolve@^1.3.2:
version "1.12.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
dependencies:
path-parse "^1.0.6"
-resolve@^1.14.2:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c"
- integrity sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig==
+resolve@^1.17.0, resolve@^1.19.0:
+ version "1.22.2"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
+ integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
dependencies:
- path-parse "^1.0.6"
+ is-core-module "^2.11.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
reusify@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rollup@^1.30.1:
- version "1.32.1"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4"
- integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==
- dependencies:
- "@types/estree" "*"
- "@types/node" "*"
- acorn "^7.1.0"
+rollup@^2.79.1:
+ version "2.79.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
+ integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
+ optionalDependencies:
+ fsevents "~2.3.2"
run-parallel@^1.1.9:
version "1.1.9"
@@ -1367,20 +1401,22 @@ safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-signal-exit@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
- integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+semver@^7.3.4:
+ version "7.5.3"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e"
+ integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==
+ dependencies:
+ lru-cache "^6.0.0"
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-source-map-support@^0.5.13, source-map-support@~0.5.12:
- version "0.5.16"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
- integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
+source-map-support@^0.5.16, source-map-support@~0.5.20:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -1390,15 +1426,15 @@ source-map@^0.5.0:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-source-map@^0.6.0, source-map@~0.6.1:
+source-map@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-sourcemap-codec@^1.4.4:
- version "1.4.6"
- resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9"
- integrity sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==
+sourcemap-codec@^1.4.8:
+ version "1.4.8"
+ resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+ integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
spdx-correct@^3.0.0:
version "3.1.0"
@@ -1426,15 +1462,12 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
-strip-bom@^3.0.0:
+strip-indent@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
-
-strip-indent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
- integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+ integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+ dependencies:
+ min-indent "^1.0.0"
supports-color@^5.3.0:
version "5.5.0"
@@ -1443,21 +1476,27 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
- integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
+supports-color@^7.0.0, supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
dependencies:
- has-flag "^3.0.0"
+ has-flag "^4.0.0"
-terser@^4.3.9:
- version "4.3.9"
- resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.9.tgz#e4be37f80553d02645668727777687dad26bbca8"
- integrity sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA==
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+terser@^5.16.8:
+ version "5.18.2"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.2.tgz#ff3072a0faf21ffd38f99acc9a0ddf7b5f07b948"
+ integrity sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==
dependencies:
+ "@jridgewell/source-map" "^0.3.3"
+ acorn "^8.8.2"
commander "^2.20.0"
- source-map "~0.6.1"
- source-map-support "~0.5.12"
+ source-map-support "~0.5.20"
to-fast-properties@^2.0.0:
version "2.0.0"
@@ -1471,20 +1510,35 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
-trim-newlines@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20"
- integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=
+trim-newlines@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
+ integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
-universalify@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
- integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+type-fest@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
+ integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
-v8-compile-cache@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
- integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
+type-fest@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+universalify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+ integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
+v8-compile-cache@^2.1.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+ integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
validate-npm-package-license@^3.0.1:
version "3.0.4"
@@ -1499,14 +1553,25 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-xxhash-wasm@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-0.3.1.tgz#2b8a7dbd9647d36a7eba8fd867cef08edab03394"
- integrity sha512-amhCgCYQfhiQFvYjn6kvk4jmY1NXBn5MKdsS0jvxofmHFo77CBrXuV46NYeXACC3qTleugHYg7kNpeFnIA+R8Q==
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-yargs-parser@^10.0.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
- integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
+yargs-parser@^18.1.3:
+ version "18.1.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
dependencies:
- camelcase "^4.1.0"
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zod@^3.21.4:
+ version "3.21.4"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db"
+ integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==
diff --git a/package.json b/package.json
index ce13befb..f6b666db 100644
--- a/package.json
+++ b/package.json
@@ -30,12 +30,11 @@
"@babel/preset-env": "^7.7.7",
"@babel/preset-flow": "^7.10.4",
"@babel/preset-typescript": "^7.9.0",
- "@changesets/changelog-github": "^0.4.1",
- "@changesets/cli": "^2.17.0",
+ "@changesets/changelog-github": "^0.5.0",
+ "@changesets/cli": "^2.27.1",
"@manypkg/cli": "^0.17.0",
"@types/babel__code-frame": "^7.0.1",
"@types/fs-extra": "^9.0.6",
- "@types/inquirer": "^6.5.0",
"@types/jest": "^29.2.2",
"@types/meow": "^5.0.0",
"@types/ms": "^0.7.31",
@@ -57,12 +56,12 @@
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "^7.26.1",
"fixturez": "^1.1.0",
- "jest": "^29.3.1",
+ "jest": "^29.5.0",
"lazy-require.macro": "^0.1.0",
"normalize-path": "^3.0.0",
"outdent": "^0.7.1",
"prettier": "^2.1.2",
- "typescript": "^4.7.4"
+ "typescript": "^5.0.4"
},
"manypkg": {
"defaultBranch": "main"
@@ -72,6 +71,12 @@
"packages/*",
"!packages/next",
"!packages/hook"
- ]
+ ],
+ "exports": {
+ "importConditionDefaultExport": "default"
+ },
+ "___experimentalFlags_WILL_CHANGE_IN_PATCH": {
+ "importsConditions": true
+ }
}
}
diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md
index 50facf79..8c2d9cc9 100644
--- a/packages/cli/CHANGELOG.md
+++ b/packages/cli/CHANGELOG.md
@@ -1,5 +1,149 @@
# preconstruct
+## 2.8.3
+
+### Patch Changes
+
+- [#586](https://github.com/preconstruct/preconstruct/pull/586) [`d8e9cea`](https://github.com/preconstruct/preconstruct/commit/d8e9cea1a7d74fc2ee7eb78fdea1aed64051f370) Thanks [@emmatown](https://github.com/emmatown)! - Add `typeModule` experimental flag
+
+- [#586](https://github.com/preconstruct/preconstruct/pull/586) [`d8e9cea`](https://github.com/preconstruct/preconstruct/commit/d8e9cea1a7d74fc2ee7eb78fdea1aed64051f370) Thanks [@emmatown](https://github.com/emmatown)! - Add `distInRoot` experimental flag
+
+- [#588](https://github.com/preconstruct/preconstruct/pull/588) [`1a2ee56`](https://github.com/preconstruct/preconstruct/commit/1a2ee56d557de074b21597ccd52878087298e02a) Thanks [@emmatown](https://github.com/emmatown)! - Use inline source maps for declaration file redirects
+
+## 2.8.2
+
+### Patch Changes
+
+- [#584](https://github.com/preconstruct/preconstruct/pull/584) [`d79abf2`](https://github.com/preconstruct/preconstruct/commit/d79abf2c78f01c2bfbd50a5288242469defbc630) Thanks [@emmatown](https://github.com/emmatown)! - Fix `.d.cts`/`.d.mts` files breaking declaration generation
+
+* [#570](https://github.com/preconstruct/preconstruct/pull/570) [`edb4320`](https://github.com/preconstruct/preconstruct/commit/edb4320bc2355c0e61060a8c21b821d02e9535ca) Thanks [@Andarist](https://github.com/Andarist)! - Replace the dependency `is-ci` with `ci-info`.
+
+## 2.8.1
+
+### Patch Changes
+
+- [#567](https://github.com/preconstruct/preconstruct/pull/567) [`d4006c8`](https://github.com/preconstruct/preconstruct/commit/d4006c8b550a165ed4153527e7b07ffdea9ae68d) Thanks [@Andarist](https://github.com/Andarist)! - Fixed `.mjs` proxies generation with `___experimentalFlags_WILL_CHANGE_IN_PATCH.importsConditions` and `exports.importConditionDefaultExport: 'default'`
+
+## 2.8.0
+
+### Minor Changes
+
+- [#565](https://github.com/preconstruct/preconstruct/pull/565) [`484c6a7`](https://github.com/preconstruct/preconstruct/commit/484c6a7306236d741a89f7ca6ddef7ff60799f7e) Thanks [@Andarist](https://github.com/Andarist)! - `package.json#exports` have been added to limit what (and how) code might be imported from the package.
+
+* [#566](https://github.com/preconstruct/preconstruct/pull/566) [`9d4f0dc`](https://github.com/preconstruct/preconstruct/commit/9d4f0dccb1a5e6af79cd7e9fa253fc127eb14489) Thanks [@emmatown](https://github.com/emmatown)! - Preconstruct no longer emits unnecessary `.d.ts` files that aren't referenced by an entrypoint
+
+### Patch Changes
+
+- [`58df49f`](https://github.com/preconstruct/preconstruct/commit/58df49f057361be69aa9d7a91ff8b36efaf9d4d8) Thanks [@emmatown](https://github.com/emmatown)! - Fix require hook skipping compiling files when just an entrypoint is loaded
+
+* [#559](https://github.com/preconstruct/preconstruct/pull/559) [`a58f021`](https://github.com/preconstruct/preconstruct/commit/a58f021a79fa93208beb8b351fd17522de6dbcda) Thanks [@emmatown](https://github.com/emmatown)! - Extend import path normalisation in generated declaration files to manually written declaration files as well
+
+## 2.7.0
+
+### Minor Changes
+
+- [#556](https://github.com/preconstruct/preconstruct/pull/556) [`908c43e`](https://github.com/preconstruct/preconstruct/commit/908c43ec4c291eff6bcb4365d6b97887bc8637bb) Thanks [@Andarist](https://github.com/Andarist)! - Always emit relative paths used in generated TS declaration files with resolved extensions of their runtime equivalents. This currently requires one of the 2 experimental flags: `importsConditions` or `onlyEmitUsedTypeScriptDeclarations`
+
+### Patch Changes
+
+- [#554](https://github.com/preconstruct/preconstruct/pull/554) [`1147fee`](https://github.com/preconstruct/preconstruct/commit/1147fee9cf6ee0a4d1174114c979f59bb531eb93) Thanks [@Andarist](https://github.com/Andarist)! - Fix types like `import('#foo').Foo` not replacing the import to `#bar` in generated declarations under the `importsConditions` experimental flag
+
+## 2.6.4
+
+### Patch Changes
+
+- [`e78203b`](https://github.com/preconstruct/preconstruct/commit/e78203b101beb3e4e22ebaaf0d4bc55f36e91429) Thanks [@emmatown](https://github.com/emmatown)! - Fix `.d.ts` files under `importsConditions` experimental flag incorrectly pointing to the source files
+
+## 2.6.3
+
+### Patch Changes
+
+- [#551](https://github.com/preconstruct/preconstruct/pull/551) [`ff61fbf`](https://github.com/preconstruct/preconstruct/commit/ff61fbf095f67fe4f4a883969d156e563c84249a) Thanks [@emmatown](https://github.com/emmatown)! - Add `importsConditions` experimental flag
+
+* [#550](https://github.com/preconstruct/preconstruct/pull/550) [`41a8a4f`](https://github.com/preconstruct/preconstruct/commit/41a8a4fbbd7bf18ca13f7719090cc19fc1b7b63e) Thanks [@emmatown](https://github.com/emmatown)! - Add `onlyEmitUsedTypeScriptDeclarations` experimental flag
+
+- [#548](https://github.com/preconstruct/preconstruct/pull/548) [`db69133`](https://github.com/preconstruct/preconstruct/commit/db691338dc0dc6716c9614673cad69ba7aec1567) Thanks [@Andarist](https://github.com/Andarist)! - Load Babel lazily in the main thread to speed up init time as it isn't needed for all code paths.
+
+## 2.6.2
+
+### Patch Changes
+
+- [#546](https://github.com/preconstruct/preconstruct/pull/546) [`c28b10a`](https://github.com/preconstruct/preconstruct/commit/c28b10a04b3d3a88b8957cab8f0ead8c08d2cb17) Thanks [@emmatown](https://github.com/emmatown)! - `importConditionDefaultExport` is now re-enabled and works with `"moduleResolution": "bundler"`
+
+## 2.6.1
+
+### Patch Changes
+
+- [`5380890`](https://github.com/preconstruct/preconstruct/commit/538089009c687e876a868cd5379c2d96b8c04a97) Thanks [@emmatown](https://github.com/emmatown)! - Disable specifying `importConditionDefaultExport` because it doesn't work correctly in `"moduleResoltion": "bundler"`, `@preconstruct/cli@2.6.0` is npm deprecated, `importConditionDefaultExport` will come back in the future.
+
+## 2.6.0
+
+### Minor Changes
+
+- [#543](https://github.com/preconstruct/preconstruct/pull/543) [`93106e3`](https://github.com/preconstruct/preconstruct/commit/93106e3dd75d579bf48dbce5cb8d942ed8ab34ef) Thanks [@Andarist](https://github.com/Andarist)! - Added a new `exports.importConditionDefaultExport` config option. It allows you to generate `import` exports condition (and corresponding files) to fix the export shape incompatibility between node and bundlers.
+
+ With this option set to `"default"` this will always resolve to what has been written as a default export:
+
+ ```ts
+ // lib/src/index.js
+ export default 42;
+ export const named = "awesome";
+
+ // app/consume.mjs
+ import smth from "lib";
+ smth; // 42, and not `{ default: 42, named: 'awesome' }`
+ ```
+
+* [`233ee25`](https://github.com/preconstruct/preconstruct/commit/233ee252c052c187c66889e03ccffd791e46e741) Thanks [@emmatown](https://github.com/emmatown)! - Top-level `'use server'` directives are now also preserved like `'use client'` directives.
+
+### Patch Changes
+
+- [`4e72d99`](https://github.com/preconstruct/preconstruct/commit/4e72d99e708e12a06486c62de5507c2a1dedf2f5) Thanks [@emmatown](https://github.com/emmatown)! - Fix `'use client'` directives with comments preceding them not being detected
+
+## 2.5.0
+
+### Minor Changes
+
+- [#540](https://github.com/preconstruct/preconstruct/pull/540) [`261140b`](https://github.com/preconstruct/preconstruct/commit/261140ba55fa1438e87b14509ee50c999475b8f4) Thanks [@emmatown](https://github.com/emmatown)! - Self-referencing a package with its name is now allowed. They are emitted as written (not resolved to a particular bundle ahead of time).
+
+### Patch Changes
+
+- [#538](https://github.com/preconstruct/preconstruct/pull/538) [`d2cd411`](https://github.com/preconstruct/preconstruct/commit/d2cd411b343b42aa1ae5a30dd7d72b99fa75165d) Thanks [@emmatown](https://github.com/emmatown)! - Update rollup and magic-string
+
+* [#541](https://github.com/preconstruct/preconstruct/pull/541) [`2fd4ed2`](https://github.com/preconstruct/preconstruct/commit/2fd4ed2f1a35e587908eb2c8883da59e9a5df608) Thanks [@emmatown](https://github.com/emmatown)! - Fix issues with `'use client'` directive module preservation
+
+- [#536](https://github.com/preconstruct/preconstruct/pull/536) [`3645eed`](https://github.com/preconstruct/preconstruct/commit/3645eedf0fec94ab16e8464f244458b03ae95e2e) Thanks [@jordanoverbye](https://github.com/jordanoverbye)! - Upgraded dependency `terser`
+
+## 2.4.4
+
+### Patch Changes
+
+- [`1f83965`](https://github.com/preconstruct/preconstruct/commit/1f83965ff004a84c585a3fde6bb866d6f7f026cd) Thanks [@emmatown](https://github.com/emmatown)! - Fix `preconstruct dev` throwing a syntax error when an entrypoint has a `.d.ts` file with a default export.
+
+## 2.4.3
+
+### Patch Changes
+
+- [`7f6618a`](https://github.com/preconstruct/preconstruct/commit/7f6618a8209e3bfa256c148f03c09bcd5c8881f7) Thanks [@emmatown](https://github.com/emmatown)! - Remove comment for `preconstruct dev` TypeScript re-export file
+
+## 2.4.2
+
+### Patch Changes
+
+- [#530](https://github.com/preconstruct/preconstruct/pull/530) [`2a3722c`](https://github.com/preconstruct/preconstruct/commit/2a3722c41fce82ec269b63967e2a23b609f8799a) Thanks [@emmatown](https://github.com/emmatown)! - Generate declaration maps for the `.d.ts` files that only re-export the actual entrypoints so that go to definition goes directly to the actual entrypoints.
+
+## 2.4.1
+
+### Patch Changes
+
+- [`457b707`](https://github.com/preconstruct/preconstruct/commit/457b707722051219165bb39e673e0b1f3dfdfafd) Thanks [@emmatown](https://github.com/emmatown)! - Fix having a `"use client"` in a non-entrypoint TypeScript file breaking the build
+
+## 2.4.0
+
+### Minor Changes
+
+- [#516](https://github.com/preconstruct/preconstruct/pull/516) [`d363c88`](https://github.com/preconstruct/preconstruct/commit/d363c880e462758f32e899eb1984d59a4f0cdb8d) Thanks [@emmatown](https://github.com/emmatown)! - Modules with `"use client"` directives are now built as their own chunk with the `"use client"` directive preserved.
+
## 2.3.0
### Minor Changes
diff --git a/packages/cli/cli/package.json b/packages/cli/cli/package.json
index d474f67b..11f06beb 100644
--- a/packages/cli/cli/package.json
+++ b/packages/cli/cli/package.json
@@ -1,6 +1,4 @@
{
- "main": "dist/cli.cjs.js",
- "preconstruct": {
- "source": "../src/cli"
- }
+ "main": "dist/talismn-preconstruct-cli-cli.cjs.js",
+ "module": "dist/talismn-preconstruct-cli-cli.esm.js"
}
diff --git a/packages/cli/package.json b/packages/cli/package.json
index f17851ee..de621535 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,7 +1,28 @@
{
- "name": "@preconstruct/cli",
- "version": "2.3.0",
+ "name": "@talismn/preconstruct-cli",
+ "version": "2.8.3",
"description": "Dev and build your code painlessly in monorepos",
+ "exports": {
+ "./cli": {
+ "types": {
+ "import": "./cli/dist/talismn-preconstruct-cli-cli.cjs.mjs",
+ "default": "./cli/dist/talismn-preconstruct-cli-cli.cjs.js"
+ },
+ "module": "./cli/dist/talismn-preconstruct-cli-cli.esm.js",
+ "import": "./cli/dist/talismn-preconstruct-cli-cli.cjs.mjs",
+ "default": "./cli/dist/talismn-preconstruct-cli-cli.cjs.js"
+ },
+ "./worker": {
+ "types": {
+ "import": "./worker/dist/talismn-preconstruct-cli-worker.cjs.mjs",
+ "default": "./worker/dist/talismn-preconstruct-cli-worker.cjs.js"
+ },
+ "module": "./worker/dist/talismn-preconstruct-cli-worker.esm.js",
+ "import": "./worker/dist/talismn-preconstruct-cli-worker.cjs.mjs",
+ "default": "./worker/dist/talismn-preconstruct-cli-worker.cjs.js"
+ },
+ "./package.json": "./package.json"
+ },
"files": [
"bin.js",
"cli",
@@ -12,7 +33,7 @@
"bin": {
"preconstruct": "./bin.js"
},
- "repository": "https://github.com/preconstruct/preconstruct/tree/main/packages/cli",
+ "repository": "https://github.com/Talisman/preconstruct/tree/main/packages/cli",
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.5.5",
@@ -25,8 +46,10 @@
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.2.1",
"@rollup/plugin-replace": "^2.4.1",
+ "@svgr/rollup": "^8.1.0",
"builtin-modules": "^3.1.0",
"chalk": "^4.1.0",
+ "ci-info": "^3.8.0",
"dataloader": "^2.0.0",
"detect-indent": "^6.0.0",
"enquirer": "^2.3.6",
@@ -34,10 +57,9 @@
"fast-deep-equal": "^2.0.1",
"fast-glob": "^3.2.4",
"fs-extra": "^9.0.1",
- "is-ci": "^2.0.0",
"is-reference": "^1.2.1",
"jest-worker": "^26.3.0",
- "magic-string": "^0.25.7",
+ "magic-string": "^0.30.0",
"meow": "^7.1.0",
"ms": "^2.1.2",
"normalize-path": "^3.0.0",
@@ -48,15 +70,16 @@
"quick-lru": "^5.1.1",
"resolve": "^1.17.0",
"resolve-from": "^5.0.0",
- "rollup": "^2.32.0",
+ "rollup": "^2.79.1",
"semver": "^7.3.4",
- "terser": "^5.2.1",
- "v8-compile-cache": "^2.1.1"
+ "terser": "^5.16.8",
+ "v8-compile-cache": "^2.1.1",
+ "zod": "^3.21.4"
},
"preconstruct": {
"entrypoints": [
- "cli",
- "worker"
+ "./cli.ts",
+ "./worker.ts"
]
},
"devDependencies": {
diff --git a/packages/cli/src/__tests__/__snapshots__/dev.ts.snap b/packages/cli/src/__tests__/__snapshots__/dev.ts.snap
deleted file mode 100644
index dfc629bc..00000000
--- a/packages/cli/src/__tests__/__snapshots__/dev.ts.snap
+++ /dev/null
@@ -1,35 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`flow 1`] = `
-"// @flow
-export * from "../src/index.js";
-"
-`;
-
-exports[`flow 2`] = `
-"// @flow
-export * from "../../src/a.js";
-"
-`;
-
-exports[`flow 3`] = `
-"// @flow
-export * from "../../src/b.js";
-"
-`;
-
-exports[`typescript 1`] = `
-"// are you seeing an error that a default export doesn't exist but your source file has a default export?
-// you should run \`yarn\` or \`yarn preconstruct dev\` if preconstruct dev isn't in your postinstall hook
-
-// curious why you need to?
-// this file exists so that you can import from the entrypoint normally
-// except that it points to your source file and you don't need to run build constantly
-// which means we need to re-export all of the modules from your source file
-// and since export * doesn't include default exports, we need to read your source file
-// to check for a default export and re-export it if it exists
-// it's not ideal, but it works pretty well ¯\\_(ツ)_/¯
-export * from "../src/index";
-export { default } from "../src/index";
-"
-`;
diff --git a/packages/cli/src/__tests__/dev.ts b/packages/cli/src/__tests__/dev.ts
index 3bceb0ab..7908e687 100644
--- a/packages/cli/src/__tests__/dev.ts
+++ b/packages/cli/src/__tests__/dev.ts
@@ -2,7 +2,15 @@ import spawn from "spawndamnit";
import path from "path";
import * as fs from "fs-extra";
import * as realFs from "fs";
-import { getFiles, js, testdir, ts, typescriptFixture } from "../../test-utils";
+import {
+ getFiles,
+ js,
+ repoNodeModules,
+ repoRoot,
+ testdir,
+ ts,
+ typescriptFixture,
+} from "../../test-utils";
import dev from "../dev";
import normalizePath from "normalize-path";
import escapeStringRegexp from "escape-string-regexp";
@@ -41,17 +49,17 @@ test("dev command works in node", async () => {
}),
"packages/package-one/src/index.js": js`
- import { message } from "@my-cool-scope/package-two";
+ import { message } from "@my-cool-scope/package-two";
- console.log("message from package one");
- console.log(message);
- `,
+ console.log("message from package one");
+ console.log(message);
+ `,
"packages/package-two/src/index.js": js`
- console.log("message from package two");
+ console.log("message from package two");
- export let message = "message from package two but logged by package one";
- `,
+ export let message = "message from package two but logged by package one";
+ `,
});
await dev(tmpPath);
@@ -72,24 +80,22 @@ test("dev command works in node", async () => {
test("all the build types", async () => {
// TODO: maybe actually require them
- let tmpPath = realFs.realpathSync.native(
- await testdir({
- "package.json": JSON.stringify({
- name: "all-the-build-types",
- main: "dist/all-the-build-types.cjs.js",
- module: "dist/all-the-build-types.esm.js",
- browser: {
- "./dist/all-the-build-types.cjs.js":
- "./dist/all-the-build-types.browser.cjs.js",
- "./dist/all-the-build-types.esm.js":
- "./dist/all-the-build-types.browser.esm.js",
- },
- }),
- "src/index.js": js`
- export default "some cool thing";
- `,
- })
- );
+ let tmpPath = await testdir({
+ "package.json": JSON.stringify({
+ name: "all-the-build-types",
+ main: "dist/all-the-build-types.cjs.js",
+ module: "dist/all-the-build-types.esm.js",
+ browser: {
+ "./dist/all-the-build-types.cjs.js":
+ "./dist/all-the-build-types.browser.cjs.js",
+ "./dist/all-the-build-types.esm.js":
+ "./dist/all-the-build-types.browser.esm.js",
+ },
+ }),
+ "src/index.js": js`
+ export default "some cool thing";
+ `,
+ });
await dev(tmpPath);
@@ -169,12 +175,12 @@ test("source maps work", async () => {
presets: [require.resolve("@babel/preset-env")],
}),
"src/index.js": js`
- class Bar {}
+ class Bar {}
- export class Foo extends Bar {}
+ export class Foo extends Bar {}
- throw new Error("i'm thrown on line 5");
- `,
+ throw new Error("i'm thrown on line 5");
+ `,
});
await dev(tmpPath);
@@ -228,48 +234,42 @@ test("flow", async () => {
}),
"src/index.js": js`
- // @flow
+ // @flow
- export let something = true;
- `,
+ export let something = true;
+ `,
"src/a.js": js`
- // @flow
+ // @flow
- export default "something";
- `,
+ export default "something";
+ `,
"src/b.js": js`
- // @flow
+ // @flow
- let something = true;
+ let something = true;
- export { something as default };
- `,
+ export { something as default };
+ `,
});
await dev(tmpPath);
- expect(
- await fs.readFile(
- path.join(tmpPath, "dist", "flow-dev.cjs.js.flow"),
- "utf8"
- )
- ).toMatchSnapshot();
+ expect(await getFiles(tmpPath, ["**/*.flow"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ a/dist/flow-dev-a.cjs.js.flow ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ // @flow
+ export * from "../../src/a.js";
- expect(
- await fs.readFile(
- path.join(tmpPath, "a", "dist", "flow-dev-a.cjs.js.flow"),
- "utf8"
- )
- ).toMatchSnapshot();
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ b/dist/flow-dev-b.cjs.js.flow ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ // @flow
+ export * from "../../src/b.js";
- expect(
- await fs.readFile(
- path.join(tmpPath, "b", "dist", "flow-dev-b.cjs.js.flow"),
- "utf8"
- )
- ).toMatchSnapshot();
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/flow-dev.cjs.js.flow ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ // @flow
+ export * from "../src/index.js";
+
+ `);
});
test("typescript", async () => {
@@ -277,9 +277,18 @@ test("typescript", async () => {
await dev(tmpPath);
- expect(
- await fs.readFile(path.join(tmpPath, "dist", "typescript.cjs.d.ts"), "utf8")
- ).toMatchSnapshot();
+ expect(await getFiles(tmpPath, ["**/*.d.ts{,.map}", "!node_modules/**"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index";
+ export { default } from "../src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ src/one-more-thing.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ declare var obj: object;
+
+ export { obj };
+ `);
});
test("exports field with worker condition", async () => {
@@ -305,7 +314,7 @@ test("exports field with worker condition", async () => {
},
},
}),
- "src/index.js": "console.log(1)",
+ "src/index.js": 'console.log("1")',
})
);
await dev(tmpPath);
@@ -315,7 +324,7 @@ test("exports field with worker condition", async () => {
]);
expect(files).toMatchInlineSnapshot(`
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/something-blah.esm.js, dist/something-blah.worker.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- console.log(1)
+ ⎯ symlink to src/index.js
`);
await Promise.all(
Object.keys(files).map(async (filename) => {
@@ -334,37 +343,500 @@ test("flow and .d.ts", async () => {
module: "dist/pkg.esm.js",
}),
"src/index.js": js`
- // @flow
+ // @flow
- export const x = "hello";
- `,
+ export const x = "hello";
+ `,
"src/index.d.ts": ts`
- export const x: string;
- `,
+ export const x: string;
+ `,
});
await dev(tmpPath);
const files = await getFiles(tmpPath, ["dist/**", "!dist/pkg.cjs.js"]);
expect(files).toMatchInlineSnapshot(`
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- // are you seeing an error that a default export doesn't exist but your source file has a default export?
- // you should run \`yarn\` or \`yarn preconstruct dev\` if preconstruct dev isn't in your postinstall hook
-
- // curious why you need to?
- // this file exists so that you can import from the entrypoint normally
- // except that it points to your source file and you don't need to run build constantly
- // which means we need to re-export all of the modules from your source file
- // and since export * doesn't include default exports, we need to read your source file
- // to check for a default export and re-export it if it exists
- // it's not ideal, but it works pretty well ¯\\_(ツ)_/¯
export * from "../src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js.flow ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
// @flow
export * from "../src/index.js";
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- // @flow
+ ⎯ symlink to src/index.js
+ `);
+});
+test(".d.ts file with default export", async () => {
+ let dir = await testdir({
+ node_modules: { kind: "symlink", path: repoNodeModules },
+ "package.json": JSON.stringify({
+ name: "typescript",
+ main: "dist/typescript.cjs.js",
+ module: "dist/typescript.esm.js",
+ dependencies: {
+ typescript: "^3.4.5",
+ },
+ }),
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ target: "esnext",
+ module: "commonjs",
+ strict: true,
+ esModuleInterop: true,
+ noEmit: true,
+ },
+ }),
+ ".babelrc": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+ "src/index.js": js`
+ export const a = true;
+ export default a;
+ `,
+ "src/index.d.ts": ts`
+ export declare const a: boolean;
+ export default a;
+ `,
+ });
+ await dev(dir);
+ expect(await getFiles(dir, ["dist/typescript.cjs.d.ts"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index.js";
+ export { default } from "../src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("with default", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@mjs-proxy/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./something": {
+ module: "./something/dist/pkg-a-something.esm.js",
+ import: "./something/dist/pkg-a-something.cjs.mjs",
+ default: "./something/dist/pkg-a-something.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts", "something.tsx"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "packages/pkg-a/something/package.json": JSON.stringify({
+ main: "dist/pkg-a-something.cjs.js",
+ module: "dist/pkg-a-something.esm.js",
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export const thing = "index";
+ export default true;
+ `,
+ "packages/pkg-a/src/something.tsx": ts`
+ export const something = "something";
+ export default 100;
+ `,
+ "packages/pkg-a/not-exported.ts": ts`
+ export const notExported = true;
+ export default "foo";
+ `,
+
+ "packages/pkg-a/node_modules": {
+ kind: "symlink",
+ path: repoNodeModules,
+ },
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "NodeNext",
+ moduleResolution: "nodenext",
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await dev(dir);
+
+ expect(
+ await getFiles(dir, [
+ "packages/**/dist/**",
+ "!packages/**/dist/*.cjs.js",
+ "!**/node_modules",
+ ])
+ ).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index";
+ export { default } from "../src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { default as _default } from "../src/index.js"
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ exports._default = require("./pkg-a.cjs.js").default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./pkg-a.cjs.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ ⎯ symlink to packages/pkg-a/src/index.ts
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/something/dist/pkg-a-something.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../src/something.js";
+ export { _default as default } from "./pkg-a-something.cjs.default.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEtc29tZXRoaW5nLmNqcy5kLm10cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zb21ldGhpbmcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/something/dist/pkg-a-something.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../src/something";
+ export { default } from "../../src/something";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEtc29tZXRoaW5nLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NvbWV0aGluZy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/something/dist/pkg-a-something.cjs.default.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { default as _default } from "../../src/something.js"
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/something/dist/pkg-a-something.cjs.default.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ exports._default = require("./pkg-a-something.cjs.js").default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/something/dist/pkg-a-something.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./pkg-a-something.cjs.js";
+ export { _default as default } from "./pkg-a-something.cjs.default.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/something/dist/pkg-a-something.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ ⎯ symlink to packages/pkg-a/src/something.tsx
+ `);
+});
+
+test("imports conditions", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@scope/pkg",
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ imports: {
+ "#is-development": {
+ development: "./src/true.js",
+ default: "./src/false.js",
+ },
+ "#is-browser": {
+ worker: "./src/false.js",
+ browser: "./src/true.js",
+ default: "./src/false.js",
+ },
+ "#something": {
+ "condition-should-never-appear-anywhere": "./src/true.js",
+ default: "./src/true.js",
+ },
+ },
+ main: "dist/scope-pkg.cjs.js",
+ module: "dist/scope-pkg.esm.js",
+ exports: {
+ ".": {
+ types: {
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ development: {
+ worker: {
+ module: "./dist/scope-pkg.development.esm.js",
+ import: "./dist/scope-pkg.development.cjs.mjs",
+ default: "./dist/scope-pkg.development.cjs.js",
+ },
+ browser: {
+ module: "./dist/scope-pkg.browser.development.esm.js",
+ import: "./dist/scope-pkg.browser.development.cjs.mjs",
+ default: "./dist/scope-pkg.browser.development.cjs.js",
+ },
+ module: "./dist/scope-pkg.development.esm.js",
+ import: "./dist/scope-pkg.development.cjs.mjs",
+ default: "./dist/scope-pkg.development.cjs.js",
+ },
+ worker: {
+ module: "./dist/scope-pkg.esm.js",
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ browser: {
+ module: "./dist/scope-pkg.browser.esm.js",
+ import: "./dist/scope-pkg.browser.cjs.mjs",
+ default: "./dist/scope-pkg.browser.cjs.js",
+ },
+ module: "./dist/scope-pkg.esm.js",
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ }),
+ "src/index.js": js`
+ export {};
+ `,
+ });
+ await dev(dir);
+ const maybeRelativePathFromTestDirToPreconstructDir = normalizePath(
+ path.relative(dir, repoRoot)
+ );
+ expect(
+ await getFiles(dir, ["dist/**"], {
+ transformContent(content) {
+ return content
+ .replace(
+ maybeRelativePathFromTestDirToPreconstructDir,
+ ""
+ )
+ .replace(
+ "../",
+ ""
+ );
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.cjs.js, dist/scope-pkg.browser.development.cjs.js, dist/scope-pkg.cjs.js, dist/scope-pkg.development.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ "use strict";
+ // this file might look strange and you might be wondering what it's for
+ // it's lets you import your source files by importing this entrypoint
+ // as you would import it if it was built with preconstruct build
+ // this file is slightly different to some others though
+ // it has a require hook which compiles your code with Babel
+ // this means that you don't have to set up @babel/register or anything like that
+ // but you can still require this module and it'll be compiled
+
+ // this bit of code imports the require hook and registers it
+ let unregister = require("/packages/hook").___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, "..", "..");
+
+ // this re-exports the source file
+ module.exports = require("../src/index.js");
+
+ unregister();
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./dist/scope-pkg.browser.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.development.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./dist/scope-pkg.browser.development.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.development.esm.js, dist/scope-pkg.browser.esm.js, dist/scope-pkg.development.esm.js, dist/scope-pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ ⎯ symlink to src/index.js
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./dist/scope-pkg.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.development.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./dist/scope-pkg.development.cjs.js";
+
+ `);
+});
+
+test("dev command entrypoint", async () => {
+ let tmpPath = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ preconstruct: {
+ entrypoints: ["something.ts"],
+ },
+ }),
+ "something/package.json": JSON.stringify({
+ main: "dist/pkg-something.cjs.js",
+ module: "dist/pkg-something.esm.js",
+ }),
+ ".babelrc": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+ "src/something.ts": js`
+ const a: string = "message from something";
+ console.log(a);
+ `,
+ });
+
+ await dev(tmpPath);
+
+ // i would require it but i don't want jest to do magical things
+ let { code, stdout, stderr } = await spawn("node", [
+ path.join(tmpPath, "something"),
+ ]);
+ expect(stderr.toString()).toBe("");
+ expect(stdout.toString().split("\n")).toEqual(["message from something", ""]);
+ expect(code).toBe(0);
+});
+
+test("multiple entrypoints", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ main: "dist/multiple-entrypoints.cjs.js",
+ module: "dist/multiple-entrypoints.esm.js",
+ exports: {
+ ".": {
+ types: {
+ import: "./dist/multiple-entrypoints.cjs.mjs",
+ default: "./dist/multiple-entrypoints.cjs.js",
+ },
+ module: "./dist/multiple-entrypoints.esm.js",
+ import: "./dist/multiple-entrypoints.cjs.mjs",
+ default: "./dist/multiple-entrypoints.cjs.js",
+ },
+ "./multiply": {
+ types: {
+ import: "./dist/multiple-entrypoints-multiply.cjs.mjs",
+ default: "./dist/multiple-entrypoints-multiply.cjs.js",
+ },
+ module: "./dist/multiple-entrypoints-multiply.esm.js",
+ import: "./dist/multiple-entrypoints-multiply.cjs.mjs",
+ default: "./dist/multiple-entrypoints-multiply.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ entrypoints: ["index.ts", "multiply.ts"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ },
+ },
+ }),
+ "multiply/package.json": JSON.stringify({
+ main: "../dist/multiple-entrypoints-multiply.cjs.js",
+ module: "../dist/multiple-entrypoints-multiply.esm.js",
+ }),
+ "src/index.ts": js`
+ export let sum = (a, b) => a + b;
+ export default "a";
+ `,
+ "src/multiply.ts": js`
+ export let multiply = (a, b) => a * b;
+ `,
+ "something.js": js`
+ const { multiply } = require("multiple-entrypoints/multiply");
+ console.log(multiply(2, 2) + "");
+ `,
+ });
+
+ await dev(dir);
+
+ let { code, stdout, stderr } = await spawn("node", [
+ path.join(dir, "something"),
+ ]);
+ expect(stderr.toString()).toBe("");
+ expect(stdout.toString().split("\n")).toEqual(["4", ""]);
+ expect(code).toBe(0);
+});
+
+test("type: module", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ type: "module",
+ exports: {
+ ".": "./dist/multiple-entrypoints.js",
+ "./multiply": "./dist/multiple-entrypoints-multiply.js",
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: true,
+ entrypoints: ["index.ts", "multiply.ts"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ typeModule: true,
+ },
+ },
+ }),
+ "src/index.ts": js`
+ export let a = "a";
+ `,
+ "src/multiply.ts": js`
+ export let b = "b";
+ `,
+ });
+
+ await dev(dir);
- export const x = "hello";
+ expect(await getFiles(dir, ["**/dist/**/*"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/multiply";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZW50cnlwb2ludHMtbXVsdGlwbHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tdWx0aXBseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ ⎯ symlink to src/multiply.ts
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZW50cnlwb2ludHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ ⎯ symlink to src/index.ts
`);
});
+
+test("type: module running", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ type: "module",
+ exports: {
+ ".": "./dist/multiple-entrypoints.js",
+ "./multiply": "./dist/multiple-entrypoints-multiply.js",
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: true,
+ entrypoints: ["index.js", "multiply.js"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ typeModule: true,
+ },
+ },
+ }),
+ "src/index.js": js`
+ export let a = "a";
+ `,
+ "src/multiply.js": js`
+ export let b = "b";
+ `,
+ "runtime-blah.mjs": js`
+ import { b } from "multiple-entrypoints/multiply";
+ console.log(b);
+ `,
+ });
+
+ await dev(dir);
+
+ let { code, stdout, stderr } = await spawn("node", [
+ path.join(dir, "runtime-blah.mjs"),
+ ]);
+ expect(stderr.toString()).toBe("");
+ expect(stdout.toString().split("\n")).toEqual(["b", ""]);
+ expect(code).toBe(0);
+});
diff --git a/packages/cli/src/__tests__/fix.ts b/packages/cli/src/__tests__/fix.ts
index ccac1fcd..ce8d4a3e 100644
--- a/packages/cli/src/__tests__/fix.ts
+++ b/packages/cli/src/__tests__/fix.ts
@@ -10,6 +10,7 @@ import {
testdir,
js,
getFiles,
+ ts,
} from "../../test-utils";
import { promptInput as _promptInput } from "../prompt";
import fs from "fs-extra";
@@ -679,8 +680,8 @@ test("unexpected experimental flag throws, not removes", async () => {
},
}),
"src/index.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
});
await expect(fix(tmpPath)).rejects.toMatchInlineSnapshot(
@@ -700,8 +701,8 @@ test("unexpected former experimental flag is removed", async () => {
},
}),
"src/index.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
});
await fix(tmpPath);
expect(await getFiles(tmpPath, ["package.json"])).toMatchInlineSnapshot(`
@@ -968,3 +969,296 @@ test("experimental exports flag is removed", async () => {
`);
});
+
+test("import conditions fix", async () => {
+ const tmpPath = await testdir({
+ "package.json": JSON.stringify({
+ name: "@scope/pkg",
+ preconstruct: {
+ exports: true,
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ imports: {
+ "#is-development": {
+ development: "./src/true.js",
+ default: "./src/false.js",
+ },
+ "#is-browser": {
+ worker: "./src/false.js",
+ browser: "./src/true.js",
+ default: "./src/false.js",
+ },
+ "#something": {
+ "condition-should-never-appear-anywhere": "./src/true.js",
+ default: "./src/true.js",
+ },
+ },
+ }),
+ "src/index.ts": ts`
+ export {};
+ `,
+ });
+ await fix(tmpPath);
+ expect(await getFiles(tmpPath, ["package.json"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ package.json ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {
+ "name": "@scope/pkg",
+ "preconstruct": {
+ "exports": true,
+ "___experimentalFlags_WILL_CHANGE_IN_PATCH": {
+ "importsConditions": true
+ }
+ },
+ "imports": {
+ "#is-development": {
+ "development": "./src/true.js",
+ "default": "./src/false.js"
+ },
+ "#is-browser": {
+ "worker": "./src/false.js",
+ "browser": "./src/true.js",
+ "default": "./src/false.js"
+ },
+ "#something": {
+ "condition-should-never-appear-anywhere": "./src/true.js",
+ "default": "./src/true.js"
+ }
+ },
+ "main": "dist/scope-pkg.cjs.js",
+ "module": "dist/scope-pkg.esm.js",
+ "exports": {
+ ".": {
+ "types": "./dist/scope-pkg.cjs.js",
+ "development": {
+ "worker": {
+ "module": "./dist/scope-pkg.development.esm.js",
+ "default": "./dist/scope-pkg.development.cjs.js"
+ },
+ "browser": {
+ "module": "./dist/scope-pkg.browser.development.esm.js",
+ "default": "./dist/scope-pkg.browser.development.cjs.js"
+ },
+ "module": "./dist/scope-pkg.development.esm.js",
+ "default": "./dist/scope-pkg.development.cjs.js"
+ },
+ "worker": {
+ "module": "./dist/scope-pkg.esm.js",
+ "default": "./dist/scope-pkg.cjs.js"
+ },
+ "browser": {
+ "module": "./dist/scope-pkg.browser.esm.js",
+ "default": "./dist/scope-pkg.browser.cjs.js"
+ },
+ "module": "./dist/scope-pkg.esm.js",
+ "default": "./dist/scope-pkg.cjs.js"
+ },
+ "./package.json": "./package.json"
+ }
+ }
+
+ `);
+});
+
+test("import conditions fix with importConditionDefaultExport: default", async () => {
+ const tmpPath = await testdir({
+ "package.json": JSON.stringify({
+ name: "@scope/pkg",
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ imports: {
+ "#is-development": {
+ development: "./src/true.js",
+ default: "./src/false.js",
+ },
+ "#is-browser": {
+ worker: "./src/false.js",
+ browser: "./src/true.js",
+ default: "./src/false.js",
+ },
+ "#something": {
+ "condition-should-never-appear-anywhere": "./src/true.js",
+ default: "./src/true.js",
+ },
+ },
+ }),
+ "src/index.ts": ts`
+ export {};
+ `,
+ });
+ await fix(tmpPath);
+ expect(await getFiles(tmpPath, ["package.json"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ package.json ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {
+ "name": "@scope/pkg",
+ "preconstruct": {
+ "exports": {
+ "importConditionDefaultExport": "default"
+ },
+ "___experimentalFlags_WILL_CHANGE_IN_PATCH": {
+ "importsConditions": true
+ }
+ },
+ "imports": {
+ "#is-development": {
+ "development": "./src/true.js",
+ "default": "./src/false.js"
+ },
+ "#is-browser": {
+ "worker": "./src/false.js",
+ "browser": "./src/true.js",
+ "default": "./src/false.js"
+ },
+ "#something": {
+ "condition-should-never-appear-anywhere": "./src/true.js",
+ "default": "./src/true.js"
+ }
+ },
+ "main": "dist/scope-pkg.cjs.js",
+ "module": "dist/scope-pkg.esm.js",
+ "exports": {
+ ".": {
+ "types": {
+ "import": "./dist/scope-pkg.cjs.mjs",
+ "default": "./dist/scope-pkg.cjs.js"
+ },
+ "development": {
+ "worker": {
+ "module": "./dist/scope-pkg.development.esm.js",
+ "import": "./dist/scope-pkg.development.cjs.mjs",
+ "default": "./dist/scope-pkg.development.cjs.js"
+ },
+ "browser": {
+ "module": "./dist/scope-pkg.browser.development.esm.js",
+ "import": "./dist/scope-pkg.browser.development.cjs.mjs",
+ "default": "./dist/scope-pkg.browser.development.cjs.js"
+ },
+ "module": "./dist/scope-pkg.development.esm.js",
+ "import": "./dist/scope-pkg.development.cjs.mjs",
+ "default": "./dist/scope-pkg.development.cjs.js"
+ },
+ "worker": {
+ "module": "./dist/scope-pkg.esm.js",
+ "import": "./dist/scope-pkg.cjs.mjs",
+ "default": "./dist/scope-pkg.cjs.js"
+ },
+ "browser": {
+ "module": "./dist/scope-pkg.browser.esm.js",
+ "import": "./dist/scope-pkg.browser.cjs.mjs",
+ "default": "./dist/scope-pkg.browser.cjs.js"
+ },
+ "module": "./dist/scope-pkg.esm.js",
+ "import": "./dist/scope-pkg.cjs.mjs",
+ "default": "./dist/scope-pkg.cjs.js"
+ },
+ "./package.json": "./package.json"
+ }
+ }
+
+ `);
+});
+
+test("nothing is written when another package's fixing throws an error", async () => {
+ const tmpPath = await testdir({
+ "package.json": JSON.stringify(
+ {
+ name: "repo",
+ preconstruct: {
+ packages: ["packages/*"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ },
+ null,
+ 2
+ ),
+ "packages/pkg-a/package.json": JSON.stringify(
+ {
+ name: "pkg-a",
+ preconstruct: { exports: { envConditions: ["browser"] } },
+ },
+ null,
+ 2
+ ),
+ "packages/pkg-a/src/index.js": ``,
+ "packages/pkg-b/package.json": JSON.stringify({ name: "pkg-b" }, null, 2),
+ "packages/pkg-b/src/index.js": ``,
+ });
+ await expect(fix(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports.envConditions" field is not supported when the imports conditions feature is enabled]`
+ );
+ expect(await getFiles(tmpPath, ["packages/*/package.json"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/package.json ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {
+ "name": "pkg-a",
+ "preconstruct": {
+ "exports": {
+ "envConditions": [
+ "browser"
+ ]
+ }
+ }
+ }
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/package.json ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {
+ "name": "pkg-b"
+ }
+ `);
+});
+
+test("type: module removes package.json", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ type: "module",
+ exports: {
+ ".": "./dist/multiple-entrypoints.js",
+ "./multiply": "./dist/multiple-entrypoints-multiply.js",
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: true,
+ entrypoints: ["index.ts", "multiply.ts"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ typeModule: true,
+ },
+ },
+ }),
+ "multiply/package.json": JSON.stringify({
+ name: "multiple-entrypoints/multiply",
+ main: "dist/multiple-entrypoints-multiply.cjs.js",
+ module: "dist/multiple-entrypoints-multiply.esm.js",
+ }),
+ "src/index.ts": js`
+ export let a = "a";
+ `,
+ "src/multiply.ts": js`
+ export let b = "b";
+ `,
+ "runtime-blah.mjs": js`
+ import { b } from "multiple-entrypoints/multiply";
+ console.log(b);
+ `,
+ });
+
+ await fix(dir);
+
+ expect(await getFiles(dir, ["**/package.json"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ package.json ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {"name":"multiple-entrypoints","type":"module","exports":{".":"./dist/multiple-entrypoints.js","./multiply":"./dist/multiple-entrypoints-multiply.js","./package.json":"./package.json"},"preconstruct":{"exports":true,"entrypoints":["index.ts","multiply.ts"],"___experimentalFlags_WILL_CHANGE_IN_PATCH":{"importsConditions":true,"distInRoot":true,"typeModule":true}}}
+ `);
+});
diff --git a/packages/cli/src/__tests__/init.ts b/packages/cli/src/__tests__/init.ts
index 86495898..7a9f3f36 100644
--- a/packages/cli/src/__tests__/init.ts
+++ b/packages/cli/src/__tests__/init.ts
@@ -100,10 +100,10 @@ test("scoped package", async () => {
}),
"src/index.js": js`
- // @flow
+ // @flow
- export default "something";
- `,
+ export default "something";
+ `,
});
confirms.writeMainField.mockReturnValue(Promise.resolve(true));
@@ -259,14 +259,14 @@ let basicThreeEntrypoints = {
},
}),
"src/index.js": js`
- export let something = true;
- `,
+ export let something = true;
+ `,
"src/one.js": js`
- export let something = true;
- `,
+ export let something = true;
+ `,
"src/two.js": js`
- export let something = true;
- `,
+ export let something = true;
+ `,
"one/package.json": JSON.stringify({}),
"two/package.json": JSON.stringify({}),
};
diff --git a/packages/cli/src/__tests__/validate.ts b/packages/cli/src/__tests__/validate.ts
index 22e2096d..aee3f476 100644
--- a/packages/cli/src/__tests__/validate.ts
+++ b/packages/cli/src/__tests__/validate.ts
@@ -8,6 +8,7 @@ import {
testdir,
js,
repoNodeModules,
+ getFiles,
} from "../../test-utils";
import { confirms as _confirms } from "../messages";
import { JSONValue } from "../utils";
@@ -56,10 +57,10 @@ test("no main field", async () => {
}),
"src/index.js": js`
- // @flow
+ // @flow
- export default "something";
- `,
+ export default "something";
+ `,
});
try {
@@ -184,20 +185,20 @@ test("one-entrypoint-with-browser-field-one-without", async () => {
}),
"src/identity.js": js`
- export let identity = (x) => x;
- `,
+ export let identity = (x) => x;
+ `,
"src/multiply.js": js`
- import { identity } from "./identity";
+ import { identity } from "./identity";
- export let multiply = (a, b) => identity(a * b);
- `,
+ export let multiply = (a, b) => identity(a * b);
+ `,
"src/index.js": js`
- import { identity } from "./identity";
+ import { identity } from "./identity";
- export let sum = (a, b) => identity(a + b);
- `,
+ export let sum = (a, b) => identity(a + b);
+ `,
});
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
`[Error: one-entrypoint-with-browser-field-one-without/multiply has a browser build but one-entrypoint-with-browser-field-one-without does not have a browser build. Entrypoints in a package must either all have a particular build type or all not have a particular build type.]`
@@ -217,12 +218,12 @@ test("create package.json for an entrypoint", async () => {
}),
"src/index.js": js`
- export default "something";
- `,
+ export default "something";
+ `,
"src/other.js": js`
- export default "something";
- `,
+ export default "something";
+ `,
});
confirms.createEntrypointPkgJson.mockReturnValue(Promise.resolve(true));
@@ -338,24 +339,24 @@ test("monorepo umd with dep on other module incorrect peerDeps", async () => {
}),
"packages/package-four/src/index.js": js`
- import "@some-scope/package-one-umd-with-dep";
- `,
+ import "@some-scope/package-one-umd-with-dep";
+ `,
"packages/package-one/src/index.js": js`
- import { createElement } from "react";
+ import { createElement } from "react";
- createElement("div", null);
- `,
+ createElement("div", null);
+ `,
"packages/package-three/src/index.js": js`
- import "@some-scope/package-one-umd-with-dep";
- `,
+ import "@some-scope/package-one-umd-with-dep";
+ `,
"packages/package-two/src/index.js": js`
- import { createElement } from "react";
+ import { createElement } from "react";
- createElement("h1", null);
- `,
+ createElement("h1", null);
+ `,
});
try {
@@ -379,8 +380,8 @@ test("dist not included in package", async () => {
}),
"src/index.js": js`
- export default "something";
- `,
+ export default "something";
+ `,
});
try {
@@ -414,12 +415,12 @@ test("entrypoint not included in package", async () => {
}),
"src/multiply.js": js`
- export let multiply = (a, b) => a * b;
- `,
+ export let multiply = (a, b) => a * b;
+ `,
"src/index.js": js`
- export let sum = (a, b) => a + b;
- `,
+ export let sum = (a, b) => a + b;
+ `,
});
try {
@@ -446,8 +447,8 @@ test("root dist directory not included in package without entrypoint at root", a
main: "dist/pkg-a.cjs.js",
}),
"src/other.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
});
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(`
@@ -478,12 +479,12 @@ test("new entrypoints with old config", async () => {
}),
"src/multiply.js": js`
- export let multiply = (a, b) => a * b;
- `,
+ export let multiply = (a, b) => a * b;
+ `,
"src/sum.js": js`
- export let sum = (a, b) => a + b;
- `,
+ export let sum = (a, b) => a + b;
+ `,
});
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
@@ -503,11 +504,11 @@ test("multiple source files for same entrypoint", async () => {
main: "dist/pkg-a.cjs.js",
}),
"src/other.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
"src/other/index.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
});
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
@@ -524,8 +525,8 @@ test("unexpected source option", async () => {
},
}),
"src/index.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
});
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
@@ -545,8 +546,8 @@ test("unexpected experimental flag", async () => {
},
}),
"src/index.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
});
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
@@ -566,8 +567,8 @@ test("unexpected former experimental flag", async () => {
},
}),
"src/index.js": js`
- export let x = true;
- `,
+ export let x = true;
+ `,
});
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
@@ -684,13 +685,13 @@ describe("exports field config", () => {
test("null", async () => {
const tmpPath = await exportsFieldConfigTestDir(null);
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
- `[Error: the "preconstruct.exports" field must be a boolean or an object at the package level]`
+ `[Error: the "preconstruct.exports" field must be a boolean or an object]`
);
});
test("some string", async () => {
const tmpPath = await exportsFieldConfigTestDir("blah");
await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
- `[Error: the "preconstruct.exports" field must be a boolean or an object at the package level]`
+ `[Error: the "preconstruct.exports" field must be a boolean or an object]`
);
});
test("extra not object", async () => {
@@ -729,6 +730,14 @@ describe("exports field config", () => {
`[Error: the "preconstruct.exports" field contains an unknown key "something"]`
);
});
+ test("invalid importConditionDefaultExport", async () => {
+ const tmpPath = await exportsFieldConfigTestDir({
+ importConditionDefaultExport: "something",
+ });
+ await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports.importConditionDefaultExport" field must be set to "default" or "namespace" if it is present]`
+ );
+ });
});
describe("true", () => {
@@ -737,7 +746,14 @@ describe("exports field config", () => {
{ envConditions: [] },
{ envConditions: [], extra: {} },
{ extra: {} },
- {},
+ { envConditions: [], importConditionDefaultExport: "namespace" },
+ {
+ envConditions: [],
+ extra: {},
+ importConditionDefaultExport: "namespace",
+ },
+ { extra: {}, importConditionDefaultExport: "namespace" },
+ { importConditionDefaultExport: "namespace" },
true,
];
for (const config of configsEquivalentToTrue) {
@@ -766,6 +782,147 @@ describe("exports field config", () => {
});
}
});
+ test('{ "importConditionDefaultExport": "default" }', async () => {
+ const tmpPath = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "src/index.js": "",
+ });
+ await validate(tmpPath);
+ });
+});
+
+describe("project level exports field config", () => {
+ const exportsFieldConfigTestDir = (config: JSONValue) => {
+ return testdir({
+ "package.json": JSON.stringify({
+ name: "repo",
+ preconstruct: {
+ exports: config,
+ packages: ["packages/*"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ }),
+ "packages/pkg-a/src/index.js": "",
+ });
+ };
+
+ describe("invalid", () => {
+ test("null", async () => {
+ const tmpPath = await exportsFieldConfigTestDir(null);
+ await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports" field must be a boolean or an object]`
+ );
+ });
+ test("some string", async () => {
+ const tmpPath = await exportsFieldConfigTestDir("blah");
+ await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports" field must be a boolean or an object]`
+ );
+ });
+ test("extra", async () => {
+ const tmpPath = await exportsFieldConfigTestDir({
+ extra: {
+ "./blah": "./blah.js",
+ },
+ });
+ await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports.extra" field can only be configured at the package level]`
+ );
+ });
+ test("envConditions", async () => {
+ const tmpPath = await exportsFieldConfigTestDir({
+ envConditions: ["browser"],
+ });
+ await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports.envConditions" field can only be configured at the package level]`
+ );
+ });
+ test("unknown key", async () => {
+ const tmpPath = await exportsFieldConfigTestDir({
+ something: true,
+ });
+ await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports" field contains an unknown key "something"]`
+ );
+ });
+ test("invalid importConditionDefaultExport", async () => {
+ const tmpPath = await exportsFieldConfigTestDir({
+ importConditionDefaultExport: "something",
+ });
+ await expect(validate(tmpPath)).rejects.toMatchInlineSnapshot(
+ `[Error: the "preconstruct.exports.importConditionDefaultExport" field must be set to "default" or "namespace" if it is present]`
+ );
+ });
+ });
+ describe("true", () => {
+ const configsEquivalentToTrue = [
+ {},
+ { importConditionDefaultExport: "namespace" },
+ true,
+ ];
+ for (const config of configsEquivalentToTrue) {
+ test(`${JSON.stringify(config)}`, async () => {
+ const tmpPath = await exportsFieldConfigTestDir(config);
+ await validate(tmpPath);
+ });
+ }
+ });
+ test('{ "importConditionDefaultExport": "default" }', async () => {
+ const tmpPath = await testdir({
+ "package.json": JSON.stringify({
+ name: "repo",
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ packages: ["packages/*"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ }),
+ "packages/pkg-a/src/index.js": "",
+ });
+ await validate(tmpPath);
+ });
});
test("no module field with exports field", async () => {
@@ -874,3 +1031,50 @@ test("experimental exports flag is removed", async () => {
`[Error: The behaviour from the experimental flag "exports" is the current behaviour now, the flag should be removed]`
);
});
+
+test("type: module removes package.json", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ type: "module",
+ exports: {
+ ".": "./dist/multiple-entrypoints.js",
+ "./multiply": "./dist/multiple-entrypoints-multiply.js",
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: true,
+ entrypoints: ["index.ts", "multiply.ts"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ typeModule: true,
+ },
+ },
+ }),
+ "multiply/package.json": JSON.stringify({
+ name: "multiple-entrypoints/multiply",
+ main: "dist/multiple-entrypoints-multiply.cjs.js",
+ module: "dist/multiple-entrypoints-multiply.esm.js",
+ }),
+ "src/index.ts": js`
+ export let a = "a";
+ `,
+ "src/multiply.ts": js`
+ export let b = "b";
+ `,
+ "runtime-blah.mjs": js`
+ import { b } from "multiple-entrypoints/multiply";
+ console.log(b);
+ `,
+ });
+
+ await confirms.deleteEntrypointPkgJson.mockResolvedValue(true);
+
+ await validate(dir);
+
+ expect(await getFiles(dir, ["**/package.json"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ package.json ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {"name":"multiple-entrypoints","type":"module","exports":{".":"./dist/multiple-entrypoints.js","./multiply":"./dist/multiple-entrypoints-multiply.js","./package.json":"./package.json"},"preconstruct":{"exports":true,"entrypoints":["index.ts","multiply.ts"],"___experimentalFlags_WILL_CHANGE_IN_PATCH":{"importsConditions":true,"distInRoot":true,"typeModule":true}}}
+ `);
+});
diff --git a/packages/cli/src/build/__tests__/__snapshots__/basic.ts.snap b/packages/cli/src/build/__tests__/__snapshots__/basic.ts.snap
index d73e1f09..24f518e4 100644
--- a/packages/cli/src/build/__tests__/__snapshots__/basic.ts.snap
+++ b/packages/cli/src/build/__tests__/__snapshots__/basic.ts.snap
@@ -7,7 +7,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = "something";
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -29,14 +29,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = "something";
-exports.default = index;
+exports["default"] = index;
"
`;
exports[`basic: valid-package.esm.js 1`] = `
"var index = "something";
-export default index;
+export { index as default };
"
`;
@@ -53,18 +53,9 @@ exports[`typescript thing: declarations/src/index.d.ts 1`] = `
"
`;
-exports[`typescript thing: declarations/src/other.d.ts 1`] = `
-"export declare const thing: () => "wow";
-"
-`;
-
-exports[`typescript thing: declarations/src/thing.d.ts 1`] = `
-"export declare const makeThing: () => "wow";
-"
-`;
-
exports[`typescript thing: weird-typescript-thing.cjs.d.ts 1`] = `
"export * from "./declarations/src/index";
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VpcmQtdHlwZXNjcmlwdC10aGluZy5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
"
`;
@@ -73,13 +64,13 @@ exports[`typescript thing: weird-typescript-thing.cjs.dev.js 1`] = `
Object.defineProperty(exports, '__esModule', { value: true });
-const thing = () => "wow";
+const thing$1 = () => "wow";
-const makeThing = () => thing();
+const makeThing = () => thing$1();
-const thing$1 = makeThing();
+const thing = makeThing();
-exports.thing = thing$1;
+exports.thing = thing;
"
`;
@@ -99,23 +90,23 @@ exports[`typescript thing: weird-typescript-thing.cjs.prod.js 1`] = `
Object.defineProperty(exports, '__esModule', { value: true });
-const thing = () => "wow";
+const thing$1 = () => "wow";
-const makeThing = () => thing();
+const makeThing = () => thing$1();
-const thing$1 = makeThing();
+const thing = makeThing();
-exports.thing = thing$1;
+exports.thing = thing;
"
`;
exports[`typescript thing: weird-typescript-thing.esm.js 1`] = `
-"const thing = () => "wow";
+"const thing$1 = () => "wow";
-const makeThing = () => thing();
+const makeThing = () => thing$1();
-const thing$1 = makeThing();
+const thing = makeThing();
-export { thing$1 as thing };
+export { thing };
"
`;
diff --git a/packages/cli/src/build/__tests__/__snapshots__/build.ts.snap b/packages/cli/src/build/__tests__/__snapshots__/build.ts.snap
index def68aa5..a7195376 100644
--- a/packages/cli/src/build/__tests__/__snapshots__/build.ts.snap
+++ b/packages/cli/src/build/__tests__/__snapshots__/build.ts.snap
@@ -70,7 +70,7 @@ function doSomething(arg) {
}
var index = "wow";
-exports.default = index;
+exports["default"] = index;
exports.doSomething = doSomething;
"
`;
@@ -103,7 +103,7 @@ function doSomething(arg) {
}
var index = "wow";
-exports.default = index;
+exports["default"] = index;
exports.doSomething = doSomething;
"
`;
@@ -114,8 +114,7 @@ exports[`flow: flow-export-default.esm.js 1`] = `
}
var index = "wow";
-export default index;
-export { doSomething };
+export { index as default, doSomething };
"
`;
@@ -126,7 +125,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = 2;
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -148,14 +147,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = 2;
-exports.default = index;
+exports["default"] = index;
"
`;
exports[`monorepo single package: some-scope-package-two-single-package.esm.js 1`] = `
"var index = 2;
-export default index;
+export { index as default };
"
`;
@@ -192,7 +191,7 @@ exports[`monorepo umd with dep on other module: some-scope-package-four-umd-with
"
`;
-exports[`monorepo umd with dep on other module: some-scope-package-four-umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"some-scope-package-four-umd-with-dep.umd.min.js","sources":["../../package-one/src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"div\\", null);"],"names":[],"mappings":"iQAEc,MAAO"}"`;
+exports[`monorepo umd with dep on other module: some-scope-package-four-umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"some-scope-package-four-umd-with-dep.umd.min.js","sources":["../../package-one/src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"div\\", null);"],"names":["createElement"],"mappings":"iPAEAA,EAAAA,cAAc,MAAO"}"`;
exports[`monorepo umd with dep on other module: some-scope-package-one-umd-with-dep.cjs.dev.js 1`] = `
"'use strict';
@@ -229,7 +228,7 @@ exports[`monorepo umd with dep on other module: some-scope-package-one-umd-with-
"
`;
-exports[`monorepo umd with dep on other module: some-scope-package-one-umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"some-scope-package-one-umd-with-dep.umd.min.js","sources":["../src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"div\\", null);"],"names":[],"mappings":"iQAEc,MAAO"}"`;
+exports[`monorepo umd with dep on other module: some-scope-package-one-umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"some-scope-package-one-umd-with-dep.umd.min.js","sources":["../src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"div\\", null);"],"names":["createElement"],"mappings":"iPAEAA,EAAAA,cAAc,MAAO"}"`;
exports[`monorepo umd with dep on other module: some-scope-package-three-umd-with-dep.cjs.dev.js 1`] = `
"'use strict';
@@ -301,7 +300,7 @@ exports[`monorepo umd with dep on other module: some-scope-package-two-umd-with-
"
`;
-exports[`monorepo umd with dep on other module: some-scope-package-two-umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"some-scope-package-two-umd-with-dep.umd.min.js","sources":["../src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"h1\\", null);"],"names":[],"mappings":"iQAEc,KAAM"}"`;
+exports[`monorepo umd with dep on other module: some-scope-package-two-umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"some-scope-package-two-umd-with-dep.umd.min.js","sources":["../src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"h1\\", null);"],"names":["createElement"],"mappings":"iPAEAA,EAAAA,cAAc,KAAM"}"`;
exports[`monorepo: some-scope-package-one.cjs.dev.js 1`] = `
"'use strict';
@@ -310,7 +309,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = 1;
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -332,14 +331,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = 1;
-exports.default = index;
+exports["default"] = index;
"
`;
exports[`monorepo: some-scope-package-one.esm.js 1`] = `
"var index = 1;
-export default index;
+export { index as default };
"
`;
@@ -350,7 +349,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = 2;
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -372,14 +371,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = 2;
-exports.default = index;
+exports["default"] = index;
"
`;
exports[`monorepo: some-scope-package-two.esm.js 1`] = `
"var index = 2;
-export default index;
+export { index as default };
"
`;
@@ -390,7 +389,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = "this does not have a module build";
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -412,7 +411,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = "this does not have a module build";
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -425,7 +424,6 @@ function thing() {
if (process.env.NODE_ENV !== "production") {
return "not prod";
}
-
return "prod";
}
@@ -450,7 +448,6 @@ exports[`prod checks: prod-checks.cjs.prod.js 1`] = `
Object.defineProperty(exports, '__esModule', { value: true });
function thing() {
-
return "prod";
}
@@ -493,4 +490,4 @@ exports[`umd with dep on other module: umd-with-dep.umd.min.js 1`] = `
"
`;
-exports[`umd with dep on other module: umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"umd-with-dep.umd.min.js","sources":["../src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"div\\", null);"],"names":[],"mappings":"iQAEc,MAAO"}"`;
+exports[`umd with dep on other module: umd-with-dep.umd.min.js.map 1`] = `"{"version":3,"file":"umd-with-dep.umd.min.js","sources":["../src/index.js"],"sourcesContent":["import { createElement } from \\"react\\";\\n\\ncreateElement(\\"div\\", null);"],"names":["createElement"],"mappings":"iPAEAA,EAAAA,cAAc,MAAO"}"`;
diff --git a/packages/cli/src/build/__tests__/__snapshots__/entrypoints.ts.snap b/packages/cli/src/build/__tests__/__snapshots__/entrypoints.ts.snap
index e1d1f9e2..a7c11685 100644
--- a/packages/cli/src/build/__tests__/__snapshots__/entrypoints.ts.snap
+++ b/packages/cli/src/build/__tests__/__snapshots__/entrypoints.ts.snap
@@ -78,37 +78,12 @@ exports[`two entrypoints where one requires the other entrypoint: src/multiply.j
export let multiply = (a, b) => identity(a * b);"
`;
-exports[`two entrypoints with a common dependency: dist/chunk-this-is-not-the-real-hash-09d8aa2cd41dd37e55ea1ca5c8546d35.esm.js 1`] = `
-"let identity = x => x;
-
-export { identity as i };
-"
-`;
-
-exports[`two entrypoints with a common dependency: dist/chunk-this-is-not-the-real-hash-f57161fefd97e3101601d153708a46b8.cjs.dev.js 1`] = `
-"'use strict';
-
-let identity = x => x;
-
-exports.identity = identity;
-"
-`;
-
-exports[`two entrypoints with a common dependency: dist/chunk-this-is-not-the-real-hash-f57161fefd97e3101601d153708a46b8.cjs.prod.js 1`] = `
-"'use strict';
-
-let identity = x => x;
-
-exports.identity = identity;
-"
-`;
-
exports[`two entrypoints with a common dependency: dist/common-dependency-two-entrypoints.cjs.dev.js 1`] = `
"'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
-var identity = require('./chunk-some-hash.cjs.dev.js');
+var identity = require('./identity-some-hash.cjs.dev.js');
let sum = (a, b) => identity.identity(a + b);
@@ -133,7 +108,7 @@ exports[`two entrypoints with a common dependency: dist/common-dependency-two-en
Object.defineProperty(exports, '__esModule', { value: true });
-var identity = require('./chunk-some-hash.cjs.prod.js');
+var identity = require('./identity-some-hash.cjs.prod.js');
let sum = (a, b) => identity.identity(a + b);
@@ -143,8 +118,8 @@ exports.sum = sum;
`;
exports[`two entrypoints with a common dependency: dist/common-dependency-two-entrypoints.esm.js 1`] = `
-"import { i as identity } from './chunk-some-hash.esm.js';
-export { i as identity } from './chunk-some-hash.esm.js';
+"import { i as identity } from './identity-some-hash.esm.js';
+export { i as identity } from './identity-some-hash.esm.js';
let sum = (a, b) => identity(a + b);
@@ -152,12 +127,37 @@ export { sum };
"
`;
+exports[`two entrypoints with a common dependency: dist/identity-this-is-not-the-real-hash-09d8aa2cd41dd37e55ea1ca5c8546d35.esm.js 1`] = `
+"let identity = x => x;
+
+export { identity as i };
+"
+`;
+
+exports[`two entrypoints with a common dependency: dist/identity-this-is-not-the-real-hash-f57161fefd97e3101601d153708a46b8.cjs.dev.js 1`] = `
+"'use strict';
+
+let identity = x => x;
+
+exports.identity = identity;
+"
+`;
+
+exports[`two entrypoints with a common dependency: dist/identity-this-is-not-the-real-hash-f57161fefd97e3101601d153708a46b8.cjs.prod.js 1`] = `
+"'use strict';
+
+let identity = x => x;
+
+exports.identity = identity;
+"
+`;
+
exports[`two entrypoints with a common dependency: multiply/dist/common-dependency-two-entrypoints-multiply.cjs.dev.js 1`] = `
"'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
-var identity = require('../../dist/chunk-some-hash.cjs.dev.js');
+var identity = require('../../dist/identity-some-hash.cjs.dev.js');
let multiply = (a, b) => identity.identity(a * b);
@@ -182,7 +182,7 @@ exports[`two entrypoints with a common dependency: multiply/dist/common-dependen
Object.defineProperty(exports, '__esModule', { value: true });
-var identity = require('../../dist/chunk-some-hash.cjs.prod.js');
+var identity = require('../../dist/identity-some-hash.cjs.prod.js');
let multiply = (a, b) => identity.identity(a * b);
@@ -192,8 +192,8 @@ exports.multiply = multiply;
`;
exports[`two entrypoints with a common dependency: multiply/dist/common-dependency-two-entrypoints-multiply.esm.js 1`] = `
-"import { i as identity } from '../../dist/chunk-some-hash.esm.js';
-export { i as identity } from '../../dist/chunk-some-hash.esm.js';
+"import { i as identity } from '../../dist/identity-some-hash.esm.js';
+export { i as identity } from '../../dist/identity-some-hash.esm.js';
let multiply = (a, b) => identity(a * b);
diff --git a/packages/cli/src/build/__tests__/__snapshots__/other.ts.snap b/packages/cli/src/build/__tests__/__snapshots__/other.ts.snap
index 79d09c06..6f3b6afc 100644
--- a/packages/cli/src/build/__tests__/__snapshots__/other.ts.snap
+++ b/packages/cli/src/build/__tests__/__snapshots__/other.ts.snap
@@ -6,18 +6,15 @@ exports[`browser no module: dist/browser-no-module.browser.cjs.js 1`] = `
Object.defineProperty(exports, '__esModule', { value: true });
let thing = "wow";
-
{
thing = "something";
}
-
{
thing += "other";
}
-
var thing$1 = thing;
-exports.default = thing$1;
+exports["default"] = thing$1;
"
`;
@@ -27,18 +24,15 @@ exports[`browser no module: dist/browser-no-module.cjs.dev.js 1`] = `
Object.defineProperty(exports, '__esModule', { value: true });
let thing = "wow";
-
if (typeof window !== "undefined") {
thing = "something";
}
-
if (typeof document !== undefined) {
thing += "other";
}
-
var thing$1 = thing;
-exports.default = thing$1;
+exports["default"] = thing$1;
"
`;
@@ -59,18 +53,15 @@ exports[`browser no module: dist/browser-no-module.cjs.prod.js 1`] = `
Object.defineProperty(exports, '__esModule', { value: true });
let thing = "wow";
-
if (typeof window !== "undefined") {
thing = "something";
}
-
if (typeof document !== undefined) {
thing += "other";
}
-
var thing$1 = thing;
-exports.default = thing$1;
+exports["default"] = thing$1;
"
`;
@@ -105,7 +96,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = "something";
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -127,7 +118,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var index = "something";
-exports.default = index;
+exports["default"] = index;
"
`;
@@ -142,27 +133,28 @@ exports[`should lazily get globals: src/index.js 1`] = `"export default "somethi
exports[`typescript with forced dts emit: dist/declarations/src/create-store.d.ts 1`] = `
"import { Action } from "@reduxjs/toolkit";
import { ThunkAction } from "redux-thunk";
-import { RootState } from "./root-reducer";
-export declare type AppThunk = ThunkAction>;
+import { RootState } from "./root-reducer.js";
+export type AppThunk = ThunkAction>;
export declare function createStore(): any;
"
`;
exports[`typescript with forced dts emit: dist/declarations/src/index.d.ts 1`] = `
-"export { createStore } from "./create-store";
-export type { AppThunk } from "./create-store";
-export type { RootState } from "./root-reducer";
+"export { createStore } from "./create-store.js";
+export type { AppThunk } from "./create-store.js";
+export type { RootState } from "./root-reducer.js";
"
`;
exports[`typescript with forced dts emit: dist/declarations/src/root-reducer.d.ts 1`] = `
"export declare const rootReducer: any;
-export declare type RootState = ReturnType;
+export type RootState = ReturnType;
"
`;
exports[`typescript with forced dts emit: dist/typescript-force-dts-emit.cjs.d.ts 1`] = `
"export * from "./declarations/src/index";
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1mb3JjZS1kdHMtZW1pdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
"
`;
@@ -247,13 +239,14 @@ exports[`using external @babel/runtime helpers: dist/external-babel-runtime.cjs.
Object.defineProperty(exports, '__esModule', { value: true });
+var _createClass = require('@babel/runtime/helpers/createClass');
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
-var Foo = function Foo() {
+var Foo = /*#__PURE__*/_createClass(function Foo() {
_classCallCheck(this, Foo);
-};
+});
-exports.default = Foo;
+exports["default"] = Foo;
"
`;
@@ -273,24 +266,26 @@ exports[`using external @babel/runtime helpers: dist/external-babel-runtime.cjs.
Object.defineProperty(exports, '__esModule', { value: true });
+var _createClass = require('@babel/runtime/helpers/createClass');
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
-var Foo = function Foo() {
+var Foo = /*#__PURE__*/_createClass(function Foo() {
_classCallCheck(this, Foo);
-};
+});
-exports.default = Foo;
+exports["default"] = Foo;
"
`;
exports[`using external @babel/runtime helpers: dist/external-babel-runtime.esm.js 1`] = `
-"import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';
+"import _createClass from '@babel/runtime/helpers/esm/createClass';
+import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';
-var Foo = function Foo() {
+var Foo = /*#__PURE__*/_createClass(function Foo() {
_classCallCheck(this, Foo);
-};
+});
-export default Foo;
+export { Foo as default };
"
`;
diff --git a/packages/cli/src/build/__tests__/basic.ts b/packages/cli/src/build/__tests__/basic.ts
index c6c16123..11641883 100644
--- a/packages/cli/src/build/__tests__/basic.ts
+++ b/packages/cli/src/build/__tests__/basic.ts
@@ -71,32 +71,32 @@ test("typescript thing", async () => {
2
),
"src/index.ts": ts`
- import { makeThing } from "./thing";
+ import { makeThing } from "./thing";
- export const thing = makeThing();
- `,
+ export const thing = makeThing();
+ `,
"src/other.ts": ts`
- export const thing = () => "wow" as const;
- `,
+ export const thing = () => "wow" as const;
+ `,
"src/thing.tsx": tsx`
- import { thing } from "./other";
+ import { thing } from "./other";
- export const makeThing = () => thing();
- `,
+ export const makeThing = () => thing();
+ `,
"dist/declarations/src/index.d.ts": ts`
- export declare const thing: "wow";
- `,
+ export declare const thing: "wow";
+ `,
"dist/declarations/src/other.d.ts": ts`
- export declare const thing: () => "wow";
- `,
+ export declare const thing: () => "wow";
+ `,
"dist/declarations/src/thing.d.ts": ts`
- export declare const makeThing: () => "wow";
- `,
+ export declare const makeThing: () => "wow";
+ `,
});
await build(tmpPath);
@@ -143,44 +143,45 @@ test("typescript declarationMap", async () => {
2
),
"src/index.ts": ts`
- export const thing = "wow" as const;
- `,
+ export const thing = "wow" as const;
+ `,
});
await build(dir);
await expect(getDist(dir)).resolves.toMatchInlineSnapshot(`
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- export declare const thing: "wow";
- //# sourceMappingURL=index.d.ts.map
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts.map ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,OAAiB,CAAC"}
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- export * from "./declarations/src/index";
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const thing: "wow";
+ //# sourceMappingURL=index.d.ts.map
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts.map ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,OAAiB,CAAC"}
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1kZWNsYXJhdGlvbk1hcC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.cjs.dev.js, dist/typescript-declarationMap.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.cjs.dev.js, dist/typescript-declarationMap.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
+ Object.defineProperty(exports, '__esModule', { value: true });
- const thing = "wow";
+ const thing = "wow";
- exports.thing = thing;
+ exports.thing = thing;
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- if (process.env.NODE_ENV === "production") {
- module.exports = require("./typescript-declarationMap.cjs.prod.js");
- } else {
- module.exports = require("./typescript-declarationMap.cjs.dev.js");
- }
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./typescript-declarationMap.cjs.prod.js");
+ } else {
+ module.exports = require("./typescript-declarationMap.cjs.dev.js");
+ }
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- const thing = "wow";
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript-declarationMap.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ const thing = "wow";
- export { thing };
+ export { thing };
- `);
+ `);
});
test("process.env.NODE_ENV reassignment", async () => {
@@ -190,11 +191,11 @@ test("process.env.NODE_ENV reassignment", async () => {
main: "dist/test.cjs.js",
}),
"src/index.js": js`
- process.env.NODE_ENV = "development";
- something12.process.env.NODE_ENV = "development";
- console.log(process.env.NODE_ENV);
- console.log(something.process.env.NODE_ENV);
- `,
+ process.env.NODE_ENV = "development";
+ something12.process.env.NODE_ENV = "development";
+ console.log(process.env.NODE_ENV);
+ console.log(something.process.env.NODE_ENV);
+ `,
});
await build(dir);
expect(await getDist(dir)).toMatchInlineSnapshot(`
@@ -233,11 +234,11 @@ test("process.env.NODE_ENV reassignment new approach", async () => {
main: "dist/test.cjs.js",
}),
"src/index.js": js`
- process.env.NODE_ENV = "development";
- something12.process.env.NODE_ENV = "development";
- console.log(process.env.NODE_ENV);
- console.log(something.process.env.NODE_ENV);
- `,
+ process.env.NODE_ENV = "development";
+ something12.process.env.NODE_ENV = "development";
+ console.log(process.env.NODE_ENV);
+ console.log(something.process.env.NODE_ENV);
+ `,
});
await build(dir);
expect(await getDist(dir)).toMatchInlineSnapshot(`
@@ -288,19 +289,53 @@ test("does not duplicate babel helpers", async () => {
Object.defineProperty(exports, '__esModule', { value: true });
+ function _toPrimitive(input, hint) {
+ if (typeof input !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (typeof res !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
+
+ function _toPropertyKey(arg) {
+ var key = _toPrimitive(arg, "string");
+ return typeof key === "symbol" ? key : String(key);
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
+ }
+ }
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ Object.defineProperty(Constructor, "prototype", {
+ writable: false
+ });
+ return Constructor;
+ }
+
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
- var Other = function Other() {
+ var Other = /*#__PURE__*/_createClass(function Other() {
_classCallCheck(this, Other);
- };
+ });
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
exports.Other = Other;
exports.Thing = Thing;
@@ -340,15 +375,16 @@ test("imports helpers from @babel/runtime without @babel/plugin-transform-runtim
Object.defineProperty(exports, '__esModule', { value: true });
+ var _createClass = require('@babel/runtime/helpers/createClass');
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
- var Other = function Other() {
+ var Other = /*#__PURE__*/_createClass(function Other() {
_classCallCheck(this, Other);
- };
+ });
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
exports.Other = Other;
exports.Thing = Thing;
@@ -363,15 +399,16 @@ test("imports helpers from @babel/runtime without @babel/plugin-transform-runtim
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/test.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import _createClass from '@babel/runtime/helpers/esm/createClass';
import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';
- var Other = function Other() {
+ var Other = /*#__PURE__*/_createClass(function Other() {
_classCallCheck(this, Other);
- };
+ });
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
export { Other, Thing };
@@ -401,15 +438,16 @@ test("imports helpers from @babel/runtime-corejs2 without @babel/plugin-transfor
Object.defineProperty(exports, '__esModule', { value: true });
+ var _createClass = require('@babel/runtime-corejs2/helpers/createClass');
var _classCallCheck = require('@babel/runtime-corejs2/helpers/classCallCheck');
- var Other = function Other() {
+ var Other = /*#__PURE__*/_createClass(function Other() {
_classCallCheck(this, Other);
- };
+ });
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
exports.Other = Other;
exports.Thing = Thing;
@@ -424,15 +462,16 @@ test("imports helpers from @babel/runtime-corejs2 without @babel/plugin-transfor
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/test.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import _createClass from '@babel/runtime-corejs2/helpers/esm/createClass';
import _classCallCheck from '@babel/runtime-corejs2/helpers/esm/classCallCheck';
- var Other = function Other() {
+ var Other = /*#__PURE__*/_createClass(function Other() {
_classCallCheck(this, Other);
- };
+ });
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
export { Other, Thing };
@@ -462,15 +501,16 @@ test("imports helpers from @babel/runtime-corejs3 without @babel/plugin-transfor
Object.defineProperty(exports, '__esModule', { value: true });
+ var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
- var Other = function Other() {
+ var Other = /*#__PURE__*/_createClass(function Other() {
_classCallCheck(this, Other);
- };
+ });
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
exports.Other = Other;
exports.Thing = Thing;
@@ -485,15 +525,16 @@ test("imports helpers from @babel/runtime-corejs3 without @babel/plugin-transfor
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/test.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import _createClass from '@babel/runtime-corejs3/helpers/esm/createClass';
import _classCallCheck from '@babel/runtime-corejs3/helpers/esm/classCallCheck';
- var Other = function Other() {
+ var Other = /*#__PURE__*/_createClass(function Other() {
_classCallCheck(this, Other);
- };
+ });
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
export { Other, Thing };
@@ -523,9 +564,7 @@ test("does not duplicate babel helpers when using @babel/plugin-transform-runtim
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
-
return arr2;
}
@@ -534,17 +573,17 @@ test("does not duplicate babel helpers when using @babel/plugin-transform-runtim
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(n);
+ if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
- function _createForOfIteratorHelper(o) {
- if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
- if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {
+ function _createForOfIteratorHelper(o, allowArrayLike) {
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
+ if (!it) {
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
+ if (it) o = it;
var i = 0;
-
var F = function () {};
-
return {
s: F,
n: function () {
@@ -562,17 +601,14 @@ test("does not duplicate babel helpers when using @babel/plugin-transform-runtim
f: F
};
}
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
- var it,
- normalCompletion = true,
- didErr = false,
- err;
+ var normalCompletion = true,
+ didErr = false,
+ err;
return {
s: function () {
- it = o[Symbol.iterator]();
+ it = it.call(o);
},
n: function () {
var step = it.next();
@@ -593,30 +629,28 @@ test("does not duplicate babel helpers when using @babel/plugin-transform-runtim
};
}
- var _iterator = _createForOfIteratorHelper(something),
- _step;
-
+ var _iterator$1 = _createForOfIteratorHelper(something),
+ _step$1;
try {
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
- var x = _step.value;
+ for (_iterator$1.s(); !(_step$1 = _iterator$1.n()).done;) {
+ var x$1 = _step$1.value;
}
} catch (err) {
- _iterator.e(err);
+ _iterator$1.e(err);
} finally {
- _iterator.f();
+ _iterator$1.f();
}
- var _iterator$1 = _createForOfIteratorHelper(something),
- _step$1;
-
+ var _iterator = _createForOfIteratorHelper(something),
+ _step;
try {
- for (_iterator$1.s(); !(_step$1 = _iterator$1.n()).done;) {
- var x$1 = _step$1.value;
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
+ var x = _step.value;
}
} catch (err) {
- _iterator$1.e(err);
+ _iterator.e(err);
} finally {
- _iterator$1.f();
+ _iterator.f();
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
@@ -653,9 +687,7 @@ test("does not duplicate babel helpers when not using @babel/plugin-transform-ru
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
-
return arr2;
}
@@ -664,17 +696,17 @@ test("does not duplicate babel helpers when not using @babel/plugin-transform-ru
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(n);
+ if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
- function _createForOfIteratorHelper(o) {
- if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
- if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {
+ function _createForOfIteratorHelper(o, allowArrayLike) {
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
+ if (!it) {
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
+ if (it) o = it;
var i = 0;
-
var F = function () {};
-
return {
s: F,
n: function () {
@@ -692,17 +724,14 @@ test("does not duplicate babel helpers when not using @babel/plugin-transform-ru
f: F
};
}
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
- var it,
- normalCompletion = true,
- didErr = false,
- err;
+ var normalCompletion = true,
+ didErr = false,
+ err;
return {
s: function () {
- it = o[Symbol.iterator]();
+ it = it.call(o);
},
n: function () {
var step = it.next();
@@ -723,30 +752,28 @@ test("does not duplicate babel helpers when not using @babel/plugin-transform-ru
};
}
- var _iterator = _createForOfIteratorHelper(something),
- _step;
-
+ var _iterator$1 = _createForOfIteratorHelper(something),
+ _step$1;
try {
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
- var x = _step.value;
+ for (_iterator$1.s(); !(_step$1 = _iterator$1.n()).done;) {
+ var x$1 = _step$1.value;
}
} catch (err) {
- _iterator.e(err);
+ _iterator$1.e(err);
} finally {
- _iterator.f();
+ _iterator$1.f();
}
- var _iterator$1 = _createForOfIteratorHelper(something),
- _step$1;
-
+ var _iterator = _createForOfIteratorHelper(something),
+ _step;
try {
- for (_iterator$1.s(); !(_step$1 = _iterator$1.n()).done;) {
- var x$1 = _step$1.value;
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
+ var x = _step.value;
}
} catch (err) {
- _iterator$1.e(err);
+ _iterator.e(err);
} finally {
- _iterator$1.f();
+ _iterator.f();
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
@@ -783,30 +810,28 @@ test("imports helpers for a helper only available in a newer version of @babel/r
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
- var _iterator = _createForOfIteratorHelper(something),
- _step;
-
+ var _iterator$1 = _createForOfIteratorHelper(something),
+ _step$1;
try {
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
- var x = _step.value;
+ for (_iterator$1.s(); !(_step$1 = _iterator$1.n()).done;) {
+ var x$1 = _step$1.value;
}
} catch (err) {
- _iterator.e(err);
+ _iterator$1.e(err);
} finally {
- _iterator.f();
+ _iterator$1.f();
}
- var _iterator$1 = _createForOfIteratorHelper(something),
- _step$1;
-
+ var _iterator = _createForOfIteratorHelper(something),
+ _step;
try {
- for (_iterator$1.s(); !(_step$1 = _iterator$1.n()).done;) {
- var x$1 = _step$1.value;
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
+ var x = _step.value;
}
} catch (err) {
- _iterator$1.e(err);
+ _iterator.e(err);
} finally {
- _iterator$1.f();
+ _iterator.f();
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
@@ -829,35 +854,35 @@ test("new dist filenames", async () => {
module: "dist/scope-test.esm.js",
}),
"src/index.js": js`
- export default "something";
- `,
+ export default "something";
+ `,
});
await build(dir);
await expect(getDist(dir)).resolves.toMatchInlineSnapshot(`
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js, dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js, dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
+ Object.defineProperty(exports, '__esModule', { value: true });
- var index = "something";
+ var index = "something";
- exports.default = index;
+ exports["default"] = index;
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- if (process.env.NODE_ENV === "production") {
- module.exports = require("./scope-test.cjs.prod.js");
- } else {
- module.exports = require("./scope-test.cjs.dev.js");
- }
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./scope-test.cjs.prod.js");
+ } else {
+ module.exports = require("./scope-test.cjs.dev.js");
+ }
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- var index = "something";
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ var index = "something";
- export default index;
+ export { index as default };
- `);
+ `);
});
test("UMD with dep that uses process.env.NODE_ENV", async () => {
@@ -872,13 +897,13 @@ test("UMD with dep that uses process.env.NODE_ENV", async () => {
preconstruct: { umdName: "test" },
}),
"src/index.js": js`
- import { x } from "somewhere";
- console.log(x);
- export default "something";
- `,
+ import { x } from "somewhere";
+ console.log(x);
+ export default "something";
+ `,
"node_modules/somewhere/index.js": js`
- export let x = process.env.NODE_ENV;
- `,
+ export let x = process.env.NODE_ENV;
+ `,
"node_modules/somewhere/package.json": JSON.stringify({
name: "somewhere",
@@ -886,34 +911,34 @@ test("UMD with dep that uses process.env.NODE_ENV", async () => {
});
await build(dir);
await expect(getDist(dir)).resolves.toMatchInlineSnapshot(`
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js, dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js, dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
+ Object.defineProperty(exports, '__esModule', { value: true });
- var somewhere = require('somewhere');
+ var somewhere = require('somewhere');
- console.log(somewhere.x);
- var index = "something";
+ console.log(somewhere.x);
+ var index = "something";
- exports.default = index;
+ exports["default"] = index;
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- if (process.env.NODE_ENV === "production") {
- module.exports = require("./scope-test.cjs.prod.js");
- } else {
- module.exports = require("./scope-test.cjs.dev.js");
- }
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./scope-test.cjs.prod.js");
+ } else {
+ module.exports = require("./scope-test.cjs.dev.js");
+ }
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).test=o()}(this,(function(){"use strict";console.log("production");return"something"}));
- //# sourceMappingURL=scope-test.umd.min.js.map
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).test=o()}(this,(function(){"use strict";console.log("production");return"something"}));
+ //# sourceMappingURL=scope-test.umd.min.js.map
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js.map ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- {"version":3,"file":"scope-test.umd.min.js","sources":["../src/index.js"],"sourcesContent":["import { x } from \\"somewhere\\";\\nconsole.log(x);\\nexport default \\"something\\";"],"names":["console","log"],"mappings":"qOACAA,QAAQC,wBACO"}
- `);
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js.map ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {"version":3,"file":"scope-test.umd.min.js","sources":["../src/index.js","../node_modules/somewhere/index.js"],"sourcesContent":["import { x } from \\"somewhere\\";\\nconsole.log(x);\\nexport default \\"something\\";","export let x = process.env.NODE_ENV;"],"names":["console","log"],"mappings":"qOACAA,QAAQC,ICD2B,oBDEpB"}
+ `);
});
test("UMD build with process.env.NODE_ENV and typeof document", async () => {
@@ -927,55 +952,55 @@ test("UMD build with process.env.NODE_ENV and typeof document", async () => {
},
}),
"src/index.js": js`
- let x = typeof document;
+ let x = typeof document;
- const thing = () => {
- console.log(process.env.NODE_ENV);
- };
+ const thing = () => {
+ console.log(process.env.NODE_ENV);
+ };
- export default thing;
- `,
+ export default thing;
+ `,
});
await build(dir);
await expect(getDist(dir)).resolves.toMatchInlineSnapshot(`
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
+ Object.defineProperty(exports, '__esModule', { value: true });
- const thing = () => {
- console.log(process.env.NODE_ENV);
- };
+ const thing = () => {
+ console.log(process.env.NODE_ENV);
+ };
- exports.default = thing;
+ exports["default"] = thing;
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- if (process.env.NODE_ENV === "production") {
- module.exports = require("./scope-test.cjs.prod.js");
- } else {
- module.exports = require("./scope-test.cjs.dev.js");
- }
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./scope-test.cjs.prod.js");
+ } else {
+ module.exports = require("./scope-test.cjs.dev.js");
+ }
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
+ Object.defineProperty(exports, '__esModule', { value: true });
- const thing = () => {
- console.log( "production");
- };
+ const thing = () => {
+ console.log( "production");
+ };
- exports.default = thing;
+ exports["default"] = thing;
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).x=o()}(this,(function(){"use strict";return()=>{console.log("production")}}));
- //# sourceMappingURL=scope-test.umd.min.js.map
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).x=o()}(this,(function(){"use strict";return()=>{console.log("production")}}));
+ //# sourceMappingURL=scope-test.umd.min.js.map
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js.map ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- {"version":3,"file":"scope-test.umd.min.js","sources":["../src/index.js"],"sourcesContent":["let x = typeof document;\\n\\nconst thing = () => {\\n console.log(process.env.NODE_ENV);\\n};\\n\\nexport default thing;"],"names":["console","log"],"mappings":"wOAEc,KACZA,QAAQC"}
- `);
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.umd.min.js.map ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ {"version":3,"file":"scope-test.umd.min.js","sources":["../src/index.js"],"sourcesContent":["let x = typeof document;\\n\\nconst thing = () => {\\n console.log(process.env.NODE_ENV);\\n};\\n\\nexport default thing;"],"names":["thing","console","log","process"],"mappings":"wOAEcA,KACZC,QAAQC,IAAIC,aAAqB"}
+ `);
});
test("typescript declaration emit with unreferencable types emits diagnostic", async () => {
@@ -1008,17 +1033,17 @@ test("typescript declaration emit with unreferencable types emits diagnostic", a
2
),
"src/index.ts": ts`
- import { x } from "./x";
+ import { x } from "./x";
- export const thing = x();
- `,
+ export const thing = x();
+ `,
"src/x.ts": ts`
- class A {
- private a?: string;
- }
+ type A = {
+ a?: A;
+ };
- export const x = () => new A();
- `,
+ export const x = (): A => ({});
+ `,
});
const error = await build(dir).catch((x) => x);
expect(error).toBeInstanceOf(BatchError);
@@ -1070,10 +1095,10 @@ test("typescript declaration emit with json import", async () => {
2
),
"src/index.ts": ts`
- import x from "./x.json";
+ import x from "./x.json";
- export const thing = x;
- `,
+ export const thing = x;
+ `,
"src/x.json": JSON.stringify({ thing: true, other: "" }),
});
await build(dir);
@@ -1086,6 +1111,7 @@ test("typescript declaration emit with json import", async () => {
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtdGVzdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js, dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -1125,8 +1151,8 @@ test("bigint usage", async () => {
path: repoNodeModules,
},
"src/index.js": ts`
- export const thing = 5n;
- `,
+ export const thing = 5n;
+ `,
});
await build(dir);
expect(await getDist(dir)).toMatchInlineSnapshot(`
@@ -1164,9 +1190,9 @@ test("node: is external", async () => {
module: "dist/scope-test.esm.js",
}),
"src/index.js": ts`
- import fs from "node:fs";
- fs.writeFileSync("test.txt", "test");
- `,
+ import fs from "node:fs";
+ fs.writeFileSync("test.txt", "test");
+ `,
});
await build(dir);
expect(await getDist(dir)).toMatchInlineSnapshot(`
@@ -1179,7 +1205,7 @@ test("node: is external", async () => {
var fs__default = /*#__PURE__*/_interopDefault(fs);
- fs__default['default'].writeFileSync("test.txt", "test");
+ fs__default["default"].writeFileSync("test.txt", "test");
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -1206,11 +1232,80 @@ test("importing css fails with a nice error", async () => {
module: "dist/scope-test.esm.js",
}),
"src/index.js": js`
- import "./blah.css";
- `,
+ import "./blah.css";
+ `,
"src/blah.css": "",
});
await expect(build(dir)).rejects.toMatchInlineSnapshot(
`[Error: 🎁 @scope/test only .ts, .tsx, .js, .jsx, and .json files can be imported but "./blah.css" is imported in "src/index.js"]`
);
});
+
+test(".d.ts file with default export", async () => {
+ let dir = await testdir({
+ node_modules: { kind: "symlink", path: repoNodeModules },
+ "package.json": JSON.stringify({
+ name: "typescript",
+ main: "dist/typescript.cjs.js",
+ module: "dist/typescript.esm.js",
+ dependencies: {
+ typescript: "^3.4.5",
+ },
+ }),
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ target: "esnext",
+ module: "commonjs",
+ strict: true,
+ esModuleInterop: true,
+ noEmit: true,
+ },
+ }),
+ ".babelrc": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+ "src/index.js": js`
+ export const a = true;
+ export default a;
+ `,
+ "src/index.d.ts": ts`
+ export declare const a: boolean;
+ export default a;
+ `,
+ });
+ await build(dir);
+ expect(await getDist(dir)).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const a: boolean;
+ export default a;
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ export { default } from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.dev.js, dist/typescript.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const a = true;
+
+ exports.a = a;
+ exports["default"] = a;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./typescript.cjs.prod.js");
+ } else {
+ module.exports = require("./typescript.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ const a = true;
+
+ export { a, a as default };
+
+ `);
+});
diff --git a/packages/cli/src/build/__tests__/build.ts b/packages/cli/src/build/__tests__/build.ts
index cc02cfd3..36f10bc2 100644
--- a/packages/cli/src/build/__tests__/build.ts
+++ b/packages/cli/src/build/__tests__/build.ts
@@ -14,10 +14,12 @@ import {
basicPkgJson,
getFiles,
ts,
+ stripHashes,
} from "../../../test-utils";
import { doPromptInput as _doPromptInput } from "../../prompt";
import { confirms as _confirms } from "../../messages";
import spawn from "spawndamnit";
+import stripAnsi from "strip-ansi";
const f = fixturez(__dirname);
@@ -62,11 +64,11 @@ test("clears dist folder", async () => {
main: "dist/already-has-things-in-dist.cjs.js",
}),
"src/index.js": js`
- export default "something";
- `,
+ export default "something";
+ `,
"dist/something.js": js`
- throw new Error("why are you seeing this?");
- `,
+ throw new Error("why are you seeing this?");
+ `,
});
await build(dir);
@@ -79,7 +81,7 @@ test("clears dist folder", async () => {
var index = "something";
- exports.default = index;
+ exports["default"] = index;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/already-has-things-in-dist.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -105,18 +107,18 @@ test("flow", async () => {
}),
"src/a.js": js`
- export default "wow";
- `,
+ export default "wow";
+ `,
"src/index.js": js`
- // @flow
+ // @flow
- export function doSomething(arg: string): string {
- return "something" + arg;
- }
+ export function doSomething(arg: string): string {
+ return "something" + arg;
+ }
- export { default as something } from "./a";
- `,
+ export { default as something } from "./a";
+ `,
});
await install(tmpPath);
@@ -137,14 +139,14 @@ test("flow", async () => {
presets: [require.resolve("@babel/preset-flow")],
}),
"src/index.js": js`
- // @flow
+ // @flow
- export function doSomething(arg: string): string {
- return "something" + arg;
- }
+ export function doSomething(arg: string): string {
+ return "something" + arg;
+ }
- export default "wow";
- `,
+ export default "wow";
+ `,
});
await install(tmpPath);
@@ -164,13 +166,13 @@ test("prod checks", async () => {
}),
"src/index.js": js`
- export function thing() {
- if (process.env.NODE_ENV !== "production") {
- return "not prod";
- }
- return "prod";
- }
- `,
+ export function thing() {
+ if (process.env.NODE_ENV !== "production") {
+ return "not prod";
+ }
+ return "prod";
+ }
+ `,
});
await build(tmpPath);
@@ -205,10 +207,10 @@ test("umd with dep on other module", async () => {
path: repoNodeModules,
},
"src/index.js": js`
- import { createElement } from "react";
+ import { createElement } from "react";
- createElement("div", null);
- `,
+ createElement("div", null);
+ `,
});
doPromptInput.mockImplementation(async (question) => {
@@ -334,24 +336,24 @@ test("monorepo umd with dep on other module", async () => {
}),
"packages/package-four/src/index.js": js`
- import "@some-scope/package-one-umd-with-dep";
- `,
+ import "@some-scope/package-one-umd-with-dep";
+ `,
"packages/package-one/src/index.js": js`
- import { createElement } from "react";
+ import { createElement } from "react";
- createElement("div", null);
- `,
+ createElement("div", null);
+ `,
"packages/package-three/src/index.js": js`
- import "@some-scope/package-one-umd-with-dep";
- `,
+ import "@some-scope/package-one-umd-with-dep";
+ `,
"packages/package-two/src/index.js": js`
- import { createElement } from "react";
+ import { createElement } from "react";
- createElement("h1", null);
- `,
+ createElement("h1", null);
+ `,
});
let asked = false;
doPromptInput.mockImplementation(async (question) => {
@@ -447,10 +449,10 @@ test("json", async () => {
}),
"src/index.js": js`
- import changesetsSchema from "./schema.json";
+ import changesetsSchema from "./schema.json";
- export let schema = changesetsSchema;
- `,
+ export let schema = changesetsSchema;
+ `,
"src/schema.json": JSON.stringify({
$schema: "http://json-schema.org/draft-07/schema#",
@@ -518,10 +520,10 @@ test("respect browser alias field in dependencies when bundling UMD", async () =
},
}),
"src/index.js": js`
- import target from "with-browser-alias-field";
+ import target from "with-browser-alias-field";
- export default "And the target is: " + target;
- `,
+ export default "And the target is: " + target;
+ `,
"node_modules/with-browser-alias-field/package.json": JSON.stringify({
name: "with-browser-alias-field",
browser: {
@@ -529,14 +531,14 @@ test("respect browser alias field in dependencies when bundling UMD", async () =
},
}),
"node_modules/with-browser-alias-field/index.js": js`
- export { default } from "./lib/file";
- `,
+ export { default } from "./lib/file";
+ `,
"node_modules/with-browser-alias-field/lib/file.js": js`
- export default "node";
- `,
+ export default "node";
+ `,
"node_modules/with-browser-alias-field/lib/browser-file.js": js`
- export default "browser";
- `,
+ export default "browser";
+ `,
});
await build(dir);
@@ -566,10 +568,10 @@ test("keepDynamicImportAsDynamicImportInCommonJS experimental flag", async () =>
},
}),
"src/index.js": js`
- import "some-dep";
+ import "some-dep";
- import("some-dep");
- `,
+ import("some-dep");
+ `,
});
await build(dir);
@@ -619,8 +621,8 @@ test("using @babel/plugin-transform-runtime with useESModules: true", async () =
],
}),
"src/index.js": js`
- export class Thing {}
- `,
+ export class Thing {}
+ `,
});
await build(dir);
@@ -631,11 +633,12 @@ test("using @babel/plugin-transform-runtime with useESModules: true", async () =
Object.defineProperty(exports, '__esModule', { value: true });
+ var _createClass = require('@babel/runtime/helpers/createClass');
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
exports.Thing = Thing;
@@ -649,11 +652,12 @@ test("using @babel/plugin-transform-runtime with useESModules: true", async () =
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/test.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import _createClass from '@babel/runtime/helpers/esm/createClass';
import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';
- var Thing = function Thing() {
+ var Thing = /*#__PURE__*/_createClass(function Thing() {
_classCallCheck(this, Thing);
- };
+ });
export { Thing };
@@ -691,8 +695,8 @@ test("worker and browser build", async () => {
path: repoNodeModules,
},
"src/index.js": js`
- export const thing = typeof window;
- `,
+ export const thing = typeof window;
+ `,
});
await build(dir);
expect(await getDist(dir)).toMatchInlineSnapshot(`
@@ -732,6 +736,33 @@ test("worker and browser build", async () => {
`);
});
+const tsSetupFiles = {
+ "node_modules/typescript": {
+ kind: "symlink",
+ path: path.join(repoNodeModules, "typescript"),
+ },
+ "node_modules/@babel/preset-typescript": {
+ kind: "symlink",
+ path: path.join(repoNodeModules, "@babel/preset-typescript"),
+ },
+ "babel.config.json": JSON.stringify({
+ presets: ["@babel/preset-typescript"],
+ }),
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "NodeNext",
+ moduleResolution: "nodenext",
+ strict: true,
+ declaration: true,
+ },
+ }),
+} as const;
+
+const tscBinPath = path.join(
+ path.dirname(require.resolve("typescript/package.json")),
+ "bin/tsc"
+);
+
test("typescript with nodenext module resolution", async () => {
let dir = await testdir({
"package.json": JSON.stringify({
@@ -765,48 +796,306 @@ test("typescript with nodenext module resolution", async () => {
module: "dist/pkg-a-something.esm.js",
}),
"packages/pkg-a/src/index.ts": ts`
- export const thing = "index";
- `,
+ export const thing = "index";
+ `,
"packages/pkg-a/src/something.ts": ts`
- export const something = "something";
- `,
+ export const something = "something";
+ `,
"packages/pkg-a/not-exported.ts": ts`
- export const notExported = true;
- `,
-
- "packages/pkg-a/node_modules": {
- kind: "symlink",
- path: repoNodeModules,
- },
+ export const notExported = true;
+ `,
"blah.ts": ts`
- import { thing } from "pkg-a";
- import { something } from "pkg-a/something";
- import { notExported } from "pkg-a/not-exported"; // should error
+ import { thing } from "pkg-a";
+ import { something } from "pkg-a/something";
+ import { notExported } from "pkg-a/not-exported"; // should error
- function acceptThing(x: T) {}
+ function acceptThing(x: T) {}
- acceptThing<"index">(thing);
- acceptThing<"something">(something);
+ acceptThing<"index">(thing);
+ acceptThing<"something">(something);
- // this is to check that TypeScript is actually checking things
- acceptThing<"other">(thing); // should error
- acceptThing<"other">(something); // should error
- `,
- "tsconfig.json": JSON.stringify({
- compilerOptions: {
- module: "NodeNext",
- moduleResolution: "nodenext",
- strict: true,
- declaration: true,
+ // this is to check that TypeScript is actually checking things
+ acceptThing<"other">(thing); // should error
+ acceptThing<"other">(something); // should error
+ `,
+ ...tsSetupFiles,
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await build(dir);
+ let { code, stdout, stderr } = await spawn(tscBinPath, [], { cwd: dir });
+ expect(code).toBe(2);
+ expect(stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "blah.ts(3,29): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
+ blah.ts(11,22): error TS2345: Argument of type '"index"' is not assignable to parameter of type '"other"'.
+ blah.ts(12,22): error TS2345: Argument of type '"something"' is not assignable to parameter of type '"other"'.
+ "
+ `);
+ expect(stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+});
+
+test("self import", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@my-test/package",
+ main: "dist/my-test-package.cjs.js",
+ module: "dist/my-test-package.esm.js",
+ preconstruct: {
+ entrypoints: ["index.js", "other.js"],
+ },
+ }),
+ "other/package.json": JSON.stringify({
+ main: "dist/my-test-package-other.cjs.js",
+ module: "dist/my-test-package-other.esm.js",
+ }),
+ "src/index.js": js`
+ export const a = 1;
+ `,
+ "src/other.js": js`
+ export { a } from "@my-test/package";
+ export const b = a;
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**", "other/dist/**"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-test-package.cjs.dev.js, dist/my-test-package.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const a = 1;
+
+ exports.a = a;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-test-package.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./my-test-package.cjs.prod.js");
+ } else {
+ module.exports = require("./my-test-package.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-test-package.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ const a = 1;
+
+ export { a };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ other/dist/my-test-package-other.cjs.dev.js, other/dist/my-test-package-other.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var _package = require('@my-test/package');
+
+ const b = a;
+
+ Object.defineProperty(exports, 'a', {
+ enumerable: true,
+ get: function () { return _package.a; }
+ });
+ exports.b = b;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ other/dist/my-test-package-other.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./my-test-package-other.cjs.prod.js");
+ } else {
+ module.exports = require("./my-test-package-other.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ other/dist/my-test-package-other.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { a } from '@my-test/package';
+
+ const b = a;
+
+ export { b };
+
+ `);
+});
+
+test("correct default export using mjs and dmts proxies", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@mjs-proxy/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./something": {
+ module: "./something/dist/pkg-a-something.esm.js",
+ import: "./something/dist/pkg-a-something.cjs.mjs",
+ default: "./something/dist/pkg-a-something.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts", "something.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
},
}),
+ "packages/pkg-a/something/package.json": JSON.stringify({
+ main: "dist/pkg-a-something.cjs.js",
+ module: "dist/pkg-a-something.esm.js",
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export const thing = "index";
+ export default true;
+ `,
+ "packages/pkg-a/src/something.ts": ts`
+ export const something = "something";
+ export default 100;
+ `,
+ "packages/pkg-a/not-exported.ts": ts`
+ export const notExported = true;
+ export default "foo";
+ `,
+ "blah.mts": ts`
+ function acceptThing(x: T) {}
+
+ import { thing } from "pkg-a";
+ import { something } from "pkg-a/something";
+ import { notExported } from "pkg-a/not-exported"; // should error
+
+ acceptThing<"index">(thing);
+ acceptThing<"something">(something);
+
+ // this is to check that TypeScript is actually checking things
+ acceptThing<"other">(thing); // should error
+ acceptThing<"other">(something); // should error
+
+ import indexDefault from "pkg-a";
+ import somethingDefault from "pkg-a/something";
+ import notExportedDefault from "pkg-a/not-exported"; // should error
+
+ acceptThing(indexDefault);
+ acceptThing(somethingDefault);
+
+ // this is to check that TypeScript is actually checking things
+ acceptThing<"other">(indexDefault); // should error
+ acceptThing<"other">(somethingDefault); // should error
+
+ import * as indexNs from "pkg-a";
+ import * as somethingNs from "pkg-a/something";
+ import * as notExportedNs from "pkg-a/not-exported"; // should error
+
+ acceptThing(indexNs.default);
+ acceptThing(somethingNs.default);
+
+ // this is to check that TypeScript is actually checking things
+ acceptThing<"other">(indexNs.default); // should error
+ acceptThing<"other">(somethingNs.default); // should error
+ `,
+ "runtime-blah.mjs": ts`
+ let counter = 0;
+ function acceptThing(actual, expected) {
+ console.log(++counter, "actual", actual, "expected", expected);
+ }
+
+ import { thing } from "pkg-a";
+ import { something } from "pkg-a/something";
+
+ acceptThing(thing, "index");
+ acceptThing(something, "something");
+
+ import indexDefault from "pkg-a";
+ import somethingDefault from "pkg-a/something";
+
+ acceptThing(indexDefault, true);
+ acceptThing(somethingDefault, 100);
+
+ import * as indexNs from "pkg-a";
+ import * as somethingNs from "pkg-a/something";
+
+ acceptThing(indexNs.default, true);
+ acceptThing(somethingNs.default, 100);
+ `,
+ ...tsSetupFiles,
});
await fs.ensureSymlink(
path.join(dir, "packages/pkg-a"),
path.join(dir, "node_modules/pkg-a")
);
await build(dir);
- let { code, stdout, stderr } = await spawn(
+
+ expect(await getFiles(dir, ["packages/*/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const thing = "index";
+ declare const _default: true;
+ export default _default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/something.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const something = "something";
+ declare const _default: 100;
+ export default _default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ export { default } from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { default as _default } from "./declarations/src/index.js"
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ exports._default = require("./pkg-a.cjs.js").default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.dev.js, packages/pkg-a/dist/pkg-a.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const thing = "index";
+ var index = true;
+
+ exports["default"] = index;
+ exports.thing = thing;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg-a.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg-a.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ thing
+ } from "./pkg-a.cjs.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ const thing = "index";
+ var index = true;
+
+ export { index as default, thing };
+
+ `);
+
+ let tsc = await spawn(
path.join(
path.dirname(require.resolve("typescript/package.json")),
"bin/tsc"
@@ -814,12 +1103,1285 @@ test("typescript with nodenext module resolution", async () => {
[],
{ cwd: dir }
);
- expect(code).toBe(2);
- expect(stdout.toString("utf8")).toMatchInlineSnapshot(`
- "blah.ts(3,29): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
- blah.ts(11,22): error TS2345: Argument of type '"index"' is not assignable to parameter of type '"other"'.
- blah.ts(12,22): error TS2345: Argument of type '"something"' is not assignable to parameter of type '"other"'.
+ expect(tsc.code).toBe(2);
+ expect(tsc.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "blah.mts(5,29): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
+ blah.mts(11,22): error TS2345: Argument of type '"index"' is not assignable to parameter of type '"other"'.
+ blah.mts(12,22): error TS2345: Argument of type '"something"' is not assignable to parameter of type '"other"'.
+ blah.mts(16,32): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
+ blah.mts(22,22): error TS2345: Argument of type 'true' is not assignable to parameter of type '"other"'.
+ blah.mts(23,22): error TS2345: Argument of type '100' is not assignable to parameter of type '"other"'.
+ blah.mts(27,32): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
+ blah.mts(33,22): error TS2345: Argument of type 'true' is not assignable to parameter of type '"other"'.
+ blah.mts(34,22): error TS2345: Argument of type '100' is not assignable to parameter of type '"other"'.
"
`);
- expect(stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+ expect(tsc.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+
+ let node = await spawn("node", ["runtime-blah.mjs"], {
+ cwd: dir,
+ env: { ...process.env, FORCE_COLOR: undefined, NO_COLOR: "1" },
+ });
+
+ expect(node.code).toBe(0);
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "1 actual index expected index
+ 2 actual something expected something
+ 3 actual true expected true
+ 4 actual 100 expected 100
+ 5 actual true expected true
+ 6 actual 100 expected 100
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+});
+
+test("importing a package via dynamic import from another package provides the right types", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@mjs-proxy/repo",
+ preconstruct: {
+ packages: ["packages/*"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export const thing = "index";
+ export default true;
+ `,
+ "packages/pkg-b/package.json": JSON.stringify({
+ name: "pkg-b",
+ main: "dist/pkg-b.cjs.js",
+ module: "dist/pkg-b.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-b.esm.js",
+ import: "./dist/pkg-b.cjs.mjs",
+ default: "./dist/pkg-b.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ dependencies: {
+ "pkg-a": "^1.0.0",
+ },
+ }),
+
+ "packages/pkg-b/src/index.ts": ts`
+ export const thing = import("pkg-a").then((x) => x.default);
+ `,
+ ...tsSetupFiles,
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-b"),
+ path.join(dir, "node_modules/pkg-b")
+ );
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/pkg-b/dist/**"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const thing: Promise;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWIuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWIuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.cjs.dev.js, packages/pkg-b/dist/pkg-b.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () { return e[k]; }
+ });
+ }
+ });
+ }
+ n["default"] = e;
+ return Object.freeze(n);
+ }
+
+ const thing = Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('pkg-a')); }).then(x => x.default);
+
+ exports.thing = thing;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg-b.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg-b.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ thing
+ } from "./pkg-b.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ const thing = import('pkg-a').then(x => x.default);
+
+ export { thing };
+
+ `);
+});
+
+test("importing another package via dynamic import and exporting the namespace produces a typescript error because the type cannot be named", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@mjs-proxy/repo",
+ preconstruct: {
+ packages: ["packages/*"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export const thing = "index";
+ export default true;
+ `,
+ "packages/pkg-b/package.json": JSON.stringify({
+ name: "pkg-b",
+ main: "dist/pkg-b.cjs.js",
+ module: "dist/pkg-b.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-b.esm.js",
+ import: "./dist/pkg-b.cjs.mjs",
+ default: "./dist/pkg-b.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ dependencies: {
+ "pkg-a": "^1.0.0",
+ },
+ }),
+ "packages/pkg-b/src/index.ts": ts`
+ export const thing = import("pkg-a");
+ `,
+ ...tsSetupFiles,
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-b"),
+ path.join(dir, "node_modules/pkg-b")
+ );
+ const error = await build(dir).catch((x) => x);
+ expect(stripAnsi(error + "")).toMatchInlineSnapshot(`
+ "Error: 🎁 Generating TypeScript declarations for packages/pkg-b/src/index.ts failed:
+ 🎁 packages/pkg-b/src/index.ts:1:14 - error TS2841: The type of this expression cannot be named without a 'resolution-mode' assertion, which is an unstable feature. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.
+ 🎁
+ 🎁 1 export const thing = import("pkg-a");
+ 🎁 ~~~~~
+ 🎁"
+ `);
+});
+
+test("importing another package via dynamic import and exporting something that requires importing a type from the other package works", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@mjs-proxy/repo",
+ preconstruct: {
+ packages: ["packages/*"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export type A = {
+ a?: A;
+ };
+ export const thing: A = {};
+ const _default: A = {};
+ export default _default;
+ `,
+ "packages/pkg-b/package.json": JSON.stringify({
+ name: "pkg-b",
+ main: "dist/pkg-b.cjs.js",
+ module: "dist/pkg-b.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-b.esm.js",
+ import: "./dist/pkg-b.cjs.mjs",
+ default: "./dist/pkg-b.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ dependencies: {
+ "pkg-a": "^1.0.0",
+ },
+ }),
+
+ "packages/pkg-b/src/index.ts": ts`
+ export const pkgADefault = import("pkg-a").then((x) => x.default);
+ export const pkgAThing = import("pkg-a").then((x) => x.thing);
+ `,
+ ...tsSetupFiles,
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-b"),
+ path.join(dir, "node_modules/pkg-b")
+ );
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.{,m}ts"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type A = {
+ a?: A;
+ };
+ export declare const thing: A;
+ declare const _default: A;
+ export default _default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ export { default } from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { default as _default } from "./declarations/src/index.js"
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const pkgADefault: Promise;
+ export declare const pkgAThing: Promise;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWIuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-b/dist/pkg-b.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWIuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("no __esModule when reexporting namespace with mjs proxy", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@mjs-proxy-no-__esmodule/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.js"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "packages/pkg-a/src/index.js": ts`
+ export * as somethingNs from "./something";
+ `,
+ "packages/pkg-a/src/something.js": ts`
+ export const something = "something";
+ export default 100;
+ `,
+
+ "packages/pkg-a/node_modules": {
+ kind: "symlink",
+ path: repoNodeModules,
+ },
+ "runtime-blah.mjs": ts`
+ let counter = 0;
+ function acceptThing(actual, expected) {
+ console.log(++counter, "actual", actual, "expected", expected);
+ }
+
+ import * as ns from "pkg-a";
+
+ acceptThing(ns.somethingNs.something, "something");
+ acceptThing(ns.somethingNs.default, 100);
+ acceptThing(ns.__esModule, undefined);
+ `,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "NodeNext",
+ moduleResolution: "nodenext",
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.dev.js, packages/pkg-a/dist/pkg-a.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const something = "something";
+ var something$1 = 100;
+
+ var something$2 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ something: something,
+ 'default': something$1
+ });
+
+ exports.somethingNs = something$2;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg-a.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg-a.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ somethingNs
+ } from "./pkg-a.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ const something = "something";
+ var something$1 = 100;
+
+ var something$2 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ something: something,
+ 'default': something$1
+ });
+
+ export { something$2 as somethingNs };
+
+ `);
+
+ let node = await spawn("node", ["runtime-blah.mjs"], {
+ cwd: dir,
+ env: { ...process.env, FORCE_COLOR: undefined, NO_COLOR: "1" },
+ });
+
+ expect(node.code).toBe(0);
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "1 actual something expected something
+ 2 actual 100 expected 100
+ 3 actual undefined expected undefined
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+});
+
+test("export * from external", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "repo",
+ preconstruct: { packages: ["packages/pkg-a"] },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ dependencies: {
+ "external-pkg": "*",
+ },
+ }),
+ "packages/pkg-a/something/package.json": JSON.stringify({
+ main: "dist/pkg-a-something.cjs.js",
+ module: "dist/pkg-a-something.esm.js",
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export * from "external-pkg";
+ export const a = true;
+ export default "default";
+ `,
+ "blah.mts": ts`
+ function acceptThing(x: T) {}
+ import * as ns from "pkg-a";
+ import def from "pkg-a";
+ import { a, fromExternal } from "pkg-a";
+ acceptThing<{ a: boolean; fromExternal: string; default: string }>(ns);
+ acceptThing(def);
+ acceptThing(a);
+ acceptThing(fromExternal);
+
+ acceptThing(fromExternal); // should fail
+ import { __esModule } from "pkg-a"; // should fail
+ `,
+ "runtime-blah.mjs": js`
+ let counter = 0;
+ function acceptThing(actual, expected) {
+ console.log(++counter, "actual", actual, "expected", expected);
+ }
+
+ import * as ns from "pkg-a";
+
+ acceptThing(ns.default, "default");
+ acceptThing(ns.a, true);
+ acceptThing(ns.fromExternal, "from-external");
+ acceptThing(ns.__esModule, true);
+ `,
+ "node_modules/external-pkg/index.js": js`
+ exports.fromExternal = "from-external";
+ `,
+ "node_modules/external-pkg/index.d.ts": ts`
+ export const fromExternal: string;
+ `,
+ ...tsSetupFiles,
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "external-pkg";
+ export declare const a = true;
+ declare const _default: "default";
+ export default _default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ export { default } from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { default as _default } from "./declarations/src/index.js"
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ exports._default = require("./pkg-a.cjs.js").default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.dev.js, packages/pkg-a/dist/pkg-a.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var externalPkg = require('external-pkg');
+
+ const a = true;
+ var index = "default";
+
+ exports.a = a;
+ exports["default"] = index;
+ Object.keys(externalPkg).forEach(function (k) {
+ if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
+ enumerable: true,
+ get: function () { return externalPkg[k]; }
+ });
+ });
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg-a.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg-a.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./pkg-a.cjs.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from 'external-pkg';
+
+ const a = true;
+ var index = "default";
+
+ export { a, index as default };
+
+ `);
+
+ let node = await spawn("node", ["runtime-blah.mjs"], {
+ cwd: dir,
+ env: { ...process.env, FORCE_COLOR: undefined, NO_COLOR: "1" },
+ });
+
+ expect(node.code).toBe(0);
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "1 actual default expected default
+ 2 actual true expected true
+ 3 actual from-external expected from-external
+ 4 actual true expected true
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+ let { code, stdout, stderr } = await spawn(tscBinPath, [], { cwd: dir });
+ expect(code).toBe(2);
+ expect(stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "blah.mts(10,22): error TS2345: Argument of type 'string' is not assignable to parameter of type 'boolean'.
+ blah.mts(11,10): error TS2614: Module '"pkg-a"' has no exported member '__esModule'. Did you mean to use 'import __esModule from "pkg-a"' instead?
+ "
+ `);
+ expect(stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+});
+
+test("type only export imported in .mts", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "repo",
+ preconstruct: { packages: ["packages/pkg-a"] },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: { importConditionDefaultExport: "default" },
+ },
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export type SomeType = string;
+ `,
+ "blah.mts": ts`
+ function acceptThing(x: T) {}
+ import { SomeType } from "pkg-a";
+ acceptThing("");
+ acceptThing(true); // should fail
+ `,
+ ...tsSetupFiles,
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type SomeType = string;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.dev.js, packages/pkg-a/dist/pkg-a.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg-a.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg-a.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import "./pkg-a.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+
+
+ `);
+
+ let { code, stdout, stderr } = await spawn(tscBinPath, [], { cwd: dir });
+ expect(code).toBe(2);
+ expect(stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "blah.mts(4,23): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'.
+ "
+ `);
+ expect(stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+});
+
+test("importConditionDefaultExport: default with use client", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: { importConditionDefaultExport: "default" },
+ },
+ }),
+ "src/index.js": js`
+ export { Something } from "./client";
+ export default "a";
+ `,
+ "src/client.js": js`
+ "use client";
+ export function Something() {}
+ `,
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["dist/**"], stripHashes("client")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-060b3d217893ddbe748563e6e98b804c.cjs.dev.js, dist/client-this-is-not-the-real-hash-060b3d217893ddbe748563e6e98b804c.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function Something() {}
+
+ exports.Something = Something;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-309cc5e233da5126cc473e58b428ae77.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./client-some-hash.cjs.prod.js");
+ } else {
+ module.exports = require("./client-some-hash.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-5330ac3fb575d424e728f3c1abe81dfa.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ function Something() {}
+
+ export { Something };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg-a.cjs.default.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ exports._default = require("./pkg-a.cjs.js").default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg-a.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.dev.js');
+
+ var index = "a";
+
+ Object.defineProperty(exports, 'Something', {
+ enumerable: true,
+ get: function () { return client.Something; }
+ });
+ exports["default"] = index;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg-a.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg-a.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg-a.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg-a.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ Something
+ } from "./pkg-a.cjs.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg-a.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.prod.js');
+
+ var index = "a";
+
+ Object.defineProperty(exports, 'Something', {
+ enumerable: true,
+ get: function () { return client.Something; }
+ });
+ exports["default"] = index;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg-a.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { Something } from './client-some-hash.esm.js';
+
+ var index = "a";
+
+ export { index as default };
+
+ `);
+});
+
+test("correct default export using mjs and dmts proxies with moduleResolution: bundler", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@mjs-proxy/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./something": {
+ module: "./something/dist/pkg-a-something.esm.js",
+ import: "./something/dist/pkg-a-something.cjs.mjs",
+ default: "./something/dist/pkg-a-something.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts", "something.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "packages/pkg-a/something/package.json": JSON.stringify({
+ main: "dist/pkg-a-something.cjs.js",
+ module: "dist/pkg-a-something.esm.js",
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export const thing = "index";
+ export default true;
+ `,
+ "packages/pkg-a/src/something.ts": ts`
+ export const something = "something";
+ export default 100;
+ `,
+ "packages/pkg-a/not-exported.ts": ts`
+ export const notExported = true;
+ export default "foo";
+ `,
+ "blah.mts": ts`
+ function acceptThing(x: T) {}
+
+ import { thing } from "pkg-a";
+ import { something } from "pkg-a/something";
+ import { notExported } from "pkg-a/not-exported"; // should error
+
+ acceptThing<"index">(thing);
+ acceptThing<"something">(something);
+
+ // this is to check that TypeScript is actually checking things
+ acceptThing<"other">(thing); // should error
+ acceptThing<"other">(something); // should error
+
+ import indexDefault from "pkg-a";
+ import somethingDefault from "pkg-a/something";
+ import notExportedDefault from "pkg-a/not-exported"; // should error
+
+ acceptThing(indexDefault);
+ acceptThing(somethingDefault);
+
+ // this is to check that TypeScript is actually checking things
+ acceptThing<"other">(indexDefault); // should error
+ acceptThing<"other">(somethingDefault); // should error
+
+ import * as indexNs from "pkg-a";
+ import * as somethingNs from "pkg-a/something";
+ import * as notExportedNs from "pkg-a/not-exported"; // should error
+
+ acceptThing(indexNs.default);
+ acceptThing(somethingNs.default);
+
+ // this is to check that TypeScript is actually checking things
+ acceptThing<"other">(indexNs.default); // should error
+ acceptThing<"other">(somethingNs.default); // should error
+ `,
+ "runtime-blah.mjs": ts`
+ let counter = 0;
+ function acceptThing(actual, expected) {
+ console.log(++counter, "actual", actual, "expected", expected);
+ }
+
+ import { thing } from "pkg-a";
+ import { something } from "pkg-a/something";
+
+ acceptThing(thing, "index");
+ acceptThing(something, "something");
+
+ import indexDefault from "pkg-a";
+ import somethingDefault from "pkg-a/something";
+
+ acceptThing(indexDefault, true);
+ acceptThing(somethingDefault, 100);
+
+ import * as indexNs from "pkg-a";
+ import * as somethingNs from "pkg-a/something";
+
+ acceptThing(indexNs.default, true);
+ acceptThing(somethingNs.default, 100);
+ `,
+ ...tsSetupFiles,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "bundler",
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const thing = "index";
+ declare const _default: true;
+ export default _default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/something.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const something = "something";
+ declare const _default: 100;
+ export default _default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQubXRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ export { default } from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { default as _default } from "./declarations/src/index.js"
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.default.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ exports._default = require("./pkg-a.cjs.js").default;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.dev.js, packages/pkg-a/dist/pkg-a.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const thing = "index";
+ var index = true;
+
+ exports["default"] = index;
+ exports.thing = thing;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg-a.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg-a.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ thing
+ } from "./pkg-a.cjs.js";
+ export { _default as default } from "./pkg-a.cjs.default.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ const thing = "index";
+ var index = true;
+
+ export { index as default, thing };
+
+ `);
+
+ let tsc = await spawn(
+ path.join(
+ path.dirname(require.resolve("typescript/package.json")),
+ "bin/tsc"
+ ),
+ [],
+ { cwd: dir }
+ );
+ expect(tsc.code).toBe(2);
+ expect(tsc.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "blah.mts(5,29): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
+ blah.mts(11,22): error TS2345: Argument of type '"index"' is not assignable to parameter of type '"other"'.
+ blah.mts(12,22): error TS2345: Argument of type '"something"' is not assignable to parameter of type '"other"'.
+ blah.mts(16,32): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
+ blah.mts(22,22): error TS2345: Argument of type 'true' is not assignable to parameter of type '"other"'.
+ blah.mts(23,22): error TS2345: Argument of type '100' is not assignable to parameter of type '"other"'.
+ blah.mts(27,32): error TS2307: Cannot find module 'pkg-a/not-exported' or its corresponding type declarations.
+ blah.mts(33,22): error TS2345: Argument of type 'true' is not assignable to parameter of type '"other"'.
+ blah.mts(34,22): error TS2345: Argument of type '100' is not assignable to parameter of type '"other"'.
+ "
+ `);
+ expect(tsc.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+
+ let node = await spawn("node", ["runtime-blah.mjs"], {
+ cwd: dir,
+ env: { ...process.env, FORCE_COLOR: undefined, NO_COLOR: "1" },
+ });
+
+ expect(node.code).toBe(0);
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "1 actual index expected index
+ 2 actual something expected something
+ 3 actual true expected true
+ 4 actual 100 expected 100
+ 5 actual true expected true
+ 6 actual 100 expected 100
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+});
+
+test("module with no runtime exports but with init-time side-effects with importConditionDefaultExport", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ module: "./dist/pkg-a.esm.js",
+ import: "./dist/pkg-a.cjs.mjs",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ console.log("hey!");
+ `,
+ ...tsSetupFiles,
+ "runtime-blah.mjs": js`
+ import "pkg-a";
+ `,
+ "runtime-blah.cjs": js`
+ require("pkg-a");
+ `,
+ });
+ await fs.ensureSymlink(
+ path.join(dir, "packages/pkg-a"),
+ path.join(dir, "node_modules/pkg-a")
+ );
+ await build(dir);
+
+ let node = await spawn("node", ["runtime-blah.mjs"], { cwd: dir });
+
+ expect(node.code).toBe(0);
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "hey!
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+
+ node = await spawn("node", ["runtime-blah.cjs"], { cwd: dir });
+
+ expect(node.code).toBe(0);
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "hey!
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+});
+
+test("type: module", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ type: "module",
+ exports: {
+ ".": "./dist/multiple-entrypoints.js",
+ "./multiply": "./dist/multiple-entrypoints-multiply.js",
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: true,
+ entrypoints: ["index.ts", "multiply.ts"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ typeModule: true,
+ },
+ },
+ }),
+ "src/index.ts": js`
+ export let a = "a";
+ `,
+ "src/multiply.ts": js`
+ export let b = "b";
+ `,
+ "runtime-blah.mjs": js`
+ import { b } from "multiple-entrypoints/multiply";
+ console.log(b);
+ `,
+ ...tsSetupFiles,
+ });
+
+ await build(dir);
+
+ expect(await getFiles(dir, ["**/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare let a: string;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/multiply.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare let b: string;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/multiply";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZW50cnlwb2ludHMtbXVsdGlwbHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9tdWx0aXBseS5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ let b = "b";
+
+ export { b };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZW50cnlwb2ludHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ let a = "a";
+
+ export { a };
+
+ `);
+ let node = await spawn("node", ["runtime-blah.mjs"], { cwd: dir });
+
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "b
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+ expect(node.code).toBe(0);
+});
+
+test("type: module with conditions", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ type: "module",
+ exports: {
+ ".": {
+ types: "./dist/multiple-entrypoints.js",
+ node: "./dist/multiple-entrypoints.node.js",
+ default: "./dist/multiple-entrypoints.js",
+ },
+ "./multiply": {
+ types: "./dist/multiple-entrypoints-multiply.js",
+ node: "./dist/multiple-entrypoints-multiply.node.js",
+ default: "./dist/multiple-entrypoints-multiply.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: true,
+ entrypoints: ["index.ts", "multiply.ts"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ typeModule: true,
+ },
+ },
+ imports: {
+ "#something": {
+ node: "./src/node.ts",
+ default: "./src/default.ts",
+ },
+ },
+ }),
+ "src/index.ts": js`
+ export { env } from "#something";
+ `,
+ "src/multiply.ts": js`
+ export let b = "b";
+ `,
+ "src/node.ts": js`
+ export let env = "node";
+ `,
+ "src/default.ts": js`
+ export let env = "default";
+ `,
+ ...tsSetupFiles,
+ });
+
+ await build(dir);
+
+ expect(await getFiles(dir, ["**/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { env } from "./node.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/multiply.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare let b: string;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/node.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare let env: string;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/multiply";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZW50cnlwb2ludHMtbXVsdGlwbHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9tdWx0aXBseS5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.js, dist/multiple-entrypoints-multiply.node.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ let b = "b";
+
+ export { b };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZW50cnlwb2ludHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ let env = "default";
+
+ export { env };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.node.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ let env = "node";
+
+ export { env };
+
+ `);
});
diff --git a/packages/cli/src/build/__tests__/declarations.ts b/packages/cli/src/build/__tests__/declarations.ts
new file mode 100644
index 00000000..97cb74ee
--- /dev/null
+++ b/packages/cli/src/build/__tests__/declarations.ts
@@ -0,0 +1,893 @@
+import build from "..";
+import {
+ testdir,
+ typescriptFixture,
+ getDist,
+ getFiles,
+ ts,
+} from "../../../test-utils";
+
+test("circular dependency typescript", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@scope/test",
+ main: "dist/scope-test.cjs.js",
+ module: "dist/scope-test.esm.js",
+ }),
+ "tsconfig.json": typescriptFixture["tsconfig.json"],
+ node_modules: typescriptFixture.node_modules,
+ "src/index.ts": ts`
+ export { blah } from "./a";
+ export function thing() {}
+ `,
+ "src/a.ts": ts`
+ export { thing } from "./index";
+ export function blah() {}
+ `,
+ });
+ await build(dir);
+ expect(await getDist(dir)).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/a.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { thing } from "./index.js";
+ export declare function blah(): void;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { blah } from "./a.js";
+ export declare function thing(): void;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtdGVzdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.dev.js, dist/scope-test.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function blah() {}
+
+ function thing() {}
+
+ exports.blah = blah;
+ exports.thing = thing;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./scope-test.cjs.prod.js");
+ } else {
+ module.exports = require("./scope-test.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ function blah() {}
+
+ function thing() {}
+
+ export { blah, thing };
+
+ `);
+});
+
+const onlyEmitUsedDeclsBasic = {
+ "package.json": JSON.stringify({
+ name: "@scope/test",
+ main: "dist/scope-test.cjs.js",
+ module: "dist/scope-test.esm.js",
+ }),
+ "tsconfig.json": typescriptFixture["tsconfig.json"],
+ node_modules: typescriptFixture.node_modules,
+ ".babelrc": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+};
+
+test("onlyEmitUsedTypeScriptDeclarations", async () => {
+ let dir = await testdir({
+ ...onlyEmitUsedDeclsBasic,
+ "src/index.ts": ts`
+ import { A } from "./other";
+ export function thing(): A {
+ return { something: true };
+ }
+ `,
+ "src/other.ts": ts`
+ export type A = { something: true };
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**/*.d.ts"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import { A } from "./other.js";
+ export declare function thing(): A;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/other.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type A = {
+ something: true;
+ };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtdGVzdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ `);
+});
+
+test("onlyEmitUsedTypeScriptDeclarations with unused", async () => {
+ let dir = await testdir({
+ ...onlyEmitUsedDeclsBasic,
+ "src/index.ts": ts`
+ import { A } from "./other";
+
+ function a(): A {
+ return { something: true };
+ }
+
+ console.log(a());
+ export function thing() {}
+ `,
+ "src/other.ts": ts`
+ export type A = { something: true };
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**/*.d.ts"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare function thing(): void;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtdGVzdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ `);
+});
+
+test("onlyEmitUsedTypeScriptDeclarations with export from", async () => {
+ let dir = await testdir({
+ ...onlyEmitUsedDeclsBasic,
+ "src/index.ts": ts`
+ export type { A } from "./other";
+ `,
+ "src/other.ts": ts`
+ export type A = { something: true };
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**/*.d.ts"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type { A } from "./other.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/other.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type A = {
+ something: true;
+ };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtdGVzdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ `);
+});
+
+test("onlyEmitUsedTypeScriptDeclarations with inline import type", async () => {
+ let dir = await testdir({
+ ...onlyEmitUsedDeclsBasic,
+ "src/index.ts": ts`
+ export function a(): import("./other").A {
+ return { something: true };
+ }
+ `,
+ "src/other.ts": ts`
+ export type A = { something: true };
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**/*.d.ts"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare function a(): import("./other.js").A;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/other.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type A = {
+ something: true;
+ };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtdGVzdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ `);
+});
+
+test("onlyEmitUsedTypeScriptDeclarations with import x = require('')", async () => {
+ let dir = await testdir({
+ ...onlyEmitUsedDeclsBasic,
+ "src/index.ts": ts`
+ declare namespace something {
+ export import x = require("./other");
+ }
+ export function a(): something.x.A {
+ return { something: true };
+ }
+ `,
+ "src/other.ts": ts`
+ export type A = { something: true };
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**/*.d.ts"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ declare namespace something {
+ export import x = require("./other.js");
+ }
+ export declare function a(): something.x.A;
+ export {};
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/other.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type A = {
+ something: true;
+ };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-test.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtdGVzdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ `);
+});
+
+test("replaces ts extensions in module specifiers within generated declarations with importsConditions", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@explicit-ts-extensions/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ exports: {},
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ exports: {
+ ".": {
+ types: "./dist/pkg-a.cjs.js",
+ module: "./dist/pkg-a.esm.js",
+ default: "./dist/pkg-a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export { fromTsExt } from "./foo.ts";
+ `,
+ "packages/pkg-a/src/foo.ts": ts`
+ export const fromTsExt = 1;
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/foo.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const fromTsExt = 1;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { fromTsExt } from "./foo.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("replaces ts extensions in module specifiers within generated declarations with onlyEmitUsedTypeScriptDeclarations", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@explicit-ts-extensions/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export { fromTsExt } from "./foo.ts";
+ `,
+ "packages/pkg-a/src/foo.ts": ts`
+ export const fromTsExt = 1;
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/foo.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const fromTsExt = 1;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { fromTsExt } from "./foo.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test('doesn\'t replace ts "extensions" in module specifiers that are only parts of the actual filenames and not their extensions', async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@explicit-ts-extensions/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export { fromPseudoTsExt } from "./foo.ts";
+ `,
+ "packages/pkg-a/src/foo.ts.ts": ts`
+ export const fromPseudoTsExt = 1;
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/foo.ts.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const fromPseudoTsExt = 1;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { fromPseudoTsExt } from "./foo.ts.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("replaces declaration extensions with their runtime counterparts", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@explicit-dts-extension/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export type { DtsExt } from "./types.d.ts";
+ `,
+ "packages/pkg-a/src/types.d.ts": ts`
+ export type DtsExt = 1;
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node",
+ strict: true,
+ declaration: true,
+ },
+ }),
+ "babel.config.json": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type { DtsExt } from "./types.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/types.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type DtsExt = 1;
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("replaces package.json#imports in declaration files without importConditions flags", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@imports-replacing/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ imports: {
+ "#hidden": "./src/hidden_stuff.ts",
+ },
+ }),
+ "packages/pkg-a/src/index.ts": ts`
+ export { gem } from "#hidden";
+ `,
+ "packages/pkg-a/src/hidden_stuff.ts": ts`
+ export const gem = "🎁";
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node16",
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/hidden_stuff.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const gem = "\\uD83C\\uDF81";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { gem } from "./hidden_stuff.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("normalises imports in manually authored .d.ts files", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@imports-replacing/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ imports: {
+ "#hidden": "./src/hidden_stuff.ts",
+ },
+ }),
+ "packages/pkg-a/src/index.js": ts`
+ export { gem } from "#hidden";
+ `,
+ "packages/pkg-a/src/index.d.ts": ts`
+ export { gem } from "#hidden";
+ export type A = typeof import(/** comment */ "#hidden").gem;
+ export type B = typeof import(/* non-jsdoc comment */ "./hidden_stuff").gem;
+ export type C = typeof import("./hidden_stuff.ts").gem;
+ `,
+ "packages/pkg-a/src/hidden_stuff.ts": ts`
+ export const gem = "🎁";
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node16",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/hidden_stuff.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const gem = "\\uD83C\\uDF81";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { gem } from "./hidden_stuff.js";
+ export type A = typeof import(/** comment */ "./hidden_stuff.js").gem;
+ export type B = typeof import(/* non-jsdoc comment */ "./hidden_stuff.js").gem;
+ export type C = typeof import("./hidden_stuff.js").gem;
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("normalises imports in manually authored .d.cts files", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@imports-replacing/repo",
+ preconstruct: {
+ packages: ["packages/pkg-a"],
+ },
+ }),
+ "packages/pkg-a/package.json": JSON.stringify({
+ name: "pkg-a",
+ main: "dist/pkg-a.cjs.js",
+ module: "dist/pkg-a.esm.js",
+ imports: {
+ "#hidden": "./src/hidden_stuff.cjs",
+ },
+ }),
+ "packages/pkg-a/src/index.js": ts`
+ `,
+ "packages/pkg-a/src/index.d.ts": ts`
+ export type A = typeof import(/** comment */ "#hidden").gem;
+ export type B = typeof import(/* non-jsdoc comment */ "./hidden_stuff.cjs").gem;
+ export type C = typeof import("./hidden_stuff.cjs").gem;
+ `,
+ "packages/pkg-a/src/hidden_stuff.cjs": ts`
+ export const gem = "🎁";
+ `,
+ "packages/pkg-a/src/hidden_stuff.d.cts": ts`
+ export const gem = "🎁";
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node16",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["packages/*/dist/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/hidden_stuff.d.cts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export const gem = "🎁";
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type A = typeof import(/** comment */ "./hidden_stuff.js").gem;
+ export type B = typeof import(/* non-jsdoc comment */ "./hidden_stuff.js").gem;
+ export type C = typeof import("./hidden_stuff.js").gem;
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ packages/pkg-a/dist/pkg-a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLWEuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ `);
+});
+
+test("self-import", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "a",
+ main: "dist/a.cjs.js",
+ module: "dist/a.esm.js",
+ preconstruct: {
+ entrypoints: ["index.ts", "b.ts"],
+ },
+ }),
+ "b/package.json": JSON.stringify({
+ main: "dist/a-b.cjs.js",
+ module: "dist/a-b.esm.js",
+ }),
+ "src/index.ts": ts`
+ export const gem = "🎁";
+ `,
+ "src/b.ts": ts`
+ export { gem } from "a";
+ export const b = "b";
+ `,
+
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node16",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["{b/dist,dist}/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ b/dist/a-b.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../dist/declarations/src/b";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS1iLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGlzdC9kZWNsYXJhdGlvbnMvc3JjL2IuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/b.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { gem } from "a";
+ export declare const b = "b";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const gem = "\\uD83C\\uDF81";
+
+ `);
+});
+
+test("self-import with exports field", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "a",
+ main: "dist/a.cjs.js",
+ module: "dist/a.esm.js",
+ exports: {
+ "./b": {
+ module: "./b/dist/a-b.esm.js",
+ default: "./b/dist/a-b.cjs.js",
+ },
+ ".": {
+ module: "./dist/a.esm.js",
+ default: "./dist/a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts", "b.ts"],
+ exports: true,
+ },
+ }),
+ "b/package.json": JSON.stringify({
+ main: "dist/a-b.cjs.js",
+ module: "dist/a-b.esm.js",
+ }),
+ "src/index.ts": ts`
+ export const gem = "🎁";
+ `,
+ "src/b.ts": ts`
+ export { gem } from "a";
+ export const b = "b";
+ `,
+
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node16",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["{b/dist,dist}/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ b/dist/a-b.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../dist/declarations/src/b";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS1iLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGlzdC9kZWNsYXJhdGlvbnMvc3JjL2IuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/dist/a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/b.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { gem } from "../dist/a.cjs.js";
+ export declare const b = "b";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const gem = "\\uD83C\\uDF81";
+
+ `);
+});
+
+test("self-import with exports field and importConditionDefaultExport: default", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "a",
+ main: "dist/a.cjs.js",
+ module: "dist/a.esm.js",
+ exports: {
+ "./b": {
+ module: "./b/dist/a-b.esm.js",
+ import: "./b/dist/a-b.cjs.mjs",
+ default: "./b/dist/a-b.cjs.js",
+ },
+ ".": {
+ module: "./dist/a.esm.js",
+ import: "./dist/a.cjs.mjs",
+ default: "./dist/a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts", "b.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "b/package.json": JSON.stringify({
+ main: "dist/a-b.cjs.js",
+ module: "dist/a-b.esm.js",
+ }),
+ "src/index.ts": ts`
+ export const gem = "🎁";
+ `,
+ "src/b.ts": ts`
+ export { gem } from "a";
+ export const b = "b";
+ `,
+
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "node16",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["{b/dist,dist}/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ b/dist/a-b.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../dist/declarations/src/b.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS1iLmNqcy5kLm10cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2Rpc3QvZGVjbGFyYXRpb25zL3NyYy9iLmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ b/dist/a-b.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../dist/declarations/src/b";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS1iLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGlzdC9kZWNsYXJhdGlvbnMvc3JjL2IuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC5tdHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/dist/a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/b.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { gem } from "../dist/a.cjs.js";
+ export declare const b = "b";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const gem = "\\uD83C\\uDF81";
+
+ `);
+});
+
+test("self-import with exports field and importConditionDefaultExport: defaul and moduleResolution: bundler", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "a",
+ main: "dist/a.cjs.js",
+ module: "dist/a.esm.js",
+ exports: {
+ "./b": {
+ module: "./b/dist/a-b.esm.js",
+ import: "./b/dist/a-b.cjs.mjs",
+ default: "./b/dist/a-b.cjs.js",
+ },
+ ".": {
+ module: "./dist/a.esm.js",
+ import: "./dist/a.cjs.mjs",
+ default: "./dist/a.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts", "b.ts"],
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ },
+ }),
+ "b/package.json": JSON.stringify({
+ main: "dist/a-b.cjs.js",
+ module: "dist/a-b.esm.js",
+ }),
+ "src/index.ts": ts`
+ export const gem = "🎁";
+ `,
+ "src/b.ts": ts`
+ export { gem } from "a";
+ export const b = "b";
+ `,
+
+ node_modules: typescriptFixture.node_modules,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "bundler",
+ allowImportingTsExtensions: true,
+ strict: true,
+ declaration: true,
+ },
+ }),
+ });
+ await build(dir);
+
+ expect(await getFiles(dir, ["{b/dist,dist}/**/*.d.*"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ b/dist/a-b.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../dist/declarations/src/b.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS1iLmNqcy5kLm10cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2Rpc3QvZGVjbGFyYXRpb25zL3NyYy9iLmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ b/dist/a-b.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../dist/declarations/src/b";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS1iLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGlzdC9kZWNsYXJhdGlvbnMvc3JjL2IuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC5tdHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/dist/a.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5janMuZC5tdHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/b.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { gem } from "../dist/a.cjs.js";
+ export declare const b = "b";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const gem = "\\uD83C\\uDF81";
+
+ `);
+});
diff --git a/packages/cli/src/build/__tests__/entrypoints.ts b/packages/cli/src/build/__tests__/entrypoints.ts
index 1cbb59a6..11a239b6 100644
--- a/packages/cli/src/build/__tests__/entrypoints.ts
+++ b/packages/cli/src/build/__tests__/entrypoints.ts
@@ -7,6 +7,7 @@ import {
js,
getFiles,
} from "../../../test-utils";
+import spawn from "spawndamnit";
jest.setTimeout(10000);
@@ -27,11 +28,11 @@ test("multiple entrypoints", async () => {
module: "dist/multiple-entrypoints-multiply.esm.js",
}),
"src/index.js": js`
- export let sum = (a, b) => a + b;
- `,
+ export let sum = (a, b) => a + b;
+ `,
"src/multiply.js": js`
- export let multiply = (a, b) => a * b;
- `,
+ export let multiply = (a, b) => a * b;
+ `,
});
await build(dir);
@@ -100,11 +101,11 @@ test("two entrypoints, one module, one not", async () => {
module: "dist/two-entrypoints-one-module-one-not-multiply.esm.js",
}),
"src/index.js": js`
- export let sum = (a, b) => a + b;
- `,
+ export let sum = (a, b) => a + b;
+ `,
"src/multiply.js": js`
- export let multiply = (a, b) => a * b;
- `,
+ export let multiply = (a, b) => a * b;
+ `,
});
await expect(build(dir)).rejects.toMatchInlineSnapshot(
@@ -130,24 +131,24 @@ test("two entrypoints with a common dependency", async () => {
}),
"src/identity.js": js`
- export let identity = (x) => x;
- `,
+ export let identity = (x) => x;
+ `,
"src/multiply.js": js`
- import { identity } from "./identity";
+ import { identity } from "./identity";
- export let multiply = (a, b) => identity(a * b);
+ export let multiply = (a, b) => identity(a * b);
- export { identity };
- `,
+ export { identity };
+ `,
"src/index.js": js`
- import { identity } from "./identity";
+ import { identity } from "./identity";
- export let sum = (a, b) => identity(a + b);
+ export let sum = (a, b) => identity(a + b);
- export { identity };
- `,
+ export { identity };
+ `,
});
await build(tmpPath);
@@ -175,14 +176,14 @@ test("two entrypoints where one requires the other entrypoint", async () => {
}),
"src/index.js": js`
- export let identity = (x) => x;
- `,
+ export let identity = (x) => x;
+ `,
"src/multiply.js": js`
- import { identity } from "./index";
+ import { identity } from "./index";
- export let multiply = (a, b) => identity(a * b);
- `,
+ export let multiply = (a, b) => identity(a * b);
+ `,
});
await build(tmpPath);
@@ -196,3 +197,89 @@ test("two entrypoints where one requires the other entrypoint", async () => {
expect(multiply(2, 3)).toBe(6);
});
+
+test("multiple entrypoints", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "multiple-entrypoints",
+ main: "dist/multiple-entrypoints.cjs.js",
+ module: "dist/multiple-entrypoints.esm.js",
+ exports: {
+ ".": {
+ types: "./dist/multiple-entrypoints.cjs.js",
+ module: "./dist/multiple-entrypoints.esm.js",
+ default: "./dist/multiple-entrypoints.cjs.js",
+ },
+ "./multiply": {
+ types: "./dist/multiple-entrypoints-multiply.cjs.js",
+ module: "./dist/multiple-entrypoints-multiply.esm.js",
+ default: "./dist/multiple-entrypoints-multiply.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: true,
+ entrypoints: ["index.js", "multiply.js"],
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ distInRoot: true,
+ },
+ },
+ }),
+ "multiply/package.json": JSON.stringify({
+ main: "../dist/multiple-entrypoints-multiply.cjs.js",
+ module: "../dist/multiple-entrypoints-multiply.esm.js",
+ }),
+ "src/index.js": js`
+ export let sum = (a, b) => a + b;
+ `,
+ "src/multiply.js": js`
+ export let multiply = (a, b) => a * b;
+ `,
+ "runtime-blah.js": js`
+ const { multiply } = require("multiple-entrypoints/multiply");
+ console.log(multiply(2, 2) + "");
+ `,
+ });
+
+ await build(dir);
+
+ expect(await getFiles(dir, ["**/dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ let multiply = (a, b) => a * b;
+
+ exports.multiply = multiply;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints-multiply.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ let multiply = (a, b) => a * b;
+
+ export { multiply };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ let sum = (a, b) => a + b;
+
+ exports.sum = sum;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/multiple-entrypoints.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ let sum = (a, b) => a + b;
+
+ export { sum };
+
+ `);
+ let node = await spawn("node", ["runtime-blah.js"], { cwd: dir });
+
+ expect(node.stdout.toString("utf8")).toMatchInlineSnapshot(`
+ "4
+ "
+ `);
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+ expect(node.code).toBe(0);
+});
diff --git a/packages/cli/src/build/__tests__/imports-conditions.ts b/packages/cli/src/build/__tests__/imports-conditions.ts
new file mode 100644
index 00000000..7a0eb7fc
--- /dev/null
+++ b/packages/cli/src/build/__tests__/imports-conditions.ts
@@ -0,0 +1,475 @@
+import spawn from "spawndamnit";
+import build from "..";
+import {
+ typescriptFixture,
+ testdir,
+ getFiles,
+ ts,
+ js,
+} from "../../../test-utils";
+
+// TODO: make it faster so this isn't required
+jest.setTimeout(20000);
+
+test("imports conditions", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@scope/pkg",
+ main: "dist/scope-pkg.cjs.js",
+ module: "dist/scope-pkg.esm.js",
+ exports: {
+ ".": {
+ types: {
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ development: {
+ worker: {
+ module: "./dist/scope-pkg.development.esm.js",
+ import: "./dist/scope-pkg.development.cjs.mjs",
+ default: "./dist/scope-pkg.development.cjs.js",
+ },
+ browser: {
+ module: "./dist/scope-pkg.browser.development.esm.js",
+ import: "./dist/scope-pkg.browser.development.cjs.mjs",
+ default: "./dist/scope-pkg.browser.development.cjs.js",
+ },
+ module: "./dist/scope-pkg.development.esm.js",
+ import: "./dist/scope-pkg.development.cjs.mjs",
+ default: "./dist/scope-pkg.development.cjs.js",
+ },
+ worker: {
+ module: "./dist/scope-pkg.esm.js",
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ browser: {
+ module: "./dist/scope-pkg.browser.esm.js",
+ import: "./dist/scope-pkg.browser.cjs.mjs",
+ default: "./dist/scope-pkg.browser.cjs.js",
+ },
+ module: "./dist/scope-pkg.esm.js",
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ imports: {
+ "#is-development": {
+ development: "./src/true.ts",
+ default: "./src/false.ts",
+ },
+ "#is-browser": {
+ worker: "./src/false.ts",
+ browser: "./src/true.ts",
+ default: "./src/false.ts",
+ },
+ "#something": {
+ "condition-should-never-appear-anywhere": "./src/something.ts",
+ default: "./src/something.ts",
+ },
+ },
+ }),
+ "src/true.ts": ts`
+ export default true;
+ `,
+ "src/false.ts": ts`
+ export default false;
+ `,
+ "src/something.ts": ts`
+ export function something() {
+ console.log("a");
+ }
+ `,
+ "src/index.ts": ts`
+ import isDevelopment from "#is-development";
+ import isBrowser from "#is-browser";
+ export { something } from "#something";
+ if (isDevelopment) {
+ console.log("development");
+ }
+ if (isBrowser) {
+ console.log("browser");
+ }
+ `,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "bundler",
+ strict: true,
+ declaration: true,
+ },
+ }),
+ node_modules: typescriptFixture.node_modules,
+ ".babelrc": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { something } from "./something.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/something.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare function something(): void;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function something() {
+ console.log("a");
+ }
+
+ {
+ console.log("browser");
+ }
+
+ exports.something = something;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ something
+ } from "./scope-pkg.browser.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.development.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function something() {
+ console.log("a");
+ }
+
+ {
+ console.log("development");
+ }
+ {
+ console.log("browser");
+ }
+
+ exports.something = something;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.development.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ something
+ } from "./scope-pkg.browser.development.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.development.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ function something() {
+ console.log("a");
+ }
+
+ {
+ console.log("development");
+ }
+ {
+ console.log("browser");
+ }
+
+ export { something };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.browser.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ function something() {
+ console.log("a");
+ }
+
+ {
+ console.log("browser");
+ }
+
+ export { something };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtcGtnLmNqcy5kLm10cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtcGtnLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function something() {
+ console.log("a");
+ }
+
+ exports.something = something;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ something
+ } from "./scope-pkg.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.development.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function something() {
+ console.log("a");
+ }
+
+ {
+ console.log("development");
+ }
+
+ exports.something = something;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.development.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export {
+ something
+ } from "./scope-pkg.development.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.development.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ function something() {
+ console.log("a");
+ }
+
+ {
+ console.log("development");
+ }
+
+ export { something };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ function something() {
+ console.log("a");
+ }
+
+ export { something };
+
+ `);
+});
+
+describe("imports conditions runtime check with importConditionDefaultExport: default", () => {
+ // we should be able to just type this as string and assign to it from within `beforeAll`
+ // but Jest doesn't wait on `beforeAll`'s completion before executing concurrent tests
+ // see https://github.com/jestjs/jest/issues/7997
+ let dirPromise: Promise;
+
+ beforeAll(async () => {
+ let resolve: (dir: string) => void;
+ dirPromise = new Promise((_resolve) => (resolve = _resolve));
+
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@scope/pkg",
+ main: "dist/scope-pkg.cjs.js",
+ module: "dist/scope-pkg.esm.js",
+ exports: {
+ ".": {
+ types: {
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ browser: {
+ development: {
+ module: "./dist/scope-pkg.browser.development.esm.js",
+ import: "./dist/scope-pkg.browser.development.cjs.mjs",
+ default: "./dist/scope-pkg.browser.development.cjs.js",
+ },
+ module: "./dist/scope-pkg.browser.esm.js",
+ import: "./dist/scope-pkg.browser.cjs.mjs",
+ default: "./dist/scope-pkg.browser.cjs.js",
+ },
+ development: {
+ module: "./dist/scope-pkg.development.esm.js",
+ import: "./dist/scope-pkg.development.cjs.mjs",
+ default: "./dist/scope-pkg.development.cjs.js",
+ },
+ module: "./dist/scope-pkg.esm.js",
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ imports: {
+ "#is-development": {
+ development: "./src/true.js",
+ default: "./src/false.js",
+ },
+ "#is-browser": {
+ browser: "./src/true.js",
+ default: "./src/false.js",
+ },
+ },
+ }),
+ "src/true.js": js`
+ export default true;
+ `,
+ "src/false.js": js`
+ export default false;
+ `,
+ "src/index.js": js`
+ import isDevelopment from "#is-development";
+ import isBrowser from "#is-browser";
+ if (isDevelopment) {
+ console.log("development");
+ } else {
+ console.log("production");
+ }
+ if (isBrowser) {
+ console.log("browser");
+ } else {
+ console.log("node");
+ }
+ `,
+ node_modules: typescriptFixture.node_modules,
+ "runtime-check.mjs": js`
+ import "@scope/pkg";
+ `,
+ "runtime-check.cjs": js`
+ require("@scope/pkg");
+ `,
+ });
+ await build(dir);
+
+ resolve!(dir);
+ });
+
+ describe.each(["cjs", "mjs"] as const)("with %s", (moduleType) => {
+ test.each([
+ {
+ conditions: [],
+ expected: ["production", "node"],
+ },
+ {
+ conditions: ["development"],
+ expected: ["development", "node"],
+ },
+ {
+ conditions: ["browser"],
+ expected: ["production", "browser"],
+ },
+ {
+ conditions: ["development", "browser"],
+ expected: ["development", "browser"],
+ },
+ ])("and conditions: $conditions", async ({ conditions, expected }) => {
+ let node = await spawn(
+ "node",
+ [
+ ...conditions.flatMap((condition) => ["-C", condition]),
+ `./runtime-check.${moduleType}`,
+ ],
+ {
+ cwd: await dirPromise,
+ }
+ );
+
+ expect(node.code).toBe(0);
+ expect(node.stdout.toString("utf8")).toBe(expected.join("\n") + "\n");
+ expect(node.stderr.toString("utf8")).toMatchInlineSnapshot(`""`);
+ });
+ });
+});
+
+test("import with #something inside import type type arguments", async () => {
+ let dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "@scope/pkg",
+ main: "dist/scope-pkg.cjs.js",
+ module: "dist/scope-pkg.esm.js",
+ exports: {
+ ".": {
+ types: {
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ module: "./dist/scope-pkg.esm.js",
+ import: "./dist/scope-pkg.cjs.mjs",
+ default: "./dist/scope-pkg.cjs.js",
+ },
+ "./package.json": "./package.json",
+ },
+ preconstruct: {
+ exports: {
+ importConditionDefaultExport: "default",
+ },
+ ___experimentalFlags_WILL_CHANGE_IN_PATCH: {
+ importsConditions: true,
+ },
+ },
+ imports: {
+ "#*": "./src/*.ts",
+ },
+ }),
+ "src/something.ts": ts`
+ export type Generic = { a: T; b?: Generic };
+ `,
+ "src/other.ts": ts`
+ export type A = { a?: A };
+ `,
+ "src/index.ts": ts`
+ export type X = import("#something").Generic;
+ `,
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ module: "ESNext",
+ moduleResolution: "bundler",
+ strict: true,
+ declaration: true,
+ },
+ }),
+ node_modules: typescriptFixture.node_modules,
+ ".babelrc": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type X = import("./something.js").Generic;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/other.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type A = {
+ a?: A;
+ };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/something.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export type Generic = {
+ a: T;
+ b?: Generic;
+ };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.d.mts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index.js";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtcGtnLmNqcy5kLm10cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtcGtnLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.cjs.mjs ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import "./scope-pkg.cjs.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/scope-pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+
+
+ `);
+});
diff --git a/packages/cli/src/build/__tests__/other.ts b/packages/cli/src/build/__tests__/other.ts
index 5f463995..72c00541 100644
--- a/packages/cli/src/build/__tests__/other.ts
+++ b/packages/cli/src/build/__tests__/other.ts
@@ -10,6 +10,7 @@ import {
repoNodeModules,
typescriptFixture,
getFiles,
+ stripHashes,
} from "../../../test-utils";
import { doPromptInput } from "../../prompt";
@@ -33,18 +34,18 @@ test("browser", async () => {
},
}),
"src/index.js": js`
- let thing = "wow";
+ let thing = "wow";
- if (typeof window !== "undefined") {
- thing = "something";
- }
+ if (typeof window !== "undefined") {
+ thing = "something";
+ }
- if (typeof document !== undefined) {
- thing += "other";
- }
+ if (typeof document !== undefined) {
+ thing += "other";
+ }
- export default thing;
- `,
+ export default thing;
+ `,
});
await build(dir);
@@ -55,33 +56,27 @@ test("browser", async () => {
Object.defineProperty(exports, '__esModule', { value: true });
let thing = "wow";
-
{
thing = "something";
}
-
{
thing += "other";
}
-
var thing$1 = thing;
- exports.default = thing$1;
+ exports["default"] = thing$1;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/browser.browser.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
let thing = "wow";
-
{
thing = "something";
}
-
{
thing += "other";
}
-
var thing$1 = thing;
- export default thing$1;
+ export { thing$1 as default };
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/browser.cjs.dev.js, dist/browser.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -89,18 +84,15 @@ test("browser", async () => {
Object.defineProperty(exports, '__esModule', { value: true });
let thing = "wow";
-
if (typeof window !== "undefined") {
thing = "something";
}
-
if (typeof document !== undefined) {
thing += "other";
}
-
var thing$1 = thing;
- exports.default = thing$1;
+ exports["default"] = thing$1;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/browser.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -113,18 +105,15 @@ test("browser", async () => {
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/browser.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
let thing = "wow";
-
if (typeof window !== "undefined") {
thing = "something";
}
-
if (typeof document !== undefined) {
thing += "other";
}
-
var thing$1 = thing;
- export default thing$1;
+ export { thing$1 as default };
`);
});
@@ -142,18 +131,18 @@ test("browser no module", async () => {
}),
"src/index.js": js`
- let thing = "wow";
+ let thing = "wow";
- if (typeof window !== "undefined") {
- thing = "something";
- }
+ if (typeof window !== "undefined") {
+ thing = "something";
+ }
- if (typeof document !== undefined) {
- thing += "other";
- }
+ if (typeof document !== undefined) {
+ thing += "other";
+ }
- export default thing;
- `,
+ export default thing;
+ `,
});
await build(tmpPath);
@@ -167,11 +156,11 @@ test("typescript", async () => {
expect(await getDist(dir)).toMatchInlineSnapshot(`
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/another-thing.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- export declare type SomeType = string;
+ export type SomeType = string;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- import { SomeType } from "./another-thing";
- export * from "./one-more-thing";
+ import { SomeType } from "./another-thing.js";
+ export * from "./one-more-thing.js";
import * as path from "path";
export { path };
declare let thing: SomeType;
@@ -184,6 +173,7 @@ test("typescript", async () => {
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
export * from "./declarations/src/index";
export { default } from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.dev.js, dist/typescript.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -201,14 +191,12 @@ test("typescript", async () => {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
- get: function () {
- return e[k];
- }
+ get: function () { return e[k]; }
});
}
});
}
- n['default'] = e;
+ n["default"] = e;
return Object.freeze(n);
}
@@ -219,7 +207,7 @@ test("typescript", async () => {
let thing = "something";
exports.path = path__namespace;
- exports.default = thing;
+ exports["default"] = thing;
exports.obj = obj;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
@@ -239,8 +227,7 @@ test("typescript", async () => {
let thing = "something";
- export default thing;
- export { obj };
+ export { thing as default, obj };
`);
});
@@ -339,36 +326,36 @@ test("typescript with forced dts emit", async () => {
`,
"src/create-store.ts": ts`
- // @ts-ignore (installed during test)
- import { configureStore, Action } from "@reduxjs/toolkit";
- import { ThunkAction } from "redux-thunk";
- import { rootReducer, RootState } from "./root-reducer";
+ // @ts-ignore (installed during test)
+ import { configureStore, Action } from "@reduxjs/toolkit";
+ import { ThunkAction } from "redux-thunk";
+ import { rootReducer, RootState } from "./root-reducer";
- export type AppThunk = ThunkAction>;
+ export type AppThunk = ThunkAction>;
- export function createStore() {
- return configureStore({
- reducer: rootReducer,
- });
- }
- `,
+ export function createStore() {
+ return configureStore({
+ reducer: rootReducer,
+ });
+ }
+ `,
"src/index.ts": ts`
- export { createStore } from "./create-store";
- export type { AppThunk } from "./create-store";
- export type { RootState } from "./root-reducer";
- `,
+ export { createStore } from "./create-store";
+ export type { AppThunk } from "./create-store";
+ export type { RootState } from "./root-reducer";
+ `,
"src/root-reducer.ts": ts`
- // @ts-ignore (installed during test)
- import { combineReducers } from "@reduxjs/toolkit";
+ // @ts-ignore (installed during test)
+ import { combineReducers } from "@reduxjs/toolkit";
- export const rootReducer = combineReducers({
- /* blah blah blah */
- });
+ export const rootReducer = combineReducers({
+ /* blah blah blah */
+ });
- export type RootState = ReturnType;
- `,
+ export type RootState = ReturnType;
+ `,
});
await build(tmpPath);
@@ -391,10 +378,10 @@ test("package resolvable but not in deps", async () => {
}),
"src/index.js": js`
- import React from "react";
+ import React from "react";
- export default React.createContext("something");
- `,
+ export default React.createContext("something");
+ `,
});
await install(tmpPath);
try {
@@ -428,17 +415,17 @@ test("package with exports resolvable", async () => {
},
}),
"node_modules/@atomico/hooks/something/use-slot.js": js`
- export function useSlot(ref) {
- console.log(ref);
- }
- `,
+ export function useSlot(ref) {
+ console.log(ref);
+ }
+ `,
"src/index.js": js`
- import { useSlot } from "@atomico/hooks/use-slot";
+ import { useSlot } from "@atomico/hooks/use-slot";
- export default function useChildren(ref) {
- return useSlot(ref);
- }
- `,
+ export default function useChildren(ref) {
+ return useSlot(ref);
+ }
+ `,
});
await build(tmpPath);
@@ -466,8 +453,8 @@ test("entrypoint outside package directory", async () => {
}),
"some-file.js": js`
- export let something = true;
- `,
+ export let something = true;
+ `,
"pkg-a/package.json": JSON.stringify({
name: "@entrypoint-outside-pkg-dir/pkg-a",
@@ -500,8 +487,8 @@ test("module imported outside package directory", async () => {
}),
"some-file.js": js`
- export let something = true;
- `,
+ export let something = true;
+ `,
"pkg-a/package.json": JSON.stringify({
name: "@imports-outside-pkg-dir/pkg-a",
@@ -509,8 +496,8 @@ test("module imported outside package directory", async () => {
}),
"pkg-a/src/index.js": js`
- export { something } from "../../some-file";
- `,
+ export { something } from "../../some-file";
+ `,
});
try {
await build(tmpPath);
@@ -539,8 +526,8 @@ test("using external @babel/runtime helpers", async () => {
plugins: [require.resolve("@babel/plugin-transform-runtime")],
}),
"src/index.js": js`
- export default class Foo {}
- `,
+ export default class Foo {}
+ `,
});
await install(tmpPath);
@@ -566,8 +553,8 @@ test("should lazily get globals", async () => {
}),
"src/index.js": js`
- export default "something";
- `,
+ export default "something";
+ `,
});
(doPromptInput as jest.MockedFunction<
@@ -616,14 +603,14 @@ test("batches build errors", async () => {
}),
"packages/package-one/src/index.js": js`
- import "something";
- import "something-2";
- `,
+ import "something";
+ import "something-2";
+ `,
"packages/package-two/src/index.js": js`
- import "something";
- import "something-2";
- `,
+ import "something";
+ import "something-2";
+ `,
});
let error;
try {
@@ -644,10 +631,10 @@ test("builds package using eval", async () => {
let dir = await testdir({
"package.json": basicPkgJson(),
"src/index.js": js`
- export default function compute(arg) {
- return eval(arg);
- }
- `,
+ export default function compute(arg) {
+ return eval(arg);
+ }
+ `,
});
await build(dir);
@@ -662,7 +649,7 @@ test("builds package using eval", async () => {
return eval(arg);
}
- exports.default = compute;
+ exports["default"] = compute;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -685,31 +672,31 @@ test("builds umd with a dependency containing top-level this in ESM", async () =
},
}),
"src/index.js": js`
- export { default } from "with-top-level-this-in-esm";
- `,
+ export { default } from "with-top-level-this-in-esm";
+ `,
"node_modules/with-top-level-this-in-esm/package.json": JSON.stringify({
name: "with-top-level-this-in-esm",
}),
"node_modules/with-top-level-this-in-esm/index.js": js`
- // output transpiled by TS with inlined tslib helper
- var __assign =
- (this && this.__assign) ||
- function () {
- __assign =
- Object.assign ||
- function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s)
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
- var foo = { bar: 42 };
- export default __assign({}, foo);
- `,
+ // output transpiled by TS with inlined tslib helper
+ var __assign =
+ (this && this.__assign) ||
+ function () {
+ __assign =
+ Object.assign ||
+ function (t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+ };
+ var foo = { bar: 42 };
+ export default __assign({}, foo);
+ `,
});
await build(dir);
@@ -730,9 +717,7 @@ test("builds umd with a dependency containing top-level this in ESM", async () =
Object.defineProperty(exports, 'default', {
enumerable: true,
- get: function () {
- return withTopLevelThisInEsm__default['default'];
- }
+ get: function () { return withTopLevelThisInEsm__default["default"]; }
});
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
@@ -745,11 +730,11 @@ test("builds umd with a dependency containing top-level this in ESM", async () =
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.umd.min.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).pkg=t()}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var t,n=1,o=arguments.length;n {
let dir = await testdir({
"package.json": basicPkgJson(),
"src/index.js": js`
- export default this;
- `,
+ export default this;
+ `,
});
try {
@@ -784,11 +769,11 @@ test(".d.ts", async () => {
module: "dist/pkg.esm.js",
}),
"src/index.js": js`
- export const x = "hello";
- `,
+ export const x = "hello";
+ `,
"src/index.d.ts": ts`
- export const x: string;
- `,
+ export const x: string;
+ `,
node_modules: { kind: "symlink", path: repoNodeModules },
"tsconfig.json": typescriptFixture["tsconfig.json"],
});
@@ -798,6 +783,7 @@ test(".d.ts", async () => {
export const x: string;
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtnLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.dev.js, dist/pkg.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
'use strict';
@@ -824,3 +810,828 @@ test(".d.ts", async () => {
`);
});
+
+test("simple use client", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ }),
+ "src/index.js": js`
+ export { A } from "./client";
+ `,
+ "src/client.js": js`
+ "use client";
+ export const A = "something";
+ console.log("client");
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"], stripHashes("client")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-309cc5e233da5126cc473e58b428ae77.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./client-some-hash.cjs.prod.js");
+ } else {
+ module.exports = require("./client-some-hash.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-a11d1f492d9543facacf36a90317cec3.cjs.dev.js, dist/client-this-is-not-the-real-hash-a11d1f492d9543facacf36a90317cec3.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const A = "something";
+ console.log("client");
+
+ exports.A = A;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-fd8b1fd76b9a9f92e7a34756ea9de1bb.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ const A = "something";
+ console.log("client");
+
+ export { A };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.dev.js');
+
+
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return client.A; }
+ });
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.prod.js');
+
+
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return client.A; }
+ });
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { A } from './client-some-hash.esm.js';
+
+ `);
+});
+test("use client", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ }),
+ "src/index.js": js`
+ export { A } from "./client";
+ export { C } from "./c";
+ export { B } from "./b";
+ `,
+ "src/client.js": js`
+ "use client";
+ export const A = "something";
+ `,
+ "src/b.js": js`
+ export const B = "b";
+ `,
+ "src/c.js": js`
+ import { D } from "./d";
+ export function C() {
+ return D;
+ }
+ `,
+ "src/d.js": js`
+ "use client";
+ export const D = "d";
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"], stripHashes("client", "d")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-309cc5e233da5126cc473e58b428ae77.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./client-some-hash.cjs.prod.js");
+ } else {
+ module.exports = require("./client-some-hash.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-58cd7e7ea387bdad7ade6e69ad459a33.cjs.dev.js, dist/client-this-is-not-the-real-hash-58cd7e7ea387bdad7ade6e69ad459a33.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const A = "something";
+
+ exports.A = A;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-b139dd137c1582a38e35a32f7605ab74.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ const A = "something";
+
+ export { A };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/d-this-is-not-the-real-hash-24ae31ff9082854e1c87c472a0860694.cjs.dev.js, dist/d-this-is-not-the-real-hash-24ae31ff9082854e1c87c472a0860694.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const D = "d";
+
+ exports.D = D;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/d-this-is-not-the-real-hash-edd08facffb57479ea67330357004b7f.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ const D = "d";
+
+ export { D };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/d-this-is-not-the-real-hash-fe4bc2a46f636c80b94c4fc4d054f67e.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./d-some-hash.cjs.prod.js");
+ } else {
+ module.exports = require("./d-some-hash.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.dev.js');
+ var d = require('./d-some-hash.cjs.dev.js');
+
+ function C() {
+ return d.D;
+ }
+
+ const B = "b";
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return client.A; }
+ });
+ exports.B = B;
+ exports.C = C;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.prod.js');
+ var d = require('./d-some-hash.cjs.prod.js');
+
+ function C() {
+ return d.D;
+ }
+
+ const B = "b";
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return client.A; }
+ });
+ exports.B = B;
+ exports.C = C;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { A } from './client-some-hash.esm.js';
+ import { D } from './d-some-hash.esm.js';
+
+ function C() {
+ return D;
+ }
+
+ const B = "b";
+
+ export { B, C };
+
+ `);
+});
+
+test("use client as entrypoint", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ }),
+ "src/index.js": js`
+ "use client";
+ export const a = true;
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.dev.js, dist/pkg.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const a = true;
+
+ exports.a = a;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ const a = true;
+
+ export { a };
+
+ `);
+});
+
+test("use client with typescript", async () => {
+ const dir = await testdir({
+ ...typescriptFixture,
+ "src/index.ts": ts`
+ export { A } from "./a";
+ export { B } from "./b";
+ `,
+ "src/a.ts": ts`
+ "use client";
+ export const A = 1;
+ `,
+ "src/b.ts": ts`
+ export const B = 2;
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"], stripHashes("a")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a-this-is-not-the-real-hash-31df1da61df583d4d0394e050f45c88f.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./a-some-hash.cjs.prod.js");
+ } else {
+ module.exports = require("./a-some-hash.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a-this-is-not-the-real-hash-d912e49410d7ef28505c151217271ac8.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ const A = 1;
+
+ export { A };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/a-this-is-not-the-real-hash-f67b4ee51aa01653fbab25fa1bdfb30e.cjs.dev.js, dist/a-this-is-not-the-real-hash-f67b4ee51aa01653fbab25fa1bdfb30e.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ const A = 1;
+
+ exports.A = A;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/a.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const A = 1;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/b.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const B = 2;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { A } from "./a.js";
+ export { B } from "./b.js";
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var a = require('./a-some-hash.cjs.dev.js');
+
+ const B = 2;
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return a.A; }
+ });
+ exports.B = B;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./typescript.cjs.prod.js");
+ } else {
+ module.exports = require("./typescript.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var a = require('./a-some-hash.cjs.prod.js');
+
+ const B = 2;
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return a.A; }
+ });
+ exports.B = B;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { A } from './a-some-hash.esm.js';
+
+ const B = 2;
+
+ export { B };
+
+ `);
+});
+test("use client as entrypoint with typescript", async () => {
+ const dir = await testdir({
+ node_modules: { kind: "symlink", path: repoNodeModules },
+ "package.json": JSON.stringify({
+ name: "typescript",
+ main: "dist/typescript.cjs.js",
+ module: "dist/typescript.esm.js",
+ dependencies: {
+ typescript: "^3.4.5",
+ },
+ preconstruct: {
+ entrypoints: ["index.ts", "another.ts"],
+ },
+ }),
+ "another/package.json": JSON.stringify({
+ main: "dist/typescript-another.cjs.js",
+ module: "dist/typescript-another.esm.js",
+ }),
+ "tsconfig.json": JSON.stringify({
+ compilerOptions: {
+ target: "esnext",
+ module: "commonjs",
+ strict: true,
+ esModuleInterop: true,
+ noEmit: true,
+ },
+ }),
+ ".babelrc": JSON.stringify({
+ presets: [require.resolve("@babel/preset-typescript")],
+ }),
+ "src/index.ts": ts`
+ "use client";
+ export const A = 1;
+ `,
+ "src/another.ts": ts`
+ import { A } from "./index";
+ export function something() {
+ console.log(A);
+ }
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["{another/dist,dist}/**/*.{esm.js,d.ts}"]))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ another/dist/typescript-another.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "../../dist/declarations/src/another";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1hbm90aGVyLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGlzdC9kZWNsYXJhdGlvbnMvc3JjL2Fub3RoZXIuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ another/dist/typescript-another.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import { A } from '../../dist/typescript.esm.js';
+
+ function something() {
+ console.log(A);
+ }
+
+ export { something };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/another.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare function something(): void;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export declare const A = 1;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/typescript.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ const A = 1;
+
+ export { A };
+
+ `);
+});
+
+test("no hoisting client only imports", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ dependencies: {
+ "client-only": "latest",
+ },
+ }),
+ "src/index.js": js`
+ export * as x from "./client";
+ `,
+ "src/client.js": js`
+ "use client";
+ import "client-only";
+ export const a = 1;
+ export const b = 1;
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**.esm.js"], stripHashes("client")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-2d9a93e2d378420c96993764a8d2b439.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ import 'client-only';
+
+ const a = 1;
+ const b = 1;
+
+ export { a, b };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import * as client from './client-some-hash.esm.js';
+ export { client as x };
+
+ `);
+});
+test("cycle with use client", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ dependencies: {
+ "client-only": "latest",
+ },
+ }),
+ "src/index.js": js`
+ import { client } from "./ui";
+ import { another } from "./other";
+
+ export async function thing() {
+ return a;
+ }
+
+ export function other() {
+ console.log(another, client);
+ }
+ `,
+ "src/other.js": js`
+ import "./index";
+
+ export function another() {
+ return c;
+ }
+ `,
+ "src/ui.js": js`
+ "use client";
+ import "client-only";
+
+ export function client() {
+ console.log("a");
+ }
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**.esm.js"], stripHashes("ui")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ import { client } from './ui-some-hash.esm.js';
+
+ function another() {
+ return c;
+ }
+
+ async function thing() {
+ return a;
+ }
+ function other() {
+ console.log(another, client);
+ }
+
+ export { other, thing };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/ui-this-is-not-the-real-hash-bed1afce5b6c65dfe85deec7c0ef27d1.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ import 'client-only';
+
+ function client() {
+ console.log("a");
+ }
+
+ export { client };
+
+ `);
+});
+test("import use client self", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ dependencies: {
+ "client-only": "latest",
+ },
+ }),
+ "src/index.js": js`
+ export { client } from "./ui";
+ `,
+ "src/ui.js": js`
+ "use client";
+ import "client-only";
+ import * as self from "./ui";
+
+ export function client() {
+ console.log("a", self);
+ }
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**.esm.js"], stripHashes("ui")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { client } from './ui-some-hash.esm.js';
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/ui-this-is-not-the-real-hash-caf79d0376c465220743255e5be1da2d.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ import 'client-only';
+ import * as self from './ui-some-hash.esm.js';
+
+ function client() {
+ console.log("a", self);
+ }
+
+ export { client };
+
+ `);
+});
+test("import use client self as entrypoint", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ dependencies: {
+ "client-only": "latest",
+ },
+ }),
+ "src/index.js": js`
+ "use client";
+ import "client-only";
+ import * as self from "./index";
+
+ export function client() {
+ console.log("a", self);
+ }
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**.esm.js"])).toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ import 'client-only';
+ import * as self from './pkg.esm.js';
+
+ function client() {
+ console.log("a", self);
+ }
+
+ export { client };
+
+ `);
+});
+
+test("simple use client with comment above directive", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ }),
+ "src/index.js": js`
+ export { A } from "./client";
+ `,
+ "src/client.js": js`
+ /** blah */
+ "use client";
+ export const A = "something";
+ console.log("client");
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"], stripHashes("client")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-309cc5e233da5126cc473e58b428ae77.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./client-some-hash.cjs.prod.js");
+ } else {
+ module.exports = require("./client-some-hash.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-d42256f03593be08d8620d4b6456d377.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ /** blah */
+
+ const A = "something";
+ console.log("client");
+
+ export { A };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/client-this-is-not-the-real-hash-ef1aedc2ed504d143f108943a7d13c16.cjs.dev.js, dist/client-this-is-not-the-real-hash-ef1aedc2ed504d143f108943a7d13c16.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use client';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ /** blah */
+
+ const A = "something";
+ console.log("client");
+
+ exports.A = A;
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.dev.js');
+
+
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return client.A; }
+ });
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var client = require('./client-some-hash.cjs.prod.js');
+
+
+
+ Object.defineProperty(exports, 'A', {
+ enumerable: true,
+ get: function () { return client.A; }
+ });
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { A } from './client-some-hash.esm.js';
+
+ `);
+});
+
+test("use server", async () => {
+ const dir = await testdir({
+ "package.json": JSON.stringify({
+ name: "pkg",
+ main: "dist/pkg.cjs.js",
+ module: "dist/pkg.esm.js",
+ }),
+ "src/index.js": js`
+ export { doSomething } from "./server";
+ `,
+ "src/server.js": js`
+ "use server";
+ export function doSomething() {}
+ `,
+ });
+ await build(dir);
+ expect(await getFiles(dir, ["dist/**"], stripHashes("server")))
+ .toMatchInlineSnapshot(`
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.dev.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var server = require('./server-some-hash.cjs.dev.js');
+
+
+
+ Object.defineProperty(exports, 'doSomething', {
+ enumerable: true,
+ get: function () { return server.doSomething; }
+ });
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./pkg.cjs.prod.js");
+ } else {
+ module.exports = require("./pkg.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ var server = require('./server-some-hash.cjs.prod.js');
+
+
+
+ Object.defineProperty(exports, 'doSomething', {
+ enumerable: true,
+ get: function () { return server.doSomething; }
+ });
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/pkg.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export { doSomething } from './server-some-hash.esm.js';
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/server-this-is-not-the-real-hash-288a9f5076a34272a0270a4055aa266d.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use server';
+ function doSomething() {}
+
+ export { doSomething };
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/server-this-is-not-the-real-hash-4c6b8ec0a8b072aff1b26a3ac24de144.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
+
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./server-some-hash.cjs.prod.js");
+ } else {
+ module.exports = require("./server-some-hash.cjs.dev.js");
+ }
+
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/server-this-is-not-the-real-hash-f9ea3f80de7afbb1e4ac2175565ef521.cjs.dev.js, dist/server-this-is-not-the-real-hash-f9ea3f80de7afbb1e4ac2175565ef521.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use server';
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ function doSomething() {}
+
+ exports.doSomething = doSomething;
+
+ `);
+});
diff --git a/packages/cli/src/build/__tests__/src-root.ts b/packages/cli/src/build/__tests__/src-root.ts
index bc1a8108..e5a8308d 100644
--- a/packages/cli/src/build/__tests__/src-root.ts
+++ b/packages/cli/src/build/__tests__/src-root.ts
@@ -41,44 +41,45 @@ test("monorepo with root src dir and typescript package", async () => {
`,
"src/packages/my-package/src/index.ts": ts`
- export default {};
- `,
+ export default {};
+ `,
});
await build(tmpPath);
expect(await getDist(tmpPath + "/src/packages/my-package"))
.toMatchInlineSnapshot(`
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- declare const _default: {};
- export default _default;
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/declarations/src/index.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ declare const _default: {};
+ export default _default;
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- export * from "./declarations/src/index";
- export { default } from "./declarations/src/index";
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.cjs.d.ts ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ export * from "./declarations/src/index";
+ export { default } from "./declarations/src/index";
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktcGFja2FnZS5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.cjs.dev.js, dist/my-package.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.cjs.dev.js, dist/my-package.cjs.prod.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
+ Object.defineProperty(exports, '__esModule', { value: true });
- var index = {};
+ var index = {};
- exports.default = index;
+ exports["default"] = index;
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- 'use strict';
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.cjs.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ 'use strict';
- if (process.env.NODE_ENV === "production") {
- module.exports = require("./my-package.cjs.prod.js");
- } else {
- module.exports = require("./my-package.cjs.dev.js");
- }
+ if (process.env.NODE_ENV === "production") {
+ module.exports = require("./my-package.cjs.prod.js");
+ } else {
+ module.exports = require("./my-package.cjs.dev.js");
+ }
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
- var index = {};
+ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ dist/my-package.esm.js ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
+ var index = {};
- export default index;
+ export { index as default };
-`);
+ `);
});
diff --git a/packages/cli/src/build/aliases.ts b/packages/cli/src/build/aliases.ts
deleted file mode 100644
index dcad6d8b..00000000
--- a/packages/cli/src/build/aliases.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Project } from "../project";
-
-export type Aliases = {
- [key: string]: string;
-};
-
-export function getAliases(project: Project): Aliases {
- let aliases: { [key: string]: string } = {};
- project.packages.forEach((pkg) => {
- pkg.entrypoints.forEach((entrypoint) => {
- aliases[entrypoint.name] = entrypoint.source;
- });
- });
- return aliases;
-}
diff --git a/packages/cli/src/build/config.ts b/packages/cli/src/build/config.ts
index f61b6ef4..7dc7f54d 100644
--- a/packages/cli/src/build/config.ts
+++ b/packages/cli/src/build/config.ts
@@ -1,14 +1,17 @@
import { Package } from "../package";
import { getRollupConfig } from "./rollup";
-import { OutputOptions, OutputPlugin, RollupOptions } from "rollup";
-import { Aliases } from "./aliases";
+import { OutputOptions, RollupOptions } from "rollup";
import { PKG_JSON_CONFIG_FIELD } from "../constants";
import { limit, doPromptInput } from "../prompt";
import path from "path";
import resolveFrom from "resolve-from";
import * as logger from "../logger";
import { Project } from "../project";
-import { getDistExtension } from "../utils";
+import {
+ getDistExtension,
+ getDistExtensionForConditions,
+ getDistExtensionForConditionsWithTypeModule,
+} from "../utils";
function getGlobal(project: Project, name: string) {
if (
@@ -66,34 +69,84 @@ const babelHelperId = /@babel\/runtime(|-corejs[23])\/helpers\//;
const interop = (id: string | null): "auto" | "default" =>
id && babelHelperId.test(id) ? "default" : "auto";
-export function getRollupConfigs(pkg: Package, aliases: Aliases) {
- const cjsPlugins: OutputPlugin[] = pkg.project.experimentalFlags
- .keepDynamicImportAsDynamicImportInCommonJS
- ? [
- {
- name: "cjs render dynamic import",
- renderDynamicImport() {
- return {
- left: "import(",
- right: ")",
- };
- },
- },
- ]
- : [];
-
+export function getRollupConfigs(pkg: Package) {
let configs: Array<{
config: RollupOptions;
outputs: OutputOptions[];
- }> = [];
+ }> = umdBuilds(pkg);
+
+ const exportsFieldConfig = pkg.exportsFieldConfig();
+
+ if (exportsFieldConfig?.conditions.kind === "imports") {
+ for (const conditions of exportsFieldConfig.conditions.groups.keys()) {
+ const config = getRollupConfig(
+ pkg,
+ pkg.entrypoints,
+ { kind: "conditions", conditions },
+ pkg.project.experimentalFlags.logCompiledFiles
+ ? (filename) => {
+ logger.info(
+ "compiled " +
+ filename.replace(pkg.project.directory + path.sep, "")
+ );
+ }
+ : () => {}
+ );
+ if (pkg.isTypeModule()) {
+ configs.push({
+ config,
+ outputs: [
+ {
+ format: "es" as const,
+ entryFileNames: `[name].${getDistExtensionForConditionsWithTypeModule(
+ conditions
+ )}`,
+ chunkFileNames: `dist/[name]-[hash].${getDistExtensionForConditionsWithTypeModule(
+ conditions
+ )}`,
+ dir: pkg.directory,
+ },
+ ],
+ });
+ continue;
+ }
+ configs.push({
+ config,
+ outputs: [
+ {
+ format: "cjs" as const,
+ entryFileNames: `[name].${getDistExtensionForConditions(
+ conditions
+ )}`,
+ chunkFileNames: `dist/[name]-[hash].${getDistExtensionForConditions(
+ conditions
+ )}`,
+ dir: pkg.directory,
+ exports: "named" as const,
+ interop,
+ },
+ {
+ format: "es" as const,
+ entryFileNames: `[name].${getDistExtensionForConditions(
+ conditions.concat("module")
+ )}`,
+ chunkFileNames: `dist/[name]-[hash].${getDistExtensionForConditions(
+ conditions.concat("module")
+ )}`,
+ dir: pkg.directory,
+ },
+ ],
+ });
+ }
+ return configs;
+ }
let hasModuleField = pkg.entrypoints[0].json.module !== undefined;
configs.push({
config: getRollupConfig(
pkg,
pkg.entrypoints,
- aliases,
- "node-dev",
+ { kind: "node-dev" },
pkg.project.experimentalFlags.logCompiledFiles
? (filename) => {
logger.info(
@@ -111,7 +164,6 @@ export function getRollupConfigs(pkg: Package, aliases: Aliases) {
dir: pkg.directory,
exports: "named" as const,
interop,
- plugins: cjsPlugins,
},
...(hasModuleField
? [
@@ -130,8 +182,7 @@ export function getRollupConfigs(pkg: Package, aliases: Aliases) {
config: getRollupConfig(
pkg,
pkg.entrypoints,
- aliases,
- "node-prod",
+ { kind: "node-prod" },
() => {}
),
outputs: [
@@ -142,39 +193,10 @@ export function getRollupConfigs(pkg: Package, aliases: Aliases) {
dir: pkg.directory,
exports: "named",
interop,
- plugins: cjsPlugins,
},
],
});
- // umd builds are a bit special
- // we don't guarantee that shared modules are shared across umd builds
- // this is just like dependencies, they're bundled into the umd build
- if (pkg.entrypoints[0].json["umd:main"] !== undefined)
- pkg.entrypoints.forEach((entrypoint) => {
- configs.push({
- config: getRollupConfig(pkg, [entrypoint], aliases, "umd", () => {}),
- outputs: [
- {
- format: "umd" as const,
- sourcemap: true,
- entryFileNames: `[name].${getDistExtension("umd")}`,
- name: entrypoint.json.preconstruct.umdName as string,
- dir: pkg.directory,
- interop,
- globals: (name: string) => {
- if (name === (entrypoint.json.preconstruct.umdName as string)) {
- return name;
- }
- return getGlobal(pkg.project, name);
- },
- },
- ],
- });
- });
-
- const exportsFieldConfig = pkg.exportsFieldConfig();
-
let hasBrowserField = pkg.entrypoints[0].json.browser !== undefined;
if (hasBrowserField) {
@@ -182,8 +204,7 @@ export function getRollupConfigs(pkg: Package, aliases: Aliases) {
config: getRollupConfig(
pkg,
pkg.entrypoints,
- aliases,
- "browser",
+ { kind: "browser" },
() => {}
),
outputs: [
@@ -196,7 +217,6 @@ export function getRollupConfigs(pkg: Package, aliases: Aliases) {
dir: pkg.directory,
exports: "named" as const,
interop,
- plugins: cjsPlugins,
},
hasModuleField && {
format: "es" as const,
@@ -213,13 +233,15 @@ export function getRollupConfigs(pkg: Package, aliases: Aliases) {
}
// note module builds always exist when using the exports field
- if (exportsFieldConfig?.envConditions.has("worker")) {
+ if (
+ exportsFieldConfig?.conditions.kind === "legacy" &&
+ exportsFieldConfig?.conditions.envs.has("worker")
+ ) {
configs.push({
config: getRollupConfig(
pkg,
pkg.entrypoints,
- aliases,
- "worker",
+ { kind: "worker" },
() => {}
),
outputs: [
@@ -235,3 +257,37 @@ export function getRollupConfigs(pkg: Package, aliases: Aliases) {
return configs;
}
+
+function umdBuilds(
+ pkg: Package
+): Array<{
+ config: RollupOptions;
+ outputs: OutputOptions[];
+}> {
+ // umd builds are a bit special
+ // we don't guarantee that shared modules are shared across umd builds
+ // this is just like dependencies, they're bundled into the umd build
+ if (pkg.entrypoints[0].json["umd:main"] !== undefined)
+ return pkg.entrypoints.map((entrypoint) => {
+ return {
+ config: getRollupConfig(pkg, [entrypoint], { kind: "umd" }, () => {}),
+ outputs: [
+ {
+ format: "umd" as const,
+ sourcemap: true,
+ entryFileNames: `[name].${getDistExtension("umd")}`,
+ name: entrypoint.json.preconstruct.umdName as string,
+ dir: pkg.directory,
+ interop,
+ globals: (name: string) => {
+ if (name === (entrypoint.json.preconstruct.umdName as string)) {
+ return name;
+ }
+ return getGlobal(pkg.project, name);
+ },
+ },
+ ],
+ };
+ });
+ return [];
+}
diff --git a/packages/cli/src/build/index.ts b/packages/cli/src/build/index.ts
index b42bf386..35b10d2c 100644
--- a/packages/cli/src/build/index.ts
+++ b/packages/cli/src/build/index.ts
@@ -2,7 +2,6 @@ import { Package } from "../package";
import { Project } from "../project";
import path from "path";
import { rollup, OutputAsset, OutputChunk, OutputOptions } from "rollup";
-import { Aliases, getAliases } from "./aliases";
import * as logger from "../logger";
import * as fs from "fs-extra";
import {
@@ -57,8 +56,8 @@ function writeOutputFile(
return Promise.all([fs.outputFile(fileName, source), writeSourceMapPromise]);
}
-async function buildPackage(pkg: Package, aliases: Aliases) {
- let configs = getRollupConfigs(pkg, aliases);
+async function buildPackage(pkg: Package) {
+ let configs = getRollupConfigs(pkg);
let outputs = await Promise.all(
configs.map(async ({ config, outputs }) => {
@@ -88,13 +87,13 @@ async function buildPackage(pkg: Package, aliases: Aliases) {
);
}
-async function retryableBuild(pkg: Package, aliases: Aliases) {
+async function retryableBuild(pkg: Package) {
try {
- await buildPackage(pkg, aliases);
+ await buildPackage(pkg);
} catch (err) {
if (err instanceof Promise) {
await err;
- await retryableBuild(pkg, aliases);
+ await retryableBuild(pkg);
return;
}
if (
@@ -123,13 +122,12 @@ export default async function build(directory: string) {
await cleanProjectBeforeBuild(project);
- let aliases = getAliases(project);
let errors: FatalError[] = [];
await Promise.all(
project.packages.map(async (pkg) => {
try {
- await retryableBuild(pkg, aliases);
+ await retryableBuild(pkg);
} catch (err) {
if (err instanceof BatchError) {
errors.push(...err.errors);
diff --git a/packages/cli/src/build/rollup.ts b/packages/cli/src/build/rollup.ts
index aeab1e40..3d06a248 100644
--- a/packages/cli/src/build/rollup.ts
+++ b/packages/cli/src/build/rollup.ts
@@ -9,18 +9,23 @@ import builtInModules from "builtin-modules";
import { Package } from "../package";
import { Entrypoint } from "../entrypoint";
import { RollupOptions, Plugin } from "rollup";
-import { Aliases } from "./aliases";
import { FatalError, BatchError } from "../errors";
import rewriteBabelRuntimeHelpers from "../rollup-plugins/rewrite-babel-runtime-helpers";
-import flowAndNodeDevProdEntry from "../rollup-plugins/flow-and-prod-dev-entry";
+import nodeDevProdEntry from "../rollup-plugins/prod-dev-entry";
import typescriptDeclarations from "../rollup-plugins/typescript-declarations";
+import mjsProxy from "../rollup-plugins/mjs-proxy";
import json from "@rollup/plugin-json";
+import svgr from "@svgr/rollup";
import babel from "../rollup-plugins/babel";
import terser from "../rollup-plugins/terser";
import { getBaseDistName } from "../utils";
import { EXTENSIONS } from "../constants";
import { inlineProcessEnvNodeEnv } from "../rollup-plugins/inline-process-env-node-env";
import normalizePath from "normalize-path";
+import { serverComponentsPlugin } from "../rollup-plugins/server-components";
+import { resolveErrorsPlugin } from "../rollup-plugins/resolve";
+import { Project } from "../project";
+import flow from "../rollup-plugins/flow";
type ExternalPredicate = (source: string) => boolean;
@@ -33,7 +38,7 @@ const makeExternalPredicate = (externalArr: string[]): ExternalPredicate => {
return (id: string) => pattern.test(id);
};
-export type RollupConfigType =
+type BasicRollupConfigType =
| "umd"
| "browser"
| "worker"
@@ -43,53 +48,66 @@ export type RollupConfigType =
export let getRollupConfig = (
pkg: Package,
entrypoints: Array,
- aliases: Aliases,
- type: RollupConfigType,
+ options:
+ | { kind: BasicRollupConfigType }
+ | {
+ kind: "conditions";
+ /** This should not include import, module or require, only the custom conditions specified in imports */
+ conditions: string[];
+ },
reportTransformedFile: (filename: string) => void
): RollupOptions => {
let external = [];
if (pkg.json.peerDependencies) {
external.push(...Object.keys(pkg.json.peerDependencies));
}
- if (pkg.json.dependencies && type !== "umd") {
+ if (pkg.json.dependencies && options.kind !== "umd") {
external.push(...Object.keys(pkg.json.dependencies));
}
+ external.push(pkg.name);
let wrapExternalPredicate = (inner: ExternalPredicate): ExternalPredicate =>
inner;
- if (type === "node-dev" || type === "node-prod") {
+ if (
+ options.kind === "node-dev" ||
+ options.kind === "node-prod" ||
+ options.kind === "conditions"
+ ) {
external.push(...builtInModules);
wrapExternalPredicate = (inner) => (source) =>
source.startsWith("node:") || inner(source);
}
let input: Record = {};
-
- entrypoints.forEach((entrypoint) => {
+ const { distInRoot } = pkg.project.experimentalFlags;
+ for (const entrypoint of entrypoints) {
+ if (distInRoot) {
+ input[`dist/${getBaseDistName(entrypoint)}`] = entrypoint.source;
+ continue;
+ }
input[
path.relative(
pkg.directory,
path.join(entrypoint.directory, "dist", getBaseDistName(entrypoint))
)
] = entrypoint.source;
- });
+ }
- let warnings: Array = [];
+ let warnings = new Set();
+ const isDefaultConditionsBuild =
+ options.kind === "conditions" && options.conditions.length === 0;
const config: RollupOptions = {
input,
external: wrapExternalPredicate(makeExternalPredicate(external)),
onwarn: (warning) => {
if (typeof warning === "string") {
- warnings.push(
- new FatalError(
- `An unhandled Rollup error occurred: ${chalk.red(
- // @ts-ignore
- warning.toString()
- )}`,
- pkg.name
- )
+ warnings.add(
+ `An unhandled Rollup error occurred: ${chalk.red(
+ // @ts-ignore
+ warning.toString()
+ )}`
);
return;
}
@@ -100,41 +118,22 @@ export let getRollupConfig = (
case "UNUSED_EXTERNAL_IMPORT": {
break;
}
- case "UNRESOLVED_IMPORT": {
- if (!warning.source!.startsWith(".")) {
- warnings.push(
- new FatalError(
- `"${warning.source}" is imported by "${normalizePath(
- path.relative(pkg.directory, warning.importer!)
- )}" but the package is not specified in dependencies or peerDependencies`,
- pkg.name
- )
- );
- return;
- }
- }
case "THIS_IS_UNDEFINED": {
- if (type === "umd") {
+ if (options.kind === "umd") {
return;
}
- warnings.push(
- new FatalError(
- `"${normalizePath(
- path.relative(pkg.directory, warning.loc!.file!)
- )}" used \`this\` keyword at the top level of an ES module. You can read more about this at ${warning.url!} and fix this issue that has happened here:\n\n${warning.frame!}\n`,
- pkg.name
- )
+ warnings.add(
+ `"${normalizePath(
+ path.relative(pkg.directory, warning.loc!.file!)
+ )}" used \`this\` keyword at the top level of an ES module. You can read more about this at ${warning.url!} and fix this issue that has happened here:\n\n${warning.frame!}\n`
);
return;
}
default: {
- warnings.push(
- new FatalError(
- `An unhandled Rollup error occurred: ${chalk.red(
- warning.toString()
- )}`,
- pkg.name
- )
+ warnings.add(
+ `An unhandled Rollup error occurred: ${chalk.red(
+ warning.toString()
+ )}`
);
}
}
@@ -143,13 +142,22 @@ export let getRollupConfig = (
{
name: "throw-warnings",
buildEnd() {
- if (warnings.length) {
- throw new BatchError(warnings);
+ if (warnings.size) {
+ throw new BatchError(
+ [...warnings].map((x) => new FatalError(x, pkg.name))
+ );
}
},
} as Plugin,
- type === "node-prod" && flowAndNodeDevProdEntry(pkg, warnings),
- type === "node-prod" && typescriptDeclarations(pkg),
+ options.kind === "node-prod" && nodeDevProdEntry(),
+ (options.kind === "node-prod" || isDefaultConditionsBuild) && flow(),
+ resolveErrorsPlugin(pkg, warnings, options.kind === "umd"),
+ (options.kind === "node-prod" || isDefaultConditionsBuild) &&
+ typescriptDeclarations(pkg),
+ (options.kind === "node-prod" || options.kind === "conditions") &&
+ pkg.exportsFieldConfig()?.importConditionDefaultExport === "default" &&
+ mjsProxy(pkg),
+ serverComponentsPlugin({ sourceMap: options.kind === "umd" }),
babel({
cwd: pkg.project.directory,
reportTransformedFile,
@@ -166,7 +174,7 @@ export let getRollupConfig = (
}
})(),
}),
- type === "umd" &&
+ options.kind === "umd" &&
cjs({
include: ["**/node_modules/**", "node_modules/**"],
}),
@@ -175,24 +183,28 @@ export let getRollupConfig = (
json({
namedExports: false,
}),
- type === "umd" &&
+ svgr({ exportType: "named", dimensions: false }),
+ options.kind === "umd" &&
alias({
- entries: aliases,
+ entries: getAliases(pkg.project),
}),
resolve({
extensions: EXTENSIONS,
+ exportConditions:
+ options.kind === "conditions" ? options.conditions : undefined,
// only umd builds will actually load dependencies which is where this browser flag actually makes a difference
- browser: type === "umd",
- moduleDirectories: type === "umd" ? ["node_modules"] : [],
+ browser: options.kind === "umd",
+ moduleDirectories: options.kind === "umd" ? ["node_modules"] : [],
}),
- type === "umd" && inlineProcessEnvNodeEnv({ sourceMap: true }),
- type === "umd" &&
+ options.kind === "umd" && inlineProcessEnvNodeEnv({ sourceMap: true }),
+ options.kind === "umd" &&
terser({
sourceMap: true,
compress: true,
}),
- type === "node-prod" && inlineProcessEnvNodeEnv({ sourceMap: false }),
- (type === "browser" || type === "umd") &&
+ options.kind === "node-prod" &&
+ inlineProcessEnvNodeEnv({ sourceMap: false }),
+ (options.kind === "browser" || options.kind === "umd") &&
replace({
values: {
["typeof " + "document"]: JSON.stringify("object"),
@@ -200,7 +212,7 @@ export let getRollupConfig = (
},
preventAssignment: true,
}),
- type === "worker" &&
+ options.kind === "worker" &&
replace({
values: {
["typeof " + "document"]: JSON.stringify("undefined"),
@@ -208,8 +220,35 @@ export let getRollupConfig = (
},
preventAssignment: true,
}),
+ pkg.project.experimentalFlags
+ .keepDynamicImportAsDynamicImportInCommonJS && cjsDynamicImportPlugin,
].filter((x): x is Plugin => !!x),
};
return config;
};
+
+function getAliases(
+ project: Project
+): {
+ [key: string]: string;
+} {
+ let aliases: { [key: string]: string } = {};
+ project.packages.forEach((pkg) => {
+ pkg.entrypoints.forEach((entrypoint) => {
+ aliases[entrypoint.name] = entrypoint.source;
+ });
+ });
+ return aliases;
+}
+
+const cjsDynamicImportPlugin: Plugin = {
+ name: "cjs render dynamic import",
+ renderDynamicImport({ format }) {
+ if (format !== "cjs") return;
+ return {
+ left: "import(",
+ right: ")",
+ };
+ },
+};
diff --git a/packages/cli/src/build/utils.ts b/packages/cli/src/build/utils.ts
index f47af266..df95f161 100644
--- a/packages/cli/src/build/utils.ts
+++ b/packages/cli/src/build/utils.ts
@@ -1,6 +1,6 @@
import { Project } from "../project";
import { isTsPath } from "../rollup-plugins/typescript-declarations";
-import { writeDevTSFile } from "../dev";
+import { entrypointHasDefaultExport, writeDevTSFiles } from "../dev";
import * as fs from "fs-extra";
import path from "path";
@@ -23,14 +23,20 @@ export async function cleanProjectBeforeBuild(project: Project) {
return fs.remove(path.join(entrypoint.directory, "dist"));
}),
]);
+ const isTypeModule = pkg.isTypeModule();
await Promise.all(
pkg.entrypoints.map(async (entrypoint) => {
if (isTsPath(entrypoint.source)) {
- await fs.mkdir(path.join(entrypoint.directory, "dist"));
- await writeDevTSFile(
+ if (!isTypeModule) {
+ await fs.mkdir(path.join(entrypoint.directory, "dist"));
+ }
+ await writeDevTSFiles(
entrypoint,
- await fs.readFile(entrypoint.source, "utf8")
+ await entrypointHasDefaultExport(
+ entrypoint,
+ await fs.readFile(entrypoint.source, "utf8")
+ )
);
}
})
diff --git a/packages/cli/src/build/watch.ts b/packages/cli/src/build/watch.ts
index fd0b7c8d..5ba9b783 100644
--- a/packages/cli/src/build/watch.ts
+++ b/packages/cli/src/build/watch.ts
@@ -5,7 +5,6 @@ import chalk from "chalk";
import path from "path";
import ms from "ms";
import { getRollupConfigs } from "./config";
-import { Aliases, getAliases } from "./aliases";
import { success, info } from "../logger";
import { successes } from "../messages";
import { createWorker } from "../worker-client";
@@ -16,8 +15,8 @@ function relativePath(id: string) {
return path.relative(process.cwd(), id);
}
-async function watchPackage(pkg: Package, aliases: Aliases) {
- const _configs = getRollupConfigs(pkg, aliases);
+async function watchPackage(pkg: Package) {
+ const _configs = getRollupConfigs(pkg);
let configs = _configs.map((config) => {
return { ...config.config, output: config.outputs };
@@ -51,6 +50,8 @@ async function watchPackage(pkg: Package, aliases: Aliases) {
? relativePath(event.input)
: Array.isArray(event.input)
? event.input.map(relativePath).join(", ")
+ : event.input === undefined
+ ? ""
: Object.values(event.input)
// @ts-ignore
.map(relativePath)
@@ -84,12 +85,11 @@ async function watchPackage(pkg: Package, aliases: Aliases) {
async function retryableWatch(
pkg: Package,
- aliases: Aliases,
getPromises: (arg: { start: Promise }) => unknown,
depth: number
) {
try {
- let { error, start } = await watchPackage(pkg, aliases);
+ let { error, start } = await watchPackage(pkg);
if (depth === 0) {
getPromises({ start });
}
@@ -97,7 +97,7 @@ async function retryableWatch(
} catch (err) {
if (err instanceof Promise) {
await err;
- await retryableWatch(pkg, aliases, getPromises, depth + 1);
+ await retryableWatch(pkg, getPromises, depth + 1);
return;
}
throw err;
@@ -109,13 +109,11 @@ export default async function build(directory: string) {
let project = await Project.create(directory);
validateProject(project);
await cleanProjectBeforeBuild(project);
- let aliases = getAliases(project);
let startCount = 0;
await Promise.all(
project.packages.map((pkg) =>
retryableWatch(
pkg,
- aliases,
async ({ start }) => {
await start;
startCount++;
diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts
index a2c1632b..33f15879 100644
--- a/packages/cli/src/cli.ts
+++ b/packages/cli/src/cli.ts
@@ -14,9 +14,7 @@ import {
BatchError,
} from "./errors";
-// tricking static analysis is fun
-// @ts-ignore
-process["e" + "nv"].NODE_ENV = "production";
+process.env.NODE_ENV = "production";
let { input } = meow(
`
diff --git a/packages/cli/src/constants.ts b/packages/cli/src/constants.ts
index 4fe867b4..9f40d2fb 100644
--- a/packages/cli/src/constants.ts
+++ b/packages/cli/src/constants.ts
@@ -1,3 +1,3 @@
-export const EXTENSIONS = [".js", ".jsx", ".ts", ".tsx"] as const;
+export const EXTENSIONS = [".js", ".jsx", ".ts", ".tsx", ".svg"] as const;
export const PKG_JSON_CONFIG_FIELD = "preconstruct" as const;
diff --git a/packages/cli/src/dev.ts b/packages/cli/src/dev.ts
index 3b10c199..c20690aa 100644
--- a/packages/cli/src/dev.ts
+++ b/packages/cli/src/dev.ts
@@ -1,53 +1,48 @@
+import { lazyRequire } from "lazy-require.macro";
import { Project } from "./project";
import { success, info } from "./logger";
import {
- tsTemplate,
+ dtsTemplate,
flowTemplate,
validFieldsForEntrypoint,
getExportsFieldOutputPath,
+ getExportsImportUnwrappingDefaultOutputPath,
+ dmtsTemplate,
+ mjsTemplate,
+ getBaseDistFilename,
+ getJsDefaultForMjsFilepath,
+ jsDefaultForMjsTemplate,
+ dtsDefaultForDmtsTemplate,
+ getDtsDefaultForMtsFilepath,
+ getDistFilenameForConditions,
+ getBaseDistName,
+ getDistFilenameForConditionsWithTypeModule,
} from "./utils";
-import * as babel from "@babel/core";
import * as fs from "fs-extra";
import path from "path";
import normalizePath from "normalize-path";
import { Entrypoint } from "./entrypoint";
import { validateProject } from "./validate";
-let tsExtensionPattern = /tsx?$/;
+let tsExtensionPattern = /\.tsx?$/;
-type TypeSystemInfo = {
- flow: boolean;
- typescript: false | string;
-};
-
-async function getTypeSystem(entrypoint: Entrypoint): Promise {
- let sourceContents = await fs.readFile(entrypoint.source, "utf8");
- const ret: TypeSystemInfo = {
- flow: false,
- typescript: false,
- };
- if (tsExtensionPattern.test(entrypoint.source)) {
- ret.typescript = sourceContents;
- } else {
- try {
- let tsSourceContents = await fs.readFile(
- entrypoint.source.replace(/\.jsx?/, ".d.ts"),
- "utf8"
- );
- ret.typescript = tsSourceContents;
- } catch (err) {
- if (err.code !== "ENOENT") {
- throw err;
- }
+async function hasDtsFile(entrypoint: Entrypoint) {
+ try {
+ const filename = entrypoint.source.replace(/\.jsx?/, ".d.ts");
+ await fs.stat(filename);
+ return true;
+ } catch (err) {
+ if (err.code !== "ENOENT") {
+ throw err;
}
}
- if (sourceContents.includes("@flow")) {
- ret.flow = true;
- }
- return ret;
+ return false;
}
-async function entrypointHasDefaultExport(
+// technically we should consider three states 'no-default' | 'default' | 'type-only-default'
+// but we don't handle that correctly for builds right now anyway and i don't think people are
+// really doing type-only default exports so i'm not worrying about it right now
+export async function entrypointHasDefaultExport(
entrypoint: Entrypoint,
content: string
) {
@@ -61,6 +56,7 @@ async function entrypointHasDefaultExport(
) {
return false;
}
+ const babel = lazyRequire();
let ast = (await babel.parseAsync(content, {
filename: entrypoint.source,
sourceType: "module",
@@ -76,6 +72,7 @@ async function entrypointHasDefaultExport(
(specifier.type === "ExportDefaultSpecifier" ||
specifier.type === "ExportNamespaceSpecifier" ||
specifier.type === "ExportSpecifier") &&
+ specifier.exported.type === "Identifier" &&
specifier.exported.name === "default"
))
) {
@@ -85,41 +82,76 @@ async function entrypointHasDefaultExport(
return false;
}
-export async function writeDevTSFile(
+export async function writeDevTSFiles(
entrypoint: Entrypoint,
- entrypointSourceContent: string
+ hasDefaultExport: boolean
) {
- let cjsDistPath = path
- .join(entrypoint.directory, validFieldsForEntrypoint.main(entrypoint))
- .replace(/\.js$/, ".d.ts");
+ const dtsReexportFilename = path.join(
+ (entrypoint.package.project.experimentalFlags.distInRoot
+ ? entrypoint.package
+ : entrypoint
+ ).directory,
+ "dist",
+ getBaseDistName(entrypoint) +
+ (entrypoint.package.isTypeModule() ? "" : ".cjs") +
+ ".d.ts"
+ );
- let output = await entrypointHasDefaultExport(
- entrypoint,
- entrypointSourceContent
- ).then(
- (hasDefaultExport) =>
- `// are you seeing an error that a default export doesn't exist but your source file has a default export?
-// you should run \`yarn\` or \`yarn preconstruct dev\` if preconstruct dev isn't in your postinstall hook
+ const baseDtsFilename = path.basename(dtsReexportFilename);
+ const relativePathWithExtension = normalizePath(
+ path.relative(path.dirname(dtsReexportFilename), entrypoint.source)
+ );
-// curious why you need to?
-// this file exists so that you can import from the entrypoint normally
-// except that it points to your source file and you don't need to run build constantly
-// which means we need to re-export all of the modules from your source file
-// and since export * doesn't include default exports, we need to read your source file
-// to check for a default export and re-export it if it exists
-// it's not ideal, but it works pretty well ¯\\_(ツ)_/¯
-` +
- tsTemplate(
+ let promises: Promise[] = [
+ fs.outputFile(
+ dtsReexportFilename,
+ dtsTemplate(
+ baseDtsFilename,
hasDefaultExport,
- normalizePath(
- path
- .relative(path.dirname(cjsDistPath), entrypoint.source)
- .replace(/\.tsx?$/, "")
+ relativePathWithExtension.replace(/\.tsx?$/, ""),
+ relativePathWithExtension
+ )
+ ),
+ ];
+
+ if (
+ entrypoint.package.exportsFieldConfig()?.importConditionDefaultExport ===
+ "default" &&
+ !entrypoint.package.isTypeModule()
+ ) {
+ const dmtsReexportFilename = path
+ .join(entrypoint.directory, validFieldsForEntrypoint.main(entrypoint))
+ .replace(/\.js$/, ".d.mts");
+ const baseDmtsFilename = path.basename(dmtsReexportFilename);
+
+ const ext = path.extname(relativePathWithExtension).slice(1);
+ const mappedExt = { ts: "js", tsx: "js", mts: "mjs", cts: "cjs" }[ext];
+ const pathToImport = relativePathWithExtension.replace(
+ new RegExp(`\\.${ext}$`),
+ `.${mappedExt}`
+ );
+ promises.push(
+ fs.outputFile(
+ dmtsReexportFilename,
+ dmtsTemplate(
+ baseDmtsFilename,
+ hasDefaultExport,
+ pathToImport,
+ relativePathWithExtension
)
)
- );
+ );
+ if (hasDefaultExport) {
+ promises.push(
+ fs.outputFile(
+ getDtsDefaultForMtsFilepath(dmtsReexportFilename),
+ dtsDefaultForDmtsTemplate(pathToImport)
+ )
+ );
+ }
+ }
- await fs.outputFile(cjsDistPath, output);
+ await Promise.all(promises);
}
async function writeDevFlowFile(entrypoint: Entrypoint) {
@@ -153,70 +185,180 @@ export default async function dev(projectDir: string) {
validateProject(project);
info("project is valid!");
- let promises: Promise[] = [];
await Promise.all(
- project.packages.map((pkg) => {
+ project.packages.map(async (pkg) => {
+ const exportsFieldConfig = pkg.exportsFieldConfig();
+ let distDirectory = path.join(pkg.directory, "dist");
+ await fs.remove(distDirectory);
+ await fs.ensureDir(distDirectory);
+
return Promise.all(
pkg.entrypoints.map(async (entrypoint) => {
- let typeSystemPromise = getTypeSystem(entrypoint);
-
- let distDirectory = path.join(entrypoint.directory, "dist");
-
- await fs.remove(distDirectory);
- await fs.ensureDir(distDirectory);
-
- let promises = [
- typeSystemPromise.then((typeSystemInfo) => {
- let promises = [];
- if (typeSystemInfo.flow) {
- promises.push(writeDevFlowFile(entrypoint));
+ let hasDefaultExportPromise: Promise | undefined;
+ const contentsPromise = fs.readFile(entrypoint.source, "utf8");
+ const getHasDefaultExportPromise = () => {
+ if (hasDefaultExportPromise === undefined) {
+ hasDefaultExportPromise = contentsPromise.then((content) =>
+ entrypointHasDefaultExport(entrypoint, content)
+ );
+ }
+ return hasDefaultExportPromise;
+ };
+ await cleanEntrypoint(entrypoint);
+ let entrypointPromises: Promise[] = [
+ (async () => {
+ if ((await contentsPromise).includes("@flow")) {
+ await writeDevFlowFile(entrypoint);
+ }
+ })(),
+ (async () => {
+ if (
+ tsExtensionPattern.test(entrypoint.source) ||
+ (await hasDtsFile(entrypoint))
+ ) {
+ await writeDevTSFiles(
+ entrypoint,
+ await getHasDefaultExportPromise()
+ );
}
- if (typeSystemInfo.typescript !== false) {
- promises.push(
- writeDevTSFile(entrypoint, typeSystemInfo.typescript)
+ })(),
+ ];
+ if (
+ pkg.isTypeModule() &&
+ exportsFieldConfig &&
+ exportsFieldConfig.conditions.kind === "imports"
+ ) {
+ for (const conditions of exportsFieldConfig.conditions.groups.keys()) {
+ entrypointPromises.push(
+ fs.symlink(
+ entrypoint.source,
+ path.join(
+ pkg.directory,
+ getDistFilenameForConditionsWithTypeModule(
+ entrypoint,
+ conditions
+ )
+ )
+ )
+ );
+ }
+ return Promise.all(entrypointPromises);
+ }
+ const cjsTemplate = commonjsRequireHookTemplate(entrypoint);
+ if (exportsFieldConfig?.conditions.kind === "imports") {
+ for (const conditions of exportsFieldConfig.conditions.groups.keys()) {
+ const distRoot = project.experimentalFlags.distInRoot
+ ? pkg.directory
+ : entrypoint.directory;
+ entrypointPromises.push(
+ fs.symlink(
+ entrypoint.source,
+ path.join(
+ distRoot,
+ getDistFilenameForConditions(
+ entrypoint,
+ conditions.concat("module")
+ )
+ )
+ ),
+ fs.writeFile(
+ path.join(
+ distRoot,
+ getDistFilenameForConditions(entrypoint, conditions)
+ ),
+ cjsTemplate
+ )
+ );
+ if (
+ exportsFieldConfig.importConditionDefaultExport === "default"
+ ) {
+ entrypointPromises.push(
+ getHasDefaultExportPromise().then((hasDefaultExport) => {
+ const filepath = path.join(
+ entrypoint.package.directory,
+ getDistFilenameForConditions(
+ entrypoint,
+ conditions
+ ).replace(/\.js$/, ".mjs")
+ );
+ const importPath = `./${getDistFilenameForConditions(
+ entrypoint,
+ conditions
+ )}`;
+ return Promise.all([
+ fs.writeFile(
+ filepath,
+ mjsTemplate(
+ // the * won't really do anything right now
+ // since cjs-module-lexer won't find anything
+ // but that could be fixed by adding fake things
+ // to the .cjs.js file that look like exports to cjs-module-lexer
+ // but don't actually add the exports at runtime like esbuild does
+ // (it would require re-running dev when adding new named exports)
+ hasDefaultExport ? ["default", "*other"] : ["*other"],
+ importPath,
+ filepath
+ )
+ ),
+ hasDefaultExport &&
+ fs.writeFile(
+ getJsDefaultForMjsFilepath(filepath),
+ jsDefaultForMjsTemplate(importPath)
+ ),
+ ]);
+ })
);
}
- return Promise.all(promises);
- }),
+ }
+ return Promise.all(entrypointPromises);
+ }
+ entrypointPromises.push(
fs.writeFile(
path.join(
entrypoint.directory,
validFieldsForEntrypoint.main(entrypoint)
),
- `"use strict";
-// this file might look strange and you might be wondering what it's for
-// it's lets you import your source files by importing this entrypoint
-// as you would import it if it was built with preconstruct build
-// this file is slightly different to some others though
-// it has a require hook which compiles your code with Babel
-// this means that you don't have to set up @babel/register or anything like that
-// but you can still require this module and it'll be compiled
-
-// this bit of code imports the require hook and registers it
-let unregister = require(${JSON.stringify(
- normalizePath(
- path.relative(
- distDirectory,
- path.dirname(require.resolve("@preconstruct/hook"))
- )
- )
- )}).___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, ${JSON.stringify(
- normalizePath(path.relative(distDirectory, project.directory))
- )}, ${JSON.stringify(
- normalizePath(path.relative(distDirectory, pkg.directory))
- )});
-
-// this re-exports the source file
-module.exports = require(${JSON.stringify(
- normalizePath(path.relative(distDirectory, entrypoint.source))
- )});
-
-unregister();
-`
- ),
- ];
+ cjsTemplate
+ )
+ );
+ if (exportsFieldConfig?.importConditionDefaultExport === "default") {
+ entrypointPromises.push(
+ getHasDefaultExportPromise().then((hasDefaultExport) => {
+ const filepath = path.join(
+ entrypoint.package.directory,
+ getExportsImportUnwrappingDefaultOutputPath(entrypoint)
+ );
+ const importPath = `./${getBaseDistFilename(
+ entrypoint,
+ "cjs"
+ )}`;
+ return Promise.all([
+ fs.writeFile(
+ filepath,
+ mjsTemplate(
+ // the * won't really do anything right now
+ // since cjs-module-lexer won't find anything
+ // but that could be fixed by adding fake things
+ // to the .cjs.js file that look like exports to cjs-module-lexer
+ // but don't actually add the exports at runtime like esbuild does
+ // (it would require re-running dev when adding new named exports)
+ hasDefaultExport ? ["default", "*other"] : ["*other"],
+ importPath,
+ filepath
+ )
+ ),
+ hasDefaultExport
+ ? fs.writeFile(
+ getJsDefaultForMjsFilepath(filepath),
+ jsDefaultForMjsTemplate(importPath)
+ )
+ : undefined,
+ ]);
+ })
+ );
+ }
if (entrypoint.json.module) {
- promises.push(
+ entrypointPromises.push(
fs.symlink(
entrypoint.source,
path.join(
@@ -227,8 +369,8 @@ unregister();
);
}
- if (pkg.exportsFieldConfig()?.envConditions?.has("worker")) {
- promises.push(
+ if (exportsFieldConfig?.conditions.envs.has("worker")) {
+ entrypointPromises.push(
fs.symlink(
entrypoint.source,
path.join(
@@ -242,7 +384,7 @@ unregister();
if (entrypoint.json.browser) {
let browserField = validFieldsForEntrypoint.browser(entrypoint);
for (let output of Object.values(browserField)) {
- promises.push(
+ entrypointPromises.push(
fs.symlink(
entrypoint.source,
path.join(entrypoint.directory, output)
@@ -251,13 +393,64 @@ unregister();
}
}
- return Promise.all(promises);
+ return Promise.all(entrypointPromises);
})
);
})
);
- await Promise.all(promises);
-
success("created links!");
}
+
+async function cleanEntrypoint(entrypoint: Entrypoint) {
+ if (entrypoint.package.name === entrypoint.name) return;
+ let distDirectory = path.join(entrypoint.directory, "dist");
+
+ await fs.remove(distDirectory);
+ if (!entrypoint.package.project.experimentalFlags.distInRoot) {
+ await fs.ensureDir(distDirectory);
+ }
+}
+
+function commonjsRequireHookTemplate(entrypoint: Entrypoint) {
+ const distDirectory = path.join(
+ (entrypoint.package.project.experimentalFlags.distInRoot
+ ? entrypoint.package
+ : entrypoint
+ ).directory,
+ "dist"
+ );
+ let entrypointPath = normalizePath(
+ path.relative(distDirectory, entrypoint.source)
+ );
+ return `"use strict";
+// this file might look strange and you might be wondering what it's for
+// it's lets you import your source files by importing this entrypoint
+// as you would import it if it was built with preconstruct build
+// this file is slightly different to some others though
+// it has a require hook which compiles your code with Babel
+// this means that you don't have to set up @babel/register or anything like that
+// but you can still require this module and it'll be compiled
+
+// this bit of code imports the require hook and registers it
+let unregister = require(${JSON.stringify(
+ normalizePath(
+ path.relative(
+ distDirectory,
+ path.dirname(require.resolve("@preconstruct/hook"))
+ )
+ )
+ )}).___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, ${JSON.stringify(
+ normalizePath(
+ path.relative(distDirectory, entrypoint.package.project.directory)
+ )
+ )}, ${JSON.stringify(
+ normalizePath(path.relative(distDirectory, entrypoint.package.directory))
+ )});
+
+// this re-exports the source file
+module.exports = require(${JSON.stringify(entrypointPath)});
+
+unregister();
+`;
+}
diff --git a/packages/cli/src/entrypoint.ts b/packages/cli/src/entrypoint.ts
index 9a306c9f..7deb43db 100644
--- a/packages/cli/src/entrypoint.ts
+++ b/packages/cli/src/entrypoint.ts
@@ -17,6 +17,7 @@ export class Entrypoint extends Item<{
}> {
package: Package;
source: string;
+ afterPackageName: string;
constructor(
filePath: string,
contents: string,
@@ -26,6 +27,13 @@ export class Entrypoint extends Item<{
super(filePath, contents, pkg._jsonDataByPath);
this.package = pkg;
this.source = source;
+ this.afterPackageName =
+ pkg.directory === this.directory
+ ? ""
+ : "/" +
+ normalizePath(
+ nodePath.dirname(nodePath.relative(pkg.directory, filePath))
+ );
}
get hasModuleField() {
@@ -33,11 +41,6 @@ export class Entrypoint extends Item<{
}
get name(): string {
- return normalizePath(
- nodePath.join(
- this.package.name,
- nodePath.relative(this.package.directory, this.directory)
- )
- );
+ return this.package.name + this.afterPackageName;
}
}
diff --git a/packages/cli/src/fix.ts b/packages/cli/src/fix.ts
index 63324457..14cf297c 100644
--- a/packages/cli/src/fix.ts
+++ b/packages/cli/src/fix.ts
@@ -1,27 +1,80 @@
-import { Entrypoint } from "./entrypoint";
import { Project } from "./project";
import { promptInput } from "./prompt";
import * as logger from "./logger";
-import { inputs } from "./messages";
+import { errors, inputs } from "./messages";
import {
isUmdNameSpecified,
EXPERIMENTAL_FLAGS,
FORMER_FLAGS_THAT_ARE_ENABLED_NOW,
} from "./validate";
-import { fixPackage } from "./validate-package";
import { BatchError, FatalError } from "./errors";
+import { Package } from "./package";
+import { setFieldInOrder, exportsField } from "./utils";
-async function fixEntrypoint(entrypoint: Entrypoint) {
- if (
- entrypoint.json["umd:main"] !== undefined &&
- !isUmdNameSpecified(entrypoint)
- ) {
- let umdName = await promptInput(inputs.getUmdName, entrypoint);
- entrypoint.json.preconstruct.umdName = umdName;
- await entrypoint.save();
- return true;
+let keys: (obj: Obj) => (keyof Obj)[] = Object.keys;
+
+async function fixPackage(pkg: Package): Promise<() => Promise> {
+ if (pkg.entrypoints.length === 0) {
+ throw new FatalError(errors.noEntrypoints, pkg.name);
+ }
+
+ const exportsFieldConfig = pkg.exportsFieldConfig();
+
+ let fields = {
+ main: true,
+ module:
+ pkg.entrypoints.some((x) => x.json.module !== undefined) ||
+ !!exportsFieldConfig,
+ "umd:main": pkg.entrypoints.some((x) => x.json["umd:main"] !== undefined),
+ browser: pkg.entrypoints.some((x) => x.json.browser !== undefined),
+ };
+
+ if (exportsFieldConfig?.conditions.kind === "legacy") {
+ if (fields.browser || exportsFieldConfig.conditions.envs.has("browser")) {
+ if (typeof pkg.json.preconstruct.exports !== "object") {
+ pkg.json.preconstruct.exports = {};
+ }
+ if (!pkg.json.preconstruct.exports.envConditions) {
+ pkg.json.preconstruct.exports.envConditions = [];
+ }
+ if (!pkg.json.preconstruct.exports.envConditions.includes("browser")) {
+ pkg.json.preconstruct.exports.envConditions.push("browser");
+ }
+ fields.browser = true;
+ }
}
- return false;
+
+ if (!pkg.isTypeModule()) {
+ keys(fields)
+ .filter((x) => fields[x])
+ .forEach((field) => {
+ pkg.setFieldOnEntrypoints(field);
+ });
+ }
+
+ pkg.json = setFieldInOrder(pkg.json, "exports", exportsField(pkg));
+
+ for (const entrypoint of pkg.entrypoints) {
+ if (
+ entrypoint.json["umd:main"] !== undefined &&
+ !isUmdNameSpecified(entrypoint)
+ ) {
+ let umdName = await promptInput(inputs.getUmdName, entrypoint);
+ entrypoint.json.preconstruct.umdName = umdName;
+ }
+ }
+
+ return async () =>
+ (
+ await Promise.all([
+ pkg.save(),
+ ...(pkg.isTypeModule()
+ ? []
+ : pkg.entrypoints.map((x) =>
+ x.directory !== pkg.directory ? x.save() : false
+ )),
+ ])
+ ).some((x) => x);
}
export default async function fix(directory: string) {
@@ -63,17 +116,11 @@ export default async function fix(directory: string) {
}
}
- let didModifyPackages = (
- await Promise.all(
- project.packages.map(async (pkg) => {
- let didModifyInPkgFix = await fixPackage(pkg);
- let didModifyInEntrypointsFix = (
- await Promise.all(pkg.entrypoints.map(fixEntrypoint))
- ).some((x) => x);
- return didModifyInPkgFix || didModifyInEntrypointsFix;
- })
- )
- ).some((x) => x);
+ const updaters = await Promise.all(project.packages.map(fixPackage));
+
+ const didModifyPackages = (await Promise.all(updaters.map((x) => x()))).some(
+ (x) => x
+ );
logger.success(
didModifyProject || didModifyPackages
diff --git a/packages/cli/src/imports.test.ts b/packages/cli/src/imports.test.ts
new file mode 100644
index 00000000..af700294
--- /dev/null
+++ b/packages/cli/src/imports.test.ts
@@ -0,0 +1,416 @@
+import { parseImportsField, createExportsField } from "./imports";
+
+const util = (a: {} | null) => {
+ const buildsToCombinations = parseImportsField(a);
+ return JSON.stringify(
+ {
+ builds: [...buildsToCombinations.keys()],
+ exports: createExportsField(buildsToCombinations, (x) => x),
+ },
+ null,
+ 2
+ );
+};
+
+test("basic", () => {
+ expect(
+ util({
+ "#a": {
+ node: "./a-node.js",
+ default: "./a-default.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "node"
+ ]
+ ],
+ "exports": {
+ "node": [
+ "node"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+
+test("fewer builds than conditions", () => {
+ expect(
+ util({
+ "#a": {
+ worker: "./a.js",
+ browser: "./a-browser.js",
+ default: "./a.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "browser"
+ ]
+ ],
+ "exports": {
+ "worker": [],
+ "browser": [
+ "browser"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+
+test("multiple imports entries with the same conditions and builds", () => {
+ expect(
+ util({
+ "#a": {
+ worker: "./a.js",
+ browser: "./a-browser.js",
+ default: "./a.js",
+ },
+ "#b": {
+ worker: "./b.js",
+ browser: "./b-browser.js",
+ default: "./b.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "browser"
+ ]
+ ],
+ "exports": {
+ "worker": [],
+ "browser": [
+ "browser"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+
+test("multiple imports entries with the same conditions with more builds in one", () => {
+ expect(
+ util({
+ "#a": {
+ worker: "./a.js",
+ browser: "./a-browser.js",
+ default: "./a.js",
+ },
+ "#b": {
+ worker: "./b-worker.js",
+ browser: "./b-browser.js",
+ default: "./b.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "browser"
+ ],
+ [
+ "worker"
+ ]
+ ],
+ "exports": {
+ "worker": [
+ "worker"
+ ],
+ "browser": [
+ "browser"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+
+test("multiple imports entries with distinct conditions", () => {
+ expect(
+ util({
+ "#a": {
+ worker: "./a.js",
+ browser: "./a-browser.js",
+ default: "./a.js",
+ },
+ "#b": {
+ development: "./b-dev.js",
+ default: "./b.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "browser"
+ ],
+ [
+ "development"
+ ],
+ [
+ "browser",
+ "development"
+ ]
+ ],
+ "exports": {
+ "development": {
+ "worker": [
+ "development"
+ ],
+ "browser": [
+ "browser",
+ "development"
+ ],
+ "default": [
+ "development"
+ ]
+ },
+ "worker": [],
+ "browser": [
+ "browser"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+
+test("dev vs default + worker vs browser vs default", () => {
+ expect(
+ util({
+ "#b": {
+ development: "./b-dev.js",
+ default: "./b.js",
+ },
+ "#c": {
+ worker: "./c-worker.js",
+ browser: "./c-browser.js",
+ default: "./c.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "browser"
+ ],
+ [
+ "development"
+ ],
+ [
+ "browser",
+ "development"
+ ],
+ [
+ "worker"
+ ],
+ [
+ "development",
+ "worker"
+ ]
+ ],
+ "exports": {
+ "development": {
+ "worker": [
+ "development",
+ "worker"
+ ],
+ "browser": [
+ "browser",
+ "development"
+ ],
+ "default": [
+ "development"
+ ]
+ },
+ "worker": [
+ "worker"
+ ],
+ "browser": [
+ "browser"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+test("dev vs default + browser vs worker vs default", () => {
+ expect(
+ util({
+ "#b": {
+ development: "./b-dev.js",
+ default: "./b.js",
+ },
+ "#c": {
+ browser: "./c-browser.js",
+ worker: "./c-worker.js",
+ default: "./c.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "browser"
+ ],
+ [
+ "development"
+ ],
+ [
+ "browser",
+ "development"
+ ],
+ [
+ "worker"
+ ],
+ [
+ "development",
+ "worker"
+ ]
+ ],
+ "exports": {
+ "development": {
+ "browser": [
+ "browser",
+ "development"
+ ],
+ "worker": [
+ "development",
+ "worker"
+ ],
+ "default": [
+ "development"
+ ]
+ },
+ "browser": [
+ "browser"
+ ],
+ "worker": [
+ "worker"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+
+test("worker vs browser in both positions", () => {
+ expect(
+ util({
+ "#a": {
+ worker: "./c-worker.js",
+ browser: "./c-browser.js",
+ default: "./c.js",
+ },
+ "#b": {
+ development: "./b-dev.js",
+ default: "./b.js",
+ },
+ "#c": {
+ browser: "./c-browser.js",
+ worker: "./c-worker.js",
+ default: "./c.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ [],
+ [
+ "browser"
+ ],
+ [
+ "development"
+ ],
+ [
+ "browser",
+ "development"
+ ],
+ [
+ "worker"
+ ],
+ [
+ "browser",
+ "worker"
+ ],
+ [
+ "development",
+ "worker"
+ ],
+ [
+ "browser",
+ "development",
+ "worker"
+ ]
+ ],
+ "exports": {
+ "browser": {
+ "development": {
+ "worker": [
+ "browser",
+ "development",
+ "worker"
+ ],
+ "default": [
+ "browser",
+ "development"
+ ]
+ },
+ "worker": [
+ "browser",
+ "worker"
+ ],
+ "default": [
+ "browser"
+ ]
+ },
+ "development": {
+ "worker": [
+ "development",
+ "worker"
+ ],
+ "default": [
+ "development"
+ ]
+ },
+ "worker": [
+ "worker"
+ ],
+ "default": []
+ }
+ }"
+ `);
+});
+
+test("no conditions", () => {
+ expect(
+ util({
+ "#b": "./b.js",
+ "#c": {
+ default: "./c.js",
+ },
+ })
+ ).toMatchInlineSnapshot(`
+ "{
+ "builds": [
+ []
+ ],
+ "exports": []
+ }"
+ `);
+});
diff --git a/packages/cli/src/imports.ts b/packages/cli/src/imports.ts
new file mode 100644
index 00000000..cb97898c
--- /dev/null
+++ b/packages/cli/src/imports.ts
@@ -0,0 +1,219 @@
+import { z } from "zod";
+
+// we're disallowing the array syntax because there's literally no reason to use it
+// for `imports` when it's going to be compiled away in what people import
+// (if people think they want it, they're almost always wrong because it doesn't do what they think it does)
+const conditionsSchema: z.ZodType = z.lazy(() =>
+ z.union([z.string(), z.null(), z.record(conditionsSchema)])
+);
+
+const importsSchema = z
+ .record(z.string().startsWith("#"), conditionsSchema)
+ .default({});
+
+type WrittenConditions =
+ | null
+ | string
+ | { [condition: string]: WrittenConditions };
+
+type Imports = { [specifier: string]: WrittenConditions };
+
+function getAllConditions(imports: Imports) {
+ const allConditions = new Set();
+ for (const conditions of Object.values(imports)) {
+ findConditions(conditions, allConditions);
+ }
+
+ return [...allConditions].sort();
+}
+
+export function parseImportsField(input: unknown) {
+ const parsed = importsSchema.parse(input);
+
+ const sortedConditions = getAllConditions(parsed);
+
+ const resolvedToConditions = new Map();
+ for (const combination of getCombinations(sortedConditions)) {
+ const resolved = Object.entries(parsed).map(([specifier, conditions]) => {
+ const resolved = resolveConditions(conditions, combination);
+ if (resolved === null) {
+ throw new Error(`imports.${specifier} is missing a default`);
+ }
+ return resolved;
+ });
+ const resolvedString = JSON.stringify(resolved);
+ if (!resolvedToConditions.has(resolvedString)) {
+ resolvedToConditions.set(resolvedString, [combination]);
+ continue;
+ }
+ resolvedToConditions.get(resolvedString)!.push(combination);
+ }
+
+ const buildToCombinations = new Map(
+ [...resolvedToConditions.values()].map((combinations) => {
+ let shortestCombination = combinations[0];
+ for (const combination of combinations) {
+ if (combination.length < shortestCombination.length) {
+ shortestCombination = combination;
+ }
+ }
+ return [shortestCombination, combinations];
+ })
+ );
+
+ return buildToCombinations;
+}
+
+type Exports = Leaf | { [specifier: string]: Exports };
+
+export function createExportsField(
+ buildToCombinations: Map,
+ toLeaf: (conditions: string[]) => Leaf
+) {
+ const combinationsToBuild = new Map();
+ const conditionsToBuildCount = new Map();
+ const conditionsToInBuildCount = new Map();
+
+ for (const [build, combinations] of buildToCombinations) {
+ for (const condition of new Set(combinations.flat())) {
+ conditionsToInBuildCount.set(
+ condition,
+ (conditionsToInBuildCount.get(condition) ?? 0) + 1
+ );
+ }
+ for (const condition of new Set(build)) {
+ conditionsToBuildCount.set(
+ condition,
+ (conditionsToBuildCount.get(condition) ?? 0) + 1
+ );
+ }
+ const leaf = toLeaf(build);
+ for (const combination of combinations) {
+ combinationsToBuild.set(JSON.stringify(combination), leaf);
+ }
+ }
+
+ // i'm not totally sure if this is right or the best way to do this
+ // but it seems to work i think
+ const conditionsInExportsFieldOrder = [...conditionsToInBuildCount.keys()]
+ .sort()
+ .sort((a, b) => {
+ const aBuildVsInDiff =
+ (conditionsToBuildCount.get(a) ?? 0) -
+ (conditionsToInBuildCount.get(a) ?? 0);
+ const bBuildVsInDiff =
+ (conditionsToBuildCount.get(b) ?? 0) -
+ (conditionsToInBuildCount.get(b) ?? 0);
+ if (aBuildVsInDiff === 0 && bBuildVsInDiff === 0) {
+ return (
+ (conditionsToBuildCount.get(b) ?? 0) -
+ (conditionsToBuildCount.get(a) ?? 0)
+ );
+ }
+ return (
+ (conditionsToInBuildCount.get(a) ?? 0) -
+ (conditionsToInBuildCount.get(b) ?? 0)
+ );
+ });
+ return _createExportsField(
+ conditionsInExportsFieldOrder,
+ [],
+ combinationsToBuild
+ );
+}
+
+function _createExportsField(
+ combinationsLeft: string[],
+ parentCombinations: string[],
+ combinationToBuild: Map
+): Exports {
+ if (combinationsLeft.length === 0) {
+ const build = combinationToBuild.get(
+ JSON.stringify([...parentCombinations].sort())
+ );
+ if (!build) {
+ throw new Error("missing build");
+ }
+ return build;
+ }
+ const [currentCondition, ...rest] = combinationsLeft;
+ const withCurrent = _createExportsField(
+ rest,
+ [...parentCombinations, currentCondition],
+ combinationToBuild
+ );
+ const withoutCurrent = _createExportsField(
+ rest,
+ parentCombinations,
+ combinationToBuild
+ );
+ if (withCurrent === withoutCurrent) {
+ return withCurrent;
+ }
+ if (
+ typeof withoutCurrent !== "object" ||
+ Array.isArray(withoutCurrent) ||
+ withoutCurrent === null
+ ) {
+ return {
+ [currentCondition]: withCurrent,
+ default: withoutCurrent,
+ };
+ }
+ return {
+ [currentCondition]: withCurrent,
+ ...withoutCurrent,
+ };
+}
+
+function resolveConditions(
+ written: WrittenConditions,
+ combination: string[]
+): string | undefined | null {
+ if (typeof written === "string" || written === null) {
+ return written;
+ }
+ for (const [condition, value] of Object.entries(written)) {
+ if (condition === "default" || combination.includes(condition)) {
+ const resolved = resolveConditions(value, combination);
+ if (resolved !== undefined) return resolved;
+ }
+ }
+ return undefined;
+}
+
+const bannedConditions = new Set(["import", "require", "module", "types"]);
+
+function findConditions(specified: WrittenConditions, conditions: Set) {
+ if (typeof specified === "string" || specified === null) {
+ return;
+ }
+
+ for (const [condition, value] of Object.entries(specified)) {
+ if (bannedConditions.has(condition) || condition.startsWith("types@")) {
+ throw new Error(
+ `condition ${condition} is not allowed in the imports field with preconstruct`
+ );
+ }
+ if (condition === "default") {
+ findConditions(value, conditions);
+ continue;
+ }
+ conditions.add(condition);
+ findConditions(value, conditions);
+ }
+}
+
+function getCombinations(arr: T[]): T[][] {
+ const result: T[][] = [[]];
+
+ for (const item of arr) {
+ const currentLength = result.length;
+ for (let i = 0; i < currentLength; i++) {
+ const currentCombination = result[i];
+ result.push([...currentCombination, item]);
+ }
+ }
+
+ return result;
+}
diff --git a/packages/cli/src/messages.ts b/packages/cli/src/messages.ts
index 0d2e2ce6..ce8e068b 100644
--- a/packages/cli/src/messages.ts
+++ b/packages/cli/src/messages.ts
@@ -47,6 +47,9 @@ export let confirms = {
createEntrypoint: createPromptConfirmLoader(
"This glob does not match anything, would you like to create an entrypoint for it?"
),
+ deleteEntrypointPkgJson: createPromptConfirmLoader(
+ "The package.json file this entrypoint is unnecessary with type: module, would you like to delete it?"
+ ),
};
export let inputs = {
diff --git a/packages/cli/src/package.ts b/packages/cli/src/package.ts
index c2fac947..ecf06d11 100644
--- a/packages/cli/src/package.ts
+++ b/packages/cli/src/package.ts
@@ -1,6 +1,7 @@
// based on https://github.com/jamiebuilds/std-pkg but reading fewer things, adding setters and reading the file
import fastGlob from "fast-glob";
import * as fs from "fs-extra";
+import fsPromises from "fs/promises";
import nodePath from "path";
import { Item } from "./item";
import { BatchError, FatalError } from "./errors";
@@ -17,8 +18,10 @@ import {
setFieldInOrder,
DistFilenameStrategy,
MinimalEntrypoint,
+ parseImportConditionDefaultExportOption,
} from "./utils";
import normalizePath from "normalize-path";
+import { parseImportsField } from "./imports";
function getFieldsUsedInEntrypoints(
descriptors: { contents: string | undefined; filename: string }[]
@@ -72,6 +75,46 @@ function createEntrypoints(
return Promise.all(
descriptors.map(async ({ filename, contents, hasAccepted, sourceFile }) => {
+ if (pkg.isTypeModule()) {
+ if (contents !== undefined && pkg.path !== filename) {
+ if (!hasAccepted) {
+ const entrypointName = getEntrypointName(
+ pkg,
+ nodePath.dirname(filename)
+ );
+ let shouldDeleteEntrypointPkgJson = await confirms.deleteEntrypointPkgJson(
+ { name: entrypointName }
+ );
+ if (!shouldDeleteEntrypointPkgJson) {
+ throw new FatalError(
+ "this package has an entrypoint package.json but the typeModule feature is enabled, please remove the package.json",
+ pkg.name
+ );
+ }
+ }
+ await fs.remove(filename);
+ const contents = await fs.readdir(nodePath.dirname(filename));
+ if (
+ contents.length === 0 ||
+ (contents.length === 1 && contents[0] === "dist")
+ ) {
+ await fsPromises.rm(nodePath.dirname(filename), {
+ recursive: true,
+ });
+ }
+ }
+ return new Entrypoint(
+ filename,
+ getPlainEntrypointContent(
+ pkg,
+ fields,
+ nodePath.dirname(filename),
+ pkg.indent
+ ),
+ pkg,
+ sourceFile
+ );
+ }
if (contents === undefined) {
if (!hasAccepted) {
const entrypointName = getEntrypointName(
@@ -107,6 +150,7 @@ export type EnvCondition = "browser" | "worker";
export class Package extends Item<{
name?: JSONValue;
+ type?: JSONValue;
preconstruct: {
exports?: {
extra?: Record;
@@ -117,6 +161,7 @@ export class Package extends Item<{
exports?: Record;
dependencies?: Record;
peerDependencies?: Record;
+ imports?: JSONValue;
}> {
project!: Project;
entrypoints!: Array;
@@ -296,6 +341,12 @@ export class Package extends Item<{
});
}
+ isTypeModule() {
+ return (
+ this.project.experimentalFlags.typeModule && this.json.type === "module"
+ );
+ }
+
get name(): string {
if (typeof this.json.name !== "string") {
throw new FatalError(
@@ -321,71 +372,71 @@ export class Package extends Item<{
}
return "full";
}
-
- exportsFieldConfig(): CanonicalExportsFieldConfig {
- let defaultExportsFieldEnabled = false;
- if (this.project.directory !== this.directory) {
- const exportsFieldConfig = this.project.json.preconstruct.exports;
- if (exportsFieldConfig !== undefined) {
- if (typeof exportsFieldConfig === "boolean") {
- defaultExportsFieldEnabled = exportsFieldConfig;
- } else {
- throw new FatalError(
- 'the "preconstruct.exports" field must be a boolean at the project level',
- this.project.name
- );
- }
+ _parsedImportsGroups:
+ | Map
+ | false
+ | undefined;
+ exportsFieldConfig(): CanonicalExportsFieldConfig | undefined {
+ if (this._parsedImportsGroups === undefined) {
+ if (this.project.experimentalFlags.importsConditions) {
+ this._parsedImportsGroups = parseImportsField(this.json.imports);
+ } else {
+ this._parsedImportsGroups = false;
}
}
return parseExportsFieldConfig(
this.json.preconstruct.exports,
- defaultExportsFieldEnabled,
- this.name
+ this.project.directory !== this.directory
+ ? this.project.exportsFieldConfig()
+ : undefined,
+ this.name,
+ this._parsedImportsGroups
);
}
}
-type CanonicalExportsFieldConfig =
- | undefined
- | {
- envConditions: Set<"worker" | "browser">;
- extra: Record;
- };
+export type CanonicalExportsFieldConfig = {
+ extra: Record;
+ importConditionDefaultExport: "namespace" | "default";
+ conditions:
+ | { kind: "legacy"; envs: Set<"worker" | "browser"> }
+ | { kind: "imports"; groups: Map };
+};
function parseExportsFieldConfig(
- _config: unknown,
- defaultExportsFieldEnabled: boolean,
- name: string
-): CanonicalExportsFieldConfig {
- // the seperate assignment vs declaration is so that TypeScript's
- // control flow analysis does what we want
- let config;
- config = _config;
+ config: unknown,
+ defaultExportFieldConfig:
+ | undefined
+ | { importConditionDefaultExport: "namespace" | "default" },
+ name: string,
+ importsConditions: false | Map
+): CanonicalExportsFieldConfig | undefined {
if (
- (typeof config !== "boolean" &&
- typeof config !== "object" &&
- config !== undefined) ||
- config === null ||
- Array.isArray(config)
+ config === false ||
+ (config === undefined && defaultExportFieldConfig === undefined)
) {
- throw new FatalError(
- 'the "preconstruct.exports" field must be a boolean or an object at the package level',
- name
- );
- }
- if (config === undefined) {
- config = defaultExportsFieldEnabled;
- }
- if (config === false) {
return undefined;
}
const parsedConfig: CanonicalExportsFieldConfig = {
- envConditions: new Set(),
+ conditions:
+ importsConditions === false
+ ? { kind: "legacy", envs: new Set() }
+ : { kind: "imports", groups: importsConditions },
extra: {},
+ importConditionDefaultExport:
+ defaultExportFieldConfig?.importConditionDefaultExport ?? "namespace",
};
- if (config === true) {
+ if (config === true || config === undefined) {
return parsedConfig;
}
+
+ if (typeof config !== "object" || config === null || Array.isArray(config)) {
+ throw new FatalError(
+ 'the "preconstruct.exports" field must be a boolean or an object',
+ name
+ );
+ }
+
for (const [key, value] of Object.entries(config) as [string, unknown][]) {
if (key === "extra") {
if (
@@ -401,14 +452,20 @@ function parseExportsFieldConfig(
);
}
} else if (key === "envConditions") {
+ if (parsedConfig.conditions.kind !== "legacy") {
+ throw new FatalError(
+ 'the "preconstruct.exports.envConditions" field is not supported when the imports conditions feature is enabled',
+ name
+ );
+ }
if (
Array.isArray(value) &&
value.every(
(v): v is "worker" | "browser" => v === "worker" || v === "browser"
)
) {
- parsedConfig.envConditions = new Set(value);
- if (parsedConfig.envConditions.size !== value.length) {
+ parsedConfig.conditions.envs = new Set(value);
+ if (parsedConfig.conditions.envs.size !== value.length) {
throw new FatalError(
'the "preconstruct.exports.envConditions" field must not have duplicates',
name
@@ -420,6 +477,11 @@ function parseExportsFieldConfig(
name
);
}
+ } else if (key === "importConditionDefaultExport") {
+ parsedConfig.importConditionDefaultExport = parseImportConditionDefaultExportOption(
+ value,
+ name
+ );
} else {
throw new FatalError(
`the "preconstruct.exports" field contains an unknown key "${key}"`,
diff --git a/packages/cli/src/project.ts b/packages/cli/src/project.ts
index adcc5f58..e5fcfec5 100644
--- a/packages/cli/src/project.ts
+++ b/packages/cli/src/project.ts
@@ -6,7 +6,7 @@ import { Item } from "./item";
import { Package } from "./package";
import { validateIncludedFiles } from "./validate-included-files";
import { FatalError } from "./errors";
-import { JSONValue } from "./utils";
+import { JSONValue, parseImportConditionDefaultExportOption } from "./utils";
const allSettled = (promises: Promise[]) =>
Promise.all(
@@ -29,15 +29,33 @@ export class Project extends Item<{
___experimentalFlags_WILL_CHANGE_IN_PATCH: {
logCompiledFiles?: JSONValue;
keepDynamicImportAsDynamicImportInCommonJS?: JSONValue;
+ importsConditions?: JSONValue;
+ distInRoot?: JSONValue;
+ typeModule?: JSONValue;
};
};
}> {
get experimentalFlags() {
let config =
this.json.preconstruct.___experimentalFlags_WILL_CHANGE_IN_PATCH || {};
+ if (config.distInRoot && !config.importsConditions) {
+ throw new FatalError(
+ "distInRoot is not supported without importsConditions",
+ this.name
+ );
+ }
+ if (config.typeModule && !config.distInRoot) {
+ throw new FatalError(
+ "typeModule is not supported without distInRoot",
+ this.name
+ );
+ }
return {
logCompiledFiles: !!config.logCompiledFiles,
keepDynamicImportAsDynamicImportInCommonJS: !!config.keepDynamicImportAsDynamicImportInCommonJS,
+ importsConditions: !!config.importsConditions,
+ distInRoot: !!config.distInRoot,
+ typeModule: !!config.typeModule,
};
}
get configPackages(): Array {
@@ -138,4 +156,47 @@ export class Project extends Item<{
return packages;
}
+
+ exportsFieldConfig():
+ | undefined
+ | { importConditionDefaultExport: "namespace" | "default" } {
+ const exportsFieldConfig = this.json.preconstruct.exports;
+ if (exportsFieldConfig === false || exportsFieldConfig === undefined) {
+ return undefined;
+ }
+ let importConditionDefaultExport: "namespace" | "default" = "namespace";
+ if (exportsFieldConfig === true) {
+ return { importConditionDefaultExport };
+ }
+ if (
+ typeof exportsFieldConfig !== "object" ||
+ exportsFieldConfig === null ||
+ Array.isArray(exportsFieldConfig)
+ ) {
+ throw new FatalError(
+ 'the "preconstruct.exports" field must be a boolean or an object',
+ this.name
+ );
+ }
+ for (const [key, val] of Object.entries(exportsFieldConfig)) {
+ if (key === "importConditionDefaultExport") {
+ importConditionDefaultExport = parseImportConditionDefaultExportOption(
+ val,
+ this.name
+ );
+ continue;
+ }
+ if (key === "extra" || key === "envConditions") {
+ throw new FatalError(
+ `the "preconstruct.exports.${key}" field can only be configured at the package level`,
+ this.name
+ );
+ }
+ throw new FatalError(
+ `the "preconstruct.exports" field contains an unknown key "${key}"`,
+ this.name
+ );
+ }
+ return { importConditionDefaultExport };
+ }
}
diff --git a/packages/cli/src/rollup-plugins/directives.test.ts b/packages/cli/src/rollup-plugins/directives.test.ts
new file mode 100644
index 00000000..6582720a
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/directives.test.ts
@@ -0,0 +1,46 @@
+import { Directive, getModuleDirectives } from "./directives";
+
+function remove(str: string, directive: Directive) {
+ return str.slice(0, directive.start) + str.slice(directive.end);
+}
+
+test("basic", () => {
+ const input = `"use strict";blah`;
+ const result = getModuleDirectives(input);
+ expect(result).toEqual([{ value: "use strict", start: 0, end: 13 }]);
+ expect(remove(input, result[0]).toString()).toEqual("blah");
+});
+
+test("without semi", () => {
+ const input = `"use strict"\nblah`;
+ const result = getModuleDirectives(input);
+ expect(result).toEqual([{ value: "use strict", start: 0, end: 12 }]);
+ expect(remove(input, result[0]).toString()).toEqual("\nblah");
+});
+
+test("escaped directive then real directive", () => {
+ const input = `'use \\'client';'use client';blah`;
+ const result = getModuleDirectives(input);
+ expect(result).toEqual([
+ { end: 15, start: 0, value: "use \\'client" },
+ { end: 28, start: 15, value: "use client" },
+ ]);
+ expect(remove(input, result[0]).toString()).toEqual("'use client';blah");
+ expect(remove(input, result[1]).toString()).toEqual("'use \\'client';blah");
+});
+
+test("block comments", () => {
+ const input = `/** @jsx jsx\n */\n'use client';blah`;
+ const result = getModuleDirectives(input);
+ expect(result).toEqual([{ value: "use client", start: 17, end: 30 }]);
+ expect(remove(input, result[0]).toString()).toEqual(
+ `/** @jsx jsx\n */\nblah`
+ );
+});
+
+test("line comments", () => {
+ const input = `// something\n'use client';blah`;
+ const result = getModuleDirectives(input);
+ expect(result).toEqual([{ value: "use client", start: 13, end: 26 }]);
+ expect(remove(input, result[0]).toString()).toEqual(`// something\nblah`);
+});
diff --git a/packages/cli/src/rollup-plugins/directives.ts b/packages/cli/src/rollup-plugins/directives.ts
new file mode 100644
index 00000000..1356e625
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/directives.ts
@@ -0,0 +1,66 @@
+const whitespace = /\s/;
+
+export type Directive = {
+ value: string;
+ start: number;
+ end: number;
+};
+
+export function getModuleDirectives(source: string): Directive[] {
+ let lastDirectiveExpectingSemi: Directive | undefined;
+ const directives: Directive[] = [];
+ outer: for (let i = 0; i < source.length; i++) {
+ const char = source[i];
+ if (whitespace.test(char)) {
+ continue;
+ }
+ if (char === "/") {
+ i++;
+ if (source[i] === "/") {
+ while (i < source.length && source[i] !== "\r" && source[i] !== "\n") {
+ i++;
+ }
+ continue;
+ }
+ if (source[i] === "*") {
+ while (
+ i < source.length &&
+ (source[i] !== "*" || source[i + 1] !== "/")
+ ) {
+ i++;
+ }
+ i += 1;
+ continue;
+ }
+ break;
+ }
+ if (char === ";") {
+ if (lastDirectiveExpectingSemi !== undefined) {
+ lastDirectiveExpectingSemi.end = i + 1;
+ lastDirectiveExpectingSemi = undefined;
+ continue;
+ }
+ break;
+ }
+ if (char === '"' || char === "'") {
+ let start = i;
+ i++;
+ while (source[i] !== char) {
+ if (i >= source.length) break outer;
+
+ if (source[i] === "\\") {
+ i += 2;
+ continue;
+ }
+ i++;
+ }
+ const value = source.slice(start + 1, i);
+ const directive = { value, start, end: i + 1 };
+ directives.push(directive);
+ lastDirectiveExpectingSemi = directive;
+ continue;
+ }
+ break;
+ }
+ return directives;
+}
diff --git a/packages/cli/src/rollup-plugins/flow-and-prod-dev-entry.ts b/packages/cli/src/rollup-plugins/flow-and-prod-dev-entry.ts
deleted file mode 100644
index e0300976..00000000
--- a/packages/cli/src/rollup-plugins/flow-and-prod-dev-entry.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-import path from "path";
-import { Plugin } from "rollup";
-import { getDevPath, getProdPath } from "../build/utils";
-import { flowTemplate } from "../utils";
-import { Package } from "../package";
-import { FatalError } from "../errors";
-
-import * as fs from "fs-extra";
-import normalizePath from "normalize-path";
-
-const allowedExtensionRegex = /\.([tj]sx?|json)$/;
-
-export default function flowAndNodeDevProdEntry(
- pkg: Package,
- warnings: FatalError[]
-): Plugin {
- return {
- name: "flow-and-prod-dev-entry",
- load(id) {
- if (id === "could-not-resolve") {
- return "";
- }
- return null;
- },
- async resolveId(source, importer) {
- let resolved = await this.resolve(source, importer, {
- skipSelf: true,
- });
- if (resolved === null) {
- if (!source.startsWith(".")) {
- warnings.push(
- new FatalError(
- `"${source}" is imported ${
- importer
- ? `by "${normalizePath(
- path.relative(pkg.directory, importer!)
- )}"`
- : ""
- } but the package is not specified in dependencies or peerDependencies`,
- pkg.name
- )
- );
- return "could-not-resolve";
- }
- throw new FatalError(
- `Could not resolve ${source} ` +
- (importer ? `from ${path.relative(pkg.directory, importer)}` : ""),
- pkg.name
- );
- }
-
- if (source.startsWith("\0") || resolved.id.startsWith("\0")) {
- return resolved;
- }
- if (resolved.id.startsWith(pkg.directory)) {
- if (!resolved.external && !allowedExtensionRegex.test(resolved.id)) {
- warnings.push(
- new FatalError(
- `only .ts, .tsx, .js, .jsx, and .json files can be imported but "${source}" is imported in ${
- importer
- ? `"${normalizePath(path.relative(pkg.directory, importer))}"`
- : "a module"
- }`,
- pkg.name
- )
- );
- return "could-not-resolve";
- }
-
- return resolved;
- }
- warnings.push(
- new FatalError(
- `all relative imports in a package should only import modules inside of their package directory but ${
- importer
- ? `"${normalizePath(path.relative(pkg.directory, importer))}"`
- : "a module"
- } is importing "${source}"`,
- pkg.name
- )
- );
- return "could-not-resolve";
- },
- async generateBundle(opts, bundle) {
- for (const n in bundle) {
- const file = bundle[n];
- if (
- file.type === "asset" ||
- !(file.type === "chunk" && file.isEntry) ||
- file.facadeModuleId == null
- ) {
- continue;
- }
-
- let mainFieldPath = file.fileName.replace(/\.prod\.js$/, ".js");
- let relativeToSource = path.relative(
- path.dirname(path.join(opts.dir!, file.fileName)),
- file.facadeModuleId
- );
-
- let isEntrySourceTypeScript = /\.tsx?$/.test(file.facadeModuleId);
-
- if (!isEntrySourceTypeScript) {
- let flowMode: false | "all" | "named" = false;
- let source = await fs.readFile(file.facadeModuleId, "utf8");
- if (source.includes("@flow")) {
- flowMode = file.exports.includes("default") ? "all" : "named";
- }
-
- if (flowMode !== false) {
- let flowFileSource = flowTemplate(
- flowMode === "all",
- normalizePath(relativeToSource)
- );
- let flowFileName = mainFieldPath + ".flow";
- this.emitFile({
- type: "asset",
- fileName: flowFileName,
- source: flowFileSource,
- });
- }
- }
-
- let mainEntrySource = `'use strict';
-
-if (${
- // tricking static analysis is fun...
- "process" + ".env.NODE_ENV"
- } === "production") {
- module.exports = require("./${path.basename(getProdPath(mainFieldPath))}");
-} else {
- module.exports = require("./${path.basename(getDevPath(mainFieldPath))}");
-}\n`;
- this.emitFile({
- type: "asset",
- fileName: mainFieldPath,
- source: mainEntrySource,
- });
- }
- },
- };
-}
diff --git a/packages/cli/src/rollup-plugins/flow.ts b/packages/cli/src/rollup-plugins/flow.ts
new file mode 100644
index 00000000..d14a42bd
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/flow.ts
@@ -0,0 +1,53 @@
+import path from "path";
+import { Plugin } from "rollup";
+import { flowTemplate } from "../utils";
+
+import * as fs from "fs-extra";
+import normalizePath from "normalize-path";
+
+export default function flow(): Plugin {
+ return {
+ name: "flow",
+ async generateBundle(opts, bundle) {
+ for (const n in bundle) {
+ const file = bundle[n];
+ if (
+ file.type === "asset" ||
+ !(file.type === "chunk" && file.isEntry) ||
+ file.facadeModuleId == null
+ ) {
+ continue;
+ }
+
+ let mainFieldPath = file.fileName.replace(/(?:\.prod)?\.js$/, ".js");
+ let relativeToSource = path.relative(
+ path.dirname(path.join(opts.dir!, file.fileName)),
+ file.facadeModuleId
+ );
+
+ let isEntrySourceTypeScript = /\.tsx?$/.test(file.facadeModuleId);
+
+ if (!isEntrySourceTypeScript) {
+ let flowMode: false | "all" | "named" = false;
+ let source = await fs.readFile(file.facadeModuleId, "utf8");
+ if (source.includes("@flow")) {
+ flowMode = file.exports.includes("default") ? "all" : "named";
+ }
+
+ if (flowMode !== false) {
+ let flowFileSource = flowTemplate(
+ flowMode === "all",
+ normalizePath(relativeToSource)
+ );
+ let flowFileName = mainFieldPath + ".flow";
+ this.emitFile({
+ type: "asset",
+ fileName: flowFileName,
+ source: flowFileSource,
+ });
+ }
+ }
+ }
+ },
+ };
+}
diff --git a/packages/cli/src/rollup-plugins/inline-process-env-node-env.ts b/packages/cli/src/rollup-plugins/inline-process-env-node-env.ts
index 00c528c4..811de945 100644
--- a/packages/cli/src/rollup-plugins/inline-process-env-node-env.ts
+++ b/packages/cli/src/rollup-plugins/inline-process-env-node-env.ts
@@ -1,4 +1,4 @@
-import { Plugin, SourceDescription } from "rollup";
+import { Plugin, SourceDescription, SourceMapInput } from "rollup";
import { walk } from "estree-walker";
import isReference from "is-reference";
import MagicString from "magic-string";
@@ -11,7 +11,7 @@ export function inlineProcessEnvNodeEnv({
return {
name: "inline-process-env-node-env-production",
transform(code, id) {
- if (code.includes("process.env" + ".NODE_ENV")) {
+ if (code.includes("process.env.NODE_ENV")) {
let magicString = new MagicString(code);
const ast = (() => {
const babelMeta = this.getModuleInfo(id)!.meta.babel;
@@ -55,7 +55,9 @@ export function inlineProcessEnvNodeEnv({
});
let output: SourceDescription = { code: magicString.toString(), ast };
if (sourceMap) {
- output.map = magicString.generateMap({ hires: true });
+ output.map = magicString.generateMap({
+ hires: true,
+ }) as SourceMapInput;
}
return output;
}
diff --git a/packages/cli/src/rollup-plugins/mjs-proxy.ts b/packages/cli/src/rollup-plugins/mjs-proxy.ts
new file mode 100644
index 00000000..5345c32e
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/mjs-proxy.ts
@@ -0,0 +1,45 @@
+import normalizePath from "normalize-path";
+import path from "path";
+import { Plugin } from "rollup";
+import { Package } from "../package";
+import {
+ getJsDefaultForMjsFilepath,
+ jsDefaultForMjsTemplate,
+ mjsTemplate,
+} from "../utils";
+
+export default function mjsProxyPlugin(pkg: Package): Plugin {
+ const entrypointSources = new Set(pkg.entrypoints.map((e) => e.source));
+ return {
+ name: "mjs-proxy",
+ async generateBundle(opts, bundle) {
+ if (opts.format !== "cjs") return;
+ for (const n in bundle) {
+ const file = bundle[n];
+ if (
+ file.type === "asset" ||
+ !file.isEntry ||
+ file.facadeModuleId == null ||
+ !entrypointSources.has(normalizePath(file.facadeModuleId))
+ ) {
+ continue;
+ }
+
+ let mjsPath = file.fileName.replace(/(?:\.prod)?\.js$/, ".mjs");
+ const cjsRelativePath = `./${path.basename(mjsPath, ".mjs")}.js`;
+ this.emitFile({
+ type: "asset",
+ fileName: mjsPath,
+ source: mjsTemplate(file.exports, cjsRelativePath, mjsPath),
+ });
+ if (file.exports.includes("default")) {
+ this.emitFile({
+ type: "asset",
+ fileName: getJsDefaultForMjsFilepath(mjsPath),
+ source: jsDefaultForMjsTemplate(cjsRelativePath),
+ });
+ }
+ }
+ },
+ };
+}
diff --git a/packages/cli/src/rollup-plugins/prod-dev-entry.ts b/packages/cli/src/rollup-plugins/prod-dev-entry.ts
new file mode 100644
index 00000000..1479298a
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/prod-dev-entry.ts
@@ -0,0 +1,36 @@
+import path from "path";
+import { Plugin } from "rollup";
+import { getDevPath, getProdPath } from "../build/utils";
+
+export default function nodeDevProdEntry(): Plugin {
+ return {
+ name: "prod-dev-entry",
+ async generateBundle(opts, bundle) {
+ for (const n in bundle) {
+ const file = bundle[n];
+ if (
+ file.type === "asset" ||
+ !(file.type === "chunk" && file.isEntry) ||
+ file.facadeModuleId == null
+ ) {
+ continue;
+ }
+
+ let mainFieldPath = file.fileName.replace(/\.prod\.js$/, ".js");
+
+ let mainEntrySource = `'use strict';
+
+if (process.env.NODE_ENV === "production") {
+ module.exports = require("./${path.basename(getProdPath(mainFieldPath))}");
+} else {
+ module.exports = require("./${path.basename(getDevPath(mainFieldPath))}");
+}\n`;
+ this.emitFile({
+ type: "asset",
+ fileName: mainFieldPath,
+ source: mainEntrySource,
+ });
+ }
+ },
+ };
+}
diff --git a/packages/cli/src/rollup-plugins/resolve.ts b/packages/cli/src/rollup-plugins/resolve.ts
new file mode 100644
index 00000000..5c977c9e
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/resolve.ts
@@ -0,0 +1,71 @@
+import { Package } from "../package";
+import { FatalError } from "../errors";
+import { Plugin } from "rollup";
+import normalizePath from "normalize-path";
+import path from "path";
+
+const allowedExtensionRegex = /\.([tj]sx?|json|svg)$/;
+
+export function resolveErrorsPlugin(
+ pkg: Package,
+ warnings: Set,
+ isUmd: boolean
+): Plugin {
+ return {
+ name: "resolve-errors",
+ async resolveId(source, importer) {
+ let resolved = await this.resolve(source, importer, {
+ skipSelf: true,
+ });
+ if (resolved === null) {
+ if (!source.startsWith(".")) {
+ warnings.add(
+ `"${source}" is imported ${
+ importer
+ ? `by "${normalizePath(
+ path.relative(pkg.directory, importer!)
+ )}"`
+ : ""
+ } but the package is not specified in dependencies or peerDependencies`
+ );
+ return false;
+ }
+ throw new FatalError(
+ `Could not resolve ${source} ` +
+ (importer ? `from ${path.relative(pkg.directory, importer)}` : ""),
+ pkg.name
+ );
+ }
+
+ if (source.startsWith("\0") || resolved.id.startsWith("\0")) {
+ return resolved;
+ }
+ if (resolved.id.startsWith(pkg.directory)) {
+ if (!resolved.external && !allowedExtensionRegex.test(resolved.id)) {
+ warnings.add(
+ `only .ts, .tsx, .js, .jsx, and .json files can be imported but "${source}" is imported in ${
+ importer
+ ? `"${normalizePath(path.relative(pkg.directory, importer))}"`
+ : "a module"
+ }`
+ );
+ return false;
+ }
+
+ return resolved;
+ }
+ if (isUmd || resolved.id?.startsWith("__USE_CLIENT_IMPORT__")) {
+ return resolved;
+ }
+ warnings.add(
+ `all relative imports in a package should only import modules inside of their package directory but ${
+ importer
+ ? `"${normalizePath(path.relative(pkg.directory, importer))}"`
+ : "a module"
+ } is importing "${source}"`
+ );
+
+ return false;
+ },
+ };
+}
diff --git a/packages/cli/src/rollup-plugins/server-components.ts b/packages/cli/src/rollup-plugins/server-components.ts
new file mode 100644
index 00000000..c9365b2a
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/server-components.ts
@@ -0,0 +1,100 @@
+import { Plugin, SourceMapInput } from "rollup";
+import MagicString from "magic-string";
+import normalizePath from "normalize-path";
+import path from "path";
+import { getModuleDirectives } from "./directives";
+
+export function serverComponentsPlugin({
+ sourceMap,
+}: {
+ sourceMap: boolean;
+}): Plugin {
+ return {
+ name: "server-components",
+ async resolveId(source, importer, opts) {
+ const resolved = await this.resolve(source, importer, {
+ ...opts,
+ skipSelf: true,
+ });
+ if (resolved === null || resolved.external) {
+ return resolved;
+ }
+ const loaded = await this.load(resolved);
+ if (
+ typeof loaded.meta.directivePreservedFile?.referenceId === "string" &&
+ importer !== undefined
+ ) {
+ // this name is appended for Rollup naming chunks/variables in the output
+ const name = path
+ .basename(resolved.id)
+ .replace(/\.[tj]sx?$/, "")
+ .replace(/[^\w]/g, "_");
+ const id = `__USE_CLIENT_IMPORT__${loaded.meta.directivePreservedFile.referenceId}__USE_CLIENT_IMPORT__/${name}`;
+
+ return {
+ id,
+ external: true,
+ };
+ }
+ return resolved;
+ },
+ transform(code, id) {
+ if (id.startsWith("\0")) return null;
+ const directives = getModuleDirectives(code);
+ const directive = directives.find(
+ (d) => d.value === "use client" || d.value === "use server"
+ );
+ if (!directive) return null;
+ const magicString = new MagicString(code);
+ const referenceId = this.emitFile({
+ type: "chunk",
+ id,
+ preserveSignature: "allow-extension",
+ });
+ magicString.remove(directive.start, directive.end);
+ return {
+ code: magicString.toString(),
+ map: sourceMap
+ ? (magicString.generateMap({ hires: true }) as SourceMapInput)
+ : undefined,
+ meta: {
+ directivePreservedFile: { referenceId, directive: directive.value },
+ },
+ };
+ },
+ renderChunk(code, chunk) {
+ const magicString = new MagicString(code);
+ if (chunk.facadeModuleId !== null) {
+ const moduleInfo = this.getModuleInfo(chunk.facadeModuleId);
+ if (moduleInfo?.meta.directivePreservedFile) {
+ const directive: "use client" | "use server" =
+ moduleInfo?.meta.directivePreservedFile.directive;
+ magicString.prepend(`'${directive}';\n`);
+ }
+ }
+
+ magicString.replace(
+ /__USE_CLIENT_IMPORT__(\w+?)__USE_CLIENT_IMPORT__\/\w+/g,
+ (_, referenceId) => {
+ const relative = normalizePath(
+ path.relative(
+ path.dirname(chunk.fileName),
+ this.getFileName(referenceId)
+ )
+ );
+ return relative.startsWith("../") ? relative : `./${relative}`;
+ }
+ );
+ const stringified = magicString.toString();
+ if (stringified === code) {
+ return null;
+ }
+ return {
+ code: magicString.toString(),
+ map: sourceMap
+ ? (magicString.generateMap({ hires: true }) as SourceMapInput)
+ : undefined,
+ };
+ },
+ };
+}
diff --git a/packages/cli/src/rollup-plugins/typescript-declarations/common.ts b/packages/cli/src/rollup-plugins/typescript-declarations/common.ts
index 2cb3bf93..fa5eaf88 100644
--- a/packages/cli/src/rollup-plugins/typescript-declarations/common.ts
+++ b/packages/cli/src/rollup-plugins/typescript-declarations/common.ts
@@ -4,6 +4,8 @@ import { FatalError } from "../../errors";
import * as fs from "fs-extra";
import path from "path";
import normalizePath from "normalize-path";
+import { getModuleSpecifier } from "./get-module-specifier";
+import MagicString from "magic-string";
export type DeclarationFile = {
name: string;
@@ -73,11 +75,10 @@ function weakMemoize(
}
function memoize(fn: (arg: string) => V): (arg: string) => V {
- const cache: { [key: string]: V } = {};
-
+ const cache = new Map();
return (arg: string) => {
- if (cache[arg] === undefined) cache[arg] = fn(arg);
- return cache[arg];
+ if (!cache.has(arg)) cache.set(arg, fn(arg));
+ return cache.get(arg)!;
};
}
@@ -131,35 +132,62 @@ export async function getProgram(dirname: string, pkgName: string, ts: TS) {
: memoizedGetProgram(ts)(configFileName);
}
-export const getDeclarationsForFile = async (
+const dtsFileRegex = /\.d\.[cm]?ts$/;
+
+export function getDeclarationsForFile(
filename: string,
typescript: TS,
program: import("typescript").Program,
normalizedPkgDir: string,
projectDir: string,
- diagnosticsHost: import("typescript").FormatDiagnosticsHost
-): Promise => {
- if (filename.endsWith(".d.ts")) {
+ diagnosticsHost: import("typescript").FormatDiagnosticsHost,
+ /** This will only be called once per unique module specifier in a file */
+ visitModuleSpecifier?: (moduleSpecifier: string) => string
+): EmittedDeclarationOutput {
+ const cachedVisitModuleSpecifier = memoize(
+ visitModuleSpecifier ?? ((x) => x)
+ );
+ const sourceFile = program.getSourceFile(
+ typescript.sys.useCaseSensitiveFileNames ? filename : filename.toLowerCase()
+ );
+ if (!sourceFile) {
+ throw new Error(
+ `Could not find source file at ${filename} in TypeScript declaration generation, this is likely a bug in Preconstruct`
+ );
+ }
+ if (dtsFileRegex.test(filename)) {
+ let content = sourceFile.text;
+ if (visitModuleSpecifier) {
+ const magicString = new MagicString(content);
+ const visitor = (node: import("typescript").Node): void => {
+ const moduleSpecifier = getModuleSpecifier(node, typescript);
+ if (moduleSpecifier) {
+ const replaced = cachedVisitModuleSpecifier(moduleSpecifier.text);
+ if (replaced !== moduleSpecifier.text) {
+ magicString.update(
+ moduleSpecifier.getStart(sourceFile, false),
+ moduleSpecifier.getEnd(),
+ JSON.stringify(replaced)
+ );
+ }
+ }
+ typescript.forEachChild(node, visitor);
+ };
+ typescript.forEachChild(sourceFile, visitor);
+ content = magicString.toString();
+ }
return {
types: {
name: filename.replace(
normalizedPkgDir,
normalizePath(path.join(normalizedPkgDir, "dist", "declarations"))
),
- content: await fs.readFile(filename, "utf8"),
+ content,
},
filename,
};
}
- const sourceFile = program.getSourceFile(
- typescript.sys.useCaseSensitiveFileNames ? filename : filename.toLowerCase()
- );
- if (!sourceFile) {
- throw new Error(
- `Could not find source file at ${filename} in TypeScript declaration generation, this is likely a bug in Preconstruct`
- );
- }
const emitted: Partial = {};
const otherEmitted: { name: string; text: string }[] = [];
const { diagnostics } = program.emit(
@@ -186,7 +214,43 @@ export const getDeclarationsForFile = async (
}
},
undefined,
- true
+ true,
+ {
+ afterDeclarations: [
+ (context) => (
+ node
+ ): import("typescript").Bundle | import("typescript").SourceFile => {
+ if (!visitModuleSpecifier) {
+ return node;
+ }
+
+ const replacedNodes = new Map<
+ import("typescript").StringLiteral,
+ import("typescript").StringLiteral
+ >();
+
+ const visitor = (
+ node: import("typescript").Node
+ ): import("typescript").Node => {
+ if (typescript.isStringLiteral(node) && replacedNodes.has(node)) {
+ return replacedNodes.get(node)!;
+ }
+ const literal = getModuleSpecifier(node, typescript);
+ if (literal) {
+ const replaced = cachedVisitModuleSpecifier(literal.text);
+ if (replaced !== literal.text) {
+ replacedNodes.set(
+ literal,
+ typescript.factory.createStringLiteral(replaced)
+ );
+ }
+ }
+ return typescript.visitEachChild(node, visitor, context);
+ };
+ return typescript.visitEachChild(node, visitor, context);
+ },
+ ],
+ }
);
if (!emitted.types || diagnostics.length) {
@@ -207,7 +271,7 @@ export const getDeclarationsForFile = async (
);
}
return { types: emitted.types, map: emitted.map, filename };
-};
+}
export function overwriteDeclarationMapSourceRoot(
content: string,
diff --git a/packages/cli/src/rollup-plugins/typescript-declarations/get-declarations-with-imported-module-specifiers-replacing.ts b/packages/cli/src/rollup-plugins/typescript-declarations/get-declarations-with-imported-module-specifiers-replacing.ts
new file mode 100644
index 00000000..a02ed943
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/typescript-declarations/get-declarations-with-imported-module-specifiers-replacing.ts
@@ -0,0 +1,73 @@
+import normalizePath from "normalize-path";
+import path from "path";
+import {
+ EmittedDeclarationOutput,
+ getDeclarationsForFile,
+ getDiagnosticsHost,
+ TS,
+} from "./common";
+import { Program, ResolvedModuleFull } from "typescript";
+
+function replaceExt(filename: string) {
+ return filename.replace(/(\.d)?\.([cm]?ts|tsx)$/, (match, p1, p2) => {
+ if (p2 === ".cts") return ".cjs";
+ if (p2 === ".mts") return ".mjs";
+ return ".js";
+ });
+}
+
+export function getDeclarationsWithImportedModuleSpecifiersReplacing(
+ typescript: TS,
+ program: Program,
+ normalizedPkgDir: string,
+ projectDir: string,
+ resolveModuleName: (
+ moduleName: string,
+ containingFile: string
+ ) => ResolvedModuleFull | undefined,
+ resolvedEntrypointSources: string[]
+): EmittedDeclarationOutput[] {
+ const depQueue = new Set(resolvedEntrypointSources);
+ const diagnosticsHost = getDiagnosticsHost(typescript, projectDir);
+ const normalizedPkgDirNodeModules = normalizePath(
+ path.join(normalizedPkgDir, "node_modules")
+ );
+ const emitted: EmittedDeclarationOutput[] = [];
+
+ for (const filename of depQueue) {
+ const handleImport = (imported: string): string => {
+ const resolvedModule = resolveModuleName(imported, filename);
+ if (
+ !resolvedModule ||
+ !resolvedModule.resolvedFileName.startsWith(normalizedPkgDir) ||
+ resolvedModule.resolvedFileName.startsWith(normalizedPkgDirNodeModules)
+ ) {
+ return imported;
+ }
+
+ depQueue.add(resolvedModule.resolvedFileName);
+
+ let forImport = replaceExt(
+ normalizePath(
+ path.relative(path.dirname(filename), resolvedModule.resolvedFileName)
+ )
+ );
+ if (!forImport.startsWith("../")) {
+ forImport = `./${forImport}`;
+ }
+ return forImport;
+ };
+ const output = getDeclarationsForFile(
+ filename,
+ typescript,
+ program,
+ normalizedPkgDir,
+ projectDir,
+ diagnosticsHost,
+ handleImport
+ );
+
+ emitted.push(output);
+ }
+ return emitted;
+}
diff --git a/packages/cli/src/rollup-plugins/typescript-declarations/get-declarations.ts b/packages/cli/src/rollup-plugins/typescript-declarations/get-declarations.ts
deleted file mode 100644
index 228b9f03..00000000
--- a/packages/cli/src/rollup-plugins/typescript-declarations/get-declarations.ts
+++ /dev/null
@@ -1,110 +0,0 @@
-import path from "path";
-import { FatalError } from "../../errors";
-import normalizePath from "normalize-path";
-import {
- EmittedDeclarationOutput,
- getDeclarationsForFile,
- getDiagnosticsHost,
- getProgram,
- loadTypeScript,
-} from "./common";
-
-export async function getDeclarations(
- dirname: string,
- pkgName: string,
- projectDir: string,
- entrypoints: string[]
-): Promise<{
- entrypointSourceToTypeScriptSource: ReadonlyMap;
- declarations: EmittedDeclarationOutput[];
-}> {
- const typescript = loadTypeScript(dirname, projectDir, pkgName);
-
- const { program, options } = await getProgram(dirname, pkgName, typescript);
- let moduleResolutionCache = typescript.createModuleResolutionCache(
- dirname,
- (x) => x,
- options
- );
- let normalizedDirname = normalizePath(dirname);
-
- // these will be distinct when using .d.ts files
- const entrypointSourceToTypeScriptSource: ReadonlyMap<
- string,
- string
- > = new Map(
- entrypoints.map((x) => {
- let { resolvedModule } = typescript.resolveModuleName(
- path.join(path.dirname(x), path.basename(x, path.extname(x))),
- dirname,
- options,
- typescript.sys,
- moduleResolutionCache
- );
- if (!resolvedModule) {
- throw new Error(
- "This is an internal error, please open an issue if you see this: ts could not resolve module"
- );
- }
- return [normalizePath(x), resolvedModule.resolvedFileName];
- })
- );
- let allDeps = new Set(entrypointSourceToTypeScriptSource.values());
-
- function searchDeps(deps: Set) {
- for (let dep of deps) {
- let sourceFile = program!.getSourceFile(dep);
- if (!sourceFile) {
- throw new FatalError(
- `Could not generate type declarations because ${dep} is not in a TypeScript project. Make sure this file is included in your tsconfig.`,
- pkgName
- );
- }
- let internalDeps = new Set();
- for (let { text } of (sourceFile as any).imports) {
- let { resolvedModule } = typescript.resolveModuleName(
- text,
- dep,
- options,
- typescript.sys,
- moduleResolutionCache
- );
- if (resolvedModule) {
- if (
- !allDeps.has(resolvedModule.resolvedFileName) &&
- !resolvedModule.isExternalLibraryImport &&
- resolvedModule.resolvedFileName.includes(normalizedDirname) &&
- // you can import a .json file if you have resolveJsonModule: true in your tsconfig
- // but you can't generate declarations for it(which seems fine and good i think?)
- // and just ignoring imports to them seems fine because from what i can tell
- // typescript inlines the types for them if the json file import is used in the files exports
- !resolvedModule.resolvedFileName.endsWith(".json")
- ) {
- internalDeps.add(resolvedModule.resolvedFileName);
- allDeps.add(resolvedModule.resolvedFileName);
- }
- }
- }
- searchDeps(internalDeps);
- }
- }
- searchDeps(new Set(entrypointSourceToTypeScriptSource.values()));
-
- const diagnosticsHost = getDiagnosticsHost(typescript, projectDir);
-
- return {
- entrypointSourceToTypeScriptSource,
- declarations: await Promise.all(
- [...allDeps].map((filename) => {
- return getDeclarationsForFile(
- filename,
- typescript,
- program,
- normalizedDirname,
- projectDir,
- diagnosticsHost
- );
- })
- ),
- };
-}
diff --git a/packages/cli/src/rollup-plugins/typescript-declarations/get-module-specifier.ts b/packages/cli/src/rollup-plugins/typescript-declarations/get-module-specifier.ts
new file mode 100644
index 00000000..be39eb3e
--- /dev/null
+++ b/packages/cli/src/rollup-plugins/typescript-declarations/get-module-specifier.ts
@@ -0,0 +1,29 @@
+export function getModuleSpecifier(
+ node: import("typescript").Node,
+ typescript: typeof import("typescript")
+) {
+ // import/export { x } from "x"
+ const isImportDeclaration = typescript.isImportDeclaration(node);
+ if (
+ (isImportDeclaration || typescript.isExportDeclaration(node)) &&
+ node.moduleSpecifier !== undefined &&
+ typescript.isStringLiteral(node.moduleSpecifier)
+ ) {
+ return node.moduleSpecifier;
+ }
+ // type x = import('a').Blah
+ if (
+ typescript.isImportTypeNode(node) &&
+ typescript.isLiteralTypeNode(node.argument) &&
+ typescript.isStringLiteral(node.argument.literal)
+ ) {
+ return node.argument.literal;
+ }
+ // import x = require("x")
+ if (
+ typescript.isExternalModuleReference(node) &&
+ typescript.isStringLiteral(node.expression)
+ ) {
+ return node.expression;
+ }
+}
diff --git a/packages/cli/src/rollup-plugins/typescript-declarations/index.ts b/packages/cli/src/rollup-plugins/typescript-declarations/index.ts
index e13a341b..83deb03d 100644
--- a/packages/cli/src/rollup-plugins/typescript-declarations/index.ts
+++ b/packages/cli/src/rollup-plugins/typescript-declarations/index.ts
@@ -3,10 +3,19 @@ import { FatalError } from "../../errors";
import { Plugin } from "rollup";
import fs from "fs-extra";
import { Package } from "../../package";
-import { getDeclarations } from "./get-declarations";
-import { tsTemplate } from "../../utils";
+import {
+ dmtsTemplate,
+ dtsTemplate,
+ getDtsDefaultForMtsFilepath,
+ dtsDefaultForDmtsTemplate,
+} from "../../utils";
import normalizePath from "normalize-path";
-import { overwriteDeclarationMapSourceRoot } from "./common";
+import {
+ getProgram,
+ loadTypeScript,
+ overwriteDeclarationMapSourceRoot,
+} from "./common";
+import { getDeclarationsWithImportedModuleSpecifiersReplacing } from "./get-declarations-with-imported-module-specifiers-replacing";
export let isTsPath = (source: string) => /\.tsx?/.test(source);
@@ -14,6 +23,7 @@ export default function typescriptDeclarations(pkg: Package): Plugin {
return {
name: "typescript-declarations",
async generateBundle(opts, bundle) {
+ if (opts.format !== "cjs" && !pkg.isTypeModule()) return;
// we want do a naive check first and go into
// so that we can avoid some extra fs operations if there is say some .ts entrypoints
// and some .js entrypoints with a .d.ts
@@ -38,14 +48,63 @@ export default function typescriptDeclarations(pkg: Package): Plugin {
}
}
- const {
- declarations,
- entrypointSourceToTypeScriptSource,
- } = await getDeclarations(
+ const typescript = loadTypeScript(
+ pkg.directory,
+ pkg.project.directory,
+ pkg.name
+ );
+
+ const { program, options } = await getProgram(
pkg.directory,
pkg.name,
+ typescript
+ );
+
+ let normalizedDirname = normalizePath(pkg.directory);
+
+ let moduleResolutionCache = typescript.createModuleResolutionCache(
+ normalizedDirname,
+ (x) => x,
+ options
+ );
+
+ const resolveModule = (moduleName: string, containingFile: string) => {
+ let { resolvedModule } = typescript.resolveModuleName(
+ moduleName,
+ containingFile,
+ options,
+ typescript.sys,
+ moduleResolutionCache
+ );
+ return resolvedModule;
+ };
+
+ const entrypointSourceToTypeScriptSource: ReadonlyMap<
+ string,
+ string
+ > = new Map(
+ pkg.entrypoints.map((entrypoint) => {
+ const x = entrypoint.source;
+ let resolvedModule = resolveModule(
+ path.join(path.dirname(x), path.basename(x, path.extname(x))),
+ pkg.directory
+ );
+ if (!resolvedModule) {
+ throw new Error(
+ "This is an internal error, please open an issue if you see this: ts could not resolve module"
+ );
+ }
+ return [normalizePath(x), resolvedModule.resolvedFileName];
+ })
+ );
+
+ const declarations = getDeclarationsWithImportedModuleSpecifiersReplacing(
+ typescript,
+ program,
+ normalizedDirname,
pkg.project.directory,
- pkg.entrypoints.map((x) => x.source)
+ resolveModule,
+ [...entrypointSourceToTypeScriptSource.values()]
);
let srcFilenameToDtsFilenameMap = new Map();
@@ -97,11 +156,8 @@ export default function typescriptDeclarations(pkg: Package): Plugin {
);
if (!typeScriptSource) {
- // a user should never be able to cause this to happen
- throw new FatalError(
- `no TypeScript source file was found for the entrypoint at ${facadeModuleId}`,
- pkg.name
- );
+ // will happen when only some entrypoints are TypeScript
+ continue;
}
let dtsFilename = srcFilenameToDtsFilenameMap.get(
@@ -116,24 +172,63 @@ export default function typescriptDeclarations(pkg: Package): Plugin {
);
}
- let mainFieldPath = file.fileName.replace(/\.prod\.js$/, "");
- let relativeToSource = path.relative(
- path.dirname(path.join(opts.dir!, file.fileName)),
- dtsFilename.replace(/\.d\.ts$/, "")
+ let mainFieldPath = file.fileName.replace(/(?:\.prod)?\.js$/, "");
+ let relativeToSource = normalizePath(
+ path.relative(
+ path.dirname(path.join(opts.dir!, file.fileName)),
+ dtsFilename.replace(/\.d\.ts$/, "")
+ )
);
if (!relativeToSource.startsWith(".")) {
relativeToSource = `./${relativeToSource}`;
}
- let tsFileSource = tsTemplate(
- file.exports.includes("default"),
- normalizePath(relativeToSource)
+ const dtsFileName = `${mainFieldPath}.d.ts`;
+ const baseDtsFilename = path.basename(dtsFileName);
+ // TODO: technically this is wrong because you could have a default type-only export
+ // (though i doubt that is very common)
+ const hasDefaultExport = file.exports.includes("default");
+ const dtsFileSource = dtsTemplate(
+ baseDtsFilename,
+ hasDefaultExport,
+ relativeToSource,
+ `${relativeToSource}.d.ts`
);
- let tsFileName = mainFieldPath + ".d.ts";
this.emitFile({
type: "asset",
- fileName: tsFileName,
- source: tsFileSource,
+ fileName: dtsFileName,
+ source: dtsFileSource,
});
+
+ if (
+ pkg.exportsFieldConfig()?.importConditionDefaultExport ===
+ "default" &&
+ !pkg.isTypeModule()
+ ) {
+ const dmtsFilename = dtsFileName.replace(/\.d\.ts$/, ".d.mts");
+ const basedmtsFilename = baseDtsFilename.replace(
+ /\.d\.ts$/,
+ ".d.mts"
+ );
+ const sourceWithExtension = `${relativeToSource}.js`;
+
+ this.emitFile({
+ type: "asset",
+ fileName: dmtsFilename,
+ source: dmtsTemplate(
+ basedmtsFilename,
+ hasDefaultExport,
+ sourceWithExtension,
+ `${relativeToSource}.d.ts`
+ ),
+ });
+ if (hasDefaultExport) {
+ this.emitFile({
+ type: "asset",
+ fileName: getDtsDefaultForMtsFilepath(dmtsFilename),
+ source: dtsDefaultForDmtsTemplate(sourceWithExtension),
+ });
+ }
+ }
}
},
};
diff --git a/packages/cli/src/utils.ts b/packages/cli/src/utils.ts
index 18ea6cc3..bc544d25 100644
--- a/packages/cli/src/utils.ts
+++ b/packages/cli/src/utils.ts
@@ -1,7 +1,13 @@
import normalizePath from "normalize-path";
import { Entrypoint } from "./entrypoint";
-import { Package, ExportsConditions } from "./package";
+import {
+ Package,
+ ExportsConditions,
+ CanonicalExportsFieldConfig,
+} from "./package";
import * as nodePath from "path";
+import { FatalError } from "./errors";
+import { createExportsField } from "./imports";
let fields = [
"version",
@@ -83,34 +89,137 @@ export function exportsField(
if (!exportsFieldConfig) {
return;
}
+ let output: Record = {};
+ if (exportsFieldConfig.conditions.kind === "legacy") {
+ output = exportsFieldForLegacyConditions(
+ pkg,
+ exportsFieldConfig.conditions.envs,
+ exportsFieldConfig.importConditionDefaultExport
+ );
+ } else {
+ const isTypeModule = pkg.isTypeModule();
+ for (const entrypoint of pkg.entrypoints) {
+ if (isTypeModule) {
+ const groups = [...exportsFieldConfig.conditions.groups];
+ const hasNoConditions =
+ groups.length === 1 &&
+ groups[0][0].length === 0 &&
+ groups[0][1].length === 1 &&
+ groups[0][1][0].length === 0;
+ const exportsField = createExportsField(
+ exportsFieldConfig.conditions.groups,
+ (conditions) => ({
+ default: getExportsFieldOutputPathForConditionsWithTypeModule(
+ entrypoint,
+ conditions
+ ),
+ })
+ );
+ const key = "." + entrypoint.afterPackageName;
+ if (
+ hasNoConditions &&
+ Object.keys(exportsField).length === 1 &&
+ exportsField.default
+ ) {
+ output[key] = exportsField.default;
+ continue;
+ }
+ const exports = createExportsField(
+ exportsFieldConfig.conditions.groups,
+ (conditions) =>
+ getExportsFieldOutputPathForConditionsWithTypeModule(
+ entrypoint,
+ conditions
+ )
+ );
+ output[key] = {
+ // yes, i'm very intentionally pointing at the .js/.mjs rather than the .d.ts/.d.mts
+ // TODO: this should probably only be here if you're using ts
+ // or maybe we just generate more .d.ts files in the dist rather than having a types condition
+ types: getExportsFieldOutputPathForConditionsWithTypeModule(
+ entrypoint,
+ []
+ ),
+ ...(typeof exports === "string" ? { default: exports } : exports),
+ };
+ continue;
+ }
+ output["." + entrypoint.afterPackageName] = {
+ // yes, i'm very intentionally pointing at the .js/.mjs rather than the .d.ts/.d.mts
+ // TODO: this should probably only be here if you're using ts
+ // or maybe we just generate more .d.ts files in the dist rather than having a types condition
+ types:
+ exportsFieldConfig.importConditionDefaultExport === "default"
+ ? {
+ import: getExportsFieldOutputPathForConditions(entrypoint, [
+ "import",
+ ]),
+ default: getExportsFieldOutputPathForConditions(entrypoint, []),
+ }
+ : getExportsFieldOutputPathForConditions(entrypoint, []),
+ ...createExportsField(
+ exportsFieldConfig.conditions.groups,
+ (conditions) => ({
+ module: getExportsFieldOutputPathForConditions(
+ entrypoint,
+ conditions.concat("module")
+ ),
+ ...(exportsFieldConfig.importConditionDefaultExport ===
+ "default" && {
+ import: getExportsFieldOutputPathForConditions(
+ entrypoint,
+ conditions.concat("import")
+ ),
+ }),
+ default: getExportsFieldOutputPathForConditions(
+ entrypoint,
+ conditions
+ ),
+ })
+ ),
+ };
+ }
+ }
+
+ return {
+ ...output,
+ "./package.json": "./package.json",
+ ...exportsFieldConfig.extra,
+ };
+}
+
+function exportsFieldForLegacyConditions(
+ pkg: Package,
+ envs: ({
+ kind: "legacy";
+ } & CanonicalExportsFieldConfig["conditions"])["envs"],
+ importConditionDefaultExport: CanonicalExportsFieldConfig["importConditionDefaultExport"]
+) {
let output: Record = {};
- pkg.entrypoints.forEach((entrypoint) => {
+ for (const entrypoint of pkg.entrypoints) {
const esmBuild = getExportsFieldOutputPath(entrypoint, "esm");
const exportConditions = {
- module: exportsFieldConfig.envConditions.size
+ module: envs.size
? {
- ...(exportsFieldConfig.envConditions.has("worker") && {
+ ...(envs.has("worker") && {
worker: getExportsFieldOutputPath(entrypoint, "worker"),
}),
- ...(exportsFieldConfig.envConditions.has("browser") && {
+ ...(envs.has("browser") && {
browser: getExportsFieldOutputPath(entrypoint, "browser-esm"),
}),
default: esmBuild,
}
: esmBuild,
+ ...(importConditionDefaultExport === "default" && {
+ import: getExportsImportUnwrappingDefaultOutputPath(entrypoint),
+ }),
default: getExportsFieldOutputPath(entrypoint, "cjs"),
};
- output[
- "." + entrypoint.name.replace(entrypoint.package.name, "")
- ] = exportConditions;
- });
- return {
- ...output,
- "./package.json": "./package.json",
- ...exportsFieldConfig.extra,
- };
+ output["." + entrypoint.afterPackageName] = exportConditions;
+ }
+ return output;
}
export type BuildTarget =
@@ -134,16 +243,116 @@ export function getDistExtension(target: BuildTarget) {
return `${buildTargetToExtensionPrefix[target]}.js`;
}
+export function getDistExtensionForConditions(conditions: string[]) {
+ const forJoining: string[] = [];
+ let ext: "esm.js" | "cjs.js" | "cjs.mjs" = "cjs.js";
+ for (const condition of conditions) {
+ if (condition === "module") {
+ if (ext !== "cjs.js") {
+ throw new Error(`unexpected module and import conditions together`);
+ }
+ ext = "esm.js";
+ continue;
+ }
+ if (condition === "import") {
+ if (ext !== "cjs.js") {
+ throw new Error(`unexpected module and import conditions together`);
+ }
+ ext = "cjs.mjs";
+ continue;
+ }
+ forJoining.push(condition);
+ }
+ forJoining.push(ext);
+ return forJoining.join(".");
+}
+
+export function getDistFilenameForConditions(
+ entrypoint: MinimalEntrypoint,
+ conditions: string[]
+) {
+ return `dist/${getBaseDistName(entrypoint)}.${getDistExtensionForConditions(
+ conditions
+ )}`;
+}
+
+export function getBaseDistFilename(
+ entrypoint: MinimalEntrypoint,
+ target: BuildTarget
+) {
+ return `${getBaseDistName(entrypoint)}.${getDistExtension(target)}`;
+}
+
function getDistFilename(entrypoint: MinimalEntrypoint, target: BuildTarget) {
- return `dist/${getBaseDistName(entrypoint)}.${getDistExtension(target)}`;
+ if (entrypoint.package.project.experimentalFlags.distInRoot) {
+ if (entrypoint.package.name === entrypoint.name) {
+ return `dist/${getBaseDistFilename(entrypoint, target)}`;
+ }
+ return (
+ "../".repeat(
+ entrypoint.name.slice(entrypoint.package.name.length + 1).split("/")
+ .length
+ ) + `dist/${getBaseDistFilename(entrypoint, target)}`
+ );
+ }
+ return `dist/${getBaseDistFilename(entrypoint, target)}`;
+}
+
+function getExportsFieldEntrypointOutputPrefix(entrypoint: Entrypoint) {
+ if (entrypoint.package.project.experimentalFlags.distInRoot) return "./";
+ return `.${entrypoint.afterPackageName}/`;
}
export function getExportsFieldOutputPath(
entrypoint: Entrypoint,
target: BuildTarget
) {
- const prefix = entrypoint.name.replace(entrypoint.package.name, "");
- return `.${prefix}/${getDistFilename(entrypoint, target)}`;
+ return (
+ getExportsFieldEntrypointOutputPrefix(entrypoint) +
+ getDistFilename(entrypoint, target)
+ );
+}
+
+export function getExportsFieldOutputPathForConditions(
+ entrypoint: Entrypoint,
+ conditions: string[]
+) {
+ return (
+ getExportsFieldEntrypointOutputPrefix(entrypoint) +
+ getDistFilenameForConditions(entrypoint, conditions)
+ );
+}
+
+export function getExportsFieldOutputPathForConditionsWithTypeModule(
+ entrypoint: Entrypoint,
+ conditions: string[]
+) {
+ return (
+ getExportsFieldEntrypointOutputPrefix(entrypoint) +
+ getDistFilenameForConditionsWithTypeModule(entrypoint, conditions)
+ );
+}
+
+export function getDistFilenameForConditionsWithTypeModule(
+ entrypoint: MinimalEntrypoint,
+ conditions: string[]
+) {
+ return `dist/${getBaseDistName(
+ entrypoint
+ )}.${getDistExtensionForConditionsWithTypeModule(conditions)}`;
+}
+
+export function getDistExtensionForConditionsWithTypeModule(
+ conditions: string[]
+) {
+ if (conditions.length === 0) return "js";
+ return `${conditions.join(".")}.js`;
+}
+
+export function getExportsImportUnwrappingDefaultOutputPath(
+ entrypoint: Entrypoint
+) {
+ return getExportsFieldOutputPath(entrypoint, "cjs").replace(/\.js$/, ".mjs");
}
export const validFieldsForEntrypoint = {
@@ -186,13 +395,110 @@ export * from ${escapedPath};${
}\n`;
}
-export function tsTemplate(hasDefaultExport: boolean, relativePath: string) {
+function esmReexportTemplate(hasDefaultExport: boolean, relativePath: string) {
const escapedPath = JSON.stringify(relativePath);
return `export * from ${escapedPath};${
hasDefaultExport ? `\nexport { default } from ${escapedPath};` : ""
}\n`;
}
+export function dtsTemplate(
+ filename: string,
+ hasDefaultExport: boolean,
+ relativePath: string,
+ relativePathWithExtension: string
+) {
+ return `${esmReexportTemplate(
+ hasDefaultExport,
+ relativePath
+ )}${getDeclSourceMapComment(filename, relativePathWithExtension)}`;
+}
+
+function getReexportStatement(namedExports: string[], source: string): string {
+ if (!namedExports.length) {
+ // side-effects are important
+ return `import ${source};`;
+ }
+ // rollup will say a chunk has a "*external-pkg" export when it has an export * from 'external-pkg'
+ if (namedExports.some((exported) => exported[0] === "*")) {
+ return `export * from ${source};`;
+ }
+ return `export {\n ${namedExports.join(",\n ")}\n} from ${source};`;
+}
+
+export function getJsDefaultForMjsFilepath(mjsPath: string) {
+ return mjsPath.replace(/\.mjs$/, ".default.js");
+}
+
+export function getDtsDefaultForMtsFilepath(mjsPath: string) {
+ return mjsPath.replace(/\.d\.mts$/, ".default.d.ts");
+}
+
+export function jsDefaultForMjsTemplate(relativePath: string) {
+ return `exports._default = require(${JSON.stringify(
+ relativePath
+ )}).default;\n`;
+}
+
+export function dtsDefaultForDmtsTemplate(relativePath: string) {
+ return `export { default as _default } from ${JSON.stringify(
+ relativePath
+ )}\n`;
+}
+
+export function mjsTemplate(
+ exports: string[],
+ relativePath: string,
+ mjsPath: string
+) {
+ const escapedPath = JSON.stringify(relativePath);
+ const nonDefaultExports = exports.filter((name) => name !== "default");
+ const hasDefaultExport = exports.length !== nonDefaultExports.length;
+ return `${getReexportStatement(nonDefaultExports, escapedPath)}\n${
+ hasDefaultExport
+ ? `export { _default as default } from ${JSON.stringify(
+ "./" + getJsDefaultForMjsFilepath(nodePath.basename(mjsPath))
+ )};\n`
+ : ""
+ }`;
+}
+
+// the only reason we sometimes name exports explicitly in the mjs template is
+// to avoid adding __esModule as an export, this doesn't apply to the .d.mts
+// since __esModule doesn't exist in declaration files
+// just doing export * is nice because it means we don't have to bother
+// getting the type-only exports
+export function dmtsTemplate(
+ filename: string,
+ hasDefaultExport: boolean,
+ relativePath: string,
+ relativePathWithExtension: string
+) {
+ return `export * from ${JSON.stringify(relativePath)};\n${
+ hasDefaultExport
+ ? `export { _default as default } from ${JSON.stringify(
+ "./" + nodePath.basename(filename).replace(/\.d\.mts$/, ".default.js")
+ )};\n`
+ : ""
+ }${getDeclSourceMapComment(filename, relativePathWithExtension)}`;
+}
+
+function getDeclSourceMapComment(
+ dtsFilename: string,
+ relativePathWithExtension: string
+) {
+ return `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${Buffer.from(
+ JSON.stringify({
+ version: 3,
+ file: dtsFilename,
+ sourceRoot: "",
+ sources: [relativePathWithExtension],
+ names: [],
+ mappings: "AAAA",
+ })
+ ).toString("base64")}\n`;
+}
+
export type JSONValue =
| string
| number
@@ -200,3 +506,16 @@ export type JSONValue =
| null
| Array
| { [key: string]: JSONValue | undefined };
+
+export function parseImportConditionDefaultExportOption(
+ value: unknown,
+ name: string
+): "default" | "namespace" {
+ if (value === "default" || value === "namespace") {
+ return value;
+ }
+ throw new FatalError(
+ 'the "preconstruct.exports.importConditionDefaultExport" field must be set to "default" or "namespace" if it is present',
+ name
+ );
+}
diff --git a/packages/cli/src/validate-included-files.ts b/packages/cli/src/validate-included-files.ts
index eb46abae..7d97b3f9 100644
--- a/packages/cli/src/validate-included-files.ts
+++ b/packages/cli/src/validate-included-files.ts
@@ -18,6 +18,7 @@ export async function validateIncludedFiles(pkg: Package) {
await Promise.all(
pkg.entrypoints
.map(async (entrypoint) => {
+ if (pkg.isTypeModule() && entrypoint.name !== pkg.name) return;
let filename = path.join(
entrypoint.directory,
"dist",
@@ -44,6 +45,7 @@ export async function validateIncludedFiles(pkg: Package) {
// TODO: add Flow and TS check and if they're ignored, don't write them
let messages: string[] = [];
pkg.entrypoints.forEach((entrypoint) => {
+ if (pkg.isTypeModule() && entrypoint.name !== pkg.name) return;
let pkgJsonPath = path.relative(
pkg.directory,
path.resolve(entrypoint.directory, "package.json")
diff --git a/packages/cli/src/validate-package.ts b/packages/cli/src/validate-package.ts
index 81812546..ff2a6c1b 100644
--- a/packages/cli/src/validate-package.ts
+++ b/packages/cli/src/validate-package.ts
@@ -4,56 +4,10 @@ import chalk from "chalk";
import { errors } from "./messages";
import { Package } from "./package";
import { isFieldValid } from "./validate";
-import { setFieldInOrder, exportsField } from "./utils";
+import { exportsField } from "./utils";
let keys: (obj: Obj) => (keyof Obj)[] = Object.keys;
-export async function fixPackage(pkg: Package) {
- if (pkg.entrypoints.length === 0) {
- throw new FatalError(errors.noEntrypoints, pkg.name);
- }
-
- const exportsFieldConfig = pkg.exportsFieldConfig();
-
- let fields = {
- main: true,
- module:
- pkg.entrypoints.some((x) => x.json.module !== undefined) ||
- !!exportsFieldConfig,
- "umd:main": pkg.entrypoints.some((x) => x.json["umd:main"] !== undefined),
- browser: pkg.entrypoints.some((x) => x.json.browser !== undefined),
- };
-
- if (exportsFieldConfig) {
- if (fields.browser || exportsFieldConfig.envConditions.has("browser")) {
- if (typeof pkg.json.preconstruct.exports !== "object") {
- pkg.json.preconstruct.exports = {};
- }
- if (!pkg.json.preconstruct.exports.envConditions) {
- pkg.json.preconstruct.exports.envConditions = [];
- }
- if (!pkg.json.preconstruct.exports.envConditions.includes("browser")) {
- pkg.json.preconstruct.exports.envConditions.push("browser");
- }
- fields.browser = true;
- }
- }
-
- keys(fields)
- .filter((x) => fields[x])
- .forEach((field) => {
- pkg.setFieldOnEntrypoints(field);
- });
-
- pkg.json = setFieldInOrder(pkg.json, "exports", exportsField(pkg));
-
- await pkg.save();
-
- return (await Promise.all(pkg.entrypoints.map((x) => x.save()))).some(
- (x) => x
- );
-}
-
let unsafeRequire = require;
export function validatePackage(pkg: Package) {
@@ -74,22 +28,24 @@ export function validatePackage(pkg: Package) {
const exportsFieldConfig = pkg.exportsFieldConfig();
if (exportsFieldConfig) {
- if (!fields.module) {
+ if (!fields.module && !pkg.isTypeModule()) {
throw new FixableError(errors.noModuleFieldWithExportsField, pkg.name);
}
- const hasField = fields.browser;
- const hasCondition = exportsFieldConfig.envConditions.has("browser");
- if (hasField && !hasCondition) {
- throw new FixableError(
- errors.missingBrowserConditionWithFieldPresent,
- pkg.name
- );
- }
- if (!hasField && hasCondition) {
- throw new FixableError(
- errors.missingBrowserFieldWithConditionPresent,
- pkg.name
- );
+ if (exportsFieldConfig.conditions.kind === "legacy") {
+ const hasField = fields.browser;
+ const hasCondition = exportsFieldConfig.conditions.envs.has("browser");
+ if (hasField && !hasCondition) {
+ throw new FixableError(
+ errors.missingBrowserConditionWithFieldPresent,
+ pkg.name
+ );
+ }
+ if (!hasField && hasCondition) {
+ throw new FixableError(
+ errors.missingBrowserFieldWithConditionPresent,
+ pkg.name
+ );
+ }
}
}
@@ -100,6 +56,10 @@ export function validatePackage(pkg: Package) {
);
}
+ if (pkg.isTypeModule()) {
+ return;
+ }
+
pkg.entrypoints.forEach((entrypoint) => {
keys(fields).forEach((field) => {
if (entrypoint.json[field] && !fields[field]) {
diff --git a/packages/cli/src/validate.ts b/packages/cli/src/validate.ts
index 0089e093..e35beb20 100644
--- a/packages/cli/src/validate.ts
+++ b/packages/cli/src/validate.ts
@@ -54,6 +54,9 @@ function validateEntrypoint(entrypoint: Entrypoint, log: boolean) {
if (log) {
logger.info(infos.validEntrypoint, entrypoint.name);
}
+ if (entrypoint.package.isTypeModule()) {
+ return;
+ }
const fatalErrors: FatalError[] = [];
for (const field of ["main", "module", "umd:main", "browser"] as const) {
if (field !== "main" && entrypoint.json[field] === undefined) {
@@ -126,11 +129,15 @@ export const FORMER_FLAGS_THAT_ARE_ENABLED_NOW = new Set([
"newDistFilenames",
"newProcessEnvNodeEnvReplacementStrategyAndSkipTerserOnCJSProdBuild",
"exports",
+ "onlyEmitUsedTypeScriptDeclarations",
]);
export const EXPERIMENTAL_FLAGS = new Set([
"logCompiledFiles",
"keepDynamicImportAsDynamicImportInCommonJS",
+ "importsConditions",
+ "distInRoot",
+ "typeModule",
]);
export function validateProject(project: Project, log = false) {
diff --git a/packages/cli/src/worker-client.ts b/packages/cli/src/worker-client.ts
index 589a7708..e5ee925f 100644
--- a/packages/cli/src/worker-client.ts
+++ b/packages/cli/src/worker-client.ts
@@ -1,6 +1,5 @@
import Worker from "jest-worker";
-// @ts-ignore
-import isCI from "is-ci";
+import { isCI } from "ci-info";
let shouldUseWorker =
process.env.DISABLE_PRECONSTRUCT_WORKER !== "true" &&
@@ -13,10 +12,11 @@ let unsafeRequire = require;
export function createWorker() {
if (shouldUseWorker) {
- worker = new Worker(require.resolve("@preconstruct/cli/worker")) as Worker &
- typeof import("./worker");
+ worker = new Worker(
+ require.resolve("@talismn/preconstruct-cli/worker")
+ ) as Worker & typeof import("./worker");
} else {
- worker = unsafeRequire("@preconstruct/cli/worker");
+ worker = unsafeRequire("@talismn/preconstruct-cli/worker");
}
}
diff --git a/packages/cli/test-utils/index.ts b/packages/cli/test-utils/index.ts
index cf76a043..dbaa10c8 100644
--- a/packages/cli/test-utils/index.ts
+++ b/packages/cli/test-utils/index.ts
@@ -1,4 +1,5 @@
import path from "path";
+import realFs from "fs";
import * as fs from "fs-extra";
import fastGlob from "fast-glob";
import fixturez from "fixturez";
@@ -165,21 +166,26 @@ function hash(content: string) {
return crypto.createHash("md5").update(content).digest("hex");
}
-export let stripHashes = async (chunkName: string) => {
- let transformer = (pathname: string, content: string) => {
- return pathname.replace(new RegExp(`${chunkName}-[^\\.]+`, "g"), () => {
- return `chunk-this-is-not-the-real-hash-${hash(content)}`;
- });
- };
+export function stripHashes(...chunkNames: string[]) {
+ const pattern = new RegExp(
+ `(${chunkNames.join(
+ "|"
+ )})-[^\\.]+?(\\.(?:esm|cjs|cjs\\.(?:dev|prod))\\.js)`,
+ "g"
+ );
return {
- transformPath: transformer,
- transformContent: (content: string) => {
- return content.replace(new RegExp(`${chunkName}-[^\\.]+`, "g"), () => {
- return "chunk-some-hash";
+ transformPath(pathname: string, content: string) {
+ return pathname.replace(pattern, (_, chunkName, ext) => {
+ return `${chunkName}-this-is-not-the-real-hash-${hash(content)}${ext}`;
+ });
+ },
+ transformContent(content: string) {
+ return content.replace(pattern, (_, chunkName, ext) => {
+ return `${chunkName}-some-hash${ext}`;
});
},
};
-};
+}
export async function snapshotDirectory(
tmpPath: string,
@@ -223,13 +229,9 @@ export async function install(tmpPath: string) {
await spawn("yarn", ["install"], { cwd: tmpPath });
}
-export const repoNodeModules = path.resolve(
- __dirname,
- "..",
- "..",
- "..",
- "node_modules"
-);
+export const repoRoot = path.resolve(__dirname, "..", "..", "..");
+
+export const repoNodeModules = path.resolve(repoRoot, "node_modules");
export const typescriptFixture = {
node_modules: { kind: "symlink", path: repoNodeModules },
@@ -309,27 +311,27 @@ export const typescriptFixture = {
presets: [require.resolve("@babel/preset-typescript")],
}),
"src/index.ts": ts`
- import { SomeType } from "./another-thing";
- export * from "./one-more-thing";
- import * as path from "path";
+ import { SomeType } from "./another-thing";
+ export * from "./one-more-thing";
+ import * as path from "path";
- export { path };
+ export { path };
- let thing: SomeType = "something";
+ let thing: SomeType = "something";
- export default thing;
- `,
+ export default thing;
+ `,
"src/another-thing.ts": ts`
- export type SomeType = string;
- `,
+ export type SomeType = string;
+ `,
"src/one-more-thing.js": js`
- export let obj = {};
- `,
+ export let obj = {};
+ `,
"src/one-more-thing.d.ts": ts`
- declare var obj: object;
+ declare var obj: object;
- export { obj };
- `,
+ export { obj };
+ `,
} as const;
type Fixture = {
@@ -344,13 +346,13 @@ async function getSymlinkType(targetPath: string): Promise<"dir" | "file"> {
}
export async function testdir(dir: Fixture) {
- const temp = f.temp();
+ const temp = realFs.realpathSync.native(f.temp());
await Promise.all(
Object.keys(dir).map(async (filename) => {
const output = dir[filename];
const fullPath = path.join(temp, filename);
if (typeof output === "string") {
- await fs.outputFile(fullPath, dir[filename]);
+ await fs.outputFile(fullPath, output);
} else {
const dir = path.dirname(fullPath);
await fs.ensureDir(dir);
@@ -396,7 +398,7 @@ async function readNormalizedFile(filePath: string): Promise {
let content = await fs.readFile(filePath, "utf8");
// to normalise windows line endings
content = content.replace(/\r\n/g, "\n");
- if (/(?
source.replace(/\r\n/g, "\n")
@@ -406,21 +408,55 @@ async function readNormalizedFile(filePath: string): Promise {
return content;
}
-export async function getFiles(dir: string, glob: string[] = ["**"]) {
+export async function getFiles(
+ dir: string,
+ glob: string[] = ["**"],
+ {
+ transformContent = (x) => x,
+ transformPath = (x) => x,
+ }: {
+ transformPath?: (path: string, contents: string) => string;
+ transformContent?: (content: string) => string;
+ } = {}
+) {
const files = await fastGlob(glob, { cwd: dir });
- const filesObj: Record = {
- [dirPrintingSymbol]: true,
- };
- await Promise.all(
- files.map(async (filename) => {
- filesObj[filename] = await readNormalizedFile(path.join(dir, filename));
- })
- );
- let newObj: Record = { [dirPrintingSymbol]: true };
- files.sort().forEach((filename) => {
- newObj[filename] = filesObj[filename];
- });
- return newObj;
+
+ return Object.fromEntries([
+ ...(
+ await Promise.all(
+ files.map(async (filename) => {
+ let link: string | undefined;
+ try {
+ link = await fs.readlink(path.join(dir, filename));
+ } catch (err: any) {
+ if (
+ err.code !== "EINVAL" &&
+ // UNKNOWN is returned on Windows when it's not a symlink
+ err.code !== "UNKNOWN"
+ ) {
+ throw err;
+ }
+ }
+ if (link !== undefined) {
+ return [
+ filename,
+ `⎯ symlink to ${normalizePath(
+ path.relative(
+ dir,
+ path.resolve(path.dirname(path.join(dir, filename)), link)
+ )
+ )}`,
+ ] as const;
+ }
+ const contents = transformContent(
+ await readNormalizedFile(path.join(dir, filename))
+ );
+ return [transformPath(filename, contents), contents] as const;
+ })
+ )
+ ).sort((a, b) => a[0].localeCompare(b[0])),
+ [dirPrintingSymbol, true],
+ ]);
}
export const basicPkgJson = (options?: {
diff --git a/packages/cli/worker/package.json b/packages/cli/worker/package.json
index 5969991b..a4ce3b8f 100644
--- a/packages/cli/worker/package.json
+++ b/packages/cli/worker/package.json
@@ -1,6 +1,4 @@
{
- "main": "dist/cli.cjs.js",
- "preconstruct": {
- "source": "../src/worker"
- }
+ "main": "dist/talismn-preconstruct-cli-worker.cjs.js",
+ "module": "dist/talismn-preconstruct-cli-worker.esm.js"
}
diff --git a/packages/eslint-plugin-format-js-tag/CHANGELOG.md b/packages/eslint-plugin-format-js-tag/CHANGELOG.md
index dcaa99b6..fab6beca 100644
--- a/packages/eslint-plugin-format-js-tag/CHANGELOG.md
+++ b/packages/eslint-plugin-format-js-tag/CHANGELOG.md
@@ -1,5 +1,17 @@
# @preconstruct/eslint-plugin-format-js-tag
+## 0.4.0
+
+### Minor Changes
+
+- [#565](https://github.com/preconstruct/preconstruct/pull/565) [`484c6a7`](https://github.com/preconstruct/preconstruct/commit/484c6a7306236d741a89f7ca6ddef7ff60799f7e) Thanks [@Andarist](https://github.com/Andarist)! - `package.json#exports` have been added to limit what (and how) code might be imported from the package.
+
+## 0.3.0
+
+### Minor Changes
+
+- [`51d1ffa`](https://github.com/preconstruct/preconstruct/commit/51d1ffa9caf4153378491535e06f3008b4d8b3b5) Thanks [@emmatown](https://github.com/emmatown)! - Fix indentation
+
## 0.2.0
### Minor Changes
diff --git a/packages/eslint-plugin-format-js-tag/package.json b/packages/eslint-plugin-format-js-tag/package.json
index 310c8247..e82b2191 100644
--- a/packages/eslint-plugin-format-js-tag/package.json
+++ b/packages/eslint-plugin-format-js-tag/package.json
@@ -1,7 +1,20 @@
{
"name": "@preconstruct/eslint-plugin-format-js-tag",
- "version": "0.2.0",
- "main": "dist/eslint-plugin-format-js-tag.cjs.js",
+ "version": "0.4.0",
+ "main": "dist/preconstruct-eslint-plugin-format-js-tag.cjs.js",
+ "module": "dist/preconstruct-eslint-plugin-format-js-tag.esm.js",
+ "exports": {
+ ".": {
+ "types": {
+ "import": "./dist/preconstruct-eslint-plugin-format-js-tag.cjs.mjs",
+ "default": "./dist/preconstruct-eslint-plugin-format-js-tag.cjs.js"
+ },
+ "module": "./dist/preconstruct-eslint-plugin-format-js-tag.esm.js",
+ "import": "./dist/preconstruct-eslint-plugin-format-js-tag.cjs.mjs",
+ "default": "./dist/preconstruct-eslint-plugin-format-js-tag.cjs.js"
+ },
+ "./package.json": "./package.json"
+ },
"files": [
"dist"
],
diff --git a/packages/eslint-plugin-format-js-tag/src/index.ts b/packages/eslint-plugin-format-js-tag/src/index.ts
index 3de3c5b3..d4eb7829 100644
--- a/packages/eslint-plugin-format-js-tag/src/index.ts
+++ b/packages/eslint-plugin-format-js-tag/src/index.ts
@@ -38,7 +38,10 @@ export const rules = {
node.quasi.expressions.length === 0
) {
const str = node.quasi.quasis[0].value.cooked;
- const indentation = "".padEnd(node.tag.loc.start.column + 2);
+ const sourceLines = context.getSourceCode().getLines();
+ const line = sourceLines[node.tag.loc.start.line - 1];
+ const startingSpace = line.match(/^\s*/)?.[0] ?? "";
+ const indentation = "".padEnd(startingSpace.length + 2);
const lines = prettier
.format(str, {
filepath: path.join(
@@ -52,16 +55,14 @@ export const rules = {
lines
.map((line, i) => {
if (i === lines.length - 1) {
- return "".padEnd(node.tag.loc.start.column) + line;
+ return "".padEnd(startingSpace.length) + line;
}
if (line === "") {
return "";
}
return indentation + line;
})
- .join("\n"); //+
- // "\n" +
- // "".padEnd(node.tag.loc.start.column);
+ .join("\n");
if (formatted !== str) {
context.report({
messageId: "unformatted",
diff --git a/site/docs/configuration.md b/site/docs/configuration.md
index ee585dad..d82aebde 100644
--- a/site/docs/configuration.md
+++ b/site/docs/configuration.md
@@ -154,7 +154,7 @@ Using the `exports` field enables a couple of things:
Note that adding an `exports` field can arguably be a breaking change, you may want to use the `extra` option to add more exports so that imports that worked previously still work or only add the `exports` field in a major version.
-The `exports` field feature can be enabled at the project or package level like this. The `envConditions` and `extra` options can only be configured at a package level.
+The `exports` field feature can be enabled at the project or package level like this. The `envConditions` and `extra` options can only be configured at the package level. The `importConditionDefaultExport` option can be configured at the project or package level.
```diff
{
@@ -209,6 +209,127 @@ Preconstruct will enforce that the `exports` field that is written can is direct
}
```
+#### `importConditionDefaultExport`
+
+`"namespace" | "default"`
+
+Preconstruct doesn't generate bundles targeting Node ESM to avoid the [dual package hazard](https://nodejs.org/api/packages.html#dual-commonjses-module-packages). Instead of generating a bundle for Node ESM, the CommonJS bundle is used in Node ESM and because of Node's usage of [cjs-module-lexer](https://github.com/nodejs/cjs-module-lexer), importing named exports from CommonJS packages works correctly. Default exports are more complicated though. The way that Preconstruct and many other tools generate CommonJS bundles is like this.
+
+```js
+export default "a";
+```
+
+↓
+
+```js
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+
+var main = "a";
+
+exports.default = main;
+```
+
+And for compiling importing a default export from a CommonJS module like this,
+
+```js
+import a from "a";
+
+console.log(a);
+```
+
+↓
+
+```js
+"use strict";
+
+var x = require("b");
+
+function _interopDefault(e) {
+ return e && e.__esModule ? e : { default: e };
+}
+
+var x__default = /*#__PURE__*/ _interopDefault(x);
+
+console.log(x__default.default);
+```
+
+however, Node doesn't look at the `__esModule` convention to get the default export of a CommonJS module when importing in ESM. Instead, it uses the whole `module.exports` object as the default export.
+
+This means running `b.mjs` here would log `{ default: "a", __esModule: true }` instead of `"a"`.
+
+```js
+// a.cjs
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+
+var main = "a";
+
+exports.default = main;
+
+// b.mjs
+import a from "./a.cjs";
+
+console.log(a);
+```
+
+To get around this, you can set `preconstruct.exports.importConditionDefaultExport` to `"default"` which will make Preconstruct generate a ESM module for Node that re-exports the CommonJS bundle with the correct default export.
+
+Currently, this defaults to `"namespace"`, this will change to `"default"` in the next major version.
+
+```json
+{
+ "name": "@sample/package",
+ "version": "1.0.0",
+ "preconstruct": {
+ "exports": {
+ "importConditionDefaultExport": "default"
+ }
+ }
+}
+```
+
+### `type` (experimental) {#type}
+
+```ts
+"module" | "commonjs";
+```
+
+> If you're just thinking "I want to write code with the native ECMAScript import and export syntax and have my code work for most people", you likely should not use this feature. This feature allows you to build packages that import Node.js ESM only dependencies and therefore only support being imported from ESM in newer versions of Node.js and some bundlers.
+
+The `type` config being set to `"module"` allows you to generate ECMAScript modules(ESM) compatible with Node.js' implementation of ESM (Node.js ESM), most modern bundlers, etc.
+
+You should likely only use this feature if you fit into one these categories:
+
+- You're interested in the state of modules in the JS ecosystem
+- You want to publish a package that statically imports a Node.js ESM only dependency
+
+Node.js' implementation of ESM does not allow importing an ESM module from a CommonJS module synchronously. This means a given package only shipping Node.js ESM means that all of the packages that depend on it either need to use a dynamic `import()` call (which is asynchronous) to import it or only provide Node.js ESM and therefore enforce the same constraints on consumers.
+
+Preconstruct's support for Node.js ESM is currently an experiment to see how Preconstruct would work if it followed Node.js' behaviour for ESM. Note this behaviour means the resulting package will not support tools that do not support newer features like the `exports` field.
+
+- The [`exports` field feature](#exports) must also be enabled.
+- There are no entrypoint `package.json`s, the entrypoints are only specified in the `exports` field
+- The dist files for all entrypoints are in the `dist` directory in the root of the package
+- No `main`, `module`, `browser` or `umd:main` fields are used
+- The default export of a CommonJS dependency(even if it provides ESM intended for bundlers) will be the whole exports object, not `exports.default` if `exports.__esModule` is set and otherwise the whole exports object which is the default behaviour in Preconstruct.
+
+To use `"type": "module"`, you need to enable the experimental flags and the exports field feature.
+
+```json
+"type": "module",
+"preconstruct": {
+ "exports": true,
+ "___experimentalFlags_WILL_CHANGE_IN_PATCH": {
+ "typeModule": true,
+ "distInRoot": true,
+ "importsConditions": true
+ },
+}
+```
+
## Entrypoints {#entrypoints}
Entrypoints are the lowest level configuration point and describe a set of bundles for a particular entrypoint. They are configured by the `package.json` in the folder of the entrypoint. We also have a guide on [adding a second entrypoint](/guides/adding-a-second-entrypoint)
diff --git a/site/docs/tutorials/index.md b/site/docs/tutorials/index.md
index 927abb0c..482361cf 100644
--- a/site/docs/tutorials/index.md
+++ b/site/docs/tutorials/index.md
@@ -57,7 +57,7 @@ $ yarn preconstruct init
"module": "dist/a-random-number.esm.js",
"license": "MIT",
"devDependencies": {
- "@preconstruct/cli": "^2.1.5"
+ "@preconstruct/cli": "^2.8.1"
}
}
```
diff --git a/site/docs/tutorials/monorepo.md b/site/docs/tutorials/monorepo.md
index 6a75c815..2b838b3c 100644
--- a/site/docs/tutorials/monorepo.md
+++ b/site/docs/tutorials/monorepo.md
@@ -78,7 +78,7 @@ We're going to add it to a postinstall script so that yarn will run it after pac
"private": true,
"workspaces": ["packages/*"],
"dependencies": {
- "@preconstruct/cli": "^1.0.0"
+ "@preconstruct/cli": "^2.8.1"
},
"preconstruct": {
"packages": ["packages/*"]
diff --git a/site/package.json b/site/package.json
index c4503202..60834aa3 100644
--- a/site/package.json
+++ b/site/package.json
@@ -33,5 +33,8 @@
"engines": {
"node": ">=16.14"
},
+ "resolutions": {
+ "@babel/preset-env": "7.23.9"
+ },
"repository": "https://github.com/preconstruct/preconstruct/tree/main/site"
}
diff --git a/yarn.lock b/yarn.lock
index 9c6c374f..1da5fb37 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -130,7 +130,7 @@
"@algolia/logger-common" "4.13.1"
"@algolia/requester-common" "4.13.1"
-"@ampproject/remapping@^2.1.0":
+"@ampproject/remapping@^2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
@@ -138,38 +138,30 @@
"@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
- integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
- dependencies:
- "@babel/highlight" "^7.8.3"
-
-"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6":
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
dependencies:
"@babel/highlight" "^7.18.6"
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.6":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d"
- integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==
+"@babel/code-frame@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+ integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
+ dependencies:
+ "@babel/highlight" "^7.23.4"
+ chalk "^2.4.2"
-"@babel/compat-data@^7.20.0":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30"
- integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298"
+ integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==
-"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c"
- integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==
- dependencies:
- browserslist "^4.9.1"
- invariant "^2.2.4"
- semver "^5.5.0"
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
+ integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
"@babel/core@7.12.9":
version "7.12.9"
@@ -193,98 +185,68 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/core@^7.11.6", "@babel/core@^7.12.3":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92"
- integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==
+"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.15.5", "@babel/core@^7.18.6", "@babel/core@^7.7.7":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13"
+ integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==
dependencies:
- "@ampproject/remapping" "^2.1.0"
+ "@ampproject/remapping" "^2.2.0"
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.2"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-module-transforms" "^7.20.2"
- "@babel/helpers" "^7.20.1"
- "@babel/parser" "^7.20.2"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.1"
- "@babel/types" "^7.20.2"
+ "@babel/generator" "^7.21.0"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-module-transforms" "^7.21.0"
+ "@babel/helpers" "^7.21.0"
+ "@babel/parser" "^7.21.0"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
+ json5 "^2.2.2"
semver "^6.3.0"
-"@babel/core@^7.15.5", "@babel/core@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.6.tgz#54a107a3c298aee3fe5e1947a6464b9b6faca03d"
- integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==
- dependencies:
- "@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.18.6"
- "@babel/helper-compilation-targets" "^7.18.6"
- "@babel/helper-module-transforms" "^7.18.6"
- "@babel/helpers" "^7.18.6"
- "@babel/parser" "^7.18.6"
- "@babel/template" "^7.18.6"
- "@babel/traverse" "^7.18.6"
- "@babel/types" "^7.18.6"
- convert-source-map "^1.7.0"
+"@babel/core@^7.21.3":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1"
+ integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.23.5"
+ "@babel/generator" "^7.23.6"
+ "@babel/helper-compilation-targets" "^7.23.6"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helpers" "^7.23.9"
+ "@babel/parser" "^7.23.9"
+ "@babel/template" "^7.23.9"
+ "@babel/traverse" "^7.23.9"
+ "@babel/types" "^7.23.9"
+ convert-source-map "^2.0.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
- semver "^6.3.0"
+ json5 "^2.2.3"
+ semver "^6.3.1"
-"@babel/core@^7.7.7":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
- integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==
+"@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.21.0", "@babel/generator@^7.21.1", "@babel/generator@^7.7.2":
+ version "7.21.1"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd"
+ integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==
dependencies:
- "@babel/code-frame" "^7.8.3"
- "@babel/generator" "^7.9.0"
- "@babel/helper-module-transforms" "^7.9.0"
- "@babel/helpers" "^7.9.0"
- "@babel/parser" "^7.9.0"
- "@babel/template" "^7.8.6"
- "@babel/traverse" "^7.9.0"
- "@babel/types" "^7.9.0"
- convert-source-map "^1.7.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.1"
- json5 "^2.1.2"
- lodash "^4.17.13"
- resolve "^1.3.2"
- semver "^5.4.1"
- source-map "^0.5.0"
-
-"@babel/generator@^7.12.5", "@babel/generator@^7.18.6", "@babel/generator@^7.18.7":
- version "7.18.7"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.7.tgz#2aa78da3c05aadfc82dbac16c99552fc802284bd"
- integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==
- dependencies:
- "@babel/types" "^7.18.7"
+ "@babel/types" "^7.21.0"
"@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
-"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2":
- version "7.20.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8"
- integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==
+"@babel/generator@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+ integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
dependencies:
- "@babel/types" "^7.20.2"
+ "@babel/types" "^7.23.6"
"@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
-"@babel/generator@^7.9.0", "@babel/generator@^7.9.5":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9"
- integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==
- dependencies:
- "@babel/types" "^7.9.5"
- jsesc "^2.5.1"
- lodash "^4.17.13"
- source-map "^0.5.0"
-
"@babel/helper-annotate-as-pure@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
@@ -292,135 +254,129 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-annotate-as-pure@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee"
- integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==
+"@babel/helper-annotate-as-pure@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
+ integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.22.5"
"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a"
- integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb"
+ integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==
dependencies:
"@babel/helper-explode-assignable-expression" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.18.9"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503"
- integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956"
+ integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.22.15"
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz#18d35bfb9f83b1293c22c55b3d576c1315b6ed96"
- integrity sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==
- dependencies:
- "@babel/compat-data" "^7.18.6"
- "@babel/helper-validator-option" "^7.18.6"
- browserslist "^4.20.2"
- semver "^6.3.0"
-
-"@babel/helper-compilation-targets@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a"
- integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==
+"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
+ integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
dependencies:
- "@babel/compat-data" "^7.20.0"
+ "@babel/compat-data" "^7.20.5"
"@babel/helper-validator-option" "^7.18.6"
browserslist "^4.21.3"
+ lru-cache "^5.1.1"
semver "^6.3.0"
-"@babel/helper-compilation-targets@^7.8.7":
- version "7.8.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde"
- integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==
+"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
+ integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
dependencies:
- "@babel/compat-data" "^7.8.6"
- browserslist "^4.9.1"
- invariant "^2.2.4"
- levenary "^1.1.1"
- semver "^5.5.0"
+ "@babel/compat-data" "^7.23.5"
+ "@babel/helper-validator-option" "^7.23.5"
+ browserslist "^4.22.2"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72"
- integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9"
+ integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.6"
- "@babel/helper-function-name" "^7.18.6"
- "@babel/helper-member-expression-to-functions" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-member-expression-to-functions" "^7.21.0"
"@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-replace-supers" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.20.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
"@babel/helper-split-export-declaration" "^7.18.6"
-"@babel/helper-create-class-features-plugin@^7.8.3":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz#79753d44017806b481017f24b02fd4113c7106ea"
- integrity sha512-IipaxGaQmW4TfWoXdqjY0TzoXQ1HRS0kPpEgvjosb3u7Uedcq297xFqDQiCcQtRRwzIMif+N1MLVI8C5a4/PAA==
- dependencies:
- "@babel/helper-function-name" "^7.9.5"
- "@babel/helper-member-expression-to-functions" "^7.8.3"
- "@babel/helper-optimise-call-expression" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-replace-supers" "^7.8.6"
- "@babel/helper-split-export-declaration" "^7.8.3"
-
-"@babel/helper-create-regexp-features-plugin@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c"
- integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==
+"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6":
+ version "7.23.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea"
+ integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-member-expression-to-functions" "^7.23.0"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.20"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ semver "^6.3.1"
+
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb"
+ integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- regexpu-core "^5.1.0"
+ regexpu-core "^5.3.1"
-"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8":
- version "7.8.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087"
- integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==
+"@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1"
+ integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.8.3"
- "@babel/helper-regex" "^7.8.3"
- regexpu-core "^4.7.0"
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ regexpu-core "^5.3.1"
+ semver "^6.3.1"
-"@babel/helper-define-map@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15"
- integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==
+"@babel/helper-define-polyfill-provider@^0.3.3":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
+ integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
dependencies:
- "@babel/helper-function-name" "^7.8.3"
- "@babel/types" "^7.8.3"
- lodash "^4.17.13"
-
-"@babel/helper-define-polyfill-provider@^0.3.1":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665"
- integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
- dependencies:
- "@babel/helper-compilation-targets" "^7.13.0"
- "@babel/helper-module-imports" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/traverse" "^7.13.0"
+ "@babel/helper-compilation-targets" "^7.17.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
debug "^4.1.1"
lodash.debounce "^4.0.8"
resolve "^1.14.2"
semver "^6.1.2"
-"@babel/helper-environment-visitor@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7"
- integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==
+"@babel/helper-define-polyfill-provider@^0.5.0":
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b"
+ integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.22.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ debug "^4.1.1"
+ lodash.debounce "^4.0.8"
+ resolve "^1.14.2"
"@babel/helper-environment-visitor@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+"@babel/helper-environment-visitor@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
"@babel/helper-explode-assignable-expression@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
@@ -428,45 +384,21 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-explode-assignable-expression@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982"
- integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==
+"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
+ integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
dependencies:
- "@babel/traverse" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/template" "^7.20.7"
+ "@babel/types" "^7.21.0"
-"@babel/helper-function-name@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83"
- integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==
+"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
dependencies:
- "@babel/template" "^7.18.6"
- "@babel/types" "^7.18.6"
-
-"@babel/helper-function-name@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
- integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
- dependencies:
- "@babel/template" "^7.18.10"
- "@babel/types" "^7.19.0"
-
-"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
- integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==
- dependencies:
- "@babel/helper-get-function-arity" "^7.8.3"
- "@babel/template" "^7.8.3"
- "@babel/types" "^7.9.5"
-
-"@babel/helper-get-function-arity@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5"
- integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==
- dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.23.0"
"@babel/helper-hoist-variables@^7.18.6":
version "7.18.6"
@@ -475,88 +407,65 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-hoist-variables@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134"
- integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==
+"@babel/helper-hoist-variables@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.22.5"
-"@babel/helper-member-expression-to-functions@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc"
- integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==
+"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
+ integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.21.0"
-"@babel/helper-member-expression-to-functions@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c"
- integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==
+"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366"
+ integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==
dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.23.0"
-"@babel/helper-module-imports@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620"
- integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==
- dependencies:
- "@babel/types" "^7.10.4"
-
-"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6":
+"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-module-imports@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498"
- integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==
+"@babel/helper-module-imports@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+ integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.22.15"
-"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz#4f8408afead0188cfa48672f9d0e5787b61778c8"
- integrity sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.6"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-simple-access" "^7.18.6"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/helper-validator-identifier" "^7.18.6"
- "@babel/template" "^7.18.6"
- "@babel/traverse" "^7.18.8"
- "@babel/types" "^7.18.8"
-
-"@babel/helper-module-transforms@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712"
- integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==
+"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.0", "@babel/helper-module-transforms@^7.21.2":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2"
+ integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==
dependencies:
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-module-imports" "^7.18.6"
"@babel/helper-simple-access" "^7.20.2"
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/helper-validator-identifier" "^7.19.1"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.1"
- "@babel/types" "^7.20.2"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.2"
+ "@babel/types" "^7.21.2"
-"@babel/helper-module-transforms@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5"
- integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==
+"@babel/helper-module-transforms@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
+ integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
dependencies:
- "@babel/helper-module-imports" "^7.8.3"
- "@babel/helper-replace-supers" "^7.8.6"
- "@babel/helper-simple-access" "^7.8.3"
- "@babel/helper-split-export-declaration" "^7.8.3"
- "@babel/template" "^7.8.6"
- "@babel/types" "^7.9.0"
- lodash "^4.17.13"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.20"
"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
@@ -565,88 +474,67 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-optimise-call-expression@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9"
- integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==
+"@babel/helper-optimise-call-expression@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
+ integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==
dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.22.5"
-"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.10.4":
+"@babel/helper-plugin-utils@7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670"
- integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==
-
-"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz#9448974dd4fb1d80fefe72e8a0af37809cd30d6d"
- integrity sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==
-
-"@babel/helper-plugin-utils@^7.19.0":
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.20.2"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
-"@babel/helper-regex@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965"
- integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==
- dependencies:
- lodash "^4.17.13"
+"@babel/helper-plugin-utils@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
+ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
-"@babel/helper-remap-async-to-generator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23"
- integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==
+"@babel/helper-remap-async-to-generator@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
+ integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.6"
- "@babel/helper-wrap-function" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-wrap-function" "^7.18.9"
+ "@babel/types" "^7.18.9"
-"@babel/helper-remap-async-to-generator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86"
- integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==
+"@babel/helper-remap-async-to-generator@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0"
+ integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.8.3"
- "@babel/helper-wrap-function" "^7.8.3"
- "@babel/template" "^7.8.3"
- "@babel/traverse" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-wrap-function" "^7.22.20"
-"@babel/helper-replace-supers@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420"
- integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==
+"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331"
+ integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==
dependencies:
- "@babel/helper-environment-visitor" "^7.18.6"
- "@babel/helper-member-expression-to-functions" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-member-expression-to-functions" "^7.20.7"
"@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/traverse" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.20.7"
+ "@babel/types" "^7.20.7"
-"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6":
- version "7.8.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8"
- integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==
+"@babel/helper-replace-supers@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793"
+ integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==
dependencies:
- "@babel/helper-member-expression-to-functions" "^7.8.3"
- "@babel/helper-optimise-call-expression" "^7.8.3"
- "@babel/traverse" "^7.8.6"
- "@babel/types" "^7.8.6"
-
-"@babel/helper-simple-access@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea"
- integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==
- dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-member-expression-to-functions" "^7.22.15"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
"@babel/helper-simple-access@^7.20.2":
version "7.20.2"
@@ -655,20 +543,26 @@
dependencies:
"@babel/types" "^7.20.2"
-"@babel/helper-simple-access@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae"
- integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==
+"@babel/helper-simple-access@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
+ integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
dependencies:
- "@babel/template" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.22.5"
-"@babel/helper-skip-transparent-expression-wrappers@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz#7dff00a5320ca4cf63270e5a0eca4b268b7380d9"
- integrity sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==
+"@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
+ version "7.20.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
+ integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
dependencies:
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.20.0"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847"
+ integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==
+ dependencies:
+ "@babel/types" "^7.22.5"
"@babel/helper-split-export-declaration@^7.18.6":
version "7.18.6"
@@ -677,89 +571,79 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-split-export-declaration@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9"
- integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==
+"@babel/helper-split-export-declaration@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.22.5"
"@babel/helper-string-parser@^7.19.4":
version "7.19.4"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
-"@babel/helper-validator-identifier@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
- integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
-
-"@babel/helper-validator-identifier@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
- integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
+"@babel/helper-string-parser@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+ integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
-"@babel/helper-validator-identifier@^7.19.1":
+"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
version "7.19.1"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
-"@babel/helper-validator-identifier@^7.9.0":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
- integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==
+"@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-"@babel/helper-validator-option@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
- integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
+"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
+ integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
-"@babel/helper-wrap-function@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073"
- integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==
- dependencies:
- "@babel/helper-function-name" "^7.18.6"
- "@babel/template" "^7.18.6"
- "@babel/traverse" "^7.18.6"
- "@babel/types" "^7.18.6"
+"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
+ integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-"@babel/helper-wrap-function@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610"
- integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==
+"@babel/helper-wrap-function@^7.18.9":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3"
+ integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==
dependencies:
- "@babel/helper-function-name" "^7.8.3"
- "@babel/template" "^7.8.3"
- "@babel/traverse" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.5"
+ "@babel/types" "^7.20.5"
-"@babel/helpers@^7.12.5", "@babel/helpers@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.6.tgz#4c966140eaa1fcaa3d5a8c09d7db61077d4debfd"
- integrity sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==
+"@babel/helper-wrap-function@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569"
+ integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==
dependencies:
- "@babel/template" "^7.18.6"
- "@babel/traverse" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.22.19"
-"@babel/helpers@^7.20.1":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9"
- integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==
+"@babel/helpers@^7.12.5", "@babel/helpers@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e"
+ integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==
dependencies:
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.1"
- "@babel/types" "^7.20.0"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
-"@babel/helpers@^7.9.0":
- version "7.9.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f"
- integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==
+"@babel/helpers@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d"
+ integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==
dependencies:
- "@babel/template" "^7.8.3"
- "@babel/traverse" "^7.9.0"
- "@babel/types" "^7.9.0"
+ "@babel/template" "^7.23.9"
+ "@babel/traverse" "^7.23.9"
+ "@babel/types" "^7.23.9"
"@babel/highlight@^7.18.6":
version "7.18.6"
@@ -770,29 +654,24 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/highlight@^7.8.3":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
- integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==
+"@babel/highlight@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+ integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
dependencies:
- "@babel/helper-validator-identifier" "^7.9.0"
- chalk "^2.0.0"
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0":
- version "7.9.4"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8"
- integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2", "@babel/parser@^7.7.7":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3"
+ integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==
-"@babel/parser@^7.12.7", "@babel/parser@^7.18.6", "@babel/parser@^7.18.8", "@babel/parser@^7.7.7":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf"
- integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==
-
-"@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2":
- version "7.20.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2"
- integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==
+"@babel/parser@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b"
+ integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.18.6"
@@ -801,35 +680,50 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz#b4e4dbc2cd1acd0133479918f7c6412961c9adb8"
- integrity sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a"
+ integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6"
- "@babel/plugin-proposal-optional-chaining" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-proposal-async-generator-functions@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz#aedac81e6fc12bb643374656dd5f2605bf743d17"
- integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1"
+ integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==
dependencies:
- "@babel/helper-environment-visitor" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-remap-async-to-generator" "^7.18.6"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.20.7"
-"@babel/plugin-proposal-async-generator-functions@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f"
- integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d"
+ integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-remap-async-to-generator" "^7.8.3"
- "@babel/plugin-syntax-async-generators" "^7.8.0"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/plugin-transform-optional-chaining" "^7.23.3"
+
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b"
+ integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-proposal-async-generator-functions@^7.20.1":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326"
+ integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
-"@babel/plugin-proposal-class-properties@^7.18.6":
+"@babel/plugin-proposal-class-properties@^7.18.6", "@babel/plugin-proposal-class-properties@^7.7.4":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
@@ -837,21 +731,13 @@
"@babel/helper-create-class-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-proposal-class-properties@^7.7.4":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e"
- integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
-
"@babel/plugin-proposal-class-static-block@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020"
- integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d"
+ integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-proposal-dynamic-import@^7.18.6":
@@ -862,20 +748,12 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
-"@babel/plugin-proposal-dynamic-import@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054"
- integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-dynamic-import" "^7.8.0"
-
-"@babel/plugin-proposal-export-namespace-from@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz#1016f0aa5ab383bbf8b3a85a2dcaedf6c8ee7491"
- integrity sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==
+"@babel/plugin-proposal-export-namespace-from@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
+ integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.9"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
"@babel/plugin-proposal-json-strings@^7.18.6":
@@ -886,20 +764,12 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-json-strings" "^7.8.3"
-"@babel/plugin-proposal-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b"
- integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==
+"@babel/plugin-proposal-logical-assignment-operators@^7.18.9":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83"
+ integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-json-strings" "^7.8.0"
-
-"@babel/plugin-proposal-logical-assignment-operators@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz#3b9cac6f1ffc2aa459d111df80c12020dfc6b665"
- integrity sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
@@ -910,14 +780,6 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2"
- integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
-
"@babel/plugin-proposal-numeric-separator@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
@@ -926,14 +788,6 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-proposal-numeric-separator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8"
- integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.8.3"
-
"@babel/plugin-proposal-object-rest-spread@7.12.1":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069"
@@ -943,25 +797,16 @@
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
"@babel/plugin-transform-parameters" "^7.12.1"
-"@babel/plugin-proposal-object-rest-spread@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz#ec93bba06bfb3e15ebd7da73e953d84b094d5daf"
- integrity sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==
+"@babel/plugin-proposal-object-rest-spread@^7.20.2", "@babel/plugin-proposal-object-rest-spread@^7.7.7":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a"
+ integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==
dependencies:
- "@babel/compat-data" "^7.18.6"
- "@babel/helper-compilation-targets" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/compat-data" "^7.20.5"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.18.6"
-
-"@babel/plugin-proposal-object-rest-spread@^7.7.7", "@babel/plugin-proposal-object-rest-spread@^7.9.5":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116"
- integrity sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
- "@babel/plugin-transform-parameters" "^7.9.5"
+ "@babel/plugin-transform-parameters" "^7.20.7"
"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
version "7.18.6"
@@ -971,31 +816,15 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-proposal-optional-catch-binding@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9"
- integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==
+"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea"
+ integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
-
-"@babel/plugin-proposal-optional-chaining@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz#46d4f2ffc20e87fad1d98bc4fa5d466366f6aa0b"
- integrity sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-proposal-optional-chaining@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58"
- integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.0"
-
"@babel/plugin-proposal-private-methods@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
@@ -1004,17 +833,22 @@
"@babel/helper-create-class-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
+"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
+ version "7.21.0-placeholder-for-preset-env.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
+ integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
+
"@babel/plugin-proposal-private-property-in-object@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503"
- integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc"
+ integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-"@babel/plugin-proposal-unicode-property-regex@^7.18.6":
+"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
@@ -1022,15 +856,7 @@
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3":
- version "7.8.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d"
- integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.8.8"
- "@babel/helper-plugin-utils" "^7.8.3"
-
-"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4":
+"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
@@ -1058,7 +884,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3":
+"@babel/plugin-syntax-dynamic-import@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
@@ -1072,28 +898,42 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-flow@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz#53351dd7ae01995e567d04ce42af1a6e0ba846a6"
- integrity sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-import-assertions@^7.18.6":
+"@babel/plugin-syntax-flow@^7.18.6":
version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4"
- integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1"
+ integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-syntax-import-meta@^7.8.3":
+"@babel/plugin-syntax-import-assertions@^7.20.0":
+ version "7.20.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4"
+ integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+"@babel/plugin-syntax-import-assertions@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc"
+ integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-import-attributes@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06"
+ integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3":
+"@babel/plugin-syntax-json-strings@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
@@ -1114,6 +954,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
+"@babel/plugin-syntax-jsx@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473"
+ integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
@@ -1121,27 +968,20 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-numeric-separator@^7.10.4":
+"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f"
- integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
-
"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
@@ -1149,14 +989,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
@@ -1170,72 +1010,76 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-top-level-await@^7.14.5":
+"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3":
version "7.14.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-top-level-await@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391"
- integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
-
-"@babel/plugin-syntax-typescript@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285"
- integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-syntax-typescript@^7.7.2":
+"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2":
version "7.20.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7"
integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==
dependencies:
"@babel/helper-plugin-utils" "^7.19.0"
-"@babel/plugin-syntax-typescript@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz#c1f659dda97711a569cef75275f7e15dcaa6cabc"
- integrity sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg==
+"@babel/plugin-syntax-typescript@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f"
+ integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-arrow-functions@^7.18.6":
+"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe"
- integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
+ integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==
dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-arrow-functions@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6"
- integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==
+"@babel/plugin-transform-arrow-functions@^7.18.6":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551"
+ integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-arrow-functions@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b"
+ integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-async-generator-functions@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce"
+ integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-remap-async-to-generator" "^7.22.20"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-transform-async-to-generator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615"
- integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354"
+ integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==
dependencies:
"@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-remap-async-to-generator" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
-"@babel/plugin-transform-async-to-generator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086"
- integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==
+"@babel/plugin-transform-async-to-generator@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa"
+ integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==
dependencies:
- "@babel/helper-module-imports" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-remap-async-to-generator" "^7.8.3"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-remap-async-to-generator" "^7.22.20"
"@babel/plugin-transform-block-scoped-functions@^7.18.6":
version "7.18.6"
@@ -1244,85 +1088,104 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-block-scoped-functions@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3"
- integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==
+"@babel/plugin-transform-block-scoped-functions@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77"
+ integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-block-scoping@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz#b5f78318914615397d86a731ef2cc668796a726c"
- integrity sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==
+"@babel/plugin-transform-block-scoping@^7.20.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02"
+ integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
-"@babel/plugin-transform-block-scoping@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a"
- integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==
+"@babel/plugin-transform-block-scoping@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5"
+ integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- lodash "^4.17.13"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-classes@^7.18.6":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz#7e85777e622e979c85c701a095280360b818ce49"
- integrity sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==
+"@babel/plugin-transform-class-properties@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48"
+ integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-class-static-block@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5"
+ integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-transform-classes@^7.20.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665"
+ integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.6"
- "@babel/helper-function-name" "^7.18.6"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
"@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-replace-supers" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-replace-supers" "^7.20.7"
"@babel/helper-split-export-declaration" "^7.18.6"
globals "^11.1.0"
-"@babel/plugin-transform-classes@^7.9.5":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c"
- integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.8.3"
- "@babel/helper-define-map" "^7.8.3"
- "@babel/helper-function-name" "^7.9.5"
- "@babel/helper-optimise-call-expression" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-replace-supers" "^7.8.6"
- "@babel/helper-split-export-declaration" "^7.8.3"
+"@babel/plugin-transform-classes@^7.23.8":
+ version "7.23.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92"
+ integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-compilation-targets" "^7.23.6"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.20"
+ "@babel/helper-split-export-declaration" "^7.22.6"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz#5d15eb90e22e69604f3348344c91165c5395d032"
- integrity sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==
+"@babel/plugin-transform-computed-properties@^7.18.9":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa"
+ integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/template" "^7.20.7"
-"@babel/plugin-transform-computed-properties@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b"
- integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==
+"@babel/plugin-transform-computed-properties@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474"
+ integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/template" "^7.22.15"
-"@babel/plugin-transform-destructuring@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz#a98b0e42c7ffbf5eefcbcf33280430f230895c6f"
- integrity sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==
+"@babel/plugin-transform-destructuring@^7.20.2":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454"
+ integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
-"@babel/plugin-transform-destructuring@^7.9.5":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50"
- integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==
+"@babel/plugin-transform-destructuring@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311"
+ integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-dotall-regex@^7.18.6":
+"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==
@@ -1330,27 +1193,35 @@
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e"
- integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==
+"@babel/plugin-transform-dotall-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50"
+ integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-duplicate-keys@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz#e6c94e8cd3c9dd8a88144f7b78ae22975a7ff473"
- integrity sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==
+"@babel/plugin-transform-duplicate-keys@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e"
+ integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-duplicate-keys@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1"
- integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==
+"@babel/plugin-transform-duplicate-keys@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce"
+ integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-dynamic-import@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143"
+ integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-transform-exponentiation-operator@^7.18.6":
version "7.18.6"
@@ -1360,66 +1231,92 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-exponentiation-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7"
- integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==
+"@babel/plugin-transform-exponentiation-operator@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18"
+ integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-flow-strip-types@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz#c497957f09e86e3df7296271e9eb642876bf7788"
- integrity sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==
+"@babel/plugin-transform-export-namespace-from@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191"
+ integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
- "@babel/plugin-syntax-flow" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/plugin-transform-for-of@^7.18.6":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1"
- integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==
+"@babel/plugin-transform-flow-strip-types@^7.18.6":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5"
+ integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-flow" "^7.18.6"
-"@babel/plugin-transform-for-of@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e"
- integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==
+"@babel/plugin-transform-for-of@^7.18.8":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e"
+ integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.20.2"
-"@babel/plugin-transform-function-name@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz#6a7e4ae2893d336fd1b8f64c9f92276391d0f1b4"
- integrity sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==
+"@babel/plugin-transform-for-of@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e"
+ integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==
dependencies:
- "@babel/helper-compilation-targets" "^7.18.6"
- "@babel/helper-function-name" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
-"@babel/plugin-transform-function-name@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b"
- integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==
+"@babel/plugin-transform-function-name@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
+ integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
dependencies:
- "@babel/helper-function-name" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-literals@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz#9d6af353b5209df72960baf4492722d56f39a205"
- integrity sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==
+"@babel/plugin-transform-function-name@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc"
+ integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-literals@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1"
- integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==
+"@babel/plugin-transform-json-strings@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d"
+ integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-transform-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
+ integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4"
+ integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-logical-assignment-operators@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5"
+ integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-transform-member-expression-literals@^7.18.6":
version "7.18.6"
@@ -1428,71 +1325,66 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-member-expression-literals@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410"
- integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==
+"@babel/plugin-transform-member-expression-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc"
+ integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-modules-amd@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21"
- integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==
+"@babel/plugin-transform-modules-amd@^7.19.6":
+ version "7.20.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a"
+ integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==
dependencies:
- "@babel/helper-module-transforms" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- babel-plugin-dynamic-import-node "^2.3.3"
+ "@babel/helper-module-transforms" "^7.20.11"
+ "@babel/helper-plugin-utils" "^7.20.2"
-"@babel/plugin-transform-modules-amd@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4"
- integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==
+"@babel/plugin-transform-modules-amd@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d"
+ integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==
dependencies:
- "@babel/helper-module-transforms" "^7.9.0"
- "@babel/helper-plugin-utils" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-modules-commonjs@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883"
- integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==
+"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.7.5":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7"
+ integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==
dependencies:
- "@babel/helper-module-transforms" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-simple-access" "^7.18.6"
- babel-plugin-dynamic-import-node "^2.3.3"
+ "@babel/helper-module-transforms" "^7.21.2"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-simple-access" "^7.20.2"
-"@babel/plugin-transform-modules-commonjs@^7.7.5", "@babel/plugin-transform-modules-commonjs@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940"
- integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==
+"@babel/plugin-transform-modules-commonjs@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4"
+ integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==
dependencies:
- "@babel/helper-module-transforms" "^7.9.0"
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-simple-access" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-simple-access" "^7.22.5"
-"@babel/plugin-transform-modules-systemjs@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz#026511b7657d63bf5d4cf2fd4aeb963139914a54"
- integrity sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==
+"@babel/plugin-transform-modules-systemjs@^7.19.6":
+ version "7.20.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e"
+ integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==
dependencies:
"@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-module-transforms" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-validator-identifier" "^7.18.6"
- babel-plugin-dynamic-import-node "^2.3.3"
+ "@babel/helper-module-transforms" "^7.20.11"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-validator-identifier" "^7.19.1"
-"@babel/plugin-transform-modules-systemjs@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90"
- integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==
+"@babel/plugin-transform-modules-systemjs@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be"
+ integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==
dependencies:
- "@babel/helper-hoist-variables" "^7.8.3"
- "@babel/helper-module-transforms" "^7.9.0"
- "@babel/helper-plugin-utils" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.20"
"@babel/plugin-transform-modules-umd@^7.18.6":
version "7.18.6"
@@ -1502,28 +1394,29 @@
"@babel/helper-module-transforms" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-modules-umd@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697"
- integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==
+"@babel/plugin-transform-modules-umd@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9"
+ integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==
dependencies:
- "@babel/helper-module-transforms" "^7.9.0"
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-module-transforms" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d"
- integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8"
+ integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-create-regexp-features-plugin" "^7.20.5"
+ "@babel/helper-plugin-utils" "^7.20.2"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c"
- integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f"
+ integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.8.3"
+ "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-transform-new-target@^7.18.6":
version "7.18.6"
@@ -1532,12 +1425,39 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-new-target@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43"
- integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==
+"@babel/plugin-transform-new-target@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980"
+ integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e"
+ integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-transform-numeric-separator@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29"
+ integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-transform-object-rest-spread@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83"
+ integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==
+ dependencies:
+ "@babel/compat-data" "^7.23.3"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.23.3"
"@babel/plugin-transform-object-super@^7.18.6":
version "7.18.6"
@@ -1547,28 +1467,62 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/helper-replace-supers" "^7.18.6"
-"@babel/plugin-transform-object-super@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725"
- integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==
+"@babel/plugin-transform-object-super@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd"
+ integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-replace-supers" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.20"
-"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.18.6":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a"
- integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==
+"@babel/plugin-transform-optional-catch-binding@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017"
+ integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-transform-parameters@^7.9.5":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795"
- integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==
+"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017"
+ integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==
dependencies:
- "@babel/helper-get-function-arity" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f"
+ integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-parameters@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af"
+ integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-private-methods@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4"
+ integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-private-property-in-object@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5"
+ integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-transform-property-literals@^7.18.6":
version "7.18.6"
@@ -1577,19 +1531,26 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-property-literals@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263"
- integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==
+"@babel/plugin-transform-property-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875"
+ integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-transform-react-constant-elements@^7.14.5":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.6.tgz#e477693aad3e2aafe86b6db03748a30aef417a5e"
- integrity sha512-4g5H1bonF1dqgMe+wQ2fvDlRZ/mN/KwArk13teDv+xxn+pUDEiiDluQd6D2B30MJcL1u3qr0WZpfq0mw9/zSqA==
+ version "7.20.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz#3f02c784e0b711970d7d8ccc96c4359d64e27ac7"
+ integrity sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-react-constant-elements@^7.21.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz#5efc001d07ef0f7da0d73c3a86c132f73d28e43c"
+ integrity sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-transform-react-display-name@^7.18.6":
version "7.18.6"
@@ -1606,15 +1567,15 @@
"@babel/plugin-transform-react-jsx" "^7.18.6"
"@babel/plugin-transform-react-jsx@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz#2721e96d31df96e3b7ad48ff446995d26bc028ff"
- integrity sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2"
+ integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
"@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-jsx" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.21.0"
"@babel/plugin-transform-react-pure-annotations@^7.18.6":
version "7.18.6"
@@ -1625,19 +1586,20 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-transform-regenerator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73"
- integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d"
+ integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- regenerator-transform "^0.15.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ regenerator-transform "^0.15.1"
-"@babel/plugin-transform-regenerator@^7.8.7":
- version "7.8.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8"
- integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==
+"@babel/plugin-transform-regenerator@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c"
+ integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==
dependencies:
- regenerator-transform "^0.14.2"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ regenerator-transform "^0.15.2"
"@babel/plugin-transform-reserved-words@^7.18.6":
version "7.18.6"
@@ -1646,35 +1608,25 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-reserved-words@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5"
- integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==
+"@babel/plugin-transform-reserved-words@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8"
+ integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-runtime@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz#77b14416015ea93367ca06979710f5000ff34ccb"
- integrity sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA==
+"@babel/plugin-transform-runtime@^7.18.6", "@babel/plugin-transform-runtime@^7.7.6":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8"
+ integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==
dependencies:
"@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- babel-plugin-polyfill-corejs2 "^0.3.1"
- babel-plugin-polyfill-corejs3 "^0.5.2"
- babel-plugin-polyfill-regenerator "^0.3.1"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ babel-plugin-polyfill-corejs2 "^0.3.3"
+ babel-plugin-polyfill-corejs3 "^0.6.0"
+ babel-plugin-polyfill-regenerator "^0.4.1"
semver "^6.3.0"
-"@babel/plugin-transform-runtime@^7.7.6":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b"
- integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==
- dependencies:
- "@babel/helper-module-imports" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
- resolve "^1.8.1"
- semver "^5.5.1"
-
"@babel/plugin-transform-shorthand-properties@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
@@ -1682,27 +1634,28 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-shorthand-properties@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8"
- integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==
+"@babel/plugin-transform-shorthand-properties@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210"
+ integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-spread@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz#82b080241965f1689f0a60ecc6f1f6575dbdb9d6"
- integrity sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==
+"@babel/plugin-transform-spread@^7.19.0":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e"
+ integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
-"@babel/plugin-transform-spread@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8"
- integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==
+"@babel/plugin-transform-spread@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c"
+ integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
"@babel/plugin-transform-sticky-regex@^7.18.6":
version "7.18.6"
@@ -1711,67 +1664,81 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-sticky-regex@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100"
- integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==
+"@babel/plugin-transform-sticky-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04"
+ integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-regex" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-template-literals@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz#b763f4dc9d11a7cce58cf9a490d82e80547db9c2"
- integrity sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==
+"@babel/plugin-transform-template-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
+ integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-template-literals@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80"
- integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==
+"@babel/plugin-transform-template-literals@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07"
+ integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-typeof-symbol@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz#486bb39d5a18047358e0d04dc0d2f322f0b92e92"
- integrity sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==
+"@babel/plugin-transform-typeof-symbol@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0"
+ integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-typeof-symbol@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412"
- integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==
+"@babel/plugin-transform-typeof-symbol@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4"
+ integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-typescript@^7.18.6":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz#303feb7a920e650f2213ef37b36bbf327e6fa5a0"
- integrity sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==
+"@babel/plugin-transform-typescript@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz#f0956a153679e3b377ae5b7f0143427151e4c848"
+ integrity sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-typescript" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-typescript" "^7.20.0"
-"@babel/plugin-transform-typescript@^7.9.0":
- version "7.9.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.4.tgz#4bb4dde4f10bbf2d787fce9707fb09b483e33359"
- integrity sha512-yeWeUkKx2auDbSxRe8MusAG+n4m9BFY/v+lPjmQDgOFX5qnySkUY5oXzkp6FwPdsYqnKay6lorXYdC0n3bZO7w==
+"@babel/plugin-transform-typescript@^7.23.3":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c"
+ integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-syntax-typescript" "^7.8.3"
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.23.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-typescript" "^7.23.3"
-"@babel/plugin-transform-unicode-escapes@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz#0d01fb7fb2243ae1c033f65f6e3b4be78db75f27"
- integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==
+"@babel/plugin-transform-unicode-escapes@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
+ integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-unicode-escapes@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925"
+ integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-property-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad"
+ integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-transform-unicode-regex@^7.18.6":
version "7.18.6"
@@ -1781,37 +1748,45 @@
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-unicode-regex@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad"
- integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==
+"@babel/plugin-transform-unicode-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc"
+ integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
-"@babel/preset-env@^7.15.6", "@babel/preset-env@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.6.tgz#953422e98a5f66bc56cd0b9074eaea127ec86ace"
- integrity sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==
+"@babel/plugin-transform-unicode-sets-regex@^7.23.3":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e"
+ integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==
dependencies:
- "@babel/compat-data" "^7.18.6"
- "@babel/helper-compilation-targets" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-create-regexp-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/preset-env@^7.15.6", "@babel/preset-env@^7.18.6", "@babel/preset-env@^7.7.7":
+ version "7.20.2"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506"
+ integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==
+ dependencies:
+ "@babel/compat-data" "^7.20.1"
+ "@babel/helper-compilation-targets" "^7.20.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/helper-validator-option" "^7.18.6"
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.6"
- "@babel/plugin-proposal-async-generator-functions" "^7.18.6"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-async-generator-functions" "^7.20.1"
"@babel/plugin-proposal-class-properties" "^7.18.6"
"@babel/plugin-proposal-class-static-block" "^7.18.6"
"@babel/plugin-proposal-dynamic-import" "^7.18.6"
- "@babel/plugin-proposal-export-namespace-from" "^7.18.6"
+ "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
"@babel/plugin-proposal-json-strings" "^7.18.6"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.18.6"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
"@babel/plugin-proposal-numeric-separator" "^7.18.6"
- "@babel/plugin-proposal-object-rest-spread" "^7.18.6"
+ "@babel/plugin-proposal-object-rest-spread" "^7.20.2"
"@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
- "@babel/plugin-proposal-optional-chaining" "^7.18.6"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
"@babel/plugin-proposal-private-methods" "^7.18.6"
"@babel/plugin-proposal-private-property-in-object" "^7.18.6"
"@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
@@ -1820,7 +1795,7 @@
"@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
- "@babel/plugin-syntax-import-assertions" "^7.18.6"
+ "@babel/plugin-syntax-import-assertions" "^7.20.0"
"@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
@@ -1833,125 +1808,144 @@
"@babel/plugin-transform-arrow-functions" "^7.18.6"
"@babel/plugin-transform-async-to-generator" "^7.18.6"
"@babel/plugin-transform-block-scoped-functions" "^7.18.6"
- "@babel/plugin-transform-block-scoping" "^7.18.6"
- "@babel/plugin-transform-classes" "^7.18.6"
- "@babel/plugin-transform-computed-properties" "^7.18.6"
- "@babel/plugin-transform-destructuring" "^7.18.6"
+ "@babel/plugin-transform-block-scoping" "^7.20.2"
+ "@babel/plugin-transform-classes" "^7.20.2"
+ "@babel/plugin-transform-computed-properties" "^7.18.9"
+ "@babel/plugin-transform-destructuring" "^7.20.2"
"@babel/plugin-transform-dotall-regex" "^7.18.6"
- "@babel/plugin-transform-duplicate-keys" "^7.18.6"
+ "@babel/plugin-transform-duplicate-keys" "^7.18.9"
"@babel/plugin-transform-exponentiation-operator" "^7.18.6"
- "@babel/plugin-transform-for-of" "^7.18.6"
- "@babel/plugin-transform-function-name" "^7.18.6"
- "@babel/plugin-transform-literals" "^7.18.6"
+ "@babel/plugin-transform-for-of" "^7.18.8"
+ "@babel/plugin-transform-function-name" "^7.18.9"
+ "@babel/plugin-transform-literals" "^7.18.9"
"@babel/plugin-transform-member-expression-literals" "^7.18.6"
- "@babel/plugin-transform-modules-amd" "^7.18.6"
- "@babel/plugin-transform-modules-commonjs" "^7.18.6"
- "@babel/plugin-transform-modules-systemjs" "^7.18.6"
+ "@babel/plugin-transform-modules-amd" "^7.19.6"
+ "@babel/plugin-transform-modules-commonjs" "^7.19.6"
+ "@babel/plugin-transform-modules-systemjs" "^7.19.6"
"@babel/plugin-transform-modules-umd" "^7.18.6"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1"
"@babel/plugin-transform-new-target" "^7.18.6"
"@babel/plugin-transform-object-super" "^7.18.6"
- "@babel/plugin-transform-parameters" "^7.18.6"
+ "@babel/plugin-transform-parameters" "^7.20.1"
"@babel/plugin-transform-property-literals" "^7.18.6"
"@babel/plugin-transform-regenerator" "^7.18.6"
"@babel/plugin-transform-reserved-words" "^7.18.6"
"@babel/plugin-transform-shorthand-properties" "^7.18.6"
- "@babel/plugin-transform-spread" "^7.18.6"
+ "@babel/plugin-transform-spread" "^7.19.0"
"@babel/plugin-transform-sticky-regex" "^7.18.6"
- "@babel/plugin-transform-template-literals" "^7.18.6"
- "@babel/plugin-transform-typeof-symbol" "^7.18.6"
- "@babel/plugin-transform-unicode-escapes" "^7.18.6"
+ "@babel/plugin-transform-template-literals" "^7.18.9"
+ "@babel/plugin-transform-typeof-symbol" "^7.18.9"
+ "@babel/plugin-transform-unicode-escapes" "^7.18.10"
"@babel/plugin-transform-unicode-regex" "^7.18.6"
"@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.18.6"
- babel-plugin-polyfill-corejs2 "^0.3.1"
- babel-plugin-polyfill-corejs3 "^0.5.2"
- babel-plugin-polyfill-regenerator "^0.3.1"
- core-js-compat "^3.22.1"
+ "@babel/types" "^7.20.2"
+ babel-plugin-polyfill-corejs2 "^0.3.3"
+ babel-plugin-polyfill-corejs3 "^0.6.0"
+ babel-plugin-polyfill-regenerator "^0.4.1"
+ core-js-compat "^3.25.1"
semver "^6.3.0"
-"@babel/preset-env@^7.7.7":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f"
- integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ==
- dependencies:
- "@babel/compat-data" "^7.9.0"
- "@babel/helper-compilation-targets" "^7.8.7"
- "@babel/helper-module-imports" "^7.8.3"
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-proposal-async-generator-functions" "^7.8.3"
- "@babel/plugin-proposal-dynamic-import" "^7.8.3"
- "@babel/plugin-proposal-json-strings" "^7.8.3"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-proposal-numeric-separator" "^7.8.3"
- "@babel/plugin-proposal-object-rest-spread" "^7.9.5"
- "@babel/plugin-proposal-optional-catch-binding" "^7.8.3"
- "@babel/plugin-proposal-optional-chaining" "^7.9.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.8.3"
- "@babel/plugin-syntax-async-generators" "^7.8.0"
- "@babel/plugin-syntax-dynamic-import" "^7.8.0"
- "@babel/plugin-syntax-json-strings" "^7.8.0"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
- "@babel/plugin-syntax-numeric-separator" "^7.8.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
- "@babel/plugin-syntax-optional-chaining" "^7.8.0"
- "@babel/plugin-syntax-top-level-await" "^7.8.3"
- "@babel/plugin-transform-arrow-functions" "^7.8.3"
- "@babel/plugin-transform-async-to-generator" "^7.8.3"
- "@babel/plugin-transform-block-scoped-functions" "^7.8.3"
- "@babel/plugin-transform-block-scoping" "^7.8.3"
- "@babel/plugin-transform-classes" "^7.9.5"
- "@babel/plugin-transform-computed-properties" "^7.8.3"
- "@babel/plugin-transform-destructuring" "^7.9.5"
- "@babel/plugin-transform-dotall-regex" "^7.8.3"
- "@babel/plugin-transform-duplicate-keys" "^7.8.3"
- "@babel/plugin-transform-exponentiation-operator" "^7.8.3"
- "@babel/plugin-transform-for-of" "^7.9.0"
- "@babel/plugin-transform-function-name" "^7.8.3"
- "@babel/plugin-transform-literals" "^7.8.3"
- "@babel/plugin-transform-member-expression-literals" "^7.8.3"
- "@babel/plugin-transform-modules-amd" "^7.9.0"
- "@babel/plugin-transform-modules-commonjs" "^7.9.0"
- "@babel/plugin-transform-modules-systemjs" "^7.9.0"
- "@babel/plugin-transform-modules-umd" "^7.9.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3"
- "@babel/plugin-transform-new-target" "^7.8.3"
- "@babel/plugin-transform-object-super" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.9.5"
- "@babel/plugin-transform-property-literals" "^7.8.3"
- "@babel/plugin-transform-regenerator" "^7.8.7"
- "@babel/plugin-transform-reserved-words" "^7.8.3"
- "@babel/plugin-transform-shorthand-properties" "^7.8.3"
- "@babel/plugin-transform-spread" "^7.8.3"
- "@babel/plugin-transform-sticky-regex" "^7.8.3"
- "@babel/plugin-transform-template-literals" "^7.8.3"
- "@babel/plugin-transform-typeof-symbol" "^7.8.4"
- "@babel/plugin-transform-unicode-regex" "^7.8.3"
- "@babel/preset-modules" "^0.1.3"
- "@babel/types" "^7.9.5"
- browserslist "^4.9.1"
- core-js-compat "^3.6.2"
- invariant "^2.2.2"
- levenary "^1.1.1"
- semver "^5.5.0"
+"@babel/preset-env@^7.20.2":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.9.tgz#beace3b7994560ed6bf78e4ae2073dff45387669"
+ integrity sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==
+ dependencies:
+ "@babel/compat-data" "^7.23.5"
+ "@babel/helper-compilation-targets" "^7.23.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-option" "^7.23.5"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7"
+ "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-import-assertions" "^7.23.3"
+ "@babel/plugin-syntax-import-attributes" "^7.23.3"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
+ "@babel/plugin-transform-arrow-functions" "^7.23.3"
+ "@babel/plugin-transform-async-generator-functions" "^7.23.9"
+ "@babel/plugin-transform-async-to-generator" "^7.23.3"
+ "@babel/plugin-transform-block-scoped-functions" "^7.23.3"
+ "@babel/plugin-transform-block-scoping" "^7.23.4"
+ "@babel/plugin-transform-class-properties" "^7.23.3"
+ "@babel/plugin-transform-class-static-block" "^7.23.4"
+ "@babel/plugin-transform-classes" "^7.23.8"
+ "@babel/plugin-transform-computed-properties" "^7.23.3"
+ "@babel/plugin-transform-destructuring" "^7.23.3"
+ "@babel/plugin-transform-dotall-regex" "^7.23.3"
+ "@babel/plugin-transform-duplicate-keys" "^7.23.3"
+ "@babel/plugin-transform-dynamic-import" "^7.23.4"
+ "@babel/plugin-transform-exponentiation-operator" "^7.23.3"
+ "@babel/plugin-transform-export-namespace-from" "^7.23.4"
+ "@babel/plugin-transform-for-of" "^7.23.6"
+ "@babel/plugin-transform-function-name" "^7.23.3"
+ "@babel/plugin-transform-json-strings" "^7.23.4"
+ "@babel/plugin-transform-literals" "^7.23.3"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.23.4"
+ "@babel/plugin-transform-member-expression-literals" "^7.23.3"
+ "@babel/plugin-transform-modules-amd" "^7.23.3"
+ "@babel/plugin-transform-modules-commonjs" "^7.23.3"
+ "@babel/plugin-transform-modules-systemjs" "^7.23.9"
+ "@babel/plugin-transform-modules-umd" "^7.23.3"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5"
+ "@babel/plugin-transform-new-target" "^7.23.3"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4"
+ "@babel/plugin-transform-numeric-separator" "^7.23.4"
+ "@babel/plugin-transform-object-rest-spread" "^7.23.4"
+ "@babel/plugin-transform-object-super" "^7.23.3"
+ "@babel/plugin-transform-optional-catch-binding" "^7.23.4"
+ "@babel/plugin-transform-optional-chaining" "^7.23.4"
+ "@babel/plugin-transform-parameters" "^7.23.3"
+ "@babel/plugin-transform-private-methods" "^7.23.3"
+ "@babel/plugin-transform-private-property-in-object" "^7.23.4"
+ "@babel/plugin-transform-property-literals" "^7.23.3"
+ "@babel/plugin-transform-regenerator" "^7.23.3"
+ "@babel/plugin-transform-reserved-words" "^7.23.3"
+ "@babel/plugin-transform-shorthand-properties" "^7.23.3"
+ "@babel/plugin-transform-spread" "^7.23.3"
+ "@babel/plugin-transform-sticky-regex" "^7.23.3"
+ "@babel/plugin-transform-template-literals" "^7.23.3"
+ "@babel/plugin-transform-typeof-symbol" "^7.23.3"
+ "@babel/plugin-transform-unicode-escapes" "^7.23.3"
+ "@babel/plugin-transform-unicode-property-regex" "^7.23.3"
+ "@babel/plugin-transform-unicode-regex" "^7.23.3"
+ "@babel/plugin-transform-unicode-sets-regex" "^7.23.3"
+ "@babel/preset-modules" "0.1.6-no-external-plugins"
+ babel-plugin-polyfill-corejs2 "^0.4.8"
+ babel-plugin-polyfill-corejs3 "^0.9.0"
+ babel-plugin-polyfill-regenerator "^0.5.5"
+ core-js-compat "^3.31.0"
+ semver "^6.3.1"
"@babel/preset-flow@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.10.4.tgz#e0d9c72f8cb02d1633f6a5b7b16763aa2edf659f"
- integrity sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb"
+ integrity sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
- "@babel/plugin-transform-flow-strip-types" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-transform-flow-strip-types" "^7.18.6"
-"@babel/preset-modules@^0.1.3":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"
- integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==
+"@babel/preset-modules@0.1.6-no-external-plugins":
+ version "0.1.6-no-external-plugins"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
+ integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
- "@babel/plugin-transform-dotall-regex" "^7.4.4"
"@babel/types" "^7.4.4"
esutils "^2.0.2"
@@ -1978,150 +1972,119 @@
"@babel/plugin-transform-react-jsx-development" "^7.18.6"
"@babel/plugin-transform-react-pure-annotations" "^7.18.6"
-"@babel/preset-typescript@^7.15.0", "@babel/preset-typescript@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399"
- integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-validator-option" "^7.18.6"
- "@babel/plugin-transform-typescript" "^7.18.6"
-
-"@babel/preset-typescript@^7.9.0":
- version "7.9.0"
- resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz#87705a72b1f0d59df21c179f7c3d2ef4b16ce192"
- integrity sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==
+"@babel/preset-typescript@^7.15.0", "@babel/preset-typescript@^7.18.6", "@babel/preset-typescript@^7.9.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz#bcbbca513e8213691fe5d4b23d9251e01f00ebff"
+ integrity sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==
dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
- "@babel/plugin-transform-typescript" "^7.9.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-validator-option" "^7.21.0"
+ "@babel/plugin-transform-typescript" "^7.21.0"
-"@babel/runtime-corejs3@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.6.tgz#6f02c5536911f4b445946a2179554b95c8838635"
- integrity sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==
+"@babel/preset-typescript@^7.21.0":
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913"
+ integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==
dependencies:
- core-js-pure "^3.20.2"
- regenerator-runtime "^0.13.4"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-option" "^7.22.15"
+ "@babel/plugin-syntax-jsx" "^7.23.3"
+ "@babel/plugin-transform-modules-commonjs" "^7.23.3"
+ "@babel/plugin-transform-typescript" "^7.23.3"
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
- version "7.9.2"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
- integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==
- dependencies:
- regenerator-runtime "^0.13.4"
+"@babel/regjsgen@^0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
+ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580"
- integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==
+"@babel/runtime-corejs3@^7.18.6":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz#6e4939d9d9789ff63e2dc58e88f13a3913a24eba"
+ integrity sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw==
dependencies:
- regenerator-runtime "^0.13.4"
+ core-js-pure "^3.25.1"
+ regenerator-runtime "^0.13.11"
-"@babel/runtime@^7.10.4":
- version "7.12.5"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
- integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.7", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
+ integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
dependencies:
- regenerator-runtime "^0.13.4"
+ regenerator-runtime "^0.13.11"
-"@babel/template@^7.12.7", "@babel/template@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31"
- integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==
+"@babel/runtime@^7.20.1":
+ version "7.23.8"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650"
+ integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==
dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/parser" "^7.18.6"
- "@babel/types" "^7.18.6"
+ regenerator-runtime "^0.14.0"
-"@babel/template@^7.18.10", "@babel/template@^7.3.3":
- version "7.18.10"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
- integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
+"@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
+ integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
dependencies:
"@babel/code-frame" "^7.18.6"
- "@babel/parser" "^7.18.10"
- "@babel/types" "^7.18.10"
-
-"@babel/template@^7.8.3", "@babel/template@^7.8.6":
- version "7.8.6"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
- integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==
- dependencies:
- "@babel/code-frame" "^7.8.3"
- "@babel/parser" "^7.8.6"
- "@babel/types" "^7.8.6"
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
-"@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.8":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.8.tgz#f095e62ab46abf1da35e5a2011f43aee72d8d5b0"
- integrity sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==
+"@babel/template@^7.22.15", "@babel/template@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a"
+ integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==
dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.18.7"
- "@babel/helper-environment-visitor" "^7.18.6"
- "@babel/helper-function-name" "^7.18.6"
- "@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.18.8"
- "@babel/types" "^7.18.8"
- debug "^4.1.0"
- globals "^11.1.0"
+ "@babel/code-frame" "^7.23.5"
+ "@babel/parser" "^7.23.9"
+ "@babel/types" "^7.23.9"
-"@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8"
- integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==
+"@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75"
+ integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==
dependencies:
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.1"
+ "@babel/generator" "^7.21.1"
"@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-function-name" "^7.21.0"
"@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.20.1"
- "@babel/types" "^7.20.0"
+ "@babel/parser" "^7.21.2"
+ "@babel/types" "^7.21.2"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2"
- integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==
- dependencies:
- "@babel/code-frame" "^7.8.3"
- "@babel/generator" "^7.9.5"
- "@babel/helper-function-name" "^7.9.5"
- "@babel/helper-split-export-declaration" "^7.8.3"
- "@babel/parser" "^7.9.0"
- "@babel/types" "^7.9.5"
- debug "^4.1.0"
+"@babel/traverse@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950"
+ integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==
+ dependencies:
+ "@babel/code-frame" "^7.23.5"
+ "@babel/generator" "^7.23.6"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/parser" "^7.23.9"
+ "@babel/types" "^7.23.9"
+ debug "^4.3.1"
globals "^11.1.0"
- lodash "^4.17.13"
-
-"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5":
- version "7.11.5"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d"
- integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==
- dependencies:
- "@babel/helper-validator-identifier" "^7.10.4"
- lodash "^4.17.19"
- to-fast-properties "^2.0.0"
-"@babel/types@^7.12.7", "@babel/types@^7.15.6", "@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.18.8":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.8.tgz#c5af199951bf41ba4a6a9a6d0d8ad722b30cd42f"
- integrity sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==
+"@babel/types@^7.0.0", "@babel/types@^7.12.7", "@babel/types@^7.15.6", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1"
+ integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==
dependencies:
- "@babel/helper-validator-identifier" "^7.18.6"
+ "@babel/helper-string-parser" "^7.19.4"
+ "@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
-"@babel/types@^7.18.10", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.3":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842"
- integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==
+"@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002"
+ integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==
dependencies:
- "@babel/helper-string-parser" "^7.19.4"
- "@babel/helper-validator-identifier" "^7.19.1"
+ "@babel/helper-string-parser" "^7.23.4"
+ "@babel/helper-validator-identifier" "^7.22.20"
to-fast-properties "^2.0.0"
"@bcoe/v8-coverage@^0.2.3":
@@ -2129,187 +2092,197 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@changesets/apply-release-plan@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-5.0.1.tgz#ed3e30550f787ef1b72f0a51e29a54d244123109"
- integrity sha512-ltYLM/PPoL1Un9hnNCbUac25FWonJvIZ/9C3O4UyZ/k4rir9FGvH6KLtMOiPEAJWnXmaHeRDr06MzohuXOnmvw==
- dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/config" "^1.6.1"
- "@changesets/get-version-range-type" "^0.3.2"
- "@changesets/git" "^1.1.2"
- "@changesets/types" "^4.0.1"
- "@manypkg/get-packages" "^1.0.1"
+"@changesets/apply-release-plan@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-7.0.0.tgz#ce3c3dfc5720550a5d592b54ad2f411f816ec5ff"
+ integrity sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==
+ dependencies:
+ "@babel/runtime" "^7.20.1"
+ "@changesets/config" "^3.0.0"
+ "@changesets/get-version-range-type" "^0.4.0"
+ "@changesets/git" "^3.0.0"
+ "@changesets/types" "^6.0.0"
+ "@manypkg/get-packages" "^1.1.3"
detect-indent "^6.0.0"
fs-extra "^7.0.1"
lodash.startcase "^4.4.0"
outdent "^0.5.0"
- prettier "^1.19.1"
+ prettier "^2.7.1"
resolve-from "^5.0.0"
- semver "^5.4.1"
+ semver "^7.5.3"
-"@changesets/assemble-release-plan@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.1.tgz#80e9b750705677eb2d6356c581ed9c2e97fd68e7"
- integrity sha512-KQqafvScTFQ/4Q2LpLmDYhU47LWvIGcgVS8tzKU8fBvRdKuLGQXe42VYbwVM0cHIkFd/b6YFn+H2QMdKC2MjIQ==
+"@changesets/assemble-release-plan@^6.0.0":
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.0.tgz#c69969b4bef7c32a8544b6941d1053260ca47e05"
+ integrity sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==
dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/errors" "^0.1.4"
- "@changesets/get-dependents-graph" "^1.2.2"
- "@changesets/types" "^4.0.1"
- "@manypkg/get-packages" "^1.0.1"
- semver "^5.4.1"
+ "@babel/runtime" "^7.20.1"
+ "@changesets/errors" "^0.2.0"
+ "@changesets/get-dependents-graph" "^2.0.0"
+ "@changesets/types" "^6.0.0"
+ "@manypkg/get-packages" "^1.1.3"
+ semver "^7.5.3"
-"@changesets/changelog-github@^0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@changesets/changelog-github/-/changelog-github-0.4.1.tgz#880cb624477972ea103abf6942cf4ee3106f682b"
- integrity sha512-WK9DzS3i0wa2doEnOr4sm/FMnNtxzCCAKP7dEcWvhYkgXYX5R6jmfHAcDstmjAhiuvbhoHYom4MOC1tIzgwnfA==
+"@changesets/changelog-git@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@changesets/changelog-git/-/changelog-git-0.2.0.tgz#1f3de11becafff5a38ebe295038a602403c93a86"
+ integrity sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==
dependencies:
- "@changesets/get-github-info" "^0.5.0"
- "@changesets/types" "^4.0.1"
+ "@changesets/types" "^6.0.0"
+
+"@changesets/changelog-github@^0.5.0":
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/@changesets/changelog-github/-/changelog-github-0.5.0.tgz#ae96e5029209f7386527b3821d9c988b1ab16662"
+ integrity sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==
+ dependencies:
+ "@changesets/get-github-info" "^0.6.0"
+ "@changesets/types" "^6.0.0"
dotenv "^8.1.0"
-"@changesets/cli@^2.17.0":
- version "2.17.0"
- resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.17.0.tgz#cc7ff4f64d029ddd6d87020a012c8cf8c7adde58"
- integrity sha512-UyraYwYst1lTjef+8i80XQ6SqsLaGwi4Sgn9YuDf2xdHA9m+5qQXshHvHVjaTdPTA09rqMBk9yeO7vmAqF4+vQ==
- dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/apply-release-plan" "^5.0.1"
- "@changesets/assemble-release-plan" "^5.0.1"
- "@changesets/config" "^1.6.1"
- "@changesets/errors" "^0.1.4"
- "@changesets/get-dependents-graph" "^1.2.2"
- "@changesets/get-release-plan" "^3.0.1"
- "@changesets/git" "^1.1.2"
- "@changesets/logger" "^0.0.5"
- "@changesets/pre" "^1.0.7"
- "@changesets/read" "^0.5.0"
- "@changesets/types" "^4.0.1"
- "@changesets/write" "^0.1.5"
- "@manypkg/get-packages" "^1.0.1"
- "@types/semver" "^6.0.0"
- boxen "^1.3.0"
+"@changesets/cli@^2.27.1":
+ version "2.27.1"
+ resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.27.1.tgz#abce480fd30b9abbe2cfcf07d5d668c364ce2804"
+ integrity sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==
+ dependencies:
+ "@babel/runtime" "^7.20.1"
+ "@changesets/apply-release-plan" "^7.0.0"
+ "@changesets/assemble-release-plan" "^6.0.0"
+ "@changesets/changelog-git" "^0.2.0"
+ "@changesets/config" "^3.0.0"
+ "@changesets/errors" "^0.2.0"
+ "@changesets/get-dependents-graph" "^2.0.0"
+ "@changesets/get-release-plan" "^4.0.0"
+ "@changesets/git" "^3.0.0"
+ "@changesets/logger" "^0.1.0"
+ "@changesets/pre" "^2.0.0"
+ "@changesets/read" "^0.6.0"
+ "@changesets/types" "^6.0.0"
+ "@changesets/write" "^0.3.0"
+ "@manypkg/get-packages" "^1.1.3"
+ "@types/semver" "^7.5.0"
+ ansi-colors "^4.1.3"
chalk "^2.1.0"
+ ci-info "^3.7.0"
enquirer "^2.3.0"
external-editor "^3.1.0"
fs-extra "^7.0.1"
human-id "^1.0.2"
- is-ci "^2.0.0"
meow "^6.0.0"
outdent "^0.5.0"
p-limit "^2.2.0"
preferred-pm "^3.0.0"
- semver "^5.4.1"
+ resolve-from "^5.0.0"
+ semver "^7.5.3"
spawndamnit "^2.0.0"
term-size "^2.1.0"
- tty-table "^2.8.10"
+ tty-table "^4.1.5"
-"@changesets/config@^1.6.1":
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/@changesets/config/-/config-1.6.1.tgz#e9b1636fd56a74411c493c924e6ffa07d7d26091"
- integrity sha512-aQTo6ODvhsvnSFszMP1YbJyAi1DtE1Pes9rL+G+KYJiAOA6k5RzbiKOarjo+ZkKXpX0G3CBAbOO8jXOX4xG7cQ==
- dependencies:
- "@changesets/errors" "^0.1.4"
- "@changesets/get-dependents-graph" "^1.2.2"
- "@changesets/logger" "^0.0.5"
- "@changesets/types" "^4.0.1"
- "@manypkg/get-packages" "^1.0.1"
+"@changesets/config@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/config/-/config-3.0.0.tgz#a1a1cafc77134b117b4a9266459c84fdd360a6be"
+ integrity sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==
+ dependencies:
+ "@changesets/errors" "^0.2.0"
+ "@changesets/get-dependents-graph" "^2.0.0"
+ "@changesets/logger" "^0.1.0"
+ "@changesets/types" "^6.0.0"
+ "@manypkg/get-packages" "^1.1.3"
fs-extra "^7.0.1"
micromatch "^4.0.2"
-"@changesets/errors@^0.1.4":
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/@changesets/errors/-/errors-0.1.4.tgz#f79851746c43679a66b383fdff4c012f480f480d"
- integrity sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==
+"@changesets/errors@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@changesets/errors/-/errors-0.2.0.tgz#3c545e802b0f053389cadcf0ed54e5636ff9026a"
+ integrity sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==
dependencies:
extendable-error "^0.1.5"
-"@changesets/get-dependents-graph@^1.2.2":
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.2.tgz#7a2238f3d1a023de83d37b727a0da15826e88d73"
- integrity sha512-3zJRw6TcexmOrmIZNOXpIRsZtqtrdmlzbqp4+V0VgnBvTxz16rqCS9VBsBqFYeJDWFj3soOlHUMeTwLghr18DA==
+"@changesets/get-dependents-graph@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-2.0.0.tgz#97f0cc9fbec436e0d6ab95a6a59c08acf21ac714"
+ integrity sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==
dependencies:
- "@changesets/types" "^4.0.1"
- "@manypkg/get-packages" "^1.0.1"
+ "@changesets/types" "^6.0.0"
+ "@manypkg/get-packages" "^1.1.3"
chalk "^2.1.0"
fs-extra "^7.0.1"
- semver "^5.4.1"
+ semver "^7.5.3"
-"@changesets/get-github-info@^0.5.0":
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/@changesets/get-github-info/-/get-github-info-0.5.0.tgz#b91ceb2d82edef78ae1598ea9fc335a012250295"
- integrity sha512-vm5VgHwrxkMkUjFyn3UVNKLbDp9YMHd3vMf1IyJoa/7B+6VpqmtAaXyDS0zBLfN5bhzVCHrRnj4GcZXXcqrFTw==
+"@changesets/get-github-info@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@changesets/get-github-info/-/get-github-info-0.6.0.tgz#faba66a20a3a5a0cbabea28efd43c9ede7429f11"
+ integrity sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==
dependencies:
dataloader "^1.4.0"
node-fetch "^2.5.0"
-"@changesets/get-release-plan@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-3.0.1.tgz#c98a34321eac9e4187098893ff8dadb6f90ad89c"
- integrity sha512-HTZeEPvLlcWMWKxLrzQNLQWKDDN1lUKvaOV+hl/yBhgtyJECljJJzd3IRaKqCSWMrYKNaaEcmunTtZ4oaeoK9w==
- dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/assemble-release-plan" "^5.0.1"
- "@changesets/config" "^1.6.1"
- "@changesets/pre" "^1.0.7"
- "@changesets/read" "^0.5.0"
- "@changesets/types" "^4.0.1"
- "@manypkg/get-packages" "^1.0.1"
-
-"@changesets/get-version-range-type@^0.3.2":
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67"
- integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==
+"@changesets/get-release-plan@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-4.0.0.tgz#8cb057da90a08796a335dfd18073234d33902069"
+ integrity sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==
+ dependencies:
+ "@babel/runtime" "^7.20.1"
+ "@changesets/assemble-release-plan" "^6.0.0"
+ "@changesets/config" "^3.0.0"
+ "@changesets/pre" "^2.0.0"
+ "@changesets/read" "^0.6.0"
+ "@changesets/types" "^6.0.0"
+ "@manypkg/get-packages" "^1.1.3"
+
+"@changesets/get-version-range-type@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz#429a90410eefef4368502c41c63413e291740bf5"
+ integrity sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==
-"@changesets/git@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@changesets/git/-/git-1.1.2.tgz#248d4418bcb2d4f198852409cfcbd06a1fcb0424"
- integrity sha512-dfza8elsIwcYVa4fFzLaPs4+AkoCFiW3sfzkkC7WR+rG9j+zZh7CelzVpnoiAbEI2QOzeCbZKMoLSvBPgHhB1g==
+"@changesets/git@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/git/-/git-3.0.0.tgz#e71d003752a97bc27988db6d410e0038a4a88055"
+ integrity sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==
dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/errors" "^0.1.4"
- "@changesets/types" "^4.0.1"
- "@manypkg/get-packages" "^1.0.1"
+ "@babel/runtime" "^7.20.1"
+ "@changesets/errors" "^0.2.0"
+ "@changesets/types" "^6.0.0"
+ "@manypkg/get-packages" "^1.1.3"
is-subdir "^1.1.1"
+ micromatch "^4.0.2"
spawndamnit "^2.0.0"
-"@changesets/logger@^0.0.5":
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/@changesets/logger/-/logger-0.0.5.tgz#68305dd5a643e336be16a2369cb17cdd8ed37d4c"
- integrity sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==
+"@changesets/logger@^0.1.0":
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/@changesets/logger/-/logger-0.1.0.tgz#2d2a58536c5beeeaef52ab464931d99fcf24f17b"
+ integrity sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==
dependencies:
chalk "^2.1.0"
-"@changesets/parse@^0.3.9":
- version "0.3.9"
- resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.3.9.tgz#c518792b05f15ab418d58dc1cea81601556e845e"
- integrity sha512-XoTEkMpvRRVxSlhvOaK4YSFM+RZhYFTksxRh7ieNkb6pMxkpq8MOYSi/07BuqkODn4dJEMOoSy3RzL99P6FyqA==
+"@changesets/parse@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.4.0.tgz#5cabbd9844b3b213cb83f5edb5768454c70dd2b4"
+ integrity sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==
dependencies:
- "@changesets/types" "^4.0.1"
+ "@changesets/types" "^6.0.0"
js-yaml "^3.13.1"
-"@changesets/pre@^1.0.7":
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-1.0.7.tgz#caf6430c90b8ac6d58c9cd90a19558ab06b19b88"
- integrity sha512-oUU6EL4z0AIyCv/EscQFxxJsQfc9/AcSpqAGbdZrLXwshUWTXsJHMWlE3/+iSIyQ+I+/xtxbBxnqDUpUU3TOOg==
+"@changesets/pre@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-2.0.0.tgz#ad3edf3d6ac287991d7ef5e26cf280d03c9e3764"
+ integrity sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==
dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/errors" "^0.1.4"
- "@changesets/types" "^4.0.1"
- "@manypkg/get-packages" "^1.0.1"
+ "@babel/runtime" "^7.20.1"
+ "@changesets/errors" "^0.2.0"
+ "@changesets/types" "^6.0.0"
+ "@manypkg/get-packages" "^1.1.3"
fs-extra "^7.0.1"
-"@changesets/read@^0.5.0":
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.5.0.tgz#52f7a10f6baebf97172e62035ee8345652c5a1c0"
- integrity sha512-A2OJ+vgfvbUaLx2yKyHH+tapa+DUd2NtpFpVuxjUqv0zirjqju20z1bziqaqpIQSf/rXPuoc09vp5w4VakraHg==
- dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/git" "^1.1.2"
- "@changesets/logger" "^0.0.5"
- "@changesets/parse" "^0.3.9"
- "@changesets/types" "^4.0.1"
+"@changesets/read@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.6.0.tgz#27e13b58d0b0eb3b0a5cba48a3f4f71f05ef4610"
+ integrity sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==
+ dependencies:
+ "@babel/runtime" "^7.20.1"
+ "@changesets/git" "^3.0.0"
+ "@changesets/logger" "^0.1.0"
+ "@changesets/parse" "^0.4.0"
+ "@changesets/types" "^6.0.0"
chalk "^2.1.0"
fs-extra "^7.0.1"
p-filter "^2.1.0"
@@ -2324,16 +2297,21 @@
resolved "https://registry.yarnpkg.com/@changesets/types/-/types-4.0.1.tgz#85cf3cc32baff0691112d9d15fc21fbe022c9f0a"
integrity sha512-zVfv752D8K2tjyFmxU/vnntQ+dPu+9NupOSguA/2Zuym4tVxRh0ylArgKZ1bOAi2eXfGlZMxJU/kj7uCSI15RQ==
-"@changesets/write@^0.1.5":
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.1.5.tgz#97574d95c8e48c3bbb1173802672f9a64d1b7fef"
- integrity sha512-AYVSCH7on/Cyzo/8lVfqlsXmyKl3JhbNu9yHApdLPhHAzv5wqoHiZlMDkmd+AA67SRqzK2lDs4BcIojK+uWeIA==
+"@changesets/types@^6.0.0":
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/@changesets/types/-/types-6.0.0.tgz#e46abda9890610dd1fbe1617730173d2267544bd"
+ integrity sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==
+
+"@changesets/write@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.3.0.tgz#c6c5bc390cce4031da20eab8a4ca2d71453a1985"
+ integrity sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==
dependencies:
- "@babel/runtime" "^7.10.4"
- "@changesets/types" "^4.0.1"
+ "@babel/runtime" "^7.20.1"
+ "@changesets/types" "^6.0.0"
fs-extra "^7.0.1"
human-id "^1.0.2"
- prettier "^1.19.1"
+ prettier "^2.7.1"
"@colors/colors@1.5.0":
version "1.5.0"
@@ -2817,61 +2795,61 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-"@jest/console@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583"
- integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==
+"@jest/console@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57"
+ integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==
dependencies:
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^29.3.1"
- jest-util "^29.3.1"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
slash "^3.0.0"
-"@jest/core@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1"
- integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==
+"@jest/core@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03"
+ integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==
dependencies:
- "@jest/console" "^29.3.1"
- "@jest/reporters" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/console" "^29.5.0"
+ "@jest/reporters" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
ci-info "^3.2.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
- jest-changed-files "^29.2.0"
- jest-config "^29.3.1"
- jest-haste-map "^29.3.1"
- jest-message-util "^29.3.1"
- jest-regex-util "^29.2.0"
- jest-resolve "^29.3.1"
- jest-resolve-dependencies "^29.3.1"
- jest-runner "^29.3.1"
- jest-runtime "^29.3.1"
- jest-snapshot "^29.3.1"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
- jest-watcher "^29.3.1"
+ jest-changed-files "^29.5.0"
+ jest-config "^29.5.0"
+ jest-haste-map "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-regex-util "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-resolve-dependencies "^29.5.0"
+ jest-runner "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
+ jest-watcher "^29.5.0"
micromatch "^4.0.4"
- pretty-format "^29.3.1"
+ pretty-format "^29.5.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6"
- integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==
+"@jest/environment@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65"
+ integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==
dependencies:
- "@jest/fake-timers" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
- jest-mock "^29.3.1"
+ jest-mock "^29.5.0"
"@jest/expect-utils@^29.3.1":
version "29.3.1"
@@ -2880,46 +2858,53 @@
dependencies:
jest-get-type "^29.2.0"
-"@jest/expect@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd"
- integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==
+"@jest/expect-utils@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036"
+ integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==
dependencies:
- expect "^29.3.1"
- jest-snapshot "^29.3.1"
+ jest-get-type "^29.4.3"
-"@jest/fake-timers@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67"
- integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==
+"@jest/expect@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba"
+ integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==
dependencies:
- "@jest/types" "^29.3.1"
- "@sinonjs/fake-timers" "^9.1.2"
+ expect "^29.5.0"
+ jest-snapshot "^29.5.0"
+
+"@jest/fake-timers@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c"
+ integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@sinonjs/fake-timers" "^10.0.2"
"@types/node" "*"
- jest-message-util "^29.3.1"
- jest-mock "^29.3.1"
- jest-util "^29.3.1"
+ jest-message-util "^29.5.0"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
-"@jest/globals@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6"
- integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==
+"@jest/globals@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298"
+ integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==
dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/expect" "^29.3.1"
- "@jest/types" "^29.3.1"
- jest-mock "^29.3.1"
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ jest-mock "^29.5.0"
-"@jest/reporters@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310"
- integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==
+"@jest/reporters@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b"
+ integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/console" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@jridgewell/trace-mapping" "^0.3.15"
"@types/node" "*"
chalk "^4.0.0"
@@ -2932,9 +2917,9 @@
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.1.3"
- jest-message-util "^29.3.1"
- jest-util "^29.3.1"
- jest-worker "^29.3.1"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
+ jest-worker "^29.5.0"
slash "^3.0.0"
string-length "^4.0.1"
strip-ansi "^6.0.0"
@@ -2947,33 +2932,40 @@
dependencies:
"@sinclair/typebox" "^0.24.1"
-"@jest/source-map@^29.2.0":
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744"
- integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==
+"@jest/schemas@^29.4.3":
+ version "29.4.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788"
+ integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==
+ dependencies:
+ "@sinclair/typebox" "^0.25.16"
+
+"@jest/source-map@^29.4.3":
+ version "29.4.3"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20"
+ integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==
dependencies:
"@jridgewell/trace-mapping" "^0.3.15"
callsites "^3.0.0"
graceful-fs "^4.2.9"
-"@jest/test-result@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50"
- integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==
+"@jest/test-result@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408"
+ integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==
dependencies:
- "@jest/console" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/console" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^29.3.1":
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d"
- integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==
+"@jest/test-sequencer@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4"
+ integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==
dependencies:
- "@jest/test-result" "^29.3.1"
+ "@jest/test-result" "^29.5.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.3.1"
+ jest-haste-map "^29.5.0"
slash "^3.0.0"
"@jest/transform@^29.3.1":
@@ -2997,6 +2989,27 @@
slash "^3.0.0"
write-file-atomic "^4.0.1"
+"@jest/transform@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9"
+ integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.5.0"
+ "@jridgewell/trace-mapping" "^0.3.15"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.5.0"
+ jest-regex-util "^29.4.3"
+ jest-util "^29.5.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
"@jest/types@^29.3.1":
version "29.3.1"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3"
@@ -3009,6 +3022,18 @@
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
+"@jest/types@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593"
+ integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==
+ dependencies:
+ "@jest/schemas" "^29.4.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
"@jridgewell/gen-mapping@^0.1.0":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
@@ -3049,7 +3074,12 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15":
+"@jridgewell/sourcemap-codec@^1.4.13":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17":
version "0.3.17"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
@@ -3092,16 +3122,6 @@
spawndamnit "^2.0.0"
validate-npm-package-name "^3.0.0"
-"@manypkg/find-root@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.0.0.tgz#b8e96d7c24678b1b65c2057ae47df750669197d7"
- integrity sha512-c2J5B6MgkCqPVN49/FggigF2a5WThPnjd2RxknDPZjQM/QfSTHpU1r3NOXjQOzKSNRTnFFMHuOYJAVZ66LZNCQ==
- dependencies:
- "@babel/runtime" "^7.5.5"
- "@types/node" "^12.7.1"
- find-up "^4.1.0"
- fs-extra "^8.1.0"
-
"@manypkg/find-root@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f"
@@ -3112,23 +3132,24 @@
find-up "^4.1.0"
fs-extra "^8.1.0"
-"@manypkg/get-packages@^1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.0.1.tgz#0b46907555626ae773abb828e6c1cb313aa44777"
- integrity sha512-paGfOt9yW+4/kkK9pM5DlnZDfrP7pp75TDimA8VJQlfxxD7/yHpRsBQZh+soqArr9uqwnCw2XkDggG7BlPdQ3Q==
+"@manypkg/get-packages@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.1.tgz#7c7e72d0061ab2e61d2ce4da58ce91290a60ac8d"
+ integrity sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==
dependencies:
"@babel/runtime" "^7.5.5"
- "@manypkg/find-root" "^1.0.0"
+ "@manypkg/find-root" "^1.1.0"
fs-extra "^8.1.0"
globby "^11.0.0"
read-yaml-file "^1.1.0"
-"@manypkg/get-packages@^1.1.1":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.1.tgz#7c7e72d0061ab2e61d2ce4da58ce91290a60ac8d"
- integrity sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==
+"@manypkg/get-packages@^1.1.3":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.3.tgz#e184db9bba792fa4693de4658cfb1463ac2c9c47"
+ integrity sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==
dependencies:
"@babel/runtime" "^7.5.5"
+ "@changesets/types" "^4.0.1"
"@manypkg/find-root" "^1.1.0"
fs-extra "^8.1.0"
globby "^11.0.0"
@@ -3273,6 +3294,15 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"
+"@rollup/pluginutils@^5.0.2":
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0"
+ integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==
+ dependencies:
+ "@types/estree" "^1.0.0"
+ estree-walker "^2.0.2"
+ picomatch "^2.3.1"
+
"@sideway/address@^4.1.3":
version "4.1.4"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0"
@@ -3295,24 +3325,29 @@
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f"
integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==
+"@sinclair/typebox@^0.25.16":
+ version "0.25.24"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718"
+ integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==
+
"@sindresorhus/is@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
-"@sinonjs/commons@^1.7.0":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.5.tgz#e280c94c95f206dcfd5aca00a43f2156b758c764"
- integrity sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==
+"@sinonjs/commons@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3"
+ integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==
dependencies:
type-detect "4.0.8"
-"@sinonjs/fake-timers@^9.1.2":
- version "9.1.2"
- resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c"
- integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==
+"@sinonjs/fake-timers@^10.0.2":
+ version "10.0.2"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c"
+ integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==
dependencies:
- "@sinonjs/commons" "^1.7.0"
+ "@sinonjs/commons" "^2.0.0"
"@slorber/static-site-generator-webpack-plugin@^4.0.7":
version "4.0.7"
@@ -3323,46 +3358,100 @@
p-map "^4.0.0"
webpack-sources "^3.2.2"
+"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22"
+ integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==
+
"@svgr/babel-plugin-add-jsx-attribute@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz#bd6d1ff32a31b82b601e73672a789cc41e84fe18"
integrity sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==
+"@svgr/babel-plugin-remove-jsx-attribute@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186"
+ integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==
+
"@svgr/babel-plugin-remove-jsx-attribute@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz#58654908beebfa069681a83332544b17e5237e89"
integrity sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==
+"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44"
+ integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==
+
"@svgr/babel-plugin-remove-jsx-empty-expression@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz#d06dd6e8a8f603f92f9979bb9990a1f85a4f57ba"
integrity sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==
+"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27"
+ integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==
+
"@svgr/babel-plugin-replace-jsx-attribute-value@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz#0b85837577b02c31c09c758a12932820f5245cee"
integrity sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==
+"@svgr/babel-plugin-svg-dynamic-title@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0"
+ integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==
+
"@svgr/babel-plugin-svg-dynamic-title@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz#28236ec26f7ab9d486a487d36ae52d58ba15676f"
integrity sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==
+"@svgr/babel-plugin-svg-em-dimensions@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501"
+ integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==
+
"@svgr/babel-plugin-svg-em-dimensions@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz#40267c5dea1b43c4f83a0eb6169e08b43d8bafce"
integrity sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==
+"@svgr/babel-plugin-transform-react-native-svg@8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754"
+ integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==
+
"@svgr/babel-plugin-transform-react-native-svg@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz#eb688d0a5f539e34d268d8a516e81f5d7fede7c9"
integrity sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==
+"@svgr/babel-plugin-transform-svg-component@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e"
+ integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==
+
"@svgr/babel-plugin-transform-svg-component@^6.2.0":
version "6.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz#7ba61d9fc1fb42b0ba1a04e4630019fa7e993c4f"
integrity sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==
+"@svgr/babel-preset@8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece"
+ integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==
+ dependencies:
+ "@svgr/babel-plugin-add-jsx-attribute" "8.0.0"
+ "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0"
+ "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0"
+ "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0"
+ "@svgr/babel-plugin-svg-dynamic-title" "8.0.0"
+ "@svgr/babel-plugin-svg-em-dimensions" "8.0.0"
+ "@svgr/babel-plugin-transform-react-native-svg" "8.1.0"
+ "@svgr/babel-plugin-transform-svg-component" "8.0.0"
+
"@svgr/babel-preset@^6.2.0":
version "6.2.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.2.0.tgz#1d3ad8c7664253a4be8e4a0f0e6872f30d8af627"
@@ -3377,6 +3466,17 @@
"@svgr/babel-plugin-transform-react-native-svg" "^6.0.0"
"@svgr/babel-plugin-transform-svg-component" "^6.2.0"
+"@svgr/core@8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88"
+ integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==
+ dependencies:
+ "@babel/core" "^7.21.3"
+ "@svgr/babel-preset" "8.1.0"
+ camelcase "^6.2.0"
+ cosmiconfig "^8.1.3"
+ snake-case "^3.0.4"
+
"@svgr/core@^6.2.1":
version "6.2.1"
resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.2.1.tgz#195de807a9f27f9e0e0d678e01084b05c54fdf61"
@@ -3386,6 +3486,14 @@
camelcase "^6.2.0"
cosmiconfig "^7.0.1"
+"@svgr/hast-util-to-babel-ast@8.0.0":
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4"
+ integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==
+ dependencies:
+ "@babel/types" "^7.21.3"
+ entities "^4.4.0"
+
"@svgr/hast-util-to-babel-ast@^6.2.1":
version "6.2.1"
resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz#ae065567b74cbe745afae617053adf9a764bea25"
@@ -3394,6 +3502,16 @@
"@babel/types" "^7.15.6"
entities "^3.0.1"
+"@svgr/plugin-jsx@8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928"
+ integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==
+ dependencies:
+ "@babel/core" "^7.21.3"
+ "@svgr/babel-preset" "8.1.0"
+ "@svgr/hast-util-to-babel-ast" "8.0.0"
+ svg-parser "^2.0.4"
+
"@svgr/plugin-jsx@^6.2.1":
version "6.2.1"
resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz#5668f1d2aa18c2f1bb7a1fc9f682d3f9aed263bd"
@@ -3404,6 +3522,15 @@
"@svgr/hast-util-to-babel-ast" "^6.2.1"
svg-parser "^2.0.2"
+"@svgr/plugin-svgo@8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00"
+ integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==
+ dependencies:
+ cosmiconfig "^8.1.3"
+ deepmerge "^4.3.1"
+ svgo "^3.0.2"
+
"@svgr/plugin-svgo@^6.2.0":
version "6.2.0"
resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.2.0.tgz#4cbe6a33ccccdcae4e3b63ded64cc1cbe1faf48c"
@@ -3413,6 +3540,21 @@
deepmerge "^4.2.2"
svgo "^2.5.0"
+"@svgr/rollup@^8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@svgr/rollup/-/rollup-8.1.0.tgz#2c8e09655336cda4b7843799a5d2a5860300b030"
+ integrity sha512-0XR1poYvPQoPpmfDYLEqUGu5ePAQ4pdgN3VFsZBNAeze7qubVpsIY1o1R6PZpKep/DKu33GSm2NhwpCLkMs2Cw==
+ dependencies:
+ "@babel/core" "^7.21.3"
+ "@babel/plugin-transform-react-constant-elements" "^7.21.3"
+ "@babel/preset-env" "^7.20.2"
+ "@babel/preset-react" "^7.18.6"
+ "@babel/preset-typescript" "^7.21.0"
+ "@rollup/pluginutils" "^5.0.2"
+ "@svgr/core" "8.1.0"
+ "@svgr/plugin-jsx" "8.1.0"
+ "@svgr/plugin-svgo" "8.1.0"
+
"@svgr/webpack@^6.2.1":
version "6.2.1"
resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.2.1.tgz#ef5d51c1b6be4e7537fb9f76b3f2b2e22b63c58d"
@@ -3560,6 +3702,11 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
+"@types/estree@^1.0.0":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
+ integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+
"@types/events@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
@@ -3631,14 +3778,6 @@
dependencies:
"@types/node" "*"
-"@types/inquirer@^6.5.0":
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-6.5.0.tgz#b83b0bf30b88b8be7246d40e51d32fe9d10e09be"
- integrity sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==
- dependencies:
- "@types/through" "*"
- rxjs "^6.4.0"
-
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
@@ -3863,11 +4002,16 @@
dependencies:
"@types/node" "*"
-"@types/semver@^6.0.0", "@types/semver@^6.0.1":
+"@types/semver@^6.0.1":
version "6.2.1"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.2.1.tgz#a236185670a7860f1597cf73bea2e16d001461ba"
integrity sha512-+beqKQOh9PYxuHvijhVl+tIHvT6tuwOrE9m14zd+MT2A38KoKZhh7pYJ0SNleLtwDsiIxHDsIk9bv01oOxvSvA==
+"@types/semver@^7.5.0":
+ version "7.5.6"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339"
+ integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==
+
"@types/serve-index@^1.9.1":
version "1.9.1"
resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278"
@@ -3909,13 +4053,6 @@
dependencies:
terser "*"
-"@types/through@*":
- version "0.0.30"
- resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895"
- integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==
- dependencies:
- "@types/node" "*"
-
"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
@@ -4284,13 +4421,6 @@ algoliasearch@^4.0.0, algoliasearch@^4.13.1:
"@algolia/requester-node-http" "4.13.1"
"@algolia/transporter" "4.13.1"
-ansi-align@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
- integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=
- dependencies:
- string-width "^2.0.0"
-
ansi-align@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
@@ -4315,6 +4445,11 @@ ansi-colors@^4.1.1:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+ansi-colors@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
+ integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
+
ansi-escapes@^4.2.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
@@ -4327,11 +4462,6 @@ ansi-html-community@^0.0.8:
resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
- integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
ansi-regex@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
@@ -4422,6 +4552,14 @@ arr-union@^3.1.0:
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+array-buffer-byte-length@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead"
+ integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==
+ dependencies:
+ call-bind "^1.0.2"
+ is-array-buffer "^3.0.1"
+
array-differ@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
@@ -4470,6 +4608,16 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+array.prototype.flat@^1.2.3:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18"
+ integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ es-shim-unscopables "^1.0.0"
+
array.prototype.flat@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
@@ -4488,6 +4636,19 @@ array.prototype.flatmap@^1.2.5:
define-properties "^1.1.3"
es-abstract "^1.19.0"
+arraybuffer.prototype.slice@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12"
+ integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==
+ dependencies:
+ array-buffer-byte-length "^1.0.0"
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ get-intrinsic "^1.2.1"
+ is-array-buffer "^3.0.2"
+ is-shared-array-buffer "^1.0.2"
+
arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -4530,6 +4691,11 @@ autoprefixer@^10.3.7, autoprefixer@^10.4.7:
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
+available-typed-arrays@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
+ integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
+
axios@^0.25.0:
version "0.25.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a"
@@ -4550,6 +4716,19 @@ babel-jest@^29.3.1:
graceful-fs "^4.2.9"
slash "^3.0.0"
+babel-jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5"
+ integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==
+ dependencies:
+ "@jest/transform" "^29.5.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.5.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
babel-loader@^8.2.5:
version "8.2.5"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e"
@@ -4568,13 +4747,6 @@ babel-plugin-apply-mdx-type-prop@1.6.22:
"@babel/helper-plugin-utils" "7.10.4"
"@mdx-js/util" "1.6.22"
-babel-plugin-dynamic-import-node@^2.3.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.2.tgz#14fb5accb300f9aac0151949f6192259f1403c4a"
- integrity sha512-yvczAMjbc73xira9yTyF1XnEmkX8QwlUhmxuhimeMUeAaA6s7busTPRVDzhVG7eeBdNcRiZ/mAwFrJ9It4vQcg==
- dependencies:
- object.assign "^4.1.0"
-
babel-plugin-dynamic-import-node@^2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
@@ -4610,6 +4782,16 @@ babel-plugin-jest-hoist@^29.2.0:
"@types/babel__core" "^7.1.14"
"@types/babel__traverse" "^7.0.6"
+babel-plugin-jest-hoist@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a"
+ integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
babel-plugin-macros@2.8.0, babel-plugin-macros@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
@@ -4619,29 +4801,53 @@ babel-plugin-macros@2.8.0, babel-plugin-macros@^2.8.0:
cosmiconfig "^6.0.0"
resolve "^1.12.0"
-babel-plugin-polyfill-corejs2@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5"
- integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==
+babel-plugin-polyfill-corejs2@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
+ integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
dependencies:
- "@babel/compat-data" "^7.13.11"
- "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "@babel/compat-data" "^7.17.7"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
semver "^6.1.1"
-babel-plugin-polyfill-corejs3@^0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72"
- integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==
+babel-plugin-polyfill-corejs2@^0.4.8:
+ version "0.4.8"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269"
+ integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.1"
- core-js-compat "^3.21.0"
+ "@babel/compat-data" "^7.22.6"
+ "@babel/helper-define-polyfill-provider" "^0.5.0"
+ semver "^6.3.1"
-babel-plugin-polyfill-regenerator@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990"
- integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==
+babel-plugin-polyfill-corejs3@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
+ integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ core-js-compat "^3.25.1"
+
+babel-plugin-polyfill-corejs3@^0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81"
+ integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.5.0"
+ core-js-compat "^3.34.0"
+
+babel-plugin-polyfill-regenerator@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
+ integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+
+babel-plugin-polyfill-regenerator@^0.5.5:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a"
+ integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.5.0"
babel-preset-current-node-syntax@^1.0.0:
version "1.0.1"
@@ -4669,6 +4875,14 @@ babel-preset-jest@^29.2.0:
babel-plugin-jest-hoist "^29.2.0"
babel-preset-current-node-syntax "^1.0.0"
+babel-preset-jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2"
+ integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==
+ dependencies:
+ babel-plugin-jest-hoist "^29.5.0"
+ babel-preset-current-node-syntax "^1.0.0"
+
bail@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776"
@@ -4752,19 +4966,6 @@ boolbase@^1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
-boxen@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
- integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==
- dependencies:
- ansi-align "^2.0.0"
- camelcase "^4.0.0"
- chalk "^2.0.1"
- cli-boxes "^1.0.0"
- string-width "^2.0.0"
- term-size "^1.2.0"
- widest-line "^2.0.0"
-
boxen@^5.0.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50"
@@ -4831,7 +5032,7 @@ breakword@^1.0.5:
dependencies:
wcwidth "^1.0.1"
-browserslist@^4.0.0, browserslist@^4.8.5, browserslist@^4.9.1:
+browserslist@^4.0.0:
version "4.12.0"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d"
integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==
@@ -4841,7 +5042,7 @@ browserslist@^4.0.0, browserslist@^4.8.5, browserslist@^4.9.1:
node-releases "^1.1.53"
pkg-up "^2.0.0"
-browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.21.1:
+browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.3:
version "4.21.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.2.tgz#59a400757465535954946a400b841ed37e2b4ecf"
integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==
@@ -4861,6 +5062,26 @@ browserslist@^4.21.3:
node-releases "^2.0.6"
update-browserslist-db "^1.0.9"
+browserslist@^4.21.5:
+ version "4.21.5"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
+ integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
+ dependencies:
+ caniuse-lite "^1.0.30001449"
+ electron-to-chromium "^1.4.284"
+ node-releases "^2.0.8"
+ update-browserslist-db "^1.0.10"
+
+browserslist@^4.22.2:
+ version "4.22.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6"
+ integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==
+ dependencies:
+ caniuse-lite "^1.0.30001580"
+ electron-to-chromium "^1.4.648"
+ node-releases "^2.0.14"
+ update-browserslist-db "^1.0.13"
+
bser@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
@@ -4929,6 +5150,15 @@ call-bind@^1.0.0, call-bind@^1.0.2:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
+call-bind@^1.0.4, call-bind@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
+ integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
+ dependencies:
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.1"
+ set-function-length "^1.1.1"
+
call-me-maybe@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
@@ -4961,11 +5191,6 @@ camelcase-keys@^6.2.2:
map-obj "^4.0.0"
quick-lru "^4.0.1"
-camelcase@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
- integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
-
camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -5001,12 +5226,22 @@ caniuse-lite@^1.0.30001400:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795"
integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==
+caniuse-lite@^1.0.30001449:
+ version "1.0.30001460"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz#31d2e26f0a2309860ed3eff154e03890d9d851a7"
+ integrity sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==
+
+caniuse-lite@^1.0.30001580:
+ version "1.0.30001587"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz#a0bce920155fa56a1885a69c74e1163fc34b4881"
+ integrity sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==
+
ccount@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17"
integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -5015,14 +5250,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
- integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
chalk@^4.0.0, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -5121,6 +5348,16 @@ ci-info@^3.2.0:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f"
integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==
+ci-info@^3.7.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+
+ci-info@^3.8.0:
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91"
+ integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
+
cjs-module-lexer@^1.0.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40"
@@ -5148,11 +5385,6 @@ clean-stack@^2.0.0:
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
-cli-boxes@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
- integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM=
-
cli-boxes@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
@@ -5442,26 +5674,24 @@ copy-webpack-plugin@^11.0.0:
schema-utils "^4.0.0"
serialize-javascript "^6.0.0"
-core-js-compat@^3.21.0, core-js-compat@^3.22.1:
- version "3.23.4"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.4.tgz#56ad4a352884317a15f6b04548ff7139d23b917f"
- integrity sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q==
+core-js-compat@^3.25.1:
+ version "3.29.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.29.0.tgz#1b8d9eb4191ab112022e7f6364b99b65ea52f528"
+ integrity sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==
dependencies:
- browserslist "^4.21.1"
- semver "7.0.0"
+ browserslist "^4.21.5"
-core-js-compat@^3.6.2:
- version "3.6.5"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c"
- integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==
+core-js-compat@^3.31.0, core-js-compat@^3.34.0:
+ version "3.35.1"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.1.tgz#215247d7edb9e830efa4218ff719beb2803555e2"
+ integrity sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==
dependencies:
- browserslist "^4.8.5"
- semver "7.0.0"
+ browserslist "^4.22.2"
-core-js-pure@^3.20.2:
- version "3.23.4"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.23.4.tgz#aba5c7fb297063444f6bf93afb0362151679a012"
- integrity sha512-lizxkcgj3XDmi7TUBFe+bQ1vNpD5E4t76BrBWI3HdUxdw/Mq1VF4CkiHzIKyieECKtcODK2asJttoofEeUKICQ==
+core-js-pure@^3.25.1:
+ version "3.29.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.0.tgz#0e1ac889214398641ea4bb1c6cf25ff0959ec1d2"
+ integrity sha512-v94gUjN5UTe1n0yN/opTihJ8QBWD2O8i19RfTZR7foONPWArnjB96QA/wk5ozu1mm6ja3udQCzOzwQXTxi3xOQ==
core-js@^3.23.3:
version "3.23.4"
@@ -5495,6 +5725,16 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
path-type "^4.0.0"
yaml "^1.10.0"
+cosmiconfig@^8.1.3:
+ version "8.3.6"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
+ integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==
+ dependencies:
+ import-fresh "^3.3.0"
+ js-yaml "^4.1.0"
+ parse-json "^5.2.0"
+ path-type "^4.0.0"
+
cross-env@^7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9"
@@ -5509,7 +5749,7 @@ cross-fetch@^3.1.5:
dependencies:
node-fetch "2.6.7"
-cross-spawn@^5.0.1, cross-spawn@^5.1.0:
+cross-spawn@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
@@ -5598,6 +5838,22 @@ css-tree@^1.1.2, css-tree@^1.1.3:
mdn-data "2.0.14"
source-map "^0.6.1"
+css-tree@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
+ integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==
+ dependencies:
+ mdn-data "2.0.30"
+ source-map-js "^1.0.1"
+
+css-tree@~2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032"
+ integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==
+ dependencies:
+ mdn-data "2.0.28"
+ source-map-js "^1.0.1"
+
css-what@^6.0.1, css-what@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
@@ -5676,35 +5932,42 @@ csso@^4.2.0:
dependencies:
css-tree "^1.1.2"
+csso@^5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6"
+ integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==
+ dependencies:
+ css-tree "~2.2.0"
+
csstype@^2.2.0:
version "2.6.10"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b"
integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==
-csv-generate@^3.2.4:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.2.4.tgz#440dab9177339ee0676c9e5c16f50e2b3463c019"
- integrity sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA==
+csv-generate@^3.4.3:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.4.3.tgz#bc42d943b45aea52afa896874291da4b9108ffff"
+ integrity sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==
-csv-parse@^4.8.8:
- version "4.8.9"
- resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.8.9.tgz#0d3f0973f415677b01d17abaa221fbffc6125760"
- integrity sha512-uDxIDIDLb89gxqixSgGqDj3EA5A8D0pgUeyp9Qut8u+eCIC8IXkTtaxJEnnWDb6N2HqBY64suSlcOGg5ZBtsAQ==
+csv-parse@^4.16.3:
+ version "4.16.3"
+ resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7"
+ integrity sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==
-csv-stringify@^5.3.6:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.4.0.tgz#4921acfec80a94f934c36c3d1bb562669908e050"
- integrity sha512-ROyLQvoEXZfDAREkulRHR7cfs9fJEBeaOXh91LvhTVZ1ndn30hJbon1vWmv8ykm3OT94ECgTCbeZfFHtsOQPdQ==
+csv-stringify@^5.6.5:
+ version "5.6.5"
+ resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00"
+ integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==
-csv@^5.3.1:
- version "5.3.2"
- resolved "https://registry.yarnpkg.com/csv/-/csv-5.3.2.tgz#50b344e25dfbb8c62684a1bcec18c22468b2161e"
- integrity sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==
+csv@^5.5.3:
+ version "5.5.3"
+ resolved "https://registry.yarnpkg.com/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d"
+ integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==
dependencies:
- csv-generate "^3.2.4"
- csv-parse "^4.8.8"
- csv-stringify "^5.3.6"
- stream-transform "^2.0.1"
+ csv-generate "^3.4.3"
+ csv-parse "^4.16.3"
+ csv-stringify "^5.6.5"
+ stream-transform "^2.1.3"
dataloader@^1.4.0:
version "1.4.0"
@@ -5744,6 +6007,13 @@ debug@^3.2.7:
dependencies:
ms "^2.1.1"
+debug@^4.3.1:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
debug@^4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
@@ -5796,6 +6066,11 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+deepmerge@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
+
default-gateway@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
@@ -5815,6 +6090,15 @@ defer-to-connect@^1.0.1:
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
+define-data-property@^1.0.1, define-data-property@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
+ integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
+ dependencies:
+ get-intrinsic "^1.2.1"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.0"
+
define-lazy-prop@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
@@ -5827,6 +6111,15 @@ define-properties@^1.1.2, define-properties@^1.1.3:
dependencies:
object-keys "^1.0.12"
+define-properties@^1.2.0, define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ dependencies:
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
@@ -5921,6 +6214,11 @@ diff-sequences@^29.3.1:
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e"
integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==
+diff-sequences@^29.4.3:
+ version "29.4.3"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2"
+ integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==
+
dir-glob@^2.0.0, dir-glob@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
@@ -6083,6 +6381,16 @@ electron-to-chromium@^1.4.251:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
+electron-to-chromium@^1.4.284:
+ version "1.4.320"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz#4d83a90ff74f93939c5413c2ac5a16c696600632"
+ integrity sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==
+
+electron-to-chromium@^1.4.648:
+ version "1.4.668"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz#5cfed14f3240cdc70a359a49790cb295b1f097f1"
+ integrity sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==
+
emittery@^0.13.1:
version "0.13.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
@@ -6162,6 +6470,11 @@ entities@^4.2.0, entities@^4.3.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4"
integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==
+entities@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
+ integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
+
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -6195,11 +6508,72 @@ es-abstract@^1.19.0, es-abstract@^1.19.1:
string.prototype.trimstart "^1.0.4"
unbox-primitive "^1.0.1"
+es-abstract@^1.22.1:
+ version "1.22.3"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32"
+ integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==
+ dependencies:
+ array-buffer-byte-length "^1.0.0"
+ arraybuffer.prototype.slice "^1.0.2"
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.5"
+ es-set-tostringtag "^2.0.1"
+ es-to-primitive "^1.2.1"
+ function.prototype.name "^1.1.6"
+ get-intrinsic "^1.2.2"
+ get-symbol-description "^1.0.0"
+ globalthis "^1.0.3"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+ internal-slot "^1.0.5"
+ is-array-buffer "^3.0.2"
+ is-callable "^1.2.7"
+ is-negative-zero "^2.0.2"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.2"
+ is-string "^1.0.7"
+ is-typed-array "^1.1.12"
+ is-weakref "^1.0.2"
+ object-inspect "^1.13.1"
+ object-keys "^1.1.1"
+ object.assign "^4.1.4"
+ regexp.prototype.flags "^1.5.1"
+ safe-array-concat "^1.0.1"
+ safe-regex-test "^1.0.0"
+ string.prototype.trim "^1.2.8"
+ string.prototype.trimend "^1.0.7"
+ string.prototype.trimstart "^1.0.7"
+ typed-array-buffer "^1.0.0"
+ typed-array-byte-length "^1.0.0"
+ typed-array-byte-offset "^1.0.0"
+ typed-array-length "^1.0.4"
+ unbox-primitive "^1.0.2"
+ which-typed-array "^1.1.13"
+
es-module-lexer@^0.9.0:
version "0.9.3"
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
+es-set-tostringtag@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9"
+ integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==
+ dependencies:
+ get-intrinsic "^1.2.2"
+ has-tostringtag "^1.0.0"
+ hasown "^2.0.0"
+
+es-shim-unscopables@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763"
+ integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==
+ dependencies:
+ hasown "^2.0.0"
+
es-to-primitive@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
@@ -6432,6 +6806,11 @@ estree-walker@^2.0.1:
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.1.tgz#f8e030fb21cefa183b44b7ad516b747434e7a3e0"
integrity sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==
+estree-walker@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
+ integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -6465,19 +6844,6 @@ events@^3.2.0:
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
-execa@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
- integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
execa@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
@@ -6511,7 +6877,7 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expect@^29.0.0, expect@^29.3.1:
+expect@^29.0.0:
version "29.3.1"
resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6"
integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==
@@ -6522,6 +6888,17 @@ expect@^29.0.0, expect@^29.3.1:
jest-message-util "^29.3.1"
jest-util "^29.3.1"
+expect@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7"
+ integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==
+ dependencies:
+ "@jest/expect-utils" "^29.5.0"
+ jest-get-type "^29.4.3"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
+
express@^4.17.3:
version "4.18.1"
resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
@@ -6884,6 +7261,13 @@ follow-redirects@^1.14.7:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5"
integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==
+for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+ dependencies:
+ is-callable "^1.1.3"
+
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -6991,21 +7375,36 @@ fsevents@^2.3.2, fsevents@~2.3.2:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
-fsevents@~2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
- integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
-
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+function.prototype.name@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
+ integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ functions-have-names "^1.2.3"
+
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+functions-have-names@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
+ integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+
gensync@^1.0.0-beta.1:
version "1.0.0-beta.1"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
@@ -7030,6 +7429,16 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
+get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
+ integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
+ dependencies:
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+
get-own-enumerable-property-symbols@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
@@ -7040,11 +7449,6 @@ get-package-type@^0.1.0:
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-get-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
- integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
-
get-stream@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -7205,6 +7609,13 @@ globals@^13.6.0, globals@^13.9.0:
dependencies:
type-fest "^0.20.2"
+globalthis@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
+ integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
+ dependencies:
+ define-properties "^1.1.3"
+
globby@^11.0.0:
version "11.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154"
@@ -7278,6 +7689,13 @@ globby@^9.2.0:
pify "^4.0.1"
slash "^2.0.0"
+gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
+ dependencies:
+ get-intrinsic "^1.1.3"
+
got@^9.6.0:
version "9.6.0"
resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
@@ -7342,6 +7760,11 @@ has-bigints@^1.0.1:
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+has-bigints@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
+ integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -7352,6 +7775,18 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
+ integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
+ dependencies:
+ get-intrinsic "^1.2.2"
+
+has-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
+ integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
+
has-symbols@^1.0.0, has-symbols@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
@@ -7362,6 +7797,11 @@ has-symbols@^1.0.2:
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
has-tostringtag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
@@ -7412,6 +7852,13 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+hasown@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
+ integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
+ dependencies:
+ function-bind "^1.1.2"
+
hast-to-hyperscript@^9.0.0:
version "9.0.1"
resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d"
@@ -7813,12 +8260,21 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
+internal-slot@^1.0.5:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930"
+ integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==
+ dependencies:
+ get-intrinsic "^1.2.2"
+ hasown "^2.0.0"
+ side-channel "^1.0.4"
+
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-invariant@^2.2.2, invariant@^2.2.4:
+invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -7870,6 +8326,15 @@ is-alphanumerical@^1.0.0:
is-alphabetical "^1.0.0"
is-decimal "^1.0.0"
+is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe"
+ integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.2.0"
+ is-typed-array "^1.1.10"
+
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -7907,6 +8372,11 @@ is-buffer@^2.0.0:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
+is-callable@^1.1.3, is-callable@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+ integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+
is-callable@^1.1.4:
version "1.1.5"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
@@ -8083,6 +8553,11 @@ is-negative-zero@^2.0.1:
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
+is-negative-zero@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
+ integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
+
is-npm@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
@@ -8186,10 +8661,12 @@ is-shared-array-buffer@^1.0.1:
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
-is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
- integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+is-shared-array-buffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
+ integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
+ dependencies:
+ call-bind "^1.0.2"
is-stream@^2.0.0:
version "2.0.0"
@@ -8229,6 +8706,13 @@ is-symbol@^1.0.3:
dependencies:
has-symbols "^1.0.2"
+is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
+ integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
+ dependencies:
+ which-typed-array "^1.1.11"
+
is-typedarray@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -8248,6 +8732,13 @@ is-weakref@^1.0.1:
dependencies:
call-bind "^1.0.0"
+is-weakref@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
+ integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
+ dependencies:
+ call-bind "^1.0.2"
+
is-whitespace-character@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7"
@@ -8285,6 +8776,11 @@ isarray@1.0.0, isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -8344,82 +8840,83 @@ istanbul-reports@^3.1.3:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
-jest-changed-files@^29.2.0:
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289"
- integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==
+jest-changed-files@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e"
+ integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==
dependencies:
execa "^5.0.0"
p-limit "^3.1.0"
-jest-circus@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a"
- integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==
+jest-circus@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317"
+ integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==
dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/expect" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
dedent "^0.7.0"
is-generator-fn "^2.0.0"
- jest-each "^29.3.1"
- jest-matcher-utils "^29.3.1"
- jest-message-util "^29.3.1"
- jest-runtime "^29.3.1"
- jest-snapshot "^29.3.1"
- jest-util "^29.3.1"
+ jest-each "^29.5.0"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
p-limit "^3.1.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.5.0"
+ pure-rand "^6.0.0"
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-cli@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d"
- integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==
+jest-cli@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67"
+ integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==
dependencies:
- "@jest/core" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/core" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
import-local "^3.0.2"
- jest-config "^29.3.1"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
+ jest-config "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
prompts "^2.0.1"
yargs "^17.3.1"
-jest-config@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6"
- integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==
+jest-config@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da"
+ integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.3.1"
- "@jest/types" "^29.3.1"
- babel-jest "^29.3.1"
+ "@jest/test-sequencer" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ babel-jest "^29.5.0"
chalk "^4.0.0"
ci-info "^3.2.0"
deepmerge "^4.2.2"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-circus "^29.3.1"
- jest-environment-node "^29.3.1"
- jest-get-type "^29.2.0"
- jest-regex-util "^29.2.0"
- jest-resolve "^29.3.1"
- jest-runner "^29.3.1"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
+ jest-circus "^29.5.0"
+ jest-environment-node "^29.5.0"
+ jest-get-type "^29.4.3"
+ jest-regex-util "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-runner "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
micromatch "^4.0.4"
parse-json "^5.2.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.5.0"
slash "^3.0.0"
strip-json-comments "^3.1.1"
@@ -8433,41 +8930,56 @@ jest-diff@^29.3.1:
jest-get-type "^29.2.0"
pretty-format "^29.3.1"
-jest-docblock@^29.2.0:
- version "29.2.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82"
- integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==
+jest-diff@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63"
+ integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==
dependencies:
- detect-newline "^3.0.0"
+ chalk "^4.0.0"
+ diff-sequences "^29.4.3"
+ jest-get-type "^29.4.3"
+ pretty-format "^29.5.0"
-jest-each@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132"
- integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==
+jest-docblock@^29.4.3:
+ version "29.4.3"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8"
+ integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==
dependencies:
- "@jest/types" "^29.3.1"
- chalk "^4.0.0"
- jest-get-type "^29.2.0"
- jest-util "^29.3.1"
- pretty-format "^29.3.1"
+ detect-newline "^3.0.0"
-jest-environment-node@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74"
- integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==
+jest-each@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06"
+ integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==
dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/fake-timers" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.5.0"
+ chalk "^4.0.0"
+ jest-get-type "^29.4.3"
+ jest-util "^29.5.0"
+ pretty-format "^29.5.0"
+
+jest-environment-node@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967"
+ integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==
+ dependencies:
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
- jest-mock "^29.3.1"
- jest-util "^29.3.1"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
jest-get-type@^29.2.0:
version "29.2.0"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408"
integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==
+jest-get-type@^29.4.3:
+ version "29.4.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5"
+ integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==
+
jest-haste-map@^29.3.1:
version "29.3.1"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843"
@@ -8487,13 +8999,32 @@ jest-haste-map@^29.3.1:
optionalDependencies:
fsevents "^2.3.2"
-jest-leak-detector@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518"
- integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==
+jest-haste-map@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de"
+ integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==
dependencies:
- jest-get-type "^29.2.0"
- pretty-format "^29.3.1"
+ "@jest/types" "^29.5.0"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.4.3"
+ jest-util "^29.5.0"
+ jest-worker "^29.5.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
+jest-leak-detector@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c"
+ integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==
+ dependencies:
+ jest-get-type "^29.4.3"
+ pretty-format "^29.5.0"
jest-matcher-utils@^29.3.1:
version "29.3.1"
@@ -8505,6 +9036,16 @@ jest-matcher-utils@^29.3.1:
jest-get-type "^29.2.0"
pretty-format "^29.3.1"
+jest-matcher-utils@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5"
+ integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.5.0"
+ jest-get-type "^29.4.3"
+ pretty-format "^29.5.0"
+
jest-message-util@^29.3.1:
version "29.3.1"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb"
@@ -8520,14 +9061,29 @@ jest-message-util@^29.3.1:
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-mock@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e"
- integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==
+jest-message-util@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e"
+ integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==
dependencies:
- "@jest/types" "^29.3.1"
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.5.0"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.5.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
+jest-mock@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed"
+ integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==
+ dependencies:
+ "@jest/types" "^29.5.0"
"@types/node" "*"
- jest-util "^29.3.1"
+ jest-util "^29.5.0"
jest-pnp-resolver@^1.2.2:
version "1.2.2"
@@ -8539,88 +9095,93 @@ jest-regex-util@^29.2.0:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b"
integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==
-jest-resolve-dependencies@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf"
- integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==
+jest-regex-util@^29.4.3:
+ version "29.4.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8"
+ integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==
+
+jest-resolve-dependencies@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4"
+ integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==
dependencies:
- jest-regex-util "^29.2.0"
- jest-snapshot "^29.3.1"
+ jest-regex-util "^29.4.3"
+ jest-snapshot "^29.5.0"
-jest-resolve@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7"
- integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==
+jest-resolve@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc"
+ integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==
dependencies:
chalk "^4.0.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.3.1"
+ jest-haste-map "^29.5.0"
jest-pnp-resolver "^1.2.2"
- jest-util "^29.3.1"
- jest-validate "^29.3.1"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
resolve "^1.20.0"
- resolve.exports "^1.1.0"
+ resolve.exports "^2.0.0"
slash "^3.0.0"
-jest-runner@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d"
- integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==
- dependencies:
- "@jest/console" "^29.3.1"
- "@jest/environment" "^29.3.1"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+jest-runner@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8"
+ integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==
+ dependencies:
+ "@jest/console" "^29.5.0"
+ "@jest/environment" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.13.1"
graceful-fs "^4.2.9"
- jest-docblock "^29.2.0"
- jest-environment-node "^29.3.1"
- jest-haste-map "^29.3.1"
- jest-leak-detector "^29.3.1"
- jest-message-util "^29.3.1"
- jest-resolve "^29.3.1"
- jest-runtime "^29.3.1"
- jest-util "^29.3.1"
- jest-watcher "^29.3.1"
- jest-worker "^29.3.1"
+ jest-docblock "^29.4.3"
+ jest-environment-node "^29.5.0"
+ jest-haste-map "^29.5.0"
+ jest-leak-detector "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-resolve "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-util "^29.5.0"
+ jest-watcher "^29.5.0"
+ jest-worker "^29.5.0"
p-limit "^3.1.0"
source-map-support "0.5.13"
-jest-runtime@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a"
- integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==
- dependencies:
- "@jest/environment" "^29.3.1"
- "@jest/fake-timers" "^29.3.1"
- "@jest/globals" "^29.3.1"
- "@jest/source-map" "^29.2.0"
- "@jest/test-result" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+jest-runtime@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420"
+ integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==
+ dependencies:
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/globals" "^29.5.0"
+ "@jest/source-map" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
cjs-module-lexer "^1.0.0"
collect-v8-coverage "^1.0.0"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-haste-map "^29.3.1"
- jest-message-util "^29.3.1"
- jest-mock "^29.3.1"
- jest-regex-util "^29.2.0"
- jest-resolve "^29.3.1"
- jest-snapshot "^29.3.1"
- jest-util "^29.3.1"
+ jest-haste-map "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-mock "^29.5.0"
+ jest-regex-util "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
slash "^3.0.0"
strip-bom "^4.0.0"
-jest-snapshot@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e"
- integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==
+jest-snapshot@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce"
+ integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==
dependencies:
"@babel/core" "^7.11.6"
"@babel/generator" "^7.7.2"
@@ -8628,23 +9189,22 @@ jest-snapshot@^29.3.1:
"@babel/plugin-syntax-typescript" "^7.7.2"
"@babel/traverse" "^7.7.2"
"@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.3.1"
- "@jest/transform" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/expect-utils" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/babel__traverse" "^7.0.6"
"@types/prettier" "^2.1.5"
babel-preset-current-node-syntax "^1.0.0"
chalk "^4.0.0"
- expect "^29.3.1"
+ expect "^29.5.0"
graceful-fs "^4.2.9"
- jest-diff "^29.3.1"
- jest-get-type "^29.2.0"
- jest-haste-map "^29.3.1"
- jest-matcher-utils "^29.3.1"
- jest-message-util "^29.3.1"
- jest-util "^29.3.1"
+ jest-diff "^29.5.0"
+ jest-get-type "^29.4.3"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
natural-compare "^1.4.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.5.0"
semver "^7.3.5"
jest-util@^29.3.1:
@@ -8659,30 +9219,42 @@ jest-util@^29.3.1:
graceful-fs "^4.2.9"
picomatch "^2.2.3"
-jest-validate@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a"
- integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==
+jest-util@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
+ integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
dependencies:
- "@jest/types" "^29.3.1"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+jest-validate@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc"
+ integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==
+ dependencies:
+ "@jest/types" "^29.5.0"
camelcase "^6.2.0"
chalk "^4.0.0"
- jest-get-type "^29.2.0"
+ jest-get-type "^29.4.3"
leven "^3.1.0"
- pretty-format "^29.3.1"
+ pretty-format "^29.5.0"
-jest-watcher@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a"
- integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==
+jest-watcher@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363"
+ integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==
dependencies:
- "@jest/test-result" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
emittery "^0.13.1"
- jest-util "^29.3.1"
+ jest-util "^29.5.0"
string-length "^4.0.1"
jest-worker@^26.3.0:
@@ -8713,15 +9285,25 @@ jest-worker@^29.3.1:
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest@^29.3.1:
- version "29.3.1"
- resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122"
- integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==
+jest-worker@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d"
+ integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==
dependencies:
- "@jest/core" "^29.3.1"
- "@jest/types" "^29.3.1"
+ "@types/node" "*"
+ jest-util "^29.5.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e"
+ integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==
+ dependencies:
+ "@jest/core" "^29.5.0"
+ "@jest/types" "^29.5.0"
import-local "^3.0.2"
- jest-cli "^29.3.1"
+ jest-cli "^29.5.0"
joi@^17.6.0:
version "17.6.0"
@@ -8813,10 +9395,10 @@ json5@^2.1.2:
dependencies:
minimist "^1.2.5"
-json5@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
- integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
+json5@^2.2.2, json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
jsonfile@^4.0.0:
version "4.0.0"
@@ -8878,6 +9460,11 @@ kleur@^3.0.3:
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+kleur@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
+ integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
+
klona@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc"
@@ -8902,13 +9489,6 @@ leven@^3.1.0:
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-levenary@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77"
- integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==
- dependencies:
- leven "^3.1.0"
-
levn@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
@@ -9026,11 +9606,6 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash@^4.17.13:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-
lodash@^4.17.19:
version "4.17.20"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
@@ -9073,6 +9648,13 @@ lru-cache@^4.0.1:
pseudomap "^1.0.2"
yallist "^2.1.2"
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
@@ -9087,6 +9669,13 @@ magic-string@^0.25.7:
dependencies:
sourcemap-codec "^1.4.4"
+magic-string@^0.30.0:
+ version "0.30.0"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529"
+ integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.13"
+
make-dir@^3.0.0, make-dir@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392"
@@ -9173,6 +9762,16 @@ mdn-data@2.0.14:
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+mdn-data@2.0.28:
+ version "2.0.28"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba"
+ integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==
+
+mdn-data@2.0.30:
+ version "2.0.30"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
+ integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
+
mdurl@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
@@ -9396,10 +9995,10 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mixme@^0.3.1:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.3.5.tgz#304652cdaf24a3df0487205e61ac6162c6906ddd"
- integrity sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ==
+mixme@^0.5.1:
+ version "0.5.10"
+ resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.10.tgz#d653b2984b75d9018828f1ea333e51717ead5f51"
+ integrity sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==
mrmime@^1.0.0:
version "1.0.1"
@@ -9529,11 +10128,21 @@ node-releases@^1.1.53:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==
+node-releases@^2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+ integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+
node-releases@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
+node-releases@^2.0.8:
+ version "2.0.10"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
+ integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
+
normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -9586,13 +10195,6 @@ npm-packlist@^2.1.2:
npm-bundled "^1.1.1"
npm-normalize-package-bin "^1.0.1"
-npm-run-path@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
- integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
- dependencies:
- path-key "^2.0.0"
-
npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
@@ -9631,6 +10233,11 @@ object-inspect@^1.11.0, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
+object-inspect@^1.13.1:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
+ integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
+
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
@@ -9663,6 +10270,16 @@ object.assign@^4.1.2:
has-symbols "^1.0.1"
object-keys "^1.1.1"
+object.assign@^4.1.4:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
+ integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
+ dependencies:
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ has-symbols "^1.0.3"
+ object-keys "^1.1.1"
+
object.entries@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
@@ -9789,11 +10406,6 @@ p-filter@^2.1.0:
dependencies:
p-map "^2.0.0"
-p-finally@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
- integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
@@ -10030,11 +10642,6 @@ path-is-inside@1.0.2:
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==
-path-key@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
- integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
@@ -10475,16 +11082,16 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
-prettier@^1.19.1:
- version "1.19.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
- integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
-
prettier@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5"
integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==
+prettier@^2.7.1:
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
+ integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
+
pretty-error@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
@@ -10502,6 +11109,15 @@ pretty-format@^29.0.0, pretty-format@^29.3.1:
ansi-styles "^5.0.0"
react-is "^18.0.0"
+pretty-format@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a"
+ integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==
+ dependencies:
+ "@jest/schemas" "^29.4.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
pretty-time@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e"
@@ -10517,11 +11133,6 @@ prismjs@^1.28.0:
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.28.0.tgz#0d8f561fa0f7cf6ebca901747828b149147044b6"
integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==
-private@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
- integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
-
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -10614,6 +11225,11 @@ pure-color@^1.2.0:
resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e"
integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==
+pure-rand@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af"
+ integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==
+
qs@6.10.3:
version "6.10.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
@@ -10915,47 +11531,39 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
-regenerate-unicode-properties@^10.0.1:
- version "10.0.1"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
- integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
+regenerate-unicode-properties@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
+ integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==
dependencies:
regenerate "^1.4.2"
-regenerate-unicode-properties@^8.2.0:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
- integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
- dependencies:
- regenerate "^1.4.0"
-
-regenerate@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
- integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
-
regenerate@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-regenerator-runtime@^0.13.4:
- version "0.13.5"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
- integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
+regenerator-runtime@^0.13.11:
+ version "0.13.11"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
+ integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+
+regenerator-runtime@^0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
-regenerator-transform@^0.14.2:
- version "0.14.4"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7"
- integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==
+regenerator-transform@^0.15.1:
+ version "0.15.1"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56"
+ integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==
dependencies:
"@babel/runtime" "^7.8.4"
- private "^0.1.8"
-regenerator-transform@^0.15.0:
- version "0.15.0"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537"
- integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==
+regenerator-transform@^0.15.2:
+ version "0.15.2"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4"
+ integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==
dependencies:
"@babel/runtime" "^7.8.4"
@@ -10975,34 +11583,31 @@ regexp.prototype.flags@^1.3.1:
call-bind "^1.0.2"
define-properties "^1.1.3"
+regexp.prototype.flags@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e"
+ integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ set-function-name "^2.0.0"
+
regexpp@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
-regexpu-core@^4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938"
- integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==
- dependencies:
- regenerate "^1.4.0"
- regenerate-unicode-properties "^8.2.0"
- regjsgen "^0.5.1"
- regjsparser "^0.6.4"
- unicode-match-property-ecmascript "^1.0.4"
- unicode-match-property-value-ecmascript "^1.2.0"
-
-regexpu-core@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d"
- integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==
+regexpu-core@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.1.tgz#66900860f88def39a5cb79ebd9490e84f17bcdfb"
+ integrity sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==
dependencies:
+ "@babel/regjsgen" "^0.8.0"
regenerate "^1.4.2"
- regenerate-unicode-properties "^10.0.1"
- regjsgen "^0.6.0"
- regjsparser "^0.8.2"
+ regenerate-unicode-properties "^10.1.0"
+ regjsparser "^0.9.1"
unicode-match-property-ecmascript "^2.0.0"
- unicode-match-property-value-ecmascript "^2.0.0"
+ unicode-match-property-value-ecmascript "^2.1.0"
registry-auth-token@^4.0.0:
version "4.1.1"
@@ -11018,27 +11623,10 @@ registry-url@^5.0.0:
dependencies:
rc "^1.2.8"
-regjsgen@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
- integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
-
-regjsgen@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
- integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
-
-regjsparser@^0.6.4:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
- integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==
- dependencies:
- jsesc "~0.5.0"
-
-regjsparser@^0.8.2:
- version "0.8.4"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
- integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
+regjsparser@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
+ integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
dependencies:
jsesc "~0.5.0"
@@ -11182,10 +11770,10 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve.exports@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9"
- integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==
+resolve.exports@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
+ integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
resolve@^1.1.6, resolve@^1.14.2, resolve@^1.19.0:
version "1.22.1"
@@ -11196,7 +11784,7 @@ resolve@^1.1.6, resolve@^1.14.2, resolve@^1.19.0:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.8.1:
+resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2:
version "1.16.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c"
integrity sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig==
@@ -11263,12 +11851,12 @@ rollup@^0.63.4:
"@types/estree" "0.0.39"
"@types/node" "*"
-rollup@^2.32.0:
- version "2.32.0"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.32.0.tgz#ac58c8e85782bea8aa2d440fc05aba345013582a"
- integrity sha512-0FIG1jY88uhCP2yP4CfvtKEqPDRmsUwfY1kEOOM+DH/KOGATgaIFd/is1+fQOxsvh62ELzcFfKonwKWnHhrqmw==
+rollup@^2.79.1:
+ version "2.79.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
+ integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
optionalDependencies:
- fsevents "~2.1.2"
+ fsevents "~2.3.2"
rtl-detect@^1.0.4:
version "1.0.4"
@@ -11290,13 +11878,6 @@ run-parallel@^1.1.9:
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
-rxjs@^6.4.0:
- version "6.5.5"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
- integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
- dependencies:
- tslib "^1.9.0"
-
rxjs@^7.5.4:
version "7.5.6"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc"
@@ -11304,6 +11885,16 @@ rxjs@^7.5.4:
dependencies:
tslib "^2.1.0"
+safe-array-concat@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c"
+ integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.2.1"
+ has-symbols "^1.0.3"
+ isarray "^2.0.5"
+
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -11319,6 +11910,15 @@ safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+safe-regex-test@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5"
+ integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==
+ dependencies:
+ call-bind "^1.0.5"
+ get-intrinsic "^1.2.2"
+ is-regex "^1.1.4"
+
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -11415,21 +12015,21 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
-"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1:
+"semver@2 || 3 || 4 || 5", semver@^5.4.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-semver@7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
- integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
semver@^7.2.1, semver@^7.3.5:
version "7.3.5"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
@@ -11451,6 +12051,13 @@ semver@^7.3.4:
dependencies:
lru-cache "^6.0.0"
+semver@^7.5.3:
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+ dependencies:
+ lru-cache "^6.0.0"
+
send@0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
@@ -11519,6 +12126,26 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+set-function-length@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1"
+ integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==
+ dependencies:
+ define-data-property "^1.1.1"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.2"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.1"
+
+set-function-name@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
+ integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==
+ dependencies:
+ define-data-property "^1.0.1"
+ functions-have-names "^1.2.3"
+ has-property-descriptors "^1.0.0"
+
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -11603,7 +12230,7 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2"
object-inspect "^1.9.0"
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
@@ -11657,17 +12284,26 @@ slash@^4.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
-smartwrap@^1.2.3:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-1.2.5.tgz#45ee3e09ac234e5f7f17c16e916f511834f3cd23"
- integrity sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==
+smartwrap@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4"
+ integrity sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==
dependencies:
+ array.prototype.flat "^1.2.3"
breakword "^1.0.5"
grapheme-splitter "^1.0.4"
strip-ansi "^6.0.0"
wcwidth "^1.0.1"
yargs "^15.1.0"
+snake-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
+ integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
+ dependencies:
+ dot-case "^3.0.4"
+ tslib "^2.0.3"
+
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -11712,7 +12348,7 @@ sort-css-media-queries@2.0.4:
resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.0.4.tgz#b2badfa519cb4a938acbc6d3aaa913d4949dc908"
integrity sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw==
-source-map-js@^1.0.2:
+source-map-js@^1.0.1, source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
@@ -11893,12 +12529,12 @@ stream-events@^1.0.5:
dependencies:
stubs "^3.0.0"
-stream-transform@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.0.1.tgz#112ef2b4d8b9b517f9a6994b0bf7b946fa4d51bc"
- integrity sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==
+stream-transform@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3"
+ integrity sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==
dependencies:
- mixme "^0.3.1"
+ mixme "^0.5.1"
string-length@^4.0.1:
version "4.0.2"
@@ -11908,14 +12544,6 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-string-width@^2.0.0, string-width@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
string-width@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -11966,6 +12594,15 @@ string.prototype.matchall@^4.0.6:
regexp.prototype.flags "^1.3.1"
side-channel "^1.0.4"
+string.prototype.trim@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd"
+ integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
string.prototype.trimend@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
@@ -11974,6 +12611,15 @@ string.prototype.trimend@^1.0.4:
call-bind "^1.0.2"
define-properties "^1.1.3"
+string.prototype.trimend@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e"
+ integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
string.prototype.trimstart@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
@@ -11982,6 +12628,15 @@ string.prototype.trimstart@^1.0.4:
call-bind "^1.0.2"
define-properties "^1.1.3"
+string.prototype.trimstart@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298"
+ integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -12005,13 +12660,6 @@ stringify-object@^3.3.0:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
strip-ansi@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
@@ -12055,11 +12703,6 @@ strip-bom@^4.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
-strip-eof@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
- integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-
strip-final-newline@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
@@ -12135,7 +12778,7 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-svg-parser@^2.0.2:
+svg-parser@^2.0.2, svg-parser@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
@@ -12153,6 +12796,19 @@ svgo@^2.5.0, svgo@^2.7.0:
picocolors "^1.0.0"
stable "^0.1.8"
+svgo@^3.0.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d"
+ integrity sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==
+ dependencies:
+ "@trysound/sax" "0.2.0"
+ commander "^7.2.0"
+ css-select "^5.1.0"
+ css-tree "^2.3.1"
+ css-what "^6.1.0"
+ csso "^5.0.5"
+ picocolors "^1.0.0"
+
tapable@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
@@ -12187,13 +12843,6 @@ tempy@^0.2.1:
temp-dir "^1.0.0"
unique-string "^1.0.0"
-term-size@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
- integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=
- dependencies:
- execa "^0.7.0"
-
term-size@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753"
@@ -12229,14 +12878,15 @@ terser@^5.10.0, terser@^5.7.2:
commander "^2.20.0"
source-map-support "~0.5.20"
-terser@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.2.1.tgz#40b971b8d28b4fe98c9e8c0d073ab48e7bb96cd8"
- integrity sha512-/AOtjRtAMNGO0fIF6m8HfcvXTw/2AKpsOzDn36tA5RfhRdeXyb4RvHxJ5Pah7iL6dFkLk+gOnCaNHGwJPl6TrQ==
+terser@^5.16.8:
+ version "5.16.8"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.8.tgz#ccde583dabe71df3f4ed02b65eb6532e0fae15d5"
+ integrity sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==
dependencies:
+ "@jridgewell/source-map" "^0.3.2"
+ acorn "^8.5.0"
commander "^2.20.0"
- source-map "~0.6.1"
- source-map-support "~0.5.12"
+ source-map-support "~0.5.20"
test-exclude@^6.0.0:
version "6.0.0"
@@ -12392,17 +13042,18 @@ tsutils@^3.21.0:
dependencies:
tslib "^1.8.1"
-tty-table@^2.8.10:
- version "2.8.13"
- resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-2.8.13.tgz#d484a416381973eaebbdf19c79136b390e5c6d70"
- integrity sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==
+tty-table@^4.1.5:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.3.tgz#e33eb4007a0a9c976c97c37fa13ba66329a5c515"
+ integrity sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==
dependencies:
- chalk "^3.0.0"
- csv "^5.3.1"
- smartwrap "^1.2.3"
- strip-ansi "^6.0.0"
+ chalk "^4.1.2"
+ csv "^5.5.3"
+ kleur "^4.1.5"
+ smartwrap "^2.0.2"
+ strip-ansi "^6.0.1"
wcwidth "^1.0.1"
- yargs "^15.1.0"
+ yargs "^17.7.1"
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
@@ -12454,6 +13105,45 @@ type-is@~1.6.18:
media-typer "0.3.0"
mime-types "~2.1.24"
+typed-array-buffer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
+ integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.2.1"
+ is-typed-array "^1.1.10"
+
+typed-array-byte-length@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0"
+ integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==
+ dependencies:
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ has-proto "^1.0.1"
+ is-typed-array "^1.1.10"
+
+typed-array-byte-offset@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b"
+ integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ has-proto "^1.0.1"
+ is-typed-array "^1.1.10"
+
+typed-array-length@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
+ integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
+ dependencies:
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ is-typed-array "^1.1.9"
+
typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
@@ -12461,10 +13151,10 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typescript@^4.7.4:
- version "4.7.4"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
- integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
+typescript@^5.0.4:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
+ integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
typescript@~3.9.7:
version "3.9.7"
@@ -12486,6 +13176,16 @@ unbox-primitive@^1.0.1:
has-symbols "^1.0.2"
which-boxed-primitive "^1.0.2"
+unbox-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
+ integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
+ dependencies:
+ call-bind "^1.0.2"
+ has-bigints "^1.0.2"
+ has-symbols "^1.0.3"
+ which-boxed-primitive "^1.0.2"
+
unc-path-regex@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
@@ -12499,24 +13199,11 @@ unherit@^1.0.4:
inherits "^2.0.0"
xtend "^4.0.0"
-unicode-canonical-property-names-ecmascript@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
- integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
-
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
-unicode-match-property-ecmascript@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
- integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
- dependencies:
- unicode-canonical-property-names-ecmascript "^1.0.4"
- unicode-property-aliases-ecmascript "^1.0.4"
-
unicode-match-property-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
@@ -12525,20 +13212,10 @@ unicode-match-property-ecmascript@^2.0.0:
unicode-canonical-property-names-ecmascript "^2.0.0"
unicode-property-aliases-ecmascript "^2.0.0"
-unicode-match-property-value-ecmascript@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
- integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
-
-unicode-match-property-value-ecmascript@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
- integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
-
-unicode-property-aliases-ecmascript@^1.0.4:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
- integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
+unicode-match-property-value-ecmascript@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
+ integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
unicode-property-aliases-ecmascript@^2.0.0:
version "2.0.0"
@@ -12693,18 +13370,26 @@ unset-value@^1.0.0:
has-value "^0.3.1"
isobject "^3.0.0"
-update-browserslist-db@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824"
- integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==
+update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.9:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
+ integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
-update-browserslist-db@^1.0.9:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
- integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
+update-browserslist-db@^1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+ integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+update-browserslist-db@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824"
+ integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
@@ -13101,6 +13786,17 @@ which-pm@2.0.0:
load-yaml-file "^0.2.0"
path-exists "^4.0.0"
+which-typed-array@^1.1.11, which-typed-array@^1.1.13:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
+ integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.4"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+
which@^1.2.9, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -13115,13 +13811,6 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-widest-line@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
- integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==
- dependencies:
- string-width "^2.1.1"
-
widest-line@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
@@ -13188,7 +13877,7 @@ write-file-atomic@^3.0.0:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
-write-file-atomic@^4.0.1:
+write-file-atomic@^4.0.1, write-file-atomic@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
@@ -13238,6 +13927,11 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
+yallist@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
@@ -13298,11 +13992,29 @@ yargs@^17.3.1:
y18n "^5.0.5"
yargs-parser "^21.1.1"
+yargs@^17.7.1:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+zod@^3.21.4:
+ version "3.21.4"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db"
+ integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==
+
zwitch@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"