diff --git a/.eslintrc.js b/.eslintrc.js index c69d2b749..45097ef1b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -21,11 +21,13 @@ module.exports = { 'coverage', '_tmp', 'cache', - 'wasm', + 'native.d.ts', '/test/*/samples/**/*.*', '!/test/*/samples/**/_config.js', '!/test/*/samples/**/rollup.config.js', - '!.vitepress' + '!.vitepress', + '/wasm/', + '/wasm-node/' ], overrides: [ { diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml new file mode 100644 index 000000000..93fa90e69 --- /dev/null +++ b/.github/workflows/build-and-tests.yml @@ -0,0 +1,368 @@ +name: CI +env: + DEBUG: napi:* + APP_NAME: rollup + MACOSX_DEPLOYMENT_TARGET: '10.13' + +on: + push: + branches: + - master + tags: + - 'v*.*.**' + pull_request: + types: + - synchronize + - opened + - reopened + merge_group: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + lint: + name: Lint and Audit + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout Commit + uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 20 + - name: Cache Node Modules + id: cache-node-modules + uses: actions/cache@v3 + with: + path: node_modules + key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} + - name: Install dependencies + if: steps.cache-node-modules.outputs.cache-hit != 'true' + run: npm ci --ignore-scripts + - name: Lint + run: npm run ci:lint + - name: Vulnerabilities + run: npm audit + - name: Optional Dependencies + run: npm run test:package + - name: CLI Docs + run: npm run test:options + + build: + strategy: + fail-fast: false + matrix: + settings: + - host: windows-latest + target: x86_64-pc-windows-msvc + name: wasm + is-wasm-build: true + build: >- + set -e && + rustup target add wasm32-unknown-unknown && + npm run build:wasm + path: | + wasm/ + .empty + - host: windows-latest + target: x86_64-pc-windows-msvc + name: wasm-node + is-wasm-build: true + build: >- + set -e && + rustup target add wasm32-unknown-unknown && + npm run build:wasm:node + path: | + wasm-node/ + .empty + - host: macos-latest + target: x86_64-apple-darwin + build: >- + set -e && + npm run build:napi -- --release && + strip -x *.node + - host: windows-latest + build: npm run build:napi -- --release + target: x86_64-pc-windows-msvc + - host: windows-latest + build: >- + set -e && + rustup target add i686-pc-windows-msvc && + npm run build:napi -- --release --target i686-pc-windows-msvc + target: i686-pc-windows-msvc + - host: ubuntu-latest + target: x86_64-unknown-linux-gnu + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian + build: >- + set -e && + rustup target add x86_64-unknown-linux-gnu && + npm run build:napi -- --release --target x86_64-unknown-linux-gnu && + strip *.node + - host: ubuntu-latest + target: x86_64-unknown-linux-musl + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + build: >- + set -e && + npm run build:napi -- --release && strip *.node + - host: macos-latest + target: aarch64-apple-darwin + build: >- + set -e && + rustup target add aarch64-apple-darwin && + npm run build:napi -- --release --target aarch64-apple-darwin && + strip -x *.node + - host: ubuntu-latest + target: aarch64-unknown-linux-gnu + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 + build: >- + set -e && + export JEMALLOC_SYS_WITH_LG_PAGE=16 && + rustup default nightly-2023-10-05 && + rustup target add aarch64-unknown-linux-gnu && + npm run build:napi -- --release --target aarch64-unknown-linux-gnu && + aarch64-unknown-linux-gnu-strip *.node + - host: ubuntu-latest + target: armv7-unknown-linux-gnueabihf + zig: true + setup: | + sudo apt-get update + sudo apt-get install gcc-arm-linux-gnueabihf -y + build: >- + set -e && + npm run build:napi -- --release --target armv7-unknown-linux-gnueabihf && + arm-linux-gnueabihf-strip *.node + - host: ubuntu-latest + target: aarch64-linux-android + build: >- + set -e && + npm run build:napi -- --release --target aarch64-linux-android && + ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node + - host: ubuntu-latest + target: armv7-linux-androideabi + build: >- + set -e && + npm run build:napi -- --release --target armv7-linux-androideabi && + ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node + - host: ubuntu-latest + target: aarch64-unknown-linux-musl + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + build: >- + set -e && + export JEMALLOC_SYS_WITH_LG_PAGE=16 && + rustup default nightly-2023-10-05 && + rustup target add aarch64-unknown-linux-musl && + RUSTFLAGS='-C target-feature=-crt-static -C linker=aarch64-linux-musl-gcc' npm run build:napi -- --release --target aarch64-unknown-linux-musl && + /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node + - host: windows-latest + target: aarch64-pc-windows-msvc + build: npm run build:napi -- --release --target aarch64-pc-windows-msvc + name: Build ${{ matrix.settings.name || matrix.settings.target }} + runs-on: ${{ matrix.settings.host }} + timeout-minutes: 30 + steps: + - name: Checkout Commit + uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v3 + if: ${{ !matrix.settings.docker }} + with: + node-version: 20 + - name: Install Toolchain + uses: dtolnay/rust-toolchain@stable + if: ${{ !matrix.settings.docker }} + with: + toolchain: nightly-2023-10-05 + targets: ${{ matrix.settings.target }} + - name: Cache cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + .cargo-cache + rust/target/ + key: ${{ matrix.settings.name || matrix.settings.target }}-cargo-${{ matrix.settings.host }}-${{ hashFiles('rust/Cargo.lock') }} + restore-keys: ${{ matrix.settings.name || matrix.settings.target }}-cargo-${{ matrix.settings.host }} + - uses: goto-bus-stop/setup-zig@v2 + if: ${{ matrix.settings.zig }} + with: + version: 0.10.1 + - name: Setup toolchain + run: ${{ matrix.settings.setup }} + if: ${{ matrix.settings.setup }} + shell: bash + - name: Cache Node Modules + id: cache-node-modules + uses: actions/cache@v3 + with: + path: node_modules + key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} + - name: Install dependencies + if: steps.cache-node-modules.outputs.cache-hit != 'true' + run: npm ci --ignore-scripts + - name: Build in docker + uses: addnab/docker-run-action@v3 + if: ${{ matrix.settings.docker }} + with: + image: ${{ matrix.settings.docker }} + options: '--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build' + run: ${{ matrix.settings.build }} + - name: Build + run: ${{ matrix.settings.build }} + if: ${{ !matrix.settings.docker }} + shell: bash + - name: Upload wasm artifact + uses: actions/upload-artifact@v3 + with: + name: bindings-${{ matrix.settings.name }} + path: ${{ matrix.settings.path }} + if-no-files-found: error + if: ${{ matrix.settings.is-wasm-build }} + - name: Upload napi artifact + uses: actions/upload-artifact@v3 + with: + name: bindings-${{ matrix.settings.target }} + path: ${{ env.APP_NAME }}.*.node + if-no-files-found: error + if: ${{ !matrix.settings.is-wasm-build }} + + test: + name: Test${{ matrix.additionalName || '' }} Node ${{ matrix.node }} (${{ matrix.settings.target }}) + needs: + - build + strategy: + fail-fast: false + matrix: + settings: + - host: ubuntu-latest + target: x86_64-unknown-linux-gnu + - host: windows-latest + target: x86_64-pc-windows-msvc + - host: macos-latest + target: x86_64-apple-darwin + node: + - '18.0.0' + - '20' + include: + - settings: + host: ubuntu-latest + target: x86_64-unknown-linux-gnu + node: '20' + command: 'ci:coverage' + additionalName: ' with Coverage' + coverage: true + - settings: + host: ubuntu-latest + target: x86_64-unknown-linux-gnu + node: '18.0.0' + command: 'ci:test:all' + additionalName: ' with Additional Tests' + runs-on: ${{ matrix.settings.host }} + timeout-minutes: 15 + steps: + - name: Checkout Commit + uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + check-latest: true + - name: Cache Node Modules + id: cache-node-modules + uses: actions/cache@v3 + with: + path: node_modules + key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} + - name: Install dependencies + if: steps.cache-node-modules.outputs.cache-hit != 'true' + run: npm ci --ignore-scripts + - name: Download napi artifacts + uses: actions/download-artifact@v3 + with: + name: bindings-${{ matrix.settings.target }} + path: . + - name: Download wasm artifacts + uses: actions/download-artifact@v3 + with: + name: bindings-wasm + - name: Build and test Rollup + run: npm run ${{ matrix.command || 'ci:test:only' }} + env: + CI: true + - name: Upload coverage + uses: codecov/codecov-action@v3 + if: matrix.coverage + with: +# It appears adding the token may result in the coverage comment not being added +# token: ${{ secrets.CODECOV_TOKEN }} + commit_parent: ${{ github.event.pull_request.head.sha }} + + publish: + permissions: + pull-requests: write # for writing comments + issues: write # for writing comments + contents: write # for creating a release + name: Publish + runs-on: ubuntu-latest + timeout-minutes: 15 + needs: + - test + - lint + # This needs to be adapted for Rollup 5 + if: startsWith(github.ref_name, 'v4') + steps: + - name: Checkout Commit + uses: actions/checkout@v4 + with: + # Necessary to find the commits included in the release + fetch-depth: 0 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + check-latest: true + - name: Cache Node Modules + id: cache-node-modules + uses: actions/cache@v3 + with: + path: node_modules + key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} + - name: Install dependencies + if: steps.cache-node-modules.outputs.cache-hit != 'true' + run: npm ci --ignore-scripts + - name: Download all artifacts + uses: actions/download-artifact@v3 + with: + path: artifacts + - name: Copy wasm files + run: cp -R artifacts/bindings-wasm/wasm . + - name: Build JavaScript + run: npm run build:cjs && cp artifacts/*/*.node dist/ && npm run build:bootstrap + - name: Move artifacts + run: npm run ci:artifacts + - name: Publish + run: | + if git --no-pager log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$"; + then + echo "Publishing regular release" + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc + npm publish --access public + elif git --no-pager log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+-[0-9]\+$"; + then + echo "Publishing beta release" + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc + npm publish --tag beta --access public + else + echo "Not a release, skipping publish" + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + ROLLUP_RELEASE: 'releasing' diff --git a/.github/workflows/repl-artefacts.yml b/.github/workflows/repl-artefacts.yml index f9cf1852b..6c7c03a50 100644 --- a/.github/workflows/repl-artefacts.yml +++ b/.github/workflows/repl-artefacts.yml @@ -25,15 +25,11 @@ jobs: ref: refs/pull/${{ github.event.number }}/merge - name: Install Toolchain uses: dtolnay/rust-toolchain@stable - #TODO: remove after or before merging release-4.0 - if: ${{ github.head_ref == 'release-4.0' || github.base_ref == 'release-4.0' }} with: - toolchain: nightly + toolchain: nightly-2023-10-05 targets: x86_64-unknown-linux-gnu - name: Cache cargo uses: actions/cache@v3 - #TODO: remove after or before merging release-4.0 - if: ${{ github.head_ref == 'release-4.0' || github.base_ref == 'release-4.0' }} with: path: | ~/.cargo/registry/index/ @@ -57,13 +53,7 @@ jobs: if: steps.cache-node-modules.outputs.cache-hit != 'true' run: npm ci --ignore-scripts - name: Build artefacts - #TODO: remove after or before merging release-4.0 - if: ${{ github.head_ref == 'release-4.0' || github.base_ref == 'release-4.0' }} run: npm exec -- concurrently -c green,blue,yellow 'npm:build:napi -- --release' 'npm run build:wasm' 'npm:build:cjs' && npm run build:copy-native && npm run build:bootstrap - #TODO: remove after or before merging release-4.0 - - name: Build artefacts - if: ${{ github.head_ref != 'release-4.0' && github.base_ref != 'release-4.0' }} - run: npm run build:cjs && npm run build:bootstrap - name: Upload "${{ github.event.number }}/rollup.browser.js" to bucket uses: zdurham/s3-upload-github-action@master with: @@ -88,8 +78,6 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - name: Upload "${{ github.event.number }}/bindings_wasm_bg.wasm" to bucket uses: zdurham/s3-upload-github-action@master - #TODO: remove after or before merging release-4.0 - if: ${{ github.head_ref == 'release-4.0' || github.base_ref == 'release-4.0' }} with: args: --cache-control max-age=300,public env: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml deleted file mode 100644 index 8d4a2cb45..000000000 --- a/.github/workflows/tests.yml +++ /dev/null @@ -1,164 +0,0 @@ -name: Tests - -on: - push: - branches: - - master - pull_request: - types: [synchronize, opened, reopened] - merge_group: - -permissions: - contents: read - -jobs: - linux18: - runs-on: ubuntu-latest - timeout-minutes: 15 - name: Node 18 + Coverage (Linux) - steps: - - name: Checkout Commit - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: '18' - - name: Cache Node Modules - id: cache-node-modules - uses: actions/cache@v3 - with: - path: node_modules - key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - - name: Install dependencies - if: steps.cache-node-modules.outputs.cache-hit != 'true' - run: npm ci --ignore-scripts - - name: Run tests with coverage - run: npm run ci:coverage - env: - CI: true - - uses: codecov/codecov-action@v3 - with: -# It appears that with the token, the comment is not created -# token: ${{ secrets.CODECOV_TOKEN }} - commit_parent: ${{ github.event.pull_request.head.sha }} - - linux16: - runs-on: ubuntu-latest - timeout-minutes: 15 - name: Node 16 + Extra Tests (Linux) - steps: - - name: Checkout Commit - uses: actions/checkout@v4 - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: '16' - - name: Cache Node Modules - id: cache-node-modules - uses: actions/cache@v3 - with: - path: node_modules - key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - - name: Install dependencies - if: steps.cache-node-modules.outputs.cache-hit != 'true' - run: npm ci --ignore-scripts - - name: Lint - run: npm run ci:lint - - name: Vulnerabilities - run: npm audit - - name: Run all tests - run: npm run ci:test - env: - CI: true - - linux: - runs-on: ubuntu-latest - timeout-minutes: 15 - strategy: - matrix: - node: ['14.18.0'] - name: Node ${{ matrix.node }} (Linux) - steps: - - name: Checkout Commit - uses: actions/checkout@v4 - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node }} - - name: Cache Node Modules - id: cache-node-modules - uses: actions/cache@v3 - with: - path: node_modules - key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - - name: Install dependencies - if: steps.cache-node-modules.outputs.cache-hit != 'true' - run: npm i -g npm@8 && npm ci --ignore-scripts - - name: Run tests - run: npm run ci:test:only - env: - CI: true - - macos: - runs-on: macos-latest - timeout-minutes: 15 - strategy: - matrix: - node: ['14.18.0', '18'] - name: Node ${{ matrix.node }} (macOS) - steps: - - name: Checkout Commit - uses: actions/checkout@v4 - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node }} - - name: Cache Node Modules - id: cache-node-modules - uses: actions/cache@v3 - with: - path: node_modules - key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - - name: Update npm - if: (matrix.node == '14.18.0') && (steps.cache-node-modules.outputs.cache-hit != 'true') - run: npm i -g npm@8 - - name: Install dependencies - if: steps.cache-node-modules.outputs.cache-hit != 'true' - run: npm ci --ignore-scripts - - name: Run tests - run: npm run ci:test:only - env: - CI: true - - windows: - runs-on: windows-latest - timeout-minutes: 15 - strategy: - matrix: - node: ['14.18.0', '18'] - name: Node ${{ matrix.node }} (Windows) - steps: - - name: Checkout Commit - uses: actions/checkout@v4 - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node }} - - name: Cache Node Modules - id: cache-node-modules - uses: actions/cache@v3 - with: - path: node_modules - key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - - name: Update npm - if: (matrix.node == '14.18.0') && (steps.cache-node-modules.outputs.cache-hit != 'true') - run: npm i -g npm@8 - - name: Install dependencies - if: steps.cache-node-modules.outputs.cache-hit != 'true' - run: npm ci --ignore-scripts - - name: Run tests - run: npm run ci:test:only - env: - CI: true diff --git a/.nycrc b/.nycrc index af7db356d..9f64cae9e 100644 --- a/.nycrc +++ b/.nycrc @@ -1,4 +1,4 @@ { - "exclude": ["test"], + "exclude": ["test", "native.js"], "extension": [".ts", ""] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 66bb96254..0838bae6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,163 @@ - # rollup changelog +# rollup changelog + +## 4.1.4 + +_2023-10-16_ + +### Bug Fixes + +- Reduce sizes @rollup/browser and @rollup/wasm-node WASM artifacts (#5204) + +### Pull Requests + +- [#5204](https://github.com/rollup/rollup/pull/5204): perf: shrink wasm size by avoid importing browserslist (@sapphi-red) + +## 4.1.3 + +_2023-10-15_ + +### Bug Fixes + +- Fix WASM build as hash function was not exported (#5203) + +### Pull Requests + +- [#5203](https://github.com/rollup/rollup/pull/5203): fix: export xxhashBase64Url from wasm (@sapphi-red) + +## 4.1.2 + +_2023-10-15_ + +_Release did not finish successfully_ + +## 4.1.1 + +_2023-10-15_ + +### Bug Fixes + +- Improve Node parsing performance (#5201) + +### Pull Requests + +- [#5201](https://github.com/rollup/rollup/pull/5201): perf: use mimalloc for bindings_napi (@sapphi-red) + +## 4.1.0 + +_2023-10-14_ + +### Features + +- Reduce memory usage of Rollup builds (#5133) + +### Pull Requests + +- [#5133](https://github.com/rollup/rollup/pull/5133): perf: reducing ast node memory overhead (@thebanjomatic) +- [#5177](https://github.com/rollup/rollup/pull/5177): chore: explicitly set rust toolchain channel (@cijiugechu) +- [#5179](https://github.com/rollup/rollup/pull/5179): Update migration guide for Rollup 4 (@lukastaegert) +- [#5180](https://github.com/rollup/rollup/pull/5180): Resolve clippy errors (@cijiugechu) +- [#5183](https://github.com/rollup/rollup/pull/5183): Add clippy to pipeline and fix remaining issues (@lukastaegert) +- [#5184](https://github.com/rollup/rollup/pull/5184): docs: fix code example for `onLog` (@tjenkinson) +- [#5186](https://github.com/rollup/rollup/pull/5186): Improve wording for native artifacts in migration guide (@lukastaegert) +- [#5190](https://github.com/rollup/rollup/pull/5190): test: add verifyAst type (@TrickyPi) +- [#5196](https://github.com/rollup/rollup/pull/5196): chore(deps): update dependency rollup to v4 (@renovate[bot]) +- [#5197](https://github.com/rollup/rollup/pull/5197): chore(deps): lock file maintenance minor/patch updates (@renovate[bot]) + +## 4.0.2 + +_2023-10-06_ + +### Bug Fixes + +- Fix annotation detection logic to not fail when a non-ASCII character precedes a double underscore (#5178) + +### Pull Requests + +- [#5178](https://github.com/rollup/rollup/pull/5178): Handle special characters before double underscores (@lukastaegert) + +## 4.0.1 + +_2023-10-06_ + +### Bug Fixes + +- Do not panic on trailing semicolons after class methods (#5173) +- Add artifact for arm64 linux musl target (#5176) + +### Pull Requests + +- [#5172](https://github.com/rollup/rollup/pull/5172): chore(deps): lock file maintenance minor/patch updates (@renovate[bot]) +- [#5173](https://github.com/rollup/rollup/pull/5173): fix: ignores empty statements in class body that is returned by SWC parser (@TrickyPi) +- [#5176](https://github.com/rollup/rollup/pull/5176): Fix linux arm musl build (@lukastaegert) + +## 4.0.0 + +_2023-10-05_ + +### BREAKING CHANGES + +#### General Changes + +- The minimal required Node version is now 18.0.0 (#5142) +- The browser build now relies on a WASM artifact that needs to be provided as well (#5073) +- The NodeJS build now relies on an optional native binary; for unsupported platforms, users can use the `@rollup/wasm-node` package that has the same interface as Rollup but relies on WASM artifacts (#5073) +- The `INVALID_IMPORT_ASSERTION` error code has been replaced with `INVALID_IMPORT_ATTRIBUTE` (#5073) +- Rollup will now warn for `@__PURE__` and `@__NO_SIDE_EFFECTS__` annotations in invalid locations (#5165) +- If an entry module starts with a shebang comment `#!...`, this comment will be prepended to the output for `es` and `cjs` formats (#5163) +- File hashes will now use url-safe base64 encoded hashes (#5155) +- The maximum hash length has been reduced to 22 characters (#5155) +- The `RollupWarning` type has been removed in favor of the `RollupLog` type (#5147) + +#### Changes to Rollup Options + +- Acorn plugins are no longer supported, the `acornInjectPlugins` option has been removed (#5073) +- The `acorn` option has been removed (#5073) +- `output.externalImportAssertions` has been deprecated in favor of `output.externalImportAttributes` (#5073) +- `inlineDynamicImports`, `manualChunks` and `preserveModules` have been removed on input option level: Please use the corresponding output options of the same names (#5143) +- Removed output options (#5143): + - `output.experimentalDeepDynamicChunkOptimization`: This option is no longer needed as Rollup now always runs the full chunking algorithm + - `output.dynamicImportFunction`: Use the `renderDynamicImport` plugin hook instead + - `output.namespaceToStringTag`: Use `output.generatedCode.symbols` instead + - `output.preferConst`: Use `output.generatedCode.constBindings` instead + +#### Plugin API Changes + +- For `this.resolve`, the default of the `skipSelf` option is now `true` (#5142) +- `this.parse` now only supports the `allowReturnOutsideFunction` option for now (#5073) +- Import assertions now use the [new import attribute AST structure](https://github.com/estree/estree/blob/master/experimental/import-attributes.md) (#5073) +- "assertions" have been replaced with "attributes" in various places of the plugin interface (#5073) +- If the import of a module id is handled by the `load` hook of a plugin, `rollup.watch` no longer watches the actual file if the module id corresponds to a real path; if this is intended, then the plugin is responsible for calling `this.addWatchFile` for any dependency files (#5150) +- The normalized input options provided by `buildStart` and other hooks no longer contain an `onwarn` handler; plugins should use `onLog` instead (#5147) +- `this.moduleIds` has been removed from the plugin context: Use `this.getModuleIds()` instead (#5143) +- The `hasModuleSideEffects` flag has been removed from the `ModuleInfo` returned by `this.getModuleInfo()`: Use `moduleSideEffects` on the `ModuleInfo` instead (#5143) + +### Features + +- Improve parsing speed by switching to a native SWC-based parser (#5073) +- Rollup will now warn for `@__PURE__` and `@__NO_SIDE_EFFECTS__` annotations in invalid locations (#5165) +- The parser is now exposed as a separate export `parseAst` (#5169) + +### Bug Fixes + +- Rollup no longer tries to watch virtual files if their name corresponds to an actual file name; instead, plugins handle watching via `this.addWatchFile()` (#5150) + +### Pull Requests + +- [#5073](https://github.com/rollup/rollup/pull/5073): [v4.0] Switch parser to SWC and introduce native/WASM code (@lukastaegert) +- [#5142](https://github.com/rollup/rollup/pull/5142): [v4.0] Set the default of skipSelf to true (@TrickyPi) +- [#5143](https://github.com/rollup/rollup/pull/5143): [v4.0] Remove deprecated features (@lukastaegert) +- [#5144](https://github.com/rollup/rollup/pull/5144): [v4.0] Imporve the performance of generating ast and rollup ast nodes (@TrickyPi) +- [#5147](https://github.com/rollup/rollup/pull/5147): [v4.0] Remove onwarn from normalized input options (@lukastaegert) +- [#5150](https://github.com/rollup/rollup/pull/5150): [v4.0] feat: Do not watch files anymore if their content is returned by the load hook (@TrickyPi) +- [#5154](https://github.com/rollup/rollup/pull/5154): [v4.0] Add parse option to allow return outside function (@lukastaegert) +- [#5155](https://github.com/rollup/rollup/pull/5155): [v4.0] feat: implement hashing content in Rust (@TrickyPi) +- [#5157](https://github.com/rollup/rollup/pull/5157): [v4.0] Handle empty exports (@lukastaegert) +- [#5160](https://github.com/rollup/rollup/pull/5160): chore(deps): lock file maintenance minor/patch updates (@renovate[bot]) +- [#5163](https://github.com/rollup/rollup/pull/5163): [v4.0] feat: preserve shebang in entry module for CJS and ESM outputs (@TrickyPi) +- [#5164](https://github.com/rollup/rollup/pull/5164): [v4.0] fix: also strip BOM from code strings in JS (@TrickyPi) +- [#5165](https://github.com/rollup/rollup/pull/5165): [v4.0] warn for invalid annotations (@lukastaegert) +- [#5168](https://github.com/rollup/rollup/pull/5168): [v4.0] Ensure we support new import attribute "with" syntax (@lukastaegert) +- [#5169](https://github.com/rollup/rollup/pull/5169): [v4.0] Expose parser (@lukastaegert) ## 3.29.4 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 33ef921d0..f8bd53cad 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,6 +16,12 @@ We welcome any type of contribution, not only code. You can help with Working on your first Pull Request? You can learn how from this _free_ course, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github). +### Setting up the Rust toolchain + +Rollup now includes some Rust code. To compile it, you need to set up Rust nightly. If you haven't installed it yet, please first see https://www.rust-lang.org/tools/install to learn how to download Rustup and install Rust, then see https://rust-lang.github.io/rustup/concepts/channels.html to learn how to install Rust nightly. If everything is set up correctly, `npm run build` should complete successfully. The first build will be rather slow, but subsequent builds will be much faster. + +For local development and tests, it is even faster to run `npm run build:quick`, which does not perform a Rust production build, does not build WASM artefacts, and only builds the CommonJS version of Rollup. Note that with this build, a few tests will fail that rely on the other artefacts, see below. + ### Git configuration to enable symlinks The unit tests in this projects make use of symlinks in the git project. On Windows, this may not work as expected without extra configuration. To configure git to create symlinks on windows, you need to enable the Windows "Developer Mode" setting, and also set the `core.symlinks` git feature using either of the following commands: @@ -43,7 +49,7 @@ To save time for quick iterations, you can add `solo:true` to the `_config.js` f For those tests, it is enough to run ```shell -npm run build:cjs +npm run build:quick npm run test:quick ``` diff --git a/LICENSE.md b/LICENSE.md index a199a3149..238cabc51 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -52,71 +52,6 @@ Repository: rollup/plugins --------------------------------------- -## acorn -License: MIT -By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine -Repository: https://github.com/acornjs/acorn.git - -> MIT License -> -> Copyright (C) 2012-2022 by various contributors (see AUTHORS) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ---------------------------------------- - -## acorn-import-assertions -License: MIT -By: Sven Sauleau -Repository: https://github.com/xtuc/acorn-import-assertions - ---------------------------------------- - -## acorn-walk -License: MIT -By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine -Repository: https://github.com/acornjs/acorn.git - -> MIT License -> -> Copyright (C) 2012-2020 by various contributors (see AUTHORS) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ---------------------------------------- - ## anymatch License: ISC By: Elan Shanker diff --git a/browser/LICENSE.md b/browser/LICENSE.md index 356f756a3..bb6a72be4 100644 --- a/browser/LICENSE.md +++ b/browser/LICENSE.md @@ -13,7 +13,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI # Licenses of bundled dependencies The published Rollup artifact additionally contains code with the following licenses: -MIT, ISC +MIT # Bundled dependencies: ## @jridgewell/sourcemap-codec @@ -52,71 +52,6 @@ Repository: rollup/plugins --------------------------------------- -## acorn -License: MIT -By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine -Repository: https://github.com/acornjs/acorn.git - -> MIT License -> -> Copyright (C) 2012-2022 by various contributors (see AUTHORS) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ---------------------------------------- - -## acorn-import-assertions -License: MIT -By: Sven Sauleau -Repository: https://github.com/xtuc/acorn-import-assertions - ---------------------------------------- - -## acorn-walk -License: MIT -By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine -Repository: https://github.com/acornjs/acorn.git - -> MIT License -> -> Copyright (C) 2012-2020 by various contributors (see AUTHORS) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ---------------------------------------- - ## builtin-modules License: MIT By: Sindre Sorhus @@ -151,35 +86,6 @@ Repository: lukeed/flru --------------------------------------- -## hash.js -License: MIT -By: Fedor Indutny -Repository: git@github.com:indutny/hash.js - ---------------------------------------- - -## inherits -License: ISC -Repository: git://github.com/isaacs/inherits - -> The ISC License -> -> Copyright (c) Isaac Z. Schlueter -> -> Permission to use, copy, modify, and/or distribute this software for any -> purpose with or without fee is hereby granted, provided that the above -> copyright notice and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -> OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -> PERFORMANCE OF THIS SOFTWARE. - ---------------------------------------- - ## is-reference License: MIT By: Rich Harris @@ -206,23 +112,3 @@ Repository: https://github.com/rich-harris/magic-string > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---------------------------------------- - -## minimalistic-assert -License: ISC -Repository: https://github.com/calvinmetcalf/minimalistic-assert.git - -> Copyright 2015 Calvin Metcalf -> -> Permission to use, copy, modify, and/or distribute this software for any purpose -> with or without fee is hereby granted, provided that the above copyright notice -> and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -> OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -> PERFORMANCE OF THIS SOFTWARE. diff --git a/browser/package.json b/browser/package.json index 401c1c9cf..cc8d9b097 100644 --- a/browser/package.json +++ b/browser/package.json @@ -1,6 +1,6 @@ { "name": "@rollup/browser", - "version": "3.29.4", + "version": "4.1.4", "description": "Next-generation ES module bundler browser build", "main": "dist/rollup.browser.js", "module": "dist/es/rollup.browser.js", @@ -20,6 +20,7 @@ }, "homepage": "https://rollupjs.org/", "files": [ + "dist/**/*.wasm", "dist/**/*.js", "dist/*.d.ts", "dist/es/package.json", diff --git a/browser/src/crypto.ts b/browser/src/crypto.ts deleted file mode 100644 index c104e6cca..000000000 --- a/browser/src/crypto.ts +++ /dev/null @@ -1,6 +0,0 @@ -import sha256 from 'hash.js/lib/hash/sha/256'; - -export const createHash = (): { - digest: (format: string) => string; - update: (data: unknown) => void; -} => sha256(); diff --git a/browser/src/initWasm.ts b/browser/src/initWasm.ts new file mode 100644 index 000000000..ccd5e8d56 --- /dev/null +++ b/browser/src/initWasm.ts @@ -0,0 +1,6 @@ +// eslint-disable-next-line import/no-unresolved +import init from '../../wasm/bindings_wasm'; + +export default async function initWasm() { + await init(); +} diff --git a/browser/src/wasm.ts b/browser/src/wasm.ts new file mode 100644 index 000000000..03bf6168f --- /dev/null +++ b/browser/src/wasm.ts @@ -0,0 +1,2 @@ +// eslint-disable-next-line import/no-unresolved +export { parse, xxhashBase64Url } from '../../wasm/bindings_wasm.js'; diff --git a/build-plugins/add-cli-entry.ts b/build-plugins/add-cli-entry.ts index 81e2931fc..b3b6a207a 100644 --- a/build-plugins/add-cli-entry.ts +++ b/build-plugins/add-cli-entry.ts @@ -1,6 +1,5 @@ import { chmod } from 'node:fs/promises'; import { resolve } from 'node:path'; -import MagicString from 'magic-string'; import type { Plugin } from 'rollup'; const CLI_CHUNK = 'bin/rollup'; @@ -16,14 +15,6 @@ export default function addCliEntry(): Plugin { }); }, name: 'add-cli-entry', - renderChunk(code, chunkInfo) { - if (chunkInfo.fileName === CLI_CHUNK) { - const magicString = new MagicString(code); - magicString.prepend('#!/usr/bin/env node\n\n'); - return { code: magicString.toString(), map: magicString.generateMap({ hires: true }) }; - } - return null; - }, writeBundle({ dir }) { return chmod(resolve(dir!, CLI_CHUNK), '755'); } diff --git a/build-plugins/aliases.ts b/build-plugins/aliases.ts index 3989f8477..85a59dc4a 100644 --- a/build-plugins/aliases.ts +++ b/build-plugins/aliases.ts @@ -2,7 +2,6 @@ import { fileURLToPath } from 'node:url'; export const moduleAliases = { entries: { - acorn: fileURLToPath(new URL('../node_modules/acorn/dist/acorn.mjs', import.meta.url)), 'help.md': fileURLToPath(new URL('../cli/help.md', import.meta.url)), 'package.json': fileURLToPath(new URL('../package.json', import.meta.url)) }, diff --git a/build-plugins/copy-types.ts b/build-plugins/copy-types.ts index d979968e2..d68cfa349 100644 --- a/build-plugins/copy-types.ts +++ b/build-plugins/copy-types.ts @@ -33,6 +33,7 @@ export function copyNodeTypes(): Plugin[] { 'cli/run/loadConfigFileType.d.ts', '../../src/rollup/types' ), - copyRollupType('getLogFilter.d.ts', 'src/utils/getLogFilterType.d.ts', '../rollup/types') + copyRollupType('getLogFilter.d.ts', 'src/utils/getLogFilterType.d.ts', '../rollup/types'), + copyRollupType('parseAst.d.ts', 'src/utils/parseAstType.d.ts', '../rollup/types') ]; } diff --git a/build-plugins/emit-native-entry.ts b/build-plugins/emit-native-entry.ts new file mode 100644 index 000000000..8b4e0ffa6 --- /dev/null +++ b/build-plugins/emit-native-entry.ts @@ -0,0 +1,15 @@ +import { readFile } from 'node:fs/promises'; +import type { Plugin } from 'rollup'; + +export function emitNativeEntry(): Plugin { + return { + async generateBundle() { + this.emitFile({ + fileName: 'native.js', + source: await readFile(new URL('../native.js', import.meta.url)), + type: 'asset' + }); + }, + name: 'emit-native-entry' + }; +} diff --git a/build-plugins/emit-wasm-file.ts b/build-plugins/emit-wasm-file.ts new file mode 100644 index 000000000..713f637c0 --- /dev/null +++ b/build-plugins/emit-wasm-file.ts @@ -0,0 +1,15 @@ +import fs from 'node:fs/promises'; +import type { Plugin } from 'rollup'; + +export default function emitWasmFile(): Plugin { + return { + async generateBundle() { + this.emitFile({ + fileName: 'bindings_wasm_bg.wasm', + source: await fs.readFile('wasm/bindings_wasm_bg.wasm'), + type: 'asset' + }); + }, + name: 'emit-wasm-file' + }; +} diff --git a/build-plugins/external-native-import.ts b/build-plugins/external-native-import.ts new file mode 100644 index 000000000..842dfddc9 --- /dev/null +++ b/build-plugins/external-native-import.ts @@ -0,0 +1,17 @@ +import type { Plugin } from 'rollup'; + +export function externalNativeImport(): Plugin { + return { + name: 'external-native-import', + async resolveId(id, importer) { + if (id.includes('/native')) { + const resolved = await this.resolve(id, importer!, { skipSelf: true }); + const resolvedId = resolved!.id; + return { + external: 'relative', + id: resolvedId.endsWith('.js') ? resolvedId : `${resolvedId}.js` + }; + } + } + }; +} diff --git a/build-plugins/replace-browser-modules.ts b/build-plugins/replace-browser-modules.ts index e00234124..da9195671 100644 --- a/build-plugins/replace-browser-modules.ts +++ b/build-plugins/replace-browser-modules.ts @@ -1,36 +1,41 @@ import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; +import type { Plugin as RollupPlugin } from 'rollup'; import type { Plugin } from 'vite'; const resolve = (path: string) => fileURLToPath(new URL(`../${path}`, import.meta.url)); -const REPLACED_MODULES = [ - 'crypto', +const JS_REPLACED_MODULES = [ 'fs', 'hookActions', 'path', 'performance', 'process', - 'resolveId' + 'resolveId', + 'initWasm' ]; -const resolutions: ReadonlyMap = new Map( - REPLACED_MODULES.flatMap(module => { - const originalId = resolve(`src/utils/${module}`); - const replacementId = resolve(`browser/src/${module}.ts`); - return [ - [originalId, replacementId], - [`${originalId}.ts`, replacementId] - ]; - }) -); +type ModulesMap = [string, string][]; -export default function replaceBrowserModules(): Plugin { +const jsModulesMap: ModulesMap = JS_REPLACED_MODULES.flatMap(module => { + const originalId = resolve(`src/utils/${module}`); + const replacementId = resolve(`browser/src/${module}.ts`); + return [ + [originalId, replacementId], + [`${originalId}.ts`, replacementId] + ]; +}); + +const wasmModulesMap: ModulesMap = [[resolve('native'), resolve('browser/src/wasm.ts')]]; + +const resolutions: ReadonlyMap = new Map([...jsModulesMap, ...wasmModulesMap]); + +export default function replaceBrowserModules(): Plugin & RollupPlugin { return { apply: 'serve', enforce: 'pre', name: 'replace-browser-modules', - resolveId(source, importer) { + resolveId(source: string, importer: string | undefined) { if (importer && source[0] === '.') { return resolutions.get(join(dirname(importer), source)); } diff --git a/cli/cli.ts b/cli/cli.ts index d06f13c84..b43cc105a 100644 --- a/cli/cli.ts +++ b/cli/cli.ts @@ -1,3 +1,4 @@ +#!/usr/bin/env node import process from 'node:process'; import help from 'help.md'; import { version } from 'package.json'; diff --git a/cli/help.md b/cli/help.md index 74afadf40..99ce75d39 100644 --- a/cli/help.md +++ b/cli/help.md @@ -35,7 +35,7 @@ Basic options: --no-esModule Do not add __esModule property --exports Specify export mode (auto, default, named, none) --extend Extend global variable defined by --name ---no-externalImportAssertions Omit import assertions in "es" output +--no-externalImportAttributes Omit import attributes in "es" output --no-externalLiveBindings Do not generate code to support live bindings --failAfterWarnings Exit with an error if the build produced warnings --filterLogs Filter log messages diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index ba25610c4..5e4f9f8e8 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -102,7 +102,11 @@ export default defineConfig({ }, { link: '/migration/', +<<<<<<< HEAD text: '迁移到 Rollup 3' +======= + text: 'Migrating to Rollup 4' +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 }, { link: '/tools/', diff --git a/docs/.vitepress/verify-anchors.ts b/docs/.vitepress/verify-anchors.ts index 28b58d50a..8e6dcd8f0 100644 --- a/docs/.vitepress/verify-anchors.ts +++ b/docs/.vitepress/verify-anchors.ts @@ -31,7 +31,7 @@ function updateLegacySlugsFile() { if (originalSlugsFileText !== slugsFileText) { writeFileSync(slugsFile, slugsFileText); throw new Error( - `The content of the legacy anchor mapping file has changed. You should run "npm run build" locally and commit the updated file.` + `The content of the legacy anchor mapping file has changed. You should run "npm run build:docs" locally and commit the updated file.` ); } } diff --git a/docs/command-line-interface/index.md b/docs/command-line-interface/index.md index b7be09ca1..0751e33b2 100755 --- a/docs/command-line-interface/index.md +++ b/docs/command-line-interface/index.md @@ -56,9 +56,13 @@ export default { preserveEntrySignatures, strictDeprecations, +<<<<<<< HEAD // 危险区域 acorn, acornInjectPlugins, +======= + // danger zone +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 context, moduleContext, preserveSymlinks, @@ -89,7 +93,7 @@ export default { dynamicImportInCjs, entryFileNames, extend, - externalImportAssertions, + externalImportAttributes, footer, generatedCode, hoistTransitiveImports, @@ -357,6 +361,7 @@ export default { 许多选项都有等效的命令行标志。在这些情况下,如果你正在使用配置文件,则此处传递的任何参数都将覆盖配置文件。以下是所有支持的选项列表: ``` +<<<<<<< HEAD -c, --config 使用此配置文件 (如果使用参数但未指定值,则默认为 rollup.config.js) -d, --dir 用于块的目录(如果不存在,则打印到 stdout) @@ -447,6 +452,98 @@ export default { --watch.onError 在 "ERROR" 事件上运行的 Shell 命令 --watch.onStart 在 "START" 事件上运行的 Shell 命令 --watch.skipWrite 在监视时不要将文件写入磁盘 +======= +-c, --config Use this config file (if argument is used but value + is unspecified, defaults to rollup.config.js) +-d, --dir Directory for chunks (if absent, prints to stdout) +-e, --external Comma-separate list of module IDs to exclude +-f, --format Type of output (amd, cjs, es, iife, umd, system) +-g, --globals Comma-separate list of `moduleID:Global` pairs +-h, --help Show this help message +-i, --input Input (alternative to ) +-m, --sourcemap Generate sourcemap (`-m inline` for inline map) +-n, --name Name for UMD export +-o, --file Single output file (if absent, prints to stdout) +-p, --plugin Use the plugin specified (may be repeated) +-v, --version Show version number +-w, --watch Watch files in bundle and rebuild on changes +--amd.autoId Generate the AMD ID based off the chunk name +--amd.basePath Path to prepend to auto generated AMD ID +--amd.define Function to use in place of `define` +--amd.forceJsExtensionForImports Use `.js` extension in AMD imports +--amd.id ID for AMD module (default is anonymous) +--assetFileNames Name pattern for emitted assets +--banner Code to insert at top of bundle (outside wrapper) +--chunkFileNames Name pattern for emitted secondary chunks +--compact Minify wrapper code +--context Specify top-level `this` value +--no-dynamicImportInCjs Write external dynamic CommonJS imports as require +--entryFileNames Name pattern for emitted entry chunks +--environment Settings passed to config file (see example) +--no-esModule Do not add __esModule property +--exports Specify export mode (auto, default, named, none) +--extend Extend global variable defined by --name +--no-externalImportAttributes Omit import attributes in "es" output +--no-externalLiveBindings Do not generate code to support live bindings +--failAfterWarnings Exit with an error if the build produced warnings +--filterLogs Filter log messages +--footer Code to insert at end of bundle (outside wrapper) +--no-freeze Do not freeze namespace objects +--generatedCode Which code features to use (es5/es2015) +--generatedCode.arrowFunctions Use arrow functions in generated code +--generatedCode.constBindings Use "const" in generated code +--generatedCode.objectShorthand Use shorthand properties in generated code +--no-generatedCode.reservedNamesAsProps Always quote reserved names as props +--generatedCode.symbols Use symbols in generated code +--no-hoistTransitiveImports Do not hoist transitive imports into entry chunks +--no-indent Don't indent result +--inlineDynamicImports Create single bundle when using dynamic imports +--no-interop Do not include interop block +--intro Code to insert at top of bundle (inside wrapper) +--logLevel Which kind of logs to display +--no-makeAbsoluteExternalsRelative Prevent normalization of external imports +--maxParallelFileOps How many files to read in parallel +--minifyInternalExports Force or disable minification of internal exports +--noConflict Generate a noConflict method for UMD globals +--outro Code to insert at end of bundle (inside wrapper) +--perf Display performance timings +--no-preserveEntrySignatures Avoid facade chunks for entry points +--preserveModules Preserve module structure +--preserveModulesRoot Put preserved modules under this path at root level +--preserveSymlinks Do not follow symlinks when resolving files +--no-sanitizeFileName Do not replace invalid characters in file names +--shimMissingExports Create shim variables for missing exports +--silent Don't print warnings +--sourcemapBaseUrl Emit absolute sourcemap URLs with given base +--sourcemapExcludeSources Do not include source code in source maps +--sourcemapFile Specify bundle position for source maps +--sourcemapFileNames Name pattern for emitted sourcemaps +--stdin=ext Specify file extension used for stdin input +--no-stdin Do not read "-" from stdin +--no-strict Don't emit `"use strict";` in the generated modules +--strictDeprecations Throw errors for deprecated features +--no-systemNullSetters Do not replace empty SystemJS setters with `null` +--no-treeshake Disable tree-shaking optimisations +--no-treeshake.annotations Ignore pure call annotations +--treeshake.correctVarValueBeforeDeclaration Deoptimize variables until declared +--treeshake.manualPureFunctions Manually declare functions as pure +--no-treeshake.moduleSideEffects Assume modules have no side effects +--no-treeshake.propertyReadSideEffects Ignore property access side effects +--no-treeshake.tryCatchDeoptimization Do not turn off try-catch-tree-shaking +--no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw +--validate Validate output +--waitForBundleInput Wait for bundle input files +--watch.buildDelay Throttle watch rebuilds +--no-watch.clearScreen Do not clear the screen when rebuilding +--watch.exclude Exclude files from being watched +--watch.include Limit watching to specified files +--watch.onBundleEnd Shell command to run on `"BUNDLE_END"` event +--watch.onBundleStart Shell command to run on `"BUNDLE_START"` event +--watch.onEnd Shell command to run on `"END"` event +--watch.onError Shell command to run on `"ERROR"` event +--watch.onStart Shell command to run on `"START"` event +--watch.skipWrite Do not write files to disk when watching +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 ``` 以下标志仅通过命令行界面可用。所有其他标志都对应并覆盖其配置文件等效项,请参阅[选项大列表](../configuration-options/index.md)获取详细信息。 diff --git a/docs/configuration-options/index.md b/docs/configuration-options/index.md index 53950e09b..3ef21a049 100755 --- a/docs/configuration-options/index.md +++ b/docs/configuration-options/index.md @@ -492,7 +492,11 @@ export default { if (level === 'warn') { handler('error', log); // 将其他警告转为错误 } else { +<<<<<<< HEAD handler(level, info); // 否则直接打印出日志 +======= + handler(level, log); // otherwise, just print the log +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 } } }; @@ -678,6 +682,7 @@ Promise.resolve() 该选项用于指定是否扩展 `umd` 或 `iife` 格式中 `name` 选项定义的全局变量。当值为 `true` 时,该全局变量将定义为 `(global.name = global.name || {})`。当值为 `false` 时,`name` 选项指定的全局变量将被覆盖为 `(global.name = {})`。 +<<<<<<< HEAD ### output.externalImportAssertions {#output-externalimportassertions} | | | @@ -687,6 +692,17 @@ Promise.resolve() | 默认: | `true` | 该选项表示如果输出格式为 `es`,是否在输出中为外部引入添加引入断言。默认情况下,断言取自输入文件,但插件可以在之后添加或删除断言。例如,`import "foo" assert {type: "json"}` 将导致相同的引入出现在输出中,除非该选项赋值为 `false`。需要注意的是,一个模块的所有引入需要有一致的断言,否则会发出警告。 +======= +### output.externalImportAttributes + +| | | +| -------: | :----------------------------------------------------------- | +| Type: | `boolean` | +| CLI: | `--externalImportAttributes`/`--no-externalImportAttributes` | +| Default: | `true` | + +Whether to add import attributes to external imports in the output if the output format is `es`. By default, attributes are taken from the input files, but plugins can add or remove attributes later. E.g. `import "foo" assert {type: "json"}` will cause the same import to appear in the output unless the option is set to `false`. Note that all imports of a module need to have consistent attributes, otherwise a warning is emitted. +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 ### output.generatedCode {#output-generatedcode} @@ -1655,6 +1671,7 @@ console.log(shared); 除非你知道自己在做什么,否则尽量别使用这些选项! +<<<<<<< HEAD ### acorn {#acorn} | | | @@ -1683,6 +1700,9 @@ export default { 在你的 Rollup 配置中。请注意,这与使用 Babel 不同,因为生成的输出文件仍将包含 JSX,而 Babel 会将其替换为有效的 JavaScript 代码。 ### context {#context} +======= +### context +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 | | | | -----: | :---------------------------- | @@ -2111,10 +2131,18 @@ class Impure { } } -/*@__PURE__*/ new Impure(); +/*@__PURE__ There may be additional text in the comment */ new Impure(); ``` +<<<<<<< HEAD ##### `@__NO_SIDE_EFFECTS__` {#nosideeffects} +======= +Such an annotation is considered _valid_ if it directly precedes a function call or constructor invocation and is only separated from the callee by white-space or comments. The only exception are parentheses that wrap a call or invocation. + +Invalid annotations are removed and Rollup emits a warning. Valid annotations remain in the code unless their function call or constructor invocation is removed as well. + +##### `@__NO_SIDE_EFFECTS__` +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 包含 `@__NO_SIDE_EFFECTS__` 或者 `#__NO_SIDE_EFFECTS__` 的注释标记函数声明本身是无副作用的。当一个函数被标记为没有副作用时,所有对该函数的调用都将被认为是没有副作用的。下面的代码将被完全除屑优化,除非将该选项设置为 `false`,否则它将保持不变。 @@ -2133,7 +2161,15 @@ impure(); // <-- call will be considered as side effect free impureArrowFn(); // <-- call will be considered as side effect free ``` +<<<<<<< HEAD #### treeshake.correctVarValueBeforeDeclaration {#treeshake-correctvarvaluebeforedeclaration} +======= +Such an annotation is considered _valid_ if it directly precedes a function declaration or a constant variable declaration where the first declared variable is a function and is only separated from the declaration by white-space or comments. + +Invalid annotations are removed and Rollup emits a warning. Valid annotations remain in the code unless their declaration is removed as well + +#### treeshake.correctVarValueBeforeDeclaration +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 | | | | --: | :-- | @@ -2585,6 +2621,7 @@ export default { ☢️ 这些选项已经废弃,可能从未来的 Rollup 版本中移除。 +<<<<<<< HEAD ### inlineDynamicImports {#inlinedynamicimports} _请使用具有相同签名的 [`output.inlineDynamicImports`](#output-inlinedynamicimports) 选项代替。_ @@ -2663,3 +2700,16 @@ console.log(String(namespace)); ### preserveModules {#preservemodules} _请使用具有相同签名的 [`output.preserveModules`](#output-preservemodules) 选项代替。_ +======= +### output.externalImportAssertions + +_Use the [`output.externalImportAttributes`](#output-externalimportattributes) option instead._ + +| | | +| -------: | :----------------------------------------------------------- | +| Type: | `boolean` | +| CLI: | `--externalImportAssertions`/`--no-externalImportAssertions` | +| Default: | `true` | + +Whether to add import assertions to external imports in the output if the output format is `es`. By default, assertions are taken from the input files, but plugins can add or remove assertions later. E.g. `import "foo" assert {type: "json"}` will cause the same import to appear in the output unless the option is set to `false`. Note that all imports of a module need to have consistent assertions, otherwise a warning is emitted. +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 diff --git a/docs/guide/en/slugs-and-pages-by-legacy-slugs.json b/docs/guide/en/slugs-and-pages-by-legacy-slugs.json index be62649aa..fa96175f8 100644 --- a/docs/guide/en/slugs-and-pages-by-legacy-slugs.json +++ b/docs/guide/en/slugs-and-pages-by-legacy-slugs.json @@ -1 +1,5 @@ -{"--bundleconfigascjs":["command-line-interface","bundleconfigascjs"],"--configplugin-plugin":["command-line-interface","configplugin-plugin"],"--environment-values":["command-line-interface","environment-values"],"--failafterwarnings":["command-line-interface","failafterwarnings"],"--no-stdin":["command-line-interface","no-stdin"],"--silent":["command-line-interface","silent"],"--stdinext":["command-line-interface","stdinext"],"--waitforbundleinput":["command-line-interface","waitforbundleinput"],"-h--help":["command-line-interface","h-help"],"-v--version":["command-line-interface","v-version"],"-w--watch":["command-line-interface","w-watch"],"acorn":["configuration-options","acorn"],"acorninjectplugins":["configuration-options","acorninjectplugins"],"augmentchunkhash":["plugin-development","augmentchunkhash"],"babel":["tools","babel"],"banner":["plugin-development","banner"],"big-list-of-options":["configuration-options",""],"buildend":["plugin-development","buildend"],"buildstart":["plugin-development","buildstart"],"cache":["configuration-options","cache"],"closebundle":["plugin-development","closebundle"],"closewatcher":["plugin-development","closewatcher"],"command-line-reference":["command-line-interface",""],"context":["configuration-options","context"],"deno":["tools","deno"],"error-emfile-too-many-open-files":["troubleshooting","error-emfile-too-many-open-files"],"error-javascript-heap-out-of-memory":["troubleshooting","error:-javascript-heap-out-of-memory"],"error-name-is-not-exported-by-module":["troubleshooting","error-name-is-not-exported-by-module"],"error-node-tried-to-load-your-configuration-file-as-commonjs-even-though-it-is-likely-an-es-module":["troubleshooting","error-node-tried-to-load-your-configuration-file-as-commonjs-even-though-it-is-likely-an-es-module"],"error-this-is-undefined":["troubleshooting","error-this-is-undefined"],"es-module-syntax":["es-module-syntax",""],"eval2--eval":["troubleshooting","eval2-eval"],"experimentalcacheexpiry":["configuration-options","experimentalcacheexpiry"],"external":["configuration-options","external"],"faqs":["faqs",""],"footer":["plugin-development","footer"],"generatebundle":["plugin-development","generatebundle"],"gulp":["tools","gulp"],"inlinedynamicimports":["configuration-options","inlinedynamicimports"],"input":["configuration-options","input"],"intro":["plugin-development","intro"],"introduction":["introduction",""],"javascript-api":["javascript-api",""],"load":["plugin-development","load"],"makeabsoluteexternalsrelative":["configuration-options","makeabsoluteexternalsrelative"],"manualchunks":["configuration-options","manualchunks"],"maxparallelfileops":["configuration-options","maxparallelfileops"],"maxparallelfilereads":["configuration-options","maxparallelfilereads"],"migration":["migration",""],"modulecontext":["configuration-options","modulecontext"],"moduleparsed":["plugin-development","moduleparsed"],"name":["plugin-development","name"],"new-function":["troubleshooting","new-function"],"onwarn":["configuration-options","onwarn"],"options":["plugin-development","options"],"outputamd":["configuration-options","output-amd"],"outputassetfilenames":["configuration-options","output-assetfilenames"],"outputbanneroutputfooter":["configuration-options","output-banner-output-footer"],"outputchunkfilenames":["configuration-options","output-chunkfilenames"],"outputcompact":["configuration-options","output-compact"],"outputdir":["configuration-options","output-dir"],"outputdynamicimportfunction":["configuration-options","output-dynamicimportfunction"],"outputdynamicimportincjs":["configuration-options","output-dynamicimportincjs"],"outputentryfilenames":["configuration-options","output-entryfilenames"],"outputesmodule":["configuration-options","output-esmodule"],"outputexports":["configuration-options","output-exports"],"outputextend":["configuration-options","output-extend"],"outputexternalimportassertions":["configuration-options","output-externalimportassertions"],"outputexternallivebindings":["configuration-options","output-externallivebindings"],"outputfile":["configuration-options","output-file"],"outputformat":["configuration-options","output-format"],"outputfreeze":["configuration-options","output-freeze"],"outputgeneratedcode":["configuration-options","output-generatedcode"],"outputglobals":["configuration-options","output-globals"],"outputhoisttransitiveimports":["configuration-options","output-hoisttransitiveimports"],"outputindent":["configuration-options","output-indent"],"outputinlinedynamicimports":["configuration-options","output-inlinedynamicimports"],"outputinterop":["configuration-options","output-interop"],"outputintrooutputoutro":["configuration-options","output-intro-output-outro"],"outputmanualchunks":["configuration-options","output-manualchunks"],"outputminifyinternalexports":["configuration-options","output-minifyinternalexports"],"outputname":["configuration-options","output-name"],"outputnamespacetostringtag":["configuration-options","output-namespacetostringtag"],"outputnoconflict":["configuration-options","output-noconflict"],"outputoptions":["plugin-development","outputoptions"],"outputpaths":["configuration-options","output-paths"],"outputplugins":["configuration-options","output-plugins"],"outputpreferconst":["configuration-options","output-preferconst"],"outputpreservemodules":["configuration-options","output-preservemodules"],"outputpreservemodulesroot":["configuration-options","output-preservemodulesroot"],"outputsanitizefilename":["configuration-options","output-sanitizefilename"],"outputsourcemap":["configuration-options","output-sourcemap"],"outputsourcemapbaseurl":["configuration-options","output-sourcemapbaseurl"],"outputsourcemapexcludesources":["configuration-options","output-sourcemapexcludesources"],"outputsourcemapfile":["configuration-options","output-sourcemapfile"],"outputsourcemappathtransform":["configuration-options","output-sourcemappathtransform"],"outputstrict":["configuration-options","output-strict"],"outputsystemnullsetters":["configuration-options","output-systemnullsetters"],"outputvalidate":["configuration-options","output-validate"],"outro":["plugin-development","outro"],"perf":["configuration-options","perf"],"plugin-development":["plugin-development",""],"plugins":["configuration-options","plugins"],"preserveentrysignatures":["configuration-options","preserveentrysignatures"],"preservemodules":["configuration-options","preservemodules"],"preservesymlinks":["configuration-options","preservesymlinks"],"renderchunk":["plugin-development","renderchunk"],"renderdynamicimport":["plugin-development","renderdynamicimport"],"rendererror":["plugin-development","rendererror"],"renderstart":["plugin-development","renderstart"],"resolvedynamicimport":["plugin-development","resolvedynamicimport"],"resolvefileurl":["plugin-development","resolvefileurl"],"resolveid":["plugin-development","resolveid"],"resolveimportmeta":["plugin-development","resolveimportmeta"],"rollupplugin-commonjs":["tools","rollupplugin-commonjs"],"rollupplugin-node-resolve":["tools","rollupplugin-node-resolve"],"rolluprollup":["javascript-api","rollup-rollup"],"rollupwatch":["javascript-api","rollup-watch"],"shimmissingexports":["configuration-options","shimmissingexports"],"shouldtransformcachedmodule":["plugin-development","shouldtransformcachedmodule"],"strictdeprecations":["configuration-options","strictdeprecations"],"thisaddwatchfile":["plugin-development","this-addwatchfile"],"thisemitfile":["plugin-development","this-emitfile"],"thiserror":["plugin-development","this-error"],"thisgetcombinedsourcemap":["plugin-development","this-getcombinedsourcemap"],"thisgetfilename":["plugin-development","this-getfilename"],"thisgetmoduleids":["plugin-development","this-getmoduleids"],"thisgetmoduleinfo":["plugin-development","this-getmoduleinfo"],"thisgetwatchfiles":["plugin-development","this-getwatchfiles"],"thisload":["plugin-development","this-load"],"thismeta":["plugin-development","this-meta"],"thisparse":["plugin-development","this-parse"],"thisresolve":["plugin-development","this-resolve"],"thissetassetsource":["plugin-development","this-setassetsource"],"thiswarn":["plugin-development","this-warn"],"tools":["tools",""],"transform":["plugin-development","transform"],"treeshake":["configuration-options","treeshake"],"troubleshooting":["troubleshooting",""],"tutorial":["tutorial",""],"warning-sourcemap-is-likely-to-be-incorrect":["troubleshooting","warning-sourcemap-is-likely-to-be-incorrect"],"warning-treating-module-as-external-dependency":["troubleshooting","warning-treating-module-as-external-dependency"],"watchbuilddelay":["configuration-options","watch-builddelay"],"watchchange":["plugin-development","watchchange"],"watchchokidar":["configuration-options","watch-chokidar"],"watchclearscreen":["configuration-options","watch-clearscreen"],"watchexclude":["configuration-options","watch-exclude"],"watchinclude":["configuration-options","watch-include"],"watchoptions":["javascript-api","watchoptions"],"watchskipwrite":["configuration-options","watch-skipwrite"],"writebundle":["plugin-development","writebundle"]} \ No newline at end of file +<<<<<<< HEAD +{"--bundleconfigascjs":["command-line-interface","bundleconfigascjs"],"--configplugin-plugin":["command-line-interface","configplugin-plugin"],"--environment-values":["command-line-interface","environment-values"],"--failafterwarnings":["command-line-interface","failafterwarnings"],"--no-stdin":["command-line-interface","no-stdin"],"--silent":["command-line-interface","silent"],"--stdinext":["command-line-interface","stdinext"],"--waitforbundleinput":["command-line-interface","waitforbundleinput"],"-h--help":["command-line-interface","h-help"],"-v--version":["command-line-interface","v-version"],"-w--watch":["command-line-interface","w-watch"],"acorn":["configuration-options","acorn"],"acorninjectplugins":["configuration-options","acorninjectplugins"],"augmentchunkhash":["plugin-development","augmentchunkhash"],"babel":["tools","babel"],"banner":["plugin-development","banner"],"big-list-of-options":["configuration-options",""],"buildend":["plugin-development","buildend"],"buildstart":["plugin-development","buildstart"],"cache":["configuration-options","cache"],"closebundle":["plugin-development","closebundle"],"closewatcher":["plugin-development","closewatcher"],"command-line-reference":["command-line-interface",""],"context":["configuration-options","context"],"deno":["tools","deno"],"error-emfile-too-many-open-files":["troubleshooting","error-emfile-too-many-open-files"],"error-javascript-heap-out-of-memory":["troubleshooting","error:-javascript-heap-out-of-memory"],"error-name-is-not-exported-by-module":["troubleshooting","error-name-is-not-exported-by-module"],"error-node-tried-to-load-your-configuration-file-as-commonjs-even-though-it-is-likely-an-es-module":["troubleshooting","error-node-tried-to-load-your-configuration-file-as-commonjs-even-though-it-is-likely-an-es-module"],"error-this-is-undefined":["troubleshooting","error-this-is-undefined"],"es-module-syntax":["es-module-syntax",""],"eval2--eval":["troubleshooting","eval2-eval"],"experimentalcacheexpiry":["configuration-options","experimentalcacheexpiry"],"external":["configuration-options","external"],"faqs":["faqs",""],"footer":["plugin-development","footer"],"generatebundle":["plugin-development","generatebundle"],"gulp":["tools","gulp"],"inlinedynamicimports":["configuration-options","inlinedynamicimports"],"input":["configuration-options","input"],"intro":["plugin-development","intro"],"introduction":["introduction",""],"javascript-api":["javascript-api",""],"load":["plugin-development","load"],"makeabsoluteexternalsrelative":["configuration-options","makeabsoluteexternalsrelative"],"manualchunks":["configuration-options","manualchunks"],"maxparallelfileops":["configuration-options","maxparallelfileops"],"maxparallelfilereads":["configuration-options","maxparallelfilereads"],"migration":["migration",""],"modulecontext":["configuration-options","modulecontext"],"moduleparsed":["plugin-development","moduleparsed"],"name":["plugin-development","name"],"new-function":["troubleshooting","new-function"],"onwarn":["configuration-options","onwarn"],"options":["plugin-development","options"],"outputamd":["configuration-options","output-amd"],"outputassetfilenames":["configuration-options","output-assetfilenames"],"outputbanneroutputfooter":["configuration-options","output-banner-output-footer"],"outputchunkfilenames":["configuration-options","output-chunkfilenames"],"outputcompact":["configuration-options","output-compact"],"outputdir":["configuration-options","output-dir"],"outputdynamicimportfunction":["configuration-options","output-dynamicimportfunction"],"outputdynamicimportincjs":["configuration-options","output-dynamicimportincjs"],"outputentryfilenames":["configuration-options","output-entryfilenames"],"outputesmodule":["configuration-options","output-esmodule"],"outputexports":["configuration-options","output-exports"],"outputextend":["configuration-options","output-extend"],"outputexternalimportassertions":["configuration-options","output-externalimportassertions"],"outputexternallivebindings":["configuration-options","output-externallivebindings"],"outputfile":["configuration-options","output-file"],"outputformat":["configuration-options","output-format"],"outputfreeze":["configuration-options","output-freeze"],"outputgeneratedcode":["configuration-options","output-generatedcode"],"outputglobals":["configuration-options","output-globals"],"outputhoisttransitiveimports":["configuration-options","output-hoisttransitiveimports"],"outputindent":["configuration-options","output-indent"],"outputinlinedynamicimports":["configuration-options","output-inlinedynamicimports"],"outputinterop":["configuration-options","output-interop"],"outputintrooutputoutro":["configuration-options","output-intro-output-outro"],"outputmanualchunks":["configuration-options","output-manualchunks"],"outputminifyinternalexports":["configuration-options","output-minifyinternalexports"],"outputname":["configuration-options","output-name"],"outputnamespacetostringtag":["configuration-options","output-namespacetostringtag"],"outputnoconflict":["configuration-options","output-noconflict"],"outputoptions":["plugin-development","outputoptions"],"outputpaths":["configuration-options","output-paths"],"outputplugins":["configuration-options","output-plugins"],"outputpreferconst":["configuration-options","output-preferconst"],"outputpreservemodules":["configuration-options","output-preservemodules"],"outputpreservemodulesroot":["configuration-options","output-preservemodulesroot"],"outputsanitizefilename":["configuration-options","output-sanitizefilename"],"outputsourcemap":["configuration-options","output-sourcemap"],"outputsourcemapbaseurl":["configuration-options","output-sourcemapbaseurl"],"outputsourcemapexcludesources":["configuration-options","output-sourcemapexcludesources"],"outputsourcemapfile":["configuration-options","output-sourcemapfile"],"outputsourcemappathtransform":["configuration-options","output-sourcemappathtransform"],"outputstrict":["configuration-options","output-strict"],"outputsystemnullsetters":["configuration-options","output-systemnullsetters"],"outputvalidate":["configuration-options","output-validate"],"outro":["plugin-development","outro"],"perf":["configuration-options","perf"],"plugin-development":["plugin-development",""],"plugins":["configuration-options","plugins"],"preserveentrysignatures":["configuration-options","preserveentrysignatures"],"preservemodules":["configuration-options","preservemodules"],"preservesymlinks":["configuration-options","preservesymlinks"],"renderchunk":["plugin-development","renderchunk"],"renderdynamicimport":["plugin-development","renderdynamicimport"],"rendererror":["plugin-development","rendererror"],"renderstart":["plugin-development","renderstart"],"resolvedynamicimport":["plugin-development","resolvedynamicimport"],"resolvefileurl":["plugin-development","resolvefileurl"],"resolveid":["plugin-development","resolveid"],"resolveimportmeta":["plugin-development","resolveimportmeta"],"rollupplugin-commonjs":["tools","rollupplugin-commonjs"],"rollupplugin-node-resolve":["tools","rollupplugin-node-resolve"],"rolluprollup":["javascript-api","rollup-rollup"],"rollupwatch":["javascript-api","rollup-watch"],"shimmissingexports":["configuration-options","shimmissingexports"],"shouldtransformcachedmodule":["plugin-development","shouldtransformcachedmodule"],"strictdeprecations":["configuration-options","strictdeprecations"],"thisaddwatchfile":["plugin-development","this-addwatchfile"],"thisemitfile":["plugin-development","this-emitfile"],"thiserror":["plugin-development","this-error"],"thisgetcombinedsourcemap":["plugin-development","this-getcombinedsourcemap"],"thisgetfilename":["plugin-development","this-getfilename"],"thisgetmoduleids":["plugin-development","this-getmoduleids"],"thisgetmoduleinfo":["plugin-development","this-getmoduleinfo"],"thisgetwatchfiles":["plugin-development","this-getwatchfiles"],"thisload":["plugin-development","this-load"],"thismeta":["plugin-development","this-meta"],"thisparse":["plugin-development","this-parse"],"thisresolve":["plugin-development","this-resolve"],"thissetassetsource":["plugin-development","this-setassetsource"],"thiswarn":["plugin-development","this-warn"],"tools":["tools",""],"transform":["plugin-development","transform"],"treeshake":["configuration-options","treeshake"],"troubleshooting":["troubleshooting",""],"tutorial":["tutorial",""],"warning-sourcemap-is-likely-to-be-incorrect":["troubleshooting","warning-sourcemap-is-likely-to-be-incorrect"],"warning-treating-module-as-external-dependency":["troubleshooting","warning-treating-module-as-external-dependency"],"watchbuilddelay":["configuration-options","watch-builddelay"],"watchchange":["plugin-development","watchchange"],"watchchokidar":["configuration-options","watch-chokidar"],"watchclearscreen":["configuration-options","watch-clearscreen"],"watchexclude":["configuration-options","watch-exclude"],"watchinclude":["configuration-options","watch-include"],"watchoptions":["javascript-api","watchoptions"],"watchskipwrite":["configuration-options","watch-skipwrite"],"writebundle":["plugin-development","writebundle"]} +======= +{"--bundleconfigascjs":["command-line-interface","bundleconfigascjs"],"--configplugin-plugin":["command-line-interface","configplugin-plugin"],"--environment-values":["command-line-interface","environment-values"],"--failafterwarnings":["command-line-interface","failafterwarnings"],"--no-stdin":["command-line-interface","no-stdin"],"--silent":["command-line-interface","silent"],"--stdinext":["command-line-interface","stdin-ext"],"--waitforbundleinput":["command-line-interface","waitforbundleinput"],"--watchonstart-cmd---watchonbundlestart-cmd---watchonbundleend-cmd---watchonend-cmd---watchonerror-cmd":["command-line-interface","watch-onstart-cmd-watch-onbundlestart-cmd-watch-onbundleend-cmd-watch-onend-cmd-watch-onerror-cmd"],"-h--help":["command-line-interface","h-help"],"-p-plugin---plugin-plugin":["command-line-interface","p-plugin-plugin-plugin"],"-v--version":["command-line-interface","v-version"],"-w--watch":["command-line-interface","w-watch"],"a-simple-example":["plugin-development","a-simple-example"],"advanced-functionality":["configuration-options","advanced-functionality"],"augmentchunkhash":["plugin-development","augmentchunkhash"],"avoiding-eval":["troubleshooting","avoiding-eval"],"babel":["tools","babel"],"banner":["plugin-development","banner"],"big-list-of-options":["configuration-options",""],"build-hooks":["plugin-development","build-hooks"],"buildend":["plugin-development","buildend"],"buildstart":["plugin-development","buildstart"],"cache":["configuration-options","cache"],"caveats-when-using-native-node-es-modules":["command-line-interface","caveats-when-using-native-node-es-modules"],"changed-defaults":["migration","changed-defaults"],"changes-to-the-plugin-api":["migration","changes-to-the-plugin-api-1"],"closebundle":["plugin-development","closebundle"],"closewatcher":["plugin-development","closewatcher"],"code-splitting":["tutorial","code-splitting"],"command-line-flags":["command-line-interface","command-line-flags"],"command-line-reference":["command-line-interface",""],"compatibility":["introduction","compatibility"],"config-intellisense":["command-line-interface","config-intellisense"],"configuration-files":["command-line-interface","configuration-files"],"context":["configuration-options","context"],"conventions":["plugin-development","conventions"],"core-functionality":["configuration-options","core-functionality"],"creating-your-first-bundle":["tutorial","creating-your-first-bundle"],"custom-module-meta-data":["plugin-development","custom-module-meta-data"],"custom-resolver-options":["plugin-development","custom-resolver-options"],"danger-zone":["configuration-options","danger-zone"],"default-export":["es-module-syntax","default-export"],"default-import":["es-module-syntax","default-import"],"deno":["tools","deno"],"deprecated-options":["configuration-options","deprecated-options"],"differences-to-the-javascript-api":["command-line-interface","differences-to-the-javascript-api"],"direct-plugin-communication":["plugin-development","direct-plugin-communication"],"dynamic-import":["es-module-syntax","dynamic-import"],"dynamic-import-in-commonjs-output":["migration","dynamic-import-in-commonjs-output"],"empty-import":["es-module-syntax","empty-import"],"error-emfile-too-many-open-files":["troubleshooting","error-emfile-too-many-open-files"],"error-javascript-heap-out-of-memory":["troubleshooting","error-javascript-heap-out-of-memory"],"error-name-is-not-exported-by-module":["troubleshooting","error-name-is-not-exported-by-module"],"error-node-tried-to-load-your-configuration-file-as-commonjs-even-though-it-is-likely-an-es-module":["troubleshooting","error-node-tried-to-load-your-configuration-file-as-commonjs-even-though-it-is-likely-an-es-module"],"error-this-is-undefined":["troubleshooting","error-this-is-undefined"],"es-module-syntax":["es-module-syntax",""],"eval2--eval":["troubleshooting","eval2-eval"],"example-transformer":["plugin-development","example-transformer"],"experimental-options":["configuration-options","experimental-options"],"experimentalcacheexpiry":["configuration-options","experimentalcacheexpiry"],"exporting":["es-module-syntax","exporting"],"external":["configuration-options","external"],"faqs":["faqs",""],"file-urls":["plugin-development","file-urls"],"footer":["plugin-development","footer"],"generatebundle":["plugin-development","generatebundle"],"getting-the-current-directory":["command-line-interface","getting-the-current-directory"],"gulp":["tools","gulp"],"how-bindings-work":["es-module-syntax","how-bindings-work"],"how-do-i-add-polyfills-to-a-rollup-bundle":["faqs","how-do-i-add-polyfills-to-a-rollup-bundle"],"how-do-i-run-rollup-itself-in-a-browser":["faqs","how-do-i-run-rollup-itself-in-a-browser"],"how-do-i-use-rollup-in-nodejs-with-commonjs-modules":["faqs","how-do-i-use-rollup-in-node-js-with-commonjs-modules"],"importing":["es-module-syntax","importing"],"importing-commonjs":["introduction","importing-commonjs"],"importing-packagejson":["command-line-interface","importing-package-json"],"input":["configuration-options","input"],"inputoptions-object":["javascript-api","inputoptions-object"],"installation":["introduction","installation"],"installing-rollup-locally":["tutorial","installing-rollup-locally"],"inter-plugin-communication":["plugin-development","inter-plugin-communication"],"intro":["plugin-development","intro"],"introduction":["introduction",""],"is-rollup-meant-for-building-libraries-or-applications":["faqs","is-rollup-meant-for-building-libraries-or-applications"],"javascript-api":["javascript-api",""],"load":["plugin-development","load"],"loading-a-configuration-from-a-node-package":["command-line-interface","loading-a-configuration-from-a-node-package"],"makeabsoluteexternalsrelative":["configuration-options","makeabsoluteexternalsrelative"],"maxparallelfileops":["configuration-options","maxparallelfileops"],"migration":["migration",""],"modulecontext":["configuration-options","modulecontext"],"moduleparsed":["plugin-development","moduleparsed"],"more-changed-options":["migration","more-changed-options"],"name":["plugin-development","name"],"named-exports":["es-module-syntax","named-exports"],"named-imports":["es-module-syntax","named-imports"],"namespace-imports":["es-module-syntax","namespace-imports"],"new-function":["troubleshooting","new-function"],"onwarn":["configuration-options","onwarn"],"options":["plugin-development","options"],"output-generation-hooks":["plugin-development","output-generation-hooks"],"outputamd":["configuration-options","output-amd"],"outputassetfilenames":["configuration-options","output-assetfilenames"],"outputbanneroutputfooter":["configuration-options","output-banner-output-footer"],"outputchunkfilenames":["configuration-options","output-chunkfilenames"],"outputcompact":["configuration-options","output-compact"],"outputdir":["configuration-options","output-dir"],"outputdynamicimportincjs":["configuration-options","output-dynamicimportincjs"],"outputentryfilenames":["configuration-options","output-entryfilenames"],"outputesmodule":["configuration-options","output-esmodule"],"outputexports":["configuration-options","output-exports"],"outputextend":["configuration-options","output-extend"],"outputexternalimportassertions":["configuration-options","output-externalimportassertions"],"outputexternallivebindings":["configuration-options","output-externallivebindings"],"outputfile":["configuration-options","output-file"],"outputformat":["configuration-options","output-format"],"outputfreeze":["configuration-options","output-freeze"],"outputgeneratedcode":["configuration-options","output-generatedcode"],"outputglobals":["configuration-options","output-globals"],"outputhoisttransitiveimports":["configuration-options","output-hoisttransitiveimports"],"outputindent":["configuration-options","output-indent"],"outputinlinedynamicimports":["configuration-options","output-inlinedynamicimports"],"outputinterop":["configuration-options","output-interop"],"outputintrooutputoutro":["configuration-options","output-intro-output-outro"],"outputmanualchunks":["configuration-options","output-manualchunks"],"outputminifyinternalexports":["configuration-options","output-minifyinternalexports"],"outputname":["configuration-options","output-name"],"outputnoconflict":["configuration-options","output-noconflict"],"outputoptions":["plugin-development","outputoptions"],"outputoptions-object":["javascript-api","outputoptions-object"],"outputpaths":["configuration-options","output-paths"],"outputplugins":["configuration-options","output-plugins"],"outputpreservemodules":["configuration-options","output-preservemodules"],"outputpreservemodulesroot":["configuration-options","output-preservemodulesroot"],"outputsanitizefilename":["configuration-options","output-sanitizefilename"],"outputsourcemap":["configuration-options","output-sourcemap"],"outputsourcemapbaseurl":["configuration-options","output-sourcemapbaseurl"],"outputsourcemapexcludesources":["configuration-options","output-sourcemapexcludesources"],"outputsourcemapfile":["configuration-options","output-sourcemapfile"],"outputsourcemappathtransform":["configuration-options","output-sourcemappathtransform"],"outputstrict":["configuration-options","output-strict"],"outputsystemnullsetters":["configuration-options","output-systemnullsetters"],"outputvalidate":["configuration-options","output-validate"],"outro":["plugin-development","outro"],"overview":["introduction","overview"],"peer-dependencies":["tools","peer-dependencies"],"perf":["configuration-options","perf"],"plugin-context":["plugin-development","plugin-context"],"plugin-development":["plugin-development",""],"plugins":["configuration-options","plugins"],"plugins-overview":["plugin-development","plugins-overview"],"prerequisites":["migration","prerequisites-1"],"preserveentrysignatures":["configuration-options","preserveentrysignatures"],"preservesymlinks":["configuration-options","preservesymlinks"],"programmatically-loading-a-config-file":["javascript-api","programmatically-loading-a-config-file"],"properties":["plugin-development","properties"],"publishing-es-modules":["introduction","publishing-es-modules"],"quick-start":["introduction","quick-start"],"reading-a-file-from-stdin":["command-line-interface","reading-a-file-from-stdin"],"renderchunk":["plugin-development","renderchunk"],"renderdynamicimport":["plugin-development","renderdynamicimport"],"rendererror":["plugin-development","rendererror"],"renderstart":["plugin-development","renderstart"],"resolvedynamicimport":["plugin-development","resolvedynamicimport"],"resolvefileurl":["plugin-development","resolvefileurl"],"resolveid":["plugin-development","resolveid"],"resolveimportmeta":["plugin-development","resolveimportmeta"],"rollupplugin-commonjs":["tools","rollup-plugin-commonjs"],"rollupplugin-node-resolve":["tools","rollup-plugin-node-resolve"],"rolluprollup":["javascript-api","rollup-rollup"],"rollupwatch":["javascript-api","rollup-watch"],"shimmissingexports":["configuration-options","shimmissingexports"],"shouldtransformcachedmodule":["plugin-development","shouldtransformcachedmodule"],"source-code-transformations":["plugin-development","source-code-transformations"],"strictdeprecations":["configuration-options","strictdeprecations"],"synthetic-named-exports":["plugin-development","synthetic-named-exports"],"the-why":["introduction","the-why"],"thisaddwatchfile":["plugin-development","this-addwatchfile"],"thisemitfile":["plugin-development","this-emitfile"],"thiserror":["plugin-development","this-error"],"thisgetcombinedsourcemap":["plugin-development","this-getcombinedsourcemap"],"thisgetfilename":["plugin-development","this-getfilename"],"thisgetmoduleids":["plugin-development","this-getmoduleids"],"thisgetmoduleinfo":["plugin-development","this-getmoduleinfo"],"thisgetwatchfiles":["plugin-development","this-getwatchfiles"],"thisload":["plugin-development","this-load"],"thismeta":["plugin-development","this-meta"],"thisparse":["plugin-development","this-parse"],"thisresolve":["plugin-development","this-resolve"],"thissetassetsource":["plugin-development","this-setassetsource"],"thiswarn":["plugin-development","this-warn"],"tools":["tools",""],"transform":["plugin-development","transform"],"transformers":["plugin-development","transformers"],"tree-shaking":["introduction","tree-shaking"],"tree-shaking-doesnt-seem-to-be-working":["troubleshooting","tree-shaking-doesn-t-seem-to-be-working"],"treeshake":["configuration-options","treeshake"],"troubleshooting":["troubleshooting",""],"tutorial":["tutorial",""],"using-config-files":["tutorial","using-config-files"],"using-configuration-files":["migration","using-configuration-files"],"using-output-plugins":["tutorial","using-output-plugins"],"using-plugins":["tutorial","using-plugins"],"warning-sourcemap-is-likely-to-be-incorrect":["troubleshooting","warning-sourcemap-is-likely-to-be-incorrect"],"warning-treating-module-as-external-dependency":["troubleshooting","warning-treating-module-as-external-dependency"],"watch-options":["configuration-options","watch"],"watchbuilddelay":["configuration-options","watch-builddelay"],"watchchange":["plugin-development","watchchange"],"watchchokidar":["configuration-options","watch-chokidar"],"watchclearscreen":["configuration-options","watch-clearscreen"],"watchexclude":["configuration-options","watch-exclude"],"watchinclude":["configuration-options","watch-include"],"watchoptions":["javascript-api","watchoptions"],"watchskipwrite":["configuration-options","watch-skipwrite"],"what-is-tree-shaking":["faqs","what-is-tree-shaking"],"who-made-the-rollup-logo-its-lovely":["faqs","who-made-the-rollup-logo-it-s-lovely"],"why-are-es-modules-better-than-commonjs-modules":["faqs","why-are-es-modules-better-than-commonjs-modules"],"why-do-additional-imports-turn-up-in-my-entry-chunks-when-code-splitting":["faqs","why-do-additional-imports-turn-up-in-my-entry-chunks-when-code-splitting"],"why-isnt-node-resolve-a-built-in-feature":["faqs","why-isn-t-node-resolve-a-built-in-feature"],"with-npm-packages":["tools","with-npm-packages"],"writebundle":["plugin-development","writebundle"]} +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 diff --git a/docs/javascript-api/index.md b/docs/javascript-api/index.md index 5a59d3a45..95a4bdabe 100755 --- a/docs/javascript-api/index.md +++ b/docs/javascript-api/index.md @@ -126,9 +126,13 @@ const inputOptions = { preserveEntrySignatures, strictDeprecations, +<<<<<<< HEAD // 危险区域 acorn, acornInjectPlugins, +======= + // danger zone +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 context, moduleContext, preserveSymlinks, @@ -164,7 +168,7 @@ const outputOptions = { dynamicImportInCjs, entryFileNames, extend, - externalImportAssertions, + externalImportAttributes, footer, generatedCode, hoistTransitiveImports, @@ -338,3 +342,36 @@ export default { } }; ``` + +## Accessing the parser + +In order to parse arbitrary code using Rollup's parser, plugins can use [`this.parse`](../plugin-development/index.md#this-parse). To use this functionality outside the context of a Rollup build, the parser is also exposed as a separate export. It has the same signature as `this.parse`: + +```js +import { parseAst } from 'rollup/parseAst'; +import assert from 'node:assert'; + +assert.deepEqual( + parseAst('return 42;', { allowReturnOutsideFunction: true }), + { + type: 'Program', + start: 0, + end: 10, + body: [ + { + type: 'ReturnStatement', + start: 0, + end: 10, + argument: { + type: 'Literal', + start: 7, + end: 9, + raw: '42', + value: 42 + } + } + ], + sourceType: 'module' + } +); +``` diff --git a/docs/migration/index.md b/docs/migration/index.md index e5541692a..d9be8685b 100644 --- a/docs/migration/index.md +++ b/docs/migration/index.md @@ -1,12 +1,58 @@ --- +<<<<<<< HEAD title: 迁移到 Rollup 3 +======= +title: Migrating to Rollup 4 +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 --- # {{ $frontmatter.title }} [[toc]] +<<<<<<< HEAD 这里列举了一些在迁移 Rollup 3 时可能遇到的重要问题。有关所有破坏性更新的完整列表,我们建议你查阅 +======= +This is a list of the most important topics you may encounter when migrating from Rollup 3 to Rollup 4. For a full list of breaking changes, we advise you to consult the + +- [Rollup 4 changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md#400) + +For how to migrate from earlier versions, [see below](#migrating-to-rollup-3). + +## Prerequisites + +Make sure you run at least Node 18.0.0 and update all your Rollup plugins to their latest versions. + +For larger configs, it can make sense to update to `rollup@3.29.4` first, add the [`strictDeprecations`](../configuration-options/index.md#strictdeprecations) option to your config and resolve any errors that pop up. That way you can make sure you do not rely on features that may have been removed in Rollup 4. If you have errors in your plugins, please contact the plugin author. + +## General Changes + +Rollup now includes native code that is automatically installed (and removed) as an [optional npm dependency](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies) if your platform and architecture is supported. More precisely, Rollup has a list of `optionalDependencies`, each of which only install on a specific [`os`](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#os) and [`cpu`](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#cpu). If your system is not supported, you will receive an error message when starting Rollup that will tell you about your platform and architecture and gives you a list of supported ones. In that case, you can instead use `@rollup/wasm-node` as a platform-independent drop-in replacement. + +Otherwise, an obvious change is that Rollup now uses url-safe base64 hashes in file names instead of the older base16 hashes. This provides more hash safety but means that hash length is now limited to at most 22 characters for technical reasons. + +When bundling CLI apps, Rollup will now automatically preserve shebang comments in entry files if the output [`format`](../configuration-options/index.md#output-format) is `es` or `cjs`. Previously, you would have needed to add the comment via a plugin. + +Last, you may see some new warnings about invalid annotation positions. Rollup will now warn if it finds a [`@__PURE__`](../configuration-options/index.md#pure) or [`@__NO_SIDE_EFFECTS__`](../configuration-options/index.md#no-side-effects) comment that it cannot interpret as it is in an invalid location. These warnings are meant to help debugging. To silence them, the [`--filter-logs`](../command-line-interface/index.md#filterlogs-filter) CLI option can help you. + +## Configuration Changes + +While some options that were already deprecated in Rollup 3 have been removed, the only major change here is that we no longer have the `acorn` and `acornInjectPlugin` options available. This means, unfortunately, that you can no longer add plugins for unsupported syntax. Depending on demand, we consider supporting JSX syntax again as the SWC parser would support that. + +## Changes to the Plugin API + +An important change is that [`this.resolve()`](../plugin-development/index.md#this-resolve) will now by default add `skipSelf: true`. That means when calling `this.resolve()` from a [`resolveId`](../plugin-development/index.md#resolveid) hook, this hook will not be called again by this or further nested `this.resolve()` calls from other plugins unless they use a different `source` or `importer`. We found that this is a reasonable default for most plugins that prevents unintended infinite loops. To get the old behaviour, you can manually add `skipSelf: false`. + +Another important change is that Rollup watch mode will no longer watch ids of files that have been loaded via a plugin [`load`](../plugin-development/index.md#load) hook. So this mainly affects "virtual" files, where it really does not make sense to watch a hard drive location for changes. Instead, it is now up to plugins that use a `load` hook to manually call [`this.addWatchFile()`](../plugin-development/index.md#this-addwatchfile) for all the files they depend on to handle the `load` hook. + +If your plugin handles import assertions, note that in the [`resolveId`](../plugin-development/index.md#resolveid) hook and other places, `assertions` have been replaced with `attributes` as the JavaScript feature was also renamed. Also, the abstract syntax tree representation of import attributes now follows the [ESTree spec](https://github.com/estree/estree/blob/7a0c8fb02a33a69fa16dbe3ca35beeaa8f58f1e3/experimental/import-attributes.md) again. + +If you want to emit warnings from your plugin, you can no longer call `options.onwarn()` in the [`buildStart`](../plugin-development/index.md#buildstart) hook. Instead, either use [`this.warn()`](../plugin-development/index.md#load) or [`options.onLog()`](../configuration-options/index.md#onlog). + +## Migrating to Rollup 3 + +This is a list of the most important topics you may encounter when migrating from Rollup 2 to Rollup 3. For a full list of breaking changes, we advise you to consult the +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 - [Rollup 3 更新日志](https://github.com/rollup/rollup/blob/master/CHANGELOG.md#300) @@ -15,13 +61,21 @@ title: 迁移到 Rollup 3 - [Rollup 2 更新日志](https://github.com/rollup/rollup/blob/master/CHANGELOG.md#200) - [Rollup 1 更新日志](https://github.com/rollup/rollup/blob/master/CHANGELOG.md#100) +<<<<<<< HEAD ## 前置要求 {#prerequisites} +======= +### Prerequisites +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 请确保你的 Node 版本至少为 14.18.0,并更新所有 Rollup 插件到最新版本。 对于较大的配置,请首先更新到 `rollup@2.79.1` ,将 [`strictDeprecations`](../configuration-options/index.md#strictdeprecations) 选项添加到你的配置中,并解决弹出的所有错误。这样,你可以确保你不依赖可能在 Rollup 3 中被删除的功能。如果你的插件有错误,请联系插件作者。 +<<<<<<< HEAD ## 配置文件使用 {#using-configuration-files} +======= +### Using Configuration Files +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 如果你是使用 ES 模块作为配置文件,即使用 `import` 和 `export` 语法,那么你需要确保 Node 能够以 ES 模块形式加载你的配置。 @@ -38,7 +92,11 @@ title: 迁移到 Rollup 3 如果你使用了 [`--configPlugin`](../command-line-interface/index.md#configplugin-plugin) 选项,Rollup 将在运行配置文件之前将其作为 ES 模块进行打包,而不是 CommonJS。这允许你可以轻松地从你的配置文件中导入 ES 模块,但是有一些与使用原生 ES 模块相同的问题,例如 `__dirname` 将不再起作用。同样,你可以传递 [`--bundleConfigAsCjs`](../command-line-interface/index.md#bundleconfigascjs) 选项来强制使用旧的加载行为。 +<<<<<<< HEAD ## 默认值更改 {#changed-defaults} +======= +### Changed Defaults +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 目前一些选项设置具有不同的默认值,如果你遇到了任何问题,请尝试将以下内容添加到你的配置文件中: @@ -59,17 +117,29 @@ title: 迁移到 Rollup 3 总的来说,我们你推荐使用新的默认值,有关每个设置选项的更多详细信息,请参阅相应的文档。 +<<<<<<< HEAD ## 其他选项更改 {#more-changed-options} +======= +### More Changed Options +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 - [`output.banner/footer`](../configuration-options/index.md#output-banner-output-footer)[`/intro/outro`](../configuration-options/index.md#output-intro-output-outro) 现在按块调用,因此不应该执行任何严重影响性能的操作。 - [`entryFileNames`](../configuration-options/index.md#output-entryfilenames) 和 [`chunkFileNames`](../configuration-options/index.md#output-chunkfilenames) 函数不再通过 `modules` 访问呈现的模块信息,而只能访问包含的 `moduleIds `列表。 - 当使用 [`output.preserveModules`](../configuration-options/index.md#output-preservemodules) 和 `entryFileNames`, 你不能再使用 `[ext]`, `[extName]` 和 `[assetExtName]` 文件名占位符. 此外,模块的路径不再自动添加到文件名前缀,而是包含在 `[name]` 占位符中。 +<<<<<<< HEAD ## 从 CommonJS 输出中的动态导入 {#dynamic-import-in-commonjs-output} +======= +### Dynamic Import in CommonJS Output +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 默认情况下,当使用 `cjs` 作为输出时,Rollup 现在会将任何外部的(即非打包的)动态导入作为输出中的 `import(…)` 表达式。在 Node 14 及以上的所有版本中都支持从生成的 CommonJS 输出中加载 CommonJS 和 ES 模块。如果你需要支持旧的 Node 版本,你可以传递参数 [`output.dynamicImportInCjs: false`](../configuration-options/index.md#output-dynamicimportincjs)。 +<<<<<<< HEAD ## 插件 API 更改 {#changes-to-the-plugin-api} +======= +### Changes to the Plugin API +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 重新设计了通用的输出生成流程,参阅 [输出生成钩子](../plugin-development/index.md#output-generation-hooks) 图表以获取新的插件钩子顺序。最明显的变化可能是 [`banner`](../plugin-development/index.md#banner)/[`footer`](../plugin-development/index.md#footer)/[`intro`](../plugin-development/index.md#intro)/[`outro`](../plugin-development/index.md#outro) 不再在开头调用一次,而是按块调用。另一方面,当创建哈希时,[`augmentChunkHash`](../plugin-development/index.md#augmentchunkhash) 现在在 [`renderChunk`](../plugin-development/index.md#renderchunk) 之后执行。 diff --git a/docs/plugin-development/index.md b/docs/plugin-development/index.md index 93e995837..a4c3b69e0 100644 --- a/docs/plugin-development/index.md +++ b/docs/plugin-development/index.md @@ -311,7 +311,11 @@ interface SourceDescription { } ``` +<<<<<<< HEAD 定义自定义加载器。返回 `null` 将延迟到其他 `load` 函数(最终默认从文件系统加载)。为了避免额外的解析开销,例如由于某些原因该钩子已经使用 `this.parse` 生成 AST,该钩子可以选择返回一个 `{ code, ast, map }` 对象。`ast` 必须是一个具有每个节点的 `start` 和 `end` 属性的标准 ESTree AST。如果转换不移动代码,则可以通过将 `map` 设置为 `null` 来保留现有的源码映射。否则,你可能需要生成源映射。有关 [源代码转换](#source-code-transformations) 的详细信息,请参见该部分。 +======= +Defines a custom loader. Returning `null` defers to other `load` functions (and eventually the default behavior of loading from the file system). To prevent additional parsing overhead in case e.g. this hook already used [`this.parse`](#this-parse) to generate an AST for some reason, this hook can optionally return a `{ code, ast, map }` object. The `ast` must be a standard ESTree AST with `start` and `end` properties for each node. If the transformation does not move code, you can preserve existing sourcemaps by setting `map` to `null`. Otherwise, you might need to generate the source map. See the section on [source code transformations](#source-code-transformations). +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 如果 `moduleSideEffects` 返回 `false`,并且没有其他模块从该模块导入任何内容,则即使该模块具有副作用,该模块也不会包含在产物中。如果返回 `true`,则 Rollup 将使用其默认算法包含模块中具有副作用的所有语句(例如修改全局或导出变量)。如果返回 `"no-treeshake"`,则将关闭此模块的除屑优化,并且即使该模块为空,也将在生成的块之一中包含它。如果返回 `null` 或省略标志,则 `moduleSideEffects` 将由第一个解析此模块的 `resolveId` 钩子,[`treeshake.moduleSideEffects`](../configuration-options/index.md#treeshake-modulesideeffects) 选项或最终默认为 `true` 确定。`transform` 钩子可以覆盖此设置。 @@ -417,7 +421,7 @@ function plugin2() { ```typescript type ResolveDynamicImportHook = ( - specifier: string | AcornNode, + specifier: string | AstNode, importer: string, options: { assertions: Record } ) => ResolveIdResult; @@ -508,6 +512,7 @@ function injectPolyfillPlugin() { return { id: POLYFILL_ID, moduleSideEffects: true }; } if (options.isEntry) { +<<<<<<< HEAD // 确定实际的入口点是什么。 // 我们需要“skipSelf”来避免无限循环 const resolution = await this.resolve(source, importer, { @@ -516,6 +521,12 @@ function injectPolyfillPlugin() { }); // 如果无法解析或是外部引用 // 则直接返回错误 +======= + // Determine what the actual entry would have been. + const resolution = await this.resolve(source, importer, options); + // If it cannot be resolved or is external, just return it + // so that Rollup can display an error +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 if (!resolution || resolution.external) return resolution; // 在代理的加载钩子中,我们需要知道入口点是否有默认导出。 // 然而,我们不再拥有完整的“resolution”对象, @@ -613,7 +624,7 @@ function externalizeDependencyPlugin() { ```typescript type ShouldTransformCachedModuleHook = (options: { - ast: AcornNode; + ast: AstNode; code: string; id: string; meta: { [plugin: string]: any }; @@ -651,7 +662,11 @@ interface SourceDescription { } ``` +<<<<<<< HEAD 可用于转换单个模块。为了避免额外的解析开销,例如此钩子已经使用 `this.parse` 生成了 AST,此钩子可以选择性地返回一个 `{ code, ast, map }` 对象。`ast` 必须是一个标准的 ESTree AST,每个节点都有 `start` 和 `end` 属性。如果转换不移动代码,则可以通过将 `map` 设置为 `null` 来保留现有的源映射。否则,你可能需要生成源映射。请参见 [源代码转换](#source-code-transformations) 一节。 +======= +Can be used to transform individual modules. To prevent additional parsing overhead in case e.g. this hook already used [`this.parse`](#this-parse) to generate an AST for some reason, this hook can optionally return a `{ code, ast, map }` object. The `ast` must be a standard ESTree AST with `start` and `end` properties for each node. If the transformation does not move code, you can preserve existing sourcemaps by setting `map` to `null`. Otherwise, you might need to generate the source map. See [the section on source code transformations](#source-code-transformations). +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 请注意,在观察模式下或明确使用缓存时,当重新构建时,此钩子的结果会被缓存,仅当模块的 `code` 发生更改或上次触发此钩子时添加了通过 `this.addWatchFile` 添加的文件时,才会再次触发该模块的钩子。 @@ -1534,6 +1549,7 @@ export default function addProxyPlugin() { // 不代理使用代理的 ID return null; } +<<<<<<< HEAD // 确保将任何 resolveId 选项传递给 this.resolve // 以获取模块 ID const resolution = await this.resolve(source, importer, { @@ -1541,6 +1557,12 @@ export default function addProxyPlugin() { ...options }); // 只能预加载现有且非外部的 ID +======= + // We make sure to pass on any resolveId options to + // this.resolve to get the module id + const resolution = await this.resolve(source, importer, options); + // We can only pre-load existing and non-external ids +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 if (resolution && !resolution.external) { // 将整个解析信息传递下去 const moduleInfo = await this.load(resolution); @@ -1666,11 +1688,27 @@ export default function dynamicChunkLogsPlugin() { ### this.parse +<<<<<<< HEAD | | | | -----: | :-------------------------------------------------------------- | | 类型: | `(code: string, acornOptions?: AcornOptions) => ESTree.Program` | 使用 Rollup 的内部 acorn 实例将代码解析为 AST。 +======= +| | | +| ----: | :--------------------------------------------------------- | +| Type: | `(code: string, options?: ParseOptions) => ESTree.Program` | + +```typescript +interface ParseOptions { + allowReturnOutsideFunction?: boolean; +} +``` + +Use Rollup's internal SWC-based parser to parse code to an [ESTree-compatible](https://github.com/estree/estree) AST. + +- `allowReturnOutsideFunction`: When `true` this allows return statements to be outside functions to e.g. support parsing CommonJS code. +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 ### this.resolve @@ -1699,7 +1737,11 @@ type Resolve = ( 使用 Rollup 使用的相同插件解析导入到模块 id(即文件名),并确定导入是否应为外部。如果 Rollup 或任何插件无法解析导入,但用户未明确将其标记为外部,则返回 `null`。如果返回绝对外部 id,则应通过 [`makeAbsoluteExternalsRelative`](../configuration-options/index.md#makeabsoluteexternalsrelative) 选项或在 [`resolveId`](#resolveid) 钩子中进行显式插件选择,将其保持为绝对输出,`external` 将是 `"absolute"` 而不是 `true`。 +<<<<<<< HEAD 如果传递 `skipSelf: true`,则在解析时将跳过从中调用 `this.resolve` 的插件的 `resolveId` 钩子。当其他插件在处理原始 `this.resolve` 调用时,使用 _完全相同的 `source` 和 `importer`_ 在其 `resolveId` 钩子中也调用 `this.resolve` 时,原始插件的 `resolveId` 钩子也将跳过这些调用。这里的理由是插件已经声明在此时点它“不知道”如何解析这个特定的 `source` 和 `importer` 组合。如果你不想要这种行为,请不要使用 `skipSelf`,但如果必要,可以实现自己的无限循环预防机制。 +======= +The default of `skipSelf` is `true`, So the `resolveId` hook of the plugin from which `this.resolve` is called will be skipped when resolving. When other plugins themselves also call `this.resolve` in their `resolveId` hooks with the _exact same `source` and `importer`_ while handling the original `this.resolve` call, then the `resolveId` hook of the original plugin will be skipped for those calls as well. The rationale here is that the plugin already stated that it "does not know" how to resolve this particular combination of `source` and `importer` at this point in time. If you do not want this behaviour, set `skipSelf` to `false` and implement your own infinite loop prevention mechanism if necessary. +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 你还可以通过 `custom` 选项传递插件特定选项的对象,有关详细信息,请参见 [自定义解析器选项](#custom-resolver-options)。 @@ -1754,6 +1796,7 @@ this.debug(() => generateExpensiveDebugLog()); 如果 [`logLevel`](../configuration-options/index.md#loglevel) 选项设置为 `"silent"`,则此方法不会执行任何操作。 +<<<<<<< HEAD ## 已弃用的上下文函数 {#deprecated-context-functions} ☢️ 这些上下文实用程序函数已弃用,可能会在未来的 Rollup 版本中删除。 @@ -1769,6 +1812,9 @@ this.debug(() => generateExpensiveDebugLog()); 或通过 `Array.from(this.moduleIds)` 转换为数组。 ## 文件 URLs {#file-urls} +======= +## File URLs +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 要在 JS 代码中引用文件 URL 引用,请使用 `import.meta.ROLLUP_FILE_URL_referenceId` 替换。这将生成依赖于输出格式的代码,并生成指向目标环境中产出的文件的 URL。请注意,除了 CommonJS 和 UMD 之外的所有格式都假定它们在浏览器环境中运行,其中 `URL` 和 `document` 可用。 diff --git a/docs/repl/stores/options.ts b/docs/repl/stores/options.ts index 33cafd18e..20057c600 100644 --- a/docs/repl/stores/options.ts +++ b/docs/repl/stores/options.ts @@ -191,10 +191,10 @@ export const useOptions = defineStore('options2', () => { defaultValue: true, name: 'output.externalLiveBindings' }); - const optionOutputExternalImportAssertions = getBoolean({ + const optionOutputExternalImportAttributes = getBoolean({ available: () => optionOutputFormat.value.value === 'es', defaultValue: true, - name: 'output.externalImportAssertions' + name: 'output.externalImportAttributes' }); const optionOutputFreeze = getBoolean({ defaultValue: true, @@ -417,7 +417,7 @@ export const useOptions = defineStore('options2', () => { optionOutputExports, optionOutputExtend, optionOutputExternalLiveBindings, - optionOutputExternalImportAssertions, + optionOutputExternalImportAttributes, optionOutputFreeze, optionOutputFooter, optionOutputFormat, diff --git a/docs/repl/stores/rollup.ts b/docs/repl/stores/rollup.ts index e67e968fb..a0b3f51e3 100644 --- a/docs/repl/stores/rollup.ts +++ b/docs/repl/stores/rollup.ts @@ -4,33 +4,56 @@ import type { RollupBuild, RollupOptions } from '../../../src/rollup/types'; import type * as Rollup from '../helpers/importRollup'; import { isRollupVersionAtLeast } from '../helpers/rollupVersion'; -function getRollupUrl({ type, version }: RollupRequest) { +const ROLLUP_JS_FILE = 'rollup.browser.js'; +const ROLLUP_WASM_FILE = 'bindings_wasm_bg.wasm'; + +function isLoadLocalRollup({ type }: RollupRequest) { + return import.meta.env.DEV && type === 'local'; +} + +function getFullUrlFromUnpkg(version: string | undefined, file: string) { + return `https://unpkg.com/@rollup/browser${version ? `@${version}` : ''}/dist/${file}`; +} + +function getFullUrlFromAWS(version: string, file: string) { + return `https://rollup-ci-artefacts.s3.amazonaws.com/${version}/${file}`; +} + +function getRollupJsUrl({ type, version }: RollupRequest) { if (type === 'pr') { - return `https://rollup-ci-artefacts.s3.amazonaws.com/${version}/rollup.browser.js`; + return getFullUrlFromAWS(version, ROLLUP_JS_FILE); } else if (version) { - if (isRollupVersionAtLeast(version, 4, 0)) { - return `https://unpkg.com/@rollup/browser@${version}/dist/rollup.browser.js`; - } if (isRollupVersionAtLeast(version, 3, 0)) { - return `https://unpkg.com/@rollup/browser@${version}`; + return getFullUrlFromUnpkg(version, ROLLUP_JS_FILE); } if (isRollupVersionAtLeast(version, 1, 0)) { return `https://unpkg.com/rollup@${version}/dist/rollup.browser.js`; } throw new Error('The REPL only supports Rollup versions >= 1.0.0.'); } - return 'https://unpkg.com/@rollup/browser'; + return getFullUrlFromUnpkg(undefined, ROLLUP_JS_FILE); +} + +function getRollupWasmFileUrl({ type, version }: RollupRequest) { + if (type === 'pr') { + return getFullUrlFromAWS(version, ROLLUP_WASM_FILE); + } else if (type === 'version' && version && isRollupVersionAtLeast(version, 4, 0)) { + return getFullUrlFromUnpkg(version, ROLLUP_WASM_FILE); + } } -function loadRollup(rollupRequest: RollupRequest): Promise { - if (import.meta.env.DEV && rollupRequest.type === 'local') { +async function loadRollup(rollupRequest: RollupRequest): Promise { + if (isLoadLocalRollup(rollupRequest)) { return import('../helpers/importRollup'); } - const url = getRollupUrl(rollupRequest); + const url = getRollupJsUrl(rollupRequest); + const rollupWasmFileUrl = getRollupWasmFileUrl(rollupRequest); + const preloadRollupWasmFile = rollupWasmFileUrl && fetch(rollupWasmFileUrl).catch(() => {}); return new Promise((fulfil, reject) => { const script = document.createElement('script'); script.src = url; - script.addEventListener('load', () => { + script.addEventListener('load', async () => { + preloadRollupWasmFile && (await preloadRollupWasmFile); fulfil((window as any).rollup); }); script.addEventListener('error', () => { @@ -78,7 +101,7 @@ export const useRollup = defineStore('rollup', () => { try { request.value = rollupRequest; const instance = await loadRollup(rollupRequest); - if (import.meta.env.DEV) { + if (isLoadLocalRollup(rollupRequest)) { instance.onUpdate(newInstance => { loaded.value = { error: false, instance: newInstance }; }); diff --git a/native.d.ts b/native.d.ts new file mode 100644 index 000000000..61a294a9f --- /dev/null +++ b/native.d.ts @@ -0,0 +1,7 @@ +/* tslint:disable */ +/* eslint-disable */ + +/* auto-generated by NAPI-RS */ + +export function parse(code: string, allowReturnOutsideFunction: boolean): Buffer +export function xxhashBase64Url(input: Uint8Array): string diff --git a/native.js b/native.js new file mode 100644 index 000000000..ef67586a2 --- /dev/null +++ b/native.js @@ -0,0 +1,54 @@ +const { existsSync } = require('node:fs'); +const { join } = require('node:path'); +const { platform, arch, report } = require('node:process'); + +const isMusl = () => !report.getReport().header.glibcVersionRuntime; + +const bindingsByPlatformAndArch = { + android: { + arm: { base: 'android-arm-eabi' }, + arm64: { base: 'android-arm64' } + }, + darwin: { + arm64: { base: 'darwin-arm64' }, + x64: { base: 'darwin-x64' } + }, + linux: { + arm: { base: 'linux-arm-gnueabihf' }, + arm64: { base: 'linux-arm64-gnu', musl: 'linux-arm64-musl' }, + x64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' } + }, + win32: { + arm64: { base: 'win32-arm64-msvc' }, + ia32: { base: 'win32-ia32-msvc' }, + x64: { base: 'win32-x64-msvc' } + } +}; + +const imported = bindingsByPlatformAndArch[platform]?.[arch]; +if (!imported) { + throw new Error( + `Your current platform "${platform}" and architecture "${arch}" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead. + +The following platform-architecture combinations are supported: +${Object.entries(bindingsByPlatformAndArch) + .flatMap(([platformName, architectures]) => + Object.entries(architectures).flatMap(([architectureName, { musl }]) => { + const name = `${platformName}-${architectureName}`; + return musl ? [name, `${name} (musl)`] : [name]; + }) + ) + .join('\n')} + +If this is important to you, please consider supporting Rollup to make a native build for your platform and architecture available.` + ); +} + +const packageBase = imported.musl && isMusl() ? imported.musl : imported.base; +const localName = `./rollup.${packageBase}.node`; +const { parse, xxhashBase64Url } = require( + existsSync(join(__dirname, localName)) ? localName : `@rollup/rollup-${packageBase}` +); + +module.exports.parse = parse; +module.exports.xxhashBase64Url = xxhashBase64Url; diff --git a/native.wasm.js b/native.wasm.js new file mode 100644 index 000000000..7af1fe756 --- /dev/null +++ b/native.wasm.js @@ -0,0 +1,4 @@ +const { parse, xxhashBase64Url } = require('./wasm-node/bindings_wasm.js'); + +exports.parse = parse; +exports.xxhashBase64Url = xxhashBase64Url; diff --git a/npm/android-arm-eabi/README.md b/npm/android-arm-eabi/README.md new file mode 100644 index 000000000..b75a36c99 --- /dev/null +++ b/npm/android-arm-eabi/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-android-arm-eabi` + +This is the **armv7-linux-androideabi** binary for `rollup` diff --git a/npm/android-arm-eabi/package.json b/npm/android-arm-eabi/package.json new file mode 100644 index 000000000..265fac014 --- /dev/null +++ b/npm/android-arm-eabi/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-android-arm-eabi", + "version": "0.0.0", + "os": [ + "android" + ], + "cpu": [ + "arm" + ], + "files": [ + "rollup.android-arm-eabi.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.android-arm-eabi.node" +} diff --git a/npm/android-arm64/README.md b/npm/android-arm64/README.md new file mode 100644 index 000000000..7aa827a92 --- /dev/null +++ b/npm/android-arm64/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-android-arm64` + +This is the **aarch64-linux-android** binary for `rollup` diff --git a/npm/android-arm64/package.json b/npm/android-arm64/package.json new file mode 100644 index 000000000..19c500eee --- /dev/null +++ b/npm/android-arm64/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-android-arm64", + "version": "0.0.0", + "os": [ + "android" + ], + "cpu": [ + "arm64" + ], + "files": [ + "rollup.android-arm64.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.android-arm64.node" +} diff --git a/npm/darwin-arm64/README.md b/npm/darwin-arm64/README.md new file mode 100644 index 000000000..c29619c30 --- /dev/null +++ b/npm/darwin-arm64/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-darwin-arm64` + +This is the **aarch64-apple-darwin** binary for `rollup` diff --git a/npm/darwin-arm64/package.json b/npm/darwin-arm64/package.json new file mode 100644 index 000000000..693f1fcef --- /dev/null +++ b/npm/darwin-arm64/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-darwin-arm64", + "version": "0.0.0", + "os": [ + "darwin" + ], + "cpu": [ + "arm64" + ], + "files": [ + "rollup.darwin-arm64.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.darwin-arm64.node" +} diff --git a/npm/darwin-x64/README.md b/npm/darwin-x64/README.md new file mode 100644 index 000000000..156d37a87 --- /dev/null +++ b/npm/darwin-x64/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-darwin-x64` + +This is the **x86_64-apple-darwin** binary for `rollup` diff --git a/npm/darwin-x64/package.json b/npm/darwin-x64/package.json new file mode 100644 index 000000000..70a6d96c8 --- /dev/null +++ b/npm/darwin-x64/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-darwin-x64", + "version": "0.0.0", + "os": [ + "darwin" + ], + "cpu": [ + "x64" + ], + "files": [ + "rollup.darwin-x64.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.darwin-x64.node" +} diff --git a/npm/linux-arm-gnueabihf/README.md b/npm/linux-arm-gnueabihf/README.md new file mode 100644 index 000000000..1b58b1c47 --- /dev/null +++ b/npm/linux-arm-gnueabihf/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-arm-gnueabihf` + +This is the **armv7-unknown-linux-gnueabihf** binary for `rollup` diff --git a/npm/linux-arm-gnueabihf/package.json b/npm/linux-arm-gnueabihf/package.json new file mode 100644 index 000000000..ff1c7a151 --- /dev/null +++ b/npm/linux-arm-gnueabihf/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-linux-arm-gnueabihf", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "arm" + ], + "files": [ + "rollup.linux-arm-gnueabihf.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.linux-arm-gnueabihf.node" +} diff --git a/npm/linux-arm64-gnu/README.md b/npm/linux-arm64-gnu/README.md new file mode 100644 index 000000000..48e68cb4c --- /dev/null +++ b/npm/linux-arm64-gnu/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-arm64-gnu` + +This is the **aarch64-unknown-linux-gnu** binary for `rollup` diff --git a/npm/linux-arm64-gnu/package.json b/npm/linux-arm64-gnu/package.json new file mode 100644 index 000000000..948275f9f --- /dev/null +++ b/npm/linux-arm64-gnu/package.json @@ -0,0 +1,22 @@ +{ + "name": "@rollup/rollup-linux-arm64-gnu", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "files": [ + "rollup.linux-arm64-gnu.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "libc": [ + "glibc" + ], + "main": "./rollup.linux-arm64-gnu.node" +} diff --git a/npm/linux-arm64-musl/README.md b/npm/linux-arm64-musl/README.md new file mode 100644 index 000000000..3db2751ae --- /dev/null +++ b/npm/linux-arm64-musl/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-arm64-musl` + +This is the **aarch64-unknown-linux-musl** binary for `rollup` diff --git a/npm/linux-arm64-musl/package.json b/npm/linux-arm64-musl/package.json new file mode 100644 index 000000000..d6d4b0c66 --- /dev/null +++ b/npm/linux-arm64-musl/package.json @@ -0,0 +1,22 @@ +{ + "name": "@rollup/rollup-linux-arm64-musl", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "files": [ + "rollup.linux-arm64-musl.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "libc": [ + "musl" + ], + "main": "./rollup.linux-arm64-musl.node" +} diff --git a/npm/linux-x64-gnu/README.md b/npm/linux-x64-gnu/README.md new file mode 100644 index 000000000..cabe280f1 --- /dev/null +++ b/npm/linux-x64-gnu/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-x64-gnu` + +This is the **x86_64-unknown-linux-gnu** binary for `rollup` diff --git a/npm/linux-x64-gnu/package.json b/npm/linux-x64-gnu/package.json new file mode 100644 index 000000000..8d5228dab --- /dev/null +++ b/npm/linux-x64-gnu/package.json @@ -0,0 +1,22 @@ +{ + "name": "@rollup/rollup-linux-x64-gnu", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "files": [ + "rollup.linux-x64-gnu.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "libc": [ + "glibc" + ], + "main": "./rollup.linux-x64-gnu.node" +} diff --git a/npm/linux-x64-musl/README.md b/npm/linux-x64-musl/README.md new file mode 100644 index 000000000..5848a6c6e --- /dev/null +++ b/npm/linux-x64-musl/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-x64-musl` + +This is the **x86_64-unknown-linux-musl** binary for `rollup` diff --git a/npm/linux-x64-musl/package.json b/npm/linux-x64-musl/package.json new file mode 100644 index 000000000..7b1ca2564 --- /dev/null +++ b/npm/linux-x64-musl/package.json @@ -0,0 +1,22 @@ +{ + "name": "@rollup/rollup-linux-x64-musl", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "files": [ + "rollup.linux-x64-musl.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "libc": [ + "musl" + ], + "main": "./rollup.linux-x64-musl.node" +} diff --git a/npm/win32-arm64-msvc/README.md b/npm/win32-arm64-msvc/README.md new file mode 100644 index 000000000..26ef53bf7 --- /dev/null +++ b/npm/win32-arm64-msvc/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-win32-arm64-msvc` + +This is the **aarch64-pc-windows-msvc** binary for `rollup` diff --git a/npm/win32-arm64-msvc/package.json b/npm/win32-arm64-msvc/package.json new file mode 100644 index 000000000..ddd14a219 --- /dev/null +++ b/npm/win32-arm64-msvc/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-win32-arm64-msvc", + "version": "0.0.0", + "os": [ + "win32" + ], + "cpu": [ + "arm64" + ], + "files": [ + "rollup.win32-arm64-msvc.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.win32-arm64-msvc.node" +} diff --git a/npm/win32-ia32-msvc/README.md b/npm/win32-ia32-msvc/README.md new file mode 100644 index 000000000..9a03e8c74 --- /dev/null +++ b/npm/win32-ia32-msvc/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-win32-ia32-msvc` + +This is the **i686-pc-windows-msvc** binary for `rollup` diff --git a/npm/win32-ia32-msvc/package.json b/npm/win32-ia32-msvc/package.json new file mode 100644 index 000000000..0716a9e8e --- /dev/null +++ b/npm/win32-ia32-msvc/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-win32-ia32-msvc", + "version": "0.0.0", + "os": [ + "win32" + ], + "cpu": [ + "ia32" + ], + "files": [ + "rollup.win32-ia32-msvc.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.win32-ia32-msvc.node" +} diff --git a/npm/win32-x64-msvc/README.md b/npm/win32-x64-msvc/README.md new file mode 100644 index 000000000..7382dbc4f --- /dev/null +++ b/npm/win32-x64-msvc/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-win32-x64-msvc` + +This is the **x86_64-pc-windows-msvc** binary for `rollup` diff --git a/npm/win32-x64-msvc/package.json b/npm/win32-x64-msvc/package.json new file mode 100644 index 000000000..cb8094fb7 --- /dev/null +++ b/npm/win32-x64-msvc/package.json @@ -0,0 +1,19 @@ +{ + "name": "@rollup/rollup-win32-x64-msvc", + "version": "0.0.0", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "files": [ + "rollup.win32-x64-msvc.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": "rollup/rollup", + "main": "./rollup.win32-x64-msvc.node" +} diff --git a/package-lock.json b/package-lock.json index 846caae1c..5a5cb3825 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,56 +1,55 @@ { "name": "rollup", - "version": "3.29.4", + "version": "4.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup", - "version": "3.29.4", + "version": "4.1.4", "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, "devDependencies": { - "@codemirror/commands": "^6.2.5", + "@codemirror/commands": "^6.3.0", "@codemirror/lang-javascript": "^6.2.1", "@codemirror/language": "^6.9.1", "@codemirror/search": "^6.5.4", "@codemirror/state": "^6.2.1", - "@codemirror/view": "^6.20.2", + "@codemirror/view": "^6.21.3", "@jridgewell/sourcemap-codec": "^1.4.15", "@mermaid-js/mermaid-cli": "^10.4.0", - "@rollup/plugin-alias": "^5.0.0", - "@rollup/plugin-buble": "^1.0.2", - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.2.1", - "@rollup/plugin-replace": "^5.0.2", - "@rollup/plugin-terser": "^0.4.3", - "@rollup/plugin-typescript": "11.1.2", - "@rollup/pluginutils": "^5.0.4", + "@napi-rs/cli": "^2.16.3", + "@rollup/plugin-alias": "^5.0.1", + "@rollup/plugin-buble": "^1.0.3", + "@rollup/plugin-commonjs": "^25.0.5", + "@rollup/plugin-json": "^6.0.1", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^5.0.3", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "11.1.5", + "@rollup/pluginutils": "^5.0.5", "@types/estree": "1.0.2", - "@types/mocha": "^10.0.1", - "@types/node": "~14.18.63", + "@types/mocha": "^10.0.2", + "@types/node": "18.0.0", "@types/yargs-parser": "^21.0.1", - "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.3", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", "@vue/eslint-config-prettier": "^8.0.0", "@vue/eslint-config-typescript": "^12.0.0", "acorn": "^8.10.0", "acorn-import-assertions": "^1.9.0", - "acorn-jsx": "^5.3.2", - "acorn-walk": "^8.2.0", "buble": "^0.20.0", "builtin-modules": "^3.3.0", "chokidar": "^3.5.3", "colorette": "^2.0.20", "concurrently": "^8.2.1", - "core-js": "^3.32.2", + "core-js": "^3.33.0", "date-time": "^4.0.0", "es5-shim": "^4.6.7", "es6-shim": "^0.35.8", - "eslint": "^8.50.0", + "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.28.1", "eslint-plugin-prettier": "^5.0.0", @@ -66,7 +65,7 @@ "is-reference": "^3.0.2", "lint-staged": "^14.0.1", "locate-character": "^3.0.0", - "magic-string": "^0.30.3", + "magic-string": "^0.30.5", "mocha": "^10.2.0", "nyc": "^15.1.0", "pinia": "^2.1.6", @@ -74,8 +73,8 @@ "pretty-bytes": "^6.1.1", "pretty-ms": "^8.0.0", "requirejs": "^2.3.6", - "rollup": "^3.29.3", - "rollup-plugin-license": "^3.1.0", + "rollup": "^4.0.2", + "rollup-plugin-license": "github:lukastaegert/rollup-plugin-license", "rollup-plugin-string": "^3.0.0", "rollup-plugin-thatworks": "^1.0.4", "semver": "^7.5.4", @@ -84,17 +83,18 @@ "source-map": "^0.7.4", "source-map-support": "^0.5.21", "systemjs": "^6.14.2", - "terser": "^5.20.0", + "terser": "^5.21.0", "tslib": "^2.6.2", "typescript": "^5.2.2", - "vite": "^4.4.9", + "vite": "^4.4.11", "vitepress": "^1.0.0-rc.20", "vue": "^3.3.4", + "wasm-pack": "^0.12.1", "weak-napi": "^2.0.2", "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { @@ -367,18 +367,18 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", - "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -386,10 +386,10 @@ "@babel/generator": "^7.23.0", "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.0", + "@babel/helpers": "^7.23.2", "@babel/parser": "^7.23.0", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", + "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -571,13 +571,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", - "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", + "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0" }, "engines": { @@ -667,9 +667,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -693,9 +693,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", - "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.13", @@ -737,9 +737,9 @@ } }, "node_modules/@codemirror/autocomplete": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.9.1.tgz", - "integrity": "sha512-yma56tqD7khIZK4gy4X5lX3/k5ArMiCGat7HEWRF/8L2kqOjVdp2qKZqpcJjwTIjSj6fqKAHqi7IjtH3QFE+Bw==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.10.1.tgz", + "integrity": "sha512-wKfeYuf4Dsz0r/jvhIoN9k9KrFAhK8x+YZ0E9HfbgJ0ZJ+AmoNbmjSDv6HQ/tBSjgb3H00wn1XrdmhRkOQxsew==", "dev": true, "dependencies": { "@codemirror/language": "^6.0.0", @@ -755,15 +755,15 @@ } }, "node_modules/@codemirror/commands": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.2.5.tgz", - "integrity": "sha512-dSi7ow2P2YgPBZflR9AJoaTHvqmeGIgkhignYMd5zK5y6DANTvxKxp6eMEpIDUJkRAaOY/TFZ4jP1ADIO/GLVA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.0.tgz", + "integrity": "sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==", "dev": true, "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.2.0", "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" + "@lezer/common": "^1.1.0" } }, "node_modules/@codemirror/lang-javascript": { @@ -818,15 +818,15 @@ } }, "node_modules/@codemirror/state": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.2.1.tgz", - "integrity": "sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.3.0.tgz", + "integrity": "sha512-5fIS19U46PEqczbBL6gBAtju9MFDT9TjIC/q2MYblHCEKiU8jhV3cRFhvQu5tQvbtxc5KLWxSnzMNh3ZqeaXVg==", "dev": true }, "node_modules/@codemirror/view": { - "version": "6.20.2", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.20.2.tgz", - "integrity": "sha512-tZ9F0UZU2P3eTRtgljg3DaCOTn2FIjQU/ktTCjSz9/6he3GHDNxSCDAPidMtF+09r23o0h9H/5U7xibtUuEgdg==", + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.21.3.tgz", + "integrity": "sha512-8l1aSQ6MygzL4Nx7GVYhucSXvW4jQd0F6Zm3v9Dg+6nZEfwzJVqi4C2zHfDljID+73gsQrWp9TgHc81xU15O4A==", "dev": true, "dependencies": { "@codemirror/state": "^6.1.4", @@ -1250,9 +1250,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.0.tgz", - "integrity": "sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -1282,9 +1282,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1505,9 +1505,9 @@ } }, "node_modules/@lezer/javascript": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.7.tgz", - "integrity": "sha512-OVWlK0YEi7HM+9JRWtRkir8qvcg0/kVYg2TAMHlVtl6DU1C9yK1waEOLBMztZsV/axRJxsqfJKhzYz+bxZme5g==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.8.tgz", + "integrity": "sha512-QRmw/5xrcyRLyWr3JT3KCzn2XZr5NYNqQMGsqnYy+FghbQn9DZPuj6JDkE6uSXvfMLpdapu8KBIaeoJFaR4QVw==", "dev": true, "dependencies": { "@lezer/highlight": "^1.1.3", @@ -1515,27 +1515,30 @@ } }, "node_modules/@lezer/lr": { - "version": "1.3.12", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.12.tgz", - "integrity": "sha512-5nwY1JzCueUdRtlMBnlf1SUi69iGCq2ABq7WQFQMkn/kxPvoACAEnTp4P17CtXxYr7WCwtYPLL2AEvxKPuF1OQ==", + "version": "1.3.13", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.13.tgz", + "integrity": "sha512-RLAbau/4uSzKgIKj96mI5WUtG1qtiR0Frn0Ei9zhPj8YOkHM+1Bb8SgdVvmR/aWJCFIzjo2KFnDiRZ75Xf5NdQ==", "dev": true, "dependencies": { "@lezer/common": "^1.0.0" } }, "node_modules/@ljharb/through": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", - "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==", + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, "engines": { "node": ">= 0.4" } }, "node_modules/@mermaid-js/mermaid-cli": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-10.4.0.tgz", - "integrity": "sha512-sXohfGD6xgR8VEKvLdvSCndFaFNVTlyXjgZlJ3x8U3/J0V2VTfLIZO94Gt8KUPUccFWci8dRYDGG0fQerB+aIA==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-10.5.0.tgz", + "integrity": "sha512-sZ8ec+zK0tBpyyIZ1QbWsvlecIMxHL9MQAxJCwxmp5nB3PN9m4uFeVpAV86Eec0Ivuu3kiyijNkK2zdZnWXXFA==", "dev": true, "dependencies": { "chalk": "^5.0.1", @@ -1549,6 +1552,22 @@ "node": "^14.13 || >=16.0" } }, + "node_modules/@napi-rs/cli": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.16.3.tgz", + "integrity": "sha512-3mLNPlbbOhpbIUKicLrJtIearlHXUuXL3UeueYyRRplpVMNkdn8xCyzY6PcYZi3JXR8bmCOiWgkVmLnrSL7DKw==", + "dev": true, + "bin": { + "napi": "scripts/index.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1653,9 +1672,9 @@ } }, "node_modules/@rollup/plugin-alias": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.0.0.tgz", - "integrity": "sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.0.1.tgz", + "integrity": "sha512-JObvbWdOHoMy9W7SU0lvGhDtWq9PllP5mjpAy+TUslZG/WzOId9u80Hsqq1vCUn9pFJ0cxpdcnAv+QzU2zFH3Q==", "dev": true, "dependencies": { "slash": "^4.0.0" @@ -1664,7 +1683,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1673,9 +1692,9 @@ } }, "node_modules/@rollup/plugin-buble": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-buble/-/plugin-buble-1.0.2.tgz", - "integrity": "sha512-Hz9+AigRWwS93vmorrVrhyG9SdSCZAkBDx614w09iFQYFUAP2HmdUrQyZsb1WO2n+iDvPFznrTE16la+eGNcEQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-buble/-/plugin-buble-1.0.3.tgz", + "integrity": "sha512-QYD9BKkJoof0FdCFeSYYhF6/Y8e0Mnf+098xGgmWOFJ4UPHlWujjqOYeVwEm2hJPOmlR5k7HPUdAjqtOWhN64Q==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -1686,7 +1705,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1695,9 +1714,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz", - "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==", + "version": "25.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.5.tgz", + "integrity": "sha512-xY8r/A9oisSeSuLCTfhssyDjo9Vp/eDiRLXkg1MXCcEEgEjPmLU+ZyDB20OOD0NlyDa/8SGbK5uIggF5XTx77w==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -1711,7 +1730,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" + "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1741,9 +1760,9 @@ } }, "node_modules/@rollup/plugin-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", - "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.1.tgz", + "integrity": "sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1" @@ -1752,7 +1771,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1761,9 +1780,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz", - "integrity": "sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -1777,7 +1796,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1786,9 +1805,9 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", - "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.3.tgz", + "integrity": "sha512-je7fu05B800IrMlWjb2wzJcdXzHYW46iTipfChnBDbIbDXhASZs27W1B58T2Yf45jZtJUONegpbce+9Ut2Ti/Q==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -1798,7 +1817,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1819,9 +1838,9 @@ } }, "node_modules/@rollup/plugin-terser": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.3.tgz", - "integrity": "sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", "dev": true, "dependencies": { "serialize-javascript": "^6.0.1", @@ -1832,7 +1851,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.x || ^3.x" + "rollup": "^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1841,9 +1860,9 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.2.tgz", - "integrity": "sha512-0ghSOCMcA7fl1JM+0gYRf+Q/HWyg+zg7/gDSc+fRLmlJWcW5K1I+CLRzaRhXf4Y3DRyPnnDo4M2ktw+a6JcDEg==", + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz", + "integrity": "sha512-rnMHrGBB0IUEv69Q8/JGRD/n4/n6b3nfpufUu26axhUcboUzv/twfZU8fIBbTOphRAe0v8EyxzeDpKXqGHfyDA==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -1853,7 +1872,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.14.0||^3.0.0", + "rollup": "^2.14.0||^3.0.0||^4.0.0", "tslib": "*", "typescript": ">=3.7.0" }, @@ -1867,9 +1886,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", - "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -1880,7 +1899,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -1888,6 +1907,162 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.0.2.tgz", + "integrity": "sha512-xDvk1pT4vaPU2BOLy0MqHMdYZyntqpaBf8RhBiezlqG9OjY8F50TyctHo8znigYKd+QCFhCmlmXHOL/LoaOl3w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.0.2.tgz", + "integrity": "sha512-lqCglytY3E6raze27DD9VQJWohbwCxzqs9aSHcj5X/8hJpzZfNdbsr4Ja9Hqp6iPyF53+5PtPx0pKRlkSvlHZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.0.2.tgz", + "integrity": "sha512-nkBKItS6E6CCzvRwgiKad+j+1ibmL7SIInj7oqMWmdkCjiSX6VeVZw2mLlRKIUL+JjsBgpATTfo7BiAXc1v0jA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.0.2.tgz", + "integrity": "sha512-vX2C8xvWPIbpEgQht95+dY6BReKAvtDgPDGi0XN0kWJKkm4WdNmq5dnwscv/zxvi+n6jUTBhs6GtpkkWT4q8Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.0.2.tgz", + "integrity": "sha512-DVFIfcHOjgmeHOAqji4xNz2wczt1Bmzy9MwBZKBa83SjBVO/i38VHDR+9ixo8QpBOiEagmNw12DucG+v55tCrg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.0.2.tgz", + "integrity": "sha512-GCK/a9ItUxPI0V5hQEJjH4JtOJO90GF2Hja7TO+EZ8rmkGvEi8/ZDMhXmcuDpQT7/PWrTT9RvnG8snMd5SrhBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.0.2.tgz", + "integrity": "sha512-cLuBp7rOjIB1R2j/VazjCmHC7liWUur2e9mFflLJBAWCkrZ+X0+QwHLvOQakIwDymungzAKv6W9kHZnTp/Mqrg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.0.2.tgz", + "integrity": "sha512-Zqw4iVnJr2naoyQus0yLy7sLtisCQcpdMKUCeXPBjkJtpiflRime/TMojbnl8O3oxUAj92mxr+t7im/RbgA20w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.0.2.tgz", + "integrity": "sha512-jJRU9TyUD/iMqjf8aLAp7XiN3pIj5v6Qcu+cdzBfVTKDD0Fvua4oUoK8eVJ9ZuKBEQKt3WdlcwJXFkpmMLk6kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.0.2.tgz", + "integrity": "sha512-ZkS2NixCxHKC4zbOnw64ztEGGDVIYP6nKkGBfOAxEPW71Sji9v8z3yaHNuae/JHPwXA+14oDefnOuVfxl59SmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.0.2.tgz", + "integrity": "sha512-3SKjj+tvnZ0oZq2BKB+fI+DqYI83VrRzk7eed8tJkxeZ4zxJZcLSE8YDQLYGq1tZAnAX+H076RHHB4gTZXsQzw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.0.2.tgz", + "integrity": "sha512-MBdJIOxRauKkry7t2q+rTHa3aWjVez2eioWg+etRVS3dE4tChhmt5oqZYr48R6bPmcwEhxQr96gVRfeQrLbqng==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@types/buble": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/@types/buble/-/buble-0.19.2.tgz", @@ -1984,9 +2159,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -2018,9 +2193,9 @@ "dev": true }, "node_modules/@types/web-bluetooth": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", - "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==", + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz", + "integrity": "sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==", "dev": true }, "node_modules/@types/yargs-parser": { @@ -2040,16 +2215,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz", - "integrity": "sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", + "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.3", - "@typescript-eslint/type-utils": "6.7.3", - "@typescript-eslint/utils": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/type-utils": "6.7.5", + "@typescript-eslint/utils": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -2075,15 +2250,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.3.tgz", - "integrity": "sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", + "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.3", - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/typescript-estree": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4" }, "engines": { @@ -2103,13 +2278,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", - "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", + "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3" + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2120,13 +2295,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.3.tgz", - "integrity": "sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", + "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.3", - "@typescript-eslint/utils": "6.7.3", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/utils": "6.7.5", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -2147,9 +2322,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", - "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", + "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -2160,13 +2335,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz", - "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", + "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2187,17 +2362,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.3.tgz", - "integrity": "sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", + "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.3", - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/typescript-estree": "6.7.3", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", "semver": "^7.5.4" }, "engines": { @@ -2212,12 +2387,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", - "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", + "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/types": "6.7.5", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -2279,9 +2454,9 @@ } }, "node_modules/@vue/devtools-api": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", - "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==", "dev": true }, "node_modules/@vue/eslint-config-prettier": { @@ -2397,15 +2572,15 @@ "dev": true }, "node_modules/@vueuse/core": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.4.1.tgz", - "integrity": "sha512-DkHIfMIoSIBjMgRRvdIvxsyboRZQmImofLyOHADqiVbQVilP8VVHDhBX2ZqoItOgu7dWa8oXiNnScOdPLhdEXg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.5.0.tgz", + "integrity": "sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==", "dev": true, "dependencies": { - "@types/web-bluetooth": "^0.0.17", - "@vueuse/metadata": "10.4.1", - "@vueuse/shared": "10.4.1", - "vue-demi": ">=0.14.5" + "@types/web-bluetooth": "^0.0.18", + "@vueuse/metadata": "10.5.0", + "@vueuse/shared": "10.5.0", + "vue-demi": ">=0.14.6" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -2438,14 +2613,14 @@ } }, "node_modules/@vueuse/integrations": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.4.1.tgz", - "integrity": "sha512-uRBPyG5Lxoh1A/J+boiioPT3ELEAPEo4t8W6Mr4yTKIQBeW/FcbsotZNPr4k9uz+3QEksMmflWloS9wCnypM7g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.5.0.tgz", + "integrity": "sha512-fm5sXLCK0Ww3rRnzqnCQRmfjDURaI4xMsx+T+cec0ngQqHx/JgUtm8G0vRjwtonIeTBsH1Q8L3SucE+7K7upJQ==", "dev": true, "dependencies": { - "@vueuse/core": "10.4.1", - "@vueuse/shared": "10.4.1", - "vue-demi": ">=0.14.5" + "@vueuse/core": "10.5.0", + "@vueuse/shared": "10.5.0", + "vue-demi": ">=0.14.6" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -2530,21 +2705,21 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.4.1.tgz", - "integrity": "sha512-2Sc8X+iVzeuMGHr6O2j4gv/zxvQGGOYETYXEc41h0iZXIRnRbJZGmY/QP8dvzqUelf8vg0p/yEA5VpCEu+WpZg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.5.0.tgz", + "integrity": "sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==", "dev": true, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.4.1.tgz", - "integrity": "sha512-vz5hbAM4qA0lDKmcr2y3pPdU+2EVw/yzfRsBdu+6+USGa4PxqSQRYIUC9/NcT06y+ZgaTsyURw2I9qOFaaXHAg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.5.0.tgz", + "integrity": "sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==", "dev": true, "dependencies": { - "vue-demi": ">=0.14.5" + "vue-demi": ">=0.14.6" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -2606,15 +2781,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -2969,6 +3135,29 @@ "node": ">=8" } }, + "node_modules/binary-install": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/binary-install/-/binary-install-1.1.0.tgz", + "integrity": "sha512-rkwNGW+3aQVSZoD0/o3mfPN6Yxh3Id0R/xzTVBVVpGNlVz8EGwusksxRlbk/A5iKTZt9zkMn3qIqmAt3vpfbzg==", + "dev": true, + "dependencies": { + "axios": "^0.26.1", + "rimraf": "^3.0.2", + "tar": "^6.1.11" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/binary-install/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -3276,9 +3465,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001541", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001541.tgz", - "integrity": "sha512-bLOsqxDgTqUBkzxbNlSBt8annkDpQB9NdzdTbO2ooJ+eC/IQcvDspDc058g84ejCelF7vHUx57KIOjEecOHXaw==", + "version": "1.0.30001547", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", + "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==", "dev": true, "funding": [ { @@ -3359,9 +3548,9 @@ } }, "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -3718,9 +3907,9 @@ "dev": true }, "node_modules/core-js": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.2.tgz", - "integrity": "sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ==", + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.0.tgz", + "integrity": "sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==", "dev": true, "hasInstallScript": true, "funding": { @@ -3927,9 +4116,9 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, "dependencies": { "get-intrinsic": "^1.2.1", @@ -4015,9 +4204,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.536", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.536.tgz", - "integrity": "sha512-L4VgC/76m6y8WVCgnw5kJy/xs7hXrViCFdNKVG8Y7B2isfwrFryFyJzumh3ugxhd/oB1uEaEEvRdmeLrnd7OFA==", + "version": "1.4.553", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.553.tgz", + "integrity": "sha512-HiRdtyKS2+VhiXvjhMvvxiMC33FJJqTA5EB2YHgFZW6v7HkK4Q9Ahv2V7O2ZPgAjw+MyCJVMQvigj13H8t+wvA==", "dev": true }, "node_modules/emoji-regex": { @@ -4223,15 +4412,15 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", + "@eslint/js": "8.51.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -4387,9 +4576,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", - "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", @@ -4915,12 +5104,12 @@ } }, "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", "dev": true, "dependencies": { - "flatted": "^3.2.7", + "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, @@ -4944,9 +5133,9 @@ } }, "node_modules/focus-trap": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.3.tgz", - "integrity": "sha512-7UsT/eSJcTPF0aZp73u7hBRTABz26knRRTJfoTGFCQD5mUImLIIOwWWCrtoQdmWa7dykBi6H+Cp5i3S/kvsMeA==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", + "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", "dev": true, "dependencies": { "tabbable": "^6.2.0" @@ -5040,6 +5229,36 @@ "node": ">=14.14" } }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5060,10 +5279,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -5257,9 +5479,9 @@ } }, "node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -5340,13 +5562,10 @@ "dev": true }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -6307,9 +6526,9 @@ } }, "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -6783,9 +7002,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", - "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -6904,12 +7123,52 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/minisearch": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.1.0.tgz", "integrity": "sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==", "dev": true }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/mitt": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", @@ -8099,9 +8358,9 @@ } }, "node_modules/preact": { - "version": "10.18.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.18.0.tgz", - "integrity": "sha512-O4dGFmErPd3RNVDvXmCbOW6hetnve6vYtjx5qf51mCUmBS96s66MrNQkEII5UThDGoNF7953ptA+aNupiDxVeg==", + "version": "10.18.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.18.1.tgz", + "integrity": "sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==", "dev": true, "funding": { "type": "opencollective", @@ -8587,9 +8846,9 @@ } }, "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { "is-core-module": "^2.13.0", @@ -8707,26 +8966,38 @@ } }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.0.2.tgz", + "integrity": "sha512-MCScu4usMPCeVFaiLcgMDaBQeYi1z6vpWxz0r0hq0Hv77Y2YuOTZldkuNJ54BdYBH3e+nkrk6j0Rre/NLDBYzg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.0.2", + "@rollup/rollup-android-arm64": "4.0.2", + "@rollup/rollup-darwin-arm64": "4.0.2", + "@rollup/rollup-darwin-x64": "4.0.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.0.2", + "@rollup/rollup-linux-arm64-gnu": "4.0.2", + "@rollup/rollup-linux-arm64-musl": "4.0.2", + "@rollup/rollup-linux-x64-gnu": "4.0.2", + "@rollup/rollup-linux-x64-musl": "4.0.2", + "@rollup/rollup-win32-arm64-msvc": "4.0.2", + "@rollup/rollup-win32-ia32-msvc": "4.0.2", + "@rollup/rollup-win32-x64-msvc": "4.0.2", "fsevents": "~2.3.2" } }, "node_modules/rollup-plugin-license": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.1.0.tgz", - "integrity": "sha512-Cny2H2hJ7K+VdcJkH1pNcYRVhqIhZNu/fPusedW53fNZQOIwpXiznJ220EFvDkJbFUEkLqIDsDB5bEr/N9qfqw==", + "resolved": "git+ssh://git@github.com/lukastaegert/rollup-plugin-license.git#71dfb8296e00864f1eb2278a6d77f8f6e978e4b1", "dev": true, + "license": "MIT", "dependencies": { "commenting": "~1.1.0", "glob": "~7.2.0", @@ -8742,7 +9013,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0" + "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "node_modules/rollup-plugin-license/node_modules/glob": { @@ -9008,9 +9279,9 @@ "dev": true }, "node_modules/search-insights": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.8.3.tgz", - "integrity": "sha512-W9rZfQ9XEfF0O6ntgQOTI7Txc8nkZrO4eJ/pTHK0Br6wWND2sPGPoWg+yGhdIW7wMbLqk8dc23IyEtLlNGpeNw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.9.0.tgz", + "integrity": "sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==", "dev": true, "peer": true }, @@ -9154,9 +9425,9 @@ } }, "node_modules/shiki": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.4.tgz", - "integrity": "sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", + "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -9361,9 +9632,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", - "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/spdx-ranges": { @@ -9593,6 +9864,23 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "dev": true }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -9621,10 +9909,37 @@ "node": ">=6" } }, + "node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/terser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.20.0.tgz", - "integrity": "sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.21.0.tgz", + "integrity": "sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -10079,9 +10394,9 @@ } }, "node_modules/vite": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", - "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", + "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", "dev": true, "dependencies": { "esbuild": "^0.18.10", @@ -10133,23 +10448,39 @@ } } }, + "node_modules/vite/node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/vitepress": { - "version": "1.0.0-rc.20", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.20.tgz", - "integrity": "sha512-CykMUJ8JLxLcGWek0ew3wln4RYbsOd1+0YzXITTpajggpynm2S331TNkJVOkHrMRc6GYe3y4pS40GfgcW0ZwAw==", + "version": "1.0.0-rc.21", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.21.tgz", + "integrity": "sha512-eHX057NgAqmrj6FIqh7Sqsbk/kftrFMBUpCKjuQIZ+c+bYTbmzXsXrHSbT5b4WWy4vLx1993a+H3wIRy2dHi8g==", "dev": true, "dependencies": { "@docsearch/css": "^3.5.2", "@docsearch/js": "^3.5.2", - "@types/markdown-it": "^13.0.1", - "@vue/devtools-api": "^6.5.0", - "@vueuse/core": "^10.4.1", - "@vueuse/integrations": "^10.4.1", - "focus-trap": "^7.5.2", + "@types/markdown-it": "^13.0.2", + "@vue/devtools-api": "^6.5.1", + "@vueuse/core": "^10.5.0", + "@vueuse/integrations": "^10.5.0", + "focus-trap": "^7.5.3", "mark.js": "8.11.1", "minisearch": "^6.1.0", - "shiki": "^0.14.4", - "vite": "^4.4.9", + "shiki": "^0.14.5", + "vite": "^4.4.11", "vue": "^3.3.4" }, "bin": { @@ -10157,7 +10488,7 @@ }, "peerDependencies": { "markdown-it-mathjax3": "^4.3.2", - "postcss": "^8.4.30" + "postcss": "^8.4.31" }, "peerDependenciesMeta": { "markdown-it-mathjax3": { @@ -10194,9 +10525,9 @@ } }, "node_modules/vue-eslint-parser": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz", - "integrity": "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz", + "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -10238,6 +10569,19 @@ "node": "10.* || >= 12.*" } }, + "node_modules/wasm-pack": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/wasm-pack/-/wasm-pack-0.12.1.tgz", + "integrity": "sha512-dIyKWUumPFsGohdndZjDXRFaokUT/kQS+SavbbiXVAvA/eN4riX5QNdB6AhXQx37zNxluxQkuixZUgJ8adKjOg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "binary-install": "^1.0.1" + }, + "bin": { + "wasm-pack": "run.js" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/package.json b/package.json index 481900742..67a47ee9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup", - "version": "3.29.4", + "version": "4.1.4", "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/es/rollup.js", @@ -8,13 +8,47 @@ "bin": { "rollup": "dist/bin/rollup" }, + "napi": { + "name": "rollup", + "package": { + "name": "@rollup/rollup" + }, + "triples": { + "defaults": false, + "additional": [ + "aarch64-apple-darwin", + "aarch64-linux-android", + "aarch64-pc-windows-msvc", + "aarch64-unknown-linux-gnu", + "aarch64-unknown-linux-musl", + "armv7-linux-androideabi", + "armv7-unknown-linux-gnueabihf", + "i686-pc-windows-msvc", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", + "x86_64-unknown-linux-gnu", + "x86_64-unknown-linux-musl" + ] + } + }, "scripts": { - "build": "rollup --config rollup.config.ts --configPlugin typescript", + "build": "npm run build:wasm && concurrently -c green,blue \"npm run build:napi -- --release\" \"npm:build:js\" && npm run build:copy-native", + "build:quick": "concurrently -c green,blue 'npm:build:napi' 'npm:build:cjs' && npm run build:copy-native", + "build:napi": "napi build --platform --dts native.d.ts --js false --cargo-cwd rust -p bindings_napi --cargo-name bindings_napi", + "build:wasm": "wasm-pack build rust/bindings_wasm --out-dir ../../wasm --target web --no-pack && shx rm wasm/.gitignore", + "build:wasm:node": "wasm-pack build rust/bindings_wasm --out-dir ../../wasm-node --target nodejs --no-pack && shx rm wasm-node/.gitignore", + "update:napi": "npm run build:napi && npm run build:copy-native", + "build:js": "rollup --config rollup.config.ts --configPlugin typescript", + "build:js:node": "rollup --config rollup.config.ts --configPlugin typescript --configIsBuildNode", + "build:prepare": "concurrently -c green,blue \"npm run build:napi -- --release\" \"npm:build:js:node\" && npm run build:copy-native", + "update:js": "npm run build:js && npm run build:copy-native", + "build:copy-native": "shx mkdir -p dist && shx cp rollup.*.node dist/", "dev": "vitepress dev docs", "build:cjs": "rollup --config rollup.config.ts --configPlugin typescript --configTest", - "build:bootstrap": "node dist/bin/rollup --config rollup.config.ts --configPlugin typescript", + "build:bootstrap": "shx mv dist dist-build && node dist-build/bin/rollup --config rollup.config.ts --configPlugin typescript && shx rm -rf dist-build", "build:docs": "vitepress build docs", "preview:docs": "vitepress preview docs", +<<<<<<< HEAD "ci:lint": "concurrently 'npm:lint:js:nofix' 'npm:lint:zhlint:nofix'", "ci:test": "npm run build:cjs && npm run build:bootstrap && npm run test:all", "ci:test:only": "npm run build:cjs && npm run build:bootstrap && npm run test:only", @@ -29,6 +63,28 @@ "prepare": "if [ \"$SKIP_BUILD\" != \"true\" ]; then husky install && node scripts/check-release.js || npm run build; fi", "prepublishOnly": "node scripts/check-release.js", "release": "node scripts/release.js", +======= + "ci:artifacts": "napi artifacts", + "ci:lint": "concurrently -c red,yellow,green,blue 'npm:lint:js:nofix' 'npm:lint:native-js' 'npm:lint:markdown:nofix' 'npm:lint:rust:nofix'", + "ci:test:only": "npm run build:cjs && npm run build:copy-native && npm run build:bootstrap && npm run build:copy-native && npm run test:only", + "ci:test:all": "npm run build:cjs && npm run build:copy-native && npm run build:bootstrap && npm run build:copy-native && concurrently --kill-others-on-fail -c green,blue,magenta,cyan 'npm:test:only' 'npm:test:typescript' 'npm:test:leak' 'npm:test:browser'", + "ci:coverage": "npm run build:cjs && npm run build:copy-native && npm run build:bootstrap && npm run build:copy-native && nyc --reporter lcovonly mocha", + "lint": "concurrently -c red,yellow,green,blue 'npm:lint:js' 'npm:lint:native-js' 'npm:lint:markdown' 'npm:lint:rust'", + "lint:js": "eslint . --fix --cache", + "lint:js:nofix": "eslint . --cache", + "lint:native-js": "node scripts/lint-native-js.js", + "lint:markdown": "prettier --write \"**/*.md\"", + "lint:markdown:nofix": "prettier --check \"**/*.md\"", + "lint:rust": "cd rust && cargo fmt && cargo clippy --fix --allow-dirty", + "lint:rust:nofix": "cd rust && cargo fmt --check && cargo clippy", + "perf": "npm run build:cjs && node --expose-gc scripts/perf.js", + "perf:init": "node scripts/perf-init.js", + "prepare": "husky install && node scripts/check-release.js || npm run build:prepare", + "prepublishOnly": "node scripts/check-release.js && node scripts/prepublish.js", + "postpublish": "node scripts/postpublish.js", + "prepublish:napi": "napi prepublish --skip-gh-release", + "release": "node scripts/prepare-release.js", +>>>>>>> 061a0387c8654222620f602471d66afd3c582048 "release:docs": "git fetch --update-head-ok origin master:master && git branch --force documentation-published master && git push origin documentation-published", "test": "npm run build && npm run test:all", "test:update-snapshots": "node scripts/update-snapshots.js", @@ -66,45 +122,44 @@ "@rollup/plugin-typescript": "It appears that 11.1.3 breaks sourcemaps" }, "devDependencies": { - "@codemirror/commands": "^6.2.5", + "@codemirror/commands": "^6.3.0", "@codemirror/lang-javascript": "^6.2.1", "@codemirror/language": "^6.9.1", "@codemirror/search": "^6.5.4", "@codemirror/state": "^6.2.1", - "@codemirror/view": "^6.20.2", + "@codemirror/view": "^6.21.3", "@jridgewell/sourcemap-codec": "^1.4.15", "@mermaid-js/mermaid-cli": "^10.4.0", - "@rollup/plugin-alias": "^5.0.0", - "@rollup/plugin-buble": "^1.0.2", - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.2.1", - "@rollup/plugin-replace": "^5.0.2", - "@rollup/plugin-terser": "^0.4.3", - "@rollup/plugin-typescript": "11.1.2", - "@rollup/pluginutils": "^5.0.4", + "@napi-rs/cli": "^2.16.3", + "@rollup/plugin-alias": "^5.0.1", + "@rollup/plugin-buble": "^1.0.3", + "@rollup/plugin-commonjs": "^25.0.5", + "@rollup/plugin-json": "^6.0.1", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^5.0.3", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "11.1.5", + "@rollup/pluginutils": "^5.0.5", "@types/estree": "1.0.2", - "@types/mocha": "^10.0.1", - "@types/node": "~14.18.63", + "@types/mocha": "^10.0.2", + "@types/node": "18.0.0", "@types/yargs-parser": "^21.0.1", - "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.3", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", "@vue/eslint-config-prettier": "^8.0.0", "@vue/eslint-config-typescript": "^12.0.0", "acorn": "^8.10.0", "acorn-import-assertions": "^1.9.0", - "acorn-jsx": "^5.3.2", - "acorn-walk": "^8.2.0", "buble": "^0.20.0", "builtin-modules": "^3.3.0", "chokidar": "^3.5.3", "colorette": "^2.0.20", "concurrently": "^8.2.1", - "core-js": "^3.32.2", + "core-js": "^3.33.0", "date-time": "^4.0.0", "es5-shim": "^4.6.7", "es6-shim": "^0.35.8", - "eslint": "^8.50.0", + "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.28.1", "eslint-plugin-prettier": "^5.0.0", @@ -120,7 +175,7 @@ "is-reference": "^3.0.2", "lint-staged": "^14.0.1", "locate-character": "^3.0.0", - "magic-string": "^0.30.3", + "magic-string": "^0.30.5", "mocha": "^10.2.0", "nyc": "^15.1.0", "pinia": "^2.1.6", @@ -128,8 +183,8 @@ "pretty-bytes": "^6.1.1", "pretty-ms": "^8.0.0", "requirejs": "^2.3.6", - "rollup": "^3.29.3", - "rollup-plugin-license": "^3.1.0", + "rollup": "^4.0.2", + "rollup-plugin-license": "github:lukastaegert/rollup-plugin-license", "rollup-plugin-string": "^3.0.0", "rollup-plugin-thatworks": "^1.0.4", "semver": "^7.5.4", @@ -138,12 +193,13 @@ "source-map": "^0.7.4", "source-map-support": "^0.5.21", "systemjs": "^6.14.2", - "terser": "^5.20.0", + "terser": "^5.21.0", "tslib": "^2.6.2", "typescript": "^5.2.2", - "vite": "^4.4.9", + "vite": "^4.4.11", "vitepress": "^1.0.0-rc.20", "vue": "^3.3.4", + "wasm-pack": "^0.12.1", "weak-napi": "^2.0.2", "yargs-parser": "^21.1.1" }, @@ -151,13 +207,14 @@ "semver": "^7.5.4" }, "files": [ + "dist/*.node", "dist/**/*.js", "dist/*.d.ts", "dist/bin/rollup", "dist/es/package.json" ], "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "exports": { @@ -176,6 +233,11 @@ "require": "./dist/getLogFilter.js", "import": "./dist/es/getLogFilter.js" }, + "./parseAst": { + "types": "./dist/parseAst.d.ts", + "require": "./dist/parseAst.js", + "import": "./dist/es/parseAst.js" + }, "./dist/*": "./dist/*" } } diff --git a/renovate.json b/renovate.json index af7318b1d..53a497781 100644 --- a/renovate.json +++ b/renovate.json @@ -16,11 +16,12 @@ }, { "matchUpdateTypes": ["minor", "patch", "lockFileMaintenance"], - "automergeSchedule": ["after 10am on Friday"], "groupName": "minor/patch updates" } ], "automerge": true, + "automergeType": "pr", + "platformAutomerge": true, "internalChecksFilter": "strict", "lockFileMaintenance": { "enabled": true, diff --git a/rollup.config.ts b/rollup.config.ts index 83de4618f..9fe4872bf 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -13,7 +13,10 @@ import { moduleAliases } from './build-plugins/aliases'; import cleanBeforeWrite from './build-plugins/clean-before-write'; import { copyBrowserTypes, copyNodeTypes } from './build-plugins/copy-types'; import emitModulePackageFile from './build-plugins/emit-module-package-file'; +import { emitNativeEntry } from './build-plugins/emit-native-entry'; +import emitWasmFile from './build-plugins/emit-wasm-file'; import esmDynamicImport from './build-plugins/esm-dynamic-import'; +import { externalNativeImport } from './build-plugins/external-native-import'; import { fsEventsReplacement } from './build-plugins/fs-events-replacement'; import getLicenseHandler from './build-plugins/generate-license-file'; import getBanner from './build-plugins/get-banner'; @@ -46,7 +49,8 @@ const nodePlugins: readonly Plugin[] = [ include: 'node_modules/**' }), typescript(), - cleanBeforeWrite('dist') + cleanBeforeWrite('dist'), + externalNativeImport() ]; export default async function ( @@ -62,6 +66,7 @@ export default async function ( input: { 'getLogFilter.js': 'src/utils/getLogFilter.ts', 'loadConfigFile.js': 'cli/run/loadConfigFile.ts', + 'parseAst.js': 'src/utils/parseAst.ts', 'rollup.js': 'src/node-entry.ts' }, onwarn, @@ -80,6 +85,7 @@ export default async function ( }, plugins: [ ...nodePlugins, + emitNativeEntry(), addCliEntry(), esmDynamicImport(), !command.configTest && collectLicenses(), @@ -93,10 +99,21 @@ export default async function ( return commonJSBuild; } + const exitOnCloseBundle: Plugin = { + closeBundle() { + // On CI, macOS runs sometimes do not close properly. This is a hack + // to fix this until the problem is understood. + console.log('Force quit.'); + setTimeout(() => process.exit(0)); + }, + name: 'force-close' + }; + const esmBuild: RollupOptions = { ...commonJSBuild, input: { 'getLogFilter.js': 'src/utils/getLogFilter.ts', + 'parseAst.js': 'src/utils/parseAst.ts', 'rollup.js': 'src/node-entry.ts' }, output: { @@ -109,6 +126,11 @@ export default async function ( plugins: [...nodePlugins, emitModulePackageFile(), collectLicenses(), writeLicense()] }; + if (command.configIsBuildNode) { + (esmBuild.plugins as Plugin[]).push(exitOnCloseBundle); + return [commonJSBuild, esmBuild]; + } + const { collectLicenses: collectLicensesBrowser, writeLicense: writeLicenseBrowser } = getLicenseHandler(fileURLToPath(new URL('browser', import.meta.url))); @@ -142,15 +164,8 @@ export default async function ( collectLicensesBrowser(), writeLicenseBrowser(), cleanBeforeWrite('browser/dist'), - { - closeBundle() { - // On CI, macOS runs sometimes do not close properly. This is a hack - // to fix this until the problem is understood. - console.log('Force quit.'); - setTimeout(() => process.exit(0)); - }, - name: 'force-close' - } + emitWasmFile(), + exitOnCloseBundle ], strictDeprecations: true, treeshake diff --git a/rust/Cargo.lock b/rust/Cargo.lock new file mode 100644 index 000000000..5804c2e1e --- /dev/null +++ b/rust/Cargo.lock @@ -0,0 +1,1959 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ast_node" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c09c69dffe06d222d072c878c3afe86eee2179806f20503faec97250268b4c24" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.38", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_impl" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" + +[[package]] +name = "better_scoped_tls" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de" +dependencies = [ + "scoped-tls", +] + +[[package]] +name = "bindings_napi" +version = "0.0.0" +dependencies = [ + "mimalloc-rust", + "napi", + "napi-build", + "napi-derive", + "parse_ast", + "xxhash", +] + +[[package]] +name = "bindings_wasm" +version = "0.0.0" +dependencies = [ + "getrandom", + "js-sys", + "parse_ast", + "wasm-bindgen", + "xxhash", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ctor" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583" +dependencies = [ + "quote", + "syn 2.0.38", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.1", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data-encoding" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" + +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "serde", + "uuid", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "from_variant" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ec5dc38ee19078d84a692b1c41181ff9f94331c76cee66ff0208c770b5e54f" +dependencies = [ + "pmutil", + "proc-macro2", + "swc_macros_common", + "syn 2.0.38", +] + +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +dependencies = [ + "equivalent", + "hashbrown 0.14.1", +] + +[[package]] +name = "is-macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4467ed1321b310c2625c5aa6c1b1ffc5de4d9e42668cf697a08fb033ee8265e" +dependencies = [ + "Inflector", + "pmutil", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "is_ci" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616cde7c720bb2bb5824a224687d8f77bfd38922027f01d825cd7453be5099fb" + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miette" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c90329e44f9208b55f45711f9558cec15d7ef8295cc65ecd6d4188ae8edc58c" +dependencies = [ + "atty", + "backtrace", + "miette-derive", + "once_cell", + "owo-colors", + "supports-color", + "supports-hyperlinks", + "supports-unicode", + "terminal_size", + "textwrap", + "thiserror", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b5bc45b761bcf1b5e6e6c4128cd93b84c218721a8d9b894aa0aff4ed180174c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "mimalloc-rust" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb726c8298efb4010b2c46d8050e4be36cf807b9d9e98cb112f830914fc9bbe" +dependencies = [ + "cty", + "mimalloc-rust-sys", +] + +[[package]] +name = "mimalloc-rust-sys" +version = "1.7.9-source" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413e13241a9809f291568133eca6694572cf528c1a6175502d090adce5dd5db" +dependencies = [ + "cc", + "cty", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "napi" +version = "2.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd063c93b900149304e3ba96ce5bf210cd4f81ef5eb80ded0d100df3e85a3ac0" +dependencies = [ + "bitflags 2.4.0", + "ctor", + "napi-derive", + "napi-sys", + "once_cell", +] + +[[package]] +name = "napi-build" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a73d9ef23e8dc2ebbffb6a6ae2ef467c0f18ac10711e4cc59c5485d41df0e" + +[[package]] +name = "napi-derive" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da1c6a8fa84d549aa8708fcd062372bf8ec6e849de39016ab921067d21bde367" +dependencies = [ + "cfg-if", + "convert_case", + "napi-derive-backend", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "napi-derive-backend" +version = "1.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20bbc7c69168d06a848f925ec5f0e0997f98e8c8d4f2cc30157f0da51c009e17" +dependencies = [ + "convert_case", + "once_cell", + "proc-macro2", + "quote", + "regex", + "semver 1.0.20", + "syn 1.0.109", +] + +[[package]] +name = "napi-sys" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "166b5ef52a3ab5575047a9fe8d4a030cdd0f63c96f071cd6907674453b07bae3" +dependencies = [ + "libloading", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.3", + "libc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "parse_ast" +version = "0.0.0" +dependencies = [ + "anyhow", + "parking_lot", + "swc_atoms", + "swc_common", + "swc_compiler_base", + "swc_ecma_ast", + "swc_ecma_lints", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_visit", + "swc_error_reporters", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.0.2", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros", + "phf_shared", + "proc-macro-hack", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pmutil" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radix_fmt" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "ryu-js" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4950d85bc52415f8432144c97c4791bd0c4f7954de32a7270ee9cccd3c22b12b" + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "serde_json" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "smallvec" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" + +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg", + "static_assertions", + "version_check", +] + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "sourcemap" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90" +dependencies = [ + "data-encoding", + "debugid", + "if_chain", + "rustc_version", + "serde", + "serde_json", + "unicode-id", + "url", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "string_enum" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fa4d4f81d7c05b9161f8de839975d3326328b8ba2831164b465524cc2f55252" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.38", +] + +[[package]] +name = "supports-color" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba6faf2ca7ee42fdd458f4347ae0a9bd6bcc445ad7cb57ad82b383f18870d6f" +dependencies = [ + "atty", + "is_ci", +] + +[[package]] +name = "supports-hyperlinks" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590b34f7c5f01ecc9d78dba4b3f445f31df750a67621cf31626f3b7441ce6406" +dependencies = [ + "atty", +] + +[[package]] +name = "supports-unicode" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8b945e45b417b125a8ec51f1b7df2f8df7920367700d1f98aedd21e5735f8b2" +dependencies = [ + "atty", +] + +[[package]] +name = "swc_atoms" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebf7a12229f0c0efb654a6a0f8cbfd94fbd320a57c764857a82d8abe9342b450" +dependencies = [ + "once_cell", + "rustc-hash", + "serde", + "string_cache", + "string_cache_codegen", + "triomphe", +] + +[[package]] +name = "swc_cached" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b8051bbf1c23817f9f2912fce18d9a6efcaaf8f8e1a4c69dbaf72bcaf71136" +dependencies = [ + "ahash", + "anyhow", + "dashmap", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "swc_common" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490e199e25d2aa3fbef675524fa81408651f4e7178b51110470ddd1b3e3bbe75" +dependencies = [ + "ahash", + "ast_node", + "better_scoped_tls", + "cfg-if", + "either", + "from_variant", + "new_debug_unreachable", + "num-bigint", + "once_cell", + "parking_lot", + "rustc-hash", + "serde", + "siphasher", + "sourcemap", + "string_cache", + "swc_atoms", + "swc_eq_ignore_macros", + "swc_visit", + "tracing", + "unicode-width", + "url", +] + +[[package]] +name = "swc_compiler_base" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9c750cfc2b37779dfc50a37311b0c5a13155453ec80eaa9c2b94da9e7c3dd8" +dependencies = [ + "anyhow", + "base64 0.13.1", + "pathdiff", + "serde", + "sourcemap", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_minifier", + "swc_ecma_parser", + "swc_ecma_visit", + "swc_timer", +] + +[[package]] +name = "swc_config" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ba1c7a40d38f9dd4e9a046975d3faf95af42937b34b2b963be4d8f01239584b" +dependencies = [ + "indexmap 1.9.3", + "serde", + "serde_json", + "swc_config_macro", +] + +[[package]] +name = "swc_config_macro" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5b5aaca9a0082be4515f0fbbecc191bf5829cd25b5b9c0a2810f6a2bb0d6829" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.38", +] + +[[package]] +name = "swc_ecma_ast" +version = "0.110.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cbbf9918976a7e7fbdb4f76fe659d08e291a8b56b524b424183fc67d1189679" +dependencies = [ + "bitflags 2.4.0", + "is-macro", + "num-bigint", + "scoped-tls", + "serde", + "string_enum", + "swc_atoms", + "swc_common", + "unicode-id", +] + +[[package]] +name = "swc_ecma_codegen" +version = "0.146.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fba119c76654599b71099a0150094f5790f00db63aab6cda1790e731f42c98f" +dependencies = [ + "memchr", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "sourcemap", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_codegen_macros", + "tracing", +] + +[[package]] +name = "swc_ecma_codegen_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcdff076dccca6cc6a0e0b2a2c8acfb066014382bc6df98ec99e755484814384" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.38", +] + +[[package]] +name = "swc_ecma_lints" +version = "0.89.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93a2678e9fbc05f984eb7eba63e1e447fc87fac962689a650c440be9cf684a56" +dependencies = [ + "auto_impl", + "dashmap", + "parking_lot", + "rayon", + "regex", + "serde", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_minifier" +version = "0.188.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e15ead8e8a1f7e84b15c8800fc27f9b578544c6086396a06a8e58104fffbbd7" +dependencies = [ + "arrayvec", + "indexmap 1.9.3", + "num-bigint", + "num_cpus", + "once_cell", + "parking_lot", + "radix_fmt", + "regex", + "rustc-hash", + "ryu-js", + "serde", + "serde_json", + "swc_atoms", + "swc_cached", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_optimization", + "swc_ecma_usage_analyzer", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_timer", + "tracing", +] + +[[package]] +name = "swc_ecma_parser" +version = "0.141.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26e535c623db7beb04ba8ebfa821c287b72a23f9fb523990b54db6c1355c990" +dependencies = [ + "either", + "num-bigint", + "num-traits", + "serde", + "smallvec", + "smartstring", + "stacker", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "tracing", + "typed-arena", +] + +[[package]] +name = "swc_ecma_transforms_base" +version = "0.134.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353b6ee945d843018c16f65f0d44c844c7fa5fa42ae36b4adef50ec4404acdbe" +dependencies = [ + "better_scoped_tls", + "bitflags 2.4.0", + "indexmap 1.9.3", + "once_cell", + "phf", + "rustc-hash", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_utils", + "swc_ecma_visit", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_macros" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8188eab297da773836ef5cf2af03ee5cca7a563e1be4b146f8141452c28cc690" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.38", +] + +[[package]] +name = "swc_ecma_transforms_optimization" +version = "0.194.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd49e80cff89cb41bae51e225a30883f5bd8cf013c62f198c598f0a39a3eeae2" +dependencies = [ + "dashmap", + "indexmap 1.9.3", + "once_cell", + "petgraph", + "rustc-hash", + "serde_json", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_fast_graph", + "tracing", +] + +[[package]] +name = "swc_ecma_usage_analyzer" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbcc74133a02ae615f16daaac24c58e6194e6da000252e9469216838231f24af" +dependencies = [ + "indexmap 1.9.3", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_timer", + "tracing", +] + +[[package]] +name = "swc_ecma_utils" +version = "0.124.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b291111880425c55b0b4e0033aed30950a945fee788850054d1039c0e039ea7" +dependencies = [ + "indexmap 1.9.3", + "num_cpus", + "once_cell", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "tracing", + "unicode-id", +] + +[[package]] +name = "swc_ecma_visit" +version = "0.96.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47081acd84cdb2d49d6340ed3204e17738b444da10a3e1dd1eb3d7c8e4d47091" +dependencies = [ + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_visit", + "tracing", +] + +[[package]] +name = "swc_eq_ignore_macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05a95d367e228d52484c53336991fdcf47b6b553ef835d9159db4ba40efb0ee8" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "swc_error_reporters" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "015cbdf2b13ccc76eb12d1702a90fb9aae7b3cddacaf2c56a1b1a4a02f9fcd81" +dependencies = [ + "anyhow", + "miette", + "once_cell", + "parking_lot", + "swc_common", +] + +[[package]] +name = "swc_fast_graph" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97e69e9617913611e39284cf724a412ab7fc6081708d0ef2820855774da5357" +dependencies = [ + "indexmap 1.9.3", + "petgraph", + "rustc-hash", + "swc_common", +] + +[[package]] +name = "swc_macros_common" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a273205ccb09b51fabe88c49f3b34c5a4631c4c00a16ae20e03111d6a42e832" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "swc_timer" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a6e150f91760ccaca6f6b797b95ffb00bbc245a71311c483b84a7bc700e9c4" +dependencies = [ + "tracing", +] + +[[package]] +name = "swc_visit" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e87c337fbb2d191bf371173dea6a957f01899adb8f189c6c31b122a6cfc98fc3" +dependencies = [ + "either", + "swc_visit_macros", +] + +[[package]] +name = "swc_visit_macros" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f322730fb82f3930a450ac24de8c98523af7d34ab8cb2f46bcb405839891a99" +dependencies = [ + "Inflector", + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.38", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "terminal_size" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "textwrap" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7b3e525a49ec206798b40326a44121291b530c963cfb01018f63e135bac543d" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tracing" +version = "0.1.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "triomphe" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f" +dependencies = [ + "serde", + "stable_deref_trait", +] + +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-id" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "url" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "uuid" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "xxhash" +version = "0.0.0" +dependencies = [ + "base64 0.21.4", + "xxhash-rust", +] + +[[package]] +name = "xxhash-rust" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b" diff --git a/rust/Cargo.toml b/rust/Cargo.toml new file mode 100644 index 000000000..d3a9a7145 --- /dev/null +++ b/rust/Cargo.toml @@ -0,0 +1,11 @@ +[profile.release] +lto = true + +[workspace] +resolver = "2" +members = [ + "bindings_napi", + "bindings_wasm", + "parse_ast", + "xxhash" +] diff --git a/rust/bindings_napi/Cargo.toml b/rust/bindings_napi/Cargo.toml new file mode 100644 index 000000000..bf55c38d3 --- /dev/null +++ b/rust/bindings_napi/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "bindings_napi" +version = "0.0.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib"] + +[dependencies] +# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix +napi = { version = "2.13.3", default-features = false, features = ["napi4"] } +napi-derive = "2.13.0" +parse_ast = { path = "../parse_ast" } +xxhash = { path = "../xxhash" } + +[target.'cfg(not(target_os = "linux"))'.dependencies] +mimalloc-rust = { version = "0.2" } + +[target.'cfg(all(target_os = "linux", not(all(target_env = "musl", target_arch = "aarch64"))))'.dependencies] +mimalloc-rust = { version = "0.2", features = ["local-dynamic-tls"] } + +[build-dependencies] +napi-build = "2.0.1" diff --git a/rust/bindings_napi/build.rs b/rust/bindings_napi/build.rs new file mode 100644 index 000000000..1f866b6a3 --- /dev/null +++ b/rust/bindings_napi/build.rs @@ -0,0 +1,5 @@ +extern crate napi_build; + +fn main() { + napi_build::setup(); +} diff --git a/rust/bindings_napi/src/lib.rs b/rust/bindings_napi/src/lib.rs new file mode 100644 index 000000000..ce372cdac --- /dev/null +++ b/rust/bindings_napi/src/lib.rs @@ -0,0 +1,20 @@ +use napi::bindgen_prelude::*; +use napi_derive::napi; +use parse_ast::parse_ast; + +#[cfg(all( + not(all(target_os = "linux", target_env = "musl", target_arch = "aarch64")), + not(debug_assertions) +))] +#[global_allocator] +static ALLOC: mimalloc_rust::GlobalMiMalloc = mimalloc_rust::GlobalMiMalloc; + +#[napi] +pub fn parse(code: String, allow_return_outside_function: bool) -> Buffer { + parse_ast(code, allow_return_outside_function).into() +} + +#[napi] +pub fn xxhash_base64_url(input: Uint8Array) -> String { + xxhash::xxhash_base64_url(&input) +} diff --git a/rust/bindings_wasm/Cargo.toml b/rust/bindings_wasm/Cargo.toml new file mode 100644 index 000000000..8a9ea1255 --- /dev/null +++ b/rust/bindings_wasm/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "bindings_wasm" +version = "0.0.0" +edition = "2021" + +[dependencies] +wasm-bindgen = "0.2.87" +parse_ast = { path = "../parse_ast" } +xxhash = { path = "../xxhash" } +js-sys = "0.3.64" +getrandom = { version = "0.2.10", features = ["js"] } + +[lib] +crate-type = ["cdylib", "rlib"] diff --git a/rust/bindings_wasm/src/lib.rs b/rust/bindings_wasm/src/lib.rs new file mode 100644 index 000000000..d84eb52ff --- /dev/null +++ b/rust/bindings_wasm/src/lib.rs @@ -0,0 +1,13 @@ +use js_sys::Uint8Array; +use parse_ast::parse_ast; +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +pub fn parse(code: String, allow_return_outside_function: bool) -> Vec { + parse_ast(code, allow_return_outside_function) +} + +#[wasm_bindgen(js_name=xxhashBase64Url)] +pub fn xxhash_base64_url(input: Uint8Array) -> String { + xxhash::xxhash_base64_url(&input.to_vec()) +} diff --git a/rust/parse_ast/Cargo.toml b/rust/parse_ast/Cargo.toml new file mode 100644 index 000000000..6b7914250 --- /dev/null +++ b/rust/parse_ast/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "parse_ast" +version = "0.0.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = "1.0.75" +swc_atoms = "0.6.0" +swc_compiler_base = "0.2.8" +swc_common = { version = "0.33.0", features = ["ahash", "parking_lot"] } +swc_ecma_ast = "0.110.0" +swc_ecma_parser = "0.141.1" +swc_error_reporters = "0.17.0" +parking_lot = "0.12.1" +swc_ecma_lints = "0.89.3" +swc_ecma_transforms_base = "0.134.3" +swc_ecma_visit = "0.96.0" diff --git a/rust/parse_ast/src/convert_ast.rs b/rust/parse_ast/src/convert_ast.rs new file mode 100644 index 000000000..e7d6154cd --- /dev/null +++ b/rust/parse_ast/src/convert_ast.rs @@ -0,0 +1,2 @@ +pub mod annotations; +pub mod converter; diff --git a/rust/parse_ast/src/convert_ast/annotations.rs b/rust/parse_ast/src/convert_ast/annotations.rs new file mode 100644 index 000000000..f5b8b78f4 --- /dev/null +++ b/rust/parse_ast/src/convert_ast/annotations.rs @@ -0,0 +1,135 @@ +use std::cell::RefCell; + +use swc_common::comments::{Comment, Comments}; +use swc_common::BytePos; + +#[derive(Default)] +pub struct SequentialComments { + annotations: RefCell>, +} + +impl SequentialComments { + pub fn add_comment(&self, comment: Comment) { + if comment.text.starts_with('#') && comment.text.contains("sourceMappingURL=") { + self.annotations.borrow_mut().push(AnnotationWithType { + comment, + kind: AnnotationKind::SourceMappingUrl, + }); + return; + } + let mut search_position = comment + .text + .chars() + .nth(0) + .map(|first_char| first_char.len_utf8()) + .unwrap_or(0); + while let Some(Some(match_position)) = comment.text.get(search_position..).map(|s| s.find("__")) + { + search_position += match_position; + // Using a byte reference avoids UTF8 character boundary checks + match &comment.text.as_bytes()[search_position - 1] { + b'@' | b'#' => { + let annotation_slice = &comment.text[search_position..]; + if annotation_slice.starts_with("__PURE__") { + self.annotations.borrow_mut().push(AnnotationWithType { + comment, + kind: AnnotationKind::Pure, + }); + return; + } + if annotation_slice.starts_with("__NO_SIDE_EFFECTS__") { + self.annotations.borrow_mut().push(AnnotationWithType { + comment, + kind: AnnotationKind::NoSideEffects, + }); + return; + } + } + _ => {} + } + search_position += 2; + } + } + + pub fn take_annotations(self) -> Vec { + self.annotations.take() + } +} + +impl Comments for SequentialComments { + fn add_leading(&self, _: BytePos, comment: Comment) { + self.add_comment(comment); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn add_leading_comments(&self, _: BytePos, _: Vec) { + panic!("add_leading_comments"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn has_leading(&self, _: BytePos) -> bool { + panic!("has_leading"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn move_leading(&self, _: BytePos, _: BytePos) { + panic!("move_leading"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn take_leading(&self, _: BytePos) -> Option> { + panic!("take_leading"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn get_leading(&self, _: BytePos) -> Option> { + panic!("get_leading"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn add_trailing(&self, _: BytePos, comment: Comment) { + self.add_comment(comment); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn add_trailing_comments(&self, _: BytePos, _: Vec) { + panic!("add_trailing_comments"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn has_trailing(&self, _: BytePos) -> bool { + panic!("has_trailing"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn move_trailing(&self, _: BytePos, _: BytePos) { + panic!("move_trailing"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn take_trailing(&self, _: BytePos) -> Option> { + panic!("take_trailing"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn get_trailing(&self, _: BytePos) -> Option> { + panic!("get_trailing"); + } + + #[cfg_attr(not(debug_assertions), inline(always))] + fn add_pure_comment(&self, _: BytePos) { + panic!("add_pure_comment"); + } +} + +pub struct AnnotationWithType { + pub comment: Comment, + pub kind: AnnotationKind, +} + +#[derive(Clone, PartialEq, Debug)] +pub enum AnnotationKind { + Pure, + NoSideEffects, + SourceMappingUrl, +} diff --git a/rust/parse_ast/src/convert_ast/converter.rs b/rust/parse_ast/src/convert_ast/converter.rs new file mode 100644 index 000000000..8339c96d6 --- /dev/null +++ b/rust/parse_ast/src/convert_ast/converter.rs @@ -0,0 +1,2742 @@ +use swc_atoms::JsWord; +use swc_common::Span; +use swc_ecma_ast::{ + ArrayLit, ArrayPat, ArrowExpr, AssignExpr, AssignOp, AssignPat, AssignPatProp, AwaitExpr, BigInt, + BinExpr, BinaryOp, BindingIdent, BlockStmt, BlockStmtOrExpr, Bool, BreakStmt, CallExpr, Callee, + CatchClause, Class, ClassDecl, ClassExpr, ClassMember, ClassMethod, ClassProp, ComputedPropName, + CondExpr, Constructor, ContinueStmt, DebuggerStmt, Decl, DefaultDecl, DoWhileStmt, EmptyStmt, + ExportAll, ExportDecl, ExportDefaultDecl, ExportDefaultExpr, ExportNamedSpecifier, + ExportSpecifier, Expr, ExprOrSpread, ExprStmt, FnExpr, ForHead, ForInStmt, ForOfStmt, ForStmt, + Function, GetterProp, Ident, IfStmt, ImportDecl, ImportDefaultSpecifier, ImportNamedSpecifier, + ImportSpecifier, ImportStarAsSpecifier, KeyValuePatProp, KeyValueProp, LabeledStmt, Lit, + MemberExpr, MemberProp, MetaPropExpr, MetaPropKind, MethodKind, MethodProp, ModuleDecl, + ModuleExportName, ModuleItem, NamedExport, NewExpr, Null, Number, ObjectLit, ObjectPat, + ObjectPatProp, OptCall, OptChainBase, OptChainExpr, ParamOrTsParamProp, ParenExpr, Pat, + PatOrExpr, PrivateMethod, PrivateName, PrivateProp, Program, Prop, PropName, PropOrSpread, Regex, + RestPat, ReturnStmt, SeqExpr, SetterProp, SpreadElement, StaticBlock, Stmt, Str, Super, + SuperProp, SuperPropExpr, SwitchCase, SwitchStmt, TaggedTpl, ThisExpr, ThrowStmt, Tpl, + TplElement, TryStmt, UnaryExpr, UnaryOp, UpdateExpr, UpdateOp, VarDecl, VarDeclKind, + VarDeclOrExpr, VarDeclarator, WhileStmt, YieldExpr, +}; + +use crate::convert_ast::annotations::{AnnotationKind, AnnotationWithType}; +use crate::convert_ast::converter::analyze_code::find_first_occurrence_outside_comment; +use crate::convert_ast::converter::node_types::*; +use crate::convert_ast::converter::string_constants::*; +use crate::convert_ast::converter::utf16_positions::{ + ConvertedAnnotation, Utf8ToUtf16ByteIndexConverterAndAnnotationHandler, +}; + +mod analyze_code; +mod string_constants; +mod utf16_positions; + +pub mod node_types; + +pub struct AstConverter<'a> { + buffer: Vec, + code: &'a [u8], + index_converter: Utf8ToUtf16ByteIndexConverterAndAnnotationHandler<'a>, +} + +impl<'a> AstConverter<'a> { + pub fn new(code: &'a str, annotations: &'a Vec) -> Self { + Self { + // This is just a wild guess and should be revisited from time to time + buffer: Vec::with_capacity(20 * code.len()), + code: code.as_bytes(), + index_converter: Utf8ToUtf16ByteIndexConverterAndAnnotationHandler::new(code, annotations), + } + } + + pub fn convert_ast_to_buffer(mut self, node: &Program) -> Vec { + self.convert_program(node); + self.buffer.shrink_to_fit(); + self.buffer + } + + // === helpers + fn add_type_and_positions(&mut self, node_type: &[u8; 4], span: &Span) { + // type + self.buffer.extend_from_slice(node_type); + // start + self + .buffer + .extend_from_slice(&(self.index_converter.convert(span.lo.0 - 1, false)).to_ne_bytes()); + // end + self + .buffer + .extend_from_slice(&(self.index_converter.convert(span.hi.0 - 1, false)).to_ne_bytes()); + } + + fn add_type_and_explicit_start(&mut self, node_type: &[u8; 4], start: u32) -> usize { + // type + self.buffer.extend_from_slice(node_type); + // start + self + .buffer + .extend_from_slice(&(self.index_converter.convert(start, false)).to_ne_bytes()); + // end + let end_position = self.buffer.len(); + self.buffer.resize(end_position + 4, 0); + end_position + } + + fn add_explicit_end(&mut self, end_position: usize, end: u32) { + self.buffer[end_position..end_position + 4] + .copy_from_slice(&(self.index_converter.convert(end, false)).to_ne_bytes()); + } + + fn add_type_and_start(&mut self, node_type: &[u8; 4], span: &Span) -> usize { + self.add_type_and_start_and_handle_annotations(node_type, span, false) + } + + fn add_type_and_start_and_handle_annotations( + &mut self, + node_type: &[u8; 4], + span: &Span, + keep_annotations: bool, + ) -> usize { + // type + self.buffer.extend_from_slice(node_type); + // start + let start = self + .index_converter + .convert(span.lo.0 - 1, keep_annotations); + self.buffer.extend_from_slice(&start.to_ne_bytes()); + // end + let end_position = self.buffer.len(); + self.buffer.resize(end_position + 4, 0); + end_position + } + + fn add_end(&mut self, end_position: usize, span: &Span) { + self.buffer[end_position..end_position + 4] + .copy_from_slice(&(self.index_converter.convert(span.hi.0 - 1, false)).to_ne_bytes()); + } + + fn convert_item_list(&mut self, item_list: &[T], convert_item: F) + where + F: Fn(&mut AstConverter, &T) -> bool, + { + // store number of items in first position + self + .buffer + .extend_from_slice(&(item_list.len() as u32).to_ne_bytes()); + let mut reference_position = self.buffer.len(); + // make room for the reference positions of the items + self + .buffer + .resize(self.buffer.len() + item_list.len() * 4, 0); + for item in item_list { + let insert_position = (self.buffer.len() as u32) >> 2; + if convert_item(self, item) { + self.buffer[reference_position..reference_position + 4] + .copy_from_slice(&insert_position.to_ne_bytes()); + } + reference_position += 4; + } + } + + fn convert_item_list_with_state( + &mut self, + item_list: &[T], + state: &mut S, + convert_item: F, + ) where + F: Fn(&mut AstConverter, &T, &mut S) -> bool, + { + // store number of items in first position + self + .buffer + .extend_from_slice(&(item_list.len() as u32).to_ne_bytes()); + let mut reference_position = self.buffer.len(); + // make room for the reference positions of the items + self + .buffer + .resize(self.buffer.len() + item_list.len() * 4, 0); + for item in item_list { + let insert_position = (self.buffer.len() as u32) >> 2; + if convert_item(self, item, state) { + self.buffer[reference_position..reference_position + 4] + .copy_from_slice(&insert_position.to_ne_bytes()); + } + reference_position += 4; + } + } + + // TODO SWC deduplicate strings and see if we can easily compare atoms + fn convert_string(&mut self, string: &str) { + convert_string(&mut self.buffer, string); + } + + fn convert_boolean(&mut self, boolean: bool) { + self + .buffer + .extend_from_slice(&(if boolean { 1u32 } else { 0u32 }).to_ne_bytes()); + } + + fn reserve_reference_positions(&mut self, item_count: usize) -> usize { + let reference_position = self.buffer.len(); + self + .buffer + .resize(reference_position + (item_count << 2), 0); + reference_position + } + + fn update_reference_position(&mut self, reference_position: usize) { + let insert_position = (self.buffer.len() as u32) >> 2; + self.buffer[reference_position..reference_position + 4] + .copy_from_slice(&insert_position.to_ne_bytes()); + } + + // === enums + fn convert_program(&mut self, node: &Program) { + match node { + Program::Module(module) => { + self.store_program(ModuleItemsOrStatements::ModuleItems(&module.body)); + } + Program::Script(script) => { + self.store_program(ModuleItemsOrStatements::Statements(&script.body)); + } + } + } + + fn convert_module_item(&mut self, module_item: &ModuleItem) { + match module_item { + ModuleItem::Stmt(statement) => self.convert_statement(statement), + ModuleItem::ModuleDecl(module_declaration) => { + self.convert_module_declaration(module_declaration); + } + } + } + + fn convert_statement(&mut self, statement: &Stmt) { + match statement { + Stmt::Break(break_statement) => self.convert_break_statement(break_statement), + Stmt::Block(block_statement) => self.convert_block_statement(block_statement, false), + Stmt::Continue(continue_statement) => self.convert_continue_statement(continue_statement), + Stmt::Decl(declaration) => self.convert_declaration(declaration), + Stmt::Debugger(debugger_statement) => self.convert_debugger_statement(debugger_statement), + Stmt::DoWhile(do_while_statement) => self.convert_do_while_statement(do_while_statement), + Stmt::Empty(empty_statement) => self.convert_empty_statement(empty_statement), + Stmt::Expr(expression_statement) => { + self.convert_expression_statement(expression_statement, None) + } + Stmt::For(for_statement) => self.convert_for_statement(for_statement), + Stmt::ForIn(for_in_statement) => self.convert_for_in_statement(for_in_statement), + Stmt::ForOf(for_of_statement) => self.convert_for_of_statement(for_of_statement), + Stmt::If(if_statement) => self.convert_if_statement(if_statement), + Stmt::Labeled(labeled_statement) => self.convert_labeled_statement(labeled_statement), + Stmt::Return(return_statement) => self.convert_return_statement(return_statement), + Stmt::Switch(switch_statement) => self.convert_switch_statement(switch_statement), + Stmt::Throw(throw_statement) => self.convert_throw_statement(throw_statement), + Stmt::Try(try_statement) => self.convert_try_statement(try_statement), + Stmt::While(while_statement) => self.convert_while_statement(while_statement), + Stmt::With(_) => unimplemented!("Cannot convert Stmt::With"), + } + } + + fn convert_expression(&mut self, expression: &Expr) -> Option<(u32, u32)> { + match expression { + Expr::Array(array_literal) => { + self.convert_array_literal(array_literal); + None + } + Expr::Arrow(arrow_expression) => { + self.convert_arrow_expression(arrow_expression); + None + } + Expr::Assign(assignment_expression) => { + self.convert_assignment_expression(assignment_expression); + None + } + Expr::Await(await_expression) => { + self.convert_await_expression(await_expression); + None + } + Expr::Bin(binary_expression) => { + self.convert_binary_expression(binary_expression); + None + } + Expr::Call(call_expression) => { + self.convert_call_expression(call_expression, false, false); + None + } + Expr::Class(class_expression) => { + self.convert_class_expression(class_expression, &TYPE_CLASS_EXPRESSION); + None + } + Expr::Cond(conditional_expression) => { + self.convert_conditional_expression(conditional_expression); + None + } + Expr::Fn(function_expression) => { + self.convert_function( + &function_expression.function, + &TYPE_FUNCTION_EXPRESSION, + function_expression.ident.as_ref(), + ); + None + } + Expr::Ident(identifier) => { + self.convert_identifier(identifier); + None + } + Expr::Lit(literal) => { + self.convert_literal(literal); + None + } + Expr::Member(member_expression) => { + self.convert_member_expression(member_expression, false, false); + None + } + Expr::MetaProp(meta_property) => { + self.convert_meta_property(meta_property); + None + } + Expr::New(new_expression) => { + self.convert_new_expression(new_expression); + None + } + Expr::Object(object_literal) => { + self.convert_object_literal(object_literal); + None + } + Expr::OptChain(optional_chain_expression) => { + self.convert_optional_chain_expression(optional_chain_expression, false); + None + } + Expr::Paren(parenthesized_expression) => { + Some(self.convert_parenthesized_expression(parenthesized_expression)) + } + Expr::PrivateName(private_name) => { + self.convert_private_name(private_name); + None + } + Expr::Seq(sequence_expression) => { + self.convert_sequence_expression(sequence_expression); + None + } + Expr::SuperProp(super_property) => { + self.convert_super_property(super_property); + None + } + Expr::TaggedTpl(tagged_template_expression) => { + self.convert_tagged_template_expression(tagged_template_expression); + None + } + Expr::This(this_expression) => { + self.convert_this_expression(this_expression); + None + } + Expr::Tpl(template_literal) => { + self.convert_template_literal(template_literal); + None + } + Expr::Unary(unary_expression) => { + self.convert_unary_expression(unary_expression); + None + } + Expr::Update(update_expression) => { + self.convert_update_expression(update_expression); + None + } + Expr::Yield(yield_expression) => { + self.convert_yield_expression(yield_expression); + None + } + Expr::JSXMember(_) => unimplemented!("Cannot convert Expr::JSXMember"), + Expr::JSXNamespacedName(_) => unimplemented!("Cannot convert Expr::JSXNamespacedName"), + Expr::JSXEmpty(_) => unimplemented!("Cannot convert Expr::JSXEmpty"), + Expr::JSXElement(_) => unimplemented!("Cannot convert Expr::JSXElement"), + Expr::JSXFragment(_) => unimplemented!("Cannot convert Expr::JSXFragment"), + Expr::TsTypeAssertion(_) => unimplemented!("Cannot convert Expr::TsTypeAssertion"), + Expr::TsConstAssertion(_) => unimplemented!("Cannot convert Expr::TsConstAssertion"), + Expr::TsNonNull(_) => unimplemented!("Cannot convert Expr::TsNonNull"), + Expr::TsAs(_) => unimplemented!("Cannot convert Expr::TsAs"), + Expr::TsInstantiation(_) => unimplemented!("Cannot convert Expr::TsInstantiation"), + Expr::TsSatisfies(_) => unimplemented!("Cannot convert Expr::TsSatisfies"), + Expr::Invalid(_) => unimplemented!("Cannot convert Expr::Invalid"), + } + } + + fn get_expression_span(&mut self, expression: &Expr) -> Span { + match expression { + Expr::Array(array_literal) => array_literal.span, + Expr::Arrow(arrow_expression) => arrow_expression.span, + Expr::Assign(assignment_expression) => assignment_expression.span, + Expr::Await(await_expression) => await_expression.span, + Expr::Bin(binary_expression) => binary_expression.span, + Expr::Call(call_expression) => call_expression.span, + Expr::Class(class_expression) => class_expression.class.span, + Expr::Cond(conditional_expression) => conditional_expression.span, + Expr::Fn(function_expression) => function_expression.function.span, + Expr::Ident(identifier) => identifier.span, + Expr::Lit(Lit::Str(literal)) => literal.span, + Expr::Lit(Lit::Bool(literal)) => literal.span, + Expr::Lit(Lit::Null(literal)) => literal.span, + Expr::Lit(Lit::Num(literal)) => literal.span, + Expr::Lit(Lit::BigInt(literal)) => literal.span, + Expr::Lit(Lit::Regex(literal)) => literal.span, + Expr::Member(member_expression) => member_expression.span, + Expr::MetaProp(meta_property) => meta_property.span, + Expr::New(new_expression) => new_expression.span, + Expr::Object(object_literal) => object_literal.span, + Expr::OptChain(optional_chain_expression) => optional_chain_expression.span, + Expr::Paren(parenthesized_expression) => parenthesized_expression.span, + Expr::PrivateName(private_name) => private_name.span, + Expr::Seq(sequence_expression) => sequence_expression.span, + Expr::SuperProp(super_property) => super_property.span, + Expr::TaggedTpl(tagged_template_expression) => tagged_template_expression.span, + Expr::This(this_expression) => this_expression.span, + Expr::Tpl(template_literal) => template_literal.span, + Expr::Unary(unary_expression) => unary_expression.span, + Expr::Update(update_expression) => update_expression.span, + Expr::Yield(yield_expression) => yield_expression.span, + Expr::JSXMember(_) => unimplemented!("Cannot convert Expr::JSXMember"), + Expr::JSXNamespacedName(_) => unimplemented!("Cannot convert Expr::JSXNamespacedName"), + Expr::JSXEmpty(_) => unimplemented!("Cannot convert Expr::JSXEmpty"), + Expr::JSXElement(_) => unimplemented!("Cannot convert Expr::JSXElement"), + Expr::JSXFragment(_) => unimplemented!("Cannot convert Expr::JSXFragment"), + Expr::TsTypeAssertion(_) => unimplemented!("Cannot convert Expr::TsTypeAssertion"), + Expr::TsConstAssertion(_) => unimplemented!("Cannot convert Expr::TsConstAssertion"), + Expr::TsNonNull(_) => unimplemented!("Cannot convert Expr::TsNonNull"), + Expr::TsAs(_) => unimplemented!("Cannot convert Expr::TsAs"), + Expr::TsInstantiation(_) => unimplemented!("Cannot convert Expr::TsInstantiation"), + Expr::TsSatisfies(_) => unimplemented!("Cannot convert Expr::TsSatisfies"), + Expr::Invalid(_) => unimplemented!("Cannot convert Expr::Invalid"), + Expr::Lit(Lit::JSXText(_)) => unimplemented!("Cannot convert Lit::JSXText"), + } + } + + fn convert_literal(&mut self, literal: &Lit) { + match literal { + Lit::BigInt(bigint_literal) => self.convert_literal_bigint(bigint_literal), + Lit::Bool(boolean_literal) => { + self.convert_literal_boolean(boolean_literal); + } + Lit::Null(null_literal) => { + self.convert_literal_null(null_literal); + } + Lit::Num(number_literal) => { + self.convert_literal_number(number_literal); + } + Lit::Regex(regex_literal) => { + self.convert_literal_regex(regex_literal); + } + Lit::Str(string_literal) => { + self.convert_literal_string(string_literal); + } + Lit::JSXText(_) => unimplemented!("Lit::JSXText"), + } + } + + fn convert_module_declaration(&mut self, module_declaration: &ModuleDecl) { + match module_declaration { + ModuleDecl::ExportDecl(export_declaration) => { + self.convert_export_declaration(export_declaration) + } + ModuleDecl::ExportNamed(export_named) => self.convert_export_named_declaration(export_named), + ModuleDecl::Import(import_declaration) => self.convert_import_declaration(import_declaration), + ModuleDecl::ExportDefaultExpr(export_default_expression) => { + self.convert_export_default_expression(export_default_expression) + } + ModuleDecl::ExportAll(export_all) => self.convert_export_all(export_all), + ModuleDecl::ExportDefaultDecl(export_default_declaration) => { + self.convert_export_default_declaration(export_default_declaration) + } + ModuleDecl::TsImportEquals(_) => unimplemented!("Cannot convert ModuleDecl::TsImportEquals"), + ModuleDecl::TsExportAssignment(_) => { + unimplemented!("Cannot convert ModuleDecl::TsExportAssignment") + } + ModuleDecl::TsNamespaceExport(_) => { + unimplemented!("Cannot convert ModuleDecl::TsNamespaceExport") + } + } + } + + fn convert_declaration(&mut self, declaration: &Decl) { + match declaration { + Decl::Var(variable_declaration) => self.convert_variable_declaration(variable_declaration), + Decl::Fn(function_declaration) => self.convert_function( + &function_declaration.function, + &TYPE_FUNCTION_DECLARATION, + Some(&function_declaration.ident), + ), + Decl::Class(class_declaration) => self.convert_class_declaration(class_declaration), + Decl::Using(_) => unimplemented!("Cannot convert Decl::Using"), + Decl::TsInterface(_) => unimplemented!("Cannot convert Decl::TsInterface"), + Decl::TsTypeAlias(_) => unimplemented!("Cannot convert Decl::TsTypeAlias"), + Decl::TsEnum(_) => unimplemented!("Cannot convert Decl::TsEnum"), + Decl::TsModule(_) => unimplemented!("Cannot convert Decl::TsModule"), + } + } + + fn convert_pattern(&mut self, pattern: &Pat) -> Option<(u32, u32)> { + match pattern { + Pat::Array(array_pattern) => { + self.convert_array_pattern(array_pattern); + None + } + Pat::Assign(assignment_pattern) => { + self.convert_assignment_pattern(assignment_pattern); + None + } + Pat::Expr(expression) => self.convert_expression(expression), + Pat::Ident(binding_identifier) => { + self.convert_binding_identifier(binding_identifier); + None + } + Pat::Object(object) => { + self.convert_object_pattern(object); + None + } + Pat::Rest(rest_pattern) => { + self.convert_rest_pattern(rest_pattern); + None + } + Pat::Invalid(_) => unimplemented!("Cannot convert invalid pattern"), + } + } + + fn convert_binding_identifier(&mut self, binding_identifier: &BindingIdent) { + self.convert_identifier(&binding_identifier.id); + } + + fn convert_export_specifier(&mut self, export_specifier: &ExportSpecifier) { + match export_specifier { + ExportSpecifier::Named(export_named_specifier) => { + self.convert_export_named_specifier(export_named_specifier) + } + ExportSpecifier::Namespace(_) => unimplemented!("Cannot convert ExportSpecifier::Namespace"), + ExportSpecifier::Default(_) => unimplemented!("Cannot convert ExportSpecifier::Default"), + } + } + + fn convert_module_export_name(&mut self, module_export_name: &ModuleExportName) { + match module_export_name { + ModuleExportName::Ident(identifier) => self.convert_identifier(identifier), + ModuleExportName::Str(string_literal) => self.convert_literal_string(string_literal), + } + } + + fn convert_import_specifier(&mut self, import_specifier: &ImportSpecifier) { + match import_specifier { + ImportSpecifier::Named(import_named_specifier) => { + self.convert_import_named_specifier(import_named_specifier) + } + ImportSpecifier::Default(import_default_specifier) => { + self.convert_import_default_specifier(import_default_specifier) + } + ImportSpecifier::Namespace(import_namespace_specifier) => { + self.convert_import_namespace_specifier(import_namespace_specifier) + } + } + } + + fn convert_object_pattern_property(&mut self, object_pattern_property: &ObjectPatProp) { + match object_pattern_property { + ObjectPatProp::Assign(assignment_pattern_property) => { + self.convert_assignment_pattern_property(assignment_pattern_property) + } + ObjectPatProp::KeyValue(key_value_pattern_property) => { + self.convert_key_value_pattern_property(key_value_pattern_property) + } + ObjectPatProp::Rest(rest_pattern) => self.convert_rest_pattern(rest_pattern), + } + } + + fn convert_class_member(&mut self, class_member: &ClassMember) { + match class_member { + ClassMember::ClassProp(class_property) => self.convert_class_property(class_property), + ClassMember::Constructor(constructor) => self.convert_constructor(constructor), + ClassMember::Method(method) => self.convert_method(method), + ClassMember::PrivateMethod(private_method) => self.convert_private_method(private_method), + ClassMember::PrivateProp(private_property) => self.convert_private_property(private_property), + ClassMember::StaticBlock(static_block) => self.convert_static_block(static_block), + ClassMember::TsIndexSignature(_) => { + unimplemented!("Cannot convert ClassMember::TsIndexSignature") + } + ClassMember::AutoAccessor(_) => unimplemented!("Cannot convert ClassMember::AutoAccessor"), + ClassMember::Empty(_) => {} + } + } + + fn convert_property_or_spread(&mut self, property_or_spread: &PropOrSpread) { + match property_or_spread { + PropOrSpread::Prop(property) => self.convert_property(property), + PropOrSpread::Spread(spread_element) => self.convert_spread_element(spread_element), + } + } + + fn convert_property(&mut self, property: &Prop) { + match property { + Prop::Getter(getter_property) => self.convert_getter_property(getter_property), + Prop::KeyValue(key_value_property) => self.convert_key_value_property(key_value_property), + Prop::Method(method_property) => self.convert_method_property(method_property), + Prop::Setter(setter_property) => self.convert_setter_property(setter_property), + Prop::Shorthand(identifier) => self.convert_shorthand_property(identifier), + Prop::Assign(_) => unimplemented!("Cannot convert Prop::Assign"), + } + } + + fn convert_pattern_or_expression(&mut self, pattern_or_expression: &PatOrExpr) { + match pattern_or_expression { + PatOrExpr::Pat(pattern) => { + self.convert_pattern(pattern); + } + PatOrExpr::Expr(expression) => { + self.convert_expression(expression); + } + } + } + + fn convert_parenthesized_expression( + &mut self, + parenthesized_expression: &ParenExpr, + ) -> (u32, u32) { + let start = self.index_converter.convert( + parenthesized_expression.span.lo.0 - 1, + matches!( + &*parenthesized_expression.expr, + Expr::Call(_) | Expr::New(_) | Expr::Paren(_) + ), + ); + self.convert_expression(&parenthesized_expression.expr); + let end = self + .index_converter + .convert(parenthesized_expression.span.hi.0 - 1, false); + (start, end) + } + + fn convert_optional_chain_base(&mut self, optional_chain_base: &OptChainBase, is_optional: bool) { + match optional_chain_base { + OptChainBase::Member(member_expression) => { + self.convert_member_expression(member_expression, is_optional, true) + } + OptChainBase::Call(optional_call) => { + self.convert_optional_call(optional_call, is_optional, true) + } + } + } + + fn convert_call_expression( + &mut self, + call_expression: &CallExpr, + is_optional: bool, + is_chained: bool, + ) { + match &call_expression.callee { + Callee::Import(_) => { + self.store_import_expression(&call_expression.span, &call_expression.args) + } + Callee::Expr(callee_expression) => self.store_call_expression( + &call_expression.span, + is_optional, + &StoredCallee::Expression(callee_expression), + &call_expression.args, + is_chained, + ), + Callee::Super(callee_super) => self.store_call_expression( + &call_expression.span, + is_optional, + &StoredCallee::Super(callee_super), + &call_expression.args, + is_chained, + ), + } + } + + fn convert_optional_call( + &mut self, + optional_call: &OptCall, + is_optional: bool, + is_chained: bool, + ) { + self.store_call_expression( + &optional_call.span, + is_optional, + &StoredCallee::Expression(&optional_call.callee), + &optional_call.args, + is_chained, + ); + } + + fn convert_export_declaration(&mut self, export_declaration: &ExportDecl) { + self.store_export_named_declaration( + &export_declaration.span, + &[], + None, + Some(&export_declaration.decl), + &None, + ); + } + + fn convert_export_named_declaration(&mut self, export_named_declaration: &NamedExport) { + match export_named_declaration.specifiers.first() { + Some(ExportSpecifier::Namespace(export_namespace_specifier)) => self + .store_export_all_declaration( + &export_named_declaration.span, + export_named_declaration.src.as_ref().unwrap(), + &export_named_declaration.with, + Some(&export_namespace_specifier.name), + ), + None | Some(ExportSpecifier::Named(_)) => self.store_export_named_declaration( + &export_named_declaration.span, + &export_named_declaration.specifiers, + export_named_declaration.src.as_deref(), + None, + &export_named_declaration.with, + ), + Some(ExportSpecifier::Default(_)) => panic!("Unexpected default export specifier"), + } + } + + fn convert_for_head(&mut self, for_head: &ForHead) { + match for_head { + ForHead::VarDecl(variable_declaration) => { + self.convert_variable_declaration(variable_declaration) + } + ForHead::Pat(pattern) => { + self.convert_pattern(pattern); + } + ForHead::UsingDecl(_) => unimplemented!("Cannot convert ForHead::UsingDecl"), + } + } + + fn convert_variable_declaration_or_expression( + &mut self, + variable_declaration_or_expression: &VarDeclOrExpr, + ) { + match variable_declaration_or_expression { + VarDeclOrExpr::VarDecl(variable_declaration) => { + self.convert_variable_declaration(variable_declaration); + } + VarDeclOrExpr::Expr(expression) => { + self.convert_expression(expression); + } + } + } + + fn convert_export_all(&mut self, export_all: &ExportAll) { + self.store_export_all_declaration(&export_all.span, &export_all.src, &export_all.with, None); + } + + fn convert_identifier(&mut self, identifier: &Ident) { + self.store_identifier( + identifier.span.lo.0 - 1, + identifier.span.hi.0 - 1, + &identifier.sym, + ); + } + + // === nodes + fn store_program(&mut self, body: ModuleItemsOrStatements) { + let end_position = self.add_type_and_explicit_start(&TYPE_PROGRAM, 0u32); + // reserve annotations + let reference_position = self.reserve_reference_positions(1); + // body + let mut keep_checking_directives = true; + match body { + ModuleItemsOrStatements::ModuleItems(module_items) => { + self.convert_item_list_with_state( + module_items, + &mut keep_checking_directives, + |ast_converter, module_item, can_be_directive| { + if *can_be_directive { + if let ModuleItem::Stmt(Stmt::Expr(expression)) = module_item { + if let Expr::Lit(Lit::Str(string)) = &*expression.expr { + ast_converter.convert_expression_statement(expression, Some(&string.value)); + return true; + } + }; + } + *can_be_directive = false; + ast_converter.convert_module_item(module_item); + true + }, + ); + } + ModuleItemsOrStatements::Statements(statements) => { + self.convert_item_list_with_state( + statements, + &mut keep_checking_directives, + |ast_converter, statement, can_be_directive| { + if *can_be_directive { + if let Stmt::Expr(expression) = statement { + if let Expr::Lit(Lit::Str(string)) = &*expression.expr { + ast_converter.convert_expression_statement(expression, Some(&string.value)); + return true; + } + }; + } + *can_be_directive = false; + ast_converter.convert_statement(statement); + true + }, + ); + } + } + // end + self.add_explicit_end(end_position, self.code.len() as u32); + // annotations + self.update_reference_position(reference_position); + self.index_converter.invalidate_collected_annotations(); + let invalid_annotations = self.index_converter.take_invalid_annotations(); + self.convert_item_list(&invalid_annotations, |ast_converter, annotation| { + ast_converter.convert_annotation(annotation); + true + }); + } + + fn convert_expression_statement( + &mut self, + expression_statement: &ExprStmt, + directive: Option<&JsWord>, + ) { + let end_position = + self.add_type_and_start(&TYPE_EXPRESSION_STATEMENT, &expression_statement.span); + // reserve directive + let reference_position = self.reserve_reference_positions(1); + // expression + self.convert_expression(&expression_statement.expr); + // directive + if let Some(directive) = directive { + self.update_reference_position(reference_position); + self.convert_string(directive); + } + // end + self.add_end(end_position, &expression_statement.span); + } + + fn store_export_named_declaration( + &mut self, + span: &Span, + specifiers: &[ExportSpecifier], + src: Option<&Str>, + declaration: Option<&Decl>, + with: &Option>, + ) { + let end_position = self.add_type_and_start_and_handle_annotations( + &TYPE_EXPORT_NAMED_DECLARATION, + span, + match declaration { + Some(Decl::Fn(_)) => true, + Some(Decl::Var(variable_declaration)) => variable_declaration.kind == VarDeclKind::Const, + _ => false, + }, + ); + // reserve for declaration, src, attributes + let reference_position = self.reserve_reference_positions(3); + // specifiers + self.convert_item_list(specifiers, |ast_converter, specifier| { + ast_converter.convert_export_specifier(specifier); + true + }); + // declaration + if let Some(declaration) = declaration { + self.update_reference_position(reference_position); + self.convert_declaration(declaration); + } + // src + if let Some(src) = src { + self.update_reference_position(reference_position + 4); + self.convert_literal_string(src); + } + // attributes + self.update_reference_position(reference_position + 8); + self.store_import_attributes(with); + // end + self.add_end(end_position, span); + } + + fn convert_literal_number(&mut self, literal: &Number) { + self.add_type_and_positions(&TYPE_LITERAL_NUMBER, &literal.span); + // reserve for raw + let reference_position = self.reserve_reference_positions(1); + // value, needs to be little endian as we are reading via a DataView + self.buffer.extend_from_slice(&literal.value.to_le_bytes()); + // raw + if let Some(raw) = literal.raw.as_ref() { + self.update_reference_position(reference_position); + self.convert_string(raw); + } + } + + fn convert_literal_string(&mut self, literal: &Str) { + self.add_type_and_positions(&TYPE_LITERAL_STRING, &literal.span); + // reserve for raw + let reference_position = self.reserve_reference_positions(1); + // value + self.convert_string(&literal.value); + // raw + if let Some(raw) = literal.raw.as_ref() { + self.update_reference_position(reference_position); + self.convert_string(raw); + } + } + + fn convert_variable_declaration(&mut self, variable_declaration: &VarDecl) { + let end_position = self.add_type_and_start_and_handle_annotations( + &TYPE_VARIABLE_DECLARATION, + &variable_declaration.span, + matches!(variable_declaration.kind, VarDeclKind::Const), + ); + self + .buffer + .extend_from_slice(match variable_declaration.kind { + VarDeclKind::Var => &STRING_VAR, + VarDeclKind::Let => &STRING_LET, + VarDeclKind::Const => &STRING_CONST, + }); + self.convert_item_list( + &variable_declaration.decls, + |ast_converter, variable_declarator| { + ast_converter.convert_variable_declarator(variable_declarator); + true + }, + ); + // end + self.add_end(end_position, &variable_declaration.span); + } + + fn convert_variable_declarator(&mut self, variable_declarator: &VarDeclarator) { + let end_position = + self.add_type_and_start(&TYPE_VARIABLE_DECLARATOR, &variable_declarator.span); + let forwarded_annotations = match &variable_declarator.init { + Some(expression) => match &**expression { + Expr::Arrow(_) => { + let annotations = self + .index_converter + .take_collected_annotations(AnnotationKind::NoSideEffects); + Some(annotations) + } + _ => None, + }, + None => None, + }; + // reserve for init + let reference_position = self.reserve_reference_positions(1); + // id + self.convert_pattern(&variable_declarator.name); + // init + if let Some(annotations) = forwarded_annotations { + self.index_converter.add_collected_annotations(annotations); + } + if let Some(init) = variable_declarator.init.as_ref() { + self.update_reference_position(reference_position); + self.convert_expression(init); + } + // end + self.add_end(end_position, &variable_declarator.span); + } + + fn store_identifier(&mut self, start: u32, end: u32, name: &str) { + let end_position = self.add_type_and_explicit_start(&TYPE_IDENTIFIER, start); + // name + self.convert_string(name); + // end + self.add_explicit_end(end_position, end); + } + + fn convert_export_named_specifier(&mut self, export_named_specifier: &ExportNamedSpecifier) { + let end_position = + self.add_type_and_start(&TYPE_EXPORT_SPECIFIER, &export_named_specifier.span); + // reserve for exported + let reference_position = self.reserve_reference_positions(1); + // local + self.convert_module_export_name(&export_named_specifier.orig); + // exported + if let Some(exported) = export_named_specifier.exported.as_ref() { + self.update_reference_position(reference_position); + self.convert_module_export_name(exported); + } + // end + self.add_end(end_position, &export_named_specifier.span); + } + + fn convert_import_declaration(&mut self, import_declaration: &ImportDecl) { + let end_position = self.add_type_and_start(&TYPE_IMPORT_DECLARATION, &import_declaration.span); + // reserve for src, attributes + let reference_position = self.reserve_reference_positions(2); + // specifiers + self.convert_item_list( + &import_declaration.specifiers, + |ast_converter, import_specifier| { + ast_converter.convert_import_specifier(import_specifier); + true + }, + ); + // src + self.update_reference_position(reference_position); + self.convert_literal_string(&import_declaration.src); + // attributes + self.update_reference_position(reference_position + 4); + self.store_import_attributes(&import_declaration.with); + // end + self.add_end(end_position, &import_declaration.span); + } + + fn store_import_attributes(&mut self, with: &Option>) { + match with { + Some(ref with) => { + self.convert_item_list(&with.props, |ast_converter, prop| match prop { + PropOrSpread::Prop(prop) => match &**prop { + Prop::KeyValue(key_value_property) => { + ast_converter.convert_import_attribute(key_value_property); + true + } + _ => panic!("Non key-value property in import declaration attributes"), + }, + PropOrSpread::Spread(_) => panic!("Spread in import declaration attributes"), + }); + } + None => self.buffer.resize(self.buffer.len() + 4, 0), + } + } + + fn store_import_expression(&mut self, span: &Span, arguments: &[ExprOrSpread]) { + let end_position = self.add_type_and_start(&TYPE_IMPORT_EXPRESSION, span); + // reserve for options + let reference_position = self.reserve_reference_positions(1); + // source + self.convert_expression(&arguments.first().unwrap().expr); + // options + if let Some(argument) = arguments.get(1) { + self.update_reference_position(reference_position); + self.convert_expression_or_spread(argument); + } + // end + self.add_end(end_position, span); + } + + fn store_call_expression( + &mut self, + span: &Span, + is_optional: bool, + callee: &StoredCallee, + arguments: &[ExprOrSpread], + is_chained: bool, + ) { + let end_position = self.add_type_and_start(&TYPE_CALL_EXPRESSION, span); + let annotations = self + .index_converter + .take_collected_annotations(AnnotationKind::Pure); + // optional + self.convert_boolean(is_optional); + // reserve for callee, arguments + let reference_position = self.reserve_reference_positions(2); + // annotations + self.convert_item_list(&annotations, |ast_converter, annotation| { + ast_converter.convert_annotation(annotation); + true + }); + // callee + self.update_reference_position(reference_position); + match callee { + StoredCallee::Expression(Expr::OptChain(optional_chain_expression)) => { + self.convert_optional_chain_expression(optional_chain_expression, is_chained); + } + StoredCallee::Expression(Expr::Call(call_expression)) => { + self.convert_call_expression(call_expression, false, is_chained); + } + StoredCallee::Expression(Expr::Member(member_expression)) => { + self.convert_member_expression(member_expression, false, is_chained); + } + StoredCallee::Expression(callee_expression) => { + self.convert_expression(callee_expression); + } + StoredCallee::Super(callee_super) => self.convert_super(callee_super), + } + // arguments + self.update_reference_position(reference_position + 4); + self.convert_item_list(arguments, |ast_converter, argument| { + ast_converter.convert_expression_or_spread(argument); + true + }); + // end + self.add_end(end_position, span); + } + + fn convert_import_named_specifier(&mut self, import_named_specifier: &ImportNamedSpecifier) { + let end_position = + self.add_type_and_start(&TYPE_IMPORT_SPECIFIER, &import_named_specifier.span); + // reserve for imported, local + let reference_position = self.reserve_reference_positions(2); + // imported + if let Some(imported) = import_named_specifier.imported.as_ref() { + self.update_reference_position(reference_position); + self.convert_module_export_name(imported); + } + // local + self.update_reference_position(reference_position + 4); + self.convert_identifier(&import_named_specifier.local); + // end + self.add_end(end_position, &import_named_specifier.span); + } + + fn convert_arrow_expression(&mut self, arrow_expression: &ArrowExpr) { + let end_position = + self.add_type_and_start(&TYPE_ARROW_FUNCTION_EXPRESSION, &arrow_expression.span); + let annotations = self + .index_converter + .take_collected_annotations(AnnotationKind::NoSideEffects); + // async + self.convert_boolean(arrow_expression.is_async); + // generator + self.convert_boolean(arrow_expression.is_generator); + // expression + self.convert_boolean(match &*arrow_expression.body { + BlockStmtOrExpr::BlockStmt(_) => false, + BlockStmtOrExpr::Expr(_) => true, + }); + // reserve for params, body + let reference_position = self.reserve_reference_positions(2); + // annotations + self.convert_item_list(&annotations, |ast_converter, annotation| { + ast_converter.convert_annotation(annotation); + true + }); + // params + self.update_reference_position(reference_position); + self.convert_item_list(&arrow_expression.params, |ast_converter, param| { + ast_converter.convert_pattern(param); + true + }); + // body + self.update_reference_position(reference_position + 4); + match &*arrow_expression.body { + BlockStmtOrExpr::BlockStmt(block_statement) => { + self.convert_block_statement(block_statement, true) + } + BlockStmtOrExpr::Expr(expression) => { + self.convert_expression(expression); + } + } + // end + self.add_end(end_position, &arrow_expression.span); + } + + fn convert_block_statement(&mut self, block_statement: &BlockStmt, check_directive: bool) { + let end_position = self.add_type_and_start(&TYPE_BLOCK_STATEMENT, &block_statement.span); + // body + let mut keep_checking_directives = check_directive; + self.convert_item_list_with_state( + &block_statement.stmts, + &mut keep_checking_directives, + |ast_converter, statement, can_be_directive| { + if *can_be_directive { + if let Stmt::Expr(expression) = statement { + if let Expr::Lit(Lit::Str(string)) = &*expression.expr { + ast_converter.convert_expression_statement(expression, Some(&string.value)); + return true; + } + } + } + *can_be_directive = false; + ast_converter.convert_statement(statement); + true + }, + ); + // end + self.add_end(end_position, &block_statement.span); + } + + fn convert_expression_or_spread(&mut self, expression_or_spread: &ExprOrSpread) { + match expression_or_spread.spread { + Some(spread_span) => self.store_spread_element(&spread_span, &expression_or_spread.expr), + None => { + self.convert_expression(&expression_or_spread.expr); + } + } + } + + fn convert_spread_element(&mut self, spread_element: &SpreadElement) { + self.store_spread_element(&spread_element.dot3_token, &spread_element.expr); + } + + fn store_spread_element(&mut self, dot_span: &Span, argument: &Expr) { + let end_position = self.add_type_and_start(&TYPE_SPREAD_ELEMENT, dot_span); + // we need to set the end position to that of the expression + let argument_position = self.buffer.len(); + // argument + self.convert_expression(argument); + let expression_end: [u8; 4] = self.buffer[argument_position + 8..argument_position + 12] + .try_into() + .unwrap(); + self.buffer[end_position..end_position + 4].copy_from_slice(&expression_end); + } + + fn store_member_expression( + &mut self, + span: &Span, + is_optional: bool, + object: &ExpressionOrSuper, + property: MemberOrSuperProp, + is_chained: bool, + ) { + let end_position = self.add_type_and_start(&TYPE_MEMBER_EXPRESSION, span); + // optional + self.convert_boolean(is_optional); + // computed + self.convert_boolean(matches!(property, MemberOrSuperProp::Computed(_))); + // reserve property + let reference_position = self.reserve_reference_positions(1); + // object + match object { + ExpressionOrSuper::Expression(Expr::OptChain(optional_chain_expression)) => { + self.convert_optional_chain_expression(optional_chain_expression, is_chained); + } + ExpressionOrSuper::Expression(Expr::Call(call_expression)) => { + self.convert_call_expression(call_expression, false, is_chained); + } + ExpressionOrSuper::Expression(Expr::Member(member_expression)) => { + self.convert_member_expression(member_expression, false, is_chained); + } + ExpressionOrSuper::Expression(expression) => { + self.convert_expression(expression); + } + ExpressionOrSuper::Super(super_token) => self.convert_super(super_token), + } + // property + self.update_reference_position(reference_position); + match property { + MemberOrSuperProp::Identifier(ident) => self.convert_identifier(ident), + MemberOrSuperProp::Computed(computed) => { + self.convert_expression(&computed.expr); + } + MemberOrSuperProp::PrivateName(private_name) => self.convert_private_name(private_name), + } + // end + self.add_end(end_position, span); + } + + fn convert_member_expression( + &mut self, + member_expression: &MemberExpr, + is_optional: bool, + is_chained: bool, + ) { + self.store_member_expression( + &member_expression.span, + is_optional, + &ExpressionOrSuper::Expression(&member_expression.obj), + match &member_expression.prop { + MemberProp::Ident(identifier) => MemberOrSuperProp::Identifier(identifier), + MemberProp::PrivateName(private_name) => MemberOrSuperProp::PrivateName(private_name), + MemberProp::Computed(computed) => MemberOrSuperProp::Computed(computed), + }, + is_chained, + ); + } + + fn convert_private_name(&mut self, private_name: &PrivateName) { + self.add_type_and_positions(&TYPE_PRIVATE_IDENTIFIER, &private_name.span); + // id + self.convert_string(&private_name.id.sym); + } + + fn convert_import_default_specifier( + &mut self, + import_default_specifier: &ImportDefaultSpecifier, + ) { + let end_position = self.add_type_and_start( + &TYPE_IMPORT_DEFAULT_SPECIFIER, + &import_default_specifier.span, + ); + // local + self.convert_identifier(&import_default_specifier.local); + // end + self.add_end(end_position, &import_default_specifier.span); + } + + fn convert_literal_boolean(&mut self, literal: &Bool) { + self.add_type_and_positions(&TYPE_LITERAL_BOOLEAN, &literal.span); + // value + self.convert_boolean(literal.value); + } + + fn convert_export_default_expression(&mut self, export_default_expression: &ExportDefaultExpr) { + self.store_export_default_declaration( + &export_default_expression.span, + StoredDefaultExportExpression::Expression(&export_default_expression.expr), + ); + } + + fn convert_export_default_declaration(&mut self, export_default_declaration: &ExportDefaultDecl) { + self.store_export_default_declaration( + &export_default_declaration.span, + match &export_default_declaration.decl { + DefaultDecl::Class(class_expression) => { + StoredDefaultExportExpression::Class(class_expression) + } + DefaultDecl::Fn(function_expression) => { + StoredDefaultExportExpression::Function(function_expression) + } + DefaultDecl::TsInterfaceDecl(_) => { + unimplemented!("Cannot convert ExportDefaultDeclaration with TsInterfaceDecl") + } + }, + ); + } + + fn store_export_default_declaration( + &mut self, + span: &Span, + expression: StoredDefaultExportExpression, + ) { + let end_position = self.add_type_and_start_and_handle_annotations( + &TYPE_EXPORT_DEFAULT_DECLARATION, + span, + matches!( + expression, + StoredDefaultExportExpression::Expression(Expr::Fn(_) | Expr::Arrow(_)) + | StoredDefaultExportExpression::Function(_) + ), + ); + // expression + match expression { + StoredDefaultExportExpression::Expression(expression) => { + self.convert_expression(expression); + } + StoredDefaultExportExpression::Class(class_expression) => { + self.convert_class_expression(class_expression, &TYPE_CLASS_DECLARATION) + } + StoredDefaultExportExpression::Function(function_expression) => self.convert_function( + &function_expression.function, + &TYPE_FUNCTION_DECLARATION, + function_expression.ident.as_ref(), + ), + } + // end + self.add_end(end_position, span); + } + + fn convert_literal_null(&mut self, literal: &Null) { + self.add_type_and_positions(&TYPE_LITERAL_NULL, &literal.span); + } + + fn convert_import_namespace_specifier( + &mut self, + import_namespace_specifier: &ImportStarAsSpecifier, + ) { + let end_position = self.add_type_and_start( + &TYPE_IMPORT_NAMESPACE_SPECIFIER, + &import_namespace_specifier.span, + ); + // local + self.convert_identifier(&import_namespace_specifier.local); + // end + self.add_end(end_position, &import_namespace_specifier.span); + } + + fn store_export_all_declaration( + &mut self, + span: &Span, + source: &Str, + attributes: &Option>, + exported: Option<&ModuleExportName>, + ) { + let end_position = self.add_type_and_start(&TYPE_EXPORT_ALL_DECLARATION, span); + // reserve exported, source, attributes + let reference_position = self.reserve_reference_positions(3); + // exported + if let Some(exported) = exported { + self.update_reference_position(reference_position); + self.convert_module_export_name(exported); + } + // source + self.update_reference_position(reference_position + 4); + self.convert_literal_string(source); + // attributes + self.update_reference_position(reference_position + 8); + self.store_import_attributes(attributes); + // end + self.add_end(end_position, span); + } + + fn convert_binary_expression(&mut self, binary_expression: &BinExpr) { + let end_position = self.add_type_and_start( + match binary_expression.op { + BinaryOp::LogicalOr | BinaryOp::LogicalAnd | BinaryOp::NullishCoalescing => { + &TYPE_LOGICAL_EXPRESSION + } + _ => &TYPE_BINARY_EXPRESSION, + }, + &binary_expression.span, + ); + // operator + self.buffer.extend_from_slice(match binary_expression.op { + BinaryOp::EqEq => &STRING_EQEQ, + BinaryOp::NotEq => &STRING_NOTEQ, + BinaryOp::EqEqEq => &STRING_EQEQEQ, + BinaryOp::NotEqEq => &STRING_NOTEQEQ, + BinaryOp::Lt => &STRING_LT, + BinaryOp::LtEq => &STRING_LTEQ, + BinaryOp::Gt => &STRING_GT, + BinaryOp::GtEq => &STRING_GTEQ, + BinaryOp::LShift => &STRING_LSHIFT, + BinaryOp::RShift => &STRING_RSHIFT, + BinaryOp::ZeroFillRShift => &STRING_ZEROFILLRSHIFT, + BinaryOp::Add => &STRING_ADD, + BinaryOp::Sub => &STRING_SUB, + BinaryOp::Mul => &STRING_MUL, + BinaryOp::Div => &STRING_DIV, + BinaryOp::Mod => &STRING_MOD, + BinaryOp::BitOr => &STRING_BITOR, + BinaryOp::BitXor => &STRING_BITXOR, + BinaryOp::BitAnd => &STRING_BITAND, + BinaryOp::LogicalOr => &STRING_LOGICALOR, + BinaryOp::LogicalAnd => &STRING_LOGICALAND, + BinaryOp::In => &STRING_IN, + BinaryOp::InstanceOf => &STRING_INSTANCEOF, + BinaryOp::Exp => &STRING_EXP, + BinaryOp::NullishCoalescing => &STRING_NULLISHCOALESCING, + }); + // reserve right + let reference_position = self.reserve_reference_positions(1); + // left + self.convert_expression(&binary_expression.left); + // right + self.update_reference_position(reference_position); + self.convert_expression(&binary_expression.right); + // end + self.add_end(end_position, &binary_expression.span); + } + + fn convert_array_pattern(&mut self, array_pattern: &ArrayPat) { + let end_position = self.add_type_and_start(&TYPE_ARRAY_PATTERN, &array_pattern.span); + // elements + self.convert_item_list( + &array_pattern.elems, + |ast_converter, element| match element { + Some(element) => { + ast_converter.convert_pattern(element); + true + } + None => false, + }, + ); + // end + self.add_end(end_position, &array_pattern.span); + } + + fn convert_object_pattern(&mut self, object_pattern: &ObjectPat) { + let end_position = self.add_type_and_start(&TYPE_OBJECT_PATTERN, &object_pattern.span); + // properties + self.convert_item_list( + &object_pattern.props, + |ast_converter, object_pattern_property| { + ast_converter.convert_object_pattern_property(object_pattern_property); + true + }, + ); + // end + self.add_end(end_position, &object_pattern.span); + } + + fn convert_array_literal(&mut self, array_literal: &ArrayLit) { + let end_position = self.add_type_and_start(&TYPE_ARRAY_EXPRESSION, &array_literal.span); + // elements + self.convert_item_list( + &array_literal.elems, + |ast_converter, element| match element { + Some(element) => { + ast_converter.convert_expression_or_spread(element); + true + } + None => false, + }, + ); + // end + self.add_end(end_position, &array_literal.span); + } + + fn convert_conditional_expression(&mut self, conditional_expression: &CondExpr) { + let end_position = + self.add_type_and_start(&TYPE_CONDITIONAL_EXPRESSION, &conditional_expression.span); + // reserve consequent, alternate + let reference_position = self.reserve_reference_positions(2); + // test + self.convert_expression(&conditional_expression.test); + // consequent + self.update_reference_position(reference_position); + self.convert_expression(&conditional_expression.cons); + // alternate + self.update_reference_position(reference_position + 4); + self.convert_expression(&conditional_expression.alt); + // end + self.add_end(end_position, &conditional_expression.span); + } + + fn convert_function( + &mut self, + function: &Function, + node_type: &[u8; 4], + identifier: Option<&Ident>, + ) { + let parameters: Vec<&Pat> = function.params.iter().map(|param| ¶m.pat).collect(); + self.store_function_node( + node_type, + function.span.lo.0 - 1, + function.span.hi.0 - 1, + function.is_async, + function.is_generator, + identifier, + ¶meters, + function.body.as_ref().unwrap(), + true, + ); + } + + fn convert_class_expression(&mut self, class_expression: &ClassExpr, node_type: &[u8; 4]) { + self.store_class_node( + node_type, + class_expression.ident.as_ref(), + &class_expression.class, + ); + } + + fn convert_class_declaration(&mut self, class_declaration: &ClassDecl) { + self.store_class_node( + &TYPE_CLASS_DECLARATION, + Some(&class_declaration.ident), + &class_declaration.class, + ); + } + + fn store_class_node(&mut self, node_type: &[u8; 4], identifier: Option<&Ident>, class: &Class) { + let end_position = self.add_type_and_start(node_type, &class.span); + // reserve id, super_class, body + let reference_position = self.reserve_reference_positions(3); + let mut body_start_search = class.span.lo.0 - 1; + // id + if let Some(identifier) = identifier { + self.update_reference_position(reference_position); + self.convert_identifier(identifier); + body_start_search = identifier.span.hi.0 - 1; + } + // super_class + if let Some(super_class) = class.super_class.as_ref() { + self.update_reference_position(reference_position + 4); + self.convert_expression(super_class); + body_start_search = self.get_expression_span(super_class).hi.0 - 1; + } + // body + self.update_reference_position(reference_position + 8); + let class_body_start = + find_first_occurrence_outside_comment(self.code, b'{', body_start_search); + self.convert_class_body(&class.body, class_body_start, class.span.hi.0 - 1); + // end + self.add_end(end_position, &class.span); + } + + fn convert_class_body(&mut self, class_members: &[ClassMember], start: u32, end: u32) { + let end_position = self.add_type_and_explicit_start(&TYPE_CLASS_BODY, start); + let class_members_filtered: Vec<&ClassMember> = class_members + .iter() + .filter(|class_member| !matches!(class_member, ClassMember::Empty(_))) + .collect(); + // body + self.convert_item_list(&class_members_filtered, |ast_converter, class_member| { + ast_converter.convert_class_member(class_member); + true + }); + // end + self.add_explicit_end(end_position, end); + } + + fn convert_return_statement(&mut self, return_statement: &ReturnStmt) { + let end_position = self.add_type_and_start(&TYPE_RETURN_STATEMENT, &return_statement.span); + // reserve argument + let reference_position = self.reserve_reference_positions(1); + // argument + return_statement.arg.as_ref().map(|argument| { + self.update_reference_position(reference_position); + self.convert_expression(argument) + }); + // end + self.add_end(end_position, &return_statement.span); + } + + fn convert_import_attribute(&mut self, key_value_property: &KeyValueProp) { + // type + self.buffer.extend_from_slice(&TYPE_IMPORT_ATTRIBUTE); + // reserve start, end, value + let reference_position = self.reserve_reference_positions(3); + // key + let key_position = self.buffer.len(); + let key_boundaries = self.convert_property_name(&key_value_property.key); + let start_bytes: [u8; 4] = match key_boundaries { + Some((start, _)) => start.to_ne_bytes(), + None => { + let key_start: [u8; 4] = self.buffer[key_position + 4..key_position + 8] + .try_into() + .unwrap(); + key_start + } + }; + self.buffer[reference_position..reference_position + 4].copy_from_slice(&start_bytes); + // value + self.update_reference_position(reference_position + 8); + let value_position = self.buffer.len(); + let value_boundaries = self.convert_expression(&key_value_property.value); + let end_bytes: [u8; 4] = match value_boundaries { + Some((_, end)) => end.to_ne_bytes(), + None => { + let value_end: [u8; 4] = self.buffer[value_position + 8..value_position + 12] + .try_into() + .unwrap(); + value_end + } + }; + self.buffer[reference_position + 4..reference_position + 8].copy_from_slice(&end_bytes); + } + + fn convert_object_literal(&mut self, object_literal: &ObjectLit) { + let end_position = self.add_type_and_start(&TYPE_OBJECT_EXPRESSION, &object_literal.span); + // properties + self.convert_item_list( + &object_literal.props, + |ast_converter, property_or_spread| { + ast_converter.convert_property_or_spread(property_or_spread); + true + }, + ); + // end + self.add_end(end_position, &object_literal.span); + } + + fn convert_property_name(&mut self, property_name: &PropName) -> Option<(u32, u32)> { + match property_name { + PropName::Computed(computed_property_name) => { + self.convert_expression(computed_property_name.expr.as_ref()) + } + PropName::Ident(ident) => { + self.convert_identifier(ident); + None + } + PropName::Str(string) => { + self.convert_literal_string(string); + None + } + PropName::Num(number) => { + self.convert_literal_number(number); + None + } + PropName::BigInt(bigint) => { + self.convert_literal_bigint(bigint); + None + } + } + } + + fn get_property_name_span(&self, property_name: &PropName) -> Span { + match property_name { + PropName::Computed(computed_property_name) => computed_property_name.span, + PropName::Ident(ident) => ident.span, + PropName::Str(string) => string.span, + PropName::Num(number) => number.span, + PropName::BigInt(bigint) => bigint.span, + } + } + + // TODO SWC property has many different formats that should be merged if possible + fn store_key_value_property(&mut self, property_name: &PropName, value: PatternOrExpression) { + let end_position = self.add_type_and_explicit_start( + &TYPE_PROPERTY, + self.get_property_name_span(property_name).lo.0 - 1, + ); + // kind + self.buffer.extend_from_slice(&STRING_INIT); + // method + self.convert_boolean(false); + // computed + self.convert_boolean(matches!(property_name, PropName::Computed(_))); + // shorthand + self.convert_boolean(false); + // reserve key, value + let reference_position = self.reserve_reference_positions(2); + // key + self.update_reference_position(reference_position); + self.convert_property_name(property_name); + // value + self.update_reference_position(reference_position + 4); + let value_position = self.buffer.len(); + let value_boundaries = match value { + PatternOrExpression::Pattern(pattern) => self.convert_pattern(pattern), + PatternOrExpression::Expression(expression) => self.convert_expression(expression), + }; + // end + let end_bytes: [u8; 4] = match value_boundaries { + Some((_, end)) => end.to_ne_bytes(), + None => { + let value_end: [u8; 4] = self.buffer[value_position + 8..value_position + 12] + .try_into() + .unwrap(); + value_end + } + }; + // TODO SWC avoid copying positions around but use span getters instead + self.buffer[end_position..end_position + 4].copy_from_slice(&end_bytes); + } + + fn convert_key_value_property(&mut self, key_value_property: &KeyValueProp) { + self.store_key_value_property( + &key_value_property.key, + PatternOrExpression::Expression(&key_value_property.value), + ); + } + + fn convert_key_value_pattern_property(&mut self, key_value_pattern_property: &KeyValuePatProp) { + self.store_key_value_property( + &key_value_pattern_property.key, + PatternOrExpression::Pattern(&key_value_pattern_property.value), + ); + } + + // TODO SWC merge with method + fn store_getter_setter_property( + &mut self, + span: &Span, + kind: &[u8; 4], + key: &PropName, + body: &Option, + param: Option<&Pat>, + ) { + let end_position = self.add_type_and_start(&TYPE_PROPERTY, span); + // kind + self.buffer.extend_from_slice(kind); + // method + self.convert_boolean(false); + // computed + self.convert_boolean(matches!(key, PropName::Computed(_))); + // shorthand + self.convert_boolean(false); + // reserve key, value + let reference_position = self.reserve_reference_positions(2); + // key + self.update_reference_position(reference_position); + self.convert_property_name(key); + let key_end = self.get_property_name_span(key).hi.0 - 1; + // value + let block_statement = body.as_ref().expect("Getter/setter property without body"); + self.update_reference_position(reference_position + 4); + let parameters = match param { + Some(pattern) => vec![pattern], + None => vec![], + }; + self.store_function_node( + &TYPE_FUNCTION_EXPRESSION, + find_first_occurrence_outside_comment(self.code, b'(', key_end), + block_statement.span.hi.0 - 1, + false, + false, + None, + ¶meters, + block_statement, + false, + ); + // end + self.add_end(end_position, span); + } + + fn convert_getter_property(&mut self, getter_property: &GetterProp) { + self.store_getter_setter_property( + &getter_property.span, + &STRING_GET, + &getter_property.key, + &getter_property.body, + None, + ); + } + + fn convert_setter_property(&mut self, setter_property: &SetterProp) { + self.store_getter_setter_property( + &setter_property.span, + &STRING_SET, + &setter_property.key, + &setter_property.body, + Some(&*setter_property.param), + ); + } + + fn convert_method_property(&mut self, method_property: &MethodProp) { + let end_position = self.add_type_and_start(&TYPE_PROPERTY, &method_property.function.span); + // kind + self.buffer.extend_from_slice(&STRING_INIT); + // method + self.convert_boolean(true); + // computed + self.convert_boolean(matches!(&method_property.key, PropName::Computed(_))); + // shorthand + self.convert_boolean(false); + // reserve key, value + let reference_position = self.reserve_reference_positions(2); + // key + self.update_reference_position(reference_position); + self.convert_property_name(&method_property.key); + let key_end = self.get_property_name_span(&method_property.key).hi.0 - 1; + let function_start = find_first_occurrence_outside_comment(self.code, b'(', key_end); + // value + self.update_reference_position(reference_position + 4); + let function = &method_property.function; + let parameters: Vec<&Pat> = function.params.iter().map(|param| ¶m.pat).collect(); + self.store_function_node( + &TYPE_FUNCTION_EXPRESSION, + function_start, + function.span.hi.0 - 1, + function.is_async, + function.is_generator, + None, + ¶meters, + function.body.as_ref().unwrap(), + false, + ); + // end + self.add_end(end_position, &method_property.function.span); + } + + fn store_shorthand_property( + &mut self, + span: &Span, + key: &Ident, + assignment_value: &Option>, + ) { + let end_position = self.add_type_and_start(&TYPE_PROPERTY, span); + // kind + self.buffer.extend_from_slice(&STRING_INIT); + // method + self.convert_boolean(false); + // computed + self.convert_boolean(false); + // shorthand + self.convert_boolean(true); + // reserve key, value + let reference_position = self.reserve_reference_positions(2); + // value + match assignment_value { + Some(value) => { + // value + self.update_reference_position(reference_position + 4); + let left_position = self.store_assignment_pattern_and_get_left_position( + span, + PatternOrIdentifier::Identifier(key), + value, + ); + // key, reuse identifier to avoid converting positions out of order + self.buffer[reference_position..reference_position + 4] + .copy_from_slice(&left_position.to_ne_bytes()); + } + None => { + // key + self.update_reference_position(reference_position); + self.convert_identifier(key); + } + } + // end + self.add_end(end_position, span); + } + + fn convert_shorthand_property(&mut self, identifier: &Ident) { + self.store_shorthand_property(&identifier.span, identifier, &None); + } + + fn convert_assignment_pattern_property(&mut self, assignment_pattern_property: &AssignPatProp) { + self.store_shorthand_property( + &assignment_pattern_property.span, + &assignment_pattern_property.key, + &assignment_pattern_property.value, + ); + } + + fn convert_assignment_expression(&mut self, assignment_expression: &AssignExpr) { + let end_position = + self.add_type_and_start(&TYPE_ASSIGNMENT_EXPRESSION, &assignment_expression.span); + // operator + self + .buffer + .extend_from_slice(match assignment_expression.op { + AssignOp::Assign => &STRING_ASSIGN, + AssignOp::AddAssign => &STRING_ADDASSIGN, + AssignOp::SubAssign => &STRING_SUBASSIGN, + AssignOp::MulAssign => &STRING_MULASSIGN, + AssignOp::DivAssign => &STRING_DIVASSIGN, + AssignOp::ModAssign => &STRING_MODASSIGN, + AssignOp::LShiftAssign => &STRING_LSHIFTASSIGN, + AssignOp::RShiftAssign => &STRING_RSHIFTASSIGN, + AssignOp::ZeroFillRShiftAssign => &STRING_ZEROFILLRSHIFTASSIGN, + AssignOp::BitOrAssign => &STRING_BITORASSIGN, + AssignOp::BitXorAssign => &STRING_BITXORASSIGN, + AssignOp::BitAndAssign => &STRING_BITANDASSIGN, + AssignOp::ExpAssign => &STRING_EXPASSIGN, + AssignOp::AndAssign => &STRING_ANDASSIGN, + AssignOp::OrAssign => &STRING_ORASSIGN, + AssignOp::NullishAssign => &STRING_NULLISHASSIGN, + }); + // reserve right + let reference_position = self.reserve_reference_positions(1); + // left + self.convert_pattern_or_expression(&assignment_expression.left); + // right + self.update_reference_position(reference_position); + self.convert_expression(&assignment_expression.right); + // end + self.add_end(end_position, &assignment_expression.span); + } + + fn convert_new_expression(&mut self, new_expression: &NewExpr) { + let end_position = self.add_type_and_start(&TYPE_NEW_EXPRESSION, &new_expression.span); + let annotations = self + .index_converter + .take_collected_annotations(AnnotationKind::Pure); + // reserve for callee, args + let reference_position = self.reserve_reference_positions(2); + // annotations + self.convert_item_list(&annotations, |ast_converter, annotation| { + ast_converter.convert_annotation(annotation); + true + }); + // callee + self.update_reference_position(reference_position); + self.convert_expression(&new_expression.callee); + // args + if let Some(expressions_or_spread) = &new_expression.args { + self.update_reference_position(reference_position + 4); + self.convert_item_list( + expressions_or_spread, + |ast_converter, expression_or_spread| { + ast_converter.convert_expression_or_spread(expression_or_spread); + true + }, + ); + } + // end + self.add_end(end_position, &new_expression.span); + } + + #[allow(clippy::too_many_arguments)] + fn store_function_node( + &mut self, + node_type: &[u8; 4], + start: u32, + end: u32, + is_async: bool, + is_generator: bool, + identifier: Option<&Ident>, + parameters: &[&Pat], + body: &BlockStmt, + observe_annotations: bool, + ) { + let end_position = self.add_type_and_explicit_start(node_type, start); + // async + self.convert_boolean(is_async); + // generator + self.convert_boolean(is_generator); + // reserve id, params, body + let reference_position = self.reserve_reference_positions(3); + // annotations + if observe_annotations { + let annotations = self + .index_converter + .take_collected_annotations(AnnotationKind::NoSideEffects); + self.convert_item_list(&annotations, |ast_converter, annotation| { + ast_converter.convert_annotation(annotation); + true + }); + } else { + self.buffer.extend_from_slice(&0u32.to_ne_bytes()); + } + // id + if let Some(ident) = identifier { + self.update_reference_position(reference_position); + self.convert_identifier(ident); + } + // params + self.update_reference_position(reference_position + 4); + self.convert_item_list(parameters, |ast_converter, param| { + ast_converter.convert_pattern(param); + true + }); + // body + self.update_reference_position(reference_position + 8); + self.convert_block_statement(body, true); + // end + self.add_explicit_end(end_position, end); + } + + fn convert_throw_statement(&mut self, throw_statement: &ThrowStmt) { + let end_position = self.add_type_and_start(&TYPE_THROW_STATEMENT, &throw_statement.span); + // argument + self.convert_expression(&throw_statement.arg); + // end + self.add_end(end_position, &throw_statement.span); + } + + fn convert_assignment_pattern(&mut self, assignment_pattern: &AssignPat) { + self.store_assignment_pattern_and_get_left_position( + &assignment_pattern.span, + PatternOrIdentifier::Pattern(&assignment_pattern.left), + &assignment_pattern.right, + ); + } + + fn store_assignment_pattern_and_get_left_position( + &mut self, + span: &Span, + left: PatternOrIdentifier, + right: &Expr, + ) -> u32 { + let end_position = self.add_type_and_start(&TYPE_ASSIGNMENT_PATTERN, span); + // reserve right + let reference_position = self.reserve_reference_positions(1); + // left + let left_position = (self.buffer.len() >> 2) as u32; + match left { + PatternOrIdentifier::Pattern(pattern) => { + self.convert_pattern(pattern); + } + PatternOrIdentifier::Identifier(identifier) => self.convert_identifier(identifier), + } + // right + self.update_reference_position(reference_position); + self.convert_expression(right); + // end + self.add_end(end_position, span); + left_position + } + + fn convert_await_expression(&mut self, await_expression: &AwaitExpr) { + let end_position = self.add_type_and_start(&TYPE_AWAIT_EXPRESSION, &await_expression.span); + // argument + self.convert_expression(&await_expression.arg); + // end + self.add_end(end_position, &await_expression.span); + } + + fn convert_labeled_statement(&mut self, labeled_statement: &LabeledStmt) { + let end_position = self.add_type_and_start(&TYPE_LABELED_STATEMENT, &labeled_statement.span); + // reserve body + let reference_position = self.reserve_reference_positions(1); + // label + self.convert_identifier(&labeled_statement.label); + // body + self.update_reference_position(reference_position); + self.convert_statement(&labeled_statement.body); + // end + self.add_end(end_position, &labeled_statement.span); + } + + fn convert_break_statement(&mut self, break_statement: &BreakStmt) { + let end_position = self.add_type_and_start(&TYPE_BREAK_STATEMENT, &break_statement.span); + // reserve label + let reference_position = self.reserve_reference_positions(1); + // label + if let Some(label) = break_statement.label.as_ref() { + self.update_reference_position(reference_position); + self.convert_identifier(label); + } + // end + self.add_end(end_position, &break_statement.span); + } + + fn convert_try_statement(&mut self, try_statement: &TryStmt) { + let end_position = self.add_type_and_start(&TYPE_TRY_STATEMENT, &try_statement.span); + // reserve handler, finalizer + let reference_position = self.reserve_reference_positions(2); + // block + self.convert_block_statement(&try_statement.block, false); + // handler + if let Some(catch_clause) = try_statement.handler.as_ref() { + self.update_reference_position(reference_position); + self.convert_catch_clause(catch_clause); + } + // finalizer + if let Some(block_statement) = try_statement.finalizer.as_ref() { + self.update_reference_position(reference_position + 4); + self.convert_block_statement(block_statement, false); + } + // end + self.add_end(end_position, &try_statement.span); + } + + fn convert_catch_clause(&mut self, catch_clause: &CatchClause) { + let end_position = self.add_type_and_start(&TYPE_CATCH_CLAUSE, &catch_clause.span); + // reserve param, body + let reference_position = self.reserve_reference_positions(2); + // param + if let Some(pattern) = catch_clause.param.as_ref() { + self.update_reference_position(reference_position); + self.convert_pattern(pattern); + } + // body + self.update_reference_position(reference_position + 4); + self.convert_block_statement(&catch_clause.body, false); + // end + self.add_end(end_position, &catch_clause.span); + } + + fn convert_optional_chain_expression( + &mut self, + optional_chain_expression: &OptChainExpr, + is_chained: bool, + ) { + if is_chained { + self.convert_optional_chain_base( + &optional_chain_expression.base, + optional_chain_expression.optional, + ); + } else { + let end_position = + self.add_type_and_start(&TYPE_CHAIN_EXPRESSION, &optional_chain_expression.span); + // expression + self.convert_optional_chain_base( + &optional_chain_expression.base, + optional_chain_expression.optional, + ); + // end + self.add_end(end_position, &optional_chain_expression.span); + } + } + + fn convert_while_statement(&mut self, while_statement: &WhileStmt) { + let end_position = self.add_type_and_start(&TYPE_WHILE_STATEMENT, &while_statement.span); + // reserve body + let reference_position = self.reserve_reference_positions(1); + // test + self.convert_expression(&while_statement.test); + // body + self.update_reference_position(reference_position); + self.convert_statement(&while_statement.body); + // end + self.add_end(end_position, &while_statement.span); + } + + fn convert_continue_statement(&mut self, continue_statement: &ContinueStmt) { + let end_position = self.add_type_and_start(&TYPE_CONTINUE_STATEMENT, &continue_statement.span); + // reserve label + let reference_position = self.reserve_reference_positions(1); + // label + if let Some(label) = continue_statement.label.as_ref() { + self.update_reference_position(reference_position); + self.convert_identifier(label); + } + // end + self.add_end(end_position, &continue_statement.span); + } + + fn convert_do_while_statement(&mut self, do_while_statement: &DoWhileStmt) { + let end_position = self.add_type_and_start(&TYPE_DO_WHILE_STATEMENT, &do_while_statement.span); + // reserve test + let reference_position = self.reserve_reference_positions(1); + // body + self.convert_statement(&do_while_statement.body); + // test + self.update_reference_position(reference_position); + self.convert_expression(&do_while_statement.test); + // end + self.add_end(end_position, &do_while_statement.span); + } + + fn convert_debugger_statement(&mut self, debugger_statement: &DebuggerStmt) { + self.add_type_and_positions(&TYPE_DEBUGGER_STATEMENT, &debugger_statement.span); + } + + fn convert_empty_statement(&mut self, empty_statement: &EmptyStmt) { + self.add_type_and_positions(&TYPE_EMPTY_STATEMENT, &empty_statement.span); + } + + fn convert_for_in_statement(&mut self, for_in_statement: &ForInStmt) { + let end_position = self.add_type_and_start(&TYPE_FOR_IN_STATEMENT, &for_in_statement.span); + // reserve right, body + let reference_position = self.reserve_reference_positions(2); + // left + self.convert_for_head(&for_in_statement.left); + // right + self.update_reference_position(reference_position); + self.convert_expression(&for_in_statement.right); + // body + self.update_reference_position(reference_position + 4); + self.convert_statement(&for_in_statement.body); + // end + self.add_end(end_position, &for_in_statement.span); + } + + fn convert_for_of_statement(&mut self, for_of_statement: &ForOfStmt) { + let end_position = self.add_type_and_start(&TYPE_FOR_OF_STATEMENT, &for_of_statement.span); + // await + self.convert_boolean(for_of_statement.is_await); + // reserve right, body + let reference_position = self.reserve_reference_positions(2); + // left + self.convert_for_head(&for_of_statement.left); + // right + self.update_reference_position(reference_position); + self.convert_expression(&for_of_statement.right); + // body + self.update_reference_position(reference_position + 4); + self.convert_statement(&for_of_statement.body); + // end + self.add_end(end_position, &for_of_statement.span); + } + + fn convert_for_statement(&mut self, for_statement: &ForStmt) { + let end_position = self.add_type_and_start(&TYPE_FOR_STATEMENT, &for_statement.span); + // reserve init, test, update, body + let reference_position = self.reserve_reference_positions(4); + // init + if let Some(init) = for_statement.init.as_ref() { + self.update_reference_position(reference_position); + self.convert_variable_declaration_or_expression(init); + } + // test + if let Some(test) = for_statement.test.as_ref() { + self.update_reference_position(reference_position + 4); + self.convert_expression(test); + } + // update + if let Some(update) = for_statement.update.as_ref() { + self.update_reference_position(reference_position + 8); + self.convert_expression(update); + } + // body + self.update_reference_position(reference_position + 12); + self.convert_statement(&for_statement.body); + // end + self.add_end(end_position, &for_statement.span); + } + + fn convert_if_statement(&mut self, if_statement: &IfStmt) { + let end_position = self.add_type_and_start(&TYPE_IF_STATEMENT, &if_statement.span); + // reserve consequent, alternate + let reference_position = self.reserve_reference_positions(2); + // test + self.convert_expression(&if_statement.test); + // consequent + self.update_reference_position(reference_position); + self.convert_statement(&if_statement.cons); + // alternate + if let Some(alt) = if_statement.alt.as_ref() { + self.update_reference_position(reference_position + 4); + self.convert_statement(alt); + } + // end + self.add_end(end_position, &if_statement.span); + } + + fn convert_literal_regex(&mut self, regex: &Regex) { + self.add_type_and_positions(&TYPE_LITERAL_REGEXP, ®ex.span); + // reserve pattern + let reference_position = self.reserve_reference_positions(1); + // flags + self.convert_string(®ex.flags); + // pattern + self.update_reference_position(reference_position); + self.convert_string(®ex.exp); + } + + fn convert_literal_bigint(&mut self, bigint: &BigInt) { + self.add_type_and_positions(&TYPE_LITERAL_BIGINT, &bigint.span); + // reserve value + let reference_position = self.reserve_reference_positions(1); + // raw + self.convert_string(bigint.raw.as_ref().unwrap()); + // value + self.update_reference_position(reference_position); + self.convert_string(&bigint.value.to_str_radix(10)); + } + + fn convert_meta_property(&mut self, meta_property_expression: &MetaPropExpr) { + let end_position = self.add_type_and_start(&TYPE_META_PROPERTY, &meta_property_expression.span); + // reserve property + let reference_position = self.reserve_reference_positions(1); + match meta_property_expression.kind { + MetaPropKind::ImportMeta => { + // meta + self.store_identifier( + meta_property_expression.span.lo.0 - 1, + meta_property_expression.span.lo.0 + 5, + "import", + ); + // property + self.update_reference_position(reference_position); + self.store_identifier( + meta_property_expression.span.hi.0 - 5, + meta_property_expression.span.hi.0 - 1, + "meta", + ); + } + MetaPropKind::NewTarget => { + // meta + self.store_identifier( + meta_property_expression.span.lo.0 - 1, + meta_property_expression.span.lo.0 + 2, + "new", + ); + // property + self.update_reference_position(reference_position); + self.store_identifier( + meta_property_expression.span.hi.0 - 7, + meta_property_expression.span.hi.0 - 1, + "target", + ); + } + } + // end + self.add_end(end_position, &meta_property_expression.span); + } + + fn convert_constructor(&mut self, constructor: &Constructor) { + let end_position = self.add_type_and_start(&TYPE_METHOD_DEFINITION, &constructor.span); + // kind + self.buffer.extend_from_slice(&STRING_CONSTRUCTOR); + // computed + self.convert_boolean(false); + // static + self.convert_boolean(false); + // reserve value + let reference_position = self.reserve_reference_positions(1); + // key + self.convert_property_name(&constructor.key); + // value + match &constructor.body { + Some(block_statement) => { + self.update_reference_position(reference_position); + let key_end = self.get_property_name_span(&constructor.key).hi.0 - 1; + let function_start = find_first_occurrence_outside_comment(self.code, b'(', key_end); + let parameters: Vec<&Pat> = constructor + .params + .iter() + .map(|param| match param { + ParamOrTsParamProp::Param(param) => ¶m.pat, + ParamOrTsParamProp::TsParamProp(_) => panic!("TsParamProp in constructor"), + }) + .collect(); + self.store_function_node( + &TYPE_FUNCTION_EXPRESSION, + function_start, + block_statement.span.hi.0 - 1, + false, + false, + None, + ¶meters, + block_statement, + false, + ); + } + None => { + panic!("Getter property without body"); + } + } + // end + self.add_end(end_position, &constructor.span); + } + + fn convert_method(&mut self, method: &ClassMethod) { + self.store_method_definition( + &method.span, + &method.kind, + method.is_static, + PropOrPrivateName::PropName(&method.key), + matches!(method.key, PropName::Computed(_)), + &method.function, + ); + } + + fn convert_private_method(&mut self, private_method: &PrivateMethod) { + self.store_method_definition( + &private_method.span, + &private_method.kind, + private_method.is_static, + PropOrPrivateName::PrivateName(&private_method.key), + false, + &private_method.function, + ); + } + + fn store_method_definition( + &mut self, + span: &Span, + kind: &MethodKind, + is_static: bool, + key: PropOrPrivateName, + is_computed: bool, + function: &Function, + ) { + let end_position = self.add_type_and_start(&TYPE_METHOD_DEFINITION, span); + // kind + self.buffer.extend_from_slice(match kind { + MethodKind::Method => &STRING_METHOD, + MethodKind::Getter => &STRING_GET, + MethodKind::Setter => &STRING_SET, + }); + // computed + self.convert_boolean(is_computed); + // static + self.convert_boolean(is_static); + // reserve value + let reference_position = self.reserve_reference_positions(1); + // key + let key_end = match key { + PropOrPrivateName::PropName(prop_name) => { + self.convert_property_name(prop_name); + self.get_property_name_span(prop_name).hi.0 - 1 + } + PropOrPrivateName::PrivateName(private_name) => { + self.convert_private_name(private_name); + private_name.id.span.hi.0 - 1 + } + }; + let function_start = find_first_occurrence_outside_comment(self.code, b'(', key_end); + // value + self.update_reference_position(reference_position); + let parameters: Vec<&Pat> = function.params.iter().map(|param| ¶m.pat).collect(); + self.store_function_node( + &TYPE_FUNCTION_EXPRESSION, + function_start, + function.span.hi.0 - 1, + function.is_async, + function.is_generator, + None, + ¶meters, + function.body.as_ref().unwrap(), + false, + ); + // end + self.add_end(end_position, span); + } + + fn store_property_definition( + &mut self, + span: &Span, + is_computed: bool, + is_static: bool, + key: PropOrPrivateName, + value: &Option<&Expr>, + ) { + let end_position = self.add_type_and_start(&TYPE_PROPERTY_DEFINITION, span); + // computed + self.convert_boolean(is_computed); + // static + self.convert_boolean(is_static); + // reserve value + let reference_position = self.reserve_reference_positions(1); + // key + match key { + PropOrPrivateName::PropName(prop_name) => { + self.convert_property_name(prop_name); + } + PropOrPrivateName::PrivateName(private_name) => self.convert_private_name(private_name), + } + // value + value.map(|expression| { + self.update_reference_position(reference_position); + self.convert_expression(expression); + }); + // end + self.add_end(end_position, span); + } + + fn convert_class_property(&mut self, class_property: &ClassProp) { + self.store_property_definition( + &class_property.span, + matches!(&class_property.key, PropName::Computed(_)), + class_property.is_static, + PropOrPrivateName::PropName(&class_property.key), + &class_property.value.as_deref(), + ); + } + + fn convert_private_property(&mut self, private_property: &PrivateProp) { + self.store_property_definition( + &private_property.span, + false, + private_property.is_static, + PropOrPrivateName::PrivateName(&private_property.key), + &private_property.value.as_deref(), + ); + } + + fn convert_this_expression(&mut self, this_expression: &ThisExpr) { + self.add_type_and_positions(&TYPE_THIS_EXPRESSION, &this_expression.span); + } + + fn convert_static_block(&mut self, static_block: &StaticBlock) { + let end_position = self.add_type_and_start(&TYPE_STATIC_BLOCK, &static_block.span); + // body + self.convert_item_list(&static_block.body.stmts, |ast_converter, statement| { + ast_converter.convert_statement(statement); + true + }); + // end + self.add_end(end_position, &static_block.span); + } + + fn convert_super_property(&mut self, super_property: &SuperPropExpr) { + self.store_member_expression( + &super_property.span, + false, + &ExpressionOrSuper::Super(&super_property.obj), + match &super_property.prop { + SuperProp::Ident(identifier) => MemberOrSuperProp::Identifier(identifier), + SuperProp::Computed(computed_property_name) => { + MemberOrSuperProp::Computed(computed_property_name) + } + }, + false, + ); + } + + fn convert_super(&mut self, super_token: &Super) { + self.add_type_and_positions(&TYPE_SUPER, &super_token.span); + } + + fn convert_rest_pattern(&mut self, rest_pattern: &RestPat) { + let end_position = + self.add_type_and_explicit_start(&TYPE_REST_ELEMENT, rest_pattern.dot3_token.lo.0 - 1); + // argument + self.convert_pattern(&rest_pattern.arg); + // end + self.add_explicit_end(end_position, rest_pattern.span.hi.0 - 1); + } + + fn convert_sequence_expression(&mut self, sequence_expression: &SeqExpr) { + let end_position = + self.add_type_and_start(&TYPE_SEQUENCE_EXPRESSION, &sequence_expression.span); + // expressions + self.convert_item_list(&sequence_expression.exprs, |ast_converter, expression| { + ast_converter.convert_expression(expression); + true + }); + // end + self.add_end(end_position, &sequence_expression.span); + } + + fn convert_switch_statement(&mut self, switch_statement: &SwitchStmt) { + let end_position = self.add_type_and_start(&TYPE_SWITCH_STATEMENT, &switch_statement.span); + // reserve cases + let reference_position = self.reserve_reference_positions(1); + // discriminant + self.convert_expression(&switch_statement.discriminant); + // cases + self.update_reference_position(reference_position); + self.convert_item_list(&switch_statement.cases, |ast_converter, switch_case| { + ast_converter.convert_switch_case(switch_case); + true + }); + // end + self.add_end(end_position, &switch_statement.span); + } + + fn convert_switch_case(&mut self, switch_case: &SwitchCase) { + let end_position = self.add_type_and_start(&TYPE_SWITCH_CASE, &switch_case.span); + // reserve test, consequent + let reference_position = self.reserve_reference_positions(2); + // test + switch_case.test.as_ref().map(|expression| { + self.update_reference_position(reference_position); + self.convert_expression(expression) + }); + // consequent + self.update_reference_position(reference_position + 4); + self.convert_item_list(&switch_case.cons, |ast_converter, statement| { + ast_converter.convert_statement(statement); + true + }); + // end + self.add_end(end_position, &switch_case.span); + } + + fn convert_tagged_template_expression(&mut self, tagged_template: &TaggedTpl) { + let end_position = + self.add_type_and_start(&TYPE_TAGGED_TEMPLATE_EXPRESSION, &tagged_template.span); + // reserve quasi + let reference_position = self.reserve_reference_positions(1); + // tag + self.convert_expression(&tagged_template.tag); + // quasi + self.update_reference_position(reference_position); + self.convert_template_literal(&tagged_template.tpl); + // end + self.add_end(end_position, &tagged_template.span); + } + + fn convert_template_literal(&mut self, template_literal: &Tpl) { + let end_position = self.add_type_and_start(&TYPE_TEMPLATE_LITERAL, &template_literal.span); + // reserve expressions + let reference_position = self.reserve_reference_positions(1); + // quasis, we manually do an item list here + self + .buffer + .extend_from_slice(&(template_literal.quasis.len() as u32).to_ne_bytes()); + let mut next_quasi_position = self.buffer.len(); + // make room for the positions of the quasis + self + .buffer + .resize(self.buffer.len() + template_literal.quasis.len() * 4, 0); + let mut quasis = template_literal.quasis.iter(); + // convert first quasi + let first_quasi = quasis.next().unwrap(); + let insert_position = (self.buffer.len() as u32) >> 2; + self.convert_template_element(first_quasi); + self.buffer[next_quasi_position..next_quasi_position + 4] + .copy_from_slice(&insert_position.to_ne_bytes()); + next_quasi_position += 4; + // now convert expressions, interleaved with quasis + self.update_reference_position(reference_position); + self + .buffer + .extend_from_slice(&(template_literal.exprs.len() as u32).to_ne_bytes()); + let mut next_expression_position = self.buffer.len(); + // make room for the positions of the expressions + self + .buffer + .resize(self.buffer.len() + template_literal.exprs.len() * 4, 0); + for expression in template_literal.exprs.as_slice() { + // convert expression + let insert_position = (self.buffer.len() as u32) >> 2; + self.convert_expression(expression); + self.buffer[next_expression_position..next_expression_position + 4] + .copy_from_slice(&insert_position.to_ne_bytes()); + next_expression_position += 4; + // convert next quasi + let next_quasi = quasis.next().unwrap(); + let insert_position = (self.buffer.len() as u32) >> 2; + self.convert_template_element(next_quasi); + self.buffer[next_quasi_position..next_quasi_position + 4] + .copy_from_slice(&insert_position.to_ne_bytes()); + next_quasi_position += 4; + } + // end + self.add_end(end_position, &template_literal.span); + } + + fn convert_template_element(&mut self, template_element: &TplElement) { + self.add_type_and_positions(&TYPE_TEMPLATE_ELEMENT, &template_element.span); + // tail + self.convert_boolean(template_element.tail); + // reserve cooked + let reference_position = self.reserve_reference_positions(1); + // raw + self.convert_string(&template_element.raw); + // cooked + if let Some(cooked) = template_element.cooked.as_ref() { + self.update_reference_position(reference_position); + self.convert_string(cooked); + } + } + + fn convert_unary_expression(&mut self, unary_expression: &UnaryExpr) { + let end_position = self.add_type_and_start(&TYPE_UNARY_EXPRESSION, &unary_expression.span); + // operator + self.buffer.extend_from_slice(match unary_expression.op { + UnaryOp::Minus => &STRING_MINUS, + UnaryOp::Plus => &STRING_PLUS, + UnaryOp::Bang => &STRING_BANG, + UnaryOp::Tilde => &STRING_TILDE, + UnaryOp::TypeOf => &STRING_TYPEOF, + UnaryOp::Void => &STRING_VOID, + UnaryOp::Delete => &STRING_DELETE, + }); + // argument + self.convert_expression(&unary_expression.arg); + // end + self.add_end(end_position, &unary_expression.span); + } + + fn convert_update_expression(&mut self, update_expression: &UpdateExpr) { + let end_position = self.add_type_and_start(&TYPE_UPDATE_EXPRESSION, &update_expression.span); + // prefix + self.convert_boolean(update_expression.prefix); + // operator + self.buffer.extend_from_slice(match update_expression.op { + UpdateOp::PlusPlus => &STRING_PLUSPLUS, + UpdateOp::MinusMinus => &STRING_MINUSMINUS, + }); + // argument + self.convert_expression(&update_expression.arg); + // end + self.add_end(end_position, &update_expression.span); + } + + fn convert_yield_expression(&mut self, yield_expression: &YieldExpr) { + let end_position = self.add_type_and_start(&TYPE_YIELD_EXPRESSION, &yield_expression.span); + // delegate + self.convert_boolean(yield_expression.delegate); + // reserve argument + let reference_position = self.reserve_reference_positions(1); + // argument + yield_expression.arg.as_ref().map(|expression| { + self.update_reference_position(reference_position); + self.convert_expression(expression) + }); + // end + self.add_end(end_position, &yield_expression.span); + } + + fn convert_annotation(&mut self, annotation: &ConvertedAnnotation) { + // start + self + .buffer + .extend_from_slice(&annotation.start.to_ne_bytes()); + // end + self.buffer.extend_from_slice(&annotation.end.to_ne_bytes()); + // kind + self.buffer.extend_from_slice(match annotation.kind { + AnnotationKind::Pure => &STRING_PURE, + AnnotationKind::NoSideEffects => &STRING_NOSIDEEFFECTS, + AnnotationKind::SourceMappingUrl => &STRING_SOURCEMAP, + }); + } +} + +pub fn convert_string(buffer: &mut Vec, string: &str) { + let length = string.len(); + let additional_length = ((length + 3) & !3) - length; + buffer.extend_from_slice(&(length as u32).to_ne_bytes()); + buffer.extend_from_slice(string.as_bytes()); + buffer.resize(buffer.len() + additional_length, 0); +} + +enum StoredCallee<'a> { + Expression(&'a Expr), + Super(&'a Super), +} + +enum StoredDefaultExportExpression<'a> { + Expression(&'a Expr), + Class(&'a ClassExpr), + Function(&'a FnExpr), +} + +enum PropOrPrivateName<'a> { + PropName(&'a PropName), + PrivateName(&'a PrivateName), +} + +enum ExpressionOrSuper<'a> { + Expression(&'a Expr), + Super(&'a Super), +} + +enum MemberOrSuperProp<'a> { + Identifier(&'a Ident), + PrivateName(&'a PrivateName), + Computed(&'a ComputedPropName), +} + +enum PatternOrIdentifier<'a> { + Pattern(&'a Pat), + Identifier(&'a Ident), +} + +enum PatternOrExpression<'a> { + Pattern(&'a Pat), + Expression(&'a Expr), +} + +enum ModuleItemsOrStatements<'a> { + ModuleItems(&'a Vec), + Statements(&'a Vec), +} diff --git a/rust/parse_ast/src/convert_ast/converter/analyze_code.rs b/rust/parse_ast/src/convert_ast/converter/analyze_code.rs new file mode 100644 index 000000000..d2fb985df --- /dev/null +++ b/rust/parse_ast/src/convert_ast/converter/analyze_code.rs @@ -0,0 +1,40 @@ +pub fn find_first_occurrence_outside_comment(code: &[u8], search_byte: u8, start: u32) -> u32 { + let mut search_pos = start as usize; + let mut comment_type = CommentType::None; + loop { + match comment_type { + CommentType::SingleLine => { + if code[search_pos] == b'\n' { + comment_type = CommentType::None; + } + } + CommentType::MultiLine => { + if code[search_pos] == b'*' && code[search_pos + 1] == b'/' { + comment_type = CommentType::None; + search_pos += 1; + } + } + CommentType::None => { + if code[search_pos] == b'/' && code[search_pos + 1] == b'/' { + comment_type = CommentType::SingleLine; + search_pos += 1; + } else if code[search_pos] == b'/' && code[search_pos + 1] == b'*' { + comment_type = CommentType::MultiLine; + search_pos += 1; + } else if code[search_pos] == search_byte { + return search_pos as u32; + } + } + } + search_pos += 1; + if search_pos >= code.len() { + return code.len().try_into().unwrap(); + } + } +} + +enum CommentType { + SingleLine, + MultiLine, + None, +} diff --git a/rust/parse_ast/src/convert_ast/converter/node_types.rs b/rust/parse_ast/src/convert_ast/converter/node_types.rs new file mode 100644 index 000000000..0a26646ee --- /dev/null +++ b/rust/parse_ast/src/convert_ast/converter/node_types.rs @@ -0,0 +1,78 @@ +// These need to reflect the order in the JavaScript decoder +pub const TYPE_ARRAY_EXPRESSION: [u8; 4] = 0u32.to_ne_bytes(); +pub const TYPE_ARRAY_PATTERN: [u8; 4] = 1u32.to_ne_bytes(); +pub const TYPE_ARROW_FUNCTION_EXPRESSION: [u8; 4] = 2u32.to_ne_bytes(); +pub const TYPE_ASSIGNMENT_EXPRESSION: [u8; 4] = 3u32.to_ne_bytes(); +pub const TYPE_ASSIGNMENT_PATTERN: [u8; 4] = 4u32.to_ne_bytes(); +pub const TYPE_AWAIT_EXPRESSION: [u8; 4] = 5u32.to_ne_bytes(); +pub const TYPE_BINARY_EXPRESSION: [u8; 4] = 6u32.to_ne_bytes(); +pub const TYPE_BLOCK_STATEMENT: [u8; 4] = 7u32.to_ne_bytes(); +pub const TYPE_BREAK_STATEMENT: [u8; 4] = 8u32.to_ne_bytes(); +pub const TYPE_CALL_EXPRESSION: [u8; 4] = 9u32.to_ne_bytes(); +pub const TYPE_CATCH_CLAUSE: [u8; 4] = 10u32.to_ne_bytes(); +pub const TYPE_CHAIN_EXPRESSION: [u8; 4] = 11u32.to_ne_bytes(); +pub const TYPE_CLASS_BODY: [u8; 4] = 12u32.to_ne_bytes(); +pub const TYPE_CLASS_DECLARATION: [u8; 4] = 13u32.to_ne_bytes(); +pub const TYPE_CLASS_EXPRESSION: [u8; 4] = 14u32.to_ne_bytes(); +pub const TYPE_CONDITIONAL_EXPRESSION: [u8; 4] = 15u32.to_ne_bytes(); +pub const TYPE_CONTINUE_STATEMENT: [u8; 4] = 16u32.to_ne_bytes(); +pub const TYPE_DEBUGGER_STATEMENT: [u8; 4] = 17u32.to_ne_bytes(); +pub const TYPE_DO_WHILE_STATEMENT: [u8; 4] = 18u32.to_ne_bytes(); +pub const TYPE_EMPTY_STATEMENT: [u8; 4] = 19u32.to_ne_bytes(); +pub const TYPE_EXPORT_ALL_DECLARATION: [u8; 4] = 20u32.to_ne_bytes(); +pub const TYPE_EXPORT_DEFAULT_DECLARATION: [u8; 4] = 21u32.to_ne_bytes(); +pub const TYPE_EXPORT_NAMED_DECLARATION: [u8; 4] = 22u32.to_ne_bytes(); +pub const TYPE_EXPORT_SPECIFIER: [u8; 4] = 23u32.to_ne_bytes(); +pub const TYPE_EXPRESSION_STATEMENT: [u8; 4] = 24u32.to_ne_bytes(); +pub const TYPE_FOR_IN_STATEMENT: [u8; 4] = 25u32.to_ne_bytes(); +pub const TYPE_FOR_OF_STATEMENT: [u8; 4] = 26u32.to_ne_bytes(); +pub const TYPE_FOR_STATEMENT: [u8; 4] = 27u32.to_ne_bytes(); +pub const TYPE_FUNCTION_DECLARATION: [u8; 4] = 28u32.to_ne_bytes(); +pub const TYPE_FUNCTION_EXPRESSION: [u8; 4] = 29u32.to_ne_bytes(); +pub const TYPE_IDENTIFIER: [u8; 4] = 30u32.to_ne_bytes(); +pub const TYPE_IF_STATEMENT: [u8; 4] = 31u32.to_ne_bytes(); +pub const TYPE_IMPORT_ATTRIBUTE: [u8; 4] = 32u32.to_ne_bytes(); +pub const TYPE_IMPORT_DECLARATION: [u8; 4] = 33u32.to_ne_bytes(); +pub const TYPE_IMPORT_DEFAULT_SPECIFIER: [u8; 4] = 34u32.to_ne_bytes(); +pub const TYPE_IMPORT_EXPRESSION: [u8; 4] = 35u32.to_ne_bytes(); +pub const TYPE_IMPORT_NAMESPACE_SPECIFIER: [u8; 4] = 36u32.to_ne_bytes(); +pub const TYPE_IMPORT_SPECIFIER: [u8; 4] = 37u32.to_ne_bytes(); +pub const TYPE_LABELED_STATEMENT: [u8; 4] = 38u32.to_ne_bytes(); +pub const TYPE_LITERAL_STRING: [u8; 4] = 39u32.to_ne_bytes(); +pub const TYPE_LITERAL_BOOLEAN: [u8; 4] = 40u32.to_ne_bytes(); +pub const TYPE_LITERAL_NUMBER: [u8; 4] = 41u32.to_ne_bytes(); +pub const TYPE_LITERAL_NULL: [u8; 4] = 42u32.to_ne_bytes(); +pub const TYPE_LITERAL_REGEXP: [u8; 4] = 43u32.to_ne_bytes(); +pub const TYPE_LITERAL_BIGINT: [u8; 4] = 44u32.to_ne_bytes(); +pub const TYPE_LOGICAL_EXPRESSION: [u8; 4] = 45u32.to_ne_bytes(); +pub const TYPE_MEMBER_EXPRESSION: [u8; 4] = 46u32.to_ne_bytes(); +pub const TYPE_META_PROPERTY: [u8; 4] = 47u32.to_ne_bytes(); +pub const TYPE_METHOD_DEFINITION: [u8; 4] = 48u32.to_ne_bytes(); +pub const TYPE_NEW_EXPRESSION: [u8; 4] = 49u32.to_ne_bytes(); +pub const TYPE_OBJECT_EXPRESSION: [u8; 4] = 50u32.to_ne_bytes(); +pub const TYPE_OBJECT_PATTERN: [u8; 4] = 51u32.to_ne_bytes(); +pub const TYPE_PRIVATE_IDENTIFIER: [u8; 4] = 52u32.to_ne_bytes(); +pub const TYPE_PROGRAM: [u8; 4] = 53u32.to_ne_bytes(); +pub const TYPE_PROPERTY: [u8; 4] = 54u32.to_ne_bytes(); +pub const TYPE_PROPERTY_DEFINITION: [u8; 4] = 55u32.to_ne_bytes(); +pub const TYPE_REST_ELEMENT: [u8; 4] = 56u32.to_ne_bytes(); +pub const TYPE_RETURN_STATEMENT: [u8; 4] = 57u32.to_ne_bytes(); +pub const TYPE_SEQUENCE_EXPRESSION: [u8; 4] = 58u32.to_ne_bytes(); +pub const TYPE_SPREAD_ELEMENT: [u8; 4] = 59u32.to_ne_bytes(); +pub const TYPE_STATIC_BLOCK: [u8; 4] = 60u32.to_ne_bytes(); +pub const TYPE_SUPER: [u8; 4] = 61u32.to_ne_bytes(); +pub const TYPE_SWITCH_CASE: [u8; 4] = 62u32.to_ne_bytes(); +pub const TYPE_SWITCH_STATEMENT: [u8; 4] = 63u32.to_ne_bytes(); +pub const TYPE_TAGGED_TEMPLATE_EXPRESSION: [u8; 4] = 64u32.to_ne_bytes(); +pub const TYPE_TEMPLATE_ELEMENT: [u8; 4] = 65u32.to_ne_bytes(); +pub const TYPE_TEMPLATE_LITERAL: [u8; 4] = 66u32.to_ne_bytes(); +pub const TYPE_THIS_EXPRESSION: [u8; 4] = 67u32.to_ne_bytes(); +pub const TYPE_THROW_STATEMENT: [u8; 4] = 68u32.to_ne_bytes(); +pub const TYPE_TRY_STATEMENT: [u8; 4] = 69u32.to_ne_bytes(); +pub const TYPE_UNARY_EXPRESSION: [u8; 4] = 70u32.to_ne_bytes(); +pub const TYPE_UPDATE_EXPRESSION: [u8; 4] = 71u32.to_ne_bytes(); +pub const TYPE_VARIABLE_DECLARATION: [u8; 4] = 72u32.to_ne_bytes(); +pub const TYPE_VARIABLE_DECLARATOR: [u8; 4] = 73u32.to_ne_bytes(); +pub const TYPE_WHILE_STATEMENT: [u8; 4] = 74u32.to_ne_bytes(); +pub const TYPE_YIELD_EXPRESSION: [u8; 4] = 75u32.to_ne_bytes(); +pub const TYPE_PARSE_ERROR: [u8; 4] = 76u32.to_ne_bytes(); diff --git a/rust/parse_ast/src/convert_ast/converter/string_constants.rs b/rust/parse_ast/src/convert_ast/converter/string_constants.rs new file mode 100644 index 000000000..5163c0242 --- /dev/null +++ b/rust/parse_ast/src/convert_ast/converter/string_constants.rs @@ -0,0 +1,62 @@ +// These need to correspond to the positions in convert-ast-strings.ts +pub const STRING_VAR: [u8; 4] = 0u32.to_ne_bytes(); // var +pub const STRING_LET: [u8; 4] = 1u32.to_ne_bytes(); // let +pub const STRING_CONST: [u8; 4] = 2u32.to_ne_bytes(); // const +pub const STRING_INIT: [u8; 4] = 3u32.to_ne_bytes(); // init +pub const STRING_GET: [u8; 4] = 4u32.to_ne_bytes(); // get +pub const STRING_SET: [u8; 4] = 5u32.to_ne_bytes(); // set +pub const STRING_CONSTRUCTOR: [u8; 4] = 6u32.to_ne_bytes(); // constructor +pub const STRING_METHOD: [u8; 4] = 7u32.to_ne_bytes(); // method +pub const STRING_MINUS: [u8; 4] = 8u32.to_ne_bytes(); // - +pub const STRING_PLUS: [u8; 4] = 9u32.to_ne_bytes(); // + +pub const STRING_BANG: [u8; 4] = 10u32.to_ne_bytes(); // ! +pub const STRING_TILDE: [u8; 4] = 11u32.to_ne_bytes(); // ~ +pub const STRING_TYPEOF: [u8; 4] = 12u32.to_ne_bytes(); // typeof +pub const STRING_VOID: [u8; 4] = 13u32.to_ne_bytes(); // void +pub const STRING_DELETE: [u8; 4] = 14u32.to_ne_bytes(); // delete +pub const STRING_PLUSPLUS: [u8; 4] = 15u32.to_ne_bytes(); // ++ +pub const STRING_MINUSMINUS: [u8; 4] = 16u32.to_ne_bytes(); // -- +pub const STRING_EQEQ: [u8; 4] = 17u32.to_ne_bytes(); // == +pub const STRING_NOTEQ: [u8; 4] = 18u32.to_ne_bytes(); // != +pub const STRING_EQEQEQ: [u8; 4] = 19u32.to_ne_bytes(); // === +pub const STRING_NOTEQEQ: [u8; 4] = 20u32.to_ne_bytes(); // !== +pub const STRING_LT: [u8; 4] = 21u32.to_ne_bytes(); // < +pub const STRING_LTEQ: [u8; 4] = 22u32.to_ne_bytes(); // <= +pub const STRING_GT: [u8; 4] = 23u32.to_ne_bytes(); // > +pub const STRING_GTEQ: [u8; 4] = 24u32.to_ne_bytes(); // >= +pub const STRING_LSHIFT: [u8; 4] = 25u32.to_ne_bytes(); // << +pub const STRING_RSHIFT: [u8; 4] = 26u32.to_ne_bytes(); // >> +pub const STRING_ZEROFILLRSHIFT: [u8; 4] = 27u32.to_ne_bytes(); // >>> +pub const STRING_ADD: [u8; 4] = 28u32.to_ne_bytes(); // + +pub const STRING_SUB: [u8; 4] = 29u32.to_ne_bytes(); // - +pub const STRING_MUL: [u8; 4] = 30u32.to_ne_bytes(); // * +pub const STRING_DIV: [u8; 4] = 31u32.to_ne_bytes(); // / +pub const STRING_MOD: [u8; 4] = 32u32.to_ne_bytes(); // % +pub const STRING_BITOR: [u8; 4] = 33u32.to_ne_bytes(); // | +pub const STRING_BITXOR: [u8; 4] = 34u32.to_ne_bytes(); // ^ +pub const STRING_BITAND: [u8; 4] = 35u32.to_ne_bytes(); // & +pub const STRING_LOGICALOR: [u8; 4] = 36u32.to_ne_bytes(); // || +pub const STRING_LOGICALAND: [u8; 4] = 37u32.to_ne_bytes(); // && +pub const STRING_IN: [u8; 4] = 38u32.to_ne_bytes(); // in +pub const STRING_INSTANCEOF: [u8; 4] = 39u32.to_ne_bytes(); // instanceof +pub const STRING_EXP: [u8; 4] = 40u32.to_ne_bytes(); // ** +pub const STRING_NULLISHCOALESCING: [u8; 4] = 41u32.to_ne_bytes(); // ?? +pub const STRING_ASSIGN: [u8; 4] = 42u32.to_ne_bytes(); // = +pub const STRING_ADDASSIGN: [u8; 4] = 43u32.to_ne_bytes(); // += +pub const STRING_SUBASSIGN: [u8; 4] = 44u32.to_ne_bytes(); // -= +pub const STRING_MULASSIGN: [u8; 4] = 45u32.to_ne_bytes(); // *= +pub const STRING_DIVASSIGN: [u8; 4] = 46u32.to_ne_bytes(); // /= +pub const STRING_MODASSIGN: [u8; 4] = 47u32.to_ne_bytes(); // %= +pub const STRING_LSHIFTASSIGN: [u8; 4] = 48u32.to_ne_bytes(); // <<= +pub const STRING_RSHIFTASSIGN: [u8; 4] = 49u32.to_ne_bytes(); // >>= +pub const STRING_ZEROFILLRSHIFTASSIGN: [u8; 4] = 50u32.to_ne_bytes(); // ">>>= +pub const STRING_BITORASSIGN: [u8; 4] = 51u32.to_ne_bytes(); // |= +pub const STRING_BITXORASSIGN: [u8; 4] = 52u32.to_ne_bytes(); // ^= +pub const STRING_BITANDASSIGN: [u8; 4] = 53u32.to_ne_bytes(); // &= +pub const STRING_EXPASSIGN: [u8; 4] = 54u32.to_ne_bytes(); // **= +pub const STRING_ANDASSIGN: [u8; 4] = 55u32.to_ne_bytes(); // &&= +pub const STRING_ORASSIGN: [u8; 4] = 56u32.to_ne_bytes(); // ||= +pub const STRING_NULLISHASSIGN: [u8; 4] = 57u32.to_ne_bytes(); // ??= +pub const STRING_PURE: [u8; 4] = 58u32.to_ne_bytes(); // pure +pub const STRING_NOSIDEEFFECTS: [u8; 4] = 59u32.to_ne_bytes(); // noSideEffects +pub const STRING_SOURCEMAP: [u8; 4] = 60u32.to_ne_bytes(); // sourcemap diff --git a/rust/parse_ast/src/convert_ast/converter/utf16_positions.rs b/rust/parse_ast/src/convert_ast/converter/utf16_positions.rs new file mode 100644 index 000000000..e52700aca --- /dev/null +++ b/rust/parse_ast/src/convert_ast/converter/utf16_positions.rs @@ -0,0 +1,140 @@ +use std::slice::Iter; +use std::str::Chars; + +use crate::convert_ast::annotations::{AnnotationKind, AnnotationWithType}; + +pub struct Utf8ToUtf16ByteIndexConverterAndAnnotationHandler<'a> { + current_utf8_index: u32, + current_utf16_index: u32, + character_iterator: Chars<'a>, + next_annotation: Option<&'a AnnotationWithType>, + next_annotation_start: u32, + annotation_iterator: Iter<'a, AnnotationWithType>, + collected_annotations: Vec, + invalid_annotations: Vec, + keep_annotations: bool, +} + +#[derive(Debug)] +pub struct ConvertedAnnotation { + pub start: u32, + pub end: u32, + pub kind: AnnotationKind, +} + +impl<'a> Utf8ToUtf16ByteIndexConverterAndAnnotationHandler<'a> { + pub fn new(code: &'a str, annotations: &'a Vec) -> Self { + let mut annotation_iterator = annotations.iter(); + let current_annotation = annotation_iterator.next(); + Self { + current_utf8_index: 0, + current_utf16_index: 0, + character_iterator: code.chars(), + next_annotation: current_annotation, + next_annotation_start: get_annotation_start(current_annotation), + annotation_iterator, + collected_annotations: Vec::new(), + invalid_annotations: Vec::with_capacity(annotations.len()), + keep_annotations: false, + } + } + + /// Converts the given UTF-8 byte index to a UTF-16 byte index. + /// + /// To be performant, this method assumes that the given index is not smaller + /// than the previous index. Additionally, it handles "annotations" like + /// `@__PURE__` comments in the process. + /// + /// The logic for those comments is as follows: + /// - If the current index is at the start of an annotation, the annotation + /// is collected and the index is advanced to the end of the annotation. + /// - Otherwise, we check if the next character is a white-space character. + /// If not, we invalidate all collected annotations. + /// This is to ensure that we only collect annotations that directly precede + /// an expression and are not e.g. separated by a comma. + /// - If annotations are relevant for an expression, it can "take" the + /// collected annotations by calling `take_collected_annotations`. This + /// clears the internal buffer and returns the collected annotations. + /// - Invalidated annotations are attached to the Program node so that they + /// can all be removed from the source code later. + /// - If an annotation can influence a child that is separated by some + /// non-whitespace from the annotation, `keep_annotations_for_next` will + /// prevent annotations from being invalidated when the next position is + /// converted. + pub fn convert(&mut self, utf8_index: u32, keep_annotations_for_next: bool) -> u32 { + if self.current_utf8_index > utf8_index { + panic!( + "Cannot convert positions backwards: {} < {}", + utf8_index, self.current_utf8_index + ); + } + while self.current_utf8_index < utf8_index { + if self.current_utf8_index == self.next_annotation_start { + let start = self.current_utf16_index; + let (next_annotation_end, next_annotation_kind) = self + .next_annotation + .map(|a| (a.comment.span.hi.0 - 1, a.kind.clone())) + .unwrap(); + while self.current_utf8_index < next_annotation_end { + let character = self.character_iterator.next().unwrap(); + self.current_utf8_index += character.len_utf8() as u32; + self.current_utf16_index += character.len_utf16() as u32; + } + self.collected_annotations.push(ConvertedAnnotation { + start, + end: self.current_utf16_index, + kind: next_annotation_kind, + }); + self.next_annotation = self.annotation_iterator.next(); + self.next_annotation_start = get_annotation_start(self.next_annotation); + } else { + let character = self.character_iterator.next().unwrap(); + if !(self.keep_annotations || self.collected_annotations.is_empty()) { + match character { + ' ' | '\t' | '\r' | '\n' => {} + _ => { + self.invalidate_collected_annotations(); + } + } + } + self.current_utf8_index += character.len_utf8() as u32; + self.current_utf16_index += character.len_utf16() as u32; + } + } + self.keep_annotations = keep_annotations_for_next; + self.current_utf16_index + } + + pub fn take_collected_annotations(&mut self, kind: AnnotationKind) -> Vec { + let mut relevant_annotations = Vec::new(); + for annotation in self.collected_annotations.drain(..) { + if annotation.kind == kind { + relevant_annotations.push(annotation); + } else { + self.invalid_annotations.push(annotation); + } + } + relevant_annotations + } + + pub fn add_collected_annotations(&mut self, annotations: Vec) { + self.collected_annotations.extend(annotations); + self.keep_annotations = true; + } + + pub fn invalidate_collected_annotations(&mut self) { + self + .invalid_annotations + .append(&mut self.collected_annotations); + } + + pub fn take_invalid_annotations(&mut self) -> Vec { + std::mem::take(&mut self.invalid_annotations) + } +} + +fn get_annotation_start(annotation: Option<&AnnotationWithType>) -> u32 { + annotation + .map(|a| a.comment.span.lo.0 - 1) + .unwrap_or(u32::MAX) +} diff --git a/rust/parse_ast/src/error_emit.rs b/rust/parse_ast/src/error_emit.rs new file mode 100644 index 000000000..428c5211f --- /dev/null +++ b/rust/parse_ast/src/error_emit.rs @@ -0,0 +1,129 @@ +use std::{io::Write, mem::take, sync::Arc}; + +use anyhow::Error; +use parking_lot::Mutex; +use swc_common::{ + errors::{DiagnosticBuilder, Emitter, Handler, Level, HANDLER}, + Mark, SourceMap, SyntaxContext, +}; +use swc_ecma_ast::{EsVersion, Program}; +use swc_ecma_lints::{rule::Rule, rules, rules::LintParams}; +use swc_ecma_transforms_base::resolver; +use swc_ecma_visit::VisitMutWith; + +use crate::convert_ast::converter::{convert_string, node_types::TYPE_PARSE_ERROR}; + +#[derive(Clone, Default)] +struct Writer(Arc>>); + +impl Write for Writer { + fn write(&mut self, buf: &[u8]) -> std::io::Result { + let mut lock = self.0.lock(); + + lock.extend_from_slice(buf); + + Ok(buf.len()) + } + fn flush(&mut self) -> std::io::Result<()> { + Ok(()) + } +} + +pub struct ErrorEmitter { + wr: Box, +} + +impl Emitter for ErrorEmitter { + fn emit(&mut self, db: &DiagnosticBuilder<'_>) { + if db.level == Level::Error { + let mut buffer = Vec::new(); + let mut pos: u32 = 0; + if let Some(span) = db.span.primary_span() { + pos = span.lo.0 - 1; + }; + let message = &db.message[0].0; + buffer.extend_from_slice(&pos.to_ne_bytes()); + convert_string(&mut buffer, message); + let _ = self.wr.write(&buffer); + } + } +} + +pub fn try_with_handler( + code: &str, + cm: &Arc, + es_version: EsVersion, + op: F, +) -> Result> +where + F: FnOnce(&Handler) -> Result, +{ + let wr = Box::::default(); + + let emitter = ErrorEmitter { wr: wr.clone() }; + + let handler = Handler::with_emitter(true, false, Box::new(emitter)); + + let result = HANDLER.set(&handler, || op(&handler)); + + match result { + Ok(mut program) => { + let unresolved_mark = Mark::new(); + let top_level_mark = Mark::new(); + let unresolved_ctxt = SyntaxContext::empty().apply_mark(unresolved_mark); + let top_level_ctxt = SyntaxContext::empty().apply_mark(top_level_mark); + + program.visit_mut_with(&mut resolver(unresolved_mark, top_level_mark, false)); + + let mut rules = rules::all(LintParams { + program: &program, + lint_config: &Default::default(), + unresolved_ctxt, + top_level_ctxt, + es_version, + source_map: cm.clone(), + }); + + HANDLER.set(&handler, || match &program { + Program::Module(m) => { + rules.lint_module(m); + } + Program::Script(s) => { + rules.lint_script(s); + } + }); + + if handler.has_errors() { + let buffer = create_error_buffer(&wr, code); + Err(buffer) + } else { + Ok(program) + } + } + Err(_) => { + if handler.has_errors() { + let buffer = create_error_buffer(&wr, code); + Err(buffer) + } else { + panic!("Unexpected error in parse") + } + } + } +} + +fn create_error_buffer(wr: &Writer, code: &str) -> Vec { + let mut buffer = TYPE_PARSE_ERROR.to_vec(); + let mut lock = wr.0.lock(); + let mut error_buffer = take(&mut *lock); + let pos = u32::from_ne_bytes(error_buffer[0..4].try_into().unwrap()); + let mut utf_16_pos: u32 = 0; + for (utf_8_pos, char) in code.char_indices() { + if (utf_8_pos as u32) == pos { + break; + } + utf_16_pos += char.len_utf16() as u32; + } + error_buffer[0..4].copy_from_slice(&utf_16_pos.to_ne_bytes()); + buffer.extend_from_slice(&error_buffer); + buffer +} diff --git a/rust/parse_ast/src/lib.rs b/rust/parse_ast/src/lib.rs new file mode 100644 index 000000000..59bf9caf0 --- /dev/null +++ b/rust/parse_ast/src/lib.rs @@ -0,0 +1,54 @@ +#![feature(ptr_internals)] +use std::sync::Arc; + +use convert_ast::converter::AstConverter; +use swc_common::sync::Lrc; +use swc_common::{FileName, FilePathMapping, Globals, SourceMap, GLOBALS}; +use swc_compiler_base::parse_js; +use swc_compiler_base::IsModule; +use swc_ecma_ast::EsVersion; +use swc_ecma_parser::{EsConfig, Syntax}; + +use crate::convert_ast::annotations::SequentialComments; + +mod convert_ast; + +use error_emit::try_with_handler; + +mod error_emit; + +pub fn parse_ast(code: String, allow_return_outside_function: bool) -> Vec { + let cm = Arc::new(SourceMap::new(FilePathMapping::empty())); + let target = EsVersion::EsNext; + let syntax = Syntax::Es(EsConfig { + allow_return_outside_function, + import_attributes: true, + ..Default::default() + }); + + let filename = FileName::Anon; + let file = cm.new_source_file(filename, code); + let code_reference = Lrc::clone(&file.src); + let comments = SequentialComments::default(); + GLOBALS.set(&Globals::default(), || { + let result = try_with_handler(&code_reference, &cm.clone(), target, |handler| { + parse_js( + cm, + file, + handler, + target, + syntax, + IsModule::Unknown, + Some(&comments), + ) + }); + match result { + Err(buffer) => buffer, + Ok(program) => { + let annotations = comments.take_annotations(); + let converter = AstConverter::new(&code_reference, &annotations); + converter.convert_ast_to_buffer(&program) + } + } + }) +} diff --git a/rust/rust-toolchain.toml b/rust/rust-toolchain.toml new file mode 100644 index 000000000..4e3afc318 --- /dev/null +++ b/rust/rust-toolchain.toml @@ -0,0 +1,5 @@ +[toolchain] +profile = "default" +# Use nightly for better access to the latest Rust features. +# This date is aligned to stable release dates. +channel = "nightly-2023-10-05" \ No newline at end of file diff --git a/rust/rustfmt.toml b/rust/rustfmt.toml new file mode 100644 index 000000000..cab5731ed --- /dev/null +++ b/rust/rustfmt.toml @@ -0,0 +1,2 @@ +tab_spaces = 2 +edition = "2021" diff --git a/rust/xxhash/Cargo.toml b/rust/xxhash/Cargo.toml new file mode 100644 index 000000000..14df1f65e --- /dev/null +++ b/rust/xxhash/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "xxhash" +version = "0.0.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +base64 = '0.21.4' +xxhash-rust = { version = "0.8.7", features = ["xxh3"] } diff --git a/rust/xxhash/src/lib.rs b/rust/xxhash/src/lib.rs new file mode 100644 index 000000000..82f85e8ba --- /dev/null +++ b/rust/xxhash/src/lib.rs @@ -0,0 +1,7 @@ +use base64::{engine::general_purpose, Engine as _}; +use xxhash_rust::xxh3::xxh3_128; + +pub fn xxhash_base64_url(input: &[u8]) -> String { + let hash = xxh3_128(input).to_le_bytes(); + general_purpose::URL_SAFE_NO_PAD.encode(hash) +} diff --git a/scripts/check-release.js b/scripts/check-release.js index 165633c6f..ba767b9f6 100755 --- a/scripts/check-release.js +++ b/scripts/check-release.js @@ -3,5 +3,6 @@ import { env, exit } from 'node:process'; if (env.ROLLUP_RELEASE !== 'releasing') { + console.error('This script should only be run as part of the release process.'); exit(1); } diff --git a/scripts/colors.js b/scripts/colors.js index 6713d2ff9..e584ecefc 100644 --- a/scripts/colors.js +++ b/scripts/colors.js @@ -3,6 +3,6 @@ import { createColors } from 'colorette'; // @see https://no-color.org // @see https://www.npmjs.com/package/chalk -export const { bold, cyan, green, red } = createColors({ +export const { bold, cyan, green, red, yellow, blue, magenta } = createColors({ useColor: env.FORCE_COLOR !== '0' && !env.NO_COLOR }); diff --git a/scripts/helpers.js b/scripts/helpers.js index 94773a83d..df55a90a3 100644 --- a/scripts/helpers.js +++ b/scripts/helpers.js @@ -1,27 +1,35 @@ import { spawn } from 'node:child_process'; -import { bold, cyan, green } from './colors.js'; +import { readFile } from 'node:fs/promises'; +import { blue, bold, cyan, green, magenta, red, yellow } from './colors.js'; + +const colors = [cyan, yellow, blue, red, green, magenta]; +let nextColorIndex = 0; export function runWithEcho(command, parameters, options) { + const color = colors[nextColorIndex]; + nextColorIndex = (nextColorIndex + 1) % colors.length; return new Promise((resolve, reject) => { const cmdString = formatCommand(command, parameters); - console.error(bold(`\n${cyan`Run>`} ${cmdString}`)); - - const childProcess = spawn(command, parameters, options); + console.error(bold(`\n${color`Run>`} ${cmdString}`)); - childProcess.stdout.pipe(process.stdout); - childProcess.stderr.pipe(process.stderr); + const childProcess = spawn(command, parameters, { stdio: 'inherit', ...options }); childProcess.on('close', code => { if (code) { reject(new Error(`"${cmdString}" exited with code ${code}.`)); } else { - console.error(bold(`${green`Finished>`} ${cmdString}\n`)); + console.error(bold(`${color`Finished>`} ${cmdString}\n`)); resolve(); } }); }); } +/** + * @param {string} command + * @param {string[]} parameters + * @return {Promise} + */ export function runAndGetStdout(command, parameters) { return new Promise((resolve, reject) => { const childProcess = spawn(command, parameters); @@ -43,3 +51,12 @@ export function runAndGetStdout(command, parameters) { function formatCommand(command, parameters) { return [command, ...parameters].join(' '); } + +/** + * @param {string} file + * @returns {Promise>} + */ +export async function readJson(file) { + const content = await readFile(file, 'utf8'); + return JSON.parse(content); +} diff --git a/scripts/lint-native-js.js b/scripts/lint-native-js.js new file mode 100644 index 000000000..87936a901 --- /dev/null +++ b/scripts/lint-native-js.js @@ -0,0 +1,29 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import url from 'node:url'; + +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); +const NATIVE_JS_PATH = path.resolve(__dirname, '../native.js'); +const NATIVE_WASM_JS_PATH = path.resolve(__dirname, '../native.wasm.js'); + +const [nativeJsContent, nativeWasmJsContent] = await Promise.all([ + fs.readFile(NATIVE_JS_PATH, 'utf8'), + fs.readFile(NATIVE_WASM_JS_PATH, 'utf8') +]); + +const nativeJsExportsMatches = nativeJsContent.matchAll(/exports\.(\w+)\s*=/g); +const notFoundExports = []; +for (const match of nativeJsExportsMatches) { + const exportName = match[1]; + if (!nativeWasmJsContent.includes(`exports.${exportName}`)) { + notFoundExports.push(exportName); + } +} + +if (notFoundExports.length > 0) { + throw new Error( + `${JSON.stringify( + notFoundExports.join(',') + )} was exported from native.js but not exported from native.wasm.js.` + ); +} diff --git a/scripts/postpublish.js b/scripts/postpublish.js new file mode 100644 index 000000000..572ac69ef --- /dev/null +++ b/scripts/postpublish.js @@ -0,0 +1,95 @@ +import { readFile } from 'node:fs/promises'; +import { env } from 'node:process'; +import GitHub from 'github-api'; +import semverPreRelease from 'semver/functions/prerelease.js'; +import { cyan } from './colors.js'; +import { CHANGELOG } from './release-constants.js'; +import { + getCurrentCommitMessage, + getFirstChangelogEntry, + getGitTag, + getIncludedPRs +} from './release-helpers.js'; + +console.log( + `------------------------------------------------------------------------------- +This script will create the release in GitHub and post comments to all released +PRs and resolved issues. It is only run from CI. +-------------------------------------------------------------------------------` +); + +if (!(env.CI && env.ROLLUP_RELEASE && env.GITHUB_TOKEN)) { + throw new Error('This script is only intended to be run from CI.'); +} + +const gh = new GitHub({ token: env.GITHUB_TOKEN }); +const [newVersion, changelog, repo, issues] = await Promise.all([ + getCurrentCommitMessage(), + readFile(CHANGELOG, 'utf8'), + gh.getRepo('rollup', 'rollup'), + gh.getIssues('rollup', 'rollup') +]); + +const matched = /^\d+\.\d+\.\d+(-\d+)?$/.exec(newVersion); +if (!matched) { + throw new Error(`The last commit message "${newVersion}" does not contain a version.`); +} + +const isPreRelease = !!matched[1]; + +const firstEntry = getFirstChangelogEntry(changelog); +const [previousVersion, changelogEntry] = + firstEntry.currentVersion === newVersion + ? [firstEntry.previousVersion, firstEntry.text] + : [firstEntry.currentVersion, null]; +const includedPRs = await getIncludedPRs( + `v${previousVersion}`, + `v${newVersion}`, + repo, + null, + isPreRelease +); + +if (changelogEntry) { + await createReleaseNotes(changelogEntry, getGitTag(newVersion)); +} +await postReleaseComments(includedPRs, issues, newVersion); + +function createReleaseNotes(changelog, tag) { + return repo.createRelease({ + body: changelog, + name: tag, + tag_name: tag + }); +} + +async function postReleaseComments(includedPRs, issues, version) { + const installNote = semverPreRelease(version) + ? `Note that this is a pre-release, so to test it, you need to install Rollup via \`npm install rollup@${version}\` or \`npm install rollup@beta\`. It will likely become part of a regular release later.` + : 'You can test it via `npm install rollup`.'; + + let caughtError = null; + const addComment = (issueNumber, comment) => + // Add a small timeout to avoid rate limiting issues + new Promise(resolve => setTimeout(resolve, 500)).then(() => + issues + .createIssueComment(issueNumber, `${comment} as part of rollup@${version}. ${installNote}`) + .catch(error => { + console.error(error); + caughtError ||= error; + }) + ); + + for (const { pr, closed } of includedPRs) { + await addComment(pr, 'This PR has been released'); + console.log(cyan(`Added release comment to #${pr}.`)); + + for (const closedIssue of closed) { + await addComment(closedIssue, `This issue has been resolved via #${pr}`); + console.log(cyan(`Added fix comment to #${closedIssue} via #${pr}.`)); + } + } + if (caughtError) { + throw caughtError; + } +} diff --git a/scripts/prepare-release.js b/scripts/prepare-release.js new file mode 100755 index 000000000..eebfaee32 --- /dev/null +++ b/scripts/prepare-release.js @@ -0,0 +1,236 @@ +#!/usr/bin/env node + +import { readFile, writeFile } from 'node:fs/promises'; +import { chdir, exit } from 'node:process'; +import { fileURLToPath } from 'node:url'; +import inquirer from 'inquirer'; +import semverInc from 'semver/functions/inc.js'; +import semverParse from 'semver/functions/parse.js'; +import semverPreRelease from 'semver/functions/prerelease.js'; +import { cyan } from './colors.js'; +import { readJson, runAndGetStdout, runWithEcho } from './helpers.js'; +import { + BROWSER_PACKAGE, + CHANGELOG, + DOCUMENTATION_BRANCH, + MAIN_BRANCH, + MAIN_LOCKFILE, + MAIN_PACKAGE +} from './release-constants.js'; +import { + getFirstChangelogEntry, + getGithubApi, + getGitTag, + getIncludedPRs +} from './release-helpers.js'; + +console.log( + `----------------------------------------------------------------------------- +This script will create a release tag for you and guide you through writing a +CHANGELOG entry for non-beta releases. The actual release will be performed +by GitHub Actions once this script completes successfully. +-----------------------------------------------------------------------------` +); + +// We execute everything from the main directory +chdir(fileURLToPath(new URL('..', import.meta.url))); + +const [gh, currentBranch] = await Promise.all([ + getGithubApi(), + runAndGetStdout('git', ['branch', '--show-current']), + runWithEcho('git', ['pull', '--ff-only']) +]); +const [mainPackage, mainLockFile, browserPackage, repo, changelog] = await Promise.all([ + readJson(MAIN_PACKAGE), + readJson(MAIN_LOCKFILE), + readJson(BROWSER_PACKAGE), + gh.getRepo('rollup', 'rollup'), + readFile(CHANGELOG, 'utf8') +]); +const isMainBranch = currentBranch === MAIN_BRANCH; +const [newVersion, includedPRs] = await Promise.all([ + getNewVersion(mainPackage, isMainBranch), + getIncludedPRs( + `v${getFirstChangelogEntry(changelog).currentVersion}`, + 'HEAD', + repo, + currentBranch, + !isMainBranch + ) +]); + +const gitTag = getGitTag(newVersion); +try { + if (isMainBranch) { + await addStubChangelogEntry(newVersion, repo, changelog, includedPRs); + } + await updatePackages(mainPackage, mainLockFile, browserPackage, newVersion); + await installDependenciesAndLint(); + if (isMainBranch) { + await waitForChangelogUpdate(newVersion); + } + await commitChanges(newVersion, gitTag, isMainBranch); +} catch (error) { + console.error(`Error during release, rolling back changes: ${error.message}`); + console.error('Run `git reset --hard` to roll back changes.'); + throw error; +} + +await pushChanges(gitTag); + +async function getNewVersion(mainPackage, isMainBranch) { + const { version } = mainPackage; + const availableIncrements = isMainBranch + ? ['patch', 'minor'] + : semverPreRelease(version) + ? ['prerelease'] + : ['premajor', 'preminor', 'prepatch']; + + const { newVersion } = await inquirer.prompt([ + { + choices: availableIncrements.map(increment => { + const value = semverInc(version, increment); + return { + name: `${increment} (${value})`, + short: increment, + value + }; + }), + message: `Select type of release (currently "${version}" on branch "${currentBranch}"):`, + name: 'newVersion', + type: 'list' + } + ]); + return newVersion; +} + +async function addStubChangelogEntry(version, repo, changelog, includedPRs) { + const { currentVersion, index } = getFirstChangelogEntry(changelog); + if (currentVersion === version) { + console.error( + `Changelog entry for version "${version}" already exists. Please remove the entry and commit the change before trying again.` + ); + exit(1); + } + + await writeFile( + CHANGELOG, + changelog.slice(0, index) + + getNewLogEntry(version, includedPRs) + + '\n\n' + + changelog.slice(index) + ); + + console.log( + cyan(`A stub for the release notes was added to the beginning of "${CHANGELOG}". +Please edit this file to add useful information about bug fixes, features and +breaking changes in the release while the tests are running.`) + ); +} + +function getNewLogEntry(version, prs) { + if (prs.length === 0) { + throw new Error(`Release does not contain any PRs`); + } + const firstPr = prs[0].pr; + const date = new Date().toISOString().slice(0, 10); + const { minor, patch } = semverParse(version); + let sections = getDummyLogSection('Bug Fixes', firstPr); + if (patch === 0) { + sections = getDummyLogSection('Features', firstPr) + sections; + if (minor === 0) { + sections = getDummyLogSection('Breaking Changes', firstPr) + sections; + } + } + return `## ${version} + +_${date}_ + +${sections}### Pull Requests + +${prs + .map( + ({ text, pr, author }) => + `- [#${pr}](https://github.com/rollup/rollup/pull/${pr}): ${text} (@${author})` + ) + .join('\n')}`; +} + +function getDummyLogSection(headline, pr) { + return `### ${headline} + +- [replace me] (#${pr}) + +`; +} + +async function installDependenciesAndLint() { + await Promise.all([ + runWithEcho('npm', ['ci', '--ignore-scripts']), + runWithEcho('npm', ['audit']) + ]); + await runWithEcho('npm', ['run', 'ci:lint']); +} + +async function waitForChangelogUpdate(version) { + let changelogEntry = ''; + while (true) { + await runWithEcho('npx', ['prettier', '--write', CHANGELOG]); + const changelog = await readFile(CHANGELOG, 'utf8'); + const { text: newEntry } = getFirstChangelogEntry(changelog); + if (newEntry === changelogEntry) { + console.log(cyan('No further changes, continuing release.')); + break; + } + changelogEntry = newEntry; + console.log(cyan('You generated the following changelog entry:\n') + changelogEntry); + await inquirer.prompt([ + { + choices: ['ok'], + message: `Please edit the changelog or confirm the changelog is acceptable to continue to release "${version}".`, + name: 'ok', + type: 'list' + } + ]); + } +} + +function updatePackages(mainPackage, mainLockFile, browserPackage, newVersion) { + return Promise.all([ + writeFile(MAIN_PACKAGE, updatePackageVersionAndGetString(mainPackage, newVersion)), + writeFile(MAIN_LOCKFILE, updateLockFileVersionAndGetString(mainLockFile, newVersion)), + writeFile(BROWSER_PACKAGE, updatePackageVersionAndGetString(browserPackage, newVersion)) + ]); +} + +function updatePackageVersionAndGetString(packageContent, version) { + packageContent.version = version; + return JSON.stringify(packageContent, null, 2) + '\n'; +} + +function updateLockFileVersionAndGetString(lockfileContent, version) { + lockfileContent.version = version; + lockfileContent.packages[''].version = version; + return JSON.stringify(lockfileContent, null, 2) + '\n'; +} + +async function commitChanges(newVersion, gitTag, isMainBranch) { + await runWithEcho('git', [ + 'add', + MAIN_PACKAGE, + MAIN_LOCKFILE, + BROWSER_PACKAGE, + ...(isMainBranch ? [CHANGELOG] : []) + ]); + await runWithEcho('git', ['commit', '-m', newVersion]); + await runWithEcho('git', ['tag', gitTag]); + isMainBranch && (await runWithEcho('git', ['branch', DOCUMENTATION_BRANCH, '--force', gitTag])); +} + +function pushChanges(gitTag) { + return Promise.all([ + runWithEcho('git', ['push', 'origin', 'HEAD']), + runWithEcho('git', ['push', 'origin', gitTag]), + isMainBranch && runWithEcho('git', ['push', '--force', 'origin', DOCUMENTATION_BRANCH]) + ]); +} diff --git a/scripts/prepublish.js b/scripts/prepublish.js new file mode 100755 index 000000000..d43a85977 --- /dev/null +++ b/scripts/prepublish.js @@ -0,0 +1,65 @@ +#!/usr/bin/env node + +import { readFile, writeFile } from 'node:fs/promises'; +import { resolve } from 'node:path'; +import { chdir } from 'node:process'; +import { fileURLToPath } from 'node:url'; +import { readJson, runWithEcho } from './helpers.js'; +import publishWasmNodePackage from './publish-wasm-node-package.js'; +import { CHANGELOG, MAIN_PACKAGE } from './release-constants.js'; +import { getCurrentCommitMessage, getFirstChangelogEntry } from './release-helpers.js'; + +// We execute everything from the main directory +chdir(fileURLToPath(new URL('..', import.meta.url))); + +const version = await getCurrentCommitMessage(); +const matched = /^\d+\.\d+\.\d+(-\d+)?$/.exec(version); + +if (!matched) { + throw new Error( + `The commit message "${version}" does not satisfy the patterns 0.0.0 or 0.0.0-0.` + ); +} +const isPreRelease = !!matched[1]; +await verifyChangelog(isPreRelease); + +await runWithEcho('npm', ['publish'], { cwd: resolve('browser') }); +await publishWasmNodePackage(); + +const { optionalDependencies } = await readJson(MAIN_PACKAGE); +await runWithEcho('npm', ['run', 'prepublish:napi']); +const mainPackage = await readJson(MAIN_PACKAGE); +await writeFile( + MAIN_PACKAGE, + JSON.stringify( + { + ...mainPackage, + optionalDependencies: { ...optionalDependencies, ...mainPackage.optionalDependencies } + }, + null, + 2 + ) +); + +/** + * @param {boolean} isPreRelease + * @return {Promise} + */ +async function verifyChangelog(isPreRelease) { + const changelog = await readFile(CHANGELOG, 'utf8'); + const { currentVersion, text } = getFirstChangelogEntry(changelog); + if (currentVersion !== version) { + if (isPreRelease) { + console.log( + `There is no changelog entry for version "${version}", the last entry is for version "${currentVersion}". This is OK for a pre-release.` + ); + return; + } + throw new Error( + `There is no changelog entry for version "${version}", the last entry is for version "${currentVersion}".` + ); + } + if (text.includes('[replace me]')) { + throw new Error(`The changelog entry must not contain placeholders. The text was:\n${text}`); + } +} diff --git a/scripts/publish-wasm-node-package.js b/scripts/publish-wasm-node-package.js new file mode 100644 index 000000000..b48c6a556 --- /dev/null +++ b/scripts/publish-wasm-node-package.js @@ -0,0 +1,51 @@ +import { cp, mkdir, readFile, writeFile } from 'node:fs/promises'; +import { resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { readJson, runWithEcho } from './helpers.js'; +import { MAIN_PACKAGE } from './release-constants.js'; + +const WASM_NODE_PACKAGE_INFO = { + description: 'Next-generation ES module bundler with Node wasm', + name: '@rollup/wasm-node' +}; +const COPIED_FILES_OR_DIRS = ['LICENSE.md', 'dist']; +const PACKAGE_DIR = fileURLToPath(new URL('../wasm-node-package', import.meta.url)); + +function getOutputPath(...arguments_) { + return resolve(PACKAGE_DIR, ...arguments_); +} + +export default async function publishWasmNodePackage() { + await mkdir(PACKAGE_DIR); + + const mainPackage = await readJson(MAIN_PACKAGE); + mainPackage.files.unshift('dist/wasm-node/*.wasm'); + delete mainPackage.napi; + delete mainPackage.scripts; + + await Promise.all([ + ...COPIED_FILES_OR_DIRS.map(file => cp(file, getOutputPath(file), { recursive: true })), + writeFile( + getOutputPath('package.json'), + JSON.stringify( + { + ...mainPackage, + ...WASM_NODE_PACKAGE_INFO + }, + undefined, + 2 + ) + ) + ]); + + const nativeJsContent = await readFile(new URL('../native.wasm.js', import.meta.url), 'utf8'); + + await Promise.all([ + writeFile(getOutputPath('dist', 'native.js'), nativeJsContent.trimStart()), + cp('artifacts/bindings-wasm-node/wasm-node', getOutputPath('dist', 'wasm-node'), { + recursive: true + }) + ]); + + await runWithEcho('npm', ['publish'], { cwd: resolve(PACKAGE_DIR) }); +} diff --git a/scripts/release-constants.js b/scripts/release-constants.js new file mode 100644 index 000000000..869fbf965 --- /dev/null +++ b/scripts/release-constants.js @@ -0,0 +1,6 @@ +export const MAIN_BRANCH = 'master'; +export const MAIN_PACKAGE = 'package.json'; +export const MAIN_LOCKFILE = 'package-lock.json'; +export const BROWSER_PACKAGE = 'browser/package.json'; +export const CHANGELOG = 'CHANGELOG.md'; +export const DOCUMENTATION_BRANCH = 'documentation-published'; diff --git a/scripts/release-helpers.js b/scripts/release-helpers.js new file mode 100644 index 000000000..925eaed66 --- /dev/null +++ b/scripts/release-helpers.js @@ -0,0 +1,111 @@ +import { readFile } from 'node:fs/promises'; +import { exit } from 'node:process'; +import GitHub from 'github-api'; +import { runAndGetStdout } from './helpers.js'; + +/** + * @param {string} changelog + * @returns {{ currentVersion: string, index: number, previousVersion: string, text: string }} + */ +export function getFirstChangelogEntry(changelog) { + const match = changelog.match( + /(?## (?\d+\.\d+\.\d+(-\d+)?)[\S\s]*?)\n+## (?\d+\.\d+\.\d+)/ + ); + if (!match) { + throw new Error('Could not detect any changelog entry.'); + } + const { + groups: { text, currentVersion, previousVersion }, + index + } = match; + return { currentVersion, index, previousVersion, text }; +} + +/** + * @param {string} fromVersion + * @param {string} toVersion + * @param repo + * @param {string|null} currentBranch We only have a branch when locally prepare a release, otherwise we use the sha to find the PR + * @param {boolean} isPreRelease + * @returns {Promise<{ author: string, closed: string[], pr: string, text: string }[]>} + */ +export async function getIncludedPRs(fromVersion, toVersion, repo, currentBranch, isPreRelease) { + const [commits, commitSha] = await Promise.all([ + runAndGetStdout('git', [ + '--no-pager', + 'log', + `${fromVersion}..${toVersion}`, + '--pretty=tformat:%s' + ]), + runAndGetStdout('git', ['rev-parse', toVersion]) + ]); + const getPrRegExp = /^(.+)\s\(#(\d+)\)$/gm; + const prs = []; + let match; + while ((match = getPrRegExp.exec(commits))) { + prs.push({ pr: Number(match[2]), text: match[1].split('\n')[0] }); + } + + if (isPreRelease) { + const { data: basePrs } = await repo.listPullRequests({ + state: 'open', + ...(currentBranch ? { head: `rollup:${currentBranch}` } : {}) + }); + for (const { + number, + title, + head: { sha } + } of basePrs) { + if (currentBranch || sha === commitSha) { + prs.push({ pr: number, text: title }); + } + } + } + prs.sort((a, b) => (a.pr > b.pr ? 1 : -1)); + return Promise.all( + prs.map(async ({ pr, text }) => { + const { data } = await repo.getPullRequest(pr); + const bodyWithoutComments = data.body.replace(//g, ''); + const closedIssuesRegexp = /([Ff]ix(es|ed)?|([Cc]lose|[Rr]esolve)[ds]?) #(\d+)/g; + const closed = []; + while ((match = closedIssuesRegexp.exec(bodyWithoutComments))) { + closed.push(match[4]); + } + return { + author: data.user.login, + closed, + pr, + text + }; + }) + ); +} + +export async function getGithubApi() { + const GITHUB_TOKEN = '.github_token'; + try { + const token = (await readFile(GITHUB_TOKEN, 'utf8')).trim(); + return new GitHub({ token }); + } catch (error) { + if (error.code === 'ENOENT') { + console.error( + `Could not find GitHub token file. Please create "${GITHUB_TOKEN}" containing a token with the following permissions: +- public_repo` + ); + exit(1); + } else { + throw error; + } + } +} + +export function getGitTag(version) { + return `v${version}`; +} + +/** + * @return {Promise} + */ +export function getCurrentCommitMessage() { + return runAndGetStdout('git', ['--no-pager', 'log', '-1', '--pretty=%B']); +} diff --git a/scripts/release.js b/scripts/release.js deleted file mode 100755 index c34b96710..000000000 --- a/scripts/release.js +++ /dev/null @@ -1,356 +0,0 @@ -#!/usr/bin/env node - -import { readFile, writeFile } from 'node:fs/promises'; -import { chdir, exit } from 'node:process'; -import { fileURLToPath } from 'node:url'; -import GitHub from 'github-api'; -import inquirer from 'inquirer'; -import semverInc from 'semver/functions/inc.js'; -import semverParse from 'semver/functions/parse.js'; -import semverPreRelease from 'semver/functions/prerelease.js'; -import { cyan } from './colors.js'; -import { runAndGetStdout, runWithEcho } from './helpers.js'; - -// We execute everything from the main directory -chdir(fileURLToPath(new URL('..', import.meta.url))); - -const MAIN_BRANCH = 'master'; -const MAIN_PACKAGE = 'package.json'; -const MAIN_LOCKFILE = 'package-lock.json'; -const BROWSER_PACKAGE = 'browser/package.json'; -const CHANGELOG = 'CHANGELOG.md'; -const DOCUMENTATION_BRANCH = 'documentation-published'; - -const [gh, currentBranch] = await Promise.all([ - getGithubApi(), - runAndGetStdout('git', ['branch', '--show-current']), - runWithEcho('git', ['pull', '--ff-only']) -]); -const [mainPackage, mainLockFile, browserPackage, repo, issues, changelog] = await Promise.all([ - readJson(MAIN_PACKAGE), - readJson(MAIN_LOCKFILE), - readJson(BROWSER_PACKAGE), - gh.getRepo('rollup', 'rollup'), - gh.getIssues('rollup', 'rollup'), - readFile(CHANGELOG, 'utf8') -]); -const isMainBranch = currentBranch === MAIN_BRANCH; -const [newVersion, includedPRs] = await Promise.all([ - getNewVersion(mainPackage, isMainBranch), - getIncludedPRs(changelog, repo, currentBranch, isMainBranch) -]); - -let changelogEntry, gitTag; -try { - if (isMainBranch) { - await addStubChangelogEntry(newVersion, repo, changelog, includedPRs); - } - await updatePackages(mainPackage, mainLockFile, browserPackage, newVersion); - await installDependenciesBuildAndTest(); - changelogEntry = isMainBranch ? await waitForChangelogUpdate(newVersion) : ''; - gitTag = `v${newVersion}`; - await commitChanges(newVersion, gitTag, isMainBranch); -} catch (error) { - console.error(`Error during release, rolling back changes: ${error.message}`); - await runWithEcho('git', ['reset', '--hard']); - throw error; -} - -await releasePackages(newVersion); -await pushChanges(gitTag); -if (changelogEntry) { - await createReleaseNotes(changelogEntry, gitTag); -} -await postReleaseComments(includedPRs, issues, newVersion); - -async function getGithubApi() { - const GITHUB_TOKEN = '.github_token'; - try { - const token = (await readFile(GITHUB_TOKEN, 'utf8')).trim(); - return new GitHub({ token }); - } catch (error) { - if (error.code === 'ENOENT') { - console.error( - `Could not find GitHub token file. Please create "${GITHUB_TOKEN}" containing a token with the following permissions: -- public_repo` - ); - exit(1); - } else { - throw error; - } - } -} - -async function readJson(file) { - const content = await readFile(file, 'utf8'); - return JSON.parse(content); -} - -async function getNewVersion(mainPackage, isMainBranch) { - const { version } = mainPackage; - const availableIncrements = isMainBranch - ? ['patch', 'minor'] - : semverPreRelease(version) - ? ['prerelease'] - : ['premajor', 'preminor', 'prepatch']; - - const { newVersion } = await inquirer.prompt([ - { - choices: availableIncrements.map(increment => { - const value = semverInc(version, increment); - return { - name: `${increment} (${value})`, - short: increment, - value - }; - }), - message: `Select type of release (currently "${version}" on branch "${currentBranch}"):`, - name: 'newVersion', - type: 'list' - } - ]); - return newVersion; -} - -async function addStubChangelogEntry(version, repo, changelog, includedPRs) { - const { currentVersion, index } = getFirstChangelogEntry(changelog); - if (currentVersion === version) { - console.error( - `Changelog entry for version "${version}" already exists. Please remove the entry and commit the change before trying again.` - ); - exit(1); - } - - await writeFile( - CHANGELOG, - changelog.slice(0, index) + - getNewLogEntry(version, includedPRs) + - '\n\n' + - changelog.slice(index) - ); - - console.log( - cyan(`A stub for the release notes was added to the beginning of "${CHANGELOG}". -Please edit this file to add useful information about bug fixes, features and -breaking changes in the release while the tests are running.`) - ); -} - -function getFirstChangelogEntry(changelog) { - const match = changelog.match( - /(?## (?\d+\.\d+\.\d+)[\S\s]*?)\n+## (?\d+\.\d+\.\d+)/ - ); - if (!match) { - throw new Error('Could not detect any changelog entry.'); - } - const { - groups: { text, currentVersion, previousVersion }, - index - } = match; - return { currentVersion, index, previousVersion, text }; -} - -async function getIncludedPRs(changelog, repo, currentBranch, isMainBranch) { - const { currentVersion } = getFirstChangelogEntry(changelog); - const commits = await runAndGetStdout('git', [ - '--no-pager', - 'log', - `v${currentVersion}..HEAD`, - '--pretty=tformat:%s' - ]); - const getPrRegExp = /^(.+)\s\(#(\d+)\)$/gm; - const prs = []; - let match; - while ((match = getPrRegExp.exec(commits))) { - prs.push({ pr: match[2], text: match[1].split('\n')[0] }); - } - - if (!isMainBranch) { - const { data: basePrs } = await repo.listPullRequests({ - head: `rollup:${currentBranch}`, - state: 'open' - }); - for (const { number, title } of basePrs) { - prs.push({ pr: number, text: title }); - } - } - prs.sort((a, b) => (a.pr > b.pr ? 1 : -1)); - return Promise.all( - prs.map(async ({ pr, text }) => { - const { data } = await repo.getPullRequest(pr); - const bodyWithoutComments = data.body.replace(//g, ''); - const closedIssuesRegexp = /([Ff]ix(es|ed)?|([Cc]lose|[Rr]esolve)[ds]?) #(\d+)/g; - const closed = []; - while ((match = closedIssuesRegexp.exec(bodyWithoutComments))) { - closed.push(match[4]); - } - return { - author: data.user.login, - closed, - pr, - text - }; - }) - ); -} - -function getNewLogEntry(version, prs) { - if (prs.length === 0) { - throw new Error(`Release does not contain any PRs`); - } - const firstPr = prs[0].pr; - const date = new Date().toISOString().slice(0, 10); - const { minor, patch } = semverParse(version); - let sections = getDummyLogSection('Bug Fixes', firstPr); - if (patch === 0) { - sections = getDummyLogSection('Features', firstPr) + sections; - if (minor === 0) { - sections = getDummyLogSection('Breaking Changes', firstPr) + sections; - } - } - return `## ${version} - -_${date}_ - -${sections}### Pull Requests - -${prs - .map( - ({ text, pr, author }) => - `- [#${pr}](https://github.com/rollup/rollup/pull/${pr}): ${text} (@${author})` - ) - .join('\n')}`; -} - -function getDummyLogSection(headline, pr) { - return `### ${headline} - -- [replace me] (#${pr}) - -`; -} - -async function installDependenciesBuildAndTest() { - await Promise.all([runWithEcho('npm', ['ci']), runWithEcho('npm', ['audit'])]); - await Promise.all([ - runWithEcho('npm', ['run', 'ci:lint']), - runWithEcho('npm', ['run', 'build:bootstrap']) - ]); - await runWithEcho('npm', ['run', 'test:all']); -} - -async function waitForChangelogUpdate(version) { - let changelogEntry = ''; - while (true) { - await runWithEcho('npx', ['prettier', '--write', CHANGELOG]); - const changelog = await readFile(CHANGELOG, 'utf8'); - const { text: newEntry } = getFirstChangelogEntry(changelog); - if (newEntry === changelogEntry) { - console.log(cyan('No further changes, continuing release.')); - break; - } - changelogEntry = newEntry; - console.log(cyan('You generated the following changelog entry:\n') + changelogEntry); - await inquirer.prompt([ - { - choices: ['ok'], - message: `Please edit the changelog or confirm the changelog is acceptable to continue to release "${version}".`, - name: 'ok', - type: 'list' - } - ]); - } - - return changelogEntry; -} - -function updatePackages(mainPackage, mainLockFile, browserPackage, newVersion) { - return Promise.all([ - writeFile(MAIN_PACKAGE, updatePackageVersionAndGetString(mainPackage, newVersion)), - writeFile(MAIN_LOCKFILE, updateLockFileVersionAndGetString(mainLockFile, newVersion)), - writeFile(BROWSER_PACKAGE, updatePackageVersionAndGetString(browserPackage, newVersion)) - ]); -} - -function updatePackageVersionAndGetString(packageContent, version) { - packageContent.version = version; - return JSON.stringify(packageContent, null, 2) + '\n'; -} - -function updateLockFileVersionAndGetString(lockfileContent, version) { - lockfileContent.version = version; - lockfileContent.packages[''].version = version; - return JSON.stringify(lockfileContent, null, 2) + '\n'; -} - -async function commitChanges(newVersion, gitTag, isMainBranch) { - await runWithEcho('git', [ - 'add', - MAIN_PACKAGE, - MAIN_LOCKFILE, - BROWSER_PACKAGE, - ...(isMainBranch ? [CHANGELOG] : []) - ]); - await runWithEcho('git', ['commit', '-m', newVersion]); - await runWithEcho('git', ['tag', gitTag]); - isMainBranch && (await runWithEcho('git', ['branch', DOCUMENTATION_BRANCH, '--force', gitTag])); -} - -function releasePackages(newVersion) { - const releaseEnvironment = { ...process.env, ROLLUP_RELEASE: 'releasing' }; - const releaseTag = semverPreRelease(newVersion) ? ['--tag', 'beta'] : []; - const parameters = ['publish', '--access', 'public', ...releaseTag]; - return Promise.all([ - runWithEcho('npm', parameters, { - cwd: new URL('..', import.meta.url), - env: releaseEnvironment - }), - runWithEcho('npm', parameters, { - cwd: new URL('../browser', import.meta.url), - env: releaseEnvironment - }) - ]); -} - -function pushChanges(gitTag) { - return Promise.all([ - runWithEcho('git', ['push', 'origin', 'HEAD']), - runWithEcho('git', ['push', 'origin', gitTag]), - isMainBranch && runWithEcho('git', ['push', '--force', 'origin', DOCUMENTATION_BRANCH]) - ]); -} - -function createReleaseNotes(changelog, tag) { - return repo.createRelease({ - body: changelog, - name: tag, - tag_name: tag - }); -} - -function postReleaseComments(includedPRs, issues, version) { - const isPreRelease = semverPreRelease(newVersion); - const installNote = isPreRelease - ? `Note that this is a pre-release, so to test it, you need to install Rollup via \`npm install rollup@${newVersion}\` or \`npm install rollup@beta\`. It will likely become part of a regular release later.` - : 'You can test it via `npm install rollup`.'; - return Promise.all( - includedPRs.map(({ pr, closed }) => - Promise.all([ - issues - .createIssueComment( - pr, - `This PR has been released as part of rollup@${version}. ${installNote}` - ) - .then(() => console.log(cyan(`Added release comment to #${pr}.`))), - ...closed.map(closedPr => - issues - .createIssueComment( - closedPr, - `This issue has been resolved via #${pr} as part of rollup@${version}. ${installNote}` - ) - .then(() => console.log(cyan(`Added fix comment to #${closedPr} via #${pr}.`))) - ) - ]) - ) - ); -} diff --git a/scripts/test-options.js b/scripts/test-options.js index f49ca20ae..319b98433 100644 --- a/scripts/test-options.js +++ b/scripts/test-options.js @@ -1,4 +1,5 @@ import { readFile } from 'node:fs/promises'; +import { exit } from 'node:process'; const [optionsText, helpText, commandReferenceText] = await Promise.all([ readFile(new URL('../docs/configuration-options/index.md', import.meta.url), 'utf8'), @@ -48,7 +49,7 @@ for (const { long, short } of allCliOptions) { } if (failed) { - process.exit(1); + exit(1); } let current = null; @@ -58,7 +59,7 @@ for (const [long, short] of cliOptionsInHelp) { console.error( `Options in help.md are not sorted properly. "${long}" should occur before "${current}".` ); - process.exit(1); + exit(1); } current = long; } @@ -68,7 +69,7 @@ const splitHelpText = helpText.split('\n'); for (const line of splitHelpText) { if (line.length > 80) { console.error(`The following line in help.md exceeds the limit of 80 characters:\n${line}`); - process.exit(1); + exit(1); } } @@ -88,6 +89,6 @@ for (const [index, line] of helpOptionLines.entries()) { console.error( `The command lines in command-line-interface/index.md do not match help.md. Expected line:\n${line}\n\nReceived line:\n${optionListLine}` ); - process.exit(1); + exit(1); } } diff --git a/src/Bundle.ts b/src/Bundle.ts index ca721d3d7..32ae59271 100644 --- a/src/Bundle.ts +++ b/src/Bundle.ts @@ -26,6 +26,7 @@ import { } from './utils/logs'; import type { OutputBundleWithPlaceholders } from './utils/outputBundle'; import { getOutputBundle, removeUnreferencedAssets } from './utils/outputBundle'; +import { parseAst } from './utils/parseAst'; import { isAbsolute } from './utils/path'; import { renderChunks } from './utils/renderChunks'; import { timeEnd, timeStart } from './utils/timers'; @@ -150,9 +151,7 @@ export default class Bundle { for (const file of Object.values(bundle)) { if ('code' in file) { try { - this.graph.contextParse(file.code, { - ecmaVersion: 'latest' - }); + parseAst(file.code); } catch (error_: any) { this.inputOptions.onLog(LOGLEVEL_WARN, logChunkInvalid(file, error_)); } diff --git a/src/Chunk.ts b/src/Chunk.ts index df3c26a09..116704417 100644 --- a/src/Chunk.ts +++ b/src/Chunk.ts @@ -95,7 +95,7 @@ export type ResolvedDynamicImport = ( ) & { node: ImportExpression }; export interface ChunkDependency { - assertions: string | null; + attributes: string | null; defaultVariableName: string | undefined; globalName: string | false | undefined; importPath: string; @@ -701,6 +701,10 @@ export default class Chunk { outputOptions ); if (banner) magicString.prepend(banner); + if (format === 'es' || format === 'cjs') { + const shebang = facadeModule !== null && facadeModule.info.isEntry && facadeModule.shebang; + shebang && magicString.prepend(`#!${shebang}\n`); + } if (footer) magicString.append(footer); return { @@ -947,17 +951,17 @@ export default class Chunk { ); } - private getDynamicImportStringAndAssertions( + private getDynamicImportStringAndAttributes( resolution: ExternalModule | string | null, fileName: string - ): [importPath: string, assertions: string | null | true] { + ): [importPath: string, attributes: string | null | true] { if (resolution instanceof ExternalModule) { const chunk = this.externalChunkByModule.get(resolution)!; - return [`'${chunk.getImportPath(fileName)}'`, chunk.getImportAssertions(this.snippets)]; + return [`'${chunk.getImportPath(fileName)}'`, chunk.getImportAttributes(this.snippets)]; } return [ resolution || '', - (this.outputOptions.format === 'es' && this.outputOptions.externalImportAssertions) || null + (this.outputOptions.format === 'es' && this.outputOptions.externalImportAttributes) || null ]; } @@ -1140,7 +1144,7 @@ export default class Chunk { const importPath = dep.getImportPath(fileName); renderedDependencies.set(dep, { - assertions: dep instanceof ExternalChunk ? dep.getImportAssertions(this.snippets) : null, + attributes: dep instanceof ExternalChunk ? dep.getImportAttributes(this.snippets) : null, defaultVariableName: dep.defaultVariableName, globalName: dep instanceof ExternalChunk && @@ -1189,7 +1193,12 @@ export default class Chunk { renderedModules, snippets } = this; - const { compact, dynamicImportFunction, format, freeze, namespaceToStringTag } = outputOptions; + const { + compact, + format, + freeze, + generatedCode: { symbols } + } = outputOptions; const { _, cnst, n } = snippets; this.setDynamicImportResolutions(fileName); this.setImportMetaResolutions(fileName); @@ -1204,14 +1213,13 @@ export default class Chunk { const renderOptions: RenderOptions = { accessedDocumentCurrentScript: false, - dynamicImportFunction, exportNamesByVariable, format, freeze, indent, - namespaceToStringTag, pluginDriver, snippets, + symbols, useOriginalName: null }; @@ -1299,7 +1307,7 @@ export default class Chunk { } } else { const { node, resolution } = resolvedDynamicImport; - const [resolutionString, assertions] = this.getDynamicImportStringAndAssertions( + const [resolutionString, attributes] = this.getDynamicImportStringAndAttributes( resolution, fileName ); @@ -1312,15 +1320,20 @@ export default class Chunk { accessedGlobalsByScope, resolutionString, false, - assertions + attributes ); } } } private setIdentifierRenderResolutions() { - const { format, interop, namespaceToStringTag, preserveModules, externalLiveBindings } = - this.outputOptions; + const { + format, + generatedCode: { symbols }, + interop, + preserveModules, + externalLiveBindings + } = this.outputOptions; const syntheticExports = new Set(); for (const exportName of this.getExportNames()) { const exportVariable = this.exportsByName.get(exportName)!; @@ -1347,7 +1360,7 @@ export default class Chunk { if (this.needsExportsShim) { usedNames.add(MISSING_EXPORT_SHIM_VARIABLE); } - if (namespaceToStringTag) { + if (symbols) { usedNames.add('Symbol'); } switch (format) { diff --git a/src/ExternalChunk.ts b/src/ExternalChunk.ts index 231b797f7..41d442629 100644 --- a/src/ExternalChunk.ts +++ b/src/ExternalChunk.ts @@ -13,7 +13,7 @@ export default class ExternalChunk { variableName = ''; private fileName: string | null = null; - private importAssertions: string | null = null; + private importAttributes: string | null = null; private moduleInfo: ModuleInfo; private renormalizeRenderPath: boolean; @@ -38,11 +38,11 @@ export default class ExternalChunk { (this.renormalizeRenderPath ? normalize(relative(this.inputBase, this.id)) : this.id)); } - getImportAssertions(snippets: GenerateCodeSnippets): string | null { - return (this.importAssertions ||= formatAssertions( + getImportAttributes(snippets: GenerateCodeSnippets): string | null { + return (this.importAttributes ||= formatAttributes( this.options.format === 'es' && - this.options.externalImportAssertions && - this.moduleInfo.assertions, + this.options.externalImportAttributes && + this.moduleInfo.attributes, snippets )); } @@ -56,14 +56,14 @@ export default class ExternalChunk { } } -function formatAssertions( - assertions: Record | null | void | false, +function formatAttributes( + attributes: Record | null | void | false, { getObject }: GenerateCodeSnippets ): string | null { - if (!assertions) { + if (!attributes) { return null; } - const assertionEntries: [key: string, value: string][] = Object.entries(assertions).map( + const assertionEntries: [key: string, value: string][] = Object.entries(attributes).map( ([key, value]) => [key, `'${value}'`] ); if (assertionEntries.length > 0) { diff --git a/src/ExternalModule.ts b/src/ExternalModule.ts index 4a76b4c20..8be02eee9 100644 --- a/src/ExternalModule.ts +++ b/src/ExternalModule.ts @@ -3,8 +3,7 @@ import type { CustomPluginOptions, ModuleInfo, NormalizedInputOptions } from './ import { EMPTY_ARRAY } from './utils/blank'; import { makeLegal } from './utils/identifierHelpers'; import { LOGLEVEL_WARN } from './utils/logging'; -import { logUnusedExternalImports, warnDeprecation } from './utils/logs'; -import { URL_THIS_GETMODULEINFO } from './utils/urls'; +import { logUnusedExternalImports } from './utils/logs'; export default class ExternalModule { readonly dynamicImporters: string[] = []; @@ -26,14 +25,14 @@ export default class ExternalModule { moduleSideEffects: boolean | 'no-treeshake', meta: CustomPluginOptions, public readonly renormalizeRenderPath: boolean, - assertions: Record + attributes: Record ) { this.suggestedVariableName = makeLegal(id.split(/[/\\]/).pop()!); const { importers, dynamicImporters } = this; - const info: ModuleInfo = (this.info = { - assertions, + this.info = { ast: null, + attributes, code: null, dynamicallyImportedIdResolutions: EMPTY_ARRAY, dynamicallyImportedIds: EMPTY_ARRAY, @@ -43,15 +42,6 @@ export default class ExternalModule { exportedBindings: null, exports: null, hasDefaultExport: null, - get hasModuleSideEffects() { - warnDeprecation( - 'Accessing ModuleInfo.hasModuleSideEffects from plugins is deprecated. Please use ModuleInfo.moduleSideEffects instead.', - URL_THIS_GETMODULEINFO, - true, - options - ); - return info.moduleSideEffects; - }, id, implicitlyLoadedAfterOneOf: EMPTY_ARRAY, implicitlyLoadedBefore: EMPTY_ARRAY, @@ -66,11 +56,7 @@ export default class ExternalModule { meta, moduleSideEffects, syntheticNamedExports: false - }); - // Hide the deprecated key so that it only warns when accessed explicitly - Object.defineProperty(this.info, 'hasModuleSideEffects', { - enumerable: false - }); + }; } getVariableForExportName(name: string): [variable: ExternalVariable] { diff --git a/src/Graph.ts b/src/Graph.ts index 9932970fd..10e8ef5e5 100644 --- a/src/Graph.ts +++ b/src/Graph.ts @@ -1,4 +1,3 @@ -import * as acorn from 'acorn'; import flru from 'flru'; import type ExternalModule from './ExternalModule'; import Module from './Module'; @@ -6,6 +5,7 @@ import { ModuleLoader, type UnresolvedModule } from './ModuleLoader'; import GlobalScope from './ast/scopes/GlobalScope'; import { PathTracker } from './ast/utils/PathTracker'; import type { + AstNode, ModuleInfo, ModuleJSON, NormalizedInputOptions, @@ -17,7 +17,6 @@ import type { import { PluginDriver } from './utils/PluginDriver'; import Queue from './utils/Queue'; import { BuildPhase } from './utils/buildPhase'; -import { addAnnotations } from './utils/commentAnnotations'; import { analyseModuleExecution } from './utils/executionOrder'; import { LOGLEVEL_WARN } from './utils/logging'; import { @@ -53,8 +52,7 @@ function normalizeEntryModules( } export default class Graph { - readonly acornParser: typeof acorn.Parser; - readonly astLru = flru(5); + readonly astLru = flru(5); readonly cachedModules = new Map(); readonly deoptimizationTracker = new PathTracker(); entryModules: Module[] = []; @@ -100,7 +98,6 @@ export default class Graph { watcher.onCurrentRun('close', handleClose); } this.pluginDriver = new PluginDriver(this, options, options.plugins, this.pluginCache); - this.acornParser = acorn.Parser.extend(...(options.acornInjectPlugins as any[])); this.moduleLoader = new ModuleLoader(this, this.modulesById, this.options, this.pluginDriver); this.fileOperationQueue = new Queue(options.maxParallelFileOps); this.pureFunctions = getPureFunctions(options); @@ -123,34 +120,6 @@ export default class Graph { this.phase = BuildPhase.GENERATE; } - contextParse(code: string, options: Partial = {}): acorn.Node { - const onCommentOrig = options.onComment; - const comments: acorn.Comment[] = []; - - options.onComment = - onCommentOrig && typeof onCommentOrig == 'function' - ? (block, text, start, end, ...parameters) => { - comments.push({ end, start, type: block ? 'Block' : 'Line', value: text }); - return onCommentOrig.call(options, block, text, start, end, ...parameters); - } - : comments; - - const ast = this.acornParser.parse(code, { - ...(this.options.acorn as unknown as acorn.Options), - ...options - }); - - if (typeof onCommentOrig == 'object') { - onCommentOrig.push(...comments); - } - - options.onComment = onCommentOrig; - - addAnnotations(comments, ast, code); - - return ast; - } - getCache(): RollupCache { // handle plugin cache eviction for (const name in this.pluginCache) { diff --git a/src/Module.ts b/src/Module.ts index 9b0ae660f..5f9fbb42c 100644 --- a/src/Module.ts +++ b/src/Module.ts @@ -1,5 +1,4 @@ import { extractAssignedNames } from '@rollup/pluginutils'; -import type * as acorn from 'acorn'; import { locate } from 'locate-character'; import MagicString from 'magic-string'; import ExternalModule from './ExternalModule'; @@ -48,6 +47,7 @@ import type { } from './rollup/types'; import { EMPTY_OBJECT } from './utils/blank'; import { BuildPhase } from './utils/buildPhase'; +import type { ProgramAst } from './utils/convert-ast'; import { decodedSourcemap, resetSourcemapCache } from './utils/decodedSourcemap'; import { getId } from './utils/getId'; import { getNewSet, getOrCreate } from './utils/getOrCreate'; @@ -59,26 +59,25 @@ import { error, logAmbiguousExternalNamespaces, logCircularReexport, - logInconsistentImportAssertions, + logInconsistentImportAttributes, logInvalidFormatForTopLevelAwait, logInvalidSourcemapForError, logMissingExport, + logModuleParseError, logNamespaceConflict, - logParseError, logShimmedExport, - logSyntheticNamedExportsNeedNamespaceExport, - warnDeprecation + logSyntheticNamedExportsNeedNamespaceExport } from './utils/logs'; +import { parseAst } from './utils/parseAst'; import { - doAssertionsDiffer, - getAssertionsFromImportExportDeclaration -} from './utils/parseAssertions'; + doAttributesDiffer, + getAttributesFromImportExportDeclaration +} from './utils/parseImportAttributes'; import { basename, extname } from './utils/path'; import type { PureFunctions } from './utils/pureFunctions'; import type { RenderOptions } from './utils/renderHelpers'; import { timeEnd, timeStart } from './utils/timers'; import { markModuleAndImpureDependenciesAsExecuted } from './utils/traverseStaticDependencies'; -import { URL_THIS_GETMODULEINFO } from './utils/urls'; import { MISSING_EXPORT_SHIM_VARIABLE } from './utils/variableNames'; interface ImportDescription { @@ -219,6 +218,7 @@ export default class Module { readonly importDescriptions = new Map(); readonly importMetas: MetaProperty[] = []; importedFromNotTreeshaken = false; + shebang: undefined | string; readonly importers: string[] = []; readonly includedDynamicImporters: Module[] = []; readonly includedImports = new Set(); @@ -235,7 +235,7 @@ export default class Module { declare scope: ModuleScope; readonly sideEffectDependenciesByVariable = new Map>(); declare sourcemapChain: DecodedSourceMapOrMissing[]; - readonly sourcesWithAssertions = new Map>(); + readonly sourcesWithAttributes = new Map>(); declare transformFiles?: EmittedFile[]; private allExportNames: Set | null = null; @@ -267,7 +267,7 @@ export default class Module { moduleSideEffects: boolean | 'no-treeshake', syntheticNamedExports: boolean | string, meta: CustomPluginOptions, - assertions: Record + attributes: Record ) { this.excludeFromSourcemap = /\0/.test(id); this.context = options.moduleContext(id); @@ -284,12 +284,12 @@ export default class Module { implicitlyLoadedBefore, importers, reexportDescriptions, - sourcesWithAssertions + sourcesWithAttributes } = this; this.info = { - assertions, ast: null, + attributes, code: null, get dynamicallyImportedIdResolutions() { return dynamicImports @@ -331,15 +331,6 @@ export default class Module { } return module.exports.has('default') || reexportDescriptions.has('default'); }, - get hasModuleSideEffects() { - warnDeprecation( - 'Accessing ModuleInfo.hasModuleSideEffects from plugins is deprecated. Please use ModuleInfo.moduleSideEffects instead.', - URL_THIS_GETMODULEINFO, - true, - options - ); - return this.moduleSideEffects; - }, id, get implicitlyLoadedAfterOneOf() { // eslint-disable-next-line unicorn/prefer-spread @@ -352,7 +343,7 @@ export default class Module { get importedIdResolutions() { // eslint-disable-next-line unicorn/prefer-spread return Array.from( - sourcesWithAssertions.keys(), + sourcesWithAttributes.keys(), source => module.resolvedIds[source] ).filter(Boolean); }, @@ -361,7 +352,7 @@ export default class Module { // dependencies are populated // eslint-disable-next-line unicorn/prefer-spread return Array.from( - sourcesWithAssertions.keys(), + sourcesWithAttributes.keys(), source => module.resolvedIds[source]?.id ).filter(Boolean); }, @@ -380,11 +371,6 @@ export default class Module { moduleSideEffects, syntheticNamedExports }; - // Hide the deprecated key so that it only warns when accessed explicitly - // eslint-disable-next-line unicorn/consistent-destructuring - Object.defineProperty(this.info, 'hasModuleSideEffects', { - enumerable: false - }); } basename(): string { @@ -814,6 +800,15 @@ export default class Module { resolvedIds?: ResolvedIdMap; transformFiles?: EmittedFile[] | undefined; }): void { + if (code.startsWith('#!')) { + const shebangEndPosition = code.indexOf('\n'); + this.shebang = code.slice(2, shebangEndPosition); + } + /* eslint-disable-next-line unicorn/number-literal-case */ + if (code.charCodeAt(0) === 0xfe_ff) { + code = code.slice(1); + } + timeStart('generate ast', 3); this.info.code = code; @@ -910,8 +905,8 @@ export default class Module { toJSON(): ModuleJSON { return { - assertions: this.info.assertions, ast: this.info.ast!, + attributes: this.info.attributes, code: this.info.code!, customTransformCache: this.customTransformCache, // eslint-disable-next-line unicorn/prefer-spread @@ -1166,18 +1161,18 @@ export default class Module { source: string, declaration: ImportDeclaration | ExportNamedDeclaration | ExportAllDeclaration ) { - const parsedAssertions = getAssertionsFromImportExportDeclaration(declaration.assertions); - const existingAssertions = this.sourcesWithAssertions.get(source); - if (existingAssertions) { - if (doAssertionsDiffer(existingAssertions, parsedAssertions)) { + const parsedAttributes = getAttributesFromImportExportDeclaration(declaration.attributes); + const existingAttributes = this.sourcesWithAttributes.get(source); + if (existingAttributes) { + if (doAttributesDiffer(existingAttributes, parsedAttributes)) { this.log( LOGLEVEL_WARN, - logInconsistentImportAssertions(existingAssertions, parsedAssertions, source, this.id), + logInconsistentImportAttributes(existingAttributes, parsedAttributes, source, this.id), declaration.start ); } } else { - this.sourcesWithAssertions.set(source, parsedAssertions); + this.sourcesWithAttributes.set(source, parsedAttributes); } } @@ -1332,11 +1327,11 @@ export default class Module { this.exports.set(name, MISSING_EXPORT_SHIM_DESCRIPTION); } - private tryParse(): acorn.Node { + private tryParse(): ProgramAst { try { - return this.graph.contextParse(this.info.code!); + return parseAst(this.info.code!) as ProgramAst; } catch (error_: any) { - return this.error(logParseError(error_, this.id), error_.pos); + return this.error(logModuleParseError(error_, this.id), error_.pos); } } } diff --git a/src/ModuleLoader.ts b/src/ModuleLoader.ts index 402e05ff3..7b49af180 100644 --- a/src/ModuleLoader.ts +++ b/src/ModuleLoader.ts @@ -1,8 +1,8 @@ -import type * as acorn from 'acorn'; import ExternalModule from './ExternalModule'; import type Graph from './Graph'; import Module, { type DynamicImport } from './Module'; import type { + AstNode, CustomPluginOptions, EmittedChunk, HasModuleSideEffects, @@ -27,14 +27,17 @@ import { logExternalModulesCannotBeTransformedToModules, logExternalSyntheticExports, logImplicitDependantCannotBeExternal, - logInconsistentImportAssertions, + logInconsistentImportAttributes, logInternalIdCannotBeExternal, logUnresolvedEntry, logUnresolvedImplicitDependant, logUnresolvedImport, logUnresolvedImportTreatedAsExternal } from './utils/logs'; -import { doAssertionsDiffer, getAssertionsFromImportExpression } from './utils/parseAssertions'; +import { + doAttributesDiffer, + getAttributesFromImportExpression +} from './utils/parseImportAttributes'; import { isAbsolute, isRelative, resolve } from './utils/path'; import relativeId from './utils/relativeId'; import { resolveId } from './utils/resolveId'; @@ -52,7 +55,7 @@ export type ModuleLoaderResolveId = ( importer: string | undefined, customOptions: CustomPluginOptions | undefined, isEntry: boolean | undefined, - assertions: Record, + attributes: Record, skip?: readonly { importer: string | undefined; plugin: Plugin; source: string }[] | null ) => Promise; @@ -208,7 +211,7 @@ export class ModuleLoader { importer, customOptions, isEntry, - assertions, + attributes, skip = null ) => this.getResolvedIdWithDefaults( @@ -224,12 +227,12 @@ export class ModuleLoader { skip, customOptions, typeof isEntry === 'boolean' ? isEntry : !importer, - assertions + attributes ), importer, source ), - assertions + attributes ); private addEntryWithImplicitDependants( @@ -268,10 +271,12 @@ export class ModuleLoader { ): Promise { let source: LoadResult; try { - source = await this.graph.fileOperationQueue.run( - async () => - (await this.pluginDriver.hookFirst('load', [id])) ?? (await readFile(id, 'utf8')) - ); + source = await this.graph.fileOperationQueue.run(async () => { + const content = await this.pluginDriver.hookFirst('load', [id]); + if (content !== null) return content; + this.graph.watchFiles[id] = true; + return await readFile(id, 'utf8'); + }); } catch (error_: any) { let message = `Could not load ${id}`; if (importer) message += ` (imported by ${relativeId(importer)})`; @@ -368,17 +373,17 @@ export class ModuleLoader { // its dependencies to be loaded. // Otherwise, it returns immediately. private async fetchModule( - { assertions, id, meta, moduleSideEffects, syntheticNamedExports }: ResolvedId, + { attributes, id, meta, moduleSideEffects, syntheticNamedExports }: ResolvedId, importer: string | undefined, isEntry: boolean, isPreload: PreloadType ): Promise { const existingModule = this.modulesById.get(id); if (existingModule instanceof Module) { - if (importer && doAssertionsDiffer(assertions, existingModule.info.assertions)) { + if (importer && doAttributesDiffer(attributes, existingModule.info.attributes)) { this.options.onLog( LOGLEVEL_WARN, - logInconsistentImportAssertions(existingModule.info.assertions, assertions, id, importer) + logInconsistentImportAttributes(existingModule.info.attributes, attributes, id, importer) ); } await this.handleExistingModule(existingModule, isEntry, isPreload); @@ -397,10 +402,9 @@ export class ModuleLoader { moduleSideEffects, syntheticNamedExports, meta, - assertions + attributes ); this.modulesById.set(id, module); - this.graph.watchFiles[id] = true; const loadPromise: LoadModulePromise = this.addModuleSource(id, importer, module).then(() => [ this.getResolveStaticDependencyPromises(module), this.getResolveDynamicImportPromises(module), @@ -447,7 +451,7 @@ export class ModuleLoader { resolvedId: ResolvedId ): Promise { if (resolvedId.external) { - const { assertions, external, id, moduleSideEffects, meta } = resolvedId; + const { attributes, external, id, moduleSideEffects, meta } = resolvedId; let externalModule = this.modulesById.get(id); if (!externalModule) { externalModule = new ExternalModule( @@ -456,17 +460,17 @@ export class ModuleLoader { moduleSideEffects, meta, external !== 'absolute' && isAbsolute(id), - assertions + attributes ); this.modulesById.set(id, externalModule); } else if (!(externalModule instanceof ExternalModule)) { return error(logInternalIdCannotBeExternal(source, importer)); - } else if (doAssertionsDiffer(externalModule.info.assertions, assertions)) { + } else if (doAttributesDiffer(externalModule.info.attributes, attributes)) { this.options.onLog( LOGLEVEL_WARN, - logInconsistentImportAssertions( - externalModule.info.assertions, - assertions, + logInconsistentImportAttributes( + externalModule.info.attributes, + attributes, source, importer ) @@ -555,7 +559,7 @@ export class ModuleLoader { ? dynamicImport.argument : dynamicImport.argument.esTreeNode!, module.id, - getAssertionsFromImportExpression(dynamicImport.node) + getAttributesFromImportExpression(dynamicImport.node) ); if (resolvedId && typeof resolvedId === 'object') { dynamicImport.id = resolvedId.id; @@ -567,17 +571,17 @@ export class ModuleLoader { private getResolveStaticDependencyPromises(module: Module): ResolveStaticDependencyPromise[] { // eslint-disable-next-line unicorn/prefer-spread return Array.from( - module.sourcesWithAssertions, - async ([source, assertions]) => + module.sourcesWithAttributes, + async ([source, attributes]) => [ source, (module.resolvedIds[source] = module.resolvedIds[source] || this.handleInvalidResolvedId( - await this.resolveId(source, module.id, EMPTY_OBJECT, false, assertions), + await this.resolveId(source, module.id, EMPTY_OBJECT, false, attributes), source, module.id, - assertions + attributes )) ] as const ); @@ -585,14 +589,14 @@ export class ModuleLoader { private getResolvedIdWithDefaults( resolvedId: NormalizedResolveIdWithoutDefaults | null, - assertions: Record + attributes: Record ): ResolvedId | null { if (!resolvedId) { return null; } const external = resolvedId.external || false; return { - assertions: resolvedId.assertions || assertions, + attributes: resolvedId.attributes || attributes, external, id: resolvedId.id, meta: resolvedId.meta || {}, @@ -625,7 +629,7 @@ export class ModuleLoader { resolvedId: ResolvedId | null, source: string, importer: string, - assertions: Record + attributes: Record ): ResolvedId { if (resolvedId === null) { if (isRelative(source)) { @@ -633,7 +637,7 @@ export class ModuleLoader { } this.options.onLog(LOGLEVEL_WARN, logUnresolvedImportTreatedAsExternal(source, importer)); return { - assertions, + attributes, external: true, id: source, meta: {}, @@ -697,14 +701,14 @@ export class ModuleLoader { private async resolveDynamicImport( module: Module, - specifier: string | acorn.Node, + specifier: string | AstNode, importer: string, - assertions: Record + attributes: Record ): Promise { const resolution = await this.pluginDriver.hookFirst('resolveDynamicImport', [ specifier, importer, - { assertions } + { attributes } ]); if (typeof specifier !== 'string') { if (typeof resolution === 'string') { @@ -715,18 +719,18 @@ export class ModuleLoader { } return this.getResolvedIdWithDefaults( resolution as NormalizedResolveIdWithoutDefaults, - assertions + attributes ); } if (resolution == null) { const existingResolution = module.resolvedIds[specifier]; if (existingResolution) { - if (doAssertionsDiffer(existingResolution.assertions, assertions)) { + if (doAttributesDiffer(existingResolution.attributes, attributes)) { this.options.onLog( LOGLEVEL_WARN, - logInconsistentImportAssertions( - existingResolution.assertions, - assertions, + logInconsistentImportAttributes( + existingResolution.attributes, + attributes, specifier, importer ) @@ -735,20 +739,20 @@ export class ModuleLoader { return existingResolution; } return (module.resolvedIds[specifier] = this.handleInvalidResolvedId( - await this.resolveId(specifier, module.id, EMPTY_OBJECT, false, assertions), + await this.resolveId(specifier, module.id, EMPTY_OBJECT, false, attributes), specifier, module.id, - assertions + attributes )); } return this.handleInvalidResolvedId( this.getResolvedIdWithDefaults( this.getNormalizedResolvedIdWithoutDefaults(resolution, importer, specifier), - assertions + attributes ), specifier, importer, - assertions + attributes ); } } diff --git a/src/ast/keys.ts b/src/ast/keys.ts index 32764a3aa..74e79f35a 100644 --- a/src/ast/keys.ts +++ b/src/ast/keys.ts @@ -3,16 +3,12 @@ import type { GenericEsTreeNode } from './nodes/shared/Node'; export const keys: { [name: string]: string[]; } = { - // TODO this should be removed once ImportExpression follows official ESTree - // specs with "null" as default - ImportExpression: ['arguments'], Literal: [], Program: ['body'] }; -export function getAndCreateKeys(esTreeNode: GenericEsTreeNode): string[] { - keys[esTreeNode.type] = Object.keys(esTreeNode).filter( +export function createKeysForNode(esTreeNode: GenericEsTreeNode): string[] { + return Object.keys(esTreeNode).filter( key => typeof esTreeNode[key] === 'object' && key.charCodeAt(0) !== 95 /* _ */ ); - return keys[esTreeNode.type]; } diff --git a/src/ast/nodes/ArrayExpression.ts b/src/ast/nodes/ArrayExpression.ts index e82652eb9..1d731e364 100644 --- a/src/ast/nodes/ArrayExpression.ts +++ b/src/ast/nodes/ArrayExpression.ts @@ -76,7 +76,7 @@ export default class ArrayExpression extends NodeBase { element.deoptimizePath(UNKNOWN_PATH); } } - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } private getObjectEntity(): ObjectEntity { diff --git a/src/ast/nodes/ArrowFunctionExpression.ts b/src/ast/nodes/ArrowFunctionExpression.ts index 97ca36ca3..920e230c3 100644 --- a/src/ast/nodes/ArrowFunctionExpression.ts +++ b/src/ast/nodes/ArrowFunctionExpression.ts @@ -14,7 +14,6 @@ import { OBJECT_PROTOTYPE } from './shared/ObjectPrototype'; import type { PatternNode } from './shared/Pattern'; export default class ArrowFunctionExpression extends FunctionBase { - declare async: boolean; declare body: BlockStatement | ExpressionNode; declare params: readonly PatternNode[]; declare preventChildBlockScope: true; @@ -23,7 +22,7 @@ export default class ArrowFunctionExpression extends FunctionBase { protected objectEntity: ObjectEntity | null = null; createScope(parentScope: Scope): void { - this.scope = new ReturnValueScope(parentScope, this.context); + this.scope = new ReturnValueScope(parentScope, this.scope.context); } hasEffects(): boolean { diff --git a/src/ast/nodes/AssignmentExpression.ts b/src/ast/nodes/AssignmentExpression.ts index 184ff7c32..ee5386e0e 100644 --- a/src/ast/nodes/AssignmentExpression.ts +++ b/src/ast/nodes/AssignmentExpression.ts @@ -155,6 +155,6 @@ export default class AssignmentExpression extends NodeBase { this.deoptimized = true; this.left.deoptimizePath(EMPTY_PATH); this.right.deoptimizePath(UNKNOWN_PATH); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } diff --git a/src/ast/nodes/AssignmentPattern.ts b/src/ast/nodes/AssignmentPattern.ts index 1e138a117..e20bdb077 100644 --- a/src/ast/nodes/AssignmentPattern.ts +++ b/src/ast/nodes/AssignmentPattern.ts @@ -58,6 +58,6 @@ export default class AssignmentPattern extends NodeBase implements PatternNode { this.deoptimized = true; this.left.deoptimizePath(EMPTY_PATH); this.right.deoptimizePath(UNKNOWN_PATH); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } diff --git a/src/ast/nodes/AwaitExpression.ts b/src/ast/nodes/AwaitExpression.ts index aafe59956..25f262c0e 100644 --- a/src/ast/nodes/AwaitExpression.ts +++ b/src/ast/nodes/AwaitExpression.ts @@ -17,13 +17,13 @@ export default class AwaitExpression extends NodeBase { if (!this.deoptimized) this.applyDeoptimizations(); if (!this.included) { this.included = true; - checkTopLevelAwait: if (!this.context.usesTopLevelAwait) { + checkTopLevelAwait: if (!this.scope.context.usesTopLevelAwait) { let parent = this.parent; do { if (parent instanceof FunctionNode || parent instanceof ArrowFunctionExpression) break checkTopLevelAwait; } while ((parent = (parent as Node).parent as Node)); - this.context.usesTopLevelAwait = true; + this.scope.context.usesTopLevelAwait = true; } } this.argument.include(context, includeChildrenRecursively); diff --git a/src/ast/nodes/BinaryExpression.ts b/src/ast/nodes/BinaryExpression.ts index 4d5e1924b..f11538690 100644 --- a/src/ast/nodes/BinaryExpression.ts +++ b/src/ast/nodes/BinaryExpression.ts @@ -112,6 +112,10 @@ export default class BinaryExpression extends NodeBase implements DeoptimizableE return type !== INTERACTION_ACCESSED || path.length > 1; } + removeAnnotations(code: MagicString) { + this.left.removeAnnotations(code); + } + render( code: MagicString, options: RenderOptions, diff --git a/src/ast/nodes/BlockStatement.ts b/src/ast/nodes/BlockStatement.ts index b2745f94a..bb7343fe2 100644 --- a/src/ast/nodes/BlockStatement.ts +++ b/src/ast/nodes/BlockStatement.ts @@ -3,9 +3,9 @@ import { type RenderOptions, renderStatementList } from '../../utils/renderHelpe import type { HasEffectsContext, InclusionContext } from '../ExecutionContext'; import BlockScope from '../scopes/BlockScope'; import type ChildScope from '../scopes/ChildScope'; -import type Scope from '../scopes/Scope'; import ExpressionStatement from './ExpressionStatement'; import * as NodeType from './NodeType'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { UNKNOWN_EXPRESSION } from './shared/Expression'; import { type IncludeChildren, type Node, StatementBase, type StatementNode } from './shared/Node'; @@ -13,8 +13,19 @@ export default class BlockStatement extends StatementBase { declare body: readonly StatementNode[]; declare type: NodeType.tBlockStatement; - private declare deoptimizeBody: boolean; - private directlyIncluded = false; + private get deoptimizeBody(): boolean { + return isFlagSet(this.flags, Flag.deoptimizeBody); + } + private set deoptimizeBody(value: boolean) { + this.flags = setFlag(this.flags, Flag.deoptimizeBody, value); + } + + private get directlyIncluded(): boolean { + return isFlagSet(this.flags, Flag.directlyIncluded); + } + private set directlyIncluded(value: boolean) { + this.flags = setFlag(this.flags, Flag.directlyIncluded, value); + } addImplicitReturnExpressionToScope(): void { const lastStatement = this.body[this.body.length - 1]; @@ -23,10 +34,10 @@ export default class BlockStatement extends StatementBase { } } - createScope(parentScope: Scope): void { + createScope(parentScope: ChildScope): void { this.scope = (this.parent as Node).preventChildBlockScope ? (parentScope as ChildScope) - : new BlockScope(parentScope); + : new BlockScope(parentScope, this.scope.context); } hasEffects(context: HasEffectsContext): boolean { diff --git a/src/ast/nodes/CallExpression.ts b/src/ast/nodes/CallExpression.ts index 157859a02..3d6639151 100644 --- a/src/ast/nodes/CallExpression.ts +++ b/src/ast/nodes/CallExpression.ts @@ -13,6 +13,7 @@ import MemberExpression from './MemberExpression'; import type * as NodeType from './NodeType'; import type SpreadElement from './SpreadElement'; import type Super from './Super'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import CallExpressionBase from './shared/CallExpressionBase'; import { type ExpressionEntity, UNKNOWN_RETURN_EXPRESSION } from './shared/Expression'; import type { ChainElement, ExpressionNode, IncludeChildren } from './shared/Node'; @@ -24,20 +25,26 @@ export default class CallExpression { declare arguments: (ExpressionNode | SpreadElement)[]; declare callee: ExpressionNode | Super; - declare optional: boolean; declare type: NodeType.tCallExpression; + get optional(): boolean { + return isFlagSet(this.flags, Flag.optional); + } + set optional(value: boolean) { + this.flags = setFlag(this.flags, Flag.optional, value); + } + bind(): void { super.bind(); if (this.callee instanceof Identifier) { const variable = this.scope.findVariable(this.callee.name); if (variable.isNamespace) { - this.context.log(LOGLEVEL_WARN, logCannotCallNamespace(this.callee.name), this.start); + this.scope.context.log(LOGLEVEL_WARN, logCannotCallNamespace(this.callee.name), this.start); } if (this.callee.name === 'eval') { - this.context.log(LOGLEVEL_WARN, logEval(this.context.module.id), this.start); + this.scope.context.log(LOGLEVEL_WARN, logEval(this.scope.context.module.id), this.start); } } this.interaction = { @@ -114,7 +121,7 @@ export default class CallExpression EMPTY_PATH, SHARED_RECURSION_TRACKER ); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } protected getReturnExpression( diff --git a/src/ast/nodes/CatchClause.ts b/src/ast/nodes/CatchClause.ts index 5a85f4ad1..135bacf25 100644 --- a/src/ast/nodes/CatchClause.ts +++ b/src/ast/nodes/CatchClause.ts @@ -1,5 +1,5 @@ import CatchScope from '../scopes/CatchScope'; -import type Scope from '../scopes/Scope'; +import type ChildScope from '../scopes/ChildScope'; import type BlockStatement from './BlockStatement'; import type * as NodeType from './NodeType'; import { UNKNOWN_EXPRESSION } from './shared/Expression'; @@ -13,8 +13,8 @@ export default class CatchClause extends NodeBase { declare scope: CatchScope; declare type: NodeType.tCatchClause; - createScope(parentScope: Scope): void { - this.scope = new CatchScope(parentScope, this.context); + createScope(parentScope: ChildScope): void { + this.scope = new CatchScope(parentScope, this.scope.context); } parseNode(esTreeNode: GenericEsTreeNode): void { @@ -23,7 +23,7 @@ export default class CatchClause extends NodeBase { // name instead of the variable const { param } = esTreeNode; if (param) { - (this.param as GenericEsTreeNode) = new (this.context.getNodeConstructor(param.type))( + (this.param as GenericEsTreeNode) = new (this.scope.context.getNodeConstructor(param.type))( param, this, this.scope diff --git a/src/ast/nodes/ChainExpression.ts b/src/ast/nodes/ChainExpression.ts index e2aa0a610..2dd05a259 100644 --- a/src/ast/nodes/ChainExpression.ts +++ b/src/ast/nodes/ChainExpression.ts @@ -1,3 +1,4 @@ +import type MagicString from 'magic-string'; import type { DeoptimizableEntity } from '../DeoptimizableEntity'; import type { HasEffectsContext } from '../ExecutionContext'; import type { ObjectPath, PathTracker } from '../utils/PathTracker'; @@ -27,4 +28,8 @@ export default class ChainExpression extends NodeBase implements DeoptimizableEn if (this.expression.isSkippedAsOptional(this)) return false; return this.expression.hasEffects(context); } + + removeAnnotations(code: MagicString) { + this.expression.removeAnnotations(code); + } } diff --git a/src/ast/nodes/ClassBody.ts b/src/ast/nodes/ClassBody.ts index 21da58a44..325b2f327 100644 --- a/src/ast/nodes/ClassBody.ts +++ b/src/ast/nodes/ClassBody.ts @@ -1,6 +1,7 @@ import type { InclusionContext } from '../ExecutionContext'; +import type ChildScope from '../scopes/ChildScope'; import ClassBodyScope from '../scopes/ClassBodyScope'; -import type Scope from '../scopes/Scope'; + import type MethodDefinition from './MethodDefinition'; import type * as NodeType from './NodeType'; import type PropertyDefinition from './PropertyDefinition'; @@ -12,13 +13,13 @@ export default class ClassBody extends NodeBase { declare scope: ClassBodyScope; declare type: NodeType.tClassBody; - createScope(parentScope: Scope): void { - this.scope = new ClassBodyScope(parentScope, this.parent as ClassNode, this.context); + createScope(parentScope: ChildScope): void { + this.scope = new ClassBodyScope(parentScope, this.parent as ClassNode, this.scope.context); } include(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void { this.included = true; - this.context.includeVariableInModule(this.scope.thisVariable); + this.scope.context.includeVariableInModule(this.scope.thisVariable); for (const definition of this.body) { definition.include(context, includeChildrenRecursively); } @@ -28,7 +29,7 @@ export default class ClassBody extends NodeBase { const body: NodeBase[] = (this.body = []); for (const definition of esTreeNode.body) { body.push( - new (this.context.getNodeConstructor(definition.type))( + new (this.scope.context.getNodeConstructor(definition.type))( definition, this, definition.static ? this.scope : this.scope.instanceScope diff --git a/src/ast/nodes/ConditionalExpression.ts b/src/ast/nodes/ConditionalExpression.ts index c8969d5f9..5645a23f9 100644 --- a/src/ast/nodes/ConditionalExpression.ts +++ b/src/ast/nodes/ConditionalExpression.ts @@ -6,7 +6,6 @@ import { findNonWhiteSpace, removeLineBreaks } from '../../utils/renderHelpers'; -import { removeAnnotations } from '../../utils/treeshakeNode'; import type { DeoptimizableEntity } from '../DeoptimizableEntity'; import type { HasEffectsContext, InclusionContext } from '../ExecutionContext'; import type { NodeInteraction, NodeInteractionCalled } from '../NodeInteractions'; @@ -14,6 +13,7 @@ import type { ObjectPath, PathTracker } from '../utils/PathTracker'; import { EMPTY_PATH, SHARED_RECURSION_TRACKER, UNKNOWN_PATH } from '../utils/PathTracker'; import type * as NodeType from './NodeType'; import type SpreadElement from './SpreadElement'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import type { ExpressionEntity, LiteralValueOrUnknown } from './shared/Expression'; import { UnknownValue } from './shared/Expression'; import { MultiExpression } from './shared/MultiExpression'; @@ -26,8 +26,14 @@ export default class ConditionalExpression extends NodeBase implements Deoptimiz declare test: ExpressionNode; declare type: NodeType.tConditionalExpression; + get isBranchResolutionAnalysed(): boolean { + return isFlagSet(this.flags, Flag.isBranchResolutionAnalysed); + } + set isBranchResolutionAnalysed(value: boolean) { + this.flags = setFlag(this.flags, Flag.isBranchResolutionAnalysed, value); + } + private expressionsToBeDeoptimized: DeoptimizableEntity[] = []; - private isBranchResolutionAnalysed = false; private usedBranch: ExpressionNode | null = null; deoptimizeArgumentsOnInteractionAtPath( @@ -156,6 +162,10 @@ export default class ConditionalExpression extends NodeBase implements Deoptimiz } } + removeAnnotations(code: MagicString) { + this.test.removeAnnotations(code); + } + render( code: MagicString, options: RenderOptions, @@ -186,7 +196,7 @@ export default class ConditionalExpression extends NodeBase implements Deoptimiz if (this.consequent.included) { code.remove(colonPos, this.end); } - removeAnnotations(this, code); + this.test.removeAnnotations(code); usedBranch!.render(code, options, { isCalleeOfRenderedParent, preventASI: true, diff --git a/src/ast/nodes/ExportAllDeclaration.ts b/src/ast/nodes/ExportAllDeclaration.ts index bd01cf451..e4bb9f893 100644 --- a/src/ast/nodes/ExportAllDeclaration.ts +++ b/src/ast/nodes/ExportAllDeclaration.ts @@ -7,7 +7,7 @@ import type * as NodeType from './NodeType'; import { NodeBase } from './shared/Node'; export default class ExportAllDeclaration extends NodeBase { - declare assertions: ImportAttribute[]; + declare attributes: ImportAttribute[]; declare exported: Identifier | null; declare needsBoundaries: true; declare source: Literal; @@ -18,7 +18,7 @@ export default class ExportAllDeclaration extends NodeBase { } initialise(): void { - this.context.addExport(this); + this.scope.context.addExport(this); } render(code: MagicString, _options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void { diff --git a/src/ast/nodes/ExportDefaultDeclaration.ts b/src/ast/nodes/ExportDefaultDeclaration.ts index 7a6266676..3101bd8ce 100644 --- a/src/ast/nodes/ExportDefaultDeclaration.ts +++ b/src/ast/nodes/ExportDefaultDeclaration.ts @@ -44,7 +44,7 @@ export default class ExportDefaultDeclaration extends NodeBase { include(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void { super.include(context, includeChildrenRecursively); if (includeChildrenRecursively) { - this.context.includeVariableInModule(this.variable); + this.scope.context.includeVariableInModule(this.variable); } } @@ -53,11 +53,15 @@ export default class ExportDefaultDeclaration extends NodeBase { this.declarationName = (declaration.id && declaration.id.name) || (this.declaration as Identifier).name; this.variable = this.scope.addExportDefaultDeclaration( - this.declarationName || this.context.getModuleName(), + this.declarationName || this.scope.context.getModuleName(), this, - this.context + this.scope.context ); - this.context.addExport(this); + this.scope.context.addExport(this); + } + + removeAnnotations(code: MagicString) { + this.declaration.removeAnnotations(code); } render(code: MagicString, options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void { diff --git a/src/ast/nodes/ExportNamedDeclaration.ts b/src/ast/nodes/ExportNamedDeclaration.ts index 55c0f1f29..08d457e22 100644 --- a/src/ast/nodes/ExportNamedDeclaration.ts +++ b/src/ast/nodes/ExportNamedDeclaration.ts @@ -11,7 +11,7 @@ import type VariableDeclaration from './VariableDeclaration'; import { type Node, NodeBase } from './shared/Node'; export default class ExportNamedDeclaration extends NodeBase { - declare assertions: ImportAttribute[]; + declare attributes: ImportAttribute[]; declare declaration: FunctionDeclaration | ClassDeclaration | VariableDeclaration | null; declare needsBoundaries: true; declare source: Literal | null; @@ -28,7 +28,11 @@ export default class ExportNamedDeclaration extends NodeBase { } initialise(): void { - this.context.addExport(this); + this.scope.context.addExport(this); + } + + removeAnnotations(code: MagicString) { + this.declaration?.removeAnnotations(code); } render(code: MagicString, options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void { diff --git a/src/ast/nodes/ExpressionStatement.ts b/src/ast/nodes/ExpressionStatement.ts index 67e545195..5f78477c2 100644 --- a/src/ast/nodes/ExpressionStatement.ts +++ b/src/ast/nodes/ExpressionStatement.ts @@ -16,18 +16,24 @@ export default class ExpressionStatement extends StatementBase { this.directive !== 'use strict' && this.parent.type === NodeType.Program ) { - this.context.log( + this.scope.context.log( LOGLEVEL_WARN, // This is necessary, because either way (deleting or not) can lead to errors. - logModuleLevelDirective(this.directive, this.context.module.id), + logModuleLevelDirective(this.directive, this.scope.context.module.id), this.start ); } } + removeAnnotations(code: MagicString) { + this.expression.removeAnnotations(code); + } + render(code: MagicString, options: RenderOptions): void { super.render(code, options); - if (this.included) this.insertSemicolon(code); + if (code.original[this.end - 1] !== ';') { + code.appendLeft(this.end, ';'); + } } shouldBeIncluded(context: InclusionContext): boolean { diff --git a/src/ast/nodes/ForInStatement.ts b/src/ast/nodes/ForInStatement.ts index c18361512..1a32c8dd4 100644 --- a/src/ast/nodes/ForInStatement.ts +++ b/src/ast/nodes/ForInStatement.ts @@ -2,7 +2,7 @@ import type MagicString from 'magic-string'; import { NO_SEMICOLON, type RenderOptions } from '../../utils/renderHelpers'; import type { HasEffectsContext, InclusionContext } from '../ExecutionContext'; import BlockScope from '../scopes/BlockScope'; -import type Scope from '../scopes/Scope'; +import type ChildScope from '../scopes/ChildScope'; import { EMPTY_PATH } from '../utils/PathTracker'; import type MemberExpression from './MemberExpression'; import type * as NodeType from './NodeType'; @@ -23,8 +23,8 @@ export default class ForInStatement extends StatementBase { declare right: ExpressionNode; declare type: NodeType.tForInStatement; - createScope(parentScope: Scope): void { - this.scope = new BlockScope(parentScope); + createScope(parentScope: ChildScope): void { + this.scope = new BlockScope(parentScope, this.scope.context); } hasEffects(context: HasEffectsContext): boolean { @@ -60,6 +60,6 @@ export default class ForInStatement extends StatementBase { protected applyDeoptimizations(): void { this.deoptimized = true; this.left.deoptimizePath(EMPTY_PATH); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } diff --git a/src/ast/nodes/ForOfStatement.ts b/src/ast/nodes/ForOfStatement.ts index ea4f40795..434ca9355 100644 --- a/src/ast/nodes/ForOfStatement.ts +++ b/src/ast/nodes/ForOfStatement.ts @@ -2,11 +2,12 @@ import type MagicString from 'magic-string'; import { NO_SEMICOLON, type RenderOptions } from '../../utils/renderHelpers'; import type { InclusionContext } from '../ExecutionContext'; import BlockScope from '../scopes/BlockScope'; -import type Scope from '../scopes/Scope'; +import type ChildScope from '../scopes/ChildScope'; import { EMPTY_PATH, UNKNOWN_PATH } from '../utils/PathTracker'; import type MemberExpression from './MemberExpression'; import type * as NodeType from './NodeType'; import type VariableDeclaration from './VariableDeclaration'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { UNKNOWN_EXPRESSION } from './shared/Expression'; import { type ExpressionNode, @@ -18,14 +19,20 @@ import type { PatternNode } from './shared/Pattern'; import { includeLoopBody } from './shared/loops'; export default class ForOfStatement extends StatementBase { - declare await: boolean; declare body: StatementNode; declare left: VariableDeclaration | PatternNode | MemberExpression; declare right: ExpressionNode; declare type: NodeType.tForOfStatement; - createScope(parentScope: Scope): void { - this.scope = new BlockScope(parentScope); + get await(): boolean { + return isFlagSet(this.flags, Flag.await); + } + set await(value: boolean) { + this.flags = setFlag(this.flags, Flag.await, value); + } + + createScope(parentScope: ChildScope): void { + this.scope = new BlockScope(parentScope, this.scope.context); } hasEffects(): boolean { @@ -61,6 +68,6 @@ export default class ForOfStatement extends StatementBase { this.deoptimized = true; this.left.deoptimizePath(EMPTY_PATH); this.right.deoptimizePath(UNKNOWN_PATH); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } diff --git a/src/ast/nodes/ForStatement.ts b/src/ast/nodes/ForStatement.ts index 4a88250c2..d3c134f35 100644 --- a/src/ast/nodes/ForStatement.ts +++ b/src/ast/nodes/ForStatement.ts @@ -2,7 +2,7 @@ import type MagicString from 'magic-string'; import { NO_SEMICOLON, type RenderOptions } from '../../utils/renderHelpers'; import type { HasEffectsContext, InclusionContext } from '../ExecutionContext'; import BlockScope from '../scopes/BlockScope'; -import type Scope from '../scopes/Scope'; +import type ChildScope from '../scopes/ChildScope'; import type * as NodeType from './NodeType'; import type VariableDeclaration from './VariableDeclaration'; import { @@ -20,8 +20,8 @@ export default class ForStatement extends StatementBase { declare type: NodeType.tForStatement; declare update: ExpressionNode | null; - createScope(parentScope: Scope): void { - this.scope = new BlockScope(parentScope); + createScope(parentScope: ChildScope): void { + this.scope = new BlockScope(parentScope, this.scope.context); } hasEffects(context: HasEffectsContext): boolean { diff --git a/src/ast/nodes/Identifier.ts b/src/ast/nodes/Identifier.ts index fdecf19a1..22d439f75 100644 --- a/src/ast/nodes/Identifier.ts +++ b/src/ast/nodes/Identifier.ts @@ -2,7 +2,6 @@ import isReference, { type NodeWithFieldDefinition } from 'is-reference'; import type MagicString from 'magic-string'; import type { NormalizedTreeshakingOptions } from '../../rollup/types'; import { BLANK } from '../../utils/blank'; -import { logIllegalImportReassignment } from '../../utils/logs'; import { PureFunctionKey } from '../../utils/pureFunctions'; import type { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers'; import type { DeoptimizableEntity } from '../DeoptimizableEntity'; @@ -21,6 +20,7 @@ import LocalVariable from '../variables/LocalVariable'; import type Variable from '../variables/Variable'; import * as NodeType from './NodeType'; import type SpreadElement from './SpreadElement'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { type ExpressionEntity, type LiteralValueOrUnknown, @@ -43,7 +43,17 @@ export default class Identifier extends NodeBase implements PatternNode { declare name: string; declare type: NodeType.tIdentifier; variable: Variable | null = null; - private isTDZAccess: boolean | null = null; + + private get isTDZAccess(): boolean | null { + if (!isFlagSet(this.flags, Flag.tdzAccessDefined)) { + return null; + } + return isFlagSet(this.flags, Flag.tdzAccess); + } + private set isTDZAccess(value: boolean) { + this.flags = setFlag(this.flags, Flag.tdzAccessDefined, true); + this.flags = setFlag(this.flags, Flag.tdzAccess, value); + } addExportedVariables( variables: Variable[], @@ -63,10 +73,10 @@ export default class Identifier extends NodeBase implements PatternNode { declare(kind: string, init: ExpressionEntity): LocalVariable[] { let variable: LocalVariable; - const { treeshake } = this.context.options; + const { treeshake } = this.scope.context.options; switch (kind) { case 'var': { - variable = this.scope.addDeclaration(this, this.context, init, true); + variable = this.scope.addDeclaration(this, this.scope.context, init, true); if (treeshake && treeshake.correctVarValueBeforeDeclaration) { // Necessary to make sure the init is deoptimized. We cannot call deoptimizePath here. variable.markInitializersForDeoptimization(); @@ -75,13 +85,13 @@ export default class Identifier extends NodeBase implements PatternNode { } case 'function': { // in strict mode, functions are only hoisted within a scope but not across block scopes - variable = this.scope.addDeclaration(this, this.context, init, false); + variable = this.scope.addDeclaration(this, this.scope.context, init, false); break; } case 'let': case 'const': case 'class': { - variable = this.scope.addDeclaration(this, this.context, init, false); + variable = this.scope.addDeclaration(this, this.scope.context, init, false); break; } case 'parameter': { @@ -107,9 +117,6 @@ export default class Identifier extends NodeBase implements PatternNode { } deoptimizePath(path: ObjectPath): void { - if (path.length === 0 && !this.scope.contains(this.name)) { - this.disallowImportReassignment(); - } // We keep conditional chaining because an unknown Node could have an // Identifier as property that might be deoptimized by default this.variable?.deoptimizePath(path); @@ -145,7 +152,8 @@ export default class Identifier extends NodeBase implements PatternNode { return true; } return ( - (this.context.options.treeshake as NormalizedTreeshakingOptions).unknownGlobalSideEffects && + (this.scope.context.options.treeshake as NormalizedTreeshakingOptions) + .unknownGlobalSideEffects && this.variable instanceof GlobalVariable && !this.isPureFunction(EMPTY_PATH) && this.variable.hasEffectsOnInteractionAtPath( @@ -188,7 +196,7 @@ export default class Identifier extends NodeBase implements PatternNode { if (!this.included) { this.included = true; if (this.variable !== null) { - this.context.includeVariableInModule(this.variable); + this.scope.context.includeVariableInModule(this.variable); } } } @@ -202,7 +210,8 @@ export default class Identifier extends NodeBase implements PatternNode { isPossibleTDZ(): boolean { // return cached value to avoid issues with the next tree-shaking pass - if (this.isTDZAccess !== null) return this.isTDZAccess; + const cachedTdzAccess = this.isTDZAccess; + if (cachedTdzAccess !== null) return cachedTdzAccess; if ( !( @@ -211,7 +220,7 @@ export default class Identifier extends NodeBase implements PatternNode { this.variable.kind in tdzVariableKinds && // we ignore possible TDZs due to circular module dependencies as // otherwise we get many false positives - this.variable.module === this.context.module + this.variable.module === this.scope.context.module ) ) { return (this.isTDZAccess = false); @@ -275,17 +284,10 @@ export default class Identifier extends NodeBase implements PatternNode { this.deoptimized = true; if (this.variable instanceof LocalVariable) { this.variable.consolidateInitializers(); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } - private disallowImportReassignment(): never { - return this.context.error( - logIllegalImportReassignment(this.name, this.context.module.id), - this.start - ); - } - private getVariableRespectingTDZ(): ExpressionEntity | null { if (this.isPossibleTDZ()) { return UNKNOWN_EXPRESSION; @@ -294,7 +296,7 @@ export default class Identifier extends NodeBase implements PatternNode { } private isPureFunction(path: ObjectPath) { - let currentPureFunction = this.context.manualPureFunctions[this.name]; + let currentPureFunction = this.scope.context.manualPureFunctions[this.name]; for (const segment of path) { if (currentPureFunction) { if (currentPureFunction[PureFunctionKey]) { diff --git a/src/ast/nodes/IfStatement.ts b/src/ast/nodes/IfStatement.ts index 47c43aa19..845cc4130 100644 --- a/src/ast/nodes/IfStatement.ts +++ b/src/ast/nodes/IfStatement.ts @@ -67,15 +67,15 @@ export default class IfStatement extends StatementBase implements DeoptimizableE } parseNode(esTreeNode: GenericEsTreeNode): void { - this.consequentScope = new TrackingScope(this.scope); - this.consequent = new (this.context.getNodeConstructor(esTreeNode.consequent.type))( + this.consequentScope = new TrackingScope(this.scope, this.scope.context); + this.consequent = new (this.scope.context.getNodeConstructor(esTreeNode.consequent.type))( esTreeNode.consequent, this, this.consequentScope ); if (esTreeNode.alternate) { - this.alternateScope = new TrackingScope(this.scope); - this.alternate = new (this.context.getNodeConstructor(esTreeNode.alternate.type))( + this.alternateScope = new TrackingScope(this.scope, this.scope.context); + this.alternate = new (this.scope.context.getNodeConstructor(esTreeNode.alternate.type))( esTreeNode.alternate, this, this.alternateScope @@ -92,7 +92,7 @@ export default class IfStatement extends StatementBase implements DeoptimizableE const testValue = this.getTestValue(); const hoistedDeclarations: Identifier[] = []; const includesIfElse = this.test.included; - const noTreeshake = !this.context.options.treeshake; + const noTreeshake = !this.scope.context.options.treeshake; if (includesIfElse) { this.test.render(code, options); } else { diff --git a/src/ast/nodes/ImportDeclaration.ts b/src/ast/nodes/ImportDeclaration.ts index acf317b40..28e9b89bd 100644 --- a/src/ast/nodes/ImportDeclaration.ts +++ b/src/ast/nodes/ImportDeclaration.ts @@ -9,13 +9,13 @@ import type * as NodeType from './NodeType'; import { NodeBase } from './shared/Node'; export default class ImportDeclaration extends NodeBase { - declare assertions?: ImportAttribute[]; + declare attributes: ImportAttribute[]; declare needsBoundaries: true; declare source: Literal; declare specifiers: (ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier)[]; declare type: NodeType.tImportDeclaration; - // Do not bind specifiers or assertions + // Do not bind specifiers or attributes bind(): void {} hasEffects(): boolean { @@ -23,7 +23,7 @@ export default class ImportDeclaration extends NodeBase { } initialise(): void { - this.context.addImport(this); + this.scope.context.addImport(this); } render(code: MagicString, _options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void { diff --git a/src/ast/nodes/ImportExpression.ts b/src/ast/nodes/ImportExpression.ts index c37976a78..8ce6a9693 100644 --- a/src/ast/nodes/ImportExpression.ts +++ b/src/ast/nodes/ImportExpression.ts @@ -21,7 +21,6 @@ import FunctionExpression from './FunctionExpression'; import Identifier from './Identifier'; import MemberExpression from './MemberExpression'; import type * as NodeType from './NodeType'; -import type ObjectExpression from './ObjectExpression'; import ObjectPattern from './ObjectPattern'; import VariableDeclarator from './VariableDeclarator'; import { @@ -36,21 +35,19 @@ interface DynamicImportMechanism { right: string; } -// TODO once ImportExpression follows official ESTree specs with "null" as -// default, keys.ts should be updated export default class ImportExpression extends NodeBase { - declare arguments: ObjectExpression[] | undefined; + declare options: ExpressionNode | null; inlineNamespace: NamespaceVariable | null = null; declare source: ExpressionNode; declare type: NodeType.tImportExpression; - private assertions: string | null | true = null; + private attributes: string | null | true = null; private mechanism: DynamicImportMechanism | null = null; private namespaceExportName: string | false | undefined = undefined; private resolution: Module | ExternalModule | string | null = null; private resolutionString: string | null = null; - // Do not bind assertions + // Do not bind attributes bind(): void { this.source.bind(); } @@ -156,14 +153,14 @@ export default class ImportExpression extends NodeBase { include(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void { if (!this.included) { this.included = true; - this.context.includeDynamicImport(this); + this.scope.context.includeDynamicImport(this); this.scope.addAccessedDynamicImport(this); } this.source.include(context, includeChildrenRecursively); } initialise(): void { - this.context.addDynamicImport(this); + this.scope.context.addDynamicImport(this); } parseNode(esTreeNode: GenericEsTreeNode): void { @@ -209,14 +206,14 @@ export default class ImportExpression extends NodeBase { } else { this.source.render(code, options); } - if (this.assertions !== true) { - if (this.arguments) { + if (this.attributes !== true) { + if (this.options) { code.overwrite(this.source.end, this.end - 1, '', { contentOnly: true }); } - if (this.assertions) { + if (this.attributes) { code.appendLeft( this.end - 1, - `,${_}${getObject([['assert', this.assertions]], { + `,${_}${getObject([['assert', this.attributes]], { lineBreakIndent: null })}` ); @@ -233,14 +230,14 @@ export default class ImportExpression extends NodeBase { accessedGlobalsByScope: Map>, resolutionString: string, namespaceExportName: string | false | undefined, - assertions: string | null | true + attributes: string | null | true ): void { const { format } = options; this.inlineNamespace = null; this.resolution = resolution; this.resolutionString = resolutionString; this.namespaceExportName = namespaceExportName; - this.assertions = assertions; + this.attributes = attributes; const accessedGlobals = [...(accessedImportGlobals[format] || [])]; let helper: string | null; ({ helper, mechanism: this.mechanism } = this.getDynamicImportMechanismAndHelper( @@ -269,7 +266,6 @@ export default class ImportExpression extends NodeBase { exportMode: 'none' | 'named' | 'default' | 'external', { compact, - dynamicImportFunction, dynamicImportInCjs, format, generatedCode: { arrowFunctions }, @@ -282,7 +278,7 @@ export default class ImportExpression extends NodeBase { { customResolution: typeof this.resolution === 'string' ? this.resolution : null, format, - moduleId: this.context.module.id, + moduleId: this.scope.context.module.id, targetModuleId: this.resolution && typeof this.resolution !== 'string' ? this.resolution.id : null } @@ -365,17 +361,6 @@ export default class ImportExpression extends NodeBase { } }; } - case 'es': { - if (dynamicImportFunction) { - return { - helper: null, - mechanism: { - left: `${dynamicImportFunction}(`, - right: ')' - } - }; - } - } } return { helper: null, mechanism: null }; } diff --git a/src/ast/nodes/Literal.ts b/src/ast/nodes/Literal.ts index bc2b41ed1..9a66c7ac4 100644 --- a/src/ast/nodes/Literal.ts +++ b/src/ast/nodes/Literal.ts @@ -40,10 +40,10 @@ export default class Literal extends Node if ( path.length > 0 || // unknown literals can also be null but do not start with an "n" - (this.value === null && this.context.code.charCodeAt(this.start) !== 110) || + (this.value === null && this.scope.context.code.charCodeAt(this.start) !== 110) || typeof this.value === 'bigint' || // to support shims for regular expressions - this.context.code.charCodeAt(this.start) === 47 + this.scope.context.code.charCodeAt(this.start) === 47 ) { return UnknownValue; } diff --git a/src/ast/nodes/LogicalExpression.ts b/src/ast/nodes/LogicalExpression.ts index 757d8286f..55de14861 100644 --- a/src/ast/nodes/LogicalExpression.ts +++ b/src/ast/nodes/LogicalExpression.ts @@ -7,7 +7,6 @@ import { removeLineBreaks, type RenderOptions } from '../../utils/renderHelpers'; -import { removeAnnotations } from '../../utils/treeshakeNode'; import type { DeoptimizableEntity } from '../DeoptimizableEntity'; import type { HasEffectsContext, InclusionContext } from '../ExecutionContext'; import type { NodeInteraction, NodeInteractionCalled } from '../NodeInteractions'; @@ -19,6 +18,7 @@ import { UNKNOWN_PATH } from '../utils/PathTracker'; import type * as NodeType from './NodeType'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { type ExpressionEntity, type LiteralValueOrUnknown, @@ -35,9 +35,16 @@ export default class LogicalExpression extends NodeBase implements Deoptimizable declare right: ExpressionNode; declare type: NodeType.tLogicalExpression; + //private isBranchResolutionAnalysed = false; + private get isBranchResolutionAnalysed(): boolean { + return isFlagSet(this.flags, Flag.isBranchResolutionAnalysed); + } + private set isBranchResolutionAnalysed(value: boolean) { + this.flags = setFlag(this.flags, Flag.isBranchResolutionAnalysed, value); + } + // We collect deoptimization information if usedBranch !== null private expressionsToBeDeoptimized: DeoptimizableEntity[] = []; - private isBranchResolutionAnalysed = false; private usedBranch: ExpressionNode | null = null; deoptimizeArgumentsOnInteractionAtPath( @@ -54,7 +61,10 @@ export default class LogicalExpression extends NodeBase implements Deoptimizable const unusedBranch = this.usedBranch === this.left ? this.right : this.left; this.usedBranch = null; unusedBranch.deoptimizePath(UNKNOWN_PATH); - const { context, expressionsToBeDeoptimized } = this; + const { + scope: { context }, + expressionsToBeDeoptimized + } = this; this.expressionsToBeDeoptimized = EMPTY_ARRAY as unknown as DeoptimizableEntity[]; for (const expression of expressionsToBeDeoptimized) { expression.deoptimizeCache(); @@ -160,6 +170,10 @@ export default class LogicalExpression extends NodeBase implements Deoptimizable } } + removeAnnotations(code: MagicString) { + this.left.removeAnnotations(code); + } + render( code: MagicString, options: RenderOptions, @@ -182,10 +196,10 @@ export default class LogicalExpression extends NodeBase implements Deoptimizable if (preventASI) { removeLineBreaks(code, removePos, this.right.start); } + this.left.removeAnnotations(code); } else { code.remove(operatorPos, this.end); } - removeAnnotations(this, code); this.getUsedBranch()!.render(code, options, { isCalleeOfRenderedParent, preventASI, diff --git a/src/ast/nodes/MemberExpression.ts b/src/ast/nodes/MemberExpression.ts index ffb2dd487..045a0e921 100644 --- a/src/ast/nodes/MemberExpression.ts +++ b/src/ast/nodes/MemberExpression.ts @@ -35,6 +35,7 @@ import type * as NodeType from './NodeType'; import type PrivateIdentifier from './PrivateIdentifier'; import type SpreadElement from './SpreadElement'; import type Super from './Super'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { deoptimizeInteraction, type ExpressionEntity, @@ -95,19 +96,49 @@ export default class MemberExpression extends NodeBase implements DeoptimizableEntity, ChainElement { - declare computed: boolean; declare object: ExpressionNode | Super; - declare optional: boolean; declare property: ExpressionNode | PrivateIdentifier; declare propertyKey: ObjectPathKey | null; declare type: NodeType.tMemberExpression; variable: Variable | null = null; protected declare assignmentInteraction: NodeInteractionAssigned; private declare accessInteraction: NodeInteractionAccessed; - private assignmentDeoptimized = false; - private bound = false; private expressionsToBeDeoptimized: DeoptimizableEntity[] = []; - private isUndefined = false; + + get computed(): boolean { + return isFlagSet(this.flags, Flag.computed); + } + set computed(value: boolean) { + this.flags = setFlag(this.flags, Flag.computed, value); + } + + get optional(): boolean { + return isFlagSet(this.flags, Flag.optional); + } + set optional(value: boolean) { + this.flags = setFlag(this.flags, Flag.optional, value); + } + + private get assignmentDeoptimized(): boolean { + return isFlagSet(this.flags, Flag.assignmentDeoptimized); + } + private set assignmentDeoptimized(value: boolean) { + this.flags = setFlag(this.flags, Flag.assignmentDeoptimized, value); + } + + private get bound(): boolean { + return isFlagSet(this.flags, Flag.bound); + } + private set bound(value: boolean) { + this.flags = setFlag(this.flags, Flag.bound, value); + } + + private get isUndefined(): boolean { + return isFlagSet(this.flags, Flag.isUndefined); + } + private set isUndefined(value: boolean) { + this.flags = setFlag(this.flags, Flag.isUndefined, value); + } bind(): void { this.bound = true; @@ -117,7 +148,7 @@ export default class MemberExpression const resolvedVariable = resolveNamespaceVariables( baseVariable, path!.slice(1), - this.context + this.scope.context ); if (!resolvedVariable) { super.bind(); @@ -348,7 +379,7 @@ export default class MemberExpression protected applyDeoptimizations(): void { this.deoptimized = true; - const { propertyReadSideEffects } = this.context.options + const { propertyReadSideEffects } = this.scope.context.options .treeshake as NormalizedTreeshakingOptions; if ( // Namespaces are not bound and should not be deoptimized @@ -362,13 +393,13 @@ export default class MemberExpression [propertyKey], SHARED_RECURSION_TRACKER ); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } private applyAssignmentDeoptimization(): void { this.assignmentDeoptimized = true; - const { propertyReadSideEffects } = this.context.options + const { propertyReadSideEffects } = this.scope.context.options .treeshake as NormalizedTreeshakingOptions; if ( // Namespaces are not bound and should not be deoptimized @@ -381,7 +412,7 @@ export default class MemberExpression [this.getPropertyKey()], SHARED_RECURSION_TRACKER ); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } @@ -390,11 +421,11 @@ export default class MemberExpression const variable = this.scope.findVariable(this.object.name); if (variable.isNamespace) { if (this.variable) { - this.context.includeVariableInModule(this.variable); + this.scope.context.includeVariableInModule(this.variable); } - this.context.log( + this.scope.context.log( LOGLEVEL_WARN, - logIllegalImportReassignment(this.object.name, this.context.module.id), + logIllegalImportReassignment(this.object.name, this.scope.context.module.id), this.start ); } @@ -416,7 +447,7 @@ export default class MemberExpression } private hasAccessEffect(context: HasEffectsContext) { - const { propertyReadSideEffects } = this.context.options + const { propertyReadSideEffects } = this.scope.context.options .treeshake as NormalizedTreeshakingOptions; return ( !(this.variable || this.isUndefined) && @@ -437,7 +468,7 @@ export default class MemberExpression if (!this.included) { this.included = true; if (this.variable) { - this.context.includeVariableInModule(this.variable); + this.scope.context.includeVariableInModule(this.variable); } } this.object.include(context, includeChildrenRecursively); diff --git a/src/ast/nodes/MetaProperty.ts b/src/ast/nodes/MetaProperty.ts index e58de55d6..8d7476433 100644 --- a/src/ast/nodes/MetaProperty.ts +++ b/src/ast/nodes/MetaProperty.ts @@ -50,7 +50,7 @@ export default class MetaProperty extends NodeBase { if (!this.included) { this.included = true; if (this.meta.name === IMPORT) { - this.context.addImportMeta(this); + this.scope.context.addImportMeta(this); const parent = this.parent; const metaProperty = (this.metaProperty = parent instanceof MemberExpression && typeof parent.propertyKey === 'string' @@ -66,7 +66,9 @@ export default class MetaProperty extends NodeBase { render(code: MagicString, renderOptions: RenderOptions): void { const { format, pluginDriver, snippets } = renderOptions; const { - context: { module }, + scope: { + context: { module } + }, meta: { name }, metaProperty, parent, diff --git a/src/ast/nodes/NewExpression.ts b/src/ast/nodes/NewExpression.ts index 6c91ba90a..98e847d6f 100644 --- a/src/ast/nodes/NewExpression.ts +++ b/src/ast/nodes/NewExpression.ts @@ -67,6 +67,6 @@ export default class NewExpression extends NodeBase { EMPTY_PATH, SHARED_RECURSION_TRACKER ); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } diff --git a/src/ast/nodes/Program.ts b/src/ast/nodes/Program.ts index a2a256c70..e170353be 100644 --- a/src/ast/nodes/Program.ts +++ b/src/ast/nodes/Program.ts @@ -32,9 +32,9 @@ export default class Program extends NodeBase { hasEffects(context: HasEffectsContext): boolean { for (const node of this.body) { if (node.hasEffects(context)) { - if (this.context.options.experimentalLogSideEffects && !this.hasLoggedEffect) { + if (this.scope.context.options.experimentalLogSideEffects && !this.hasLoggedEffect) { this.hasLoggedEffect = true; - const { code, log, module } = this.context; + const { code, log, module } = this.scope.context; log( LOGLEVEL_INFO, logFirstSideEffect(code, module.id, locate(code, node.start, { offsetLine: 1 })!), diff --git a/src/ast/nodes/Property.ts b/src/ast/nodes/Property.ts index e8d5b7d60..bc7f42706 100644 --- a/src/ast/nodes/Property.ts +++ b/src/ast/nodes/Property.ts @@ -5,6 +5,7 @@ import type { HasEffectsContext } from '../ExecutionContext'; import { UnknownKey } from '../utils/PathTracker'; import type LocalVariable from '../variables/LocalVariable'; import type * as NodeType from './NodeType'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { type ExpressionEntity, UNKNOWN_EXPRESSION } from './shared/Expression'; import MethodBase from './shared/MethodBase'; import type { ExpressionNode } from './shared/Node'; @@ -13,11 +14,25 @@ import type { PatternNode } from './shared/Pattern'; export default class Property extends MethodBase implements PatternNode { declare key: ExpressionNode; declare kind: 'init' | 'get' | 'set'; - declare method: boolean; - declare shorthand: boolean; declare type: NodeType.tProperty; private declarationInit: ExpressionEntity | null = null; + //declare method: boolean; + get method(): boolean { + return isFlagSet(this.flags, Flag.method); + } + set method(value: boolean) { + this.flags = setFlag(this.flags, Flag.method, value); + } + + //declare shorthand: boolean; + get shorthand(): boolean { + return isFlagSet(this.flags, Flag.shorthand); + } + set shorthand(value: boolean) { + this.flags = setFlag(this.flags, Flag.shorthand, value); + } + declare(kind: string, init: ExpressionEntity): LocalVariable[] { this.declarationInit = init; return (this.value as PatternNode).declare(kind, UNKNOWN_EXPRESSION); @@ -25,8 +40,9 @@ export default class Property extends MethodBase implements PatternNode { hasEffects(context: HasEffectsContext): boolean { if (!this.deoptimized) this.applyDeoptimizations(); - const propertyReadSideEffects = (this.context.options.treeshake as NormalizedTreeshakingOptions) - .propertyReadSideEffects; + const propertyReadSideEffects = ( + this.scope.context.options.treeshake as NormalizedTreeshakingOptions + ).propertyReadSideEffects; return ( (this.parent.type === 'ObjectPattern' && propertyReadSideEffects === 'always') || this.key.hasEffects(context) || @@ -49,7 +65,7 @@ export default class Property extends MethodBase implements PatternNode { this.deoptimized = true; if (this.declarationInit !== null) { this.declarationInit.deoptimizePath([UnknownKey, UnknownKey]); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } } diff --git a/src/ast/nodes/PropertyDefinition.ts b/src/ast/nodes/PropertyDefinition.ts index e70688436..6f15cc7c1 100644 --- a/src/ast/nodes/PropertyDefinition.ts +++ b/src/ast/nodes/PropertyDefinition.ts @@ -4,6 +4,7 @@ import type { NodeInteraction, NodeInteractionCalled } from '../NodeInteractions import type { ObjectPath, PathTracker } from '../utils/PathTracker'; import type * as NodeType from './NodeType'; import type PrivateIdentifier from './PrivateIdentifier'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { type ExpressionEntity, type LiteralValueOrUnknown, @@ -13,12 +14,18 @@ import { import { type ExpressionNode, NodeBase } from './shared/Node'; export default class PropertyDefinition extends NodeBase { - declare computed: boolean; declare key: ExpressionNode | PrivateIdentifier; declare static: boolean; declare type: NodeType.tPropertyDefinition; declare value: ExpressionNode | null; + get computed(): boolean { + return isFlagSet(this.flags, Flag.computed); + } + set computed(value: boolean) { + this.flags = setFlag(this.flags, Flag.computed, value); + } + deoptimizeArgumentsOnInteractionAtPath( interaction: NodeInteraction, path: ObjectPath, diff --git a/src/ast/nodes/RestElement.ts b/src/ast/nodes/RestElement.ts index 5493078db..17ac00da8 100644 --- a/src/ast/nodes/RestElement.ts +++ b/src/ast/nodes/RestElement.ts @@ -48,7 +48,7 @@ export default class RestElement extends NodeBase implements PatternNode { this.deoptimized = true; if (this.declarationInit !== null) { this.declarationInit.deoptimizePath([UnknownKey, UnknownKey]); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } } diff --git a/src/ast/nodes/SequenceExpression.ts b/src/ast/nodes/SequenceExpression.ts index af12d2729..8ca3f731d 100644 --- a/src/ast/nodes/SequenceExpression.ts +++ b/src/ast/nodes/SequenceExpression.ts @@ -80,6 +80,10 @@ export default class SequenceExpression extends NodeBase { } } + removeAnnotations(code: MagicString) { + this.expressions[0].removeAnnotations(code); + } + render( code: MagicString, options: RenderOptions, diff --git a/src/ast/nodes/SpreadElement.ts b/src/ast/nodes/SpreadElement.ts index 88c3920ec..483781572 100644 --- a/src/ast/nodes/SpreadElement.ts +++ b/src/ast/nodes/SpreadElement.ts @@ -26,7 +26,7 @@ export default class SpreadElement extends NodeBase { hasEffects(context: HasEffectsContext): boolean { if (!this.deoptimized) this.applyDeoptimizations(); - const { propertyReadSideEffects } = this.context.options + const { propertyReadSideEffects } = this.scope.context.options .treeshake as NormalizedTreeshakingOptions; return ( this.argument.hasEffects(context) || @@ -45,6 +45,6 @@ export default class SpreadElement extends NodeBase { // Only properties of properties of the argument could become subject to reassignment // This will also reassign the return values of iterators this.argument.deoptimizePath([UnknownKey, UnknownKey]); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } diff --git a/src/ast/nodes/StaticBlock.ts b/src/ast/nodes/StaticBlock.ts index 563cda267..934009157 100644 --- a/src/ast/nodes/StaticBlock.ts +++ b/src/ast/nodes/StaticBlock.ts @@ -6,7 +6,7 @@ import { } from '../../utils/renderHelpers'; import type { HasEffectsContext, InclusionContext } from '../ExecutionContext'; import BlockScope from '../scopes/BlockScope'; -import type Scope from '../scopes/Scope'; +import type ChildScope from '../scopes/ChildScope'; import type * as NodeType from './NodeType'; import { type IncludeChildren, StatementBase, type StatementNode } from './shared/Node'; @@ -14,8 +14,8 @@ export default class StaticBlock extends StatementBase { declare body: readonly StatementNode[]; declare type: NodeType.tStaticBlock; - createScope(parentScope: Scope): void { - this.scope = new BlockScope(parentScope); + createScope(parentScope: ChildScope): void { + this.scope = new BlockScope(parentScope, this.scope.context); } hasEffects(context: HasEffectsContext): boolean { diff --git a/src/ast/nodes/Super.ts b/src/ast/nodes/Super.ts index afbed0234..5db71aed4 100644 --- a/src/ast/nodes/Super.ts +++ b/src/ast/nodes/Super.ts @@ -27,7 +27,7 @@ export default class Super extends NodeBase { include(): void { if (!this.included) { this.included = true; - this.context.includeVariableInModule(this.variable); + this.scope.context.includeVariableInModule(this.variable); } } } diff --git a/src/ast/nodes/SwitchStatement.ts b/src/ast/nodes/SwitchStatement.ts index 9dfb0154a..6646ba52d 100644 --- a/src/ast/nodes/SwitchStatement.ts +++ b/src/ast/nodes/SwitchStatement.ts @@ -7,7 +7,6 @@ import { } from '../ExecutionContext'; import BlockScope from '../scopes/BlockScope'; import type ChildScope from '../scopes/ChildScope'; -import type Scope from '../scopes/Scope'; import type * as NodeType from './NodeType'; import type SwitchCase from './SwitchCase'; import type { ExpressionNode, GenericEsTreeNode, IncludeChildren } from './shared/Node'; @@ -21,9 +20,9 @@ export default class SwitchStatement extends StatementBase { private declare defaultCase: number | null; private declare parentScope: ChildScope; - createScope(parentScope: Scope): void { - this.parentScope = parentScope as ChildScope; - this.scope = new BlockScope(parentScope); + createScope(parentScope: ChildScope): void { + this.parentScope = parentScope; + this.scope = new BlockScope(parentScope, this.scope.context); } hasEffects(context: HasEffectsContext): boolean { @@ -94,7 +93,7 @@ export default class SwitchStatement extends StatementBase { } parseNode(esTreeNode: GenericEsTreeNode) { - this.discriminant = new (this.context.getNodeConstructor(esTreeNode.discriminant.type))( + this.discriminant = new (this.scope.context.getNodeConstructor(esTreeNode.discriminant.type))( esTreeNode.discriminant, this, this.parentScope diff --git a/src/ast/nodes/TaggedTemplateExpression.ts b/src/ast/nodes/TaggedTemplateExpression.ts index c47bc8cd7..0af7367a9 100644 --- a/src/ast/nodes/TaggedTemplateExpression.ts +++ b/src/ast/nodes/TaggedTemplateExpression.ts @@ -28,7 +28,7 @@ export default class TaggedTemplateExpression extends CallExpressionBase { const variable = this.scope.findVariable(name); if (variable.isNamespace) { - this.context.log(LOGLEVEL_WARN, logCannotCallNamespace(name), this.start); + this.scope.context.log(LOGLEVEL_WARN, logCannotCallNamespace(name), this.start); } } } @@ -87,7 +87,7 @@ export default class TaggedTemplateExpression extends CallExpressionBase { EMPTY_PATH, SHARED_RECURSION_TRACKER ); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } protected getReturnExpression( diff --git a/src/ast/nodes/TemplateElement.ts b/src/ast/nodes/TemplateElement.ts index 96dcd267a..0e45ccf53 100644 --- a/src/ast/nodes/TemplateElement.ts +++ b/src/ast/nodes/TemplateElement.ts @@ -1,14 +1,21 @@ import type * as NodeType from './NodeType'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { type GenericEsTreeNode, NodeBase } from './shared/Node'; export default class TemplateElement extends NodeBase { - declare tail: boolean; declare type: NodeType.tTemplateElement; declare value: { cooked: string | null; raw: string; }; + get tail(): boolean { + return isFlagSet(this.flags, Flag.tail); + } + set tail(value: boolean) { + this.flags = setFlag(this.flags, Flag.tail, value); + } + // Do not try to bind value bind(): void {} diff --git a/src/ast/nodes/ThisExpression.ts b/src/ast/nodes/ThisExpression.ts index 490835e58..9841fde28 100644 --- a/src/ast/nodes/ThisExpression.ts +++ b/src/ast/nodes/ThisExpression.ts @@ -45,15 +45,17 @@ export default class ThisExpression extends NodeBase { include(): void { if (!this.included) { this.included = true; - this.context.includeVariableInModule(this.variable); + this.scope.context.includeVariableInModule(this.variable); } } initialise(): void { this.alias = - this.scope.findLexicalBoundary() instanceof ModuleScope ? this.context.moduleContext : null; + this.scope.findLexicalBoundary() instanceof ModuleScope + ? this.scope.context.moduleContext + : null; if (this.alias === 'undefined') { - this.context.log(LOGLEVEL_WARN, logThisIsUndefined(), this.start); + this.scope.context.log(LOGLEVEL_WARN, logThisIsUndefined(), this.start); } } diff --git a/src/ast/nodes/TryStatement.ts b/src/ast/nodes/TryStatement.ts index 8147d47b6..851d2cdd0 100644 --- a/src/ast/nodes/TryStatement.ts +++ b/src/ast/nodes/TryStatement.ts @@ -16,15 +16,16 @@ export default class TryStatement extends StatementBase { hasEffects(context: HasEffectsContext): boolean { return ( - ((this.context.options.treeshake as NormalizedTreeshakingOptions).tryCatchDeoptimization + ((this.scope.context.options.treeshake as NormalizedTreeshakingOptions).tryCatchDeoptimization ? this.block.body.length > 0 : this.block.hasEffects(context)) || !!this.finalizer?.hasEffects(context) ); } include(context: InclusionContext, includeChildrenRecursively: IncludeChildren): void { - const tryCatchDeoptimization = (this.context.options.treeshake as NormalizedTreeshakingOptions) - ?.tryCatchDeoptimization; + const tryCatchDeoptimization = ( + this.scope.context.options.treeshake as NormalizedTreeshakingOptions + )?.tryCatchDeoptimization; const { brokenFlow, includedLabels } = context; if (!this.directlyIncluded || !tryCatchDeoptimization) { this.included = true; diff --git a/src/ast/nodes/UnaryExpression.ts b/src/ast/nodes/UnaryExpression.ts index 18443dd12..980b29cc2 100644 --- a/src/ast/nodes/UnaryExpression.ts +++ b/src/ast/nodes/UnaryExpression.ts @@ -6,6 +6,7 @@ import { EMPTY_PATH, type ObjectPath, type PathTracker } from '../utils/PathTrac import Identifier from './Identifier'; import type { LiteralValue } from './Literal'; import type * as NodeType from './NodeType'; +import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; import { type LiteralValueOrUnknown, UnknownValue } from './shared/Expression'; import { type ExpressionNode, NodeBase } from './shared/Node'; @@ -24,9 +25,15 @@ const unaryOperators: { export default class UnaryExpression extends NodeBase { declare argument: ExpressionNode; declare operator: '!' | '+' | '-' | 'delete' | 'typeof' | 'void' | '~'; - declare prefix: boolean; declare type: NodeType.tUnaryExpression; + get prefix(): boolean { + return isFlagSet(this.flags, Flag.prefix); + } + set prefix(value: boolean) { + this.flags = setFlag(this.flags, Flag.prefix, value); + } + getLiteralValueAtPath( path: ObjectPath, recursionTracker: PathTracker, @@ -61,7 +68,7 @@ export default class UnaryExpression extends NodeBase { this.deoptimized = true; if (this.operator === 'delete') { this.argument.deoptimizePath(EMPTY_PATH); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } } diff --git a/src/ast/nodes/UpdateExpression.ts b/src/ast/nodes/UpdateExpression.ts index 3015dd14d..21d034a6a 100644 --- a/src/ast/nodes/UpdateExpression.ts +++ b/src/ast/nodes/UpdateExpression.ts @@ -88,6 +88,6 @@ export default class UpdateExpression extends NodeBase { const variable = this.scope.findVariable(this.argument.name); variable.isReassigned = true; } - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } diff --git a/src/ast/nodes/VariableDeclaration.ts b/src/ast/nodes/VariableDeclaration.ts index 0265bae99..8898d8aff 100644 --- a/src/ast/nodes/VariableDeclaration.ts +++ b/src/ast/nodes/VariableDeclaration.ts @@ -85,6 +85,10 @@ export default class VariableDeclaration extends NodeBase { } } + removeAnnotations(code: MagicString) { + this.declarations[0].removeAnnotations(code); + } + render( code: MagicString, options: RenderOptions, @@ -175,6 +179,7 @@ export default class VariableDeclaration extends NodeBase { for (const { node, start, separator, contentEnd, end } of separatedNodes) { if (!node.included) { code.remove(start, end); + node.removeAnnotations(code); continue; } node.render(code, options); diff --git a/src/ast/nodes/VariableDeclarator.ts b/src/ast/nodes/VariableDeclarator.ts index 2308c248f..33b22a0ca 100644 --- a/src/ast/nodes/VariableDeclarator.ts +++ b/src/ast/nodes/VariableDeclarator.ts @@ -46,6 +46,10 @@ export default class VariableDeclarator extends NodeBase { } } + removeAnnotations(code: MagicString) { + this.init?.removeAnnotations(code); + } + render(code: MagicString, options: RenderOptions): void { const { exportNamesByVariable, diff --git a/src/ast/nodes/shared/BitFlags.ts b/src/ast/nodes/shared/BitFlags.ts new file mode 100644 index 000000000..f32934306 --- /dev/null +++ b/src/ast/nodes/shared/BitFlags.ts @@ -0,0 +1,32 @@ +export const enum Flag { + included = 1 << 0, + deoptimized = 1 << 1, + tdzAccessDefined = 1 << 2, + tdzAccess = 1 << 3, + assignmentDeoptimized = 1 << 4, + bound = 1 << 5, + isUndefined = 1 << 6, + optional = 1 << 7, + async = 1 << 8, + deoptimizedReturn = 1 << 9, + computed = 1 << 10, + hasLostTrack = 1 << 11, + hasUnknownDeoptimizedInteger = 1 << 12, + hasUnknownDeoptimizedProperty = 1 << 13, + directlyIncluded = 1 << 14, + deoptimizeBody = 1 << 15, + isBranchResolutionAnalysed = 1 << 16, + await = 1 << 17, + method = 1 << 18, + shorthand = 1 << 19, + tail = 1 << 20, + prefix = 1 << 21 +} + +export function isFlagSet(flags: number, flag: Flag): boolean { + return (flags & flag) !== 0; +} + +export function setFlag(flags: number, flag: Flag, value: boolean): number { + return (flags & ~flag) | (-value & flag); +} diff --git a/src/ast/nodes/shared/CallExpressionBase.ts b/src/ast/nodes/shared/CallExpressionBase.ts index be04e2900..04c045b5d 100644 --- a/src/ast/nodes/shared/CallExpressionBase.ts +++ b/src/ast/nodes/shared/CallExpressionBase.ts @@ -72,7 +72,7 @@ export default abstract class CallExpressionBase extends NodeBase implements Deo deoptimizePath(path: ObjectPath): void { if ( path.length === 0 || - this.context.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path, this) + this.scope.context.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path, this) ) { return; } diff --git a/src/ast/nodes/shared/ClassNode.ts b/src/ast/nodes/shared/ClassNode.ts index b6c99e298..c9e6c9c03 100644 --- a/src/ast/nodes/shared/ClassNode.ts +++ b/src/ast/nodes/shared/ClassNode.ts @@ -3,7 +3,6 @@ import type { HasEffectsContext, InclusionContext } from '../../ExecutionContext import type { NodeInteraction, NodeInteractionCalled } from '../../NodeInteractions'; import { INTERACTION_CALLED } from '../../NodeInteractions'; import ChildScope from '../../scopes/ChildScope'; -import type Scope from '../../scopes/Scope'; import { EMPTY_PATH, type ObjectPath, @@ -29,8 +28,8 @@ export default class ClassNode extends NodeBase implements DeoptimizableEntity { private declare classConstructor: MethodDefinition | null; private objectEntity: ObjectEntity | null = null; - createScope(parentScope: Scope): void { - this.scope = new ChildScope(parentScope); + createScope(parentScope: ChildScope): void { + this.scope = new ChildScope(parentScope, this.scope.context); } deoptimizeArgumentsOnInteractionAtPath( @@ -131,7 +130,7 @@ export default class ClassNode extends NodeBase implements DeoptimizableEntity { definition.deoptimizePath(UNKNOWN_PATH); } } - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } private getObjectEntity(): ObjectEntity { diff --git a/src/ast/nodes/shared/Expression.ts b/src/ast/nodes/shared/Expression.ts index 6728ca26e..b1cf9ca68 100644 --- a/src/ast/nodes/shared/Expression.ts +++ b/src/ast/nodes/shared/Expression.ts @@ -6,6 +6,7 @@ import type { ObjectPath, PathTracker, SymbolToStringTag } from '../../utils/Pat import { UNKNOWN_PATH } from '../../utils/PathTracker'; import type { LiteralValue } from '../Literal'; import type SpreadElement from '../SpreadElement'; +import { Flag, isFlagSet, setFlag } from './BitFlags'; import type { IncludeChildren } from './Node'; export const UnknownValue = Symbol('Unknown Value'); @@ -26,7 +27,14 @@ export interface InclusionOptions { } export class ExpressionEntity implements WritableEntity { - included = false; + protected flags: number = 0; + + get included(): boolean { + return isFlagSet(this.flags, Flag.included); + } + set included(value: boolean) { + this.flags = setFlag(this.flags, Flag.included, value); + } deoptimizeArgumentsOnInteractionAtPath( interaction: NodeInteraction, diff --git a/src/ast/nodes/shared/FunctionBase.ts b/src/ast/nodes/shared/FunctionBase.ts index ec028d073..7b6124c84 100644 --- a/src/ast/nodes/shared/FunctionBase.ts +++ b/src/ast/nodes/shared/FunctionBase.ts @@ -16,6 +16,7 @@ import Identifier from '../Identifier'; import * as NodeType from '../NodeType'; import RestElement from '../RestElement'; import type SpreadElement from '../SpreadElement'; +import { Flag, isFlagSet, setFlag } from './BitFlags'; import type { ExpressionEntity, LiteralValueOrUnknown } from './Expression'; import { UNKNOWN_EXPRESSION, UNKNOWN_RETURN_EXPRESSION } from './Expression'; import { @@ -28,13 +29,26 @@ import type { ObjectEntity } from './ObjectEntity'; import type { PatternNode } from './Pattern'; export default abstract class FunctionBase extends NodeBase { - declare async: boolean; declare body: BlockStatement | ExpressionNode; declare params: readonly PatternNode[]; declare preventChildBlockScope: true; declare scope: ReturnValueScope; + + get async(): boolean { + return isFlagSet(this.flags, Flag.async); + } + set async(value: boolean) { + this.flags = setFlag(this.flags, Flag.async, value); + } + + get deoptimizedReturn(): boolean { + return isFlagSet(this.flags, Flag.deoptimizedReturn); + } + set deoptimizedReturn(value: boolean) { + this.flags = setFlag(this.flags, Flag.deoptimizedReturn, value); + } + protected objectEntity: ObjectEntity | null = null; - private deoptimizedReturn = false; deoptimizeArgumentsOnInteractionAtPath( interaction: NodeInteraction, @@ -110,7 +124,7 @@ export default abstract class FunctionBase extends NodeBase { if (!this.deoptimizedReturn) { this.deoptimizedReturn = true; this.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH); - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } return UNKNOWN_RETURN_EXPRESSION; } @@ -131,7 +145,7 @@ export default abstract class FunctionBase extends NodeBase { } if (this.async) { - const { propertyReadSideEffects } = this.context.options + const { propertyReadSideEffects } = this.scope.context.options .treeshake as NormalizedTreeshakingOptions; const returnExpression = this.scope.getReturnExpression(); if ( diff --git a/src/ast/nodes/shared/FunctionNode.ts b/src/ast/nodes/shared/FunctionNode.ts index 2d4564070..c328bd8ee 100644 --- a/src/ast/nodes/shared/FunctionNode.ts +++ b/src/ast/nodes/shared/FunctionNode.ts @@ -14,7 +14,6 @@ import { OBJECT_PROTOTYPE } from './ObjectPrototype'; import type { PatternNode } from './Pattern'; export default class FunctionNode extends FunctionBase { - declare async: boolean; declare body: BlockStatement; declare id: IdentifierWithVariable | null; declare params: readonly PatternNode[]; @@ -24,7 +23,7 @@ export default class FunctionNode extends FunctionBase { private declare constructedEntity: ObjectEntity; createScope(parentScope: FunctionScope): void { - this.scope = new FunctionScope(parentScope, this.context); + this.scope = new FunctionScope(parentScope, this.scope.context); this.constructedEntity = new ObjectEntity(Object.create(null), OBJECT_PROTOTYPE); // This makes sure that all deoptimizations of "this" are applied to the // constructed entity. diff --git a/src/ast/nodes/shared/MethodBase.ts b/src/ast/nodes/shared/MethodBase.ts index 1cb887c9d..b893dbc61 100644 --- a/src/ast/nodes/shared/MethodBase.ts +++ b/src/ast/nodes/shared/MethodBase.ts @@ -14,6 +14,7 @@ import { SHARED_RECURSION_TRACKER } from '../../utils/PathTracker'; import type PrivateIdentifier from '../PrivateIdentifier'; +import { Flag, isFlagSet, setFlag } from './BitFlags'; import { type ExpressionEntity, type LiteralValueOrUnknown, @@ -23,11 +24,17 @@ import { type ExpressionNode, NodeBase } from './Node'; import type { PatternNode } from './Pattern'; export default class MethodBase extends NodeBase implements DeoptimizableEntity { - declare computed: boolean; declare key: ExpressionNode | PrivateIdentifier; declare kind: 'constructor' | 'method' | 'init' | 'get' | 'set'; declare value: ExpressionNode | (ExpressionNode & PatternNode); + get computed(): boolean { + return isFlagSet(this.flags, Flag.computed); + } + set computed(value: boolean) { + this.flags = setFlag(this.flags, Flag.computed, value); + } + private accessedValue: [expression: ExpressionEntity, isPure: boolean] | null = null; deoptimizeArgumentsOnInteractionAtPath( diff --git a/src/ast/nodes/shared/MultiExpression.ts b/src/ast/nodes/shared/MultiExpression.ts index e5442452f..5981af20b 100644 --- a/src/ast/nodes/shared/MultiExpression.ts +++ b/src/ast/nodes/shared/MultiExpression.ts @@ -5,8 +5,6 @@ import type { ObjectPath, PathTracker } from '../../utils/PathTracker'; import { ExpressionEntity } from './Expression'; export class MultiExpression extends ExpressionEntity { - included = false; - constructor(private expressions: readonly ExpressionEntity[]) { super(); } diff --git a/src/ast/nodes/shared/Node.ts b/src/ast/nodes/shared/Node.ts index 8a3827dcd..a9bbecd9b 100644 --- a/src/ast/nodes/shared/Node.ts +++ b/src/ast/nodes/shared/Node.ts @@ -1,10 +1,11 @@ -import type * as acorn from 'acorn'; import { locate, type Location } from 'locate-character'; import type MagicString from 'magic-string'; import type { AstContext } from '../../../Module'; -import type { NormalizedTreeshakingOptions } from '../../../rollup/types'; -import type { RollupAnnotation } from '../../../utils/commentAnnotations'; -import { ANNOTATION_KEY, INVALID_COMMENT_KEY } from '../../../utils/commentAnnotations'; +import type { AstNode, NormalizedTreeshakingOptions } from '../../../rollup/types'; +import type { RollupAnnotation } from '../../../utils/convert-ast'; +import { ANNOTATION_KEY, INVALID_ANNOTATION_KEY } from '../../../utils/convert-ast'; +import { LOGLEVEL_WARN } from '../../../utils/logging'; +import { logInvalidAnnotation } from '../../../utils/logs'; import type { NodeRenderOptions, RenderOptions } from '../../../utils/renderHelpers'; import type { DeoptimizableEntity } from '../../DeoptimizableEntity'; import type { Entity } from '../../Entity'; @@ -15,15 +16,16 @@ import { } from '../../ExecutionContext'; import type { NodeInteractionAssigned } from '../../NodeInteractions'; import { INTERACTION_ASSIGNED } from '../../NodeInteractions'; -import { getAndCreateKeys, keys } from '../../keys'; +import { createKeysForNode, keys } from '../../keys'; import type ChildScope from '../../scopes/ChildScope'; import { EMPTY_PATH, UNKNOWN_PATH } from '../../utils/PathTracker'; import type Variable from '../../variables/Variable'; import type * as NodeType from '../NodeType'; +import { Flag, isFlagSet, setFlag } from './BitFlags'; import type { InclusionOptions } from './Expression'; import { ExpressionEntity } from './Expression'; -export interface GenericEsTreeNode extends acorn.Node { +export interface GenericEsTreeNode extends AstNode { [key: string]: any; } @@ -31,14 +33,13 @@ export const INCLUDE_PARAMETERS = 'variables' as const; export type IncludeChildren = boolean | typeof INCLUDE_PARAMETERS; export interface Node extends Entity { - annotations?: acorn.Comment[]; - context: AstContext; + annotations?: RollupAnnotation[]; end: number; - esTreeNode: GenericEsTreeNode | null; + esTreeNode?: GenericEsTreeNode; included: boolean; - keys: string[]; needsBoundaries?: boolean; parent: Node | { type?: string }; + scope: ChildScope; preventChildBlockScope?: boolean; start: number; type: string; @@ -95,6 +96,8 @@ export interface Node extends Entity { deoptimizeAccess: boolean ): void; + removeAnnotations(code: MagicString): void; + render(code: MagicString, options: RenderOptions, nodeRenderOptions?: NodeRenderOptions): void; /** @@ -132,10 +135,8 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { declare annotationPure?: boolean; declare annotations?: RollupAnnotation[]; - context: AstContext; declare end: number; - esTreeNode: acorn.Node | null; - keys: string[]; + esTreeNode?: AstNode; parent: Node | { context: AstContext; type: string }; declare scope: ChildScope; declare start: number; @@ -144,13 +145,19 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { * This will be populated during initialise if setAssignedValue is called. */ protected declare assignmentInteraction: NodeInteractionAssigned; + /** * Nodes can apply custom deoptimizations once they become part of the * executed code. To do this, they must initialize this as false, implement * applyDeoptimizations and call this from include and hasEffects if they have * custom handlers */ - protected deoptimized = false; + protected get deoptimized(): boolean { + return isFlagSet(this.flags, Flag.deoptimized); + } + protected set deoptimized(value: boolean) { + this.flags = setFlag(this.flags, Flag.deoptimized, value); + } constructor( esTreeNode: GenericEsTreeNode, @@ -161,15 +168,21 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { super(); // Nodes can opt-in to keep the AST if needed during the build pipeline. // Avoid true when possible as large AST takes up memory. - this.esTreeNode = keepEsTreeNode ? esTreeNode : null; - this.keys = keys[esTreeNode.type] || getAndCreateKeys(esTreeNode); + + if (keepEsTreeNode) { + this.esTreeNode = esTreeNode; + } + + const { type } = esTreeNode; + keys[type] ||= createKeysForNode(esTreeNode); + this.parent = parent; - this.context = parent.context; + this.scope = parentScope; this.createScope(parentScope); this.parseNode(esTreeNode); this.initialise(); - this.context.magicString.addSourcemapLocation(this.start); - this.context.magicString.addSourcemapLocation(this.end); + this.scope.context.magicString.addSourcemapLocation(this.start); + this.scope.context.magicString.addSourcemapLocation(this.end); } addExportedVariables( @@ -182,7 +195,7 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { * that require the scopes to be populated with variables. */ bind(): void { - for (const key of this.keys) { + for (const key of keys[this.type]) { const value = (this as GenericEsTreeNode)[key]; if (Array.isArray(value)) { for (const child of value) { @@ -204,7 +217,7 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { hasEffects(context: HasEffectsContext): boolean { if (!this.deoptimized) this.applyDeoptimizations(); - for (const key of this.keys) { + for (const key of keys[this.type]) { const value = (this as GenericEsTreeNode)[key]; if (value === null) continue; if (Array.isArray(value)) { @@ -230,7 +243,7 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { ): void { if (!this.deoptimized) this.applyDeoptimizations(); this.included = true; - for (const key of this.keys) { + for (const key of keys[this.type]) { const value = (this as GenericEsTreeNode)[key]; if (value === null) continue; if (Array.isArray(value)) { @@ -257,29 +270,39 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { */ initialise(): void {} - insertSemicolon(code: MagicString): void { - if (code.original[this.end - 1] !== ';') { - code.appendLeft(this.end, ';'); - } - } - parseNode(esTreeNode: GenericEsTreeNode, keepEsTreeNodeKeys?: string[]): void { for (const [key, value] of Object.entries(esTreeNode)) { - // That way, we can override this function to add custom initialisation and then call super.parseNode + // Skip properties defined on the class already. + // This way, we can override this function to add custom initialisation and then call super.parseNode + // Note: this doesn't skip properties with defined getters/setters which we use to pack wrap booleans + // in bitfields. Those are still assigned from the value in the esTreeNode. if (this.hasOwnProperty(key)) continue; + if (key.charCodeAt(0) === 95 /* _ */) { if (key === ANNOTATION_KEY) { const annotations = value as RollupAnnotation[]; this.annotations = annotations; - if ((this.context.options.treeshake as NormalizedTreeshakingOptions).annotations) { + if ((this.scope.context.options.treeshake as NormalizedTreeshakingOptions).annotations) { this.annotationNoSideEffects = annotations.some( - comment => comment.annotationType === 'noSideEffects' + comment => comment.type === 'noSideEffects' ); - this.annotationPure = annotations.some(comment => comment.annotationType === 'pure'); + this.annotationPure = annotations.some(comment => comment.type === 'pure'); + } + } else if (key === INVALID_ANNOTATION_KEY) { + for (const { start, end, type } of value as RollupAnnotation[]) { + this.scope.context.magicString.remove(start, end); + if (type === 'pure' || type === 'noSideEffects') { + this.scope.context.log( + LOGLEVEL_WARN, + logInvalidAnnotation( + this.scope.context.code.slice(start, end), + this.scope.context.module.id, + type + ), + start + ); + } } - } else if (key === INVALID_COMMENT_KEY) { - for (const { start, end } of value as acorn.Comment[]) - this.context.magicString.remove(start, end); } } else if (typeof value !== 'object' || value === null) { (this as GenericEsTreeNode)[key] = value; @@ -289,7 +312,7 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { (this as GenericEsTreeNode)[key].push( child === null ? null - : new (this.context.getNodeConstructor(child.type))( + : new (this.scope.context.getNodeConstructor(child.type))( child, this, this.scope, @@ -298,7 +321,7 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { ); } } else { - (this as GenericEsTreeNode)[key] = new (this.context.getNodeConstructor(value.type))( + (this as GenericEsTreeNode)[key] = new (this.scope.context.getNodeConstructor(value.type))( value, this, this.scope, @@ -308,8 +331,16 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { } } + removeAnnotations(code: MagicString): void { + if (this.annotations) { + for (const annotation of this.annotations) { + code.remove(annotation.start, annotation.end); + } + } + } + render(code: MagicString, options: RenderOptions): void { - for (const key of this.keys) { + for (const key of keys[this.type]) { const value = (this as GenericEsTreeNode)[key]; if (value === null) continue; if (Array.isArray(value)) { @@ -337,7 +368,7 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { */ protected applyDeoptimizations(): void { this.deoptimized = true; - for (const key of this.keys) { + for (const key of keys[this.type]) { const value = (this as GenericEsTreeNode)[key]; if (value === null) continue; if (Array.isArray(value)) { @@ -348,22 +379,28 @@ export class NodeBase extends ExpressionEntity implements ExpressionNode { value.deoptimizePath(UNKNOWN_PATH); } } - this.context.requestTreeshakingPass(); + this.scope.context.requestTreeshakingPass(); } } export { NodeBase as StatementBase }; export function locateNode(node: Node): Location & { file: string } { - const location = locate(node.context.code, node.start, { offsetLine: 1 }) as Location & { + const { + start, + scope: { + context: { code, fileName } + } + } = node; + const location = locate(code, start, { offsetLine: 1 }) as Location & { file: string; }; - location.file = node.context.fileName; + location.file = fileName; location.toString = () => JSON.stringify(location); return location; } export function logNode(node: Node): string { - return node.context.code.slice(node.start, node.end); + return node.scope.context.code.slice(node.start, node.end); } diff --git a/src/ast/nodes/shared/ObjectEntity.ts b/src/ast/nodes/shared/ObjectEntity.ts index ac981bc3e..bc28f4d66 100644 --- a/src/ast/nodes/shared/ObjectEntity.ts +++ b/src/ast/nodes/shared/ObjectEntity.ts @@ -10,6 +10,7 @@ import { UnknownKey, UnknownNonAccessorKey } from '../../utils/PathTracker'; +import { Flag, isFlagSet, setFlag } from './BitFlags'; import type { LiteralValueOrUnknown } from './Expression'; import { deoptimizeInteraction, @@ -32,15 +33,34 @@ export interface PropertyMap { const INTEGER_REG_EXP = /^\d+$/; export class ObjectEntity extends ExpressionEntity { + private get hasLostTrack(): boolean { + return isFlagSet(this.flags, Flag.hasLostTrack); + } + private set hasLostTrack(value: boolean) { + this.flags = setFlag(this.flags, Flag.hasLostTrack, value); + } + + private get hasUnknownDeoptimizedInteger(): boolean { + return isFlagSet(this.flags, Flag.hasUnknownDeoptimizedInteger); + } + private set hasUnknownDeoptimizedInteger(value: boolean) { + this.flags = setFlag(this.flags, Flag.hasUnknownDeoptimizedInteger, value); + } + + private get hasUnknownDeoptimizedProperty(): boolean { + return isFlagSet(this.flags, Flag.hasUnknownDeoptimizedProperty); + } + private set hasUnknownDeoptimizedProperty(value: boolean) { + this.flags = setFlag(this.flags, Flag.hasUnknownDeoptimizedProperty, value); + } + private readonly additionalExpressionsToBeDeoptimized = new Set(); private readonly allProperties: ExpressionEntity[] = []; private readonly deoptimizedPaths: Record = Object.create(null); private readonly expressionsToBeDeoptimizedByKey: Record = Object.create(null); private readonly gettersByKey: PropertyMap = Object.create(null); - private hasLostTrack = false; - private hasUnknownDeoptimizedInteger = false; - private hasUnknownDeoptimizedProperty = false; + private readonly propertiesAndGettersByKey: PropertyMap = Object.create(null); private readonly propertiesAndSettersByKey: PropertyMap = Object.create(null); private readonly settersByKey: PropertyMap = Object.create(null); diff --git a/src/ast/scopes/ChildScope.ts b/src/ast/scopes/ChildScope.ts index ff653f930..11b177688 100644 --- a/src/ast/scopes/ChildScope.ts +++ b/src/ast/scopes/ChildScope.ts @@ -1,3 +1,4 @@ +import type { AstContext } from '../../Module'; import type { InternalModuleFormat } from '../../rollup/types'; import { getSafeName } from '../../utils/safeName'; import type ImportExpression from '../nodes/ImportExpression'; @@ -8,11 +9,13 @@ import Scope from './Scope'; export default class ChildScope extends Scope { readonly accessedOutsideVariables = new Map(); parent: Scope; + readonly context: AstContext; private declare accessedDynamicImports?: Set; - constructor(parent: Scope) { + constructor(parent: Scope, context: AstContext) { super(); this.parent = parent; + this.context = context; parent.children.push(this); } diff --git a/src/ast/scopes/ClassBodyScope.ts b/src/ast/scopes/ClassBodyScope.ts index d92e63c4b..662ade5d6 100644 --- a/src/ast/scopes/ClassBodyScope.ts +++ b/src/ast/scopes/ClassBodyScope.ts @@ -10,12 +10,12 @@ export default class ClassBodyScope extends ChildScope { readonly thisVariable: LocalVariable; constructor(parent: Scope, classNode: ClassNode, context: AstContext) { - super(parent); + super(parent, context); this.variables.set( 'this', (this.thisVariable = new LocalVariable('this', null, classNode, context)) ); - this.instanceScope = new ChildScope(this); + this.instanceScope = new ChildScope(this, context); this.instanceScope.variables.set('this', new ThisVariable(context)); } diff --git a/src/ast/scopes/ModuleScope.ts b/src/ast/scopes/ModuleScope.ts index c976e3ff2..51239bca0 100644 --- a/src/ast/scopes/ModuleScope.ts +++ b/src/ast/scopes/ModuleScope.ts @@ -10,12 +10,10 @@ import ChildScope from './ChildScope'; import type GlobalScope from './GlobalScope'; export default class ModuleScope extends ChildScope { - readonly context: AstContext; declare parent: GlobalScope; constructor(parent: GlobalScope, context: AstContext) { - super(parent); - this.context = context; + super(parent, context); this.variables.set('this', new LocalVariable('this', null, UNDEFINED_EXPRESSION, context)); } diff --git a/src/ast/scopes/ParameterScope.ts b/src/ast/scopes/ParameterScope.ts index 38c9a3ed5..b12861018 100644 --- a/src/ast/scopes/ParameterScope.ts +++ b/src/ast/scopes/ParameterScope.ts @@ -12,13 +12,11 @@ export default class ParameterScope extends ChildScope { readonly hoistedBodyVarScope: ChildScope; parameters: readonly ParameterVariable[][] = []; - private readonly context: AstContext; private hasRest = false; constructor(parent: Scope, context: AstContext) { - super(parent); - this.context = context; - this.hoistedBodyVarScope = new ChildScope(this); + super(parent, context); + this.hoistedBodyVarScope = new ChildScope(this, context); } /** diff --git a/src/ast/variables/NamespaceVariable.ts b/src/ast/variables/NamespaceVariable.ts index 3ba0e5a20..22c8004c7 100644 --- a/src/ast/variables/NamespaceVariable.ts +++ b/src/ast/variables/NamespaceVariable.ts @@ -129,7 +129,7 @@ export default class NamespaceVariable extends Variable { format, freeze, indent: t, - namespaceToStringTag, + symbols, snippets: { _, cnst, getObject, getPropertyAccess, n, s } } = options; const memberVariables = this.getMemberVariables(); @@ -157,7 +157,7 @@ export default class NamespaceVariable extends Variable { )}])`; } else { // The helper to merge namespaces will also take care of freezing and toStringTag - if (namespaceToStringTag) { + if (symbols) { output = `/*#__PURE__*/Object.defineProperty(${output},${_}Symbol.toStringTag,${_}${getToStringTagValue( getObject )})`; @@ -185,7 +185,8 @@ export default class NamespaceVariable extends Variable { this.mergedNamespaces = mergedNamespaces; const moduleExecIndex = this.context.getModuleExecIndex(); for (const identifier of this.references) { - if (identifier.context.getModuleExecIndex() <= moduleExecIndex) { + const { context } = identifier.scope; + if (context.getModuleExecIndex() <= moduleExecIndex) { this.referencedEarly = true; break; } diff --git a/src/finalisers/amd.ts b/src/finalisers/amd.ts index 4ea6c6650..a81b942bc 100644 --- a/src/finalisers/amd.ts +++ b/src/finalisers/amd.ts @@ -30,8 +30,8 @@ export default function amd( esModule, externalLiveBindings, freeze, + generatedCode: { symbols }, interop, - namespaceToStringTag, strict }: NormalizedOutputOptions ): void { @@ -69,7 +69,7 @@ export default function amd( interop, externalLiveBindings, freeze, - namespaceToStringTag, + symbols, accessedGlobals, t, snippets @@ -88,7 +88,7 @@ export default function amd( let namespaceMarkers = getNamespaceMarkers( namedExportsMode && hasExports, isEntryFacade && (esModule === true || (esModule === 'if-default-prop' && hasDefaultExport)), - isModuleFacade && namespaceToStringTag, + isModuleFacade && symbols, snippets ); if (namespaceMarkers) { diff --git a/src/finalisers/cjs.ts b/src/finalisers/cjs.ts index 28fc9382e..c52e8e5ae 100644 --- a/src/finalisers/cjs.ts +++ b/src/finalisers/cjs.ts @@ -28,7 +28,7 @@ export default function cjs( externalLiveBindings, freeze, interop, - namespaceToStringTag, + generatedCode: { symbols }, strict }: NormalizedOutputOptions ): void { @@ -38,7 +38,7 @@ export default function cjs( let namespaceMarkers = getNamespaceMarkers( namedExportsMode && hasExports, isEntryFacade && (esModule === true || (esModule === 'if-default-prop' && hasDefaultExport)), - isModuleFacade && namespaceToStringTag, + isModuleFacade && symbols, snippets ); if (namespaceMarkers) { @@ -50,7 +50,7 @@ export default function cjs( interop, externalLiveBindings, freeze, - namespaceToStringTag, + symbols, accessedGlobals, t, snippets diff --git a/src/finalisers/es.ts b/src/finalisers/es.ts index ac49a9113..565cc08a3 100644 --- a/src/finalisers/es.ts +++ b/src/finalisers/es.ts @@ -8,7 +8,7 @@ import type { FinaliserOptions } from './index'; export default function es( magicString: MagicStringBundle, { accessedGlobals, indent: t, intro, outro, dependencies, exports, snippets }: FinaliserOptions, - { externalLiveBindings, freeze, namespaceToStringTag }: NormalizedOutputOptions + { externalLiveBindings, freeze, generatedCode: { symbols } }: NormalizedOutputOptions ): void { const { n } = snippets; @@ -21,7 +21,7 @@ export default function es( snippets, externalLiveBindings, freeze, - namespaceToStringTag + symbols ); if (intro) magicString.prepend(intro); @@ -37,8 +37,8 @@ function getImportBlock( { _ }: GenerateCodeSnippets ): string[] { const importBlock: string[] = []; - for (const { importPath, reexports, imports, name, assertions } of dependencies) { - const assertion = assertions ? `${_}assert${_}${assertions}` : ''; + for (const { importPath, reexports, imports, name, attributes } of dependencies) { + const assertion = attributes ? `${_}assert${_}${attributes}` : ''; const pathWithAssertion = `'${importPath}'${assertion};`; if (!reexports && !imports) { importBlock.push(`import${_}${pathWithAssertion}`); diff --git a/src/finalisers/iife.ts b/src/finalisers/iife.ts index 752bd28aa..c8962785e 100644 --- a/src/finalisers/iife.ts +++ b/src/finalisers/iife.ts @@ -39,7 +39,7 @@ export default function iife( globals, interop, name, - namespaceToStringTag, + generatedCode: { symbols }, strict }: NormalizedOutputOptions ): void { @@ -82,7 +82,7 @@ export default function iife( interop, externalLiveBindings, freeze, - namespaceToStringTag, + symbols, accessedGlobals, t, snippets @@ -121,7 +121,7 @@ export default function iife( let namespaceMarkers = getNamespaceMarkers( namedExportsMode && hasExports, esModule === true || (esModule === 'if-default-prop' && hasDefaultExport), - namespaceToStringTag, + symbols, snippets ); if (namespaceMarkers) { diff --git a/src/finalisers/shared/getInteropBlock.ts b/src/finalisers/shared/getInteropBlock.ts index 2c7bbeff6..374f89746 100644 --- a/src/finalisers/shared/getInteropBlock.ts +++ b/src/finalisers/shared/getInteropBlock.ts @@ -13,7 +13,7 @@ export default function getInteropBlock( interop: GetInterop, externalLiveBindings: boolean, freeze: boolean, - namespaceToStringTag: boolean, + symbols: boolean, accessedGlobals: Set, indent: string, snippets: GenerateCodeSnippets @@ -93,6 +93,6 @@ export default function getInteropBlock( snippets, externalLiveBindings, freeze, - namespaceToStringTag + symbols )}${interopStatements.length > 0 ? `${interopStatements.join(n)}${n}${n}` : ''}`; } diff --git a/src/finalisers/system.ts b/src/finalisers/system.ts index 49f07bd4d..090a44360 100644 --- a/src/finalisers/system.ts +++ b/src/finalisers/system.ts @@ -23,7 +23,7 @@ export default function system( externalLiveBindings, freeze, name, - namespaceToStringTag, + generatedCode: { symbols }, strict, systemNullSetters }: NormalizedOutputOptions @@ -79,15 +79,7 @@ export default function system( magicString .prepend( intro + - getHelpersBlock( - null, - accessedGlobals, - t, - snippets, - externalLiveBindings, - freeze, - namespaceToStringTag - ) + + getHelpersBlock(null, accessedGlobals, t, snippets, externalLiveBindings, freeze, symbols) + getHoistedExportsBlock(exports, t, snippets) ) .append( diff --git a/src/finalisers/umd.ts b/src/finalisers/umd.ts index 912a6c6e4..e4cecbffc 100644 --- a/src/finalisers/umd.ts +++ b/src/finalisers/umd.ts @@ -58,7 +58,7 @@ export default function umd( freeze, interop, name, - namespaceToStringTag, + generatedCode: { symbols }, globals, noConflict, strict @@ -188,7 +188,7 @@ export default function umd( interop, externalLiveBindings, freeze, - namespaceToStringTag, + symbols, accessedGlobals, t, snippets @@ -207,7 +207,7 @@ export default function umd( let namespaceMarkers = getNamespaceMarkers( namedExportsMode && hasExports, esModule === true || (esModule === 'if-default-prop' && hasDefaultExport), - namespaceToStringTag, + symbols, snippets ); if (namespaceMarkers) { diff --git a/src/rollup/rollup.ts b/src/rollup/rollup.ts index 2abf6c0e9..e642f92c6 100644 --- a/src/rollup/rollup.ts +++ b/src/rollup/rollup.ts @@ -5,6 +5,7 @@ import type { PluginDriver } from '../utils/PluginDriver'; import { getSortedValidatedPlugins } from '../utils/PluginDriver'; import { mkdir, writeFile } from '../utils/fs'; import { catchUnfinishedHookActions } from '../utils/hookActions'; +import initWasm from '../utils/initWasm'; import { getLogHandler } from '../utils/logHandler'; import { getLogger } from '../utils/logger'; import { LOGLEVEL_DEBUG, LOGLEVEL_INFO, LOGLEVEL_WARN } from '../utils/logging'; @@ -51,6 +52,8 @@ export async function rollupInternal( ); initialiseTimers(inputOptions); + await initWasm(); + const graph = new Graph(inputOptions, watcher); // remove the cache object from the memory after graph creation (cache is not used anymore) diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index 2f2ceb5d4..ac02d07a8 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -15,8 +15,6 @@ export interface RollupError extends RollupLog { watchFiles?: string[]; } -export type RollupWarning = RollupLog; - export interface RollupLog { binding?: string; cause?: unknown; @@ -56,7 +54,7 @@ export interface ExistingDecodedSourceMap { names: string[]; sourceRoot?: string; sources: string[]; - sourcesContent?: (string | null)[]; + sourcesContent?: string[]; version: number; x_google_ignoreList?: number[]; } @@ -67,7 +65,7 @@ export interface ExistingRawSourceMap { names: string[]; sourceRoot?: string; sources: string[]; - sourcesContent?: (string | null)[]; + sourcesContent?: string[]; version: number; x_google_ignoreList?: number[]; } @@ -84,7 +82,7 @@ export interface SourceMap { mappings: string; names: string[]; sources: string[]; - sourcesContent: (string | null)[]; + sourcesContent?: string[]; version: number; toString(): string; toUrl(): string; @@ -93,20 +91,20 @@ export interface SourceMap { export type SourceMapInput = ExistingRawSourceMap | string | null | { mappings: '' }; interface ModuleOptions { - assertions: Record; + attributes: Record; meta: CustomPluginOptions; moduleSideEffects: boolean | 'no-treeshake'; syntheticNamedExports: boolean | string; } export interface SourceDescription extends Partial> { - ast?: AcornNode; + ast?: AstNode; code: string; map?: SourceMapInput; } export interface TransformModuleJSON { - ast?: AcornNode; + ast?: AstNode; code: string; // note if plugins use new this.cache to opt-out auto transform cache customTransformCache: boolean; @@ -117,7 +115,7 @@ export interface TransformModuleJSON { } export interface ModuleJSON extends TransformModuleJSON, ModuleOptions { - ast: AcornNode; + ast: AstNode; dependencies: string[]; id: string; resolvedIds: ResolvedIdMap; @@ -173,7 +171,7 @@ export type EmittedFile = EmittedAsset | EmittedChunk | EmittedPrebuiltChunk; export type EmitFile = (emittedFile: EmittedFile) => string; interface ModuleInfo extends ModuleOptions { - ast: AcornNode | null; + ast: AstNode | null; code: string | null; dynamicImporters: readonly string[]; dynamicallyImportedIdResolutions: readonly ResolvedId[]; @@ -181,8 +179,6 @@ interface ModuleInfo extends ModuleOptions { exportedBindings: Record | null; exports: string[] | null; hasDefaultExport: boolean | null; - /** @deprecated Use `moduleSideEffects` instead */ - hasModuleSideEffects: boolean | 'no-treeshake'; id: string; implicitlyLoadedAfterOneOf: readonly string[]; implicitlyLoadedBefore: readonly string[]; @@ -205,6 +201,11 @@ type LoggingFunctionWithPosition = ( pos?: number | { column: number; line: number } ) => void; +export type ParseAst = ( + input: string, + options?: { allowReturnOutsideFunction?: boolean } +) => AstNode; + export interface PluginContext extends MinimalPluginContext { addWatchFile: (id: string) => void; cache: PluginCache; @@ -219,14 +220,12 @@ export interface PluginContext extends MinimalPluginContext { load: ( options: { id: string; resolveDependencies?: boolean } & Partial> ) => Promise; - /** @deprecated Use `this.getModuleIds` instead */ - moduleIds: IterableIterator; - parse: (input: string, options?: any) => AcornNode; + parse: ParseAst; resolve: ( source: string, importer?: string, options?: { - assertions?: Record; + attributes?: Record; custom?: CustomPluginOptions; isEntry?: boolean; skipSelf?: boolean; @@ -265,13 +264,13 @@ export type ResolveIdHook = ( this: PluginContext, source: string, importer: string | undefined, - options: { assertions: Record; custom?: CustomPluginOptions; isEntry: boolean } + options: { attributes: Record; custom?: CustomPluginOptions; isEntry: boolean } ) => ResolveIdResult; export type ShouldTransformCachedModuleHook = ( this: PluginContext, options: { - ast: AcornNode; + ast: AstNode; code: string; id: string; meta: CustomPluginOptions; @@ -287,8 +286,6 @@ export type IsExternal = ( isResolved: boolean ) => boolean; -export type IsPureModule = (id: string) => boolean | NullValue; - export type HasModuleSideEffects = (id: string, external: boolean) => boolean; export type LoadResult = SourceDescription | string | NullValue; @@ -323,9 +320,9 @@ export type RenderChunkHook = ( export type ResolveDynamicImportHook = ( this: PluginContext, - specifier: string | AcornNode, + specifier: string | AstNode, importer: string, - options: { assertions: Record } + options: { attributes: Record } ) => ResolveIdResult; export type ResolveImportMetaHook = ( @@ -566,31 +563,21 @@ export type SourcemapIgnoreListOption = ( export type InputPluginOption = MaybePromise; export interface InputOptions { - acorn?: Record; - acornInjectPlugins?: ((...arguments_: any[]) => unknown)[] | ((...arguments_: any[]) => unknown); cache?: boolean | RollupCache; context?: string; experimentalCacheExpiry?: number; experimentalLogSideEffects?: boolean; external?: ExternalOption; - /** @deprecated Use the "inlineDynamicImports" output option instead. */ - inlineDynamicImports?: boolean; input?: InputOption; logLevel?: LogLevelOption; makeAbsoluteExternalsRelative?: boolean | 'ifRelativeSource'; - /** @deprecated Use the "manualChunks" output option instead. */ - manualChunks?: ManualChunksOption; maxParallelFileOps?: number; - /** @deprecated Use the "maxParallelFileOps" option instead. */ - maxParallelFileReads?: number; moduleContext?: ((id: string) => string | NullValue) | { [id: string]: string }; onLog?: LogHandlerWithDefault; onwarn?: WarningHandlerWithDefault; perf?: boolean; plugins?: InputPluginOption; preserveEntrySignatures?: PreserveEntrySignaturesOption; - /** @deprecated Use the "preserveModules" output option instead. */ - preserveModules?: boolean; preserveSymlinks?: boolean; shimMissingExports?: boolean; strictDeprecations?: boolean; @@ -603,31 +590,20 @@ export interface InputOptionsWithPlugins extends InputOptions { } export interface NormalizedInputOptions { - acorn: Record; - acornInjectPlugins: (() => unknown)[]; cache: false | undefined | RollupCache; context: string; experimentalCacheExpiry: number; experimentalLogSideEffects: boolean; external: IsExternal; - /** @deprecated Use the "inlineDynamicImports" output option instead. */ - inlineDynamicImports: boolean | undefined; input: string[] | { [entryAlias: string]: string }; logLevel: LogLevelOption; makeAbsoluteExternalsRelative: boolean | 'ifRelativeSource'; - /** @deprecated Use the "manualChunks" output option instead. */ - manualChunks: ManualChunksOption | undefined; maxParallelFileOps: number; - /** @deprecated Use the "maxParallelFileOps" option instead. */ - maxParallelFileReads: number; moduleContext: (id: string) => string; onLog: LogHandler; - onwarn: (warning: RollupLog) => void; perf: boolean; plugins: Plugin[]; preserveEntrySignatures: PreserveEntrySignaturesOption; - /** @deprecated Use the "preserveModules" output option instead. */ - preserveModules: boolean | undefined; preserveSymlinks: boolean; shimMissingExports: boolean; strictDeprecations: boolean; @@ -703,17 +679,15 @@ export interface OutputOptions { compact?: boolean; // only required for bundle.write dir?: string; - /** @deprecated Use the "renderDynamicImport" plugin hook instead. */ - dynamicImportFunction?: string; dynamicImportInCjs?: boolean; entryFileNames?: string | ((chunkInfo: PreRenderedChunk) => string); esModule?: boolean | 'if-default-prop'; - /** @deprecated This option is no longer needed and ignored. */ - experimentalDeepDynamicChunkOptimization?: boolean; experimentalMinChunkSize?: number; exports?: 'default' | 'named' | 'none' | 'auto'; extend?: boolean; + /** @deprecated Use "externalImportAttributes" instead. */ externalImportAssertions?: boolean; + externalImportAttributes?: boolean; externalLiveBindings?: boolean; // only required for bundle.write file?: string; @@ -730,14 +704,10 @@ export interface OutputOptions { manualChunks?: ManualChunksOption; minifyInternalExports?: boolean; name?: string; - /** @deprecated Use "generatedCode.symbols" instead. */ - namespaceToStringTag?: boolean; noConflict?: boolean; outro?: string | AddonFunction; paths?: OptionsPaths; plugins?: OutputPluginOption; - /** @deprecated Use "generatedCode.constBindings" instead. */ - preferConst?: boolean; preserveModules?: boolean; preserveModulesRoot?: string; sanitizeFileName?: boolean | ((fileName: string) => string); @@ -760,17 +730,15 @@ export interface NormalizedOutputOptions { chunkFileNames: string | ((chunkInfo: PreRenderedChunk) => string); compact: boolean; dir: string | undefined; - /** @deprecated Use the "renderDynamicImport" plugin hook instead. */ - dynamicImportFunction: string | undefined; dynamicImportInCjs: boolean; entryFileNames: string | ((chunkInfo: PreRenderedChunk) => string); esModule: boolean | 'if-default-prop'; - /** @deprecated This option is no longer needed and ignored. */ - experimentalDeepDynamicChunkOptimization: boolean; experimentalMinChunkSize: number; exports: 'default' | 'named' | 'none' | 'auto'; extend: boolean; + /** @deprecated Use "externalImportAttributes" instead. */ externalImportAssertions: boolean; + externalImportAttributes: boolean; externalLiveBindings: boolean; file: string | undefined; footer: AddonFunction; @@ -786,14 +754,10 @@ export interface NormalizedOutputOptions { manualChunks: ManualChunksOption; minifyInternalExports: boolean; name: string | undefined; - /** @deprecated Use "generatedCode.symbols" instead. */ - namespaceToStringTag: boolean; noConflict: boolean; outro: AddonFunction; paths: OptionsPaths; plugins: OutputPlugin[]; - /** @deprecated Use "generatedCode.constBindings" instead. */ - preferConst: boolean; preserveModules: boolean; preserveModulesRoot: string | undefined; sanitizeFileName: (fileName: string) => string; @@ -997,7 +961,7 @@ export type RollupWatcher = AwaitingEventEmitter<{ export function watch(config: RollupWatchOptions | RollupWatchOptions[]): RollupWatcher; -interface AcornNode { +interface AstNode { end: number; start: number; type: string; diff --git a/src/utils/FileEmitter.ts b/src/utils/FileEmitter.ts index c5405eb4d..de2921320 100644 --- a/src/utils/FileEmitter.ts +++ b/src/utils/FileEmitter.ts @@ -11,7 +11,7 @@ import type { OutputChunk } from '../rollup/types'; import { BuildPhase } from './buildPhase'; -import { createHash } from './crypto'; +import { getXxhash } from './crypto'; import { getOrCreate } from './getOrCreate'; import { defaultHashSize } from './hashPlaceholders'; import { LOGLEVEL_WARN } from './logging'; @@ -33,10 +33,6 @@ import { extname } from './path'; import { isPathFragment } from './relativeId'; import { makeUnique, renderNamePattern } from './renderNamePattern'; -function getSourceHash(source: string | Uint8Array): string { - return createHash().update(source).digest('hex'); -} - function generateAssetFileName( name: string | undefined, source: string | Uint8Array, @@ -274,7 +270,7 @@ export class FileEmitter { if (consumedFile.fileName) { this.finalizeAdditionalAsset(consumedFile, consumedFile.source, output); } else { - const sourceHash = getSourceHash(consumedFile.source); + const sourceHash = getXxhash(consumedFile.source); getOrCreate(consumedAssetsByHash, sourceHash, () => []).push(consumedFile); } } else if (consumedFile.type === 'prebuilt-chunk') { @@ -294,7 +290,7 @@ export class FileEmitter { let referenceId = idBase; do { - referenceId = createHash().update(referenceId).digest('hex').slice(0, 8); + referenceId = getXxhash(referenceId).slice(0, 8).replaceAll('-', '$'); } while ( this.filesByReferenceId.has(referenceId) || this.outputFileEmitters.some(({ filesByReferenceId }) => filesByReferenceId.has(referenceId)) @@ -449,7 +445,7 @@ export class FileEmitter { // Deduplicate assets if an explicit fileName is not provided if (!fileName) { - const sourceHash = getSourceHash(source); + const sourceHash = getXxhash(source); fileName = fileNamesBySource.get(sourceHash); if (!fileName) { fileName = generateAssetFileName( diff --git a/src/utils/PluginContext.ts b/src/utils/PluginContext.ts index a00c262cb..a3ef169ce 100644 --- a/src/utils/PluginContext.ts +++ b/src/utils/PluginContext.ts @@ -13,15 +13,10 @@ import { BLANK, EMPTY_OBJECT } from './blank'; import { BuildPhase } from './buildPhase'; import { getLogHandler } from './logHandler'; import { LOGLEVEL_DEBUG, LOGLEVEL_INFO, LOGLEVEL_WARN } from './logging'; -import { - error, - logInvalidRollupPhaseForAddWatchFile, - logPluginError, - warnDeprecation -} from './logs'; +import { error, logInvalidRollupPhaseForAddWatchFile, logPluginError } from './logs'; import { normalizeLog } from './options/options'; +import { parseAst } from './parseAst'; import { ANONYMOUS_OUTPUT_PLUGIN_PREFIX, ANONYMOUS_PLUGIN_PREFIX } from './pluginUtils'; -import { URL_THIS_GETMODULEIDS } from './urls'; export function getPluginContext( plugin: Plugin, @@ -82,30 +77,15 @@ export function getPluginContext( rollupVersion, watchMode: graph.watchMode }, - get moduleIds() { - function* wrappedModuleIds() { - // We are wrapping this in a generator to only show the message once we are actually iterating - warnDeprecation( - `Accessing "this.moduleIds" on the plugin context by plugin ${plugin.name} is deprecated. The "this.getModuleIds" plugin context function should be used instead.`, - URL_THIS_GETMODULEIDS, - true, - options, - plugin.name - ); - yield* moduleIds; - } - - const moduleIds = graph.modulesById.keys(); - return wrappedModuleIds(); - }, - parse: graph.contextParse.bind(graph), - resolve(source, importer, { assertions, custom, isEntry, skipSelf } = BLANK) { + parse: parseAst, + resolve(source, importer, { attributes, custom, isEntry, skipSelf } = BLANK) { + skipSelf ??= true; return graph.moduleLoader.resolveId( source, importer, custom, isEntry, - assertions || EMPTY_OBJECT, + attributes || EMPTY_OBJECT, skipSelf ? [{ importer, plugin, source }] : null ); }, diff --git a/src/utils/collapseSourcemaps.ts b/src/utils/collapseSourcemaps.ts index 2dccee8d8..86417cadb 100644 --- a/src/utils/collapseSourcemaps.ts +++ b/src/utils/collapseSourcemaps.ts @@ -12,11 +12,11 @@ import { error, logConflictingSourcemapSources, logSourcemapBroken } from './log import { basename, dirname, relative, resolve } from './path'; class Source { - readonly content: string | null; + readonly content: string; readonly filename: string; isOriginal = true; - constructor(filename: string, content: string | null) { + constructor(filename: string, content: string) { this.filename = filename; this.content = content; } @@ -50,7 +50,7 @@ class Link { traceMappings() { const sources: string[] = []; const sourceIndexMap = new Map(); - const sourcesContent: (string | null)[] = []; + const sourcesContent: string[] = []; const names: string[] = []; const nameIndexMap = new Map(); @@ -194,7 +194,7 @@ function getCollapsedSourcemap( export function collapseSourcemaps( file: string, - map: DecodedSourceMap, + map: Omit & { sourcesContent: Array }, modules: readonly Module[], bundleSourcemapChain: readonly DecodedSourceMapOrMissing[], excludeContent: boolean | undefined, diff --git a/src/utils/commentAnnotations.ts b/src/utils/commentAnnotations.ts deleted file mode 100644 index ad77451b4..000000000 --- a/src/utils/commentAnnotations.ts +++ /dev/null @@ -1,212 +0,0 @@ -import type * as acorn from 'acorn'; -import { base as basicWalker } from 'acorn-walk'; -import { - ArrowFunctionExpression, - BinaryExpression, - CallExpression, - ChainExpression, - ConditionalExpression, - ExportDefaultDeclaration, - ExportNamedDeclaration, - ExpressionStatement, - FunctionDeclaration, - LogicalExpression, - NewExpression, - SequenceExpression, - VariableDeclaration, - VariableDeclarator -} from '../ast/nodes/NodeType'; -import { SOURCEMAPPING_URL_RE } from './sourceMappingURL'; - -export type AnnotationType = 'noSideEffects' | 'pure'; - -export interface RollupAnnotation extends acorn.Comment { - annotationType: AnnotationType; -} - -interface CommentState { - annotationIndex: number; - annotations: RollupAnnotation[]; - code: string; -} - -export const ANNOTATION_KEY = '_rollupAnnotations'; -export const INVALID_COMMENT_KEY = '_rollupRemoved'; - -interface NodeWithComments extends acorn.Node { - [ANNOTATION_KEY]?: acorn.Comment[]; - [INVALID_COMMENT_KEY]?: acorn.Comment[]; -} - -function handlePureAnnotationsOfNode( - node: acorn.Node, - state: CommentState, - type = node.type -): void { - const { annotations, code } = state; - // eslint-disable-next-line unicorn/consistent-destructuring - let comment = annotations[state.annotationIndex]; - while (comment && node.start >= comment.end) { - markPureNode(node, comment, code); - comment = annotations[++state.annotationIndex]; - } - if (comment && comment.end <= node.end) { - basicWalker[type](node, state, handlePureAnnotationsOfNode); - // eslint-disable-next-line unicorn/consistent-destructuring - while ((comment = annotations[state.annotationIndex]) && comment.end <= node.end) { - ++state.annotationIndex; - annotateNode(node, comment, false); - } - } -} - -const neitherWithespaceNorBrackets = /[^\s(]/g; -const noWhitespace = /\S/g; - -function markPureNode(node: NodeWithComments, comment: acorn.Comment, code: string): void { - const annotatedNodes: NodeWithComments[] = []; - let invalidAnnotation: boolean | undefined; - const codeInBetween = code.slice(comment.end, node.start); - if (doesNotMatchOutsideComment(codeInBetween, neitherWithespaceNorBrackets)) { - const parentStart = node.start; - while (true) { - annotatedNodes.push(node); - switch (node.type) { - case ExpressionStatement: - case ChainExpression: { - node = (node as any).expression; - continue; - } - case SequenceExpression: { - // if there are parentheses, the annotation would apply to the entire expression - if (doesNotMatchOutsideComment(code.slice(parentStart, node.start), noWhitespace)) { - node = (node as any).expressions[0]; - continue; - } - invalidAnnotation = true; - break; - } - case ConditionalExpression: { - // if there are parentheses, the annotation would apply to the entire expression - if (doesNotMatchOutsideComment(code.slice(parentStart, node.start), noWhitespace)) { - node = (node as any).test; - continue; - } - invalidAnnotation = true; - break; - } - case LogicalExpression: - case BinaryExpression: { - // if there are parentheses, the annotation would apply to the entire expression - if (doesNotMatchOutsideComment(code.slice(parentStart, node.start), noWhitespace)) { - node = (node as any).left; - continue; - } - invalidAnnotation = true; - break; - } - case ExportNamedDeclaration: - case ExportDefaultDeclaration: { - node = (node as any).declaration; - continue; - } - case VariableDeclaration: { - // case: /*#__PURE__*/ const foo = () => {} - const declaration = node as any; - if (declaration.kind === 'const') { - // jsdoc only applies to the first declaration - node = declaration.declarations[0].init; - continue; - } - invalidAnnotation = true; - break; - } - case VariableDeclarator: { - node = (node as any).init; - continue; - } - case FunctionDeclaration: - case ArrowFunctionExpression: - case CallExpression: - case NewExpression: { - break; - } - default: { - invalidAnnotation = true; - } - } - break; - } - } else { - invalidAnnotation = true; - } - if (invalidAnnotation) { - annotateNode(node, comment, false); - } else { - for (const node of annotatedNodes) { - annotateNode(node, comment, true); - } - } -} - -function doesNotMatchOutsideComment(code: string, forbiddenChars: RegExp): boolean { - let nextMatch: RegExpExecArray | null; - while ((nextMatch = forbiddenChars.exec(code)) !== null) { - if (nextMatch[0] === '/') { - const charCodeAfterSlash = code.charCodeAt(forbiddenChars.lastIndex); - if (charCodeAfterSlash === 42 /*"*"*/) { - forbiddenChars.lastIndex = code.indexOf('*/', forbiddenChars.lastIndex + 1) + 2; - continue; - } else if (charCodeAfterSlash === 47 /*"/"*/) { - forbiddenChars.lastIndex = code.indexOf('\n', forbiddenChars.lastIndex + 1) + 1; - continue; - } - } - forbiddenChars.lastIndex = 0; - return false; - } - return true; -} - -const annotationsRegexes: [AnnotationType, RegExp][] = [ - ['pure', /[#@]__PURE__/], - ['noSideEffects', /[#@]__NO_SIDE_EFFECTS__/] -]; - -export function addAnnotations( - comments: readonly acorn.Comment[], - esTreeAst: acorn.Node, - code: string -): void { - const annotations: RollupAnnotation[] = []; - const sourceMappingComments: acorn.Comment[] = []; - for (const comment of comments) { - for (const [annotationType, regex] of annotationsRegexes) { - if (regex.test(comment.value)) { - annotations.push({ ...comment, annotationType }); - } - } - if (SOURCEMAPPING_URL_RE.test(comment.value)) { - sourceMappingComments.push(comment); - } - } - for (const comment of sourceMappingComments) { - annotateNode(esTreeAst, comment, false); - } - - handlePureAnnotationsOfNode(esTreeAst, { - annotationIndex: 0, - annotations, - code - }); -} - -function annotateNode(node: NodeWithComments, comment: acorn.Comment, valid: boolean): void { - const key = valid ? ANNOTATION_KEY : INVALID_COMMENT_KEY; - const property = node[key]; - if (property) { - property.push(comment); - } else { - node[key] = [comment]; - } -} diff --git a/src/utils/convert-ast-strings.ts b/src/utils/convert-ast-strings.ts new file mode 100644 index 000000000..381bb3743 --- /dev/null +++ b/src/utils/convert-ast-strings.ts @@ -0,0 +1,62 @@ +export const FIXED_STRINGS = [ + 'var', + 'let', + 'const', + 'init', + 'get', + 'set', + 'constructor', + 'method', + '-', + '+', + '!', + '~', + 'typeof', + 'void', + 'delete', + '++', + '--', + '==', + '!=', + '===', + '!==', + '<', + '<=', + '>', + '>=', + '<<', + '>>', + '>>>', + '+', + '-', + '*', + '/', + '%', + '|', + '^', + '&', + '||', + '&&', + 'in', + 'instanceof', + '**', + '??', + '=', + '+=', + '-=', + '*=', + '/=', + '%=', + '<<=', + '>>=', + '>>>=', + '|=', + '^=', + '&=', + '**=', + '&&=', + '||=', + '??=', + 'pure', + 'noSideEffects' +]; diff --git a/src/utils/convert-ast.ts b/src/utils/convert-ast.ts new file mode 100644 index 000000000..6be26053a --- /dev/null +++ b/src/utils/convert-ast.ts @@ -0,0 +1,1265 @@ +import type * as estree from 'estree'; +import type { AstNode } from '../rollup/types'; +import { FIXED_STRINGS } from './convert-ast-strings'; +import { error, logParseError } from './logs'; + +type ReadString = (start: number, length: number) => string; + +export const convertProgram = (buffer: ArrayBuffer, readString: ReadString): ProgramAst => + convertNode(0, new Uint32Array(buffer), readString); + +const convertNode = (position: number, buffer: Uint32Array, readString: ReadString): any => { + const nodeType = buffer[position]; + const converter = nodeConverters[nodeType]; + /* istanbul ignore if: This should never be executed but is a safeguard against faulty buffers */ + if (!converter) { + console.trace(); + throw new Error(`Unknown node type: ${nodeType}`); + } + return converter(position + 1, buffer, readString); +}; + +/* eslint-disable sort-keys */ +const nodeConverters: ((position: number, buffer: Uint32Array, readString: ReadString) => any)[] = [ + // index:0; ArrayExpression + (position, buffer, readString): estree.ArrayExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const elements = convertNodeList(position, buffer, readString); + return { + type: 'ArrayExpression', + start, + end, + elements + }; + }, + // index:1; ArrayPattern + (position, buffer, readString): estree.ArrayPattern & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const elements = convertNodeList(position, buffer, readString); + return { + type: 'ArrayPattern', + start, + end, + elements + }; + }, + // index:2; ArrowFunctionExpression + (position, buffer, readString): ArrowFunctionExpression & AstNode & { id: null } => { + const start = buffer[position++]; + const end = buffer[position++]; + const async = !!buffer[position++]; + const generator = !!buffer[position++]; + const expression = !!buffer[position++]; + const parameters = convertNodeList(buffer[position++], buffer, readString); + const body = convertNode(buffer[position++], buffer, readString); + const annotations = convertAnnotationList(position, buffer); + return addAnnotationProperty( + { + type: 'ArrowFunctionExpression', + start, + end, + async, + body, + expression, + generator, + id: null, + params: parameters + }, + annotations, + ANNOTATION_KEY + ); + }, + // index:3; AssignmentExpression + (position, buffer, readString): estree.AssignmentExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const operator = FIXED_STRINGS[buffer[position++]] as estree.AssignmentOperator; + const right = convertNode(buffer[position++], buffer, readString); + const left = convertNode(position, buffer, readString); + return { + type: 'AssignmentExpression', + start, + end, + left, + operator, + right + }; + }, + // index:4; AssignmentPattern + (position, buffer, readString): estree.AssignmentPattern & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const right = convertNode(buffer[position++], buffer, readString); + const left = convertNode(position, buffer, readString); + return { + type: 'AssignmentPattern', + start, + end, + left, + right + }; + }, + // index:5; AwaitExpression + (position, buffer, readString): estree.AwaitExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const argument = convertNode(position, buffer, readString); + return { + type: 'AwaitExpression', + start, + argument, + end + }; + }, + // index:6; BinaryExpression + (position, buffer, readString): estree.BinaryExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const operator = FIXED_STRINGS[buffer[position++]] as estree.BinaryOperator; + const right = convertNode(buffer[position++], buffer, readString); + const left = convertNode(position, buffer, readString); + return { + type: 'BinaryExpression', + start, + end, + left, + operator, + right + }; + }, + // index:7; BlockStatement + (position, buffer, readString): estree.BlockStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const body = convertNodeList(position, buffer, readString); + return { + type: 'BlockStatement', + start, + body, + end + }; + }, + // index:8; BreakStatement + (position, buffer, readString): estree.BreakStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const labelPosition = buffer[position++]; + return { + type: 'BreakStatement', + start, + end, + label: labelPosition ? convertNode(labelPosition, buffer, readString) : null + }; + }, + // index:9; CallExpression + (position, buffer, readString): CallExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const optional = !!buffer[position++]; + const callee = convertNode(buffer[position++], buffer, readString); + const argumentsList = convertNodeList(buffer[position++], buffer, readString); + const annotations = convertAnnotationList(position, buffer); + return addAnnotationProperty( + { + type: 'CallExpression', + start, + end, + arguments: argumentsList, + callee, + optional + }, + annotations, + ANNOTATION_KEY + ); + }, + // index:10; CatchClause + (position, buffer, readString): estree.CatchClause & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const parameterPosition = buffer[position++]; + const body = convertNode(buffer[position], buffer, readString); + return { + type: 'CatchClause', + start, + end, + body, + param: parameterPosition ? convertNode(parameterPosition, buffer, readString) : null + }; + }, + // index:11; ChainExpression + (position, buffer, readString): estree.ChainExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const expression = convertNode(position, buffer, readString); + return { + type: 'ChainExpression', + start, + end, + expression + }; + }, + // index:12; ClassBody + (position, buffer, readString): estree.ClassBody & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const body = convertNodeList(position, buffer, readString); + return { + type: 'ClassBody', + start, + end, + body + }; + }, + // index:13; ClassDeclaration + (position, buffer, readString): estree.ClassDeclaration & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const idPosition = buffer[position++]; + const superClassPosition = buffer[position++]; + const body = convertNode(buffer[position], buffer, readString); + return { + type: 'ClassDeclaration', + start, + end, + body, + id: idPosition ? convertNode(idPosition, buffer, readString) : null, + superClass: superClassPosition ? convertNode(superClassPosition, buffer, readString) : null + }; + }, + // index:14; ClassExpression + (position, buffer, readString): estree.ClassExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const idPosition = buffer[position++]; + const superClassPosition = buffer[position++]; + const body = convertNode(buffer[position], buffer, readString); + return { + type: 'ClassExpression', + start, + end, + body, + id: idPosition ? convertNode(idPosition, buffer, readString) : null, + superClass: superClassPosition ? convertNode(superClassPosition, buffer, readString) : null + }; + }, + // index:15; ConditionalExpression + (position, buffer, readString): estree.ConditionalExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const consequent = convertNode(buffer[position++], buffer, readString); + const alternate = convertNode(buffer[position++], buffer, readString); + const test = convertNode(position, buffer, readString); + return { + type: 'ConditionalExpression', + start, + end, + alternate, + consequent, + test + }; + }, + // index:16; ContinueStatement + (position, buffer, readString): estree.ContinueStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const labelPosition = buffer[position]; + return { + type: 'ContinueStatement', + start, + end, + label: labelPosition ? convertNode(labelPosition, buffer, readString) : null + }; + }, + // index:17; DebuggerStatement + (position, buffer): estree.DebuggerStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + return { + type: 'DebuggerStatement', + start, + end + }; + }, + // index:18; DoWhileStatement + (position, buffer, readString): estree.DoWhileStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const test = convertNode(buffer[position++], buffer, readString); + const body = convertNode(position, buffer, readString); + return { + type: 'DoWhileStatement', + start, + end, + body, + test + }; + }, + // index:19; EmptyStatement + (position, buffer): estree.EmptyStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + return { + type: 'EmptyStatement', + start, + end + }; + }, + // index:20; ExportAllDeclaration + (position, buffer, readString): ExportAllDeclaration & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const exportedPosition = buffer[position++]; + const source = convertNode(buffer[position++], buffer, readString); + const attributes = convertNodeList(buffer[position], buffer, readString); + return { + type: 'ExportAllDeclaration', + start, + end, + exported: exportedPosition ? convertNode(exportedPosition, buffer, readString) : null, + source, + attributes + }; + }, + // index:21; ExportDefaultDeclaration + (position, buffer, readString): estree.ExportDefaultDeclaration & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const declaration = convertNode(position, buffer, readString); + return { + type: 'ExportDefaultDeclaration', + start, + end, + declaration + }; + }, + // index:22; ExportNamedDeclaration + (position, buffer, readString): ExportNamedDeclaration & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const declarationPosition = buffer[position++]; + const sourcePosition = buffer[position++]; + const attributes = convertNodeList(buffer[position++], buffer, readString); + const specifiers = convertNodeList(position, buffer, readString); + return { + type: 'ExportNamedDeclaration', + start, + end, + declaration: declarationPosition + ? convertNode(declarationPosition, buffer, readString) + : null, + source: sourcePosition ? convertNode(sourcePosition, buffer, readString) : null, + specifiers, + attributes + }; + }, + // index:23; ExportSpecifier + (position, buffer, readString): estree.ExportSpecifier & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const exportedPosition = buffer[position++]; + const local = convertNode(position, buffer, readString); + const exported = exportedPosition ? convertNode(exportedPosition, buffer, readString) : local; + return { + type: 'ExportSpecifier', + start, + end, + exported, + local + }; + }, + // index:24; ExpressionStatement + (position, buffer, readString): estree.ExpressionStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const directivePosition = buffer[position++]; + const expression = convertNode(position, buffer, readString); + return { + type: 'ExpressionStatement', + start, + end, + expression, + ...(directivePosition + ? { directive: convertString(directivePosition, buffer, readString) } + : {}) + }; + }, + // index:25; ForInStatement + (position, buffer, readString): estree.ForInStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const right = convertNode(buffer[position++], buffer, readString); + const body = convertNode(buffer[position++], buffer, readString); + const left = convertNode(position, buffer, readString); + return { + type: 'ForInStatement', + start, + end, + body, + left, + right + }; + }, + // index:26; ForOfStatement + (position, buffer, readString): estree.ForOfStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const awaited = !!buffer[position++]; + const right = convertNode(buffer[position++], buffer, readString); + const body = convertNode(buffer[position++], buffer, readString); + const left = convertNode(position, buffer, readString); + return { + type: 'ForOfStatement', + start, + end, + await: awaited, + body, + left, + right + }; + }, + // index:27; ForStatement + (position, buffer, readString): estree.ForStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const initPosition = buffer[position++]; + const testPosition = buffer[position++]; + const updatePosition = buffer[position++]; + const body = convertNode(buffer[position], buffer, readString); + return { + type: 'ForStatement', + start, + end, + body, + init: initPosition ? convertNode(initPosition, buffer, readString) : null, + test: testPosition ? convertNode(testPosition, buffer, readString) : null, + update: updatePosition ? convertNode(updatePosition, buffer, readString) : null + }; + }, + // index:28; FunctionDeclaration + (position, buffer, readString): FunctionDeclaration & AstNode & { expression: false } => { + const start = buffer[position++]; + const end = buffer[position++]; + const async = !!buffer[position++]; + const generator = !!buffer[position++]; + const idPosition = buffer[position++]; + const parameters = convertNodeList(buffer[position++], buffer, readString); + const body = convertNode(buffer[position++], buffer, readString); + const annotations = convertAnnotationList(position, buffer); + return addAnnotationProperty( + { + type: 'FunctionDeclaration', + start, + end, + async, + body, + expression: false, + generator, + id: idPosition ? convertNode(idPosition, buffer, readString) : null, + params: parameters + }, + annotations, + ANNOTATION_KEY + ); + }, + // index:29; FunctionExpression + (position, buffer, readString): FunctionExpression & AstNode & { expression: false } => { + const start = buffer[position++]; + const end = buffer[position++]; + const async = !!buffer[position++]; + const generator = !!buffer[position++]; + const idPosition = buffer[position++]; + const parameters = convertNodeList(buffer[position++], buffer, readString); + const body = convertNode(buffer[position++], buffer, readString); + const annotations = convertAnnotationList(position, buffer); + return addAnnotationProperty( + { + type: 'FunctionExpression', + start, + end, + async, + body, + expression: false, + generator, + id: idPosition ? convertNode(idPosition, buffer, readString) : null, + params: parameters + }, + annotations, + ANNOTATION_KEY + ); + }, + // index:30; Identifier + (position, buffer, readString): estree.Identifier & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const name = convertString(position, buffer, readString); + return { + type: 'Identifier', + start, + end, + name + }; + }, + // index:31; IfStatement + (position, buffer, readString): estree.IfStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const consequent = convertNode(buffer[position++], buffer, readString); + const alternatePosition = buffer[position++]; + const test = convertNode(position, buffer, readString); + return { + type: 'IfStatement', + start, + end, + alternate: alternatePosition ? convertNode(alternatePosition, buffer, readString) : null, + consequent, + test + }; + }, + // index:32; ImportAttribute + (position, buffer, readString): ImportAttribute & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const value = convertNode(buffer[position++], buffer, readString); + const key = convertNode(position, buffer, readString); + return { + type: 'ImportAttribute', + start, + end, + key, + value + }; + }, + // index:33; ImportDeclaration + (position, buffer, readString): ImportDeclaration & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const source = convertNode(buffer[position++], buffer, readString); + const attributes = convertNodeList(buffer[position++], buffer, readString); + const specifiers = convertNodeList(position, buffer, readString); + return { + type: 'ImportDeclaration', + start, + end, + source, + specifiers, + attributes + }; + }, + // index:34; ImportDefaultSpecifier + (position, buffer, readString): estree.ImportDefaultSpecifier & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const local = convertNode(position, buffer, readString); + return { + type: 'ImportDefaultSpecifier', + start, + end, + local + }; + }, + // index:35; ImportExpression + (position, buffer, readString): ImportExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const optionsPosition = buffer[position++]; + const source = convertNode(position, buffer, readString); + return { + type: 'ImportExpression', + start, + end, + source, + options: optionsPosition ? convertNode(optionsPosition, buffer, readString) : null + }; + }, + // index:36; ImportNamespaceSpecifier + (position, buffer, readString): estree.ImportNamespaceSpecifier & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const local = convertNode(position, buffer, readString); + return { + type: 'ImportNamespaceSpecifier', + start, + end, + local + }; + }, + // index:37; ImportSpecifier + (position, buffer, readString): estree.ImportSpecifier & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const importedPosition = buffer[position++]; + const local = convertNode(buffer[position], buffer, readString); + const imported = importedPosition ? convertNode(importedPosition, buffer, readString) : local; + return { + type: 'ImportSpecifier', + start, + end, + imported, + local + }; + }, + // index:38; LabeledStatement + (position, buffer, readString): estree.LabeledStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const body = convertNode(buffer[position++], buffer, readString); + const label = convertNode(position, buffer, readString); + return { + type: 'LabeledStatement', + start, + end, + body, + label + }; + }, + // index:39; Literal + (position, buffer, readString): estree.SimpleLiteral & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const rawPosition = buffer[position++]; + const raw = rawPosition ? convertString(rawPosition, buffer, readString) : undefined; + const value = convertString(position, buffer, readString); + return { + type: 'Literal', + start, + end, + raw, + value + }; + }, + // index:40; Literal + (position, buffer): estree.SimpleLiteral & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const value = !!buffer[position++]; + return { + type: 'Literal', + start, + end, + raw: value ? 'true' : 'false', + value + }; + }, + // index:41; Literal + (position, buffer, readString): estree.SimpleLiteral & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const rawPosition = buffer[position++]; + const raw = rawPosition ? convertString(rawPosition, buffer, readString) : undefined; + const value = new DataView(buffer.buffer).getFloat64(position << 2, true); + return { + type: 'Literal', + start, + end, + raw, + value + }; + }, + // index:42; Literal + (position, buffer): estree.SimpleLiteral & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + return { + type: 'Literal', + start, + end, + raw: 'null', + value: null + }; + }, + // index:43; Literal + (position, buffer, readString): estree.RegExpLiteral & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const pattern = convertString(buffer[position++], buffer, readString); + const flags = convertString(position, buffer, readString); + return { + type: 'Literal', + start, + end, + raw: `/${pattern}/${flags}`, + regex: { + flags, + pattern + }, + value: new RegExp(pattern, flags) + }; + }, + // index:44; Literal + (position, buffer, readString): estree.BigIntLiteral & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const bigint = convertString(buffer[position++], buffer, readString); + const raw = convertString(position, buffer, readString); + return { + type: 'Literal', + start, + end, + bigint, + raw, + value: BigInt(bigint) + }; + }, + // index:45; LogicalExpression + (position, buffer, readString): estree.LogicalExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const operator = FIXED_STRINGS[buffer[position++]] as estree.LogicalOperator; + const right = convertNode(buffer[position++], buffer, readString); + const left = convertNode(position, buffer, readString); + return { + type: 'LogicalExpression', + start, + end, + left, + operator, + right + }; + }, + // index:46; MemberExpression + (position, buffer, readString): estree.MemberExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const optional = !!buffer[position++]; + const computed = !!buffer[position++]; + const property = convertNode(buffer[position++], buffer, readString); + const object = convertNode(position, buffer, readString); + return { + type: 'MemberExpression', + start, + end, + computed, + object, + optional, + property + }; + }, + // index:47; MetaProperty + (position, buffer, readString): estree.MetaProperty & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const property = convertNode(buffer[position++], buffer, readString); + const meta = convertNode(position, buffer, readString); + return { + type: 'MetaProperty', + start, + end, + meta, + property + }; + }, + // index:48; MethodDefinition + (position, buffer, readString): estree.MethodDefinition & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const kind = FIXED_STRINGS[buffer[position++]] as estree.MethodDefinition['kind']; + const computed = !!buffer[position++]; + const isStatic = !!buffer[position++]; + const value = convertNode(buffer[position++], buffer, readString); + const key = convertNode(position, buffer, readString); + return { + type: 'MethodDefinition', + start, + end, + computed, + key, + kind, + static: isStatic, + value + }; + }, + // index:49; NewExpression + (position, buffer, readString): NewExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const callee = convertNode(buffer[position++], buffer, readString); + const argumentsPosition = buffer[position++]; + const annotations = convertAnnotationList(position, buffer); + return addAnnotationProperty( + { + type: 'NewExpression', + start, + end, + arguments: argumentsPosition ? convertNodeList(argumentsPosition, buffer, readString) : [], + callee + }, + annotations, + ANNOTATION_KEY + ); + }, + // index:50; ObjectExpression + (position, buffer, readString): estree.ObjectExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const properties = convertNodeList(position, buffer, readString); + return { + type: 'ObjectExpression', + start, + end, + properties + }; + }, + // index:51; ObjectPattern + (position, buffer, readString): estree.ObjectPattern & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const properties = convertNodeList(position, buffer, readString); + return { + type: 'ObjectPattern', + start, + end, + properties + }; + }, + // index:52; PrivateIdentifier + (position, buffer, readString): estree.PrivateIdentifier & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const name = convertString(position, buffer, readString); + return { + type: 'PrivateIdentifier', + start, + end, + name + }; + }, + // index:53; Program + (position, buffer, readString): ProgramAst => { + const start = buffer[position++]; + const end = buffer[position++]; + const annotations = convertAnnotationList(buffer[position++], buffer); + const body = convertNodeList(position, buffer, readString); + return addAnnotationProperty( + { + type: 'Program', + start, + end, + body, + sourceType: 'module' + }, + annotations, + INVALID_ANNOTATION_KEY + ); + }, + // index:54; Property + (position, buffer, readString): estree.Property & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const kind = FIXED_STRINGS[buffer[position++]] as estree.Property['kind']; + const method = !!buffer[position++]; + const computed = !!buffer[position++]; + const shorthand = !!buffer[position++]; + const key = convertNode(buffer[position++], buffer, readString); + const valuePosition = buffer[position]; + return { + type: 'Property', + start, + end, + computed, + key, + kind, + method, + shorthand, + value: valuePosition ? convertNode(valuePosition, buffer, readString) : { ...key } + }; + }, + // index:55; PropertyDefinition + (position, buffer, readString): estree.PropertyDefinition & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const computed = !!buffer[position++]; + const isStatic = !!buffer[position++]; + const valuePosition = buffer[position++]; + const key = convertNode(position, buffer, readString); + return { + type: 'PropertyDefinition', + start, + end, + computed, + key, + static: isStatic, + value: valuePosition ? convertNode(valuePosition, buffer, readString) : null + }; + }, + // index:56; RestElement + (position, buffer, readString): estree.RestElement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const argument = convertNode(position, buffer, readString); + return { + type: 'RestElement', + start, + end, + argument + }; + }, + // index:57; ReturnStatement + (position, buffer, readString): estree.ReturnStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const argumentPosition = buffer[position]; + return { + type: 'ReturnStatement', + start, + end, + argument: argumentPosition ? convertNode(argumentPosition, buffer, readString) : null + }; + }, + // index:58; SequenceExpression + (position, buffer, readString): estree.SequenceExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const expressions = convertNodeList(position, buffer, readString); + return { + type: 'SequenceExpression', + start, + end, + expressions + }; + }, + // index:59; SpreadElement + (position, buffer, readString): estree.SpreadElement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const argument = convertNode(position, buffer, readString); + return { + type: 'SpreadElement', + start, + end, + argument + }; + }, + // index:60; StaticBlock + (position, buffer, readString): estree.StaticBlock & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const body = convertNodeList(position, buffer, readString); + return { + type: 'StaticBlock', + start, + end, + body + }; + }, + // index:61; Super + (position, buffer): estree.Super & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + return { + type: 'Super', + start, + end + }; + }, + // index:62; SwitchCase + (position, buffer, readString): estree.SwitchCase & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const testPosition = buffer[position++]; + const consequent = convertNodeList(buffer[position], buffer, readString); + return { + type: 'SwitchCase', + start, + end, + consequent, + test: testPosition ? convertNode(testPosition, buffer, readString) : null + }; + }, + // index:63; SwitchStatement + (position, buffer, readString): estree.SwitchStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const cases = convertNodeList(buffer[position++], buffer, readString); + const discriminant = convertNode(position, buffer, readString); + return { + type: 'SwitchStatement', + start, + end, + cases, + discriminant + }; + }, + // index:64; TaggedTemplateExpression + (position, buffer, readString): estree.TaggedTemplateExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const quasi = convertNode(buffer[position++], buffer, readString); + const tag = convertNode(position, buffer, readString); + return { + type: 'TaggedTemplateExpression', + start, + end, + quasi, + tag + }; + }, + // index:65; TemplateElement + (position, buffer, readString): estree.TemplateElement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const tail = !!buffer[position++]; + const cookedPosition = buffer[position++]; + const raw = convertString(position, buffer, readString); + return { + type: 'TemplateElement', + start, + end, + tail, + value: { + cooked: cookedPosition ? convertString(cookedPosition, buffer, readString) : null, + raw + } + }; + }, + // index:66; TemplateLiteral + (position, buffer, readString): estree.TemplateLiteral & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const expressions = convertNodeList(buffer[position++], buffer, readString); + const quasis = convertNodeList(position, buffer, readString); + return { + type: 'TemplateLiteral', + start, + end, + expressions, + quasis + }; + }, + // index:67; ThisExpression + (position, buffer): estree.ThisExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + return { + type: 'ThisExpression', + start, + end + }; + }, + // index:68; ThrowStatement + (position, buffer, readString): estree.ThrowStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const argument = convertNode(position, buffer, readString); + return { + type: 'ThrowStatement', + start, + end, + argument + }; + }, + // index:69; TryStatement + (position, buffer, readString): estree.TryStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const handlerPosition = buffer[position++]; + const finalizerPosition = buffer[position++]; + const block = convertNode(position, buffer, readString); + return { + type: 'TryStatement', + start, + end, + block, + finalizer: finalizerPosition ? convertNode(finalizerPosition, buffer, readString) : null, + handler: handlerPosition ? convertNode(handlerPosition, buffer, readString) : null + }; + }, + // index:70; UnaryExpression + (position, buffer, readString): estree.UnaryExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const operator = FIXED_STRINGS[buffer[position++]] as estree.UnaryOperator; + const argument = convertNode(position, buffer, readString); + return { + type: 'UnaryExpression', + start, + end, + argument, + operator, + prefix: true + }; + }, + // index:71; UpdateExpression + (position, buffer, readString): estree.UpdateExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const prefix = !!buffer[position++]; + const operator = FIXED_STRINGS[buffer[position++]] as estree.UpdateOperator; + const argument = convertNode(position, buffer, readString); + return { + type: 'UpdateExpression', + start, + end, + argument, + operator, + prefix + }; + }, + // index:72; VariableDeclaration + (position, buffer, readString): estree.VariableDeclaration & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const kind = FIXED_STRINGS[buffer[position++]] as estree.VariableDeclaration['kind']; + const declarations = convertNodeList(position, buffer, readString); + return { + type: 'VariableDeclaration', + start, + end, + declarations, + kind + }; + }, + // index:73; VariableDeclarator + (position, buffer, readString): estree.VariableDeclarator & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const init_position = buffer[position++]; + const id = convertNode(position, buffer, readString); + return { + type: 'VariableDeclarator', + start, + end, + id, + init: init_position ? convertNode(init_position, buffer, readString) : null + }; + }, + // index:74; WhileStatement + (position, buffer, readString): estree.WhileStatement & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const body = convertNode(buffer[position++], buffer, readString); + const test = convertNode(position, buffer, readString); + return { + type: 'WhileStatement', + start, + end, + body, + test + }; + }, + // index:75; YieldExpression + (position, buffer, readString): estree.YieldExpression & AstNode => { + const start = buffer[position++]; + const end = buffer[position++]; + const delegate = !!buffer[position++]; + const argumentPosition = buffer[position]; + return { + type: 'YieldExpression', + start, + end, + argument: argumentPosition ? convertNode(argumentPosition, buffer, readString) : null, + delegate + }; + }, + // index:76; Syntax Error + (position, buffer, readString): never => { + const pos = buffer[position++]; + const message = convertString(position, buffer, readString); + error(logParseError(message, pos)); + } +]; + +const convertNodeList = (position: number, buffer: Uint32Array, readString: ReadString): any[] => { + const length = buffer[position++]; + const list: any[] = []; + for (let index = 0; index < length; index++) { + const nodePosition = buffer[position++]; + list.push(nodePosition ? convertNode(nodePosition, buffer, readString) : null); + } + return list; +}; + +const convertAnnotationList = (position: number, buffer: Uint32Array): RollupAnnotation[] => { + const length = buffer[position++]; + const list: any[] = []; + for (let index = 0; index < length; index++) { + list.push(convertAnnotation(buffer[position++], buffer)); + } + return list; +}; + +const convertAnnotation = (position: number, buffer: Uint32Array): RollupAnnotation => { + const start = buffer[position++]; + const end = buffer[position++]; + const type = FIXED_STRINGS[buffer[position]] as AnnotationType; + return { end, start, type }; +}; + +const addAnnotationProperty = ( + node: T, + annotations: RollupAnnotation[], + key: typeof ANNOTATION_KEY | typeof INVALID_ANNOTATION_KEY +): T => { + if (annotations.length > 0) { + return { + ...node, + [key]: annotations + }; + } + return node; +}; + +const convertString = (position: number, buffer: Uint32Array, readString: ReadString): string => { + const length = buffer[position++]; + const bytePosition = position << 2; + return readString(bytePosition, length); +}; + +interface ImportAttribute { + key: estree.Identifier | estree.Literal; + type: 'ImportAttribute'; + value: estree.Literal; +} + +interface ImportDeclaration extends estree.ImportDeclaration { + attributes: ImportAttribute[]; +} + +interface ExportNamedDeclaration extends estree.ExportNamedDeclaration { + attributes: ImportAttribute[]; +} + +interface ExportAllDeclaration extends estree.ExportAllDeclaration { + attributes: ImportAttribute[]; +} + +interface ImportExpression extends estree.ImportExpression { + options: estree.Expression | null; +} + +export const ANNOTATION_KEY = '_rollupAnnotations'; +export const INVALID_ANNOTATION_KEY = '_rollupRemoved'; + +export type AnnotationType = 'pure' | 'noSideEffects'; + +export interface RollupAnnotation { + start: number; + end: number; + type: AnnotationType; +} + +interface CallExpression extends estree.SimpleCallExpression { + [ANNOTATION_KEY]?: RollupAnnotation[]; +} + +interface NewExpression extends estree.NewExpression { + [ANNOTATION_KEY]?: RollupAnnotation[]; +} + +interface FunctionExpression extends estree.FunctionExpression { + [ANNOTATION_KEY]?: RollupAnnotation[]; +} + +interface FunctionDeclaration extends estree.FunctionDeclaration { + [ANNOTATION_KEY]?: RollupAnnotation[]; +} + +interface ArrowFunctionExpression extends estree.ArrowFunctionExpression { + [ANNOTATION_KEY]?: RollupAnnotation[]; +} + +export type ProgramAst = estree.Program & + AstNode & { + [INVALID_ANNOTATION_KEY]?: RollupAnnotation[]; + }; diff --git a/src/utils/crypto.ts b/src/utils/crypto.ts index c230000be..0914b89cd 100644 --- a/src/utils/crypto.ts +++ b/src/utils/crypto.ts @@ -1,3 +1,17 @@ -import { createHash as cryptoCreateHash, type Hash } from 'node:crypto'; +import { xxhashBase64Url } from '../../native'; -export const createHash = (): Hash => cryptoCreateHash('sha256'); +let textEncoder: TextEncoder; +export function getXxhash(input: string | Uint8Array) { + let buffer: Uint8Array; + if (typeof input === 'string') { + if (typeof Buffer === 'undefined') { + textEncoder ??= new TextEncoder(); + buffer = textEncoder.encode(input); + } else { + buffer = Buffer.from(input); + } + } else { + buffer = input; + } + return xxhashBase64Url(buffer); +} diff --git a/src/utils/getReadStringFunction.ts b/src/utils/getReadStringFunction.ts new file mode 100644 index 000000000..ee63518cb --- /dev/null +++ b/src/utils/getReadStringFunction.ts @@ -0,0 +1,14 @@ +export default function getReadStringFunction( + astBuffer: Buffer | Uint8Array +): (start: number, length: number) => string { + if (typeof Buffer !== 'undefined' && astBuffer instanceof Buffer) { + return function readString(start, length) { + return astBuffer.toString('utf8', start, start + length); + }; + } else { + const textDecoder = new TextDecoder(); + return function readString(start, length) { + return textDecoder.decode(astBuffer.subarray(start, start + length)); + }; + } +} diff --git a/src/utils/hashPlaceholders.ts b/src/utils/hashPlaceholders.ts index 2910da06f..15a2fa946 100644 --- a/src/utils/hashPlaceholders.ts +++ b/src/utils/hashPlaceholders.ts @@ -7,8 +7,8 @@ const hashPlaceholderLeft = '!~{'; const hashPlaceholderRight = '}~'; const hashPlaceholderOverhead = hashPlaceholderLeft.length + hashPlaceholderRight.length; -// This is the size of a sha256 -export const maxHashSize = 64; +// This is the size of a 128-bits xxhash with base64url encoding +export const maxHashSize = 22; export const defaultHashSize = 8; export type HashPlaceholderGenerator = (optionName: string, hashSize?: number) => string; diff --git a/src/utils/initWasm.ts b/src/utils/initWasm.ts new file mode 100644 index 000000000..9cd42c723 --- /dev/null +++ b/src/utils/initWasm.ts @@ -0,0 +1 @@ +export default async function initWasm() {} diff --git a/src/utils/interopHelpers.ts b/src/utils/interopHelpers.ts index 5d28acd92..94f399a0c 100644 --- a/src/utils/interopHelpers.ts +++ b/src/utils/interopHelpers.ts @@ -45,7 +45,7 @@ export const getHelpersBlock = ( snippets: GenerateCodeSnippets, liveBindings: boolean, freeze: boolean, - namespaceToStringTag: boolean + symbols: boolean ): string => { const usedHelpers = new Set(additionalHelpers); for (const variable of HELPER_NAMES) { @@ -55,14 +55,7 @@ export const getHelpersBlock = ( } return HELPER_NAMES.map(variable => usedHelpers.has(variable) - ? HELPER_GENERATORS[variable]( - indent, - snippets, - liveBindings, - freeze, - namespaceToStringTag, - usedHelpers - ) + ? HELPER_GENERATORS[variable](indent, snippets, liveBindings, freeze, symbols, usedHelpers) : '' ).join(''); }; @@ -73,7 +66,7 @@ const HELPER_GENERATORS: { snippets: GenerateCodeSnippets, liveBindings: boolean, freeze: boolean, - namespaceToStringTag: boolean, + symbols: boolean, usedHelpers: ReadonlySet ) => string; } = { @@ -108,14 +101,7 @@ const HELPER_GENERATORS: { }${right}${n}${n}` ); }, - [INTEROP_NAMESPACE_COMPAT_VARIABLE]( - t, - snippets, - liveBindings, - freeze, - namespaceToStringTag, - usedHelpers - ) { + [INTEROP_NAMESPACE_COMPAT_VARIABLE](t, snippets, liveBindings, freeze, symbols, usedHelpers) { const { _, getDirectReturnFunction, n } = snippets; if (usedHelpers.has(INTEROP_NAMESPACE_DEFAULT_VARIABLE)) { const [left, right] = getDirectReturnFunction(['e'], { @@ -130,7 +116,7 @@ const HELPER_GENERATORS: { return ( `function ${INTEROP_NAMESPACE_COMPAT_VARIABLE}(e)${_}{${n}` + `${t}if${_}(${getIsCompatNamespace(snippets)})${_}return e;${n}` + - createNamespaceObject(t, t, snippets, liveBindings, freeze, namespaceToStringTag) + + createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) + `}${n}${n}` ); }, @@ -139,7 +125,7 @@ const HELPER_GENERATORS: { snippets, _liveBindings: boolean, freeze: boolean, - namespaceToStringTag: boolean + symbols: boolean ) { const { getDirectReturnFunction, getObject, n } = snippets; const [left, right] = getDirectReturnFunction(['e'], { @@ -150,7 +136,7 @@ const HELPER_GENERATORS: { return `${left}${getFrozen( freeze, getWithToStringTag( - namespaceToStringTag, + symbols, getObject( [ ['__proto__', 'null'], @@ -162,22 +148,15 @@ const HELPER_GENERATORS: { ) )}${right}${n}${n}`; }, - [INTEROP_NAMESPACE_DEFAULT_VARIABLE](t, snippets, liveBindings, freeze, namespaceToStringTag) { + [INTEROP_NAMESPACE_DEFAULT_VARIABLE](t, snippets, liveBindings, freeze, symbols) { const { _, n } = snippets; return ( `function ${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${_}{${n}` + - createNamespaceObject(t, t, snippets, liveBindings, freeze, namespaceToStringTag) + + createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) + `}${n}${n}` ); }, - [INTEROP_NAMESPACE_VARIABLE]( - t, - snippets, - liveBindings, - freeze, - namespaceToStringTag, - usedHelpers - ) { + [INTEROP_NAMESPACE_VARIABLE](t, snippets, liveBindings, freeze, symbols, usedHelpers) { const { _, getDirectReturnFunction, n } = snippets; if (usedHelpers.has(INTEROP_NAMESPACE_DEFAULT_VARIABLE)) { const [left, right] = getDirectReturnFunction(['e'], { @@ -190,11 +169,11 @@ const HELPER_GENERATORS: { return ( `function ${INTEROP_NAMESPACE_VARIABLE}(e)${_}{${n}` + `${t}if${_}(e${_}&&${_}e.__esModule)${_}return e;${n}` + - createNamespaceObject(t, t, snippets, liveBindings, freeze, namespaceToStringTag) + + createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) + `}${n}${n}` ); }, - [MERGE_NAMESPACES_VARIABLE](t, snippets, liveBindings, freeze, namespaceToStringTag) { + [MERGE_NAMESPACES_VARIABLE](t, snippets, liveBindings, freeze, symbols) { const { _, cnst, n } = snippets; const useForEach = cnst === 'var' && liveBindings; return ( @@ -213,10 +192,7 @@ const HELPER_GENERATORS: { t, snippets )}${n}` + - `${t}return ${getFrozen( - freeze, - getWithToStringTag(namespaceToStringTag, 'n', snippets) - )};${n}` + + `${t}return ${getFrozen(freeze, getWithToStringTag(symbols, 'n', snippets))};${n}` + `}${n}${n}` ); } @@ -237,7 +213,7 @@ const createNamespaceObject = ( snippets: GenerateCodeSnippets, liveBindings: boolean, freeze: boolean, - namespaceToStringTag: boolean + symbols: boolean ) => { const { _, cnst, getObject, getPropertyAccess, n, s } = snippets; const copyProperty = @@ -250,9 +226,7 @@ const createNamespaceObject = ( `${index}${t}}`; return ( `${index}${cnst} n${_}=${_}Object.create(null${ - namespaceToStringTag - ? `,${_}{${_}[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}${_}}` - : '' + symbols ? `,${_}{${_}[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}${_}}` : '' });${n}` + `${index}if${_}(e)${_}{${n}` + `${index}${t}${loopOverKeys(copyProperty, !liveBindings, snippets)}${n}` + @@ -364,11 +338,11 @@ const getFrozen = (freeze: boolean, fragment: string) => freeze ? `Object.freeze(${fragment})` : fragment; const getWithToStringTag = ( - namespaceToStringTag: boolean, + symbols: boolean, fragment: string, { _, getObject }: GenerateCodeSnippets ) => - namespaceToStringTag + symbols ? `Object.defineProperty(${fragment},${_}Symbol.toStringTag,${_}${getToStringTagValue( getObject )})` diff --git a/src/utils/logs.ts b/src/utils/logs.ts index 0d874b886..8623674e5 100644 --- a/src/utils/logs.ts +++ b/src/utils/logs.ts @@ -6,6 +6,7 @@ import type { NormalizedInputOptions, RollupLog } from '../rollup/types'; +import type { AnnotationType } from './convert-ast'; import getCodeFrame from './getCodeFrame'; import { LOGLEVEL_WARN } from './logging'; import { extname } from './path'; @@ -26,7 +27,9 @@ import { URL_OUTPUT_NAME, URL_SOURCEMAP_IS_LIKELY_TO_BE_INCORRECT, URL_THIS_IS_UNDEFINED, - URL_TREATING_MODULE_AS_EXTERNAL_DEPENDENCY + URL_TREATING_MODULE_AS_EXTERNAL_DEPENDENCY, + URL_TREESHAKE_NOSIDEEFFECTS, + URL_TREESHAKE_PURE } from './urls'; export function error(base: Error | RollupLog): never { @@ -48,7 +51,11 @@ export function augmentCodeLocation( properties.loc = { column, file: id, line }; } else { properties.pos = pos; - const { line, column } = locate(source, pos, { offsetLine: 1 })!; + const location = locate(source, pos, { offsetLine: 1 }); + if (!location) { + return; + } + const { line, column } = location; properties.loc = { column, file: id, line }; } @@ -92,12 +99,14 @@ const ADDON_ERROR = 'ADDON_ERROR', FIRST_SIDE_EFFECT = 'FIRST_SIDE_EFFECT', ILLEGAL_IDENTIFIER_AS_NAME = 'ILLEGAL_IDENTIFIER_AS_NAME', ILLEGAL_REASSIGNMENT = 'ILLEGAL_REASSIGNMENT', - INCONSISTENT_IMPORT_ASSERTIONS = 'INCONSISTENT_IMPORT_ASSERTIONS', + INCONSISTENT_IMPORT_ATTRIBUTES = 'INCONSISTENT_IMPORT_ATTRIBUTES', + INVALID_ANNOTATION = 'INVALID_ANNOTATION', INPUT_HOOK_IN_OUTPUT_PLUGIN = 'INPUT_HOOK_IN_OUTPUT_PLUGIN', INVALID_CHUNK = 'INVALID_CHUNK', INVALID_CONFIG_MODULE_FORMAT = 'INVALID_CONFIG_MODULE_FORMAT', INVALID_EXPORT_OPTION = 'INVALID_EXPORT_OPTION', INVALID_EXTERNAL_ID = 'INVALID_EXTERNAL_ID', + INVALID_IMPORT_ATTRIBUTE = 'INVALID_IMPORT_ATTRIBUTE', INVALID_LOG_POSITION = 'INVALID_LOG_POSITION', INVALID_OPTION = 'INVALID_OPTION', INVALID_PLUGIN_HOOK = 'INVALID_PLUGIN_HOOK', @@ -235,13 +244,13 @@ export function logChunkNotGeneratedForFileName(name: string): RollupLog { export function logChunkInvalid( { fileName, code }: { code: string; fileName: string }, - exception: { loc: { column: number; line: number }; message: string } + { pos, message }: { pos: number; message: string } ): RollupLog { const errorProperties = { code: CHUNK_INVALID, - message: `Chunk "${fileName}" is not valid JavaScript: ${exception.message}.` + message: `Chunk "${fileName}" is not valid JavaScript: ${message}.` }; - augmentCodeLocation(errorProperties, exception.loc, code, fileName); + augmentCodeLocation(errorProperties, pos, code, fileName); return errorProperties; } @@ -394,30 +403,41 @@ export function logIllegalImportReassignment(name: string, importingId: string): }; } -export function logInconsistentImportAssertions( - existingAssertions: Record, - newAssertions: Record, +export function logInconsistentImportAttributes( + existingAttributes: Record, + newAttributes: Record, source: string, importer: string ): RollupLog { return { - code: INCONSISTENT_IMPORT_ASSERTIONS, + code: INCONSISTENT_IMPORT_ATTRIBUTES, message: `Module "${relativeId(importer)}" tried to import "${relativeId( source - )}" with ${formatAssertions( - newAssertions - )} assertions, but it was already imported elsewhere with ${formatAssertions( - existingAssertions - )} assertions. Please ensure that import assertions for the same module are always consistent.` + )}" with ${formatAttributes( + newAttributes + )} attributes, but it was already imported elsewhere with ${formatAttributes( + existingAttributes + )} attributes. Please ensure that import attributes for the same module are always consistent.` }; } -const formatAssertions = (assertions: Record): string => { - const entries = Object.entries(assertions); +const formatAttributes = (attributes: Record): string => { + const entries = Object.entries(attributes); if (entries.length === 0) return 'no'; return entries.map(([key, value]) => `"${key}": "${value}"`).join(', '); }; +export function logInvalidAnnotation(comment: string, id: string, type: AnnotationType): RollupLog { + return { + code: INVALID_ANNOTATION, + id, + message: `A comment\n\n"${comment}"\n\nin "${relativeId( + id + )}" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.`, + url: getRollupUrl(type === 'noSideEffects' ? URL_TREESHAKE_NOSIDEEFFECTS : URL_TREESHAKE_PURE) + }; +} + export function logInputHookInOutputPlugin(pluginName: string, hookName: string): RollupLog { return { code: INPUT_HOOK_IN_OUTPUT_PLUGIN, @@ -499,6 +519,24 @@ export function logInternalIdCannotBeExternal(source: string, importer: string): }; } +export function logImportOptionsAreInvalid(importer: string): RollupLog { + return { + code: INVALID_IMPORT_ATTRIBUTE, + message: `Rollup could not statically analyze the options argument of a dynamic import in "${relativeId( + importer + )}". Dynamic import options need to be an object with a nested attributes object.` + }; +} + +export function logImportAttributeIsInvalid(importer: string): RollupLog { + return { + code: INVALID_IMPORT_ATTRIBUTE, + message: `Rollup could not statically analyze an import attribute of a dynamic import in "${relativeId( + importer + )}". Import attributes need to have string keys and values. The attribute will be removed.` + }; +} + export function logInvalidLogPosition(plugin: string): RollupLog { return { code: INVALID_LOG_POSITION, @@ -771,7 +809,11 @@ export function logOptimizeChunkStatus( }; } -export function logParseError(error: Error, moduleId: string): RollupLog { +export function logParseError(message: string, pos: number): RollupLog { + return { code: PARSE_ERROR, message, pos }; +} + +export function logModuleParseError(error: Error, moduleId: string): RollupLog { let message = error.message.replace(/ \(\d+:\d+\)$/, ''); if (moduleId.endsWith('.json')) { message += ' (Note that you need @rollup/plugin-json to import JSON files)'; diff --git a/src/utils/options/mergeOptions.ts b/src/utils/options/mergeOptions.ts index 4d7217a2a..9e5448880 100644 --- a/src/utils/options/mergeOptions.ts +++ b/src/utils/options/mergeOptions.ts @@ -53,7 +53,7 @@ export async function mergeOptions( const logLevel = config.logLevel || LOGLEVEL_INFO; const onLog = getOnLog(config, logLevel, printLog); const log = getLogger(plugins, onLog, watchMode, logLevel); - const inputOptions = await mergeInputOptions(config, command, plugins, log, onLog); + const inputOptions = mergeInputOptions(config, command, plugins, log, onLog); if (command.output) { Object.assign(command, command.output); } @@ -75,14 +75,14 @@ export async function mergeOptions( ...Object.keys(commandAliases), 'bundleConfigAsCjs', 'config', + 'configPlugin', 'environment', + 'failAfterWarnings', 'filterLogs', 'plugin', 'silent', - 'failAfterWarnings', 'stdin', - 'waitForBundleInput', - 'configPlugin' + 'waitForBundleInput' ], 'CLI flags', log, @@ -127,30 +127,21 @@ function mergeInputOptions( ): InputOptions { const getOption = (name: keyof InputOptions): any => overrides[name] ?? config[name]; const inputOptions: CompleteInputOptions = { - acorn: getOption('acorn'), - acornInjectPlugins: config.acornInjectPlugins as - | (() => unknown)[] - | (() => unknown) - | undefined, cache: config.cache as false | RollupCache | undefined, context: getOption('context'), experimentalCacheExpiry: getOption('experimentalCacheExpiry'), experimentalLogSideEffects: getOption('experimentalLogSideEffects'), external: getExternal(config, overrides), - inlineDynamicImports: getOption('inlineDynamicImports'), input: getOption('input') || [], logLevel: getOption('logLevel'), makeAbsoluteExternalsRelative: getOption('makeAbsoluteExternalsRelative'), - manualChunks: getOption('manualChunks'), maxParallelFileOps: getOption('maxParallelFileOps'), - maxParallelFileReads: getOption('maxParallelFileReads'), moduleContext: getOption('moduleContext'), onLog, onwarn: undefined, perf: getOption('perf'), plugins, preserveEntrySignatures: getOption('preserveEntrySignatures'), - preserveModules: getOption('preserveModules'), preserveSymlinks: getOption('preserveSymlinks'), shimMissingExports: getOption('shimMissingExports'), strictDeprecations: getOption('strictDeprecations'), @@ -235,15 +226,14 @@ async function mergeOutputOptions( chunkFileNames: getOption('chunkFileNames'), compact: getOption('compact'), dir: getOption('dir'), - dynamicImportFunction: getOption('dynamicImportFunction'), dynamicImportInCjs: getOption('dynamicImportInCjs'), entryFileNames: getOption('entryFileNames'), esModule: getOption('esModule'), - experimentalDeepDynamicChunkOptimization: getOption('experimentalDeepDynamicChunkOptimization'), experimentalMinChunkSize: getOption('experimentalMinChunkSize'), exports: getOption('exports'), extend: getOption('extend'), externalImportAssertions: getOption('externalImportAssertions'), + externalImportAttributes: getOption('externalImportAttributes'), externalLiveBindings: getOption('externalLiveBindings'), file: getOption('file'), footer: getOption('footer'), @@ -269,12 +259,10 @@ async function mergeOutputOptions( manualChunks: getOption('manualChunks'), minifyInternalExports: getOption('minifyInternalExports'), name: getOption('name'), - namespaceToStringTag: getOption('namespaceToStringTag'), noConflict: getOption('noConflict'), outro: getOption('outro'), paths: getOption('paths'), plugins: await normalizePluginOption(config.plugins), - preferConst: getOption('preferConst'), preserveModules: getOption('preserveModules'), preserveModulesRoot: getOption('preserveModulesRoot'), sanitizeFileName: getOption('sanitizeFileName'), diff --git a/src/utils/options/normalizeInputOptions.ts b/src/utils/options/normalizeInputOptions.ts index 6083bcec7..9ba2c640b 100644 --- a/src/utils/options/normalizeInputOptions.ts +++ b/src/utils/options/normalizeInputOptions.ts @@ -1,9 +1,6 @@ -import type * as acorn from 'acorn'; -import { importAssertions } from 'acorn-import-assertions'; import type { HasModuleSideEffects, InputOptions, - LogHandler, ModuleSideEffectsOption, NormalizedInputOptions, RollupBuild @@ -11,17 +8,10 @@ import type { import { EMPTY_ARRAY } from '../blank'; import { ensureArray } from '../ensureArray'; import { getLogger } from '../logger'; -import { LOGLEVEL_INFO, LOGLEVEL_WARN } from '../logging'; -import { error, logInvalidOption, warnDeprecationWithOptions } from '../logs'; +import { LOGLEVEL_INFO } from '../logging'; +import { error, logInvalidOption } from '../logs'; import { resolve } from '../path'; -import { - URL_MAXPARALLELFILEOPS, - URL_OUTPUT_INLINEDYNAMICIMPORTS, - URL_OUTPUT_MANUALCHUNKS, - URL_OUTPUT_PRESERVEMODULES, - URL_TREESHAKE, - URL_TREESHAKE_MODULESIDEEFFECTS -} from '../urls'; +import { URL_TREESHAKE, URL_TREESHAKE_MODULESIDEEFFECTS } from '../urls'; import { getOnLog, getOptionWithPreset, @@ -52,29 +42,22 @@ export async function normalizeInputOptions( const logLevel = config.logLevel || LOGLEVEL_INFO; const onLog = getLogger(plugins, getOnLog(config, logLevel), watchMode, logLevel); const strictDeprecations = config.strictDeprecations || false; - const maxParallelFileOps = getMaxParallelFileOps(config, onLog, strictDeprecations); + const maxParallelFileOps = getMaxParallelFileOps(config); const options: NormalizedInputOptions & InputOptions = { - acorn: getAcorn(config) as unknown as NormalizedInputOptions['acorn'], - acornInjectPlugins: getAcornInjectPlugins(config), cache: getCache(config), context, experimentalCacheExpiry: config.experimentalCacheExpiry ?? 10, experimentalLogSideEffects: config.experimentalLogSideEffects || false, external: getIdMatcher(config.external), - inlineDynamicImports: getInlineDynamicImports(config, onLog, strictDeprecations), input: getInput(config), logLevel, makeAbsoluteExternalsRelative: config.makeAbsoluteExternalsRelative ?? 'ifRelativeSource', - manualChunks: getManualChunks(config, onLog, strictDeprecations), maxParallelFileOps, - maxParallelFileReads: maxParallelFileOps, moduleContext: getModuleContext(config, context), onLog, - onwarn: warning => onLog(LOGLEVEL_WARN, warning), perf: config.perf || false, plugins, preserveEntrySignatures: config.preserveEntrySignatures ?? 'exports-only', - preserveModules: getPreserveModules(config, onLog, strictDeprecations), preserveSymlinks: config.preserveSymlinks || false, shimMissingExports: config.shimMissingExports || false, strictDeprecations, @@ -83,7 +66,7 @@ export async function normalizeInputOptions( warnUnknownOptions( config, - [...Object.keys(options), 'watch'], + [...Object.keys(options), 'onwarn', 'watch'], 'input options', onLog, /^(output)$/ @@ -91,19 +74,6 @@ export async function normalizeInputOptions( return { options, unsetOptions }; } -const getAcorn = (config: InputOptions): acorn.Options => ({ - ecmaVersion: 'latest', - sourceType: 'module', - ...config.acorn -}); - -const getAcornInjectPlugins = ( - config: InputOptions -): NormalizedInputOptions['acornInjectPlugins'] => [ - importAssertions, - ...ensureArray(config.acornInjectPlugins) -]; - const getCache = (config: InputOptions): NormalizedInputOptions['cache'] => config.cache === true // `true` is the default ? undefined @@ -139,63 +109,15 @@ const getIdMatcher = >( return () => false; }; -const getInlineDynamicImports = ( - config: InputOptions, - log: LogHandler, - strictDeprecations: boolean -): NormalizedInputOptions['inlineDynamicImports'] => { - const configInlineDynamicImports = config.inlineDynamicImports; - if (configInlineDynamicImports) { - warnDeprecationWithOptions( - 'The "inlineDynamicImports" option is deprecated. Use the "output.inlineDynamicImports" option instead.', - URL_OUTPUT_INLINEDYNAMICIMPORTS, - true, - log, - strictDeprecations - ); - } - return configInlineDynamicImports; -}; - const getInput = (config: InputOptions): NormalizedInputOptions['input'] => { const configInput = config.input; return configInput == null ? [] : typeof configInput === 'string' ? [configInput] : configInput; }; -const getManualChunks = ( - config: InputOptions, - log: LogHandler, - strictDeprecations: boolean -): NormalizedInputOptions['manualChunks'] => { - const configManualChunks = config.manualChunks; - if (configManualChunks) { - warnDeprecationWithOptions( - 'The "manualChunks" option is deprecated. Use the "output.manualChunks" option instead.', - URL_OUTPUT_MANUALCHUNKS, - true, - log, - strictDeprecations - ); - } - return configManualChunks; -}; - const getMaxParallelFileOps = ( - config: InputOptions, - log: LogHandler, - strictDeprecations: boolean + config: InputOptions ): NormalizedInputOptions['maxParallelFileOps'] => { - const maxParallelFileReads = config.maxParallelFileReads; - if (typeof maxParallelFileReads === 'number') { - warnDeprecationWithOptions( - 'The "maxParallelFileReads" option is deprecated. Use the "maxParallelFileOps" option instead.', - URL_MAXPARALLELFILEOPS, - true, - log, - strictDeprecations - ); - } - const maxParallelFileOps = config.maxParallelFileOps ?? maxParallelFileReads; + const maxParallelFileOps = config.maxParallelFileOps; if (typeof maxParallelFileOps === 'number') { if (maxParallelFileOps <= 0) return Infinity; return maxParallelFileOps; @@ -223,24 +145,6 @@ const getModuleContext = ( return () => context; }; -const getPreserveModules = ( - config: InputOptions, - log: LogHandler, - strictDeprecations: boolean -): NormalizedInputOptions['preserveModules'] => { - const configPreserveModules = config.preserveModules; - if (configPreserveModules) { - warnDeprecationWithOptions( - 'The "preserveModules" option is deprecated. Use the "output.preserveModules" option instead.', - URL_OUTPUT_PRESERVEMODULES, - true, - log, - strictDeprecations - ); - } - return configPreserveModules; -}; - const getTreeshake = (config: InputOptions): NormalizedInputOptions['treeshake'] => { const configTreeshake = config.treeshake; if (configTreeshake === false) { diff --git a/src/utils/options/normalizeOutputOptions.ts b/src/utils/options/normalizeOutputOptions.ts index 5827e4115..4ba7cd521 100644 --- a/src/utils/options/normalizeOutputOptions.ts +++ b/src/utils/options/normalizeOutputOptions.ts @@ -6,7 +6,6 @@ import type { OutputOptions, SourcemapPathTransformOption } from '../../rollup/types'; -import { LOGLEVEL_WARN } from '../logging'; import { error, logInvalidExportOptionValue, logInvalidOption, warnDeprecation } from '../logs'; import { resolve } from '../path'; import { sanitizeFileName as defaultSanitizeFileName } from '../sanitizeFileName'; @@ -15,18 +14,14 @@ import { URL_OUTPUT_AMD_BASEPATH, URL_OUTPUT_AMD_ID, URL_OUTPUT_DIR, - URL_OUTPUT_DYNAMICIMPORTFUNCTION, - URL_OUTPUT_EXPERIMENTALDEEPCHUNKOPTIMIZATION, + URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, URL_OUTPUT_FORMAT, URL_OUTPUT_GENERATEDCODE, - URL_OUTPUT_GENERATEDCODE_CONSTBINDINGS, - URL_OUTPUT_GENERATEDCODE_SYMBOLS, URL_OUTPUT_INLINEDYNAMICIMPORTS, URL_OUTPUT_INTEROP, URL_OUTPUT_MANUALCHUNKS, URL_OUTPUT_SOURCEMAPBASEURL, - URL_PRESERVEENTRYSIGNATURES, - URL_RENDERDYNAMICIMPORT + URL_PRESERVEENTRYSIGNATURES } from '../urls'; import { generatedCodePresets, @@ -49,8 +44,8 @@ export async function normalizeOutputOptions( const inlineDynamicImports = getInlineDynamicImports(config, inputOptions); const preserveModules = getPreserveModules(config, inlineDynamicImports, inputOptions); const file = getFile(config, preserveModules, inputOptions); - const preferConst = getPreferConst(config, inputOptions); - const generatedCode = getGeneratedCode(config, preferConst); + const generatedCode = getGeneratedCode(config); + const externalImportAttributes = getExternalImportAttributes(config, inputOptions); const outputOptions: NormalizedOutputOptions & OutputOptions = { amd: getAmd(config), @@ -59,18 +54,14 @@ export async function normalizeOutputOptions( chunkFileNames: config.chunkFileNames ?? '[name]-[hash].js', compact, dir: getDir(config, file), - dynamicImportFunction: getDynamicImportFunction(config, inputOptions, format), dynamicImportInCjs: config.dynamicImportInCjs ?? true, entryFileNames: getEntryFileNames(config, unsetOptions), esModule: config.esModule ?? 'if-default-prop', - experimentalDeepDynamicChunkOptimization: getExperimentalDeepDynamicChunkOptimization( - config, - inputOptions - ), experimentalMinChunkSize: config.experimentalMinChunkSize ?? 1, exports: getExports(config, unsetOptions), extend: config.extend || false, - externalImportAssertions: config.externalImportAssertions ?? true, + externalImportAssertions: externalImportAttributes, + externalImportAttributes, externalLiveBindings: config.externalLiveBindings ?? true, file, footer: getAddon(config, 'footer'), @@ -83,15 +74,13 @@ export async function normalizeOutputOptions( inlineDynamicImports, interop: getInterop(config), intro: getAddon(config, 'intro'), - manualChunks: getManualChunks(config, inlineDynamicImports, preserveModules, inputOptions), + manualChunks: getManualChunks(config, inlineDynamicImports, preserveModules), minifyInternalExports: getMinifyInternalExports(config, format, compact), name: config.name, - namespaceToStringTag: getNamespaceToStringTag(config, generatedCode, inputOptions), noConflict: config.noConflict || false, outro: getAddon(config, 'outro'), paths: config.paths || {}, plugins: await normalizePluginOption(config.plugins), - preferConst, preserveModules, preserveModulesRoot: getPreserveModulesRoot(config), sanitizeFileName: @@ -190,8 +179,7 @@ const getInlineDynamicImports = ( config: OutputOptions, inputOptions: NormalizedInputOptions ): NormalizedOutputOptions['inlineDynamicImports'] => { - const inlineDynamicImports = - (config.inlineDynamicImports ?? inputOptions.inlineDynamicImports) || false; + const inlineDynamicImports = config.inlineDynamicImports || false; const { input } = inputOptions; if (inlineDynamicImports && (Array.isArray(input) ? input : Object.keys(input)).length > 1) { return error( @@ -210,7 +198,7 @@ const getPreserveModules = ( inlineDynamicImports: boolean, inputOptions: NormalizedInputOptions ): NormalizedOutputOptions['preserveModules'] => { - const preserveModules = (config.preserveModules ?? inputOptions.preserveModules) || false; + const preserveModules = config.preserveModules || false; if (preserveModules) { if (inlineDynamicImports) { return error( @@ -234,22 +222,6 @@ const getPreserveModules = ( return preserveModules; }; -const getPreferConst = ( - config: OutputOptions, - inputOptions: NormalizedInputOptions -): NormalizedOutputOptions['preferConst'] => { - const configPreferConst = config.preferConst; - if (configPreferConst != null) { - warnDeprecation( - `The "output.preferConst" option is deprecated. Use the "output.generatedCode.constBindings" option instead.`, - URL_OUTPUT_GENERATEDCODE_CONSTBINDINGS, - true, - inputOptions - ); - } - return !!configPreferConst; -}; - const getPreserveModulesRoot = ( config: OutputOptions ): NormalizedOutputOptions['preserveModulesRoot'] => { @@ -338,33 +310,6 @@ const getDir = ( return dir; }; -const getDynamicImportFunction = ( - config: OutputOptions, - inputOptions: NormalizedInputOptions, - format: InternalModuleFormat -): NormalizedOutputOptions['dynamicImportFunction'] => { - const configDynamicImportFunction = config.dynamicImportFunction; - if (configDynamicImportFunction) { - warnDeprecation( - `The "output.dynamicImportFunction" option is deprecated. Use the "renderDynamicImport" plugin hook instead.`, - URL_RENDERDYNAMICIMPORT, - true, - inputOptions - ); - if (format !== 'es') { - inputOptions.onLog( - LOGLEVEL_WARN, - logInvalidOption( - 'output.dynamicImportFunction', - URL_OUTPUT_DYNAMICIMPORTFUNCTION, - 'this option is ignored for formats other than "es"' - ) - ); - } - } - return configDynamicImportFunction; -}; - const getEntryFileNames = ( config: OutputOptions, unsetOptions: Set @@ -376,23 +321,6 @@ const getEntryFileNames = ( return configEntryFileNames ?? '[name].js'; }; -function getExperimentalDeepDynamicChunkOptimization( - config: OutputOptions, - inputOptions: NormalizedInputOptions -) { - const configExperimentalDeepDynamicChunkOptimization = - config.experimentalDeepDynamicChunkOptimization; - if (configExperimentalDeepDynamicChunkOptimization != null) { - warnDeprecation( - `The "output.experimentalDeepDynamicChunkOptimization" option is deprecated as Rollup always runs the full chunking algorithm now. The option should be removed.`, - URL_OUTPUT_EXPERIMENTALDEEPCHUNKOPTIMIZATION, - true, - inputOptions - ); - } - return configExperimentalDeepDynamicChunkOptimization || false; -} - function getExports( config: OutputOptions, unsetOptions: Set @@ -406,10 +334,22 @@ function getExports( return configExports || 'auto'; } -const getGeneratedCode = ( +const getExternalImportAttributes = ( config: OutputOptions, - preferConst: boolean -): NormalizedOutputOptions['generatedCode'] => { + inputOptions: NormalizedInputOptions +): NormalizedOutputOptions['externalImportAttributes'] => { + if (config.externalImportAssertions != undefined) { + warnDeprecation( + `The "output.externalImportAssertions" option is deprecated. Use the "output.externalImportAttributes" option instead.`, + URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, + true, + inputOptions + ); + } + return config.externalImportAttributes ?? config.externalImportAssertions ?? true; +}; + +const getGeneratedCode = (config: OutputOptions): NormalizedOutputOptions['generatedCode'] => { const configWithPreset = getOptionWithPreset( config.generatedCode, generatedCodePresets, @@ -419,7 +359,7 @@ const getGeneratedCode = ( ); return { arrowFunctions: configWithPreset.arrowFunctions === true, - constBindings: configWithPreset.constBindings === true || preferConst, + constBindings: configWithPreset.constBindings === true, objectShorthand: configWithPreset.objectShorthand === true, reservedNamesAsProps: configWithPreset.reservedNamesAsProps !== false, symbols: configWithPreset.symbols === true @@ -477,10 +417,9 @@ const validateInterop = (interop: InteropType): InteropType => { const getManualChunks = ( config: OutputOptions, inlineDynamicImports: boolean, - preserveModules: boolean, - inputOptions: NormalizedInputOptions + preserveModules: boolean ): NormalizedOutputOptions['manualChunks'] => { - const configManualChunks = config.manualChunks || inputOptions.manualChunks; + const configManualChunks = config.manualChunks; if (configManualChunks) { if (inlineDynamicImports) { return error( @@ -511,24 +450,6 @@ const getMinifyInternalExports = ( ): NormalizedOutputOptions['minifyInternalExports'] => config.minifyInternalExports ?? (compact || format === 'es' || format === 'system'); -const getNamespaceToStringTag = ( - config: OutputOptions, - generatedCode: NormalizedOutputOptions['generatedCode'], - inputOptions: NormalizedInputOptions -): NormalizedOutputOptions['namespaceToStringTag'] => { - const configNamespaceToStringTag = config.namespaceToStringTag; - if (configNamespaceToStringTag != null) { - warnDeprecation( - `The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.`, - URL_OUTPUT_GENERATEDCODE_SYMBOLS, - true, - inputOptions - ); - return configNamespaceToStringTag; - } - return generatedCode.symbols || false; -}; - const getSourcemapFileNames = ( config: OutputOptions, unsetOptions: Set diff --git a/src/utils/parseAssertions.ts b/src/utils/parseAssertions.ts deleted file mode 100644 index 3fbf385fa..000000000 --- a/src/utils/parseAssertions.ts +++ /dev/null @@ -1,62 +0,0 @@ -import type Identifier from '../ast/nodes/Identifier'; -import type ImportAttribute from '../ast/nodes/ImportAttribute'; -import type ImportExpression from '../ast/nodes/ImportExpression'; -import type { LiteralValue } from '../ast/nodes/Literal'; -import type Literal from '../ast/nodes/Literal'; -import type ObjectExpression from '../ast/nodes/ObjectExpression'; -import type Property from '../ast/nodes/Property'; -import type SpreadElement from '../ast/nodes/SpreadElement'; -import { EMPTY_OBJECT } from './blank'; - -export function getAssertionsFromImportExpression(node: ImportExpression): Record { - const assertProperty = node.arguments?.[0]?.properties.find( - (property): property is Property => getPropertyKey(property) === 'assert' - )?.value; - if (!assertProperty) { - return EMPTY_OBJECT; - } - const assertFields = (assertProperty as ObjectExpression).properties - .map(property => { - const key = getPropertyKey(property); - if ( - typeof key === 'string' && - typeof ((property as Property).value as Literal).value === 'string' - ) { - return [key, ((property as Property).value as Literal).value] as [string, string]; - } - return null; - }) - .filter((property): property is [string, string] => !!property); - if (assertFields.length > 0) { - return Object.fromEntries(assertFields); - } - return EMPTY_OBJECT; -} - -const getPropertyKey = ( - property: Property | SpreadElement | ImportAttribute -): LiteralValue | undefined => { - const key = (property as Property | ImportAttribute).key; - return key && ((key as Identifier).name || (key as Literal).value); -}; - -export function getAssertionsFromImportExportDeclaration( - assertions: ImportAttribute[] | undefined -) { - return assertions?.length - ? Object.fromEntries( - assertions.map(assertion => [getPropertyKey(assertion), assertion.value.value]) - ) - : EMPTY_OBJECT; -} - -export function doAssertionsDiffer( - assertionA: Record, - assertionB: Record -): boolean { - const keysA = Object.keys(assertionA); - return ( - keysA.length !== Object.keys(assertionB).length || - keysA.some(key => assertionA[key] !== assertionB[key]) - ); -} diff --git a/src/utils/parseAst.ts b/src/utils/parseAst.ts new file mode 100644 index 000000000..87e6056fd --- /dev/null +++ b/src/utils/parseAst.ts @@ -0,0 +1,10 @@ +import { parse } from '../../native'; +import type { ParseAst } from '../rollup/types'; +import { convertProgram } from './convert-ast'; +import getReadStringFunction from './getReadStringFunction'; + +export const parseAst: ParseAst = (input, { allowReturnOutsideFunction = false } = {}) => { + const astBuffer = parse(input, allowReturnOutsideFunction); + const readString = getReadStringFunction(astBuffer); + return convertProgram(astBuffer.buffer, readString); +}; diff --git a/src/utils/parseAstType.d.ts b/src/utils/parseAstType.d.ts new file mode 100644 index 000000000..9e67dd862 --- /dev/null +++ b/src/utils/parseAstType.d.ts @@ -0,0 +1,3 @@ +import type { ParseAst } from '../rollup/types'; + +export const parseAst: ParseAst; diff --git a/src/utils/parseImportAttributes.ts b/src/utils/parseImportAttributes.ts new file mode 100644 index 000000000..18346089a --- /dev/null +++ b/src/utils/parseImportAttributes.ts @@ -0,0 +1,85 @@ +import type Identifier from '../ast/nodes/Identifier'; +import type ImportAttribute from '../ast/nodes/ImportAttribute'; +import type ImportExpression from '../ast/nodes/ImportExpression'; +import type { default as Literal, LiteralValue } from '../ast/nodes/Literal'; +import ObjectExpression from '../ast/nodes/ObjectExpression'; +import type Property from '../ast/nodes/Property'; +import type SpreadElement from '../ast/nodes/SpreadElement'; +import { EMPTY_OBJECT } from './blank'; +import { LOGLEVEL_WARN } from './logging'; +import { logImportAttributeIsInvalid, logImportOptionsAreInvalid } from './logs'; + +const ATTRIBUTE_KEYWORDS = new Set(['assert', 'with']); + +export function getAttributesFromImportExpression(node: ImportExpression): Record { + const { + scope: { context }, + options, + start + } = node; + if (!(options instanceof ObjectExpression)) { + if (options) { + context.module.log(LOGLEVEL_WARN, logImportAttributeIsInvalid(context.module.id), start); + } + return EMPTY_OBJECT; + } + const assertProperty = options.properties.find((property): property is Property => + ATTRIBUTE_KEYWORDS.has(getPropertyKey(property) as string) + )?.value; + if (!assertProperty) { + return EMPTY_OBJECT; + } + if (!(assertProperty instanceof ObjectExpression)) { + context.module.log(LOGLEVEL_WARN, logImportOptionsAreInvalid(context.module.id), start); + return EMPTY_OBJECT; + } + const assertFields = (assertProperty as ObjectExpression).properties + .map(property => { + const key = getPropertyKey(property); + if ( + typeof key === 'string' && + typeof ((property as Property).value as Literal).value === 'string' + ) { + return [key, ((property as Property).value as Literal).value] as [string, string]; + } + context.module.log( + LOGLEVEL_WARN, + logImportAttributeIsInvalid(context.module.id), + property.start + ); + return null; + }) + .filter((property): property is [string, string] => !!property); + if (assertFields.length > 0) { + return Object.fromEntries(assertFields); + } + return EMPTY_OBJECT; +} + +const getPropertyKey = ( + property: Property | SpreadElement | ImportAttribute +): LiteralValue | undefined => { + const key = (property as Property | ImportAttribute).key; + return ( + key && !(property as Property).computed && ((key as Identifier).name || (key as Literal).value) + ); +}; + +export function getAttributesFromImportExportDeclaration(attributes: ImportAttribute[]) { + return attributes?.length + ? Object.fromEntries( + attributes.map(assertion => [getPropertyKey(assertion), assertion.value.value]) + ) + : EMPTY_OBJECT; +} + +export function doAttributesDiffer( + assertionA: Record, + assertionB: Record +): boolean { + const keysA = Object.keys(assertionA); + return ( + keysA.length !== Object.keys(assertionB).length || + keysA.some(key => assertionA[key] !== assertionB[key]) + ); +} diff --git a/src/utils/renderChunks.ts b/src/utils/renderChunks.ts index e154cc62d..4a24db0b9 100644 --- a/src/utils/renderChunks.ts +++ b/src/utils/renderChunks.ts @@ -9,7 +9,7 @@ import type { } from '../rollup/types'; import type { PluginDriver } from './PluginDriver'; import { collapseSourcemaps } from './collapseSourcemaps'; -import { createHash } from './crypto'; +import { getXxhash } from './crypto'; import { decodedSourcemap } from './decodedSourcemap'; import { replacePlaceholders, @@ -240,7 +240,7 @@ async function transformChunksAndGenerateContentHashes( // replaced with the same value before hashing const { containedPlaceholders, transformedCode } = replacePlaceholdersWithDefaultAndGetContainedPlaceholders(code, placeholders); - const hash = createHash().update(transformedCode); + let contentToHash = transformedCode; const hashAugmentation = pluginDriver.hookReduceValueSync( 'augmentChunkHash', '', @@ -253,12 +253,12 @@ async function transformChunksAndGenerateContentHashes( } ); if (hashAugmentation) { - hash.update(hashAugmentation); + contentToHash += hashAugmentation; } renderedChunksByPlaceholder.set(hashPlaceholder, transformedChunk); hashDependenciesByPlaceholder.set(hashPlaceholder, { containedPlaceholders, - contentHash: hash.digest('hex') + contentHash: getXxhash(contentToHash) }); } else { nonHashedChunksWithPlaceholders.push(transformedChunk); @@ -268,10 +268,7 @@ async function transformChunksAndGenerateContentHashes( if (map && sourcemapHashPlaceholder) { initialHashesByPlaceholder.set( preliminarySourcemapFileName.hashPlaceholder, - createHash() - .update(map.toString()) - .digest('hex') - .slice(0, preliminarySourcemapFileName.hashPlaceholder.length) + getXxhash(map.toString()).slice(0, preliminarySourcemapFileName.hashPlaceholder.length) ); } } @@ -293,12 +290,12 @@ function generateFinalHashes( ) { const hashesByPlaceholder = new Map(initialHashesByPlaceholder); for (const [placeholder, { fileName }] of renderedChunksByPlaceholder) { - let hash = createHash(); + let contentToHash = ''; const hashDependencyPlaceholders = new Set([placeholder]); for (const dependencyPlaceholder of hashDependencyPlaceholders) { const { containedPlaceholders, contentHash } = hashDependenciesByPlaceholder.get(dependencyPlaceholder)!; - hash.update(contentHash); + contentToHash += contentHash; for (const containedPlaceholder of containedPlaceholders) { // When looping over a map, setting an entry only causes a new iteration if the key is new hashDependencyPlaceholders.add(containedPlaceholder); @@ -309,9 +306,9 @@ function generateFinalHashes( do { // In case of a hash collision, create a hash of the hash if (finalHash) { - hash = createHash().update(finalHash); + contentToHash = finalHash; } - finalHash = hash.digest('hex').slice(0, placeholder.length); + finalHash = getXxhash(contentToHash).slice(0, placeholder.length); finalFileName = replaceSinglePlaceholder(fileName, placeholder, finalHash); } while (bundle[lowercaseBundleKeys].has(finalFileName.toLowerCase())); bundle[finalFileName] = FILE_PLACEHOLDER; diff --git a/src/utils/renderHelpers.ts b/src/utils/renderHelpers.ts index b9a6510c2..fad7311be 100644 --- a/src/utils/renderHelpers.ts +++ b/src/utils/renderHelpers.ts @@ -8,14 +8,13 @@ import { treeshakeNode } from './treeshakeNode'; export interface RenderOptions { accessedDocumentCurrentScript: boolean; - dynamicImportFunction: string | undefined; exportNamesByVariable: Map; format: InternalModuleFormat; freeze: boolean; indent: string; - namespaceToStringTag: boolean; pluginDriver: PluginDriver; snippets: GenerateCodeSnippets; + symbols: boolean; useOriginalName: ((variable: Variable) => boolean) | null; } diff --git a/src/utils/resolveId.ts b/src/utils/resolveId.ts index eddacaff4..812f2e901 100644 --- a/src/utils/resolveId.ts +++ b/src/utils/resolveId.ts @@ -14,7 +14,7 @@ export async function resolveId( skip: readonly { importer: string | undefined; plugin: Plugin; source: string }[] | null, customOptions: CustomPluginOptions | undefined, isEntry: boolean, - assertions: Record + attributes: Record ): Promise { const pluginResult = await resolveIdViaPlugins( source, @@ -24,7 +24,7 @@ export async function resolveId( skip, customOptions, isEntry, - assertions + attributes ); if (pluginResult != null) { diff --git a/src/utils/resolveIdViaPlugins.ts b/src/utils/resolveIdViaPlugins.ts index 6934dcc23..d33a9ed39 100644 --- a/src/utils/resolveIdViaPlugins.ts +++ b/src/utils/resolveIdViaPlugins.ts @@ -11,7 +11,7 @@ export function resolveIdViaPlugins( skip: readonly { importer: string | undefined; plugin: Plugin; source: string }[] | null, customOptions: CustomPluginOptions | undefined, isEntry: boolean, - assertions: Record + attributes: Record ): Promise<[NonNullable, Plugin] | null> { let skipped: Set | null = null; let replaceContext: ReplaceContext | null = null; @@ -24,20 +24,22 @@ export function resolveIdViaPlugins( } replaceContext = (pluginContext, plugin): PluginContext => ({ ...pluginContext, - resolve: (source, importer, { assertions, custom, isEntry, skipSelf } = BLANK) => - moduleLoaderResolveId( + resolve: (source, importer, { attributes, custom, isEntry, skipSelf } = BLANK) => { + skipSelf ??= true; + return moduleLoaderResolveId( source, importer, custom, isEntry, - assertions || EMPTY_OBJECT, + attributes || EMPTY_OBJECT, skipSelf ? [...skip, { importer, plugin, source }] : skip - ) + ); + } }); } return pluginDriver.hookFirstAndGetPlugin( 'resolveId', - [source, importer, { assertions, custom: customOptions, isEntry }], + [source, importer, { attributes, custom: customOptions, isEntry }], replaceContext, skipped ); diff --git a/src/utils/treeshakeNode.ts b/src/utils/treeshakeNode.ts index 47375d870..4bc767a64 100644 --- a/src/utils/treeshakeNode.ts +++ b/src/utils/treeshakeNode.ts @@ -1,27 +1,7 @@ import type MagicString from 'magic-string'; -import * as NodeType from '../ast/nodes/NodeType'; import type { Node } from '../ast/nodes/shared/Node'; export function treeshakeNode(node: Node, code: MagicString, start: number, end: number): void { code.remove(start, end); - if (node.annotations) { - for (const annotation of node.annotations) { - if (annotation.start < start) { - code.remove(annotation.start, annotation.end); - } else { - return; - } - } - } -} - -export function removeAnnotations(node: Node, code: MagicString): void { - if (!node.annotations && node.parent.type === NodeType.ExpressionStatement) { - node = node.parent as Node; - } - if (node.annotations) { - for (const annotation of node.annotations) { - code.remove(annotation.start, annotation.end); - } - } + node.removeAnnotations(code); } diff --git a/src/utils/urls.ts b/src/utils/urls.ts index 9701bae0d..75ad400be 100644 --- a/src/utils/urls.ts +++ b/src/utils/urls.ts @@ -12,16 +12,12 @@ export const URL_MAXPARALLELFILEOPS = 'configuration-options/#maxparallelfileops export const URL_OUTPUT_AMD_ID = 'configuration-options/#output-amd-id'; export const URL_OUTPUT_AMD_BASEPATH = 'configuration-options/#output-amd-basepath'; export const URL_OUTPUT_DIR = 'configuration-options/#output-dir'; -export const URL_OUTPUT_DYNAMICIMPORTFUNCTION = - 'configuration-options/#output-dynamicimportfunction'; export const URL_OUTPUT_EXPORTS = 'configuration-options/#output-exports'; export const URL_OUTPUT_EXTEND = 'configuration-options/#output-extend'; +export const URL_OUTPUT_EXTERNALIMPORTATTRIBUTES = + 'configuration-options/#output-externalimportattributes'; export const URL_OUTPUT_FORMAT = 'configuration-options/#output-format'; export const URL_OUTPUT_GENERATEDCODE = 'configuration-options/#output-generatedcode'; -export const URL_OUTPUT_EXPERIMENTALDEEPCHUNKOPTIMIZATION = - 'configuration-options/#output-experimentaldeepdynamicchunkoptimization'; -export const URL_OUTPUT_GENERATEDCODE_CONSTBINDINGS = - 'configuration-options/#output-generatedcode-constbindings'; export const URL_OUTPUT_GENERATEDCODE_SYMBOLS = 'configuration-options/#output-generatedcode-symbols'; export const URL_OUTPUT_GLOBALS = 'configuration-options/#output-globals'; @@ -34,6 +30,8 @@ export const URL_OUTPUT_SOURCEMAPBASEURL = 'configuration-options/#output-source export const URL_OUTPUT_SOURCEMAPFILE = 'configuration-options/#output-sourcemapfile'; export const URL_PRESERVEENTRYSIGNATURES = 'configuration-options/#preserveentrysignatures'; export const URL_TREESHAKE = 'configuration-options/#treeshake'; +export const URL_TREESHAKE_PURE = 'configuration-options/#pure'; +export const URL_TREESHAKE_NOSIDEEFFECTS = 'configuration-options/#no-side-effects'; export const URL_TREESHAKE_MODULESIDEEFFECTS = 'configuration-options/#treeshake-modulesideeffects'; export const URL_WATCH = 'configuration-options/#watch'; diff --git a/test/browser/index.js b/test/browser/index.js index 2167a4210..dd06cc691 100644 --- a/test/browser/index.js +++ b/test/browser/index.js @@ -1,10 +1,13 @@ // since we don't run the browser tests in an actual browser, we need to make `performance` // globally accessible same as in the browser. this can be removed once `performance` is // available globally in all supported platforms. [currently global for node.js v16+]. -// @ts-expect-error ignore +const { readFile } = require('node:fs/promises'); +const { basename, resolve } = require('node:path'); + global.performance = require('node:perf_hooks').performance; -const { basename, resolve } = require('node:path'); +global.fetch = url => readFile(url.href.replace('file://', '')); + const fixturify = require('fixturify'); /** @@ -69,7 +72,7 @@ runTestSuiteWithSamples( } assertOutputMatches(output, directory); } - ); + ).timeout(30_000); } ); diff --git a/test/browser/samples/missing-dependency-resolution/_config.js b/test/browser/samples/missing-dependency-resolution/_config.js index 07da69ed0..ea2e64b18 100644 --- a/test/browser/samples/missing-dependency-resolution/_config.js +++ b/test/browser/samples/missing-dependency-resolution/_config.js @@ -12,7 +12,6 @@ console.log(foo);` code: 'NO_FS_IN_BROWSER', message: 'Cannot access the file system (via "path.resolve") when using the browser build of Rollup. Make sure you supply a plugin with custom resolveId and load hooks to Rollup.', - url: 'https://rollupjs.org/plugin-development/#a-simple-example', - watchFiles: ['main'] + url: 'https://rollupjs.org/plugin-development/#a-simple-example' } }); diff --git a/test/browser/samples/supports-hashes/_expected/dep-bd733981.js b/test/browser/samples/supports-hashes/_expected/dep-KkHNeB29.js similarity index 100% rename from test/browser/samples/supports-hashes/_expected/dep-bd733981.js rename to test/browser/samples/supports-hashes/_expected/dep-KkHNeB29.js diff --git a/test/browser/samples/supports-hashes/_expected/main-70712c1f.js b/test/browser/samples/supports-hashes/_expected/main-70712c1f.js deleted file mode 100644 index 697a036fc..000000000 --- a/test/browser/samples/supports-hashes/_expected/main-70712c1f.js +++ /dev/null @@ -1,3 +0,0 @@ -import { foo } from './dep-bd733981.js'; - -console.log(foo); diff --git a/test/browser/samples/supports-hashes/_expected/main-pNv0QjL6.js b/test/browser/samples/supports-hashes/_expected/main-pNv0QjL6.js new file mode 100644 index 000000000..592340bf1 --- /dev/null +++ b/test/browser/samples/supports-hashes/_expected/main-pNv0QjL6.js @@ -0,0 +1,3 @@ +import { foo } from './dep-KkHNeB29.js'; + +console.log(foo); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_config.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_config.js deleted file mode 100644 index b368e78bc..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: - 'avoids empty imports if they do not have side-effects when preserving modules (#3359)', - options: { - strictDeprecations: false, - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/a.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/a.js deleted file mode 100644 index 3cffb947e..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/a.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const a = 1; - - exports.a = a; - -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/b.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/b.js deleted file mode 100644 index b24bc116c..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/b.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const b = 2; - - exports.b = b; - -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/main.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/main.js deleted file mode 100644 index 4e0843caa..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./a', './one'], (function (a, one) { 'use strict'; - - console.log(a.a + one.d); - -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/one.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/one.js deleted file mode 100644 index 2c0c07355..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/amd/one.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports', './b'], (function (exports, b) { 'use strict'; - - const d = b.b + 4; - - exports.d = d; - -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/a.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/a.js deleted file mode 100644 index 418c69d25..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/a.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const a = 1; - -exports.a = a; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/b.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/b.js deleted file mode 100644 index f3fc6f224..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/b.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const b = 2; - -exports.b = b; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/main.js deleted file mode 100644 index c691c0d47..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/main.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var a = require('./a.js'); -var one = require('./one.js'); - -console.log(a.a + one.d); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/one.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/one.js deleted file mode 100644 index 98e3a99e3..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/cjs/one.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var b = require('./b.js'); - -const d = b.b + 4; - -exports.d = d; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/a.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/a.js deleted file mode 100644 index 089815c5b..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/a.js +++ /dev/null @@ -1,3 +0,0 @@ -const a = 1; - -export { a }; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/b.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/b.js deleted file mode 100644 index 27b49edda..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/b.js +++ /dev/null @@ -1,3 +0,0 @@ -const b = 2; - -export { b }; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/main.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/main.js deleted file mode 100644 index 0b42cf037..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import { a } from './a.js'; -import { d } from './one.js'; - -console.log(a + d); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/one.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/one.js deleted file mode 100644 index d9291f1bf..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/es/one.js +++ /dev/null @@ -1,5 +0,0 @@ -import { b } from './b.js'; - -const d = b + 4; - -export { d }; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/a.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/a.js deleted file mode 100644 index 8fb33a525..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/a.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const a = exports('a', 1); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/b.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/b.js deleted file mode 100644 index 3cb12a8bc..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/b.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const b = exports('b', 2); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/main.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/main.js deleted file mode 100644 index fc9155ecd..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/main.js +++ /dev/null @@ -1,16 +0,0 @@ -System.register(['./a.js', './one.js'], (function () { - 'use strict'; - var a, d; - return { - setters: [function (module) { - a = module.a; - }, function (module) { - d = module.d; - }], - execute: (function () { - - console.log(a + d); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/one.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/one.js deleted file mode 100644 index 4819936a2..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/_expected/system/one.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register(['./b.js'], (function (exports) { - 'use strict'; - var b; - return { - setters: [function (module) { - b = module.b; - }], - execute: (function () { - - const d = exports('d', b + 4); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/a.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/a.js deleted file mode 100644 index cc798ff50..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/a.js +++ /dev/null @@ -1 +0,0 @@ -export const a = 1; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/b.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/b.js deleted file mode 100644 index 202103085..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/b.js +++ /dev/null @@ -1 +0,0 @@ -export const b = 2; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/c.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/c.js deleted file mode 100644 index 5f0cabef8..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/c.js +++ /dev/null @@ -1 +0,0 @@ -export const c = 3; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/index.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/index.js deleted file mode 100644 index c2357812d..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export { a } from './a'; -export { b } from './b'; -export { c } from './c'; diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/main.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/main.js deleted file mode 100644 index 6279273d1..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { a } from './index'; -import { d } from './one'; -console.log(a + d); diff --git a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/one.js b/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/one.js deleted file mode 100644 index 8a9f8689a..000000000 --- a/test/chunking-form/samples/deprecated/avoid-imports-preserve-modules/one.js +++ /dev/null @@ -1,2 +0,0 @@ -import { b } from './index'; -export const d = b + 4; diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_config.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_config.js deleted file mode 100644 index 12a9913eb..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'handles manual chunks with circular dependencies', - expectedWarnings: ['CIRCULAR_DEPENDENCY', 'DEPRECATED_FEATURE'], - options: { - strictDeprecations: false, - input: 'main', - manualChunks: { lib1: ['lib1'], lib2: ['lib2'] } - } -}); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/generated-lib1.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/generated-lib1.js deleted file mode 100644 index d53e713d2..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/generated-lib1.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports', './generated-lib2'], (function (exports, lib2) { 'use strict'; - - const lib1 = 'lib1'; - console.log(`${lib1} imports ${lib2.lib2}`); - - exports.lib1 = lib1; - -})); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/generated-lib2.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/generated-lib2.js deleted file mode 100644 index 4910275ea..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/generated-lib2.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports', './generated-lib1'], (function (exports, lib1) { 'use strict'; - - const lib2 = 'lib2'; - console.log(`${lib2} imports ${lib1.lib1}`); - - exports.lib2 = lib2; - -})); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/main.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/main.js deleted file mode 100644 index 0fbe5aa7e..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/amd/main.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports', './generated-lib1', './generated-lib2'], (function (exports, lib1, lib2) { 'use strict'; - - - - exports.lib1 = lib1.lib1; - -})); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/generated-lib1.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/generated-lib1.js deleted file mode 100644 index 7c6e9861e..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/generated-lib1.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var lib2 = require('./generated-lib2.js'); - -const lib1 = 'lib1'; -console.log(`${lib1} imports ${lib2.lib2}`); - -exports.lib1 = lib1; diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/generated-lib2.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/generated-lib2.js deleted file mode 100644 index b1af239df..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/generated-lib2.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var lib1 = require('./generated-lib1.js'); - -const lib2 = 'lib2'; -console.log(`${lib2} imports ${lib1.lib1}`); - -exports.lib2 = lib2; diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/main.js deleted file mode 100644 index 0a949dc0f..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/cjs/main.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var lib1 = require('./generated-lib1.js'); -require('./generated-lib2.js'); - - - -exports.lib1 = lib1.lib1; diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/generated-lib1.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/generated-lib1.js deleted file mode 100644 index f01a233c7..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/generated-lib1.js +++ /dev/null @@ -1,6 +0,0 @@ -import { l as lib2 } from './generated-lib2.js'; - -const lib1 = 'lib1'; -console.log(`${lib1} imports ${lib2}`); - -export { lib1 as l }; diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/generated-lib2.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/generated-lib2.js deleted file mode 100644 index d822262ae..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/generated-lib2.js +++ /dev/null @@ -1,6 +0,0 @@ -import { l as lib1 } from './generated-lib1.js'; - -const lib2 = 'lib2'; -console.log(`${lib2} imports ${lib1}`); - -export { lib2 as l }; diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/main.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/main.js deleted file mode 100644 index 93f53841e..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/es/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export { l as lib1 } from './generated-lib1.js'; -import './generated-lib2.js'; diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/generated-lib1.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/generated-lib1.js deleted file mode 100644 index e68a14939..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/generated-lib1.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./generated-lib2.js'], (function (exports) { - 'use strict'; - var lib2; - return { - setters: [function (module) { - lib2 = module.l; - }], - execute: (function () { - - const lib1 = exports('l', 'lib1'); - console.log(`${lib1} imports ${lib2}`); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/generated-lib2.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/generated-lib2.js deleted file mode 100644 index 2fc94b38e..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/generated-lib2.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./generated-lib1.js'], (function (exports) { - 'use strict'; - var lib1; - return { - setters: [function (module) { - lib1 = module.l; - }], - execute: (function () { - - const lib2 = exports('l', 'lib2'); - console.log(`${lib2} imports ${lib1}`); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/main.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/main.js deleted file mode 100644 index 055d3eb7c..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/_expected/system/main.js +++ /dev/null @@ -1,13 +0,0 @@ -System.register(['./generated-lib1.js', './generated-lib2.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('lib1', module.l); - }, null], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/lib1.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/lib1.js deleted file mode 100644 index f0e3728c7..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/lib1.js +++ /dev/null @@ -1,3 +0,0 @@ -import { lib2 } from './lib2.js'; -export const lib1 = 'lib1'; -console.log(`${lib1} imports ${lib2}`); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/lib2.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/lib2.js deleted file mode 100644 index cb0f5333f..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/lib2.js +++ /dev/null @@ -1,3 +0,0 @@ -import { lib1 } from './lib1'; -export const lib2 = 'lib2'; -console.log(`${lib2} imports ${lib1}`); diff --git a/test/chunking-form/samples/deprecated/circular-manual-chunks/main.js b/test/chunking-form/samples/deprecated/circular-manual-chunks/main.js deleted file mode 100644 index 73c902d4b..000000000 --- a/test/chunking-form/samples/deprecated/circular-manual-chunks/main.js +++ /dev/null @@ -1 +0,0 @@ -export { lib1 } from './lib1.js'; diff --git a/test/chunking-form/samples/deprecated/dynamic-import-comments/_config.js b/test/chunking-form/samples/deprecated/dynamic-import-comments/_config.js deleted file mode 100644 index 746c72502..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-comments/_config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = defineTest({ - description: 'should not remove inline comments inside dynamic import', - options: { - strictDeprecations: false, - input: 'main.js', - onwarn() {}, - plugins: { - resolveDynamicImport() { - return false; - } - }, - output: { - dynamicImportFunction: 'foobar' - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/amd/main.js b/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/amd/main.js deleted file mode 100644 index 62b0ebc08..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/amd/main.js +++ /dev/null @@ -1,24 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - function _interopNamespaceDefault(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); - } - - new Promise(function (resolve, reject) { require([ - /* webpackChunkName: "chunk-name" */ - './foo'/*suffix*/], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }); - -})); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/cjs/main.js deleted file mode 100644 index 3ec906a7e..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/cjs/main.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -import /* () should not break */ ( -/* webpackChunkName: "chunk-name" */ -'./foo.js'/*suffix*/); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/es/main.js b/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/es/main.js deleted file mode 100644 index 8f2386314..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/es/main.js +++ /dev/null @@ -1,3 +0,0 @@ -foobar( -/* webpackChunkName: "chunk-name" */ -'./foo.js'/*suffix*/); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/system/main.js b/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/system/main.js deleted file mode 100644 index d95610125..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-comments/_expected/system/main.js +++ /dev/null @@ -1,12 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - module.import( - /* webpackChunkName: "chunk-name" */ - './foo.js'/*suffix*/); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-comments/main.js b/test/chunking-form/samples/deprecated/dynamic-import-comments/main.js deleted file mode 100644 index 9519c0a65..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-comments/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import /* () should not break */ ( -/* webpackChunkName: "chunk-name" */ -'./foo.js'/*suffix*/); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_config.js b/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_config.js deleted file mode 100644 index 96d7c5a11..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'supports an object with a single entry when inlining dynamic imports', - options: { - strictDeprecations: false, - inlineDynamicImports: true, - input: { entry: 'main' } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/amd/entry.js b/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/amd/entry.js deleted file mode 100644 index fef3de875..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/amd/entry.js +++ /dev/null @@ -1,12 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const bar = 2; - Promise.resolve().then(function () { return foo; }); - - var foo = /*#__PURE__*/Object.freeze({ - __proto__: null - }); - - exports.bar = bar; - -})); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/cjs/entry.js b/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/cjs/entry.js deleted file mode 100644 index 218beb76d..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/cjs/entry.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -const bar = 2; -Promise.resolve().then(function () { return foo; }); - -var foo = /*#__PURE__*/Object.freeze({ - __proto__: null -}); - -exports.bar = bar; diff --git a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/es/entry.js b/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/es/entry.js deleted file mode 100644 index 5a35de939..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/es/entry.js +++ /dev/null @@ -1,8 +0,0 @@ -const bar = 2; -Promise.resolve().then(function () { return foo; }); - -var foo = /*#__PURE__*/Object.freeze({ - __proto__: null -}); - -export { bar }; diff --git a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/system/entry.js b/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/system/entry.js deleted file mode 100644 index 2f4d23eac..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/_expected/system/entry.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const bar = exports('bar', 2); - Promise.resolve().then(function () { return foo; }); - - var foo = /*#__PURE__*/Object.freeze({ - __proto__: null - }); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/foo.js b/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/foo.js deleted file mode 100644 index 6a8018af4..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const foo = 1; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/main.js b/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/main.js deleted file mode 100644 index ee3e6a770..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-inlining-object/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export const bar = 2; -import('./foo.js'); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-name/_config.js b/test/chunking-form/samples/deprecated/dynamic-import-name/_config.js deleted file mode 100644 index a9f1c4e01..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-name/_config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = defineTest({ - description: 'allows specifying a custom importer function', - options: { - strictDeprecations: false, - input: 'main.js', - onwarn() {}, - plugins: { - resolveDynamicImport() { - return false; - } - }, - output: { - dynamicImportFunction: 'foobar' - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/amd/main.js b/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/amd/main.js deleted file mode 100644 index 28f0faf67..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/amd/main.js +++ /dev/null @@ -1,22 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - function _interopNamespaceDefault(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); - } - - new Promise(function (resolve, reject) { require(['./foo'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }).then(result => console.log(result)); - -})); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/cjs/main.js deleted file mode 100644 index b23ce4920..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/cjs/main.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -import('./foo.js').then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/es/main.js b/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/es/main.js deleted file mode 100644 index 31d9a65e1..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/es/main.js +++ /dev/null @@ -1 +0,0 @@ -foobar('./foo.js').then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/system/main.js b/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/system/main.js deleted file mode 100644 index dffa4e046..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-name/_expected/system/main.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - module.import('./foo.js').then(result => console.log(result)); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/dynamic-import-name/main.js b/test/chunking-form/samples/deprecated/dynamic-import-name/main.js deleted file mode 100644 index 56ab47293..000000000 --- a/test/chunking-form/samples/deprecated/dynamic-import-name/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./foo.js').then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_config.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_config.js deleted file mode 100644 index dad2efee3..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_config.js +++ /dev/null @@ -1,22 +0,0 @@ -const assert = require('node:assert'); -let referenceId; - -module.exports = defineTest({ - description: 'retrieves the correct name of an emitted chunk in case a facade is created', - options: { - strictDeprecations: false, - input: 'main', - manualChunks: { - 'build-starter': ['buildStart'] - }, - plugins: { - buildStart() { - referenceId = this.emitFile({ type: 'chunk', id: 'buildStart' }); - }, - renderChunk() { - assert.strictEqual(this.getFileName(referenceId), 'generated-buildStart.js'); - } - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/generated-build-starter.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/generated-build-starter.js deleted file mode 100644 index 8efead70d..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/generated-build-starter.js +++ /dev/null @@ -1,11 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const value = 42; - const otherValue = 43; - - console.log('startBuild', value); - - exports.otherValue = otherValue; - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/generated-buildStart.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/generated-buildStart.js deleted file mode 100644 index ffe42cfb3..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/generated-buildStart.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports', './generated-build-starter'], (function (exports, buildStarter) { 'use strict'; - - - - exports.buildStartValue = buildStarter.value; - -})); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/main.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/main.js deleted file mode 100644 index 830d21848..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-build-starter'], (function (buildStarter) { 'use strict'; - - console.log('main', buildStarter.value, buildStarter.otherValue); - -})); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/generated-build-starter.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/generated-build-starter.js deleted file mode 100644 index fecf7a3cd..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/generated-build-starter.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -const value = 42; -const otherValue = 43; - -console.log('startBuild', value); - -exports.otherValue = otherValue; -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/generated-buildStart.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/generated-buildStart.js deleted file mode 100644 index 7f8a521cd..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/generated-buildStart.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var buildStarter = require('./generated-build-starter.js'); - - - -exports.buildStartValue = buildStarter.value; diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/main.js deleted file mode 100644 index 666c39684..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/cjs/main.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var buildStarter = require('./generated-build-starter.js'); - -console.log('main', buildStarter.value, buildStarter.otherValue); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/generated-build-starter.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/generated-build-starter.js deleted file mode 100644 index 43deafdd0..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/generated-build-starter.js +++ /dev/null @@ -1,6 +0,0 @@ -const value = 42; -const otherValue = 43; - -console.log('startBuild', value); - -export { otherValue as o, value as v }; diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/generated-buildStart.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/generated-buildStart.js deleted file mode 100644 index ffb305eac..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/generated-buildStart.js +++ /dev/null @@ -1 +0,0 @@ -export { v as buildStartValue } from './generated-build-starter.js'; diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/main.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/main.js deleted file mode 100644 index 28caef942..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/es/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { v as value, o as otherValue } from './generated-build-starter.js'; - -console.log('main', value, otherValue); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/generated-build-starter.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/generated-build-starter.js deleted file mode 100644 index 745c94783..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/generated-build-starter.js +++ /dev/null @@ -1,13 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const value = exports('v', 42); - const otherValue = exports('o', 43); - - console.log('startBuild', value); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/generated-buildStart.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/generated-buildStart.js deleted file mode 100644 index c21eed54d..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/generated-buildStart.js +++ /dev/null @@ -1,13 +0,0 @@ -System.register(['./generated-build-starter.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('buildStartValue', module.v); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/main.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/main.js deleted file mode 100644 index 55b718e43..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/_expected/system/main.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./generated-build-starter.js'], (function () { - 'use strict'; - var value, otherValue; - return { - setters: [function (module) { - value = module.v; - otherValue = module.o; - }], - execute: (function () { - - console.log('main', value, otherValue); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/buildStart.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/buildStart.js deleted file mode 100644 index 49baee496..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/buildStart.js +++ /dev/null @@ -1,5 +0,0 @@ -import {value} from './dep.js'; - -console.log('startBuild', value); - -export { value as buildStartValue }; diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/dep.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/dep.js deleted file mode 100644 index a2db63411..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/dep.js +++ /dev/null @@ -1,2 +0,0 @@ -export const value = 42; -export const otherValue = 43; diff --git a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/main.js b/test/chunking-form/samples/deprecated/emit-file-chunk-facade/main.js deleted file mode 100644 index df41d5637..000000000 --- a/test/chunking-form/samples/deprecated/emit-file-chunk-facade/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { value, otherValue } from './dep'; - -console.log('main', value, otherValue); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_config.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_config.js deleted file mode 100644 index bd12a97ad..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_config.js +++ /dev/null @@ -1,70 +0,0 @@ -const assert = require('node:assert'); -const path = require('node:path'); -// @ts-expect-error not included in types -const { getObject } = require('../../../../utils'); - -module.exports = defineTest({ - description: 'associates empty modules with chunks if tree-shaking is disabled for them', - options: { - strictDeprecations: false, - input: ['main1.js', 'main2.js'], - plugins: { - resolveId(id) { - if (id.startsWith('empty')) { - if (id === 'emptyResolved') { - return { - id, - moduleSideEffects: 'no-treeshake' - }; - } - return id; - } - }, - load(id) { - if (id.startsWith('empty')) { - if (id === 'emptyLoaded') { - return { code: '', moduleSideEffects: 'no-treeshake' }; - } - return ''; - } - }, - transform(code, id) { - if (id === 'emptyTransformed') { - return { code: '', moduleSideEffects: 'no-treeshake' }; - } - }, - generateBundle(options, bundle) { - assert.deepStrictEqual( - getObject( - [...this.getModuleIds()].map(id => [ - id.startsWith('empty') ? id : path.relative(__dirname, id), - this.getModuleInfo(id).hasModuleSideEffects - ]) - ), - { - empty: true, - emptyLoaded: 'no-treeshake', - emptyResolved: 'no-treeshake', - emptyTransformed: 'no-treeshake', - 'main1.js': true, - 'main2.js': true - } - ); - assert.deepStrictEqual( - getObject( - Object.entries(bundle).map(([chunkId, chunk]) => [ - chunkId, - Object.keys(chunk.modules).map(moduleId => path.relative(__dirname, moduleId)) - ]) - ), - { - 'main1.js': ['emptyResolved', 'main1.js'], - 'main2.js': ['emptyLoaded', 'main2.js'], - 'generated-emptyTransformed.js': ['emptyTransformed'] - } - ); - } - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/generated-emptyTransformed.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/generated-emptyTransformed.js deleted file mode 100644 index a9e9419e2..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/generated-emptyTransformed.js +++ /dev/null @@ -1,5 +0,0 @@ -define((function () { 'use strict'; - - - -})); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/main1.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/main1.js deleted file mode 100644 index 79b7506c8..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/main1.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-emptyTransformed'], (function (emptyTransformed) { 'use strict'; - - console.log('main1'); - -})); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/main2.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/main2.js deleted file mode 100644 index 5637dfe6a..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/amd/main2.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-emptyTransformed'], (function (emptyTransformed) { 'use strict'; - - console.log('main2'); - -})); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/generated-emptyTransformed.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/generated-emptyTransformed.js deleted file mode 100644 index eb109abbe..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/generated-emptyTransformed.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; - diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/main1.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/main1.js deleted file mode 100644 index 12fe59609..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/main1.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./generated-emptyTransformed.js'); - -console.log('main1'); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/main2.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/main2.js deleted file mode 100644 index 1e0275701..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/cjs/main2.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./generated-emptyTransformed.js'); - -console.log('main2'); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/generated-emptyTransformed.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/generated-emptyTransformed.js deleted file mode 100644 index 8b1378917..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/generated-emptyTransformed.js +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/main1.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/main1.js deleted file mode 100644 index 3e33abdec..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/main1.js +++ /dev/null @@ -1,3 +0,0 @@ -import './generated-emptyTransformed.js'; - -console.log('main1'); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/main2.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/main2.js deleted file mode 100644 index 897b460ad..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/es/main2.js +++ /dev/null @@ -1,3 +0,0 @@ -import './generated-emptyTransformed.js'; - -console.log('main2'); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/generated-emptyTransformed.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/generated-emptyTransformed.js deleted file mode 100644 index 343cc3a51..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/generated-emptyTransformed.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/main1.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/main1.js deleted file mode 100644 index 11b0d79c4..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/main1.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./generated-emptyTransformed.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('main1'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/main2.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/main2.js deleted file mode 100644 index a2b1c4a1a..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/_expected/system/main2.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./generated-emptyTransformed.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('main2'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/main1.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/main1.js deleted file mode 100644 index a8e85af41..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/main1.js +++ /dev/null @@ -1,4 +0,0 @@ -import 'empty'; -import 'emptyResolved'; -import 'emptyTransformed'; -console.log('main1'); diff --git a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/main2.js b/test/chunking-form/samples/deprecated/empty-module-no-treeshake/main2.js deleted file mode 100644 index 6fe715b25..000000000 --- a/test/chunking-form/samples/deprecated/empty-module-no-treeshake/main2.js +++ /dev/null @@ -1,4 +0,0 @@ -import 'empty'; -import 'emptyLoaded'; -import 'emptyTransformed'; -console.log('main2'); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_config.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_config.js deleted file mode 100644 index 481a1edb5..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'does not drop indirect reexports when preserving modules', - expectedWarnings: ['MIXED_EXPORTS', 'DEPRECATED_FEATURE'], - options: { - strictDeprecations: false, - output: { name: 'bundle' }, - preserveModules: true - } -}); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/components/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/components/index.js deleted file mode 100644 index a03efcb5e..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/components/index.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports', './sub/index'], (function (exports, index) { 'use strict'; - - const baz = { bar: index.default }; - - exports.foo = index.foo; - exports.baz = baz; - -})); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/components/sub/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/components/sub/index.js deleted file mode 100644 index 9da33feb2..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/components/sub/index.js +++ /dev/null @@ -1,11 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const foo = 'bar'; - var bar = () => {}; - - exports.default = bar; - exports.foo = foo; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/main.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/main.js deleted file mode 100644 index c17dc35d9..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/amd/main.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports', './components/index', './components/sub/index'], (function (exports, index, index$1) { 'use strict'; - - - - exports.baz = index.baz; - exports.foo = index$1.foo; - -})); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/components/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/components/index.js deleted file mode 100644 index c6e74030a..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/components/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var index = require('./sub/index.js'); - -const baz = { bar: index.default }; - -exports.foo = index.foo; -exports.baz = baz; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/components/sub/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/components/sub/index.js deleted file mode 100644 index 8ffc494cb..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/components/sub/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -const foo = 'bar'; -var bar = () => {}; - -exports.default = bar; -exports.foo = foo; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/main.js deleted file mode 100644 index 6bcd93609..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/cjs/main.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var index = require('./components/index.js'); -var index$1 = require('./components/sub/index.js'); - - - -exports.baz = index.baz; -exports.foo = index$1.foo; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/components/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/components/index.js deleted file mode 100644 index baeee792c..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/components/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import bar from './sub/index.js'; -export { foo } from './sub/index.js'; - -const baz = { bar }; - -export { baz }; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/components/sub/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/components/sub/index.js deleted file mode 100644 index 1ee02cde7..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/components/sub/index.js +++ /dev/null @@ -1,4 +0,0 @@ -const foo = 'bar'; -var bar = () => {}; - -export { bar as default, foo }; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/main.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/main.js deleted file mode 100644 index d3455118d..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/es/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export { baz } from './components/index.js'; -export { foo } from './components/sub/index.js'; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/components/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/components/index.js deleted file mode 100644 index 1400753db..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/components/index.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register('bundle', ['./sub/index.js'], (function (exports) { - 'use strict'; - var bar; - return { - setters: [function (module) { - bar = module.default; - exports('foo', module.foo); - }], - execute: (function () { - - const baz = exports('baz', { bar }); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/components/sub/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/components/sub/index.js deleted file mode 100644 index f6f4fdff6..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/components/sub/index.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register('bundle', [], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const foo = exports('foo', 'bar'); - var bar = exports('default', () => {}); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/main.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/main.js deleted file mode 100644 index 26be107a7..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/_expected/system/main.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register('bundle', ['./components/index.js', './components/sub/index.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('baz', module.baz); - }, function (module) { - exports('foo', module.foo); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/components/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/components/index.js deleted file mode 100644 index 0c5913716..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/components/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import bar, { foo } from './sub/index'; - -export const baz = { bar }; -export { foo }; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/components/sub/index.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/components/sub/index.js deleted file mode 100644 index 0bce193fc..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/components/sub/index.js +++ /dev/null @@ -1,4 +0,0 @@ -const foo = 'bar'; - -export { foo }; -export default () => {}; diff --git a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/main.js b/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/main.js deleted file mode 100644 index 6dfbc9774..000000000 --- a/test/chunking-form/samples/deprecated/indirect-reexports-preserve-modules/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { baz, foo } from './components/index'; - -export { baz, foo }; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_config.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_config.js deleted file mode 100644 index 41df7cd66..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = defineTest({ - description: 'avoid facades if possible when using manual chunks', - options: { - strictDeprecations: false, - input: ['main1', 'main2'], - manualChunks: { - manual: ['main2'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/amd/main1.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/amd/main1.js deleted file mode 100644 index 56e0171e9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/amd/main1.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./main2'], (function (manual) { 'use strict'; - - console.log('main', manual.reexported); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/amd/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/amd/main2.js deleted file mode 100644 index 0c4218930..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/amd/main2.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const value = 42; - - console.log('main2', value); - - exports.reexported = value; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/cjs/main1.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/cjs/main1.js deleted file mode 100644 index 81de531a9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/cjs/main1.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var manual = require('./main2.js'); - -console.log('main', manual.reexported); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/cjs/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/cjs/main2.js deleted file mode 100644 index 58617370c..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/cjs/main2.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -const value = 42; - -console.log('main2', value); - -exports.reexported = value; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/es/main1.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/es/main1.js deleted file mode 100644 index 6ba22536a..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/es/main1.js +++ /dev/null @@ -1,3 +0,0 @@ -import { reexported as value } from './main2.js'; - -console.log('main', value); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/es/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/es/main2.js deleted file mode 100644 index 897452bd6..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/es/main2.js +++ /dev/null @@ -1,5 +0,0 @@ -const value = 42; - -console.log('main2', value); - -export { value as reexported }; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/system/main1.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/system/main1.js deleted file mode 100644 index f189fb530..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/system/main1.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register(['./main2.js'], (function () { - 'use strict'; - var value; - return { - setters: [function (module) { - value = module.reexported; - }], - execute: (function () { - - console.log('main', value); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/system/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/system/main2.js deleted file mode 100644 index ec2b81330..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/_expected/system/main2.js +++ /dev/null @@ -1,12 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const value = exports('reexported', 42); - - console.log('main2', value); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/dep.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/dep.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/dep.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/main1.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/main1.js deleted file mode 100644 index 5da97663c..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/main1.js +++ /dev/null @@ -1,3 +0,0 @@ -import { value } from './dep'; - -console.log('main', value); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/main2.js deleted file mode 100644 index 868d23fd0..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-avoid-facade/main2.js +++ /dev/null @@ -1,5 +0,0 @@ -import {value} from './dep.js'; - -console.log('main2', value); - -export { value as reexported }; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_config.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_config.js deleted file mode 100644 index cac8317c3..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: 'Uses entry alias if manual chunks contain entry chunks with different alias', - options: { - strictDeprecations: false, - input: { - main: 'main.js', - main2: 'main2.js' - }, - manualChunks: { - outer: ['outer'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/amd/main.js deleted file mode 100644 index 0dce9285f..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/amd/main.js +++ /dev/null @@ -1,11 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - console.log('dep'); - - console.log('main'); - - const value = 42; - - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/amd/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/amd/main2.js deleted file mode 100644 index a8c2660dc..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/amd/main2.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./main'], (function (outer) { 'use strict'; - - - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/cjs/main.js deleted file mode 100644 index fe59aaab6..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/cjs/main.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -console.log('dep'); - -console.log('main'); - -const value = 42; - -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/cjs/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/cjs/main2.js deleted file mode 100644 index 7ca8a520b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/cjs/main2.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -require('./main.js'); - diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/es/main.js deleted file mode 100644 index 132b27a8d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/es/main.js +++ /dev/null @@ -1,7 +0,0 @@ -console.log('dep'); - -console.log('main'); - -const value = 42; - -export { value }; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/es/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/es/main2.js deleted file mode 100644 index 859ecc36b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/es/main2.js +++ /dev/null @@ -1 +0,0 @@ -import './main.js'; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/system/main.js deleted file mode 100644 index 54287b3c8..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/system/main.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - console.log('dep'); - - console.log('main'); - - const value = exports('value', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/system/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/system/main2.js deleted file mode 100644 index e2a9d2652..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/_expected/system/main2.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./main.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/main.js deleted file mode 100644 index 983ead17e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import './dep.js'; - -console.log('main'); - -export const value = 42; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/main2.js deleted file mode 100644 index d6cf3b024..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/main2.js +++ /dev/null @@ -1 +0,0 @@ -import './dep.js'; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/outer.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/outer.js deleted file mode 100644 index 26385b8a3..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/outer.js +++ /dev/null @@ -1,3 +0,0 @@ -import './main'; - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_config.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_config.js deleted file mode 100644 index c13a9584f..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: - 'Identifies the entry chunk with the manual chunk that contains it if the aliases match', - options: { - strictDeprecations: false, - input: { - main: 'main.js' - }, - manualChunks: { - main: ['outer'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/amd/main.js deleted file mode 100644 index 0dce9285f..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/amd/main.js +++ /dev/null @@ -1,11 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - console.log('dep'); - - console.log('main'); - - const value = 42; - - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/cjs/main.js deleted file mode 100644 index fe59aaab6..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/cjs/main.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -console.log('dep'); - -console.log('main'); - -const value = 42; - -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/es/main.js deleted file mode 100644 index 132b27a8d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/es/main.js +++ /dev/null @@ -1,7 +0,0 @@ -console.log('dep'); - -console.log('main'); - -const value = 42; - -export { value }; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/system/main.js deleted file mode 100644 index 54287b3c8..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/_expected/system/main.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - console.log('dep'); - - console.log('main'); - - const value = exports('value', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/dep.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/dep.js deleted file mode 100644 index b74a9837c..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/dep.js +++ /dev/null @@ -1 +0,0 @@ -console.log('dep'); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/main.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/main.js deleted file mode 100644 index 983ead17e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import './dep.js'; - -console.log('main'); - -export const value = 42; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/outer.js b/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/outer.js deleted file mode 100644 index 26385b8a3..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-match/outer.js +++ /dev/null @@ -1,3 +0,0 @@ -import './main'; - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_config.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_config.js deleted file mode 100644 index 21f5ba76e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: 'Uses entry alias if manual chunks are entry chunks with different alias', - options: { - strictDeprecations: false, - input: { - main: 'main.js', - main2: 'main2.js' - }, - manualChunks: { - other: ['main'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/amd/main.js deleted file mode 100644 index 0dce9285f..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/amd/main.js +++ /dev/null @@ -1,11 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - console.log('dep'); - - console.log('main'); - - const value = 42; - - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/amd/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/amd/main2.js deleted file mode 100644 index e5e4e1a17..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/amd/main2.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./main'], (function (other) { 'use strict'; - - - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/cjs/main.js deleted file mode 100644 index fe59aaab6..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/cjs/main.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -console.log('dep'); - -console.log('main'); - -const value = 42; - -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/cjs/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/cjs/main2.js deleted file mode 100644 index 7ca8a520b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/cjs/main2.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -require('./main.js'); - diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/es/main.js deleted file mode 100644 index 132b27a8d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/es/main.js +++ /dev/null @@ -1,7 +0,0 @@ -console.log('dep'); - -console.log('main'); - -const value = 42; - -export { value }; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/es/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/es/main2.js deleted file mode 100644 index 859ecc36b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/es/main2.js +++ /dev/null @@ -1 +0,0 @@ -import './main.js'; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/system/main.js deleted file mode 100644 index 54287b3c8..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/system/main.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - console.log('dep'); - - console.log('main'); - - const value = exports('value', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/system/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/system/main2.js deleted file mode 100644 index e2a9d2652..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/_expected/system/main2.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./main.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/dep.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/dep.js deleted file mode 100644 index b74a9837c..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/dep.js +++ /dev/null @@ -1 +0,0 @@ -console.log('dep'); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/main.js deleted file mode 100644 index 983ead17e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import './dep.js'; - -console.log('main'); - -export const value = 42; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/main2.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/main2.js deleted file mode 100644 index d6cf3b024..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-conflict/main2.js +++ /dev/null @@ -1 +0,0 @@ -import './dep.js'; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_config.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_config.js deleted file mode 100644 index 3f5ac1553..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: - 'Identifies the entry chunk with the manual chunk that has the same entry if the aliases match', - options: { - strictDeprecations: false, - input: { - main: 'main.js' - }, - manualChunks: { - main: ['main'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/amd/main.js deleted file mode 100644 index 0dce9285f..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/amd/main.js +++ /dev/null @@ -1,11 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - console.log('dep'); - - console.log('main'); - - const value = 42; - - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/cjs/main.js deleted file mode 100644 index fe59aaab6..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/cjs/main.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -console.log('dep'); - -console.log('main'); - -const value = 42; - -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/es/main.js deleted file mode 100644 index 132b27a8d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/es/main.js +++ /dev/null @@ -1,7 +0,0 @@ -console.log('dep'); - -console.log('main'); - -const value = 42; - -export { value }; diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/system/main.js deleted file mode 100644 index 54287b3c8..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/_expected/system/main.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - console.log('dep'); - - console.log('main'); - - const value = exports('value', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/dep.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/dep.js deleted file mode 100644 index b74a9837c..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/dep.js +++ /dev/null @@ -1 +0,0 @@ -console.log('dep'); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/main.js b/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/main.js deleted file mode 100644 index 983ead17e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunk-is-entry-match/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import './dep.js'; - -console.log('main'); - -export const value = 42; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_config.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_config.js deleted file mode 100644 index e50efec07..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = defineTest({ - description: 'manual chunks can have other manual chunks as dependencies', - options: { - strictDeprecations: false, - input: ['main.js'], - manualChunks: { - 'manual-outer': ['outer.js'], - 'manual-inner': ['inner.js'], - 'manual-middle': ['middle.js'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-inner.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-inner.js deleted file mode 100644 index a0d11c04e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-inner.js +++ /dev/null @@ -1,5 +0,0 @@ -define((function () { 'use strict'; - - console.log('inner'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-middle.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-middle.js deleted file mode 100644 index 15b8a8171..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-middle.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-manual-inner'], (function (manualInner) { 'use strict'; - - console.log('middle'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-outer.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-outer.js deleted file mode 100644 index e40914a91..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/generated-manual-outer.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-manual-middle'], (function (manualMiddle) { 'use strict'; - - console.log('outer'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/main.js deleted file mode 100644 index bab51c5ba..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-manual-outer', './generated-manual-middle', './generated-manual-inner'], (function (manualOuter, manualMiddle, manualInner) { 'use strict'; - - console.log('main'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-inner.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-inner.js deleted file mode 100644 index 02ef883da..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-inner.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -console.log('inner'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-middle.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-middle.js deleted file mode 100644 index 77da3dd71..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-middle.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./generated-manual-inner.js'); - -console.log('middle'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-outer.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-outer.js deleted file mode 100644 index 8a4efba72..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/generated-manual-outer.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./generated-manual-middle.js'); - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/main.js deleted file mode 100644 index 70f464747..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/cjs/main.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -require('./generated-manual-outer.js'); -require('./generated-manual-middle.js'); -require('./generated-manual-inner.js'); - -console.log('main'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-inner.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-inner.js deleted file mode 100644 index 8e1a29ca9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-inner.js +++ /dev/null @@ -1 +0,0 @@ -console.log('inner'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-middle.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-middle.js deleted file mode 100644 index 247a57bae..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-middle.js +++ /dev/null @@ -1,3 +0,0 @@ -import './generated-manual-inner.js'; - -console.log('middle'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-outer.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-outer.js deleted file mode 100644 index f348b3875..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/generated-manual-outer.js +++ /dev/null @@ -1,3 +0,0 @@ -import './generated-manual-middle.js'; - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/main.js deleted file mode 100644 index 10b9ca2eb..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/es/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import './generated-manual-outer.js'; -import './generated-manual-middle.js'; -import './generated-manual-inner.js'; - -console.log('main'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-inner.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-inner.js deleted file mode 100644 index 402e3d2df..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-inner.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log('inner'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-middle.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-middle.js deleted file mode 100644 index f36fecb95..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-middle.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./generated-manual-inner.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('middle'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-outer.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-outer.js deleted file mode 100644 index b44b4b9de..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/generated-manual-outer.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./generated-manual-middle.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('outer'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/main.js deleted file mode 100644 index 875b0a428..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/_expected/system/main.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./generated-manual-outer.js', './generated-manual-middle.js', './generated-manual-inner.js'], (function () { - 'use strict'; - return { - setters: [null, null, null], - execute: (function () { - - console.log('main'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/inner.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/inner.js deleted file mode 100644 index 8e1a29ca9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/inner.js +++ /dev/null @@ -1 +0,0 @@ -console.log('inner'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/main.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/main.js deleted file mode 100644 index b46ebb222..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import './outer.js'; - -console.log('main'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/middle.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/middle.js deleted file mode 100644 index 007325908..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/middle.js +++ /dev/null @@ -1,3 +0,0 @@ -import './inner.js'; - -console.log('middle'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/outer.js b/test/chunking-form/samples/deprecated/manual-chunks-different-nested/outer.js deleted file mode 100644 index c77196cec..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-different-nested/outer.js +++ /dev/null @@ -1,3 +0,0 @@ -import './middle.js'; - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_config.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_config.js deleted file mode 100644 index b906013da..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = defineTest({ - description: 'creates facades for dynamic manual chunks if necessary', - options: { - strictDeprecations: false, - input: ['main.js'], - manualChunks: { - dynamic: ['dynamic1.js'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/amd/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/amd/generated-dynamic.js deleted file mode 100644 index 8568aedda..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/amd/generated-dynamic.js +++ /dev/null @@ -1,34 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const DEP = 'DEP'; - - const DYNAMIC_2 = 'DYNAMIC_2'; - - var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_2: DYNAMIC_2 - }); - - const DYNAMIC_3 = 'DYNAMIC_3'; - - var dynamic3 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_3: DYNAMIC_3 - }); - - const DYNAMIC_1 = 'DYNAMIC_1'; - - var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DEP: DEP, - DYNAMIC_1: DYNAMIC_1, - DYNAMIC_2: DYNAMIC_2, - DYNAMIC_3: DYNAMIC_3 - }); - - exports.DEP = DEP; - exports.dynamic1 = dynamic1; - exports.dynamic2 = dynamic2; - exports.dynamic3 = dynamic3; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/amd/main.js deleted file mode 100644 index 7326ba1aa..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/amd/main.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['require', './generated-dynamic'], (function (require, dynamic) { 'use strict'; - - Promise.all([new Promise(function (resolve, reject) { require(['./generated-dynamic'], resolve, reject); }).then(function (n) { return n.dynamic1; }), new Promise(function (resolve, reject) { require(['./generated-dynamic'], resolve, reject); }).then(function (n) { return n.dynamic2; }), new Promise(function (resolve, reject) { require(['./generated-dynamic'], resolve, reject); }).then(function (n) { return n.dynamic3; })]).then( - results => console.log(results, dynamic.DEP) - ); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/cjs/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/cjs/generated-dynamic.js deleted file mode 100644 index d4f21ff81..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/cjs/generated-dynamic.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -const DEP = 'DEP'; - -const DYNAMIC_2 = 'DYNAMIC_2'; - -var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_2: DYNAMIC_2 -}); - -const DYNAMIC_3 = 'DYNAMIC_3'; - -var dynamic3 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_3: DYNAMIC_3 -}); - -const DYNAMIC_1 = 'DYNAMIC_1'; - -var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DEP: DEP, - DYNAMIC_1: DYNAMIC_1, - DYNAMIC_2: DYNAMIC_2, - DYNAMIC_3: DYNAMIC_3 -}); - -exports.DEP = DEP; -exports.dynamic1 = dynamic1; -exports.dynamic2 = dynamic2; -exports.dynamic3 = dynamic3; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/cjs/main.js deleted file mode 100644 index 6d822d5ed..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/cjs/main.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var dynamic = require('./generated-dynamic.js'); - -Promise.all([Promise.resolve().then(function () { return require('./generated-dynamic.js'); }).then(function (n) { return n.dynamic1; }), Promise.resolve().then(function () { return require('./generated-dynamic.js'); }).then(function (n) { return n.dynamic2; }), Promise.resolve().then(function () { return require('./generated-dynamic.js'); }).then(function (n) { return n.dynamic3; })]).then( - results => console.log(results, dynamic.DEP) -); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/es/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/es/generated-dynamic.js deleted file mode 100644 index cff71eaf1..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/es/generated-dynamic.js +++ /dev/null @@ -1,27 +0,0 @@ -const DEP = 'DEP'; - -const DYNAMIC_2 = 'DYNAMIC_2'; - -var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_2: DYNAMIC_2 -}); - -const DYNAMIC_3 = 'DYNAMIC_3'; - -var dynamic3 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_3: DYNAMIC_3 -}); - -const DYNAMIC_1 = 'DYNAMIC_1'; - -var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DEP: DEP, - DYNAMIC_1: DYNAMIC_1, - DYNAMIC_2: DYNAMIC_2, - DYNAMIC_3: DYNAMIC_3 -}); - -export { DEP as D, dynamic3 as a, dynamic1 as b, dynamic2 as d }; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/es/main.js deleted file mode 100644 index 0ef6f970d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/es/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import { D as DEP } from './generated-dynamic.js'; - -Promise.all([import('./generated-dynamic.js').then(function (n) { return n.b; }), import('./generated-dynamic.js').then(function (n) { return n.d; }), import('./generated-dynamic.js').then(function (n) { return n.a; })]).then( - results => console.log(results, DEP) -); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/system/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/system/generated-dynamic.js deleted file mode 100644 index 12d54f94f..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/system/generated-dynamic.js +++ /dev/null @@ -1,37 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const DEP = exports('D', 'DEP'); - - const DYNAMIC_2 = 'DYNAMIC_2'; - - var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_2: DYNAMIC_2 - }); - exports('d', dynamic2); - - const DYNAMIC_3 = 'DYNAMIC_3'; - - var dynamic3 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_3: DYNAMIC_3 - }); - exports('a', dynamic3); - - const DYNAMIC_1 = 'DYNAMIC_1'; - - var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DEP: DEP, - DYNAMIC_1: DYNAMIC_1, - DYNAMIC_2: DYNAMIC_2, - DYNAMIC_3: DYNAMIC_3 - }); - exports('b', dynamic1); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/system/main.js deleted file mode 100644 index f8bb41b07..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/_expected/system/main.js +++ /dev/null @@ -1,16 +0,0 @@ -System.register(['./generated-dynamic.js'], (function (exports, module) { - 'use strict'; - var DEP; - return { - setters: [function (module) { - DEP = module.D; - }], - execute: (function () { - - Promise.all([module.import('./generated-dynamic.js').then(function (n) { return n.b; }), module.import('./generated-dynamic.js').then(function (n) { return n.d; }), module.import('./generated-dynamic.js').then(function (n) { return n.a; })]).then( - results => console.log(results, DEP) - ); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dep.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dep.js deleted file mode 100644 index 4be514fd7..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dep.js +++ /dev/null @@ -1 +0,0 @@ -export const DEP = 'DEP'; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic1.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic1.js deleted file mode 100644 index 1591826ea..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic1.js +++ /dev/null @@ -1,4 +0,0 @@ -export * from './dep.js'; -export * from './dynamic2.js'; -export * from './dynamic3.js'; -export const DYNAMIC_1 = 'DYNAMIC_1'; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic2.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic2.js deleted file mode 100644 index 11eeeb428..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic2.js +++ /dev/null @@ -1 +0,0 @@ -export const DYNAMIC_2 = 'DYNAMIC_2'; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic3.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic3.js deleted file mode 100644 index 439fa36aa..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/dynamic3.js +++ /dev/null @@ -1 +0,0 @@ -export const DYNAMIC_3 = 'DYNAMIC_3'; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/main.js deleted file mode 100644 index 317e03b17..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-facades/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import { DEP } from './dep'; - -Promise.all([import('./dynamic1.js'), import('./dynamic2.js'), import('./dynamic3.js')]).then( - results => console.log(results, DEP) -); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_config.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_config.js deleted file mode 100644 index e9c932a35..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = defineTest({ - description: 'handles name conflicts in manual chunks', - options: { - strictDeprecations: false, - input: ['main.js'], - manualChunks: { - dynamic: ['dynamic1.js'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/amd/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/amd/generated-dynamic.js deleted file mode 100644 index 166f39a68..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/amd/generated-dynamic.js +++ /dev/null @@ -1,25 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - console.log('dynamic2'); - - const DYNAMIC_A = 'DYNAMIC_A'; - const DYNAMIC_B = 'DYNAMIC_B'; - - var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_A, - DYNAMIC_B: DYNAMIC_B - }); - - console.log('dynamic1'); - - var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_B, - DYNAMIC_B: DYNAMIC_A - }); - - exports.dynamic1 = dynamic1; - exports.dynamic2 = dynamic2; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/amd/main.js deleted file mode 100644 index ac3701e11..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/amd/main.js +++ /dev/null @@ -1,6 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - new Promise(function (resolve, reject) { require(['./generated-dynamic'], resolve, reject); }).then(function (n) { return n.dynamic1; }).then(result => console.log(result)); - new Promise(function (resolve, reject) { require(['./generated-dynamic'], resolve, reject); }).then(function (n) { return n.dynamic2; }).then(result => console.log(result)); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/cjs/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/cjs/generated-dynamic.js deleted file mode 100644 index fd2a4ea60..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/cjs/generated-dynamic.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -console.log('dynamic2'); - -const DYNAMIC_A = 'DYNAMIC_A'; -const DYNAMIC_B = 'DYNAMIC_B'; - -var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_A, - DYNAMIC_B: DYNAMIC_B -}); - -console.log('dynamic1'); - -var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_B, - DYNAMIC_B: DYNAMIC_A -}); - -exports.dynamic1 = dynamic1; -exports.dynamic2 = dynamic2; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/cjs/main.js deleted file mode 100644 index 436abdbbe..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/cjs/main.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -Promise.resolve().then(function () { return require('./generated-dynamic.js'); }).then(function (n) { return n.dynamic1; }).then(result => console.log(result)); -Promise.resolve().then(function () { return require('./generated-dynamic.js'); }).then(function (n) { return n.dynamic2; }).then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/es/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/es/generated-dynamic.js deleted file mode 100644 index 9f46b61f9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/es/generated-dynamic.js +++ /dev/null @@ -1,20 +0,0 @@ -console.log('dynamic2'); - -const DYNAMIC_A = 'DYNAMIC_A'; -const DYNAMIC_B = 'DYNAMIC_B'; - -var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_A, - DYNAMIC_B: DYNAMIC_B -}); - -console.log('dynamic1'); - -var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_B, - DYNAMIC_B: DYNAMIC_A -}); - -export { dynamic1 as a, dynamic2 as d }; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/es/main.js deleted file mode 100644 index e6906c3f8..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/es/main.js +++ /dev/null @@ -1,2 +0,0 @@ -import('./generated-dynamic.js').then(function (n) { return n.a; }).then(result => console.log(result)); -import('./generated-dynamic.js').then(function (n) { return n.d; }).then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/system/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/system/generated-dynamic.js deleted file mode 100644 index eaeee4da9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/system/generated-dynamic.js +++ /dev/null @@ -1,29 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - console.log('dynamic2'); - - const DYNAMIC_A = 'DYNAMIC_A'; - const DYNAMIC_B = 'DYNAMIC_B'; - - var dynamic2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_A, - DYNAMIC_B: DYNAMIC_B - }); - exports('d', dynamic2); - - console.log('dynamic1'); - - var dynamic1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - DYNAMIC_A: DYNAMIC_B, - DYNAMIC_B: DYNAMIC_A - }); - exports('a', dynamic1); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/system/main.js deleted file mode 100644 index ac2320103..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/_expected/system/main.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - module.import('./generated-dynamic.js').then(function (n) { return n.a; }).then(result => console.log(result)); - module.import('./generated-dynamic.js').then(function (n) { return n.d; }).then(result => console.log(result)); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/dynamic1.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/dynamic1.js deleted file mode 100644 index ee02308dd..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/dynamic1.js +++ /dev/null @@ -1,3 +0,0 @@ -console.log('dynamic1'); - -export { DYNAMIC_A as DYNAMIC_B, DYNAMIC_B as DYNAMIC_A } from './dynamic2'; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/dynamic2.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/dynamic2.js deleted file mode 100644 index 6d087c59d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/dynamic2.js +++ /dev/null @@ -1,4 +0,0 @@ -console.log('dynamic2'); - -export const DYNAMIC_A = 'DYNAMIC_A'; -export const DYNAMIC_B = 'DYNAMIC_B'; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/main.js deleted file mode 100644 index 9e2abfea0..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic-name-conflict/main.js +++ /dev/null @@ -1,2 +0,0 @@ -import('./dynamic1.js').then(result => console.log(result)); -import('./dynamic2.js').then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_config.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_config.js deleted file mode 100644 index 2501bda21..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = defineTest({ - description: 'supports dynamic manual chunks', - options: { - strictDeprecations: false, - input: ['main.js'], - manualChunks: { - dynamic: ['dynamic.js'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/amd/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/amd/generated-dynamic.js deleted file mode 100644 index 49c2415e4..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/amd/generated-dynamic.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const DYNAMIC_USED_BY_A = 'DYNAMIC_USED_BY_A'; - - exports.DYNAMIC_USED_BY_A = DYNAMIC_USED_BY_A; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/amd/main.js deleted file mode 100644 index 9dd81f187..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - new Promise(function (resolve, reject) { require(['./generated-dynamic'], resolve, reject); }).then(({DYNAMIC_USED_BY_A}) => console.log(DYNAMIC_USED_BY_A)); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/cjs/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/cjs/generated-dynamic.js deleted file mode 100644 index 28e15f913..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/cjs/generated-dynamic.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const DYNAMIC_USED_BY_A = 'DYNAMIC_USED_BY_A'; - -exports.DYNAMIC_USED_BY_A = DYNAMIC_USED_BY_A; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/cjs/main.js deleted file mode 100644 index 48ed2ac42..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/cjs/main.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -Promise.resolve().then(function () { return require('./generated-dynamic.js'); }).then(({DYNAMIC_USED_BY_A}) => console.log(DYNAMIC_USED_BY_A)); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/es/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/es/generated-dynamic.js deleted file mode 100644 index 4ccf63214..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/es/generated-dynamic.js +++ /dev/null @@ -1,3 +0,0 @@ -const DYNAMIC_USED_BY_A = 'DYNAMIC_USED_BY_A'; - -export { DYNAMIC_USED_BY_A }; diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/es/main.js deleted file mode 100644 index aefad148d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/es/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./generated-dynamic.js').then(({DYNAMIC_USED_BY_A}) => console.log(DYNAMIC_USED_BY_A)); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/system/generated-dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/system/generated-dynamic.js deleted file mode 100644 index 7cf6795c0..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/system/generated-dynamic.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const DYNAMIC_USED_BY_A = exports('DYNAMIC_USED_BY_A', 'DYNAMIC_USED_BY_A'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/system/main.js deleted file mode 100644 index df0f0195b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/_expected/system/main.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - module.import('./generated-dynamic.js').then(({DYNAMIC_USED_BY_A}) => console.log(DYNAMIC_USED_BY_A)); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/dynamic.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/dynamic.js deleted file mode 100644 index 38cb5406d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/dynamic.js +++ /dev/null @@ -1 +0,0 @@ -export const DYNAMIC_USED_BY_A = 'DYNAMIC_USED_BY_A'; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/main.js b/test/chunking-form/samples/deprecated/manual-chunks-dynamic/main.js deleted file mode 100644 index c4c598881..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-dynamic/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./dynamic.js').then(({DYNAMIC_USED_BY_A}) => console.log(DYNAMIC_USED_BY_A)); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_config.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_config.js deleted file mode 100644 index 8952acaec..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = defineTest({ - description: 'allows to define manual chunks via a function', - options: { - strictDeprecations: false, - input: ['main-a'], - manualChunks(id) { - if (id[id.length - 5] === '-') { - return `chunk-${id[id.length - 4]}`; - } - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/generated-chunk-b.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/generated-chunk-b.js deleted file mode 100644 index 4e491fbab..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/generated-chunk-b.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - console.log('dep2'); - - console.log('dep-b'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/generated-chunk-c.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/generated-chunk-c.js deleted file mode 100644 index 0fbaf713d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/generated-chunk-c.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-chunk-b'], (function (chunkB) { 'use strict'; - - console.log('dep-c'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/main-a.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/main-a.js deleted file mode 100644 index e3934b106..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/amd/main-a.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['./generated-chunk-c', './generated-chunk-b'], (function (chunkC, chunkB) { 'use strict'; - - console.log('dep1'); - - console.log('dep-a'); - - console.log('main-a'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/generated-chunk-b.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/generated-chunk-b.js deleted file mode 100644 index 51b3d3e3d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/generated-chunk-b.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -console.log('dep2'); - -console.log('dep-b'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/generated-chunk-c.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/generated-chunk-c.js deleted file mode 100644 index d8349602b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/generated-chunk-c.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./generated-chunk-b.js'); - -console.log('dep-c'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/main-a.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/main-a.js deleted file mode 100644 index 2d8f820fd..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/cjs/main-a.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -require('./generated-chunk-c.js'); -require('./generated-chunk-b.js'); - -console.log('dep1'); - -console.log('dep-a'); - -console.log('main-a'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/generated-chunk-b.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/generated-chunk-b.js deleted file mode 100644 index 16fb2a902..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/generated-chunk-b.js +++ /dev/null @@ -1,3 +0,0 @@ -console.log('dep2'); - -console.log('dep-b'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/generated-chunk-c.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/generated-chunk-c.js deleted file mode 100644 index 78ee7d95d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/generated-chunk-c.js +++ /dev/null @@ -1,3 +0,0 @@ -import './generated-chunk-b.js'; - -console.log('dep-c'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/main-a.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/main-a.js deleted file mode 100644 index d3864b714..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/es/main-a.js +++ /dev/null @@ -1,8 +0,0 @@ -import './generated-chunk-c.js'; -import './generated-chunk-b.js'; - -console.log('dep1'); - -console.log('dep-a'); - -console.log('main-a'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/generated-chunk-b.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/generated-chunk-b.js deleted file mode 100644 index 5dd8fc974..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/generated-chunk-b.js +++ /dev/null @@ -1,12 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log('dep2'); - - console.log('dep-b'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/generated-chunk-c.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/generated-chunk-c.js deleted file mode 100644 index 07a992419..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/generated-chunk-c.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./generated-chunk-b.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('dep-c'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/main-a.js b/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/main-a.js deleted file mode 100644 index 9b06dfa55..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/_expected/system/main-a.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./generated-chunk-c.js', './generated-chunk-b.js'], (function () { - 'use strict'; - return { - setters: [null, null], - execute: (function () { - - console.log('dep1'); - - console.log('dep-a'); - - console.log('main-a'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/dep-a.js b/test/chunking-form/samples/deprecated/manual-chunks-function/dep-a.js deleted file mode 100644 index 5cf180c14..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/dep-a.js +++ /dev/null @@ -1,4 +0,0 @@ -import './dep-c'; -import './dep1'; - -console.log('dep-a'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/dep-b.js b/test/chunking-form/samples/deprecated/manual-chunks-function/dep-b.js deleted file mode 100644 index 67c590f58..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/dep-b.js +++ /dev/null @@ -1,3 +0,0 @@ -import './dep2'; - -console.log('dep-b'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/dep-c.js b/test/chunking-form/samples/deprecated/manual-chunks-function/dep-c.js deleted file mode 100644 index 3934b0ad9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/dep-c.js +++ /dev/null @@ -1,3 +0,0 @@ -import './dep2'; - -console.log('dep-c'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/dep1.js b/test/chunking-form/samples/deprecated/manual-chunks-function/dep1.js deleted file mode 100644 index 6aa6066ce..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/dep1.js +++ /dev/null @@ -1 +0,0 @@ -console.log('dep1'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/dep2.js b/test/chunking-form/samples/deprecated/manual-chunks-function/dep2.js deleted file mode 100644 index f5325d80e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/dep2.js +++ /dev/null @@ -1 +0,0 @@ -console.log('dep2'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-function/main-a.js b/test/chunking-form/samples/deprecated/manual-chunks-function/main-a.js deleted file mode 100644 index cf97f330a..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-function/main-a.js +++ /dev/null @@ -1,4 +0,0 @@ -import './dep-a'; -import './dep-b'; - -console.log('main-a'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_config.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_config.js deleted file mode 100644 index e988680a0..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = defineTest({ - description: 'manual chunks can contain nested modules', - options: { - strictDeprecations: false, - input: ['main.js'], - manualChunks: { - manual: ['middle.js', 'inner.js', 'outer.js'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/amd/generated-manual.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/amd/generated-manual.js deleted file mode 100644 index 3c9aa92fa..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/amd/generated-manual.js +++ /dev/null @@ -1,9 +0,0 @@ -define((function () { 'use strict'; - - console.log('inner'); - - console.log('middle'); - - console.log('outer'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/amd/main.js deleted file mode 100644 index b9a9d6430..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./generated-manual'], (function (manual) { 'use strict'; - - console.log('main'); - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/cjs/generated-manual.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/cjs/generated-manual.js deleted file mode 100644 index 3ce3b1a69..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/cjs/generated-manual.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -console.log('inner'); - -console.log('middle'); - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/cjs/main.js deleted file mode 100644 index f679e51bf..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/cjs/main.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./generated-manual.js'); - -console.log('main'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/es/generated-manual.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/es/generated-manual.js deleted file mode 100644 index 7abdcd7f1..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/es/generated-manual.js +++ /dev/null @@ -1,5 +0,0 @@ -console.log('inner'); - -console.log('middle'); - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/es/main.js deleted file mode 100644 index ddeb648f1..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/es/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import './generated-manual.js'; - -console.log('main'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/system/generated-manual.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/system/generated-manual.js deleted file mode 100644 index 4596d906e..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/system/generated-manual.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log('inner'); - - console.log('middle'); - - console.log('outer'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/system/main.js deleted file mode 100644 index 3e762e61f..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/_expected/system/main.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./generated-manual.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('main'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/inner.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/inner.js deleted file mode 100644 index 8e1a29ca9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/inner.js +++ /dev/null @@ -1 +0,0 @@ -console.log('inner'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/main.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/main.js deleted file mode 100644 index b46ebb222..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import './outer.js'; - -console.log('main'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/middle.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/middle.js deleted file mode 100644 index 007325908..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/middle.js +++ /dev/null @@ -1,3 +0,0 @@ -import './inner.js'; - -console.log('middle'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks-nested/outer.js b/test/chunking-form/samples/deprecated/manual-chunks-nested/outer.js deleted file mode 100644 index c77196cec..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks-nested/outer.js +++ /dev/null @@ -1,3 +0,0 @@ -import './middle.js'; - -console.log('outer'); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_config.js b/test/chunking-form/samples/deprecated/manual-chunks/_config.js deleted file mode 100644 index 08bb1489d..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'manual chunks support', - options: { - strictDeprecations: false, - input: ['main.js'], - manualChunks: { - lib1: ['lib1.js'], - deps2and3: ['dep2.js', 'dep3.js'] - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/generated-deps2and3.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/generated-deps2and3.js deleted file mode 100644 index 2321db642..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/generated-deps2and3.js +++ /dev/null @@ -1,20 +0,0 @@ -define(['exports', './generated-lib1'], (function (exports, lib1) { 'use strict'; - - function fn$2 () { - console.log('lib2 fn'); - } - - function fn$1 () { - fn$2(); - console.log('dep2 fn'); - } - - function fn () { - lib1.fn(); - console.log('dep3 fn'); - } - - exports.fn = fn$1; - exports.fn$1 = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/generated-lib1.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/generated-lib1.js deleted file mode 100644 index 6d846653c..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/generated-lib1.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - function fn () { - console.log('lib1 fn'); - } - - exports.fn = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/main.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/main.js deleted file mode 100644 index 89925cb11..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/amd/main.js +++ /dev/null @@ -1,17 +0,0 @@ -define(['./generated-deps2and3', './generated-lib1'], (function (deps2and3, lib1) { 'use strict'; - - function fn () { - console.log('dep1 fn'); - } - - class Main { - constructor () { - fn(); - deps2and3.fn(); - deps2and3.fn$1(); - } - } - - return Main; - -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/generated-deps2and3.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/generated-deps2and3.js deleted file mode 100644 index b9087cf6b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/generated-deps2and3.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var lib1 = require('./generated-lib1.js'); - -function fn$2 () { - console.log('lib2 fn'); -} - -function fn$1 () { - fn$2(); - console.log('dep2 fn'); -} - -function fn () { - lib1.fn(); - console.log('dep3 fn'); -} - -exports.fn = fn$1; -exports.fn$1 = fn; diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/generated-lib1.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/generated-lib1.js deleted file mode 100644 index 6a9d99129..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/generated-lib1.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function fn () { - console.log('lib1 fn'); -} - -exports.fn = fn; diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/main.js deleted file mode 100644 index 2a68746ba..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/cjs/main.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var deps2and3 = require('./generated-deps2and3.js'); -require('./generated-lib1.js'); - -function fn () { - console.log('dep1 fn'); -} - -class Main { - constructor () { - fn(); - deps2and3.fn(); - deps2and3.fn$1(); - } -} - -module.exports = Main; diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/generated-deps2and3.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/generated-deps2and3.js deleted file mode 100644 index 7e3f8acc1..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/generated-deps2and3.js +++ /dev/null @@ -1,17 +0,0 @@ -import { f as fn$3 } from './generated-lib1.js'; - -function fn$2 () { - console.log('lib2 fn'); -} - -function fn$1 () { - fn$2(); - console.log('dep2 fn'); -} - -function fn () { - fn$3(); - console.log('dep3 fn'); -} - -export { fn as a, fn$1 as f }; diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/generated-lib1.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/generated-lib1.js deleted file mode 100644 index ae5cdca14..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/generated-lib1.js +++ /dev/null @@ -1,5 +0,0 @@ -function fn () { - console.log('lib1 fn'); -} - -export { fn as f }; diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/main.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/main.js deleted file mode 100644 index 6982299f9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/es/main.js +++ /dev/null @@ -1,16 +0,0 @@ -import { f as fn$1, a as fn$2 } from './generated-deps2and3.js'; -import './generated-lib1.js'; - -function fn () { - console.log('dep1 fn'); -} - -class Main { - constructor () { - fn(); - fn$1(); - fn$2(); - } -} - -export { Main as default }; diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/generated-deps2and3.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/generated-deps2and3.js deleted file mode 100644 index a0867bcd9..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/generated-deps2and3.js +++ /dev/null @@ -1,31 +0,0 @@ -System.register(['./generated-lib1.js'], (function (exports) { - 'use strict'; - var fn$3; - return { - setters: [function (module) { - fn$3 = module.f; - }], - execute: (function () { - - exports({ - a: fn, - f: fn$1 - }); - - function fn$2 () { - console.log('lib2 fn'); - } - - function fn$1 () { - fn$2(); - console.log('dep2 fn'); - } - - function fn () { - fn$3(); - console.log('dep3 fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/generated-lib1.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/generated-lib1.js deleted file mode 100644 index a6918ea9b..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/generated-lib1.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - exports('f', fn); - - function fn () { - console.log('lib1 fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/main.js b/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/main.js deleted file mode 100644 index 61a751d32..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/_expected/system/main.js +++ /dev/null @@ -1,25 +0,0 @@ -System.register(['./generated-deps2and3.js', './generated-lib1.js'], (function (exports) { - 'use strict'; - var fn$1, fn$2; - return { - setters: [function (module) { - fn$1 = module.f; - fn$2 = module.a; - }, null], - execute: (function () { - - function fn () { - console.log('dep1 fn'); - } - - class Main { - constructor () { - fn(); - fn$1(); - fn$2(); - } - } exports('default', Main); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/manual-chunks/dep1.js b/test/chunking-form/samples/deprecated/manual-chunks/dep1.js deleted file mode 100644 index b67d0bbb2..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/dep1.js +++ /dev/null @@ -1,3 +0,0 @@ -export function fn () { - console.log('dep1 fn'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/manual-chunks/dep2.js b/test/chunking-form/samples/deprecated/manual-chunks/dep2.js deleted file mode 100644 index 1549fc164..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/dep2.js +++ /dev/null @@ -1,6 +0,0 @@ -import { fn as libfn } from './lib2.js'; - -export function fn () { - libfn(); - console.log('dep2 fn'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/manual-chunks/dep3.js b/test/chunking-form/samples/deprecated/manual-chunks/dep3.js deleted file mode 100644 index 4e3222210..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/dep3.js +++ /dev/null @@ -1,8 +0,0 @@ -import { fn as libfn, treeshaked } from './lib1.js'; - -export function fn () { - libfn(); - console.log('dep3 fn'); -} - -export default treeshaked; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/manual-chunks/lib1.js b/test/chunking-form/samples/deprecated/manual-chunks/lib1.js deleted file mode 100644 index 5ccf83b35..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/lib1.js +++ /dev/null @@ -1,7 +0,0 @@ -export function fn () { - console.log('lib1 fn'); -} - -export function treeshaked () { - console.log('this is tree shaken!'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/manual-chunks/lib2.js b/test/chunking-form/samples/deprecated/manual-chunks/lib2.js deleted file mode 100644 index 2d6d2cf08..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/lib2.js +++ /dev/null @@ -1,3 +0,0 @@ -export function fn () { - console.log('lib2 fn'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/manual-chunks/main.js b/test/chunking-form/samples/deprecated/manual-chunks/main.js deleted file mode 100644 index d65cf01a5..000000000 --- a/test/chunking-form/samples/deprecated/manual-chunks/main.js +++ /dev/null @@ -1,15 +0,0 @@ -import { fn } from './dep1.js'; -import { fn as fn2 } from './dep2.js'; -import { fn as fn3, default as treeshaked } from './dep3.js'; - -if (false) { - treeshaked(); -} - -export default class Main { - constructor () { - fn(); - fn2(); - fn3(); - } -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_config.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_config.js deleted file mode 100644 index 3204a18a8..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = defineTest({ - description: 'handles using dependencies with shimmed missing exports as ', - expectedWarnings: ['SHIMMED_EXPORT', 'DEPRECATED_FEATURE'], - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - shimMissingExports: true - } -}); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/dep1.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/dep1.js deleted file mode 100644 index 1ebb9552c..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/dep1.js +++ /dev/null @@ -1,17 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - var _missingExportShim = void 0; - - console.log('This is the output when a missing export is used internally but not reexported'); - - function almostUseUnused(useIt) { - if (useIt) { - console.log(_missingExportShim); - } - } - - almostUseUnused(false); - - exports.missing1 = _missingExportShim; - -})); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/dep2.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/dep2.js deleted file mode 100644 index 94c9d52cf..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/dep2.js +++ /dev/null @@ -1,14 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - var _missingExportShim = void 0; - - console.log('This is the output when a missing export is reexported'); - - var _missingExportShim$1 = void 0; - - console.log(_missingExportShim$1); - - exports.missing2 = _missingExportShim; - exports.previousShimmedExport = _missingExportShim$1; - -})); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/main.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/main.js deleted file mode 100644 index 86f8c8336..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./dep1', './dep2'], (function (dep1, dep2) { 'use strict'; - - console.log(dep1.missing1, dep2.missing2, dep2.previousShimmedExport); - -})); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/dep1.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/dep1.js deleted file mode 100644 index a024bcd6f..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/dep1.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var _missingExportShim = void 0; - -console.log('This is the output when a missing export is used internally but not reexported'); - -function almostUseUnused(useIt) { - if (useIt) { - console.log(_missingExportShim); - } -} - -almostUseUnused(false); - -exports.missing1 = _missingExportShim; diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/dep2.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/dep2.js deleted file mode 100644 index f411ae569..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/dep2.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var _missingExportShim = void 0; - -console.log('This is the output when a missing export is reexported'); - -var _missingExportShim$1 = void 0; - -console.log(_missingExportShim$1); - -exports.missing2 = _missingExportShim; -exports.previousShimmedExport = _missingExportShim$1; diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/main.js deleted file mode 100644 index 0a8ed0c59..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/cjs/main.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var dep1 = require('./dep1.js'); -var dep2 = require('./dep2.js'); - -console.log(dep1.missing1, dep2.missing2, dep2.previousShimmedExport); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/dep1.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/dep1.js deleted file mode 100644 index 99f4196bf..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/dep1.js +++ /dev/null @@ -1,13 +0,0 @@ -var _missingExportShim = void 0; - -console.log('This is the output when a missing export is used internally but not reexported'); - -function almostUseUnused(useIt) { - if (useIt) { - console.log(_missingExportShim); - } -} - -almostUseUnused(false); - -export { _missingExportShim as missing1 }; diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/dep2.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/dep2.js deleted file mode 100644 index 1957fef7b..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/dep2.js +++ /dev/null @@ -1,9 +0,0 @@ -var _missingExportShim = void 0; - -console.log('This is the output when a missing export is reexported'); - -var _missingExportShim$1 = void 0; - -console.log(_missingExportShim$1); - -export { _missingExportShim as missing2, _missingExportShim$1 as previousShimmedExport }; diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/main.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/main.js deleted file mode 100644 index ea2616a1c..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/es/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import { missing1 as _missingExportShim } from './dep1.js'; -import { missing2 as _missingExportShim$1, previousShimmedExport as _missingExportShim$2 } from './dep2.js'; - -console.log(_missingExportShim, _missingExportShim$1, _missingExportShim$2); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/dep1.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/dep1.js deleted file mode 100644 index 566b812c7..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/dep1.js +++ /dev/null @@ -1,22 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var _missingExportShim = void 0; - - console.log('This is the output when a missing export is used internally but not reexported'); - - function almostUseUnused(useIt) { - if (useIt) { - console.log(_missingExportShim); - } - } - - almostUseUnused(false); - - exports('missing1', _missingExportShim); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/dep2.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/dep2.js deleted file mode 100644 index 3683f4b73..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/dep2.js +++ /dev/null @@ -1,18 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var _missingExportShim = void 0; - - console.log('This is the output when a missing export is reexported'); - - var _missingExportShim$1 = exports('previousShimmedExport', void 0); - - console.log(_missingExportShim$1); - - exports('missing2', _missingExportShim); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/main.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/main.js deleted file mode 100644 index 85562809d..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/_expected/system/main.js +++ /dev/null @@ -1,17 +0,0 @@ -System.register(['./dep1.js', './dep2.js'], (function () { - 'use strict'; - var _missingExportShim, _missingExportShim$1, _missingExportShim$2; - return { - setters: [function (module) { - _missingExportShim = module.missing1; - }, function (module) { - _missingExportShim$1 = module.missing2; - _missingExportShim$2 = module.previousShimmedExport; - }], - execute: (function () { - - console.log(_missingExportShim, _missingExportShim$1, _missingExportShim$2); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/dep1.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/dep1.js deleted file mode 100644 index 84e22e0fe..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/dep1.js +++ /dev/null @@ -1,9 +0,0 @@ -console.log('This is the output when a missing export is used internally but not reexported'); - -function almostUseUnused(useIt) { - if (useIt) { - console.log(_missingExportShim); - } -} - -almostUseUnused(false); diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/dep2.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/dep2.js deleted file mode 100644 index e49bb16dd..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/dep2.js +++ /dev/null @@ -1,7 +0,0 @@ -console.log('This is the output when a missing export is reexported'); - -var _missingExportShim = void 0; - -console.log(_missingExportShim); - -export {_missingExportShim as previousShimmedExport} diff --git a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/main.js b/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/main.js deleted file mode 100644 index 167c08b23..000000000 --- a/test/chunking-form/samples/deprecated/missing-export-reused-deconflicting/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import { missing1 } from './dep1.js'; -import { missing2, previousShimmedExport } from './dep2.js'; - -console.log(missing1, missing2, previousShimmedExport); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js deleted file mode 100644 index acbfd7b6c..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: - 'adds Symbol.toStringTag property to dynamic imports of entry chunks with default export mode', - options: { - strictDeprecations: false, - input: ['main', 'foo'], - output: { - namespaceToStringTag: true - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/foo.js deleted file mode 100644 index 69228f8fb..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/foo.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var foo = 42; - - return foo; - -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js deleted file mode 100644 index 8f783a26d..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/amd/main.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: 'Module' })); } - - new Promise(function (resolve, reject) { require(['./foo'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefaultOnly(m)); }, reject); }).then(console.log); - -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/foo.js deleted file mode 100644 index 476c8ac92..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/foo.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var foo = 42; - -module.exports = foo; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js deleted file mode 100644 index fc716bca3..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/cjs/main.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: 'Module' })); } - -Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./foo.js')); }).then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/foo.js deleted file mode 100644 index 2685886fe..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/foo.js +++ /dev/null @@ -1,3 +0,0 @@ -var foo = 42; - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/main.js deleted file mode 100644 index 1c55d6393..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/es/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./foo.js').then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/foo.js deleted file mode 100644 index 98793de89..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/foo.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var foo = exports('default', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/main.js deleted file mode 100644 index a5552580f..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_expected/system/main.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - module.import('./foo.js').then(console.log); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js deleted file mode 100644 index 999da1256..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./foo').then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_config.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_config.js deleted file mode 100644 index 575cabf50..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to dynamic imports', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js deleted file mode 100644 index ceaf138a5..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/generated-foo.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const bar = 42; - - exports.bar = bar; - - Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); - -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/main.js deleted file mode 100644 index 5268640ba..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - new Promise(function (resolve, reject) { require(['./generated-foo'], resolve, reject); }).then(console.log); - -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js deleted file mode 100644 index 7e415cb77..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/generated-foo.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); - -const bar = 42; - -exports.bar = bar; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/main.js deleted file mode 100644 index 3fac08fba..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/cjs/main.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -Promise.resolve().then(function () { return require('./generated-foo.js'); }).then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/generated-foo.js deleted file mode 100644 index 540eb09fb..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/generated-foo.js +++ /dev/null @@ -1,3 +0,0 @@ -const bar = 42; - -export { bar }; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/main.js deleted file mode 100644 index 7d43c4003..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/es/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./generated-foo.js').then(console.log); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/generated-foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/generated-foo.js deleted file mode 100644 index f77176add..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/generated-foo.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const bar = exports('bar', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/main.js deleted file mode 100644 index ed21ee675..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/_expected/system/main.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - module.import('./generated-foo.js').then(console.log); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/foo.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/foo.js deleted file mode 100644 index 308e102fe..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const bar = 42; diff --git a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/main.js b/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/main.js deleted file mode 100644 index 999da1256..000000000 --- a/test/chunking-form/samples/deprecated/namespace-tostring/dynamic-import/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./foo').then(console.log); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_config.js deleted file mode 100644 index 0c0972b78..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'Uses entry point semantics for all files when preserving modules', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/default.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/default.js deleted file mode 100644 index 855cb78e2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/default.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var foo = 'default'; - - return foo; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/main.js deleted file mode 100644 index fdb3413c4..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/main.js +++ /dev/null @@ -1,12 +0,0 @@ -define(['require', './default', './named'], (function (require, _default, named) { 'use strict'; - - function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, default: e }); } - - console.log(_default, named.value); - - new Promise(function (resolve, reject) { require(['./default'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefaultOnly(m)); }, reject); }).then(result => console.log(result.default)); - new Promise(function (resolve, reject) { require(['./named'], resolve, reject); }).then(result => console.log(result.value)); - - return _default; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/named.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/named.js deleted file mode 100644 index 2896dcf10..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/amd/named.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const value = 'named'; - - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/default.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/default.js deleted file mode 100644 index f670b985a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/default.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var foo = 'default'; - -module.exports = foo; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/main.js deleted file mode 100644 index 5f9d03b26..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/main.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var _default = require('./default.js'); -var named = require('./named.js'); - -function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, default: e }); } - -console.log(_default, named.value); - -Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./default.js')); }).then(result => console.log(result.default)); -Promise.resolve().then(function () { return require('./named.js'); }).then(result => console.log(result.value)); - -module.exports = _default; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/named.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/named.js deleted file mode 100644 index ec20bc0d7..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/cjs/named.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const value = 'named'; - -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/default.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/default.js deleted file mode 100644 index 888d95cb3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/default.js +++ /dev/null @@ -1,3 +0,0 @@ -var foo = 'default'; - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/main.js deleted file mode 100644 index 4aad85561..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/main.js +++ /dev/null @@ -1,9 +0,0 @@ -import foo from './default.js'; -import { value } from './named.js'; - -console.log(foo, value); - -import('./default.js').then(result => console.log(result.default)); -import('./named.js').then(result => console.log(result.value)); - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/named.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/named.js deleted file mode 100644 index f63259007..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/es/named.js +++ /dev/null @@ -1,3 +0,0 @@ -const value = 'named'; - -export { value }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/default.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/default.js deleted file mode 100644 index 5879dd0d6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/default.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var foo = exports('default', 'default'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/main.js deleted file mode 100644 index 16b732c16..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/main.js +++ /dev/null @@ -1,20 +0,0 @@ -System.register(['./default.js', './named.js'], (function (exports, module) { - 'use strict'; - var foo, value; - return { - setters: [function (module) { - foo = module.default; - exports('default', module.default); - }, function (module) { - value = module.value; - }], - execute: (function () { - - console.log(foo, value); - - module.import('./default.js').then(result => console.log(result.default)); - module.import('./named.js').then(result => console.log(result.value)); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/named.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/named.js deleted file mode 100644 index 15ac00621..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/_expected/system/named.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const value = exports('value', 'named'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/default.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/default.js deleted file mode 100644 index 413f601a3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/default.js +++ /dev/null @@ -1 +0,0 @@ -export default 'default'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/main.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/main.js deleted file mode 100644 index 72dc390d8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/main.js +++ /dev/null @@ -1,8 +0,0 @@ -import foo from './default.js'; -import { value } from './named.js'; -console.log(foo, value); - -export { default } from './default.js'; - -import('./default').then(result => console.log(result.default)); -import('./named').then(result => console.log(result.value)); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/named.js b/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/named.js deleted file mode 100644 index a5c403fef..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-auto-export-mode/named.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 'named'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_config.js deleted file mode 100644 index 5a551c30a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_config.js +++ /dev/null @@ -1,13 +0,0 @@ -const commonjs = require('@rollup/plugin-commonjs'); - -module.exports = defineTest({ - description: 'Handles output from @rollup/plugin-commonjs', - expectedWarnings: ['MIXED_EXPORTS', 'DEPRECATED_FEATURE'], - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true, - external: ['external'], - plugins: [commonjs()] - } -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/_commonjsHelpers.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/_commonjsHelpers.js deleted file mode 100644 index f35ac4ef0..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/_commonjsHelpers.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - exports.getDefaultExportFromCjs = getDefaultExportFromCjs; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/other.js deleted file mode 100644 index ab90c1d68..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/other.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - var other = {}; - - exports.__exports = other; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/commonjs.js deleted file mode 100644 index bd5d678d6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/commonjs.js +++ /dev/null @@ -1,14 +0,0 @@ -define(['./_virtual/_commonjsHelpers', 'external', './other', './_virtual/other'], (function (_commonjsHelpers, require$$0, other$1, other) { 'use strict'; - - const external = require$$0; - const { value } = other.__exports; - - console.log(external, value); - - var commonjs = 42; - - var value$1 = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(commonjs); - - return value$1; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/main.js deleted file mode 100644 index baedd1b30..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./commonjs', 'external'], (function (commonjs, require$$0) { 'use strict'; - - console.log(commonjs, require$$0); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/other.js deleted file mode 100644 index 8697215bc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/other.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['./_virtual/other'], (function (other) { 'use strict'; - - other.__exports.value = 43; - - return other.__exports; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/_commonjsHelpers.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/_commonjsHelpers.js deleted file mode 100644 index ceeaa4d07..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/_commonjsHelpers.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; -} - -exports.getDefaultExportFromCjs = getDefaultExportFromCjs; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/other.js deleted file mode 100644 index 6569c1d2a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/other.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var other = {}; - -exports.__exports = other; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/commonjs.js deleted file mode 100644 index f2004b532..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/commonjs.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var _commonjsHelpers = require('./_virtual/_commonjsHelpers.js'); -var require$$0 = require('external'); -require('./other.js'); -var other = require('./_virtual/other.js'); - -const external = require$$0; -const { value } = other.__exports; - -console.log(external, value); - -var commonjs = 42; - -var value$1 = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(commonjs); - -module.exports = value$1; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/main.js deleted file mode 100644 index a38e11646..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/main.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var commonjs = require('./commonjs.js'); -var require$$0 = require('external'); - -console.log(commonjs, require$$0); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/other.js deleted file mode 100644 index b2e2e3e12..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/other.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var other = require('./_virtual/other.js'); - -other.__exports.value = 43; - -module.exports = other.__exports; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/_commonjsHelpers.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/_commonjsHelpers.js deleted file mode 100644 index 7b7c5f4f5..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/_commonjsHelpers.js +++ /dev/null @@ -1,5 +0,0 @@ -function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; -} - -export { getDefaultExportFromCjs }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/other.js deleted file mode 100644 index 4825c11dd..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/other.js +++ /dev/null @@ -1,3 +0,0 @@ -var other = {}; - -export { other as __exports }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/commonjs.js deleted file mode 100644 index 2beaaa309..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/commonjs.js +++ /dev/null @@ -1,15 +0,0 @@ -import { getDefaultExportFromCjs } from './_virtual/_commonjsHelpers.js'; -import require$$0 from 'external'; -import './other.js'; -import { __exports as other } from './_virtual/other.js'; - -const external = require$$0; -const { value } = other; - -console.log(external, value); - -var commonjs = 42; - -var value$1 = /*@__PURE__*/getDefaultExportFromCjs(commonjs); - -export { value$1 as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/main.js deleted file mode 100644 index f1c736b1a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import value from './commonjs.js'; -import require$$0 from 'external'; - -console.log(value, require$$0); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/other.js deleted file mode 100644 index 005a4febb..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/other.js +++ /dev/null @@ -1,5 +0,0 @@ -import { __exports as other } from './_virtual/other.js'; - -other.value = 43; - -export { other as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/_commonjsHelpers.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/_commonjsHelpers.js deleted file mode 100644 index 46eeb613e..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/_commonjsHelpers.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - exports('getDefaultExportFromCjs', getDefaultExportFromCjs); - - function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/other.js deleted file mode 100644 index c3374bd03..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/other.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var other = exports('__exports', {}); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/commonjs.js deleted file mode 100644 index 8f67e9fb2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/commonjs.js +++ /dev/null @@ -1,25 +0,0 @@ -System.register(['./_virtual/_commonjsHelpers.js', 'external', './other.js', './_virtual/other.js'], (function (exports) { - 'use strict'; - var getDefaultExportFromCjs, require$$0, other; - return { - setters: [function (module) { - getDefaultExportFromCjs = module.getDefaultExportFromCjs; - }, function (module) { - require$$0 = module.default; - }, null, function (module) { - other = module.__exports; - }], - execute: (function () { - - const external = require$$0; - const { value } = other; - - console.log(external, value); - - var commonjs = 42; - - var value$1 = exports('default', /*@__PURE__*/getDefaultExportFromCjs(commonjs)); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/main.js deleted file mode 100644 index 3a8974e9b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/main.js +++ /dev/null @@ -1,16 +0,0 @@ -System.register(['./commonjs.js', 'external'], (function () { - 'use strict'; - var value, require$$0; - return { - setters: [function (module) { - value = module.default; - }, function (module) { - require$$0 = module.default; - }], - execute: (function () { - - console.log(value, require$$0); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/other.js deleted file mode 100644 index 1f428fbcf..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/other.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./_virtual/other.js'], (function (exports) { - 'use strict'; - var other; - return { - setters: [function (module) { - other = module.__exports; - exports('default', module.__exports); - }], - execute: (function () { - - other.value = 43; - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/commonjs.js deleted file mode 100644 index b9bf49c3f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/commonjs.js +++ /dev/null @@ -1,6 +0,0 @@ -const external = require('external'); -const { value } = require('./other'); - -console.log(external, value); - -module.exports = 42; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/main.js deleted file mode 100644 index cfef423da..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import value from './commonjs'; -import external from 'external'; - -console.log(value, external); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/other.js deleted file mode 100644 index cd9dcc83b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/other.js +++ /dev/null @@ -1 +0,0 @@ -exports.value = 43; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_config.js deleted file mode 100644 index 565a7037a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'dynamic imports are handled correctly when preserving modules', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/amd/dynamic-included.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/amd/dynamic-included.js deleted file mode 100644 index 19414d6fd..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/amd/dynamic-included.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const value = 'included'; - - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/amd/main.js deleted file mode 100644 index d46b5b5ed..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - new Promise(function (resolve, reject) { require(['./dynamic-included'], resolve, reject); }).then(result => console.log(result)); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/cjs/dynamic-included.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/cjs/dynamic-included.js deleted file mode 100644 index 7ce0b0473..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/cjs/dynamic-included.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const value = 'included'; - -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/cjs/main.js deleted file mode 100644 index ed78ead19..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/cjs/main.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -Promise.resolve().then(function () { return require('./dynamic-included.js'); }).then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/es/dynamic-included.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/es/dynamic-included.js deleted file mode 100644 index 6370bf943..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/es/dynamic-included.js +++ /dev/null @@ -1,3 +0,0 @@ -const value = 'included'; - -export { value }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/es/main.js deleted file mode 100644 index 72ed76ddf..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/es/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./dynamic-included.js').then(result => console.log(result)); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/system/dynamic-included.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/system/dynamic-included.js deleted file mode 100644 index 1c146c4b0..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/system/dynamic-included.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const value = exports('value', 'included'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/system/main.js deleted file mode 100644 index 46d09c0e3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/_expected/system/main.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - module.import('./dynamic-included.js').then(result => console.log(result)); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/dynamic-included.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/dynamic-included.js deleted file mode 100644 index 287c398f8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/dynamic-included.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 'included'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/dynamic-removed.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/dynamic-removed.js deleted file mode 100644 index a0203faa4..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/dynamic-removed.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 'removed'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/main.js deleted file mode 100644 index 9449616c8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-imports/main.js +++ /dev/null @@ -1,6 +0,0 @@ -import('./dynamic-included').then(result => console.log(result)); - -const include = false; -if (include) { - import('./dynamic-removed').then(result => console.log(result)); -} diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_config.js deleted file mode 100644 index 36f30eeec..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'Preserve modules properly handles internal namespace imports (#2576)', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m1.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m1.js deleted file mode 100644 index f5475ebcc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m1.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports', './m2', './m3'], (function (exports, m2, m3) { 'use strict'; - - - - exports.m2 = m2; - exports.m3 = m3; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m2.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m2.js deleted file mode 100644 index 098da5f2a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m2.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var m2 = {a:1}; - - return m2; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m3.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m3.js deleted file mode 100644 index 54273ec86..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/m3.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var m3 = {b:2}; - - return m3; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/main.js deleted file mode 100644 index 46411907b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./m1'], (function (m1) { 'use strict'; - - console.log(m1); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m1.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m1.js deleted file mode 100644 index bd9f1e273..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m1.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var m2 = require('./m2.js'); -var m3 = require('./m3.js'); - - - -exports.m2 = m2; -exports.m3 = m3; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m2.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m2.js deleted file mode 100644 index 4e7045d3f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m2.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var m2 = {a:1}; - -module.exports = m2; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m3.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m3.js deleted file mode 100644 index 8e9846236..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/m3.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var m3 = {b:2}; - -module.exports = m3; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/main.js deleted file mode 100644 index 79afdf397..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/cjs/main.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var m1 = require('./m1.js'); - -console.log(m1); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m1.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m1.js deleted file mode 100644 index 86968950d..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m1.js +++ /dev/null @@ -1,2 +0,0 @@ -export { default as m2 } from './m2.js'; -export { default as m3 } from './m3.js'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m2.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m2.js deleted file mode 100644 index 2e316b8ff..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m2.js +++ /dev/null @@ -1,3 +0,0 @@ -var m2 = {a:1}; - -export { m2 as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m3.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m3.js deleted file mode 100644 index 4e4d52f98..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/m3.js +++ /dev/null @@ -1,3 +0,0 @@ -var m3 = {b:2}; - -export { m3 as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/main.js deleted file mode 100644 index 0240c9102..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/es/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import * as m1 from './m1.js'; - -console.log(m1); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m1.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m1.js deleted file mode 100644 index 05fd277e1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m1.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./m2.js', './m3.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('m2', module.default); - }, function (module) { - exports('m3', module.default); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m2.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m2.js deleted file mode 100644 index 70eab9fde..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m2.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var m2 = exports('default', {a:1}); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m3.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m3.js deleted file mode 100644 index d64ef84b7..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/m3.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var m3 = exports('default', {b:2}); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/main.js deleted file mode 100644 index 2055d1533..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/_expected/system/main.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register(['./m1.js'], (function () { - 'use strict'; - var m1; - return { - setters: [function (module) { - m1 = module; - }], - execute: (function () { - - console.log(m1); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m1.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m1.js deleted file mode 100644 index 611f3360f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m1.js +++ /dev/null @@ -1,5 +0,0 @@ -import m2 from './m2.js'; -import m3 from './m3.js'; - -// console.log('m1'); -export { m2, m3 }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m2.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m2.js deleted file mode 100644 index 040aecae2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m2.js +++ /dev/null @@ -1,2 +0,0 @@ -var m2 = {a:1}; -export default m2; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m3.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m3.js deleted file mode 100644 index e58c26e98..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/m3.js +++ /dev/null @@ -1,2 +0,0 @@ -var m3 = {b:2}; -export default m3; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/main.js b/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/main.js deleted file mode 100644 index c7526ddd8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-dynamic-namespace/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import * as ms from './m1.js'; - -console.log(ms); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_config.js deleted file mode 100644 index 9c0b23efc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'Preserve modules remove empty dependencies', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/amd/main.js deleted file mode 100644 index a52a88cf6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./two'], (function (two) { 'use strict'; - - window.APP = { a: two }; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/amd/two.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/amd/two.js deleted file mode 100644 index 813004c18..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/amd/two.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var a = {}; - - return a; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/cjs/main.js deleted file mode 100644 index b882d86f3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/cjs/main.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var two = require('./two.js'); - -window.APP = { a: two }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/cjs/two.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/cjs/two.js deleted file mode 100644 index 62ff33f50..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/cjs/two.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var a = {}; - -module.exports = a; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/es/main.js deleted file mode 100644 index c69a33559..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/es/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import a from './two.js'; - -window.APP = { a }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/es/two.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/es/two.js deleted file mode 100644 index 2c1648548..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/es/two.js +++ /dev/null @@ -1,3 +0,0 @@ -var a = {}; - -export { a as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/system/main.js deleted file mode 100644 index 1d72392b6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/system/main.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register(['./two.js'], (function () { - 'use strict'; - var a; - return { - setters: [function (module) { - a = module.default; - }], - execute: (function () { - - window.APP = { a }; - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/system/two.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/system/two.js deleted file mode 100644 index 1b4ea34f1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/_expected/system/two.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var a = exports('default', {}); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/main.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/main.js deleted file mode 100644 index 944087cb5..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { a } from './one'; - -window.APP = { a }; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/one.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/one.js deleted file mode 100644 index 2fa4a4dfd..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/one.js +++ /dev/null @@ -1,2 +0,0 @@ -export { default as a } from './two'; -export { default as b } from './three'; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/three.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/three.js deleted file mode 100644 index 7c645e42f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/three.js +++ /dev/null @@ -1 +0,0 @@ -export default {}; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-empty/two.js b/test/chunking-form/samples/deprecated/preserve-modules-empty/two.js deleted file mode 100644 index 7c645e42f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-empty/two.js +++ /dev/null @@ -1 +0,0 @@ -export default {}; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_config.js deleted file mode 100644 index d544144ad..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'confirm export aliases are preserved in modules', - options: { - strictDeprecations: false, - input: ['main1.js', 'main2.js'], - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/dep.js deleted file mode 100644 index 42ccc5f12..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/dep.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const foo = 1; - - exports.bar = foo; - exports.foo = foo; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/main1.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/main1.js deleted file mode 100644 index a9086d328..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/main1.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports', './dep'], (function (exports, dep) { 'use strict'; - - - - exports.bar = dep.foo; - exports.foo = dep.foo; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/main2.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/main2.js deleted file mode 100644 index 43cad3604..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/amd/main2.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports', './dep'], (function (exports, dep) { 'use strict'; - - - - exports.bar = dep.foo; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/dep.js deleted file mode 100644 index ce2fd9a65..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/dep.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -const foo = 1; - -exports.bar = foo; -exports.foo = foo; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/main1.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/main1.js deleted file mode 100644 index f9483644b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/main1.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var dep = require('./dep.js'); - - - -exports.bar = dep.foo; -exports.foo = dep.foo; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/main2.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/main2.js deleted file mode 100644 index 68babfaab..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/cjs/main2.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var dep = require('./dep.js'); - - - -exports.bar = dep.foo; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/dep.js deleted file mode 100644 index fd00364ba..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/dep.js +++ /dev/null @@ -1,3 +0,0 @@ -const foo = 1; - -export { foo as bar, foo }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/main1.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/main1.js deleted file mode 100644 index ed1ba0cbf..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/main1.js +++ /dev/null @@ -1 +0,0 @@ -export { foo as bar, foo } from './dep.js'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/main2.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/main2.js deleted file mode 100644 index e7cedc5ee..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/es/main2.js +++ /dev/null @@ -1 +0,0 @@ -export { foo as bar } from './dep.js'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/dep.js deleted file mode 100644 index 5b18e441e..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/dep.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const foo = 1; exports({ foo: foo, bar: foo }); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/main1.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/main1.js deleted file mode 100644 index ab503c81c..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/main1.js +++ /dev/null @@ -1,13 +0,0 @@ -System.register(['./dep.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports({ bar: module.foo, foo: module.foo }); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/main2.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/main2.js deleted file mode 100644 index 47fbb8724..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/_expected/system/main2.js +++ /dev/null @@ -1,13 +0,0 @@ -System.register(['./dep.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('bar', module.foo); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/dep.js deleted file mode 100644 index 6e70164af..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/dep.js +++ /dev/null @@ -1,3 +0,0 @@ -const foo = 1; - -export { foo, foo as bar }; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/main1.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/main1.js deleted file mode 100644 index d6dbbf4db..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/main1.js +++ /dev/null @@ -1 +0,0 @@ -export { foo, bar } from './dep'; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/main2.js b/test/chunking-form/samples/deprecated/preserve-modules-export-alias/main2.js deleted file mode 100644 index a9aa169df..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-export-alias/main2.js +++ /dev/null @@ -1 +0,0 @@ -export { bar } from './dep'; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_config.js deleted file mode 100644 index aa99c0a74..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'entryFileNames pattern supported in combination with preserveModules', - options: { - strictDeprecations: false, - input: 'src/main.ts', - output: { - entryFileNames: '[name]-[format]-[hash].js' - }, - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/foo-amd-0f9dc16c.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/foo-amd-0f9dc16c.js deleted file mode 100644 index 69228f8fb..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/foo-amd-0f9dc16c.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var foo = 42; - - return foo; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/main-amd-f0570656.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/main-amd-f0570656.js deleted file mode 100644 index 92eec8fa3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/main-amd-f0570656.js +++ /dev/null @@ -1,10 +0,0 @@ -define(['exports', './foo-amd-0f9dc16c', './nested/bar-amd-f038b10c', './nested/baz-amd-d3de4cc0', './no-ext-amd-9d2c6ef6'], (function (exports, foo, bar, baz, noExt) { 'use strict'; - - - - exports.foo = foo; - exports.bar = bar; - exports.baz = baz; - exports.noExt = noExt; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/nested/bar-amd-f038b10c.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/nested/bar-amd-f038b10c.js deleted file mode 100644 index 55e47d04b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/nested/bar-amd-f038b10c.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var bar = 'banana'; - - return bar; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/nested/baz-amd-d3de4cc0.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/nested/baz-amd-d3de4cc0.js deleted file mode 100644 index 518b69f55..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/nested/baz-amd-d3de4cc0.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var baz = 'whatever'; - - return baz; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/foo-cjs-0d5774b5.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/foo-cjs-0d5774b5.js deleted file mode 100644 index 476c8ac92..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/foo-cjs-0d5774b5.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var foo = 42; - -module.exports = foo; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/main-cjs-e39bf23f.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/main-cjs-e39bf23f.js deleted file mode 100644 index 5feb8352e..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/main-cjs-e39bf23f.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var foo = require('./foo-cjs-0d5774b5.js'); -var bar = require('./nested/bar-cjs-abedc91d.js'); -var baz = require('./nested/baz-cjs-4a9c02fc.js'); -var noExt = require('./no-ext-cjs-500f8f81.js'); - - - -exports.foo = foo; -exports.bar = bar; -exports.baz = baz; -exports.noExt = noExt; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/nested/bar-cjs-abedc91d.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/nested/bar-cjs-abedc91d.js deleted file mode 100644 index f8f56e6fc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/nested/bar-cjs-abedc91d.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var bar = 'banana'; - -module.exports = bar; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/nested/baz-cjs-4a9c02fc.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/nested/baz-cjs-4a9c02fc.js deleted file mode 100644 index 0ba506ad3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/nested/baz-cjs-4a9c02fc.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var baz = 'whatever'; - -module.exports = baz; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/foo-es-3585f3eb.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/foo-es-3585f3eb.js deleted file mode 100644 index 2685886fe..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/foo-es-3585f3eb.js +++ /dev/null @@ -1,3 +0,0 @@ -var foo = 42; - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/main-es-d43a43b5.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/main-es-d43a43b5.js deleted file mode 100644 index dcc851a2a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/main-es-d43a43b5.js +++ /dev/null @@ -1,4 +0,0 @@ -export { default as foo } from './foo-es-3585f3eb.js'; -export { default as bar } from './nested/bar-es-bd5e2ae1.js'; -export { default as baz } from './nested/baz-es-a913ab4d.js'; -export { default as noExt } from './no-ext-es-1f34b6e8.js'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/nested/bar-es-bd5e2ae1.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/nested/bar-es-bd5e2ae1.js deleted file mode 100644 index f383a3735..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/nested/bar-es-bd5e2ae1.js +++ /dev/null @@ -1,3 +0,0 @@ -var bar = 'banana'; - -export { bar as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/nested/baz-es-a913ab4d.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/nested/baz-es-a913ab4d.js deleted file mode 100644 index 11a48a575..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/nested/baz-es-a913ab4d.js +++ /dev/null @@ -1,3 +0,0 @@ -var baz = 'whatever'; - -export { baz as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/foo-system-0e2d8e48.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/foo-system-0e2d8e48.js deleted file mode 100644 index 98793de89..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/foo-system-0e2d8e48.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var foo = exports('default', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/main-system-5684b811.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/main-system-5684b811.js deleted file mode 100644 index c41dd42ae..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/main-system-5684b811.js +++ /dev/null @@ -1,19 +0,0 @@ -System.register(['./foo-system-0e2d8e48.js', './nested/bar-system-a72f6c95.js', './nested/baz-system-71d114fd.js', './no-ext-system-0cf938a8.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('foo', module.default); - }, function (module) { - exports('bar', module.default); - }, function (module) { - exports('baz', module.default); - }, function (module) { - exports('noExt', module.default); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/nested/bar-system-a72f6c95.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/nested/bar-system-a72f6c95.js deleted file mode 100644 index 21575fdff..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/nested/bar-system-a72f6c95.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var bar = exports('default', 'banana'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/nested/baz-system-71d114fd.js b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/nested/baz-system-71d114fd.js deleted file mode 100644 index 54bd1e94e..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/nested/baz-system-71d114fd.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var baz = exports('default', 'whatever'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/foo.ts b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/foo.ts deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/foo.ts +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/main.ts b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/main.ts deleted file mode 100644 index 3f169c8f4..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/main.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @ts-ignore -export { default as foo } from './foo.ts'; -// @ts-ignore -export { default as bar } from './nested/bar.ts'; -// @ts-ignore -export { default as baz } from './nested/baz.ts'; -// @ts-ignore -export { default as noExt } from './no-ext'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/nested/bar.ts b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/nested/bar.ts deleted file mode 100644 index 7d79d5a99..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/nested/bar.ts +++ /dev/null @@ -1 +0,0 @@ -export default 'banana'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/nested/baz.ts b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/nested/baz.ts deleted file mode 100644 index 6d70feca8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/nested/baz.ts +++ /dev/null @@ -1 +0,0 @@ -export default 'whatever'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/no-ext b/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/no-ext deleted file mode 100644 index a59381f72..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/src/no-ext +++ /dev/null @@ -1 +0,0 @@ -export default 'no-ext' diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_config.js deleted file mode 100644 index 2d68e2aac..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_config.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = defineTest({ - description: 'Preserve modules id case sensitive', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true, - plugins: [ - { - resolveId(id) { - if (id.toLowerCase().includes('one')) { - return id; - } - }, - load(id) { - if (id.toLowerCase().includes('one')) { - return `export default '${id.replace('\0', '')}'`; - } - } - } - ] - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_One1.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_One1.js deleted file mode 100644 index c6281aeed..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_One1.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var c = 'One1.js'; - - return c; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_One2.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_One2.js deleted file mode 100644 index e34aacf55..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_One2.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var b = 'One.js'; - - return b; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_one.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_one.js deleted file mode 100644 index 80666603e..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/_virtual/_one.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var a = 'one.js'; - - return a; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/main.js deleted file mode 100644 index 581279681..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./_virtual/_one', './_virtual/_One2', './_virtual/_One1'], (function (_one, _One, _One1) { 'use strict'; - - window.APP = { a: _one, b: _One, c: _One1 }; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_One1.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_One1.js deleted file mode 100644 index 2e2081c7b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_One1.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var c = 'One1.js'; - -module.exports = c; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_One2.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_One2.js deleted file mode 100644 index 94e5e6eeb..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_One2.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var b = 'One.js'; - -module.exports = b; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_one.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_one.js deleted file mode 100644 index 04b4a696e..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/_virtual/_one.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var a = 'one.js'; - -module.exports = a; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/main.js deleted file mode 100644 index d11335251..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/cjs/main.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var _one = require('./_virtual/_one.js'); -var _One = require('./_virtual/_One2.js'); -var _One1 = require('./_virtual/_One1.js'); - -window.APP = { a: _one, b: _One, c: _One1 }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_One1.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_One1.js deleted file mode 100644 index 0a993ba1f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_One1.js +++ /dev/null @@ -1,3 +0,0 @@ -var c = 'One1.js'; - -export { c as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_One2.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_One2.js deleted file mode 100644 index 127ca31fe..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_One2.js +++ /dev/null @@ -1,3 +0,0 @@ -var b = 'One.js'; - -export { b as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_one.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_one.js deleted file mode 100644 index d53f39de1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/_virtual/_one.js +++ /dev/null @@ -1,3 +0,0 @@ -var a = 'one.js'; - -export { a as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/main.js deleted file mode 100644 index e7a751f41..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/es/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import a from './_virtual/_one.js'; -import b from './_virtual/_One2.js'; -import c from './_virtual/_One1.js'; - -window.APP = { a, b, c }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_One1.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_One1.js deleted file mode 100644 index 1f2e04b79..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_One1.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var c = exports('default', 'One1.js'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_One2.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_One2.js deleted file mode 100644 index 1a8a96728..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_One2.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var b = exports('default', 'One.js'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_one.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_one.js deleted file mode 100644 index 5606dfa6b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/_virtual/_one.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var a = exports('default', 'one.js'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/main.js deleted file mode 100644 index df50fc520..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/_expected/system/main.js +++ /dev/null @@ -1,18 +0,0 @@ -System.register(['./_virtual/_one.js', './_virtual/_One2.js', './_virtual/_One1.js'], (function () { - 'use strict'; - var a, b, c; - return { - setters: [function (module) { - a = module.default; - }, function (module) { - b = module.default; - }, function (module) { - c = module.default; - }], - execute: (function () { - - window.APP = { a, b, c }; - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/main.js b/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/main.js deleted file mode 100644 index 49a5f34ff..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-id-case-sensitive/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import a from '\0one.js'; -import b from '\0One.js'; -import c from '\0One1.js'; - -window.APP = { a, b, c }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_config.js deleted file mode 100644 index 6ad3a9ed2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'respects "named" export mode in all chunks when preserving modules', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true, - output: { - exports: 'named' - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/default.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/default.js deleted file mode 100644 index 18d757daa..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/default.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - var foo = 'default'; - - exports.default = foo; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/main.js deleted file mode 100644 index 2b82f1bb6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/main.js +++ /dev/null @@ -1,12 +0,0 @@ -define(['require', 'exports', './default', './named'], (function (require, exports, _default, named) { 'use strict'; - - console.log(_default.default, named.value); - - new Promise(function (resolve, reject) { require(['./default'], resolve, reject); }).then(result => console.log(result.default)); - new Promise(function (resolve, reject) { require(['./named'], resolve, reject); }).then(result => console.log(result.value)); - - exports.default = _default.default; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/named.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/named.js deleted file mode 100644 index 2896dcf10..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/amd/named.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const value = 'named'; - - exports.value = value; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/default.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/default.js deleted file mode 100644 index bc9cb9bdc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/default.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var foo = 'default'; - -exports.default = foo; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/main.js deleted file mode 100644 index 9ff3162ba..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/main.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var _default = require('./default.js'); -var named = require('./named.js'); - -console.log(_default.default, named.value); - -Promise.resolve().then(function () { return require('./default.js'); }).then(result => console.log(result.default)); -Promise.resolve().then(function () { return require('./named.js'); }).then(result => console.log(result.value)); - -exports.default = _default.default; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/named.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/named.js deleted file mode 100644 index ec20bc0d7..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/cjs/named.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const value = 'named'; - -exports.value = value; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/default.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/default.js deleted file mode 100644 index 888d95cb3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/default.js +++ /dev/null @@ -1,3 +0,0 @@ -var foo = 'default'; - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/main.js deleted file mode 100644 index 4aad85561..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/main.js +++ /dev/null @@ -1,9 +0,0 @@ -import foo from './default.js'; -import { value } from './named.js'; - -console.log(foo, value); - -import('./default.js').then(result => console.log(result.default)); -import('./named.js').then(result => console.log(result.value)); - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/named.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/named.js deleted file mode 100644 index f63259007..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/es/named.js +++ /dev/null @@ -1,3 +0,0 @@ -const value = 'named'; - -export { value }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/default.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/default.js deleted file mode 100644 index 5879dd0d6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/default.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var foo = exports('default', 'default'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/main.js deleted file mode 100644 index 16b732c16..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/main.js +++ /dev/null @@ -1,20 +0,0 @@ -System.register(['./default.js', './named.js'], (function (exports, module) { - 'use strict'; - var foo, value; - return { - setters: [function (module) { - foo = module.default; - exports('default', module.default); - }, function (module) { - value = module.value; - }], - execute: (function () { - - console.log(foo, value); - - module.import('./default.js').then(result => console.log(result.default)); - module.import('./named.js').then(result => console.log(result.value)); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/named.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/named.js deleted file mode 100644 index 15ac00621..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/_expected/system/named.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const value = exports('value', 'named'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/default.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/default.js deleted file mode 100644 index 413f601a3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/default.js +++ /dev/null @@ -1 +0,0 @@ -export default 'default'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/main.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/main.js deleted file mode 100644 index 72dc390d8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/main.js +++ /dev/null @@ -1,8 +0,0 @@ -import foo from './default.js'; -import { value } from './named.js'; -console.log(foo, value); - -export { default } from './default.js'; - -import('./default').then(result => console.log(result.default)); -import('./named').then(result => console.log(result.value)); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/named.js b/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/named.js deleted file mode 100644 index a5c403fef..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-named-export-mode/named.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 'named'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_config.js deleted file mode 100644 index 5ec0f7692..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'confirm exports are deconflicted when exporting nested index aliases', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/main.js deleted file mode 100644 index 0a1b6a12c..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/main.js +++ /dev/null @@ -1,8 +0,0 @@ -define(['exports', './module-a/v1/index', './module-b/v1/index'], (function (exports, index, index$1) { 'use strict'; - - - - exports.ModuleA_V1 = index; - exports.ModuleB_V1 = index$1; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/module-a/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/module-a/v1/index.js deleted file mode 100644 index 6b677084b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/module-a/v1/index.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const TEST_MODULE_A = 'A'; - - exports.TEST_MODULE_A = TEST_MODULE_A; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/module-b/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/module-b/v1/index.js deleted file mode 100644 index 5d1b35b6a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/amd/module-b/v1/index.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const TEST_MODULE_B = 'A'; - - exports.TEST_MODULE_B = TEST_MODULE_B; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/main.js deleted file mode 100644 index 85ed071a2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/main.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var index = require('./module-a/v1/index.js'); -var index$1 = require('./module-b/v1/index.js'); - - - -exports.ModuleA_V1 = index; -exports.ModuleB_V1 = index$1; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/module-a/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/module-a/v1/index.js deleted file mode 100644 index 6f57cdac8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/module-a/v1/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const TEST_MODULE_A = 'A'; - -exports.TEST_MODULE_A = TEST_MODULE_A; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/module-b/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/module-b/v1/index.js deleted file mode 100644 index 99cce36ed..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/cjs/module-b/v1/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const TEST_MODULE_B = 'A'; - -exports.TEST_MODULE_B = TEST_MODULE_B; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/main.js deleted file mode 100644 index 537dda397..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import * as index from './module-a/v1/index.js'; -export { index as ModuleA_V1 }; -import * as index$1 from './module-b/v1/index.js'; -export { index$1 as ModuleB_V1 }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/module-a/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/module-a/v1/index.js deleted file mode 100644 index a81583804..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/module-a/v1/index.js +++ /dev/null @@ -1,3 +0,0 @@ -const TEST_MODULE_A = 'A'; - -export { TEST_MODULE_A }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/module-b/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/module-b/v1/index.js deleted file mode 100644 index 338a266e1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/es/module-b/v1/index.js +++ /dev/null @@ -1,3 +0,0 @@ -const TEST_MODULE_B = 'A'; - -export { TEST_MODULE_B }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/main.js deleted file mode 100644 index ef257319d..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/main.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./module-a/v1/index.js', './module-b/v1/index.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('ModuleA_V1', module); - }, function (module) { - exports('ModuleB_V1', module); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/module-a/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/module-a/v1/index.js deleted file mode 100644 index 0f9df3153..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/module-a/v1/index.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const TEST_MODULE_A = exports('TEST_MODULE_A', 'A'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/module-b/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/module-b/v1/index.js deleted file mode 100644 index d5228c075..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/_expected/system/module-b/v1/index.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const TEST_MODULE_B = exports('TEST_MODULE_B', 'A'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/main.js deleted file mode 100644 index 6322b9468..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './module-a/index' -export * from './module-b/index' \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-a/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-a/index.js deleted file mode 100644 index 6bd359daf..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-a/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import * as ModuleA_V1 from './v1/index' - -export { ModuleA_V1 } \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-a/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-a/v1/index.js deleted file mode 100644 index 8bc392c75..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-a/v1/index.js +++ /dev/null @@ -1 +0,0 @@ -export const TEST_MODULE_A = 'A' \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-b/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-b/index.js deleted file mode 100644 index f9b363cdf..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-b/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import * as ModuleB_V1 from './v1/index' - -export { ModuleB_V1 } \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-b/v1/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-b/v1/index.js deleted file mode 100644 index 1d751964f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-barrel-es-export/module-b/v1/index.js +++ /dev/null @@ -1 +0,0 @@ -export const TEST_MODULE_B = 'A' \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_config.js deleted file mode 100644 index 2997fa8cf..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'confirm exports are preserved when exporting a module', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/inner/more_inner/something.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/inner/more_inner/something.js deleted file mode 100644 index 9e690e2c1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/inner/more_inner/something.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const Something = 'Hello World'; - - exports.Something = Something; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/inner/some_effect.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/inner/some_effect.js deleted file mode 100644 index 3edb2a595..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/inner/some_effect.js +++ /dev/null @@ -1,5 +0,0 @@ -define((function () { 'use strict'; - - console.log('side-effect'); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/main.js deleted file mode 100644 index 851960722..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/amd/main.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports', './inner/more_inner/something', './inner/some_effect'], (function (exports, something, some_effect) { 'use strict'; - - - - exports.Something = something.Something; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/inner/more_inner/something.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/inner/more_inner/something.js deleted file mode 100644 index 12aa3ba79..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/inner/more_inner/something.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const Something = 'Hello World'; - -exports.Something = Something; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/inner/some_effect.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/inner/some_effect.js deleted file mode 100644 index 28e48ebec..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/inner/some_effect.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -console.log('side-effect'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/main.js deleted file mode 100644 index affdcc85a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/cjs/main.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var something = require('./inner/more_inner/something.js'); -require('./inner/some_effect.js'); - - - -exports.Something = something.Something; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/inner/more_inner/something.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/inner/more_inner/something.js deleted file mode 100644 index 636a41324..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/inner/more_inner/something.js +++ /dev/null @@ -1,3 +0,0 @@ -const Something = 'Hello World'; - -export { Something }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/inner/some_effect.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/inner/some_effect.js deleted file mode 100644 index 4ca9b41c4..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/inner/some_effect.js +++ /dev/null @@ -1 +0,0 @@ -console.log('side-effect'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/main.js deleted file mode 100644 index efa908a5a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/es/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export { Something } from './inner/more_inner/something.js'; -import './inner/some_effect.js'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/inner/more_inner/something.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/inner/more_inner/something.js deleted file mode 100644 index f087474c2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/inner/more_inner/something.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const Something = exports('Something', 'Hello World'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/inner/some_effect.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/inner/some_effect.js deleted file mode 100644 index f019bf7e7..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/inner/some_effect.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log('side-effect'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/main.js deleted file mode 100644 index 6f66e5852..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/_expected/system/main.js +++ /dev/null @@ -1,13 +0,0 @@ -System.register(['./inner/more_inner/something.js', './inner/some_effect.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('Something', module.Something); - }, null], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/index.js deleted file mode 100644 index b46f14091..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './more_inner/index'; -import './some_effect'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/more_inner/index.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/more_inner/index.js deleted file mode 100644 index 93e297c24..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/more_inner/index.js +++ /dev/null @@ -1 +0,0 @@ -export * from './something'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/more_inner/something.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/more_inner/something.js deleted file mode 100644 index 60e3455d0..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/more_inner/something.js +++ /dev/null @@ -1 +0,0 @@ -export const Something = 'Hello World'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/some_effect.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/some_effect.js deleted file mode 100644 index 4ca9b41c4..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/inner/some_effect.js +++ /dev/null @@ -1 +0,0 @@ -console.log('side-effect'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/main.js b/test/chunking-form/samples/deprecated/preserve-modules-nested-export/main.js deleted file mode 100644 index ee0c76083..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-nested-export/main.js +++ /dev/null @@ -1 +0,0 @@ -export * from './inner/index'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_config.js deleted file mode 100644 index d7e6ce270..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'imports and exports of non-entry points are tracked', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/amd/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/amd/dep2.js deleted file mode 100644 index 4ee99d606..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/amd/dep2.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - function foo() {} - - return foo; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/amd/main.js deleted file mode 100644 index 2121744c9..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/amd/main.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['./dep2'], (function (dep2) { 'use strict'; - - - - return dep2; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/cjs/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/cjs/dep2.js deleted file mode 100644 index d356914dc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/cjs/dep2.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -function foo() {} - -module.exports = foo; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/cjs/main.js deleted file mode 100644 index 663b040c9..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/cjs/main.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var dep2 = require('./dep2.js'); - - - -module.exports = dep2; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/es/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/es/dep2.js deleted file mode 100644 index 4987d698d..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/es/dep2.js +++ /dev/null @@ -1,3 +0,0 @@ -function foo() {} - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/es/main.js deleted file mode 100644 index 46cbf60f1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/es/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import foo from './dep2.js'; - - - -export { foo as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/system/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/system/dep2.js deleted file mode 100644 index 704c184b6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/system/dep2.js +++ /dev/null @@ -1,12 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - exports('default', foo); - - function foo() {} - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/system/main.js deleted file mode 100644 index 5efe40310..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/_expected/system/main.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./dep2.js'], (function (exports) { - 'use strict'; - var foo; - return { - setters: [function (module) { - foo = module.default; - exports('default', module.default); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/dep1.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/dep1.js deleted file mode 100644 index 2c5a157d2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/dep1.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from './dep2'; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/dep2.js deleted file mode 100644 index a5e4ff338..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/dep2.js +++ /dev/null @@ -1 +0,0 @@ -export default function() {}; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/main.js b/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/main.js deleted file mode 100644 index 24640f29f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-non-entry-imports/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import foo from './dep1'; - -export default foo; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_config.js deleted file mode 100644 index 951a6d939..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = defineTest({ - description: - 'correctly resolves imports via a proxy module as direct imports when preserving modules', - options: { - strictDeprecations: false, - preserveModules: true, - external: 'external' - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/amd/main.js deleted file mode 100644 index b58d356d5..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/amd/main.js +++ /dev/null @@ -1,6 +0,0 @@ -define(['external'], (function (path) { 'use strict'; - - console.log(path.normalize('foo\\bar')); - console.log(path.normalize('foo\\bar')); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/amd/proxy.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/amd/proxy.js deleted file mode 100644 index 40b6b7b8b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/amd/proxy.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['external'], (function (path) { 'use strict'; - - - - return path; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/cjs/main.js deleted file mode 100644 index 7db07e727..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/cjs/main.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var path = require('external'); - -console.log(path.normalize('foo\\bar')); -console.log(path.normalize('foo\\bar')); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/cjs/proxy.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/cjs/proxy.js deleted file mode 100644 index de6089fad..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/cjs/proxy.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var path = require('external'); - - - -module.exports = path; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/es/main.js deleted file mode 100644 index 57a9f2785..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/es/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import path from 'external'; - -console.log(path.normalize('foo\\bar')); -console.log(path.normalize('foo\\bar')); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/es/proxy.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/es/proxy.js deleted file mode 100644 index 0b1c97e9b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/es/proxy.js +++ /dev/null @@ -1,2 +0,0 @@ -import path from 'external'; -export { default } from 'external'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/system/main.js deleted file mode 100644 index 1955da8f2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/system/main.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['external'], (function () { - 'use strict'; - var path; - return { - setters: [function (module) { - path = module.default; - }], - execute: (function () { - - console.log(path.normalize('foo\\bar')); - console.log(path.normalize('foo\\bar')); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/system/proxy.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/system/proxy.js deleted file mode 100644 index 1f83348dc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/_expected/system/proxy.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['external'], (function (exports) { - 'use strict'; - var path; - return { - setters: [function (module) { - path = module.default; - exports('default', module.default); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/main.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/main.js deleted file mode 100644 index 288bd4a16..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import path from 'external'; -import proxyPath from './proxy'; - -console.log(path.normalize('foo\\bar')); -console.log(proxyPath.normalize('foo\\bar')); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/proxy.js b/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/proxy.js deleted file mode 100644 index 4635dc5b4..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-proxy-import/proxy.js +++ /dev/null @@ -1,2 +0,0 @@ -import path from 'external'; -export default path; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_config.js deleted file mode 100644 index 804c626e7..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'change the module destination', - options: { - strictDeprecations: false, - input: 'src/lib/main.js', - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/amd/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/amd/dep.js deleted file mode 100644 index e919531b9..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/amd/dep.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - function fn () { - console.log('dep fn'); - } - - exports.fn = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/amd/lib/main.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/amd/lib/main.js deleted file mode 100644 index 7530d2bf1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/amd/lib/main.js +++ /dev/null @@ -1,11 +0,0 @@ -define(['../dep'], (function (dep) { 'use strict'; - - class Main { - constructor () { - dep.fn(); - } - } - - return Main; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/cjs/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/cjs/dep.js deleted file mode 100644 index 119bca3dd..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/cjs/dep.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function fn () { - console.log('dep fn'); -} - -exports.fn = fn; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/cjs/lib/main.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/cjs/lib/main.js deleted file mode 100644 index fb6e31f3a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/cjs/lib/main.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var dep = require('../dep.js'); - -class Main { - constructor () { - dep.fn(); - } -} - -module.exports = Main; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/es/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/es/dep.js deleted file mode 100644 index bfe925a46..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/es/dep.js +++ /dev/null @@ -1,5 +0,0 @@ -function fn () { - console.log('dep fn'); -} - -export { fn }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/es/lib/main.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/es/lib/main.js deleted file mode 100644 index 7e0751fbc..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/es/lib/main.js +++ /dev/null @@ -1,9 +0,0 @@ -import { fn } from '../dep.js'; - -class Main { - constructor () { - fn(); - } -} - -export { Main as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/system/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/system/dep.js deleted file mode 100644 index 8c38ad144..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/system/dep.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - exports('fn', fn); - - function fn () { - console.log('dep fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/system/lib/main.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/system/lib/main.js deleted file mode 100644 index 440f4c9f9..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/_expected/system/lib/main.js +++ /dev/null @@ -1,18 +0,0 @@ -System.register(['../dep.js'], (function (exports) { - 'use strict'; - var fn; - return { - setters: [function (module) { - fn = module.fn; - }], - execute: (function () { - - class Main { - constructor () { - fn(); - } - } exports('default', Main); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/src/dep.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/src/dep.js deleted file mode 100644 index b725c96e3..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/src/dep.js +++ /dev/null @@ -1,3 +0,0 @@ -export function fn () { - console.log('dep fn'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/src/lib/main.js b/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/src/lib/main.js deleted file mode 100644 index a8f1f1403..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-reaching-outside/src/lib/main.js +++ /dev/null @@ -1,7 +0,0 @@ -import { fn } from '../dep'; - -export default class Main { - constructor () { - fn(); - } -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_config.js deleted file mode 100644 index 53398ea68..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_config.js +++ /dev/null @@ -1,32 +0,0 @@ -const path = require('node:path'); - -module.exports = defineTest({ - description: 'scriptified assets have extension in preserveModules output filename', - options: { - strictDeprecations: false, - input: 'src/main.js', - preserveModules: true, - plugins: [ - { - name: 'str-num-plugin', - transform(code, id) { - switch (path.extname(id)) { - case '.num': { - return { code: `export default ${code.trim()}` }; - } - case '.str': { - return { code: `export default "${code.trim()}"` }; - } - case '': { - return { code: 'export default "COULDN\'T TRANSFORM"' }; - } - default: { - return null; - } - } - } - } - ] - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/answer.num.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/answer.num.js deleted file mode 100644 index 29099bd21..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/answer.num.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var answer = 42; - - return answer; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/lorem.str.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/lorem.str.js deleted file mode 100644 index 82deb072e..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/lorem.str.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; - - return lorem; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/main.js deleted file mode 100644 index 11b93e1ce..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/main.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports', './answer.num', './lorem.str', './no-ext'], (function (exports, answer, lorem, noExt) { 'use strict'; - - - - exports.answer = answer; - exports.lorem = lorem; - exports.noExt = noExt; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/no-ext.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/no-ext.js deleted file mode 100644 index 2395eddcd..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/amd/no-ext.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var noExt = "COULDN'T TRANSFORM"; - - return noExt; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/answer.num.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/answer.num.js deleted file mode 100644 index afe78ce40..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/answer.num.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var answer = 42; - -module.exports = answer; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/lorem.str.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/lorem.str.js deleted file mode 100644 index aa3ea036c..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/lorem.str.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; - -module.exports = lorem; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/main.js deleted file mode 100644 index 463a11a27..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/main.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var answer = require('./answer.num.js'); -var lorem = require('./lorem.str.js'); -var noExt = require('./no-ext.js'); - - - -exports.answer = answer; -exports.lorem = lorem; -exports.noExt = noExt; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/no-ext.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/no-ext.js deleted file mode 100644 index 912e8df3b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/cjs/no-ext.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var noExt = "COULDN'T TRANSFORM"; - -module.exports = noExt; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/answer.num.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/answer.num.js deleted file mode 100644 index bc6c6c354..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/answer.num.js +++ /dev/null @@ -1,3 +0,0 @@ -var answer = 42; - -export { answer as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/lorem.str.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/lorem.str.js deleted file mode 100644 index 20a4e34f1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/lorem.str.js +++ /dev/null @@ -1,3 +0,0 @@ -var lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; - -export { lorem as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/main.js deleted file mode 100644 index 76d97e13f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/main.js +++ /dev/null @@ -1,3 +0,0 @@ -export { default as answer } from './answer.num.js'; -export { default as lorem } from './lorem.str.js'; -export { default as noExt } from './no-ext.js'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/no-ext.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/no-ext.js deleted file mode 100644 index 10cc7f585..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/es/no-ext.js +++ /dev/null @@ -1,3 +0,0 @@ -var noExt = "COULDN'T TRANSFORM"; - -export { noExt as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/answer.num.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/answer.num.js deleted file mode 100644 index 80f714d45..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/answer.num.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var answer = exports('default', 42); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/lorem.str.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/lorem.str.js deleted file mode 100644 index 4138e51e2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/lorem.str.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var lorem = exports('default', "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/main.js deleted file mode 100644 index 7dd7f91b8..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/main.js +++ /dev/null @@ -1,17 +0,0 @@ -System.register(['./answer.num.js', './lorem.str.js', './no-ext.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('answer', module.default); - }, function (module) { - exports('lorem', module.default); - }, function (module) { - exports('noExt', module.default); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/no-ext.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/no-ext.js deleted file mode 100644 index adc4e116f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/_expected/system/no-ext.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var noExt = exports('default', "COULDN'T TRANSFORM"); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/answer.num b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/answer.num deleted file mode 100644 index d81cc0710..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/answer.num +++ /dev/null @@ -1 +0,0 @@ -42 diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/lorem.str b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/lorem.str deleted file mode 100644 index 1b376877f..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/lorem.str +++ /dev/null @@ -1 +0,0 @@ -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/main.js b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/main.js deleted file mode 100644 index 7ebfc9b7c..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/main.js +++ /dev/null @@ -1,3 +0,0 @@ -export { default as answer } from './answer.num'; -export { default as lorem } from './lorem.str'; -export { default as noExt } from './no-ext'; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/no-ext b/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/no-ext deleted file mode 100644 index ec25b34db..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-scriptified-assets/src/no-ext +++ /dev/null @@ -1 +0,0 @@ -WHATEVER diff --git a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_config.js deleted file mode 100644 index 3391dffa7..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'single entry names file correctly', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/amd/main.js deleted file mode 100644 index 7b0ad1252..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define((function () { 'use strict'; - - console.log(); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/cjs/main.js deleted file mode 100644 index 21c7c3af0..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/cjs/main.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -console.log(); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/es/main.js deleted file mode 100644 index b7bd4c885..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/es/main.js +++ /dev/null @@ -1 +0,0 @@ -console.log(); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/system/main.js deleted file mode 100644 index 1063ea641..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/_expected/system/main.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log(); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/main.js b/test/chunking-form/samples/deprecated/preserve-modules-single-entry/main.js deleted file mode 100644 index 13ae9bfee..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-single-entry/main.js +++ /dev/null @@ -1 +0,0 @@ -console.log() \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_config.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_config.js deleted file mode 100644 index c9dc6418c..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_config.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = defineTest({ - description: 'Generates actual files for virtual modules when preserving modules', - options: { - strictDeprecations: false, - input: 'main.js', - preserveModules: true, - plugins: [ - { - resolveId(id) { - if (id === '\0virtualModule') return id; - }, - load(id) { - if (id !== '\0virtualModule') return null; - return 'export const virtual = "Virtual!";\n'; - }, - transform(code, id) { - if (id === '\0virtualModule') return null; - return 'import {virtual} from "\0virtualModule";\n' + code; - } - } - ] - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/main.js deleted file mode 100644 index 744ca4ba5..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/main.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./_virtual/_virtualModule'], (function (_virtualModule) { 'use strict'; - - assert.equal(_virtualModule.virtual, 'Virtual!'); - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/main.js deleted file mode 100644 index a3d4133c5..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/main.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var _virtualModule = require('./_virtual/_virtualModule.js'); - -assert.equal(_virtualModule.virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/main.js deleted file mode 100644 index 96f7b3317..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { virtual } from './_virtual/_virtualModule.js'; - -assert.equal(virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/main.js deleted file mode 100644 index f92fd6039..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/main.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register(['./_virtual/_virtualModule.js'], (function () { - 'use strict'; - var virtual; - return { - setters: [function (module) { - virtual = module.virtual; - }], - execute: (function () { - - assert.equal(virtual, 'Virtual!'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/main.js deleted file mode 100644 index 505982998..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/main.js +++ /dev/null @@ -1 +0,0 @@ -assert.equal(virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_config.js b/test/chunking-form/samples/deprecated/preserve-modules/_config.js deleted file mode 100644 index f43884893..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'Rewrite modules in-place', - options: { - strictDeprecations: false, - input: ['main1.js', 'main2.js'], - preserveModules: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep1.js deleted file mode 100644 index 59783d02d..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep1.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - function fn () { - console.log('dep1 fn'); - } - - exports.fn = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep2.js deleted file mode 100644 index 2ab2557ab..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep2.js +++ /dev/null @@ -1,10 +0,0 @@ -define(['exports', '../lib/lib2'], (function (exports, lib2) { 'use strict'; - - function fn () { - lib2.fn(); - console.log('dep2 fn'); - } - - exports.fn = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep3.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep3.js deleted file mode 100644 index 3b871ce76..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/deps/dep3.js +++ /dev/null @@ -1,10 +0,0 @@ -define(['exports', '../lib/lib1'], (function (exports, lib1) { 'use strict'; - - function fn () { - lib1.fn(); - console.log('dep3 fn'); - } - - exports.fn = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/lib/lib1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/lib/lib1.js deleted file mode 100644 index 6d846653c..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/lib/lib1.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - function fn () { - console.log('lib1 fn'); - } - - exports.fn = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/lib/lib2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/lib/lib2.js deleted file mode 100644 index be6d55fa4..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/lib/lib2.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - function fn () { - console.log('lib2 fn'); - } - - exports.fn = fn; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/main1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/main1.js deleted file mode 100644 index 296879eff..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/main1.js +++ /dev/null @@ -1,12 +0,0 @@ -define(['./deps/dep1', './deps/dep2'], (function (dep1, dep2) { 'use strict'; - - class Main1 { - constructor () { - dep1.fn(); - dep2.fn(); - } - } - - return Main1; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/main2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/main2.js deleted file mode 100644 index adff70c23..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/amd/main2.js +++ /dev/null @@ -1,12 +0,0 @@ -define(['./deps/dep2', './deps/dep3'], (function (dep2, dep3) { 'use strict'; - - class Main2 { - constructor () { - dep3.fn(); - dep2.fn(); - } - } - - return Main2; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep1.js deleted file mode 100644 index 5d2f022fa..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep1.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function fn () { - console.log('dep1 fn'); -} - -exports.fn = fn; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep2.js deleted file mode 100644 index 1c35a7c28..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep2.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var lib2 = require('../lib/lib2.js'); - -function fn () { - lib2.fn(); - console.log('dep2 fn'); -} - -exports.fn = fn; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep3.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep3.js deleted file mode 100644 index 9459cf55d..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/deps/dep3.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var lib1 = require('../lib/lib1.js'); - -function fn () { - lib1.fn(); - console.log('dep3 fn'); -} - -exports.fn = fn; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/lib/lib1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/lib/lib1.js deleted file mode 100644 index 6a9d99129..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/lib/lib1.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function fn () { - console.log('lib1 fn'); -} - -exports.fn = fn; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/lib/lib2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/lib/lib2.js deleted file mode 100644 index cf6e36b03..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/lib/lib2.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function fn () { - console.log('lib2 fn'); -} - -exports.fn = fn; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/main1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/main1.js deleted file mode 100644 index 0181b38e2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/main1.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var dep1 = require('./deps/dep1.js'); -var dep2 = require('./deps/dep2.js'); - -class Main1 { - constructor () { - dep1.fn(); - dep2.fn(); - } -} - -module.exports = Main1; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/main2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/main2.js deleted file mode 100644 index 5078fc785..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/cjs/main2.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var dep2 = require('./deps/dep2.js'); -var dep3 = require('./deps/dep3.js'); - -class Main2 { - constructor () { - dep3.fn(); - dep2.fn(); - } -} - -module.exports = Main2; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep1.js deleted file mode 100644 index 34a5e9c11..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep1.js +++ /dev/null @@ -1,5 +0,0 @@ -function fn () { - console.log('dep1 fn'); -} - -export { fn }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep2.js deleted file mode 100644 index 233b8235a..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep2.js +++ /dev/null @@ -1,8 +0,0 @@ -import { fn as fn$1 } from '../lib/lib2.js'; - -function fn () { - fn$1(); - console.log('dep2 fn'); -} - -export { fn }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep3.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep3.js deleted file mode 100644 index e01b47ef1..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/deps/dep3.js +++ /dev/null @@ -1,8 +0,0 @@ -import { fn as fn$1 } from '../lib/lib1.js'; - -function fn () { - fn$1(); - console.log('dep3 fn'); -} - -export { fn }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/lib/lib1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/lib/lib1.js deleted file mode 100644 index 0d869dbec..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/lib/lib1.js +++ /dev/null @@ -1,5 +0,0 @@ -function fn () { - console.log('lib1 fn'); -} - -export { fn }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/lib/lib2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/lib/lib2.js deleted file mode 100644 index a6f4f0324..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/lib/lib2.js +++ /dev/null @@ -1,5 +0,0 @@ -function fn () { - console.log('lib2 fn'); -} - -export { fn }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/main1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/main1.js deleted file mode 100644 index a7780fee2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/main1.js +++ /dev/null @@ -1,11 +0,0 @@ -import { fn } from './deps/dep1.js'; -import { fn as fn$1 } from './deps/dep2.js'; - -class Main1 { - constructor () { - fn(); - fn$1(); - } -} - -export { Main1 as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/main2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/main2.js deleted file mode 100644 index 4e89541f0..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/es/main2.js +++ /dev/null @@ -1,11 +0,0 @@ -import { fn as fn$1 } from './deps/dep2.js'; -import { fn } from './deps/dep3.js'; - -class Main2 { - constructor () { - fn(); - fn$1(); - } -} - -export { Main2 as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep1.js deleted file mode 100644 index 30f5932b2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep1.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - exports('fn', fn); - - function fn () { - console.log('dep1 fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep2.js deleted file mode 100644 index 266a74dbe..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep2.js +++ /dev/null @@ -1,19 +0,0 @@ -System.register(['../lib/lib2.js'], (function (exports) { - 'use strict'; - var fn$1; - return { - setters: [function (module) { - fn$1 = module.fn; - }], - execute: (function () { - - exports('fn', fn); - - function fn () { - fn$1(); - console.log('dep2 fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep3.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep3.js deleted file mode 100644 index c7293a4ee..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/deps/dep3.js +++ /dev/null @@ -1,19 +0,0 @@ -System.register(['../lib/lib1.js'], (function (exports) { - 'use strict'; - var fn$1; - return { - setters: [function (module) { - fn$1 = module.fn; - }], - execute: (function () { - - exports('fn', fn); - - function fn () { - fn$1(); - console.log('dep3 fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/lib/lib1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/lib/lib1.js deleted file mode 100644 index 38247e531..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/lib/lib1.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - exports('fn', fn); - - function fn () { - console.log('lib1 fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/lib/lib2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/lib/lib2.js deleted file mode 100644 index 942fe4550..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/lib/lib2.js +++ /dev/null @@ -1,14 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - exports('fn', fn); - - function fn () { - console.log('lib2 fn'); - } - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/main1.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/main1.js deleted file mode 100644 index a8ee090a6..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/main1.js +++ /dev/null @@ -1,21 +0,0 @@ -System.register(['./deps/dep1.js', './deps/dep2.js'], (function (exports) { - 'use strict'; - var fn, fn$1; - return { - setters: [function (module) { - fn = module.fn; - }, function (module) { - fn$1 = module.fn; - }], - execute: (function () { - - class Main1 { - constructor () { - fn(); - fn$1(); - } - } exports('default', Main1); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/main2.js b/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/main2.js deleted file mode 100644 index b2fe3e012..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/_expected/system/main2.js +++ /dev/null @@ -1,21 +0,0 @@ -System.register(['./deps/dep2.js', './deps/dep3.js'], (function (exports) { - 'use strict'; - var fn$1, fn; - return { - setters: [function (module) { - fn$1 = module.fn; - }, function (module) { - fn = module.fn; - }], - execute: (function () { - - class Main2 { - constructor () { - fn(); - fn$1(); - } - } exports('default', Main2); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules/deps/dep1.js b/test/chunking-form/samples/deprecated/preserve-modules/deps/dep1.js deleted file mode 100644 index b67d0bbb2..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/deps/dep1.js +++ /dev/null @@ -1,3 +0,0 @@ -export function fn () { - console.log('dep1 fn'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules/deps/dep2.js b/test/chunking-form/samples/deprecated/preserve-modules/deps/dep2.js deleted file mode 100644 index 031534c44..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/deps/dep2.js +++ /dev/null @@ -1,6 +0,0 @@ -import { fn as libfn } from '../lib/lib2.js'; - -export function fn () { - libfn(); - console.log('dep2 fn'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules/deps/dep3.js b/test/chunking-form/samples/deprecated/preserve-modules/deps/dep3.js deleted file mode 100644 index 0ebd9320b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/deps/dep3.js +++ /dev/null @@ -1,8 +0,0 @@ -import { fn as libfn, treeshaked } from '../lib/lib1.js'; - -export function fn () { - libfn(); - console.log('dep3 fn'); -} - -export default treeshaked; \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules/lib/lib1.js b/test/chunking-form/samples/deprecated/preserve-modules/lib/lib1.js deleted file mode 100644 index 5ccf83b35..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/lib/lib1.js +++ /dev/null @@ -1,7 +0,0 @@ -export function fn () { - console.log('lib1 fn'); -} - -export function treeshaked () { - console.log('this is tree shaken!'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules/lib/lib2.js b/test/chunking-form/samples/deprecated/preserve-modules/lib/lib2.js deleted file mode 100644 index 2d6d2cf08..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/lib/lib2.js +++ /dev/null @@ -1,3 +0,0 @@ -export function fn () { - console.log('lib2 fn'); -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules/main1.js b/test/chunking-form/samples/deprecated/preserve-modules/main1.js deleted file mode 100644 index dfbcdf631..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/main1.js +++ /dev/null @@ -1,9 +0,0 @@ -import { fn } from './deps/dep1.js'; -import { fn as fn2 } from './deps/dep2.js'; - -export default class Main1 { - constructor () { - fn(); - fn2(); - } -} \ No newline at end of file diff --git a/test/chunking-form/samples/deprecated/preserve-modules/main2.js b/test/chunking-form/samples/deprecated/preserve-modules/main2.js deleted file mode 100644 index 67202404b..000000000 --- a/test/chunking-form/samples/deprecated/preserve-modules/main2.js +++ /dev/null @@ -1,13 +0,0 @@ -import { fn } from './deps/dep2.js'; -import { fn as fn2, default as treeshaked } from './deps/dep3.js'; - -if (false) { - treeshaked(); -} - -export default class Main2 { - constructor () { - fn2(); - fn(); - } -} \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/asset-file-names/_expected/amd/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/asset-file-names/_expected/amd/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/asset-file-names/_expected/amd/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/asset-file-names/_expected/amd/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/asset-file-names/_expected/cjs/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/asset-file-names/_expected/cjs/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/asset-file-names/_expected/cjs/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/asset-file-names/_expected/cjs/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/asset-file-names/_expected/es/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/asset-file-names/_expected/es/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/asset-file-names/_expected/es/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/asset-file-names/_expected/es/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/asset-file-names/_expected/system/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/asset-file-names/_expected/system/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/asset-file-names/_expected/system/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/asset-file-names/_expected/system/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_config.js b/test/chunking-form/samples/emit-file/deduplicate-assets/_config.js index 7c018f631..82d5f081f 100644 --- a/test/chunking-form/samples/emit-file/deduplicate-assets/_config.js +++ b/test/chunking-form/samples/emit-file/deduplicate-assets/_config.js @@ -69,37 +69,37 @@ module.exports = defineTest({ return null; }, generateBundle() { - assert.strictEqual(this.getFileName(string1Id), 'assets/string1-473287f8.txt', 'string1'); - assert.strictEqual(this.getFileName(string2Id), 'assets/string1-473287f8.txt', 'string2'); + assert.strictEqual(this.getFileName(string1Id), 'assets/string1-PAAt4eb8.txt', 'string1'); + assert.strictEqual(this.getFileName(string2Id), 'assets/string1-PAAt4eb8.txt', 'string2'); assert.strictEqual( this.getFileName(stringSameSourceId), - 'assets/string1-473287f8.txt', + 'assets/string1-PAAt4eb8.txt', 'stringSameSource' ); assert.strictEqual( this.getFileName(sameStringAsBufferId), - 'assets/string1-473287f8.txt', + 'assets/string1-PAAt4eb8.txt', 'sameStringAsBuffer' ); assert.strictEqual( this.getFileName(otherStringId), - 'assets/otherString-e296c1ca.txt', + 'assets/otherString-PiT4klzx.txt', 'otherString' ); - assert.strictEqual(this.getFileName(bufferId), 'assets/buffer-d0ca8c2a.txt', 'buffer'); + assert.strictEqual(this.getFileName(bufferId), 'assets/buffer-fV9J_shM.txt', 'buffer'); assert.strictEqual( this.getFileName(bufferSameSourceId), - 'assets/buffer-d0ca8c2a.txt', + 'assets/buffer-fV9J_shM.txt', 'bufferSameSource' ); assert.strictEqual( this.getFileName(sameBufferAsStringId), - 'assets/buffer-d0ca8c2a.txt', + 'assets/buffer-fV9J_shM.txt', 'sameBufferAsString' ); assert.strictEqual( this.getFileName(otherBufferId), - 'assets/otherBuffer-e8d9b528.txt', + 'assets/otherBuffer-Oh78Hjdg.txt', 'otherBuffer' ); } diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/buffer-d0ca8c2a.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/buffer-fV9J_shM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/buffer-d0ca8c2a.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/buffer-fV9J_shM.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherBuffer-e8d9b528.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherBuffer-Oh78Hjdg.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherBuffer-e8d9b528.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherBuffer-Oh78Hjdg.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherString-e296c1ca.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherString-PiT4klzx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherString-e296c1ca.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/otherString-PiT4klzx.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/string1-473287f8.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/string1-PAAt4eb8.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/string1-473287f8.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/amd/assets/string1-PAAt4eb8.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/buffer-d0ca8c2a.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/buffer-fV9J_shM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/buffer-d0ca8c2a.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/buffer-fV9J_shM.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherBuffer-e8d9b528.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherBuffer-Oh78Hjdg.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherBuffer-e8d9b528.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherBuffer-Oh78Hjdg.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherString-e296c1ca.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherString-PiT4klzx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherString-e296c1ca.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/otherString-PiT4klzx.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/string1-473287f8.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/string1-PAAt4eb8.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/string1-473287f8.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/cjs/assets/string1-PAAt4eb8.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/buffer-d0ca8c2a.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/buffer-fV9J_shM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/buffer-d0ca8c2a.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/buffer-fV9J_shM.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherBuffer-e8d9b528.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherBuffer-Oh78Hjdg.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherBuffer-e8d9b528.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherBuffer-Oh78Hjdg.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherString-e296c1ca.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherString-PiT4klzx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherString-e296c1ca.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/otherString-PiT4klzx.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/string1-473287f8.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/string1-PAAt4eb8.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/string1-473287f8.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/es/assets/string1-PAAt4eb8.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/buffer-d0ca8c2a.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/buffer-fV9J_shM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/buffer-d0ca8c2a.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/buffer-fV9J_shM.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherBuffer-e8d9b528.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherBuffer-Oh78Hjdg.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherBuffer-e8d9b528.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherBuffer-Oh78Hjdg.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherString-e296c1ca.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherString-PiT4klzx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherString-e296c1ca.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/otherString-PiT4klzx.txt diff --git a/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/string1-473287f8.txt b/test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/string1-PAAt4eb8.txt similarity index 100% rename from test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/string1-473287f8.txt rename to test/chunking-form/samples/emit-file/deduplicate-assets/_expected/system/assets/string1-PAAt4eb8.txt diff --git a/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/amd/assets/asset-b94d27b9 b/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/amd/assets/asset-x7YVzHWH similarity index 100% rename from test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/amd/assets/asset-b94d27b9 rename to test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/amd/assets/asset-x7YVzHWH diff --git a/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/cjs/assets/asset-b94d27b9 b/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/cjs/assets/asset-x7YVzHWH similarity index 100% rename from test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/cjs/assets/asset-b94d27b9 rename to test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/cjs/assets/asset-x7YVzHWH diff --git a/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/es/assets/asset-b94d27b9 b/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/es/assets/asset-x7YVzHWH similarity index 100% rename from test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/es/assets/asset-b94d27b9 rename to test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/es/assets/asset-x7YVzHWH diff --git a/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/system/assets/asset-b94d27b9 b/test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/system/assets/asset-x7YVzHWH similarity index 100% rename from test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/system/assets/asset-b94d27b9 rename to test/chunking-form/samples/emit-file/emit-asset-without-name/_expected/system/assets/asset-x7YVzHWH diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildEnd-6e08d992.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildEnd-bjZfkWaR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildEnd-6e08d992.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildEnd-bjZfkWaR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildStart-db9421f6.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildStart-jUsAaHhv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildStart-db9421f6.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/buildStart-jUsAaHhv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/generateBundle-5b9a4e56.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/generateBundle-YC5K5IqI.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/generateBundle-5b9a4e56.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/generateBundle-YC5K5IqI.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/load-0cf67fc7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/load-f5EgoTqv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/load-0cf67fc7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/load-f5EgoTqv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/resolveId-dd9bb7f8.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/resolveId-go8NkbCx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/resolveId-dd9bb7f8.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/resolveId-go8NkbCx.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/transform-aa214ea3.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/transform-PQ2olIjk.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/transform-aa214ea3.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/amd/assets/transform-PQ2olIjk.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildEnd-6e08d992.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildEnd-bjZfkWaR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildEnd-6e08d992.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildEnd-bjZfkWaR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildStart-db9421f6.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildStart-jUsAaHhv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildStart-db9421f6.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/buildStart-jUsAaHhv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/generateBundle-5b9a4e56.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/generateBundle-YC5K5IqI.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/generateBundle-5b9a4e56.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/generateBundle-YC5K5IqI.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/load-0cf67fc7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/load-f5EgoTqv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/load-0cf67fc7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/load-f5EgoTqv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/resolveId-dd9bb7f8.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/resolveId-go8NkbCx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/resolveId-dd9bb7f8.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/resolveId-go8NkbCx.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/transform-aa214ea3.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/transform-PQ2olIjk.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/transform-aa214ea3.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/cjs/assets/transform-PQ2olIjk.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildEnd-6e08d992.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildEnd-bjZfkWaR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildEnd-6e08d992.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildEnd-bjZfkWaR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildStart-db9421f6.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildStart-jUsAaHhv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildStart-db9421f6.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/buildStart-jUsAaHhv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/generateBundle-5b9a4e56.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/generateBundle-YC5K5IqI.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/generateBundle-5b9a4e56.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/generateBundle-YC5K5IqI.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/load-0cf67fc7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/load-f5EgoTqv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/load-0cf67fc7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/load-f5EgoTqv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/resolveId-dd9bb7f8.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/resolveId-go8NkbCx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/resolveId-dd9bb7f8.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/resolveId-go8NkbCx.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/transform-aa214ea3.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/transform-PQ2olIjk.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/transform-aa214ea3.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/es/assets/transform-PQ2olIjk.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildEnd-6e08d992.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildEnd-bjZfkWaR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildEnd-6e08d992.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildEnd-bjZfkWaR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildStart-db9421f6.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildStart-jUsAaHhv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildStart-db9421f6.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/buildStart-jUsAaHhv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/generateBundle-5b9a4e56.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/generateBundle-YC5K5IqI.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/generateBundle-5b9a4e56.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/generateBundle-YC5K5IqI.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/load-0cf67fc7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/load-f5EgoTqv.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/load-0cf67fc7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/load-f5EgoTqv.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/resolveId-dd9bb7f8.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/resolveId-go8NkbCx.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/resolveId-dd9bb7f8.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/resolveId-go8NkbCx.txt diff --git a/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/transform-aa214ea3.txt b/test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/transform-PQ2olIjk.txt similarity index 100% rename from test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/transform-aa214ea3.txt rename to test/chunking-form/samples/emit-file/emits-files-from-various-hooks/_expected/system/assets/transform-PQ2olIjk.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/amd/assets/test-b94d27b9.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/amd/assets/test-x7YVzHWH.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/amd/assets/test-b94d27b9.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/amd/assets/test-x7YVzHWH.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/cjs/assets/test-b94d27b9.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/cjs/assets/test-x7YVzHWH.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/cjs/assets/test-b94d27b9.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/cjs/assets/test-x7YVzHWH.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/es/assets/test-b94d27b9.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/es/assets/test-x7YVzHWH.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/es/assets/test-b94d27b9.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/es/assets/test-x7YVzHWH.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/system/assets/test-b94d27b9.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/system/assets/test-x7YVzHWH.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/system/assets/test-b94d27b9.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns-preserve-modules/_expected/system/assets/test-x7YVzHWH.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/chunk-deb-87ce45a9-amd.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/chunk-deb-9YxNr2n5-amd.js similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/chunk-deb-87ce45a9-amd.js rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/chunk-deb-9YxNr2n5-amd.js diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/entry-main-2WHbe7ly-amd.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/entry-main-2WHbe7ly-amd.js new file mode 100644 index 000000000..a8e20401a --- /dev/null +++ b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/entry-main-2WHbe7ly-amd.js @@ -0,0 +1,6 @@ +define(['require'], (function (require) { 'use strict'; + + console.log('main'); + new Promise(function (resolve, reject) { require(['./chunk-deb-9YxNr2n5-amd'], resolve, reject); }).then(console.log); + +})); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/entry-main-70ac024b-amd.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/entry-main-70ac024b-amd.js deleted file mode 100644 index bed6a1ef6..000000000 --- a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/entry-main-70ac024b-amd.js +++ /dev/null @@ -1,6 +0,0 @@ -define(['require'], (function (require) { 'use strict'; - - console.log('main'); - new Promise(function (resolve, reject) { require(['./chunk-deb-87ce45a9-amd'], resolve, reject); }).then(console.log); - -})); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/amd/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/chunk-deb-69905607-cjs.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/chunk-deb-KO3me1q0-cjs.js similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/chunk-deb-69905607-cjs.js rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/chunk-deb-KO3me1q0-cjs.js diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/entry-main-780766d3-cjs.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/entry-main-780766d3-cjs.js deleted file mode 100644 index e28e6fa0c..000000000 --- a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/entry-main-780766d3-cjs.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -console.log('main'); -Promise.resolve().then(function () { return require('./chunk-deb-69905607-cjs.js'); }).then(console.log); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/entry-main-GKdCatel-cjs.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/entry-main-GKdCatel-cjs.js new file mode 100644 index 000000000..8bf670103 --- /dev/null +++ b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/entry-main-GKdCatel-cjs.js @@ -0,0 +1,4 @@ +'use strict'; + +console.log('main'); +Promise.resolve().then(function () { return require('./chunk-deb-KO3me1q0-cjs.js'); }).then(console.log); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/cjs/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/chunk-deb-9f85baf7-es.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/chunk-deb-3ItlXRQy-es.js similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/chunk-deb-9f85baf7-es.js rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/chunk-deb-3ItlXRQy-es.js diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/entry-main-080ad38c-es.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/entry-main-080ad38c-es.js deleted file mode 100644 index 0e182cf58..000000000 --- a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/entry-main-080ad38c-es.js +++ /dev/null @@ -1,2 +0,0 @@ -console.log('main'); -import('./chunk-deb-9f85baf7-es.js').then(console.log); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/entry-main-mA3J9obY-es.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/entry-main-mA3J9obY-es.js new file mode 100644 index 000000000..322a26f98 --- /dev/null +++ b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/entry-main-mA3J9obY-es.js @@ -0,0 +1,2 @@ +console.log('main'); +import('./chunk-deb-3ItlXRQy-es.js').then(console.log); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/es/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/chunk-deb-467d682b-system.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/chunk-deb-BJKR2fPr-system.js similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/chunk-deb-467d682b-system.js rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/chunk-deb-BJKR2fPr-system.js diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/entry-main-5d41b5c4-system.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/entry-main-5d41b5c4-system.js deleted file mode 100644 index eadb26d88..000000000 --- a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/entry-main-5d41b5c4-system.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - console.log('main'); - module.import('./chunk-deb-467d682b-system.js').then(console.log); - - }) - }; -})); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/entry-main-ljrLE_qG-system.js b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/entry-main-ljrLE_qG-system.js new file mode 100644 index 000000000..c8349de79 --- /dev/null +++ b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/entry-main-ljrLE_qG-system.js @@ -0,0 +1,11 @@ +System.register([], (function (exports, module) { + 'use strict'; + return { + execute: (function () { + + console.log('main'); + module.import('./chunk-deb-BJKR2fPr-system.js').then(console.log); + + }) + }; +})); diff --git a/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/txt/b94d27b9-test.txt b/test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/txt/x7YVzHWH-test.txt similarity index 100% rename from test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/txt/b94d27b9-test.txt rename to test/chunking-form/samples/emit-file/filenames-function-patterns/_expected/system/txt/x7YVzHWH-test.txt diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo1-60bc15c4.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo1-BarkEXVd.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo1-60bc15c4.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo1-BarkEXVd.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo2-fdaa7478.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo2-yX706C0w.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo2-fdaa7478.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/amd/assets/logo2-yX706C0w.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/amd/main.js b/test/chunking-form/samples/emit-file/reference-files/_expected/amd/main.js index e56819894..8a142438d 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/amd/main.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/amd/main.js @@ -1,6 +1,6 @@ define(['require', 'exports'], (function (require, exports) { 'use strict'; - var logo = new URL(require.toUrl('./assets/logo1-60bc15c4.svg'), document.baseURI).href; + var logo = new URL(require.toUrl('./assets/logo1-BarkEXVd.svg'), document.baseURI).href; function showImage(url) { console.log(url); diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/amd/nested/chunk.js b/test/chunking-form/samples/emit-file/reference-files/_expected/amd/nested/chunk.js index dcde89811..c03689df1 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/amd/nested/chunk.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/amd/nested/chunk.js @@ -1,6 +1,6 @@ define(['require', '../main'], (function (require, main) { 'use strict'; - var logo = new URL(require.toUrl('../assets/logo2-fdaa7478.svg'), document.baseURI).href; + var logo = new URL(require.toUrl('../assets/logo2-yX706C0w.svg'), document.baseURI).href; main.showImage(logo); diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo1-60bc15c4.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo1-BarkEXVd.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo1-60bc15c4.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo1-BarkEXVd.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo2-fdaa7478.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo2-yX706C0w.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo2-fdaa7478.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/cjs/assets/logo2-yX706C0w.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/main.js b/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/main.js index 6576cadb0..6b7d5ab73 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/main.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/main.js @@ -1,6 +1,6 @@ 'use strict'; -var logo = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/logo1-60bc15c4.svg').href : new URL('assets/logo1-60bc15c4.svg', document.currentScript && document.currentScript.src || document.baseURI).href); +var logo = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/logo1-BarkEXVd.svg').href : new URL('assets/logo1-BarkEXVd.svg', document.currentScript && document.currentScript.src || document.baseURI).href); function showImage(url) { console.log(url); diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/nested/chunk.js b/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/nested/chunk.js index 72106cf5e..131505138 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/nested/chunk.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/cjs/nested/chunk.js @@ -2,6 +2,6 @@ var main = require('../main.js'); -var logo = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/../assets/logo2-fdaa7478.svg').href : new URL('../assets/logo2-fdaa7478.svg', document.currentScript && document.currentScript.src || document.baseURI).href); +var logo = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/../assets/logo2-yX706C0w.svg').href : new URL('../assets/logo2-yX706C0w.svg', document.currentScript && document.currentScript.src || document.baseURI).href); main.showImage(logo); diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo1-60bc15c4.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo1-BarkEXVd.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo1-60bc15c4.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo1-BarkEXVd.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo2-fdaa7478.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo2-yX706C0w.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo2-fdaa7478.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/es/assets/logo2-yX706C0w.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/es/main.js b/test/chunking-form/samples/emit-file/reference-files/_expected/es/main.js index 043250d9d..d7ef2486e 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/es/main.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/es/main.js @@ -1,4 +1,4 @@ -var logo = new URL('assets/logo1-60bc15c4.svg', import.meta.url).href; +var logo = new URL('assets/logo1-BarkEXVd.svg', import.meta.url).href; function showImage(url) { console.log(url); diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/es/nested/chunk.js b/test/chunking-form/samples/emit-file/reference-files/_expected/es/nested/chunk.js index e8eb7621b..d87f90bd0 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/es/nested/chunk.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/es/nested/chunk.js @@ -1,5 +1,5 @@ import { s as showImage } from '../main.js'; -var logo = new URL('../assets/logo2-fdaa7478.svg', import.meta.url).href; +var logo = new URL('../assets/logo2-yX706C0w.svg', import.meta.url).href; showImage(logo); diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo1-60bc15c4.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo1-BarkEXVd.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo1-60bc15c4.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo1-BarkEXVd.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo2-fdaa7478.svg b/test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo2-yX706C0w.svg similarity index 100% rename from test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo2-fdaa7478.svg rename to test/chunking-form/samples/emit-file/reference-files/_expected/system/assets/logo2-yX706C0w.svg diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/system/main.js b/test/chunking-form/samples/emit-file/reference-files/_expected/system/main.js index aeaba1fc6..db77cf0d5 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/system/main.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/system/main.js @@ -5,7 +5,7 @@ System.register([], (function (exports, module) { exports('s', showImage); - var logo = new URL('assets/logo1-60bc15c4.svg', module.meta.url).href; + var logo = new URL('assets/logo1-BarkEXVd.svg', module.meta.url).href; function showImage(url) { console.log(url); diff --git a/test/chunking-form/samples/emit-file/reference-files/_expected/system/nested/chunk.js b/test/chunking-form/samples/emit-file/reference-files/_expected/system/nested/chunk.js index 3be6d4393..69612a70f 100644 --- a/test/chunking-form/samples/emit-file/reference-files/_expected/system/nested/chunk.js +++ b/test/chunking-form/samples/emit-file/reference-files/_expected/system/nested/chunk.js @@ -7,7 +7,7 @@ System.register(['../main.js'], (function (exports, module) { }], execute: (function () { - var logo = new URL('../assets/logo2-fdaa7478.svg', module.meta.url).href; + var logo = new URL('../assets/logo2-yX706C0w.svg', module.meta.url).href; showImage(logo); diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-6922b0a1.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-6922b0a1.txt deleted file mode 100644 index b00dcf278..000000000 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-6922b0a1.txt +++ /dev/null @@ -1 +0,0 @@ -generateBundle amd with assets/generateBundle-format-240389f4.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-KcqLI9cb.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-KcqLI9cb.txt new file mode 100644 index 000000000..b578c3775 --- /dev/null +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-KcqLI9cb.txt @@ -0,0 +1 @@ +generateBundle amd with assets/generateBundle-format-5jVvk-26.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-format-240389f4.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-format-5jVvk-26.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-format-240389f4.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/generateBundle-format-5jVvk-26.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/generateBundle.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/generateBundle.txt index b00dcf278..b578c3775 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/generateBundle.txt +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/generateBundle.txt @@ -1 +1 @@ -generateBundle amd with assets/generateBundle-format-240389f4.txt \ No newline at end of file +generateBundle amd with assets/generateBundle-format-5jVvk-26.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/main.js b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/main.js index ea3be9026..5a7d41715 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/main.js +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/amd/main.js @@ -1,6 +1,6 @@ define(['require', 'exports'], (function (require, exports) { 'use strict'; - const renderStart = new URL(require.toUrl('./assets/renderStart-981aa2ea.txt'), document.baseURI).href; + const renderStart = new URL(require.toUrl('./assets/renderStart-eFzm3QZM.txt'), document.baseURI).href; const renderStartNamed = new URL(require.toUrl('./renderStart.txt'), document.baseURI).href; const renderStartNamedImmediately = 'renderStart.txt'; const bannerNamed = new URL(require.toUrl('./banner.txt'), document.baseURI).href; diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-b1a5f14c.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-b1a5f14c.txt deleted file mode 100644 index 21e7f9971..000000000 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-b1a5f14c.txt +++ /dev/null @@ -1 +0,0 @@ -generateBundle cjs with assets/generateBundle-format-4efb05bc.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-format-4efb05bc.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-format-9Z73n2OP.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-format-4efb05bc.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-format-9Z73n2OP.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-yF5Q0doc.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-yF5Q0doc.txt new file mode 100644 index 000000000..fef800828 --- /dev/null +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/generateBundle-yF5Q0doc.txt @@ -0,0 +1 @@ +generateBundle cjs with assets/generateBundle-format-9Z73n2OP.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/generateBundle.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/generateBundle.txt index 21e7f9971..fef800828 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/generateBundle.txt +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/generateBundle.txt @@ -1 +1 @@ -generateBundle cjs with assets/generateBundle-format-4efb05bc.txt \ No newline at end of file +generateBundle cjs with assets/generateBundle-format-9Z73n2OP.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/main.js b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/main.js index cc1b26907..bfad8ae2d 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/main.js +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/cjs/main.js @@ -1,6 +1,6 @@ 'use strict'; -const renderStart = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/renderStart-981aa2ea.txt').href : new URL('assets/renderStart-981aa2ea.txt', document.currentScript && document.currentScript.src || document.baseURI).href); +const renderStart = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/renderStart-eFzm3QZM.txt').href : new URL('assets/renderStart-eFzm3QZM.txt', document.currentScript && document.currentScript.src || document.baseURI).href); const renderStartNamed = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/renderStart.txt').href : new URL('renderStart.txt', document.currentScript && document.currentScript.src || document.baseURI).href); const renderStartNamedImmediately = 'renderStart.txt'; const bannerNamed = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/banner.txt').href : new URL('banner.txt', document.currentScript && document.currentScript.src || document.baseURI).href); diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-668db42d.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-668db42d.txt deleted file mode 100644 index 253f7587c..000000000 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-668db42d.txt +++ /dev/null @@ -1 +0,0 @@ -generateBundle es with assets/generateBundle-format-c0bc1e08.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-9uv4IgKv.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-9uv4IgKv.txt new file mode 100644 index 000000000..3574605a8 --- /dev/null +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-9uv4IgKv.txt @@ -0,0 +1 @@ +generateBundle es with assets/generateBundle-format-en7tITil.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-format-c0bc1e08.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-format-en7tITil.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-format-c0bc1e08.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/generateBundle-format-en7tITil.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/es/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/generateBundle.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/generateBundle.txt index 253f7587c..3574605a8 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/generateBundle.txt +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/generateBundle.txt @@ -1 +1 @@ -generateBundle es with assets/generateBundle-format-c0bc1e08.txt \ No newline at end of file +generateBundle es with assets/generateBundle-format-en7tITil.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/main.js b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/main.js index 1e7d92b70..646524d9f 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/main.js +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/es/main.js @@ -1,4 +1,4 @@ -const renderStart = new URL('assets/renderStart-981aa2ea.txt', import.meta.url).href; +const renderStart = new URL('assets/renderStart-eFzm3QZM.txt', import.meta.url).href; const renderStartNamed = new URL('renderStart.txt', import.meta.url).href; const renderStartNamedImmediately = 'renderStart.txt'; const bannerNamed = new URL('banner.txt', import.meta.url).href; diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/banner-8c7ed2d9.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/banner-Pqjybijy.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/banner-8c7ed2d9.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/banner-Pqjybijy.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/footer-0301844c.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/footer-lepGH7ft.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/footer-0301844c.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/footer-lepGH7ft.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-WoWY_GTC.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-WoWY_GTC.txt new file mode 100644 index 000000000..ebf5e4e27 --- /dev/null +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-WoWY_GTC.txt @@ -0,0 +1 @@ +generateBundle system with assets/generateBundle-format-XDhKOEdw.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-b0505b8f.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-b0505b8f.txt deleted file mode 100644 index 7b9889b5a..000000000 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-b0505b8f.txt +++ /dev/null @@ -1 +0,0 @@ -generateBundle system with assets/generateBundle-format-bbc5e661.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-format-bbc5e661.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-format-XDhKOEdw.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-format-bbc5e661.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/generateBundle-format-XDhKOEdw.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/intro-c432b372.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/intro-NT6UL-Ie.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/intro-c432b372.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/intro-NT6UL-Ie.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/outro-1e5fe046.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/outro-_McFrfAR.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/outro-1e5fe046.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/outro-_McFrfAR.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderChunk-aa9e49b7.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderChunk-DMYyTWqj.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderChunk-aa9e49b7.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderChunk-DMYyTWqj.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderStart-981aa2ea.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderStart-eFzm3QZM.txt similarity index 100% rename from test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderStart-981aa2ea.txt rename to test/chunking-form/samples/emit-file/set-asset-source/_expected/system/assets/renderStart-eFzm3QZM.txt diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/generateBundle.txt b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/generateBundle.txt index 7b9889b5a..ebf5e4e27 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/generateBundle.txt +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/generateBundle.txt @@ -1 +1 @@ -generateBundle system with assets/generateBundle-format-bbc5e661.txt \ No newline at end of file +generateBundle system with assets/generateBundle-format-XDhKOEdw.txt \ No newline at end of file diff --git a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/main.js b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/main.js index ecff092f8..70e186a23 100644 --- a/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/main.js +++ b/test/chunking-form/samples/emit-file/set-asset-source/_expected/system/main.js @@ -3,7 +3,7 @@ System.register([], (function (exports, module) { return { execute: (function () { - const renderStart = exports('renderStart', new URL('assets/renderStart-981aa2ea.txt', module.meta.url).href); + const renderStart = exports('renderStart', new URL('assets/renderStart-eFzm3QZM.txt', module.meta.url).href); const renderStartNamed = exports('renderStartNamed', new URL('renderStart.txt', module.meta.url).href); const renderStartNamedImmediately = exports('renderStartNamedImmediately', 'renderStart.txt'); const bannerNamed = exports('bannerNamed', new URL('banner.txt', module.meta.url).href); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/amd/chunk-main2-a7baadb6-amd.js b/test/chunking-form/samples/filenames-patterns/_expected/amd/chunk-main2-cf881rtr-amd.js similarity index 100% rename from test/chunking-form/samples/filenames-patterns/_expected/amd/chunk-main2-a7baadb6-amd.js rename to test/chunking-form/samples/filenames-patterns/_expected/amd/chunk-main2-cf881rtr-amd.js diff --git a/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main1-94fe149e-amd.js b/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main1-94fe149e-amd.js deleted file mode 100644 index f06358c37..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main1-94fe149e-amd.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./chunk-main2-a7baadb6-amd'], (function (main2) { 'use strict'; - - main2.log(main2.dep); - -})); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main1-CBKFi7eG-amd.js b/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main1-CBKFi7eG-amd.js new file mode 100644 index 000000000..962a36022 --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main1-CBKFi7eG-amd.js @@ -0,0 +1,5 @@ +define(['./chunk-main2-cf881rtr-amd'], (function (main2) { 'use strict'; + + main2.log(main2.dep); + +})); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main2-16bafa95-amd.js b/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main2-16bafa95-amd.js deleted file mode 100644 index 27e38c818..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main2-16bafa95-amd.js +++ /dev/null @@ -1,7 +0,0 @@ -define(['./chunk-main2-a7baadb6-amd'], (function (main2) { 'use strict'; - - - - return main2.log; - -})); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main2-U19f7Kkv-amd.js b/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main2-U19f7Kkv-amd.js new file mode 100644 index 000000000..676c16f83 --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/amd/entry-main2-U19f7Kkv-amd.js @@ -0,0 +1,7 @@ +define(['./chunk-main2-cf881rtr-amd'], (function (main2) { 'use strict'; + + + + return main2.log; + +})); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/cjs/chunk-main2-399c15fc-cjs.js b/test/chunking-form/samples/filenames-patterns/_expected/cjs/chunk-main2-2eAijmim-cjs.js similarity index 100% rename from test/chunking-form/samples/filenames-patterns/_expected/cjs/chunk-main2-399c15fc-cjs.js rename to test/chunking-form/samples/filenames-patterns/_expected/cjs/chunk-main2-2eAijmim-cjs.js diff --git a/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main1-2934d4fa-cjs.js b/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main1-2934d4fa-cjs.js deleted file mode 100644 index b3ace5cc3..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main1-2934d4fa-cjs.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var main2 = require('./chunk-main2-399c15fc-cjs.js'); - -main2.log(main2.dep); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main1-i42FQ2i5-cjs.js b/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main1-i42FQ2i5-cjs.js new file mode 100644 index 000000000..ab61f3a30 --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main1-i42FQ2i5-cjs.js @@ -0,0 +1,5 @@ +'use strict'; + +var main2 = require('./chunk-main2-2eAijmim-cjs.js'); + +main2.log(main2.dep); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main2-523204ff-cjs.js b/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main2-523204ff-cjs.js deleted file mode 100644 index a2103eea7..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main2-523204ff-cjs.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -var main2 = require('./chunk-main2-399c15fc-cjs.js'); - - - -module.exports = main2.log; diff --git a/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main2-e914JHZ0-cjs.js b/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main2-e914JHZ0-cjs.js new file mode 100644 index 000000000..d51b2084d --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/cjs/entry-main2-e914JHZ0-cjs.js @@ -0,0 +1,7 @@ +'use strict'; + +var main2 = require('./chunk-main2-2eAijmim-cjs.js'); + + + +module.exports = main2.log; diff --git a/test/chunking-form/samples/filenames-patterns/_expected/es/chunk-main2-c42fce1a-es.js b/test/chunking-form/samples/filenames-patterns/_expected/es/chunk-main2-IiSmXREe-es.js similarity index 100% rename from test/chunking-form/samples/filenames-patterns/_expected/es/chunk-main2-c42fce1a-es.js rename to test/chunking-form/samples/filenames-patterns/_expected/es/chunk-main2-IiSmXREe-es.js diff --git a/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main1-6f12c5b2-es.js b/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main1-6f12c5b2-es.js deleted file mode 100644 index 43a51c026..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main1-6f12c5b2-es.js +++ /dev/null @@ -1,3 +0,0 @@ -import { l as log, d as dep } from './chunk-main2-c42fce1a-es.js'; - -log(dep); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main1-JQIS3SKF-es.js b/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main1-JQIS3SKF-es.js new file mode 100644 index 000000000..9efa2c141 --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main1-JQIS3SKF-es.js @@ -0,0 +1,3 @@ +import { l as log, d as dep } from './chunk-main2-IiSmXREe-es.js'; + +log(dep); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main2-6DNkLKmG-es.js b/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main2-6DNkLKmG-es.js new file mode 100644 index 000000000..35eb81b45 --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main2-6DNkLKmG-es.js @@ -0,0 +1 @@ +export { l as default } from './chunk-main2-IiSmXREe-es.js'; diff --git a/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main2-a9b323b4-es.js b/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main2-a9b323b4-es.js deleted file mode 100644 index ebb3c3e89..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/es/entry-main2-a9b323b4-es.js +++ /dev/null @@ -1 +0,0 @@ -export { l as default } from './chunk-main2-c42fce1a-es.js'; diff --git a/test/chunking-form/samples/filenames-patterns/_expected/system/chunk-main2-9cc03624-system.js b/test/chunking-form/samples/filenames-patterns/_expected/system/chunk-main2-cN2LIF0L-system.js similarity index 100% rename from test/chunking-form/samples/filenames-patterns/_expected/system/chunk-main2-9cc03624-system.js rename to test/chunking-form/samples/filenames-patterns/_expected/system/chunk-main2-cN2LIF0L-system.js diff --git a/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main1-3xo1S8a0-system.js b/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main1-3xo1S8a0-system.js new file mode 100644 index 000000000..1715f48cd --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main1-3xo1S8a0-system.js @@ -0,0 +1,15 @@ +System.register(['./chunk-main2-cN2LIF0L-system.js'], (function () { + 'use strict'; + var log, dep; + return { + setters: [function (module) { + log = module.l; + dep = module.d; + }], + execute: (function () { + + log(dep); + + }) + }; +})); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main1-720299cf-system.js b/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main1-720299cf-system.js deleted file mode 100644 index bbe15d21f..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main1-720299cf-system.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register(['./chunk-main2-9cc03624-system.js'], (function () { - 'use strict'; - var log, dep; - return { - setters: [function (module) { - log = module.l; - dep = module.d; - }], - execute: (function () { - - log(dep); - - }) - }; -})); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main2-RI9cN2Cj-system.js b/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main2-RI9cN2Cj-system.js new file mode 100644 index 000000000..bec58bbe1 --- /dev/null +++ b/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main2-RI9cN2Cj-system.js @@ -0,0 +1,13 @@ +System.register(['./chunk-main2-cN2LIF0L-system.js'], (function (exports) { + 'use strict'; + return { + setters: [function (module) { + exports('default', module.l); + }], + execute: (function () { + + + + }) + }; +})); diff --git a/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main2-c3cb1622-system.js b/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main2-c3cb1622-system.js deleted file mode 100644 index 8b0dde3a3..000000000 --- a/test/chunking-form/samples/filenames-patterns/_expected/system/entry-main2-c3cb1622-system.js +++ /dev/null @@ -1,13 +0,0 @@ -System.register(['./chunk-main2-9cc03624-system.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('default', module.l); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-7061c38c.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-BjVZZvuI.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-7061c38c.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-BjVZZvuI.js diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-82a5a8a4.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-_kM9k9Bx.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-82a5a8a4.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/amd/entry-_kM9k9Bx.js diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-8011025d.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-BAMj_W0O.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-8011025d.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-BAMj_W0O.js diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-fc7b26ff.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-ivriA37N.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-fc7b26ff.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/cjs/entry-ivriA37N.js diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-2b8647b5.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-Gs557UIb.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-2b8647b5.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-Gs557UIb.js diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-369b04c8.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-Y0flmsE_.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-369b04c8.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/es/entry-Y0flmsE_.js diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-54240e14.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-aiNN2RB-.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-54240e14.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-aiNN2RB-.js diff --git a/test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-ed8fdbb3.js b/test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-yZdFXPRq.js similarity index 100% rename from test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-ed8fdbb3.js rename to test/chunking-form/samples/hashing/deconflict-hashes/_expected/system/entry-yZdFXPRq.js diff --git a/test/chunking-form/samples/hashing/double-hash/_expected/amd/7061c38c/entry-7061c38c.js b/test/chunking-form/samples/hashing/double-hash/_expected/amd/_kM9k9Bx/entry-_kM9k9Bx.js similarity index 100% rename from test/chunking-form/samples/hashing/double-hash/_expected/amd/7061c38c/entry-7061c38c.js rename to test/chunking-form/samples/hashing/double-hash/_expected/amd/_kM9k9Bx/entry-_kM9k9Bx.js diff --git a/test/chunking-form/samples/hashing/double-hash/_expected/cjs/8011025d/entry-8011025d.js b/test/chunking-form/samples/hashing/double-hash/_expected/cjs/ivriA37N/entry-ivriA37N.js similarity index 100% rename from test/chunking-form/samples/hashing/double-hash/_expected/cjs/8011025d/entry-8011025d.js rename to test/chunking-form/samples/hashing/double-hash/_expected/cjs/ivriA37N/entry-ivriA37N.js diff --git a/test/chunking-form/samples/hashing/double-hash/_expected/es/2b8647b5/entry-2b8647b5.js b/test/chunking-form/samples/hashing/double-hash/_expected/es/Y0flmsE_/entry-Y0flmsE_.js similarity index 100% rename from test/chunking-form/samples/hashing/double-hash/_expected/es/2b8647b5/entry-2b8647b5.js rename to test/chunking-form/samples/hashing/double-hash/_expected/es/Y0flmsE_/entry-Y0flmsE_.js diff --git a/test/chunking-form/samples/hashing/double-hash/_expected/system/54240e14/entry-54240e14.js b/test/chunking-form/samples/hashing/double-hash/_expected/system/yZdFXPRq/entry-yZdFXPRq.js similarity index 100% rename from test/chunking-form/samples/hashing/double-hash/_expected/system/54240e14/entry-54240e14.js rename to test/chunking-form/samples/hashing/double-hash/_expected/system/yZdFXPRq/entry-yZdFXPRq.js diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/amd/dep-5905830720d5f3.js b/test/chunking-form/samples/hashing/hash-size/_expected/amd/dep-eCO4iyaHEVP2U2.js similarity index 100% rename from test/chunking-form/samples/hashing/hash-size/_expected/amd/dep-5905830720d5f3.js rename to test/chunking-form/samples/hashing/hash-size/_expected/amd/dep-eCO4iyaHEVP2U2.js diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/amd/main1-9bGLbd-q.js b/test/chunking-form/samples/hashing/hash-size/_expected/amd/main1-9bGLbd-q.js new file mode 100644 index 000000000..438974a00 --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/amd/main1-9bGLbd-q.js @@ -0,0 +1,5 @@ +define(['./dep-eCO4iyaHEVP2U2'], (function (dep) { 'use strict'; + + console.log('main1'); + +})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/amd/main1-eb0f074f.js b/test/chunking-form/samples/hashing/hash-size/_expected/amd/main1-eb0f074f.js deleted file mode 100644 index 3f3a68618..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/amd/main1-eb0f074f.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./dep-5905830720d5f3'], (function (dep) { 'use strict'; - - console.log('main1'); - -})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/amd/main2-5gkbLhN4J6.js b/test/chunking-form/samples/hashing/hash-size/_expected/amd/main2-5gkbLhN4J6.js new file mode 100644 index 000000000..160493aba --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/amd/main2-5gkbLhN4J6.js @@ -0,0 +1,5 @@ +define(['./dep-eCO4iyaHEVP2U2'], (function (dep) { 'use strict'; + + console.log('main2'); + +})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/amd/main2-b24fb22e7f.js b/test/chunking-form/samples/hashing/hash-size/_expected/amd/main2-b24fb22e7f.js deleted file mode 100644 index e4c34f3a2..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/amd/main2-b24fb22e7f.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./dep-5905830720d5f3'], (function (dep) { 'use strict'; - - console.log('main2'); - -})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/amd/test-9f86d081884c7d659a.txt b/test/chunking-form/samples/hashing/hash-size/_expected/amd/test-uF-4QoZ1HtBY01G94-.txt similarity index 100% rename from test/chunking-form/samples/hashing/hash-size/_expected/amd/test-9f86d081884c7d659a.txt rename to test/chunking-form/samples/hashing/hash-size/_expected/amd/test-uF-4QoZ1HtBY01G94-.txt diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/dep-0f12b4bf62a634.js b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/dep-YVivKZa3-xWdJj.js similarity index 100% rename from test/chunking-form/samples/hashing/hash-size/_expected/cjs/dep-0f12b4bf62a634.js rename to test/chunking-form/samples/hashing/hash-size/_expected/cjs/dep-YVivKZa3-xWdJj.js diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main1-87405ba3.js b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main1-87405ba3.js deleted file mode 100644 index 5b8fcb08e..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main1-87405ba3.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./dep-0f12b4bf62a634.js'); - -console.log('main1'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main1-hNgwlFpU.js b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main1-hNgwlFpU.js new file mode 100644 index 000000000..61a963dbd --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main1-hNgwlFpU.js @@ -0,0 +1,5 @@ +'use strict'; + +require('./dep-YVivKZa3-xWdJj.js'); + +console.log('main1'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main2-VmtfVxsamQ.js b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main2-VmtfVxsamQ.js new file mode 100644 index 000000000..dae1e640b --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main2-VmtfVxsamQ.js @@ -0,0 +1,5 @@ +'use strict'; + +require('./dep-YVivKZa3-xWdJj.js'); + +console.log('main2'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main2-b2c59bdf14.js b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main2-b2c59bdf14.js deleted file mode 100644 index 908db6fb4..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/main2-b2c59bdf14.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./dep-0f12b4bf62a634.js'); - -console.log('main2'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/cjs/test-9f86d081884c7d659a.txt b/test/chunking-form/samples/hashing/hash-size/_expected/cjs/test-uF-4QoZ1HtBY01G94-.txt similarity index 100% rename from test/chunking-form/samples/hashing/hash-size/_expected/cjs/test-9f86d081884c7d659a.txt rename to test/chunking-form/samples/hashing/hash-size/_expected/cjs/test-uF-4QoZ1HtBY01G94-.txt diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/es/dep-cd6f5744f7fc9c.js b/test/chunking-form/samples/hashing/hash-size/_expected/es/dep-cd6f5744f7fc9c.js deleted file mode 100644 index b74a9837c..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/es/dep-cd6f5744f7fc9c.js +++ /dev/null @@ -1 +0,0 @@ -console.log('dep'); diff --git a/test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/dep.js b/test/chunking-form/samples/hashing/hash-size/_expected/es/dep-zBY_VBiSge8Mj4.js similarity index 100% rename from test/chunking-form/samples/deprecated/manual-chunk-contains-entry-conflict/dep.js rename to test/chunking-form/samples/hashing/hash-size/_expected/es/dep-zBY_VBiSge8Mj4.js diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/es/main1-bcca55a1.js b/test/chunking-form/samples/hashing/hash-size/_expected/es/main1-bcca55a1.js deleted file mode 100644 index 1416a70c5..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/es/main1-bcca55a1.js +++ /dev/null @@ -1,3 +0,0 @@ -import './dep-cd6f5744f7fc9c.js'; - -console.log('main1'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/es/main1-fjlEGKoF.js b/test/chunking-form/samples/hashing/hash-size/_expected/es/main1-fjlEGKoF.js new file mode 100644 index 000000000..b60234c1c --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/es/main1-fjlEGKoF.js @@ -0,0 +1,3 @@ +import './dep-zBY_VBiSge8Mj4.js'; + +console.log('main1'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/es/main2-83d7b451fa.js b/test/chunking-form/samples/hashing/hash-size/_expected/es/main2-83d7b451fa.js deleted file mode 100644 index 95158db64..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/es/main2-83d7b451fa.js +++ /dev/null @@ -1,3 +0,0 @@ -import './dep-cd6f5744f7fc9c.js'; - -console.log('main2'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/es/main2-_s3jGKh5RD.js b/test/chunking-form/samples/hashing/hash-size/_expected/es/main2-_s3jGKh5RD.js new file mode 100644 index 000000000..3cb92aa8f --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/es/main2-_s3jGKh5RD.js @@ -0,0 +1,3 @@ +import './dep-zBY_VBiSge8Mj4.js'; + +console.log('main2'); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/es/test-9f86d081884c7d659a.txt b/test/chunking-form/samples/hashing/hash-size/_expected/es/test-uF-4QoZ1HtBY01G94-.txt similarity index 100% rename from test/chunking-form/samples/hashing/hash-size/_expected/es/test-9f86d081884c7d659a.txt rename to test/chunking-form/samples/hashing/hash-size/_expected/es/test-uF-4QoZ1HtBY01G94-.txt diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/system/dep-626bb5df3105f7.js b/test/chunking-form/samples/hashing/hash-size/_expected/system/dep-hy-CAAd7JeW4I2.js similarity index 100% rename from test/chunking-form/samples/hashing/hash-size/_expected/system/dep-626bb5df3105f7.js rename to test/chunking-form/samples/hashing/hash-size/_expected/system/dep-hy-CAAd7JeW4I2.js diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/system/main1-YgtCdyy2.js b/test/chunking-form/samples/hashing/hash-size/_expected/system/main1-YgtCdyy2.js new file mode 100644 index 000000000..6efeff73f --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/system/main1-YgtCdyy2.js @@ -0,0 +1,11 @@ +System.register(['./dep-hy-CAAd7JeW4I2.js'], (function () { + 'use strict'; + return { + setters: [null], + execute: (function () { + + console.log('main1'); + + }) + }; +})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/system/main1-c5eecf00.js b/test/chunking-form/samples/hashing/hash-size/_expected/system/main1-c5eecf00.js deleted file mode 100644 index ce5a10591..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/system/main1-c5eecf00.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./dep-626bb5df3105f7.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('main1'); - - }) - }; -})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/system/main2-842e475e5e.js b/test/chunking-form/samples/hashing/hash-size/_expected/system/main2-842e475e5e.js deleted file mode 100644 index 6812a37a6..000000000 --- a/test/chunking-form/samples/hashing/hash-size/_expected/system/main2-842e475e5e.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(['./dep-626bb5df3105f7.js'], (function () { - 'use strict'; - return { - setters: [null], - execute: (function () { - - console.log('main2'); - - }) - }; -})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/system/main2-dDGqHpvMDz.js b/test/chunking-form/samples/hashing/hash-size/_expected/system/main2-dDGqHpvMDz.js new file mode 100644 index 000000000..02e50e49a --- /dev/null +++ b/test/chunking-form/samples/hashing/hash-size/_expected/system/main2-dDGqHpvMDz.js @@ -0,0 +1,11 @@ +System.register(['./dep-hy-CAAd7JeW4I2.js'], (function () { + 'use strict'; + return { + setters: [null], + execute: (function () { + + console.log('main2'); + + }) + }; +})); diff --git a/test/chunking-form/samples/hashing/hash-size/_expected/system/test-9f86d081884c7d659a.txt b/test/chunking-form/samples/hashing/hash-size/_expected/system/test-uF-4QoZ1HtBY01G94-.txt similarity index 100% rename from test/chunking-form/samples/hashing/hash-size/_expected/system/test-9f86d081884c7d659a.txt rename to test/chunking-form/samples/hashing/hash-size/_expected/system/test-uF-4QoZ1HtBY01G94-.txt diff --git a/test/chunking-form/samples/hashing/random-match/_expected/amd/entry-1UjYC2I--1UjYC2I--!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/amd/entry-1UjYC2I--1UjYC2I--!~{123}~.js new file mode 100644 index 000000000..ea22ff4fe --- /dev/null +++ b/test/chunking-form/samples/hashing/random-match/_expected/amd/entry-1UjYC2I--1UjYC2I--!~{123}~.js @@ -0,0 +1,6 @@ +define((function () { 'use strict'; + + console.log('replaced: 1UjYC2I-'); + console.log('not replaced: !~{123}~'); + +})); diff --git a/test/chunking-form/samples/hashing/random-match/_expected/amd/entry-a38385ce-a38385ce-!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/amd/entry-a38385ce-a38385ce-!~{123}~.js deleted file mode 100644 index dea40a5e3..000000000 --- a/test/chunking-form/samples/hashing/random-match/_expected/amd/entry-a38385ce-a38385ce-!~{123}~.js +++ /dev/null @@ -1,6 +0,0 @@ -define((function () { 'use strict'; - - console.log('replaced: a38385ce'); - console.log('not replaced: !~{123}~'); - -})); diff --git a/test/chunking-form/samples/hashing/random-match/_expected/cjs/entry-55937672-55937672-!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/cjs/entry-55937672-55937672-!~{123}~.js deleted file mode 100644 index 7040251a7..000000000 --- a/test/chunking-form/samples/hashing/random-match/_expected/cjs/entry-55937672-55937672-!~{123}~.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -console.log('replaced: 55937672'); -console.log('not replaced: !~{123}~'); diff --git a/test/chunking-form/samples/hashing/random-match/_expected/cjs/entry-r0OE6QqP-r0OE6QqP-!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/cjs/entry-r0OE6QqP-r0OE6QqP-!~{123}~.js new file mode 100644 index 000000000..f927c49e2 --- /dev/null +++ b/test/chunking-form/samples/hashing/random-match/_expected/cjs/entry-r0OE6QqP-r0OE6QqP-!~{123}~.js @@ -0,0 +1,4 @@ +'use strict'; + +console.log('replaced: r0OE6QqP'); +console.log('not replaced: !~{123}~'); diff --git a/test/chunking-form/samples/hashing/random-match/_expected/es/entry-0i8gYiAL-0i8gYiAL-!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/es/entry-0i8gYiAL-0i8gYiAL-!~{123}~.js new file mode 100644 index 000000000..d9abb07cb --- /dev/null +++ b/test/chunking-form/samples/hashing/random-match/_expected/es/entry-0i8gYiAL-0i8gYiAL-!~{123}~.js @@ -0,0 +1,2 @@ +console.log('replaced: 0i8gYiAL'); +console.log('not replaced: !~{123}~'); diff --git a/test/chunking-form/samples/hashing/random-match/_expected/es/entry-3e8c77bc-3e8c77bc-!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/es/entry-3e8c77bc-3e8c77bc-!~{123}~.js deleted file mode 100644 index 23eae93ea..000000000 --- a/test/chunking-form/samples/hashing/random-match/_expected/es/entry-3e8c77bc-3e8c77bc-!~{123}~.js +++ /dev/null @@ -1,2 +0,0 @@ -console.log('replaced: 3e8c77bc'); -console.log('not replaced: !~{123}~'); diff --git a/test/chunking-form/samples/hashing/random-match/_expected/system/entry-49c9800c-49c9800c-!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/system/entry-49c9800c-49c9800c-!~{123}~.js deleted file mode 100644 index 8fc781567..000000000 --- a/test/chunking-form/samples/hashing/random-match/_expected/system/entry-49c9800c-49c9800c-!~{123}~.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log('replaced: 49c9800c'); - console.log('not replaced: !~{123}~'); - - }) - }; -})); diff --git a/test/chunking-form/samples/hashing/random-match/_expected/system/entry-uj5cAyaj-uj5cAyaj-!~{123}~.js b/test/chunking-form/samples/hashing/random-match/_expected/system/entry-uj5cAyaj-uj5cAyaj-!~{123}~.js new file mode 100644 index 000000000..8af252f33 --- /dev/null +++ b/test/chunking-form/samples/hashing/random-match/_expected/system/entry-uj5cAyaj-uj5cAyaj-!~{123}~.js @@ -0,0 +1,11 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + console.log('replaced: uj5cAyaj'); + console.log('not replaced: !~{123}~'); + + }) + }; +})); diff --git a/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/amd/09da348a.js b/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/amd/H3l_crHv.js similarity index 100% rename from test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/amd/09da348a.js rename to test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/amd/H3l_crHv.js diff --git a/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/cjs/b99f90f4.js b/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/cjs/-4vUgP94.js similarity index 100% rename from test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/cjs/b99f90f4.js rename to test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/cjs/-4vUgP94.js diff --git a/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/es/55aeacf8.js b/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/es/A-tvJWOc.js similarity index 100% rename from test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/es/55aeacf8.js rename to test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/es/A-tvJWOc.js diff --git a/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/system/e65da870.js b/test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/system/ia0SgqCA.js similarity index 100% rename from test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/system/e65da870.js rename to test/chunking-form/samples/hashing/tree-shaken-dynamic-hash/_expected/system/ia0SgqCA.js diff --git a/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-emitted-entry/_config.js b/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-emitted-entry/_config.js index 23c912f99..c6e1913fd 100644 --- a/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-emitted-entry/_config.js +++ b/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-emitted-entry/_config.js @@ -26,7 +26,7 @@ module.exports = defineTest({ buildEnd() { assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_MAIN))), { id: ID_MAIN, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -36,6 +36,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 22, end: 29, raw: "'./lib'", value: './lib' }, specifiers: [ { type: 'ImportSpecifier', @@ -45,7 +46,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 14, name: 'value' } } ], - source: { type: 'Literal', start: 22, end: 29, value: './lib', raw: "'./lib'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -55,16 +56,16 @@ module.exports = defineTest({ type: 'CallExpression', start: 31, end: 49, + arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], callee: { type: 'MemberExpression', start: 31, end: 42, - object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, - property: { type: 'Identifier', start: 39, end: 42, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 39, end: 42, name: 'log' } }, - arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], optional: false } } @@ -85,7 +86,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB, meta: {}, @@ -104,7 +105,7 @@ module.exports = defineTest({ }); assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_DEP))), { id: ID_DEP, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -114,6 +115,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 22, end: 29, raw: "'./lib'", value: './lib' }, specifiers: [ { type: 'ImportSpecifier', @@ -123,7 +125,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 14, name: 'value' } } ], - source: { type: 'Literal', start: 22, end: 29, value: './lib', raw: "'./lib'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -133,16 +135,16 @@ module.exports = defineTest({ type: 'CallExpression', start: 31, end: 49, + arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], callee: { type: 'MemberExpression', start: 31, end: 42, - object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, - property: { type: 'Identifier', start: 39, end: 42, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 39, end: 42, name: 'log' } }, - arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], optional: false } } @@ -163,7 +165,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB, meta: {}, diff --git a/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-entry/_config.js b/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-entry/_config.js index 012b74b0d..972f1c1d5 100644 --- a/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-entry/_config.js +++ b/test/chunking-form/samples/implicit-dependencies/implicitly-dependent-entry/_config.js @@ -22,7 +22,7 @@ module.exports = defineTest({ buildEnd() { assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_MAIN))), { id: ID_MAIN, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -32,6 +32,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 22, end: 29, raw: "'./lib'", value: './lib' }, specifiers: [ { type: 'ImportSpecifier', @@ -41,7 +42,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 14, name: 'value' } } ], - source: { type: 'Literal', start: 22, end: 29, value: './lib', raw: "'./lib'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -51,16 +52,16 @@ module.exports = defineTest({ type: 'CallExpression', start: 31, end: 49, + arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], callee: { type: 'MemberExpression', start: 31, end: 42, - object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, - property: { type: 'Identifier', start: 39, end: 42, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 39, end: 42, name: 'log' } }, - arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], optional: false } } @@ -81,7 +82,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB, meta: {}, @@ -100,7 +101,7 @@ module.exports = defineTest({ }); assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_DEP))), { id: ID_DEP, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -110,6 +111,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 22, end: 29, raw: "'./lib'", value: './lib' }, specifiers: [ { type: 'ImportSpecifier', @@ -119,7 +121,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 14, name: 'value' } } ], - source: { type: 'Literal', start: 22, end: 29, value: './lib', raw: "'./lib'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -129,16 +131,16 @@ module.exports = defineTest({ type: 'CallExpression', start: 31, end: 49, + arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], callee: { type: 'MemberExpression', start: 31, end: 42, - object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, - property: { type: 'Identifier', start: 39, end: 42, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 39, end: 42, name: 'log' } }, - arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], optional: false } } @@ -159,7 +161,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB, meta: {}, diff --git a/test/chunking-form/samples/implicit-dependencies/multiple-dependencies/_config.js b/test/chunking-form/samples/implicit-dependencies/multiple-dependencies/_config.js index 0596b22ac..a75754208 100644 --- a/test/chunking-form/samples/implicit-dependencies/multiple-dependencies/_config.js +++ b/test/chunking-form/samples/implicit-dependencies/multiple-dependencies/_config.js @@ -35,7 +35,7 @@ module.exports = defineTest({ buildEnd() { assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_MAIN1))), { id: ID_MAIN1, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -45,6 +45,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 21, end: 29, raw: "'./lib1'", value: './lib1' }, specifiers: [ { type: 'ImportSpecifier', @@ -54,12 +55,13 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 13, name: 'lib1' } } ], - source: { type: 'Literal', start: 21, end: 29, value: './lib1', raw: "'./lib1'" } + attributes: [] }, { type: 'ImportDeclaration', start: 31, end: 63, + source: { type: 'Literal', start: 53, end: 62, raw: "'./lib1b'", value: './lib1b' }, specifiers: [ { type: 'ImportSpecifier', @@ -69,12 +71,13 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 40, end: 45, name: 'lib1b' } } ], - source: { type: 'Literal', start: 53, end: 62, value: './lib1b', raw: "'./lib1b'" } + attributes: [] }, { type: 'ImportDeclaration', start: 64, end: 94, + source: { type: 'Literal', start: 85, end: 93, raw: "'./lib2'", value: './lib2' }, specifiers: [ { type: 'ImportSpecifier', @@ -84,7 +87,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 73, end: 77, name: 'lib2' } } ], - source: { type: 'Literal', start: 85, end: 93, value: './lib2', raw: "'./lib2'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -94,21 +97,21 @@ module.exports = defineTest({ type: 'CallExpression', start: 95, end: 135, + arguments: [ + { type: 'Literal', start: 107, end: 114, raw: "'main1'", value: 'main1' }, + { type: 'Identifier', start: 116, end: 120, name: 'lib1' }, + { type: 'Identifier', start: 123, end: 128, name: 'lib1b' }, + { type: 'Identifier', start: 130, end: 134, name: 'lib2' } + ], callee: { type: 'MemberExpression', start: 95, end: 106, - object: { type: 'Identifier', start: 95, end: 102, name: 'console' }, - property: { type: 'Identifier', start: 103, end: 106, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 95, end: 102, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 103, end: 106, name: 'log' } }, - arguments: [ - { type: 'Literal', start: 107, end: 114, value: 'main1', raw: "'main1'" }, - { type: 'Identifier', start: 116, end: 120, name: 'lib1' }, - { type: 'Identifier', start: 123, end: 128, name: 'lib1b' }, - { type: 'Identifier', start: 130, end: 134, name: 'lib2' } - ], optional: false } } @@ -129,7 +132,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [ID_DEP], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB1, meta: {}, @@ -138,7 +141,7 @@ module.exports = defineTest({ syntheticNamedExports: false }, { - assertions: {}, + attributes: {}, external: false, id: ID_LIB1B, meta: {}, @@ -147,7 +150,7 @@ module.exports = defineTest({ syntheticNamedExports: false }, { - assertions: {}, + attributes: {}, external: false, id: ID_LIB2, meta: {}, @@ -166,7 +169,7 @@ module.exports = defineTest({ }); assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_MAIN2))), { id: ID_MAIN2, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -176,6 +179,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 21, end: 29, raw: "'./lib1'", value: './lib1' }, specifiers: [ { type: 'ImportSpecifier', @@ -185,12 +189,13 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 13, name: 'lib1' } } ], - source: { type: 'Literal', start: 21, end: 29, value: './lib1', raw: "'./lib1'" } + attributes: [] }, { type: 'ImportDeclaration', start: 31, end: 63, + source: { type: 'Literal', start: 53, end: 62, raw: "'./lib1b'", value: './lib1b' }, specifiers: [ { type: 'ImportSpecifier', @@ -200,12 +205,13 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 40, end: 45, name: 'lib1b' } } ], - source: { type: 'Literal', start: 53, end: 62, value: './lib1b', raw: "'./lib1b'" } + attributes: [] }, { type: 'ImportDeclaration', start: 64, end: 94, + source: { type: 'Literal', start: 85, end: 93, raw: "'./lib3'", value: './lib3' }, specifiers: [ { type: 'ImportSpecifier', @@ -215,7 +221,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 73, end: 77, name: 'lib3' } } ], - source: { type: 'Literal', start: 85, end: 93, value: './lib3', raw: "'./lib3'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -225,21 +231,21 @@ module.exports = defineTest({ type: 'CallExpression', start: 95, end: 134, + arguments: [ + { type: 'Literal', start: 107, end: 114, raw: "'main2'", value: 'main2' }, + { type: 'Identifier', start: 116, end: 120, name: 'lib1' }, + { type: 'Identifier', start: 122, end: 127, name: 'lib1b' }, + { type: 'Identifier', start: 129, end: 133, name: 'lib3' } + ], callee: { type: 'MemberExpression', start: 95, end: 106, - object: { type: 'Identifier', start: 95, end: 102, name: 'console' }, - property: { type: 'Identifier', start: 103, end: 106, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 95, end: 102, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 103, end: 106, name: 'log' } }, - arguments: [ - { type: 'Literal', start: 107, end: 114, value: 'main2', raw: "'main2'" }, - { type: 'Identifier', start: 116, end: 120, name: 'lib1' }, - { type: 'Identifier', start: 122, end: 127, name: 'lib1b' }, - { type: 'Identifier', start: 129, end: 133, name: 'lib3' } - ], optional: false } } @@ -260,7 +266,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [ID_DEP], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB1, meta: {}, @@ -269,7 +275,7 @@ module.exports = defineTest({ syntheticNamedExports: false }, { - assertions: {}, + attributes: {}, external: false, id: ID_LIB1B, meta: {}, @@ -278,7 +284,7 @@ module.exports = defineTest({ syntheticNamedExports: false }, { - assertions: {}, + attributes: {}, external: false, id: ID_LIB3, meta: {}, @@ -297,7 +303,7 @@ module.exports = defineTest({ }); assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_DEP))), { id: ID_DEP, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -307,6 +313,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 21, end: 29, raw: "'./lib1'", value: './lib1' }, specifiers: [ { type: 'ImportSpecifier', @@ -316,12 +323,13 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 13, name: 'lib1' } } ], - source: { type: 'Literal', start: 21, end: 29, value: './lib1', raw: "'./lib1'" } + attributes: [] }, { type: 'ImportDeclaration', start: 31, end: 61, + source: { type: 'Literal', start: 52, end: 60, raw: "'./lib2'", value: './lib2' }, specifiers: [ { type: 'ImportSpecifier', @@ -331,12 +339,13 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 40, end: 44, name: 'lib2' } } ], - source: { type: 'Literal', start: 52, end: 60, value: './lib2', raw: "'./lib2'" } + attributes: [] }, { type: 'ImportDeclaration', start: 62, end: 92, + source: { type: 'Literal', start: 83, end: 91, raw: "'./lib3'", value: './lib3' }, specifiers: [ { type: 'ImportSpecifier', @@ -346,7 +355,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 71, end: 75, name: 'lib3' } } ], - source: { type: 'Literal', start: 83, end: 91, value: './lib3', raw: "'./lib3'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -356,20 +365,20 @@ module.exports = defineTest({ type: 'CallExpression', start: 93, end: 122, + arguments: [ + { type: 'Identifier', start: 105, end: 109, name: 'lib1' }, + { type: 'Identifier', start: 111, end: 115, name: 'lib2' }, + { type: 'Identifier', start: 117, end: 121, name: 'lib3' } + ], callee: { type: 'MemberExpression', start: 93, end: 104, - object: { type: 'Identifier', start: 93, end: 100, name: 'console' }, - property: { type: 'Identifier', start: 101, end: 104, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 93, end: 100, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 101, end: 104, name: 'log' } }, - arguments: [ - { type: 'Identifier', start: 105, end: 109, name: 'lib1' }, - { type: 'Identifier', start: 111, end: 115, name: 'lib2' }, - { type: 'Identifier', start: 117, end: 121, name: 'lib3' } - ], optional: false } } @@ -390,7 +399,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB1, meta: {}, @@ -399,7 +408,7 @@ module.exports = defineTest({ syntheticNamedExports: false }, { - assertions: {}, + attributes: {}, external: false, id: ID_LIB2, meta: {}, @@ -408,7 +417,7 @@ module.exports = defineTest({ syntheticNamedExports: false }, { - assertions: {}, + attributes: {}, external: false, id: ID_LIB3, meta: {}, diff --git a/test/chunking-form/samples/implicit-dependencies/single-dependency/_config.js b/test/chunking-form/samples/implicit-dependencies/single-dependency/_config.js index ef874d950..7a16431e4 100644 --- a/test/chunking-form/samples/implicit-dependencies/single-dependency/_config.js +++ b/test/chunking-form/samples/implicit-dependencies/single-dependency/_config.js @@ -21,7 +21,7 @@ module.exports = defineTest({ buildEnd() { assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_MAIN))), { id: ID_MAIN, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -31,6 +31,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 22, end: 29, raw: "'./lib'", value: './lib' }, specifiers: [ { type: 'ImportSpecifier', @@ -40,7 +41,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 14, name: 'value' } } ], - source: { type: 'Literal', start: 22, end: 29, value: './lib', raw: "'./lib'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -50,16 +51,16 @@ module.exports = defineTest({ type: 'CallExpression', start: 31, end: 49, + arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], callee: { type: 'MemberExpression', start: 31, end: 42, - object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, - property: { type: 'Identifier', start: 39, end: 42, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 39, end: 42, name: 'log' } }, - arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], optional: false } } @@ -80,7 +81,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [ID_DEP], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB, meta: {}, @@ -99,7 +100,7 @@ module.exports = defineTest({ }); assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(ID_DEP))), { id: ID_DEP, - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -109,6 +110,7 @@ module.exports = defineTest({ type: 'ImportDeclaration', start: 0, end: 30, + source: { type: 'Literal', start: 22, end: 29, raw: "'./lib'", value: './lib' }, specifiers: [ { type: 'ImportSpecifier', @@ -118,7 +120,7 @@ module.exports = defineTest({ local: { type: 'Identifier', start: 9, end: 14, name: 'value' } } ], - source: { type: 'Literal', start: 22, end: 29, value: './lib', raw: "'./lib'" } + attributes: [] }, { type: 'ExpressionStatement', @@ -128,16 +130,16 @@ module.exports = defineTest({ type: 'CallExpression', start: 31, end: 49, + arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], callee: { type: 'MemberExpression', start: 31, end: 42, - object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, - property: { type: 'Identifier', start: 39, end: 42, name: 'log' }, computed: false, - optional: false + object: { type: 'Identifier', start: 31, end: 38, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 39, end: 42, name: 'log' } }, - arguments: [{ type: 'Identifier', start: 43, end: 48, name: 'value' }], optional: false } } @@ -158,7 +160,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: ID_LIB, meta: {}, diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/b.str-amd-f73e15b9.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/b.str-amd-hhqXr9WW.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/b.str-amd-f73e15b9.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/b.str-amd-hhqXr9WW.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/c-amd-c1bed163.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/c-amd-TDR2LH-3.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/c-amd-c1bed163.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/c-amd-TDR2LH-3.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/d-amd-f5c92c04.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/d-amd-VrgHm0xN.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/d-amd-f5c92c04.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/d-amd-VrgHm0xN.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/e-amd-f393b98d.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/e-amd-zwUdnnpR.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/e-amd-f393b98d.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/e-amd-zwUdnnpR.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/f-amd-df81ac71.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/f-amd-6N1j88Mb.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/f-amd-df81ac71.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/f-amd-6N1j88Mb.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/g-amd-1f750b5c.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/g-amd-bhx6veTY.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/g-amd-1f750b5c.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/g-amd-bhx6veTY.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/h-amd-a60c0f22.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/h-amd-wseWVa4P.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/h-amd-a60c0f22.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/h-amd-wseWVa4P.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/main-amd-7vxzdx0k.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/main-amd-7vxzdx0k.js new file mode 100644 index 000000000..7f6d6a9d0 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/main-amd-7vxzdx0k.js @@ -0,0 +1,15 @@ +define(['exports', './nested/a-amd-skgc70zk', './b.str-amd-hhqXr9WW', './c-amd-TDR2LH-3', './d-amd-VrgHm0xN', './e-amd-zwUdnnpR', './f-amd-6N1j88Mb', './g-amd-bhx6veTY', './h-amd-wseWVa4P', './no-ext-amd-KDE3R3Gg'], (function (exports, a, b, c, d, e, f, g, h, noExt) { 'use strict'; + + + + exports.a = a; + exports.b = b; + exports.c = c; + exports.d = d; + exports.e = e; + exports.f = f; + exports.g = g; + exports.h = h; + exports.x = noExt; + +})); diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/main-amd-addffa50.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/main-amd-addffa50.js deleted file mode 100644 index 55eaa1294..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/main-amd-addffa50.js +++ /dev/null @@ -1,15 +0,0 @@ -define(['exports', './nested/a-amd-5dc7856c', './b.str-amd-f73e15b9', './c-amd-c1bed163', './d-amd-f5c92c04', './e-amd-f393b98d', './f-amd-df81ac71', './g-amd-1f750b5c', './h-amd-a60c0f22', './no-ext-amd-9d2c6ef6'], (function (exports, a, b, c, d, e, f, g, h, noExt) { 'use strict'; - - - - exports.a = a; - exports.b = b; - exports.c = c; - exports.d = d; - exports.e = e; - exports.f = f; - exports.g = g; - exports.h = h; - exports.x = noExt; - -})); diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/nested/a-amd-5dc7856c.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/nested/a-amd-skgc70zk.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/nested/a-amd-5dc7856c.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/nested/a-amd-skgc70zk.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/no-ext-amd-9d2c6ef6.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/no-ext-amd-9d2c6ef6.js deleted file mode 100644 index 4d9b6f896..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/no-ext-amd-9d2c6ef6.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var noExt = 'no-ext'; - - return noExt; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/no-ext-amd-9d2c6ef6.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/no-ext-amd-KDE3R3Gg.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/amd/no-ext-amd-9d2c6ef6.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/amd/no-ext-amd-KDE3R3Gg.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/b.str-cjs-6703f3b2.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/b.str-cjs-oMtv8QPW.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/b.str-cjs-6703f3b2.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/b.str-cjs-oMtv8QPW.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/c-cjs-71ac0098.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/c-cjs-5n06CuHC.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/c-cjs-71ac0098.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/c-cjs-5n06CuHC.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/d-cjs-9b009b8f.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/d-cjs-Gz2CiPX0.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/d-cjs-9b009b8f.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/d-cjs-Gz2CiPX0.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/e-cjs-831dad1f.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/e-cjs-WOU85U0_.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/e-cjs-831dad1f.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/e-cjs-WOU85U0_.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/f-cjs-39905a99.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/f-cjs-WoWuXuZP.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/f-cjs-39905a99.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/f-cjs-WoWuXuZP.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/g-cjs-3328e22b.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/g-cjs-ZcQtf4ii.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/g-cjs-3328e22b.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/g-cjs-ZcQtf4ii.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/h-cjs-d8541d4b.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/h-cjs-8Kljj-VE.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/h-cjs-d8541d4b.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/h-cjs-8Kljj-VE.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/main-cjs-JyKGpmTa.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/main-cjs-JyKGpmTa.js new file mode 100644 index 000000000..d3dd810d3 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/main-cjs-JyKGpmTa.js @@ -0,0 +1,23 @@ +'use strict'; + +var a = require('./nested/a-cjs-kvZ4_FEE.js'); +var b = require('./b.str-cjs-oMtv8QPW.js'); +var c = require('./c-cjs-5n06CuHC.js'); +var d = require('./d-cjs-Gz2CiPX0.js'); +var e = require('./e-cjs-WOU85U0_.js'); +var f = require('./f-cjs-WoWuXuZP.js'); +var g = require('./g-cjs-ZcQtf4ii.js'); +var h = require('./h-cjs-8Kljj-VE.js'); +var noExt = require('./no-ext-cjs-bp5EbIHi.js'); + + + +exports.a = a; +exports.b = b; +exports.c = c; +exports.d = d; +exports.e = e; +exports.f = f; +exports.g = g; +exports.h = h; +exports.x = noExt; diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/main-cjs-cb43c6df.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/main-cjs-cb43c6df.js deleted file mode 100644 index 89e6a4239..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/main-cjs-cb43c6df.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var a = require('./nested/a-cjs-80f9b8c3.js'); -var b = require('./b.str-cjs-6703f3b2.js'); -var c = require('./c-cjs-71ac0098.js'); -var d = require('./d-cjs-9b009b8f.js'); -var e = require('./e-cjs-831dad1f.js'); -var f = require('./f-cjs-39905a99.js'); -var g = require('./g-cjs-3328e22b.js'); -var h = require('./h-cjs-d8541d4b.js'); -var noExt = require('./no-ext-cjs-500f8f81.js'); - - - -exports.a = a; -exports.b = b; -exports.c = c; -exports.d = d; -exports.e = e; -exports.f = f; -exports.g = g; -exports.h = h; -exports.x = noExt; diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/nested/a-cjs-80f9b8c3.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/nested/a-cjs-kvZ4_FEE.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/nested/a-cjs-80f9b8c3.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/nested/a-cjs-kvZ4_FEE.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/no-ext-cjs-500f8f81.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/no-ext-cjs-500f8f81.js deleted file mode 100644 index 5e9e9eb2c..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/no-ext-cjs-500f8f81.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var noExt = 'no-ext'; - -module.exports = noExt; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/no-ext-cjs-500f8f81.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/no-ext-cjs-bp5EbIHi.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/cjs/no-ext-cjs-500f8f81.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/cjs/no-ext-cjs-bp5EbIHi.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/b.str-es-3ce883b1.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/b.str-es-Ja5UDcox.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/b.str-es-3ce883b1.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/b.str-es-Ja5UDcox.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/c-es-7b7256f9.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/c-es-kgE3BpZP.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/c-es-7b7256f9.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/c-es-kgE3BpZP.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/d-es-1616849c.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/d-es-aJHyMhkA.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/d-es-1616849c.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/d-es-aJHyMhkA.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/e-es-e18089fa.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/e-es-L3xdJkDr.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/e-es-e18089fa.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/e-es-L3xdJkDr.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/f-es-c1646e12.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/f-es--VxedyqQ.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/f-es-c1646e12.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/f-es--VxedyqQ.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/g-es-968f87d2.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/g-es-spweQtsO.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/g-es-968f87d2.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/g-es-spweQtsO.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/h-es-05491bfa.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/h-es-TRi7J9bn.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/h-es-05491bfa.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/h-es-TRi7J9bn.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/main-es-N06cocRH.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/main-es-N06cocRH.js new file mode 100644 index 000000000..86deb5ad8 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/main-es-N06cocRH.js @@ -0,0 +1,9 @@ +export { default as a } from './nested/a-es-NSAVj3lN.js'; +export { default as b } from './b.str-es-Ja5UDcox.js'; +export { default as c } from './c-es-kgE3BpZP.js'; +export { default as d } from './d-es-aJHyMhkA.js'; +export { default as e } from './e-es-L3xdJkDr.js'; +export { default as f } from './f-es--VxedyqQ.js'; +export { default as g } from './g-es-spweQtsO.js'; +export { default as h } from './h-es-TRi7J9bn.js'; +export { default as x } from './no-ext-es-C7qwrbcM.js'; diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/main-es-f8350081.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/main-es-f8350081.js deleted file mode 100644 index bea0b84c6..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/main-es-f8350081.js +++ /dev/null @@ -1,9 +0,0 @@ -export { default as a } from './nested/a-es-125ea65c.js'; -export { default as b } from './b.str-es-3ce883b1.js'; -export { default as c } from './c-es-7b7256f9.js'; -export { default as d } from './d-es-1616849c.js'; -export { default as e } from './e-es-e18089fa.js'; -export { default as f } from './f-es-c1646e12.js'; -export { default as g } from './g-es-968f87d2.js'; -export { default as h } from './h-es-05491bfa.js'; -export { default as x } from './no-ext-es-1f34b6e8.js'; diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/nested/a-es-125ea65c.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/nested/a-es-NSAVj3lN.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/nested/a-es-125ea65c.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/nested/a-es-NSAVj3lN.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/no-ext-es-1f34b6e8.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/no-ext-es-1f34b6e8.js deleted file mode 100644 index ae037040b..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/no-ext-es-1f34b6e8.js +++ /dev/null @@ -1,3 +0,0 @@ -var noExt = 'no-ext'; - -export { noExt as default }; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/no-ext-es-1f34b6e8.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/no-ext-es-C7qwrbcM.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/es/no-ext-es-1f34b6e8.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/es/no-ext-es-C7qwrbcM.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/b.str-system-2fa3160e.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/b.str-system-7-uTx9xs.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/b.str-system-2fa3160e.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/b.str-system-7-uTx9xs.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/c-system-9442eacd.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/c-system-3c7Uwjh3.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/c-system-9442eacd.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/c-system-3c7Uwjh3.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/d-system-1a05eeda.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/d-system-bygti7CV.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/d-system-1a05eeda.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/d-system-bygti7CV.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/e-system-f73caf6a.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/e-system-Ol7HNm3k.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/e-system-f73caf6a.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/e-system-Ol7HNm3k.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/f-system-b3b06e3f.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/f-system-WkQAXb4K.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/f-system-b3b06e3f.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/f-system-WkQAXb4K.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/g-system-9b3ad652.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/g-system-7SjE1oVU.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/g-system-9b3ad652.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/g-system-7SjE1oVU.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/h-system-6c6b48ca.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/h-system-2b9bPI4v.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/h-system-6c6b48ca.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/h-system-2b9bPI4v.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/main-system-awzr_ZZt.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/main-system-awzr_ZZt.js new file mode 100644 index 000000000..cd61d3dc6 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/main-system-awzr_ZZt.js @@ -0,0 +1,29 @@ +System.register(['./nested/a-system-Sq4jqhxz.js', './b.str-system-7-uTx9xs.js', './c-system-3c7Uwjh3.js', './d-system-bygti7CV.js', './e-system-Ol7HNm3k.js', './f-system-WkQAXb4K.js', './g-system-7SjE1oVU.js', './h-system-2b9bPI4v.js', './no-ext-system-KaJN8U9x.js'], (function (exports) { + 'use strict'; + return { + setters: [function (module) { + exports('a', module.default); + }, function (module) { + exports('b', module.default); + }, function (module) { + exports('c', module.default); + }, function (module) { + exports('d', module.default); + }, function (module) { + exports('e', module.default); + }, function (module) { + exports('f', module.default); + }, function (module) { + exports('g', module.default); + }, function (module) { + exports('h', module.default); + }, function (module) { + exports('x', module.default); + }], + execute: (function () { + + + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/main-system-d08bfef5.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/main-system-d08bfef5.js deleted file mode 100644 index ed7bef411..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/main-system-d08bfef5.js +++ /dev/null @@ -1,29 +0,0 @@ -System.register(['./nested/a-system-db94ffc0.js', './b.str-system-2fa3160e.js', './c-system-9442eacd.js', './d-system-1a05eeda.js', './e-system-f73caf6a.js', './f-system-b3b06e3f.js', './g-system-9b3ad652.js', './h-system-6c6b48ca.js', './no-ext-system-0cf938a8.js'], (function (exports) { - 'use strict'; - return { - setters: [function (module) { - exports('a', module.default); - }, function (module) { - exports('b', module.default); - }, function (module) { - exports('c', module.default); - }, function (module) { - exports('d', module.default); - }, function (module) { - exports('e', module.default); - }, function (module) { - exports('f', module.default); - }, function (module) { - exports('g', module.default); - }, function (module) { - exports('h', module.default); - }, function (module) { - exports('x', module.default); - }], - execute: (function () { - - - - }) - }; -})); diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/nested/a-system-db94ffc0.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/nested/a-system-Sq4jqhxz.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/nested/a-system-db94ffc0.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/nested/a-system-Sq4jqhxz.js diff --git a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/no-ext-system-0cf938a8.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/no-ext-system-0cf938a8.js deleted file mode 100644 index 95f0f758b..000000000 --- a/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/no-ext-system-0cf938a8.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var noExt = exports('default', 'no-ext'); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/no-ext-system-0cf938a8.js b/test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/no-ext-system-KaJN8U9x.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-filename-pattern/_expected/system/no-ext-system-0cf938a8.js rename to test/chunking-form/samples/preserve-modules-filename-pattern/_expected/system/no-ext-system-KaJN8U9x.js diff --git a/test/chunking-form/samples/preserve-modules-root/_config.js b/test/chunking-form/samples/preserve-modules-root/_config.js index f9390f4e2..bc486962d 100644 --- a/test/chunking-form/samples/preserve-modules-root/_config.js +++ b/test/chunking-form/samples/preserve-modules-root/_config.js @@ -11,7 +11,7 @@ module.exports = defineTest({ name: 'convert-slashes', // This simulates converted slashes as used by e.g. Vite async resolveId(source, importer, options) { - const resolved = await this.resolve(source, importer, { ...options, skipSelf: true }); + const resolved = await this.resolve(source, importer, options); return { ...resolved, id: resolved.id.replace(/\\/g, '/') }; } }, diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualModule-amd-03552e5c.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualModule-amd-03552e5c.mjs deleted file mode 100644 index dc4e209f3..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualModule-amd-03552e5c.mjs +++ /dev/null @@ -1,7 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const virtual = "Virtual!"; - - exports.virtual = virtual; - -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualModule-amd-dkCUmZZM.mjs similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualModule-amd-dkCUmZZM.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithAssetExt.str-amd-724c602d.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithAssetExt.str-amd-ZmgZpO4v.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithAssetExt.str-amd-724c602d.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithAssetExt.str-amd-ZmgZpO4v.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithExt-amd-e9dc1b7e.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithExt-amd-fYdXqg2l.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithExt-amd-e9dc1b7e.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/_virtualWithExt-amd-fYdXqg2l.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/main-amd-30156411.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/main-amd-30156411.mjs deleted file mode 100644 index 05b7abceb..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/main-amd-30156411.mjs +++ /dev/null @@ -1,7 +0,0 @@ -define(['./_virtual/_virtualModule-amd-03552e5c.mjs', './_virtual/_virtualWithExt-amd-e9dc1b7e.mjs', './_virtual/_virtualWithAssetExt.str-amd-724c602d.mjs'], (function (_virtualModule, _virtualWithExt, _virtualWithAssetExt) { 'use strict'; - - assert.equal(_virtualModule.virtual, 'Virtual!'); - assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); - assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); - -})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/main-amd-bdsEo1jf.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/main-amd-bdsEo1jf.mjs new file mode 100644 index 000000000..5e7f1a876 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/main-amd-bdsEo1jf.mjs @@ -0,0 +1,7 @@ +define(['./_virtual/_virtualModule-amd-dkCUmZZM.mjs', './_virtual/_virtualWithExt-amd-fYdXqg2l.mjs', './_virtual/_virtualWithAssetExt.str-amd-ZmgZpO4v.mjs'], (function (_virtualModule, _virtualWithExt, _virtualWithAssetExt) { 'use strict'; + + assert.equal(_virtualModule.virtual, 'Virtual!'); + assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); + assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualModule-cjs-bbe1ad5e.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualModule-cjs-bbe1ad5e.mjs deleted file mode 100644 index 266f8b024..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualModule-cjs-bbe1ad5e.mjs +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -const virtual = "Virtual!"; - -exports.virtual = virtual; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualModule-cjs-vsfTWOJ4.mjs similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualModule-cjs-vsfTWOJ4.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithAssetExt.str-cjs-0e561611.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithAssetExt.str-cjs-C3etvDA-.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithAssetExt.str-cjs-0e561611.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithAssetExt.str-cjs-C3etvDA-.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithExt-cjs-b148ca33.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithExt-cjs-Q5dP1jbm.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithExt-cjs-b148ca33.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/_virtualWithExt-cjs-Q5dP1jbm.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/main-cjs-23637a85.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/main-cjs-23637a85.mjs deleted file mode 100644 index 7246a157d..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/main-cjs-23637a85.mjs +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var _virtualModule = require('./_virtual/_virtualModule-cjs-bbe1ad5e.mjs'); -var _virtualWithExt = require('./_virtual/_virtualWithExt-cjs-b148ca33.mjs'); -var _virtualWithAssetExt = require('./_virtual/_virtualWithAssetExt.str-cjs-0e561611.mjs'); - -assert.equal(_virtualModule.virtual, 'Virtual!'); -assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); -assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/main-cjs-6wpvmYGP.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/main-cjs-6wpvmYGP.mjs new file mode 100644 index 000000000..fbbe4aaf0 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/main-cjs-6wpvmYGP.mjs @@ -0,0 +1,9 @@ +'use strict'; + +var _virtualModule = require('./_virtual/_virtualModule-cjs-vsfTWOJ4.mjs'); +var _virtualWithExt = require('./_virtual/_virtualWithExt-cjs-Q5dP1jbm.mjs'); +var _virtualWithAssetExt = require('./_virtual/_virtualWithAssetExt.str-cjs-C3etvDA-.mjs'); + +assert.equal(_virtualModule.virtual, 'Virtual!'); +assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); +assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualModule-es-0lAsaDxt.mjs similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualModule-es-0lAsaDxt.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualModule-es-22303f19.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualModule-es-22303f19.mjs deleted file mode 100644 index 2bada18c3..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualModule-es-22303f19.mjs +++ /dev/null @@ -1,3 +0,0 @@ -const virtual = "Virtual!"; - -export { virtual }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithAssetExt.str-es-07beb78c.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithAssetExt.str-es-i4KuU6IN.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithAssetExt.str-es-07beb78c.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithAssetExt.str-es-i4KuU6IN.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithExt-es-6330be37.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithExt-es-0H_6dNOV.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithExt-es-6330be37.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/_virtualWithExt-es-0H_6dNOV.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/main-es-956265de.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/main-es-956265de.mjs deleted file mode 100644 index b76ad5331..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/main-es-956265de.mjs +++ /dev/null @@ -1,7 +0,0 @@ -import { virtual } from './_virtual/_virtualModule-es-22303f19.mjs'; -import { virtual2 } from './_virtual/_virtualWithExt-es-6330be37.mjs'; -import { virtual3 } from './_virtual/_virtualWithAssetExt.str-es-07beb78c.mjs'; - -assert.equal(virtual, 'Virtual!'); -assert.equal(virtual2, 'Virtual2!'); -assert.equal(virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/main-es-qKNN2CuL.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/main-es-qKNN2CuL.mjs new file mode 100644 index 000000000..1b5730c37 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/main-es-qKNN2CuL.mjs @@ -0,0 +1,7 @@ +import { virtual } from './_virtual/_virtualModule-es-0lAsaDxt.mjs'; +import { virtual2 } from './_virtual/_virtualWithExt-es-0H_6dNOV.mjs'; +import { virtual3 } from './_virtual/_virtualWithAssetExt.str-es-i4KuU6IN.mjs'; + +assert.equal(virtual, 'Virtual!'); +assert.equal(virtual2, 'Virtual2!'); +assert.equal(virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualModule-system-26bc5070.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualModule-system-26bc5070.mjs deleted file mode 100644 index 51cfccb8a..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualModule-system-26bc5070.mjs +++ /dev/null @@ -1,10 +0,0 @@ -System.register([], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const virtual = exports('virtual', "Virtual!"); - - }) - }; -})); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualModule-system-QemGjyyq.mjs similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualModule-system-QemGjyyq.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithAssetExt.str-system-98927794.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithAssetExt.str-system-i71mo7go.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithAssetExt.str-system-98927794.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithAssetExt.str-system-i71mo7go.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithExt-system-11e583df.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithExt-system-m-4Ec4Ay.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithExt-system-11e583df.mjs rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/_virtualWithExt-system-m-4Ec4Ay.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/main-system-36e9b93b.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/main-system-36e9b93b.mjs deleted file mode 100644 index 0471f3969..000000000 --- a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/main-system-36e9b93b.mjs +++ /dev/null @@ -1,20 +0,0 @@ -System.register(['./_virtual/_virtualModule-system-26bc5070.mjs', './_virtual/_virtualWithExt-system-11e583df.mjs', './_virtual/_virtualWithAssetExt.str-system-98927794.mjs'], (function () { - 'use strict'; - var virtual, virtual2, virtual3; - return { - setters: [function (module) { - virtual = module.virtual; - }, function (module) { - virtual2 = module.virtual2; - }, function (module) { - virtual3 = module.virtual3; - }], - execute: (function () { - - assert.equal(virtual, 'Virtual!'); - assert.equal(virtual2, 'Virtual2!'); - assert.equal(virtual3, 'Virtual3!'); - - }) - }; -})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/main-system-vB0aGC5C.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/main-system-vB0aGC5C.mjs new file mode 100644 index 000000000..7c878c7f4 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/main-system-vB0aGC5C.mjs @@ -0,0 +1,20 @@ +System.register(['./_virtual/_virtualModule-system-QemGjyyq.mjs', './_virtual/_virtualWithExt-system-m-4Ec4Ay.mjs', './_virtual/_virtualWithAssetExt.str-system-i71mo7go.mjs'], (function () { + 'use strict'; + var virtual, virtual2, virtual3; + return { + setters: [function (module) { + virtual = module.virtual; + }, function (module) { + virtual2 = module.virtual2; + }, function (module) { + virtual3 = module.virtual3; + }], + execute: (function () { + + assert.equal(virtual, 'Virtual!'); + assert.equal(virtual2, 'Virtual2!'); + assert.equal(virtual3, 'Virtual3!'); + + }) + }; +})); diff --git a/test/chunking-form/samples/render-chunk-transform/_config.js b/test/chunking-form/samples/render-chunk-transform/_config.js index d45b42c72..f934d0f47 100644 --- a/test/chunking-form/samples/render-chunk-transform/_config.js +++ b/test/chunking-form/samples/render-chunk-transform/_config.js @@ -21,7 +21,7 @@ module.exports = defineTest({ generateBundle(options, bundle) { const sanitizedBundle = JSON.parse( replaceDirectoryInStringifiedObject(bundle, __dirname).replace( - /(entry-\w+)-\w+\.js/g, + /(entry-\w+)-[\w|-]+\.js/g, (match, name) => `${name}.js` ) ); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main1-31ed1903.js b/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main1-kZfhqQ-c.js similarity index 100% rename from test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main1-31ed1903.js rename to test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main1-kZfhqQ-c.js diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main2-4c3da82f.js b/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main2-4c3da82f.js deleted file mode 100644 index a8a0784ce..000000000 --- a/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main2-4c3da82f.js +++ /dev/null @@ -1,7 +0,0 @@ -import { added } from "./entry-main1-31ed1903.js"; -console.log(added); -define((function () { 'use strict'; - - console.log('main2'); - -})); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main2-HAN3t8tF.js b/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main2-HAN3t8tF.js new file mode 100644 index 000000000..9b52fb41e --- /dev/null +++ b/test/chunking-form/samples/render-chunk-transform/_expected/amd/entry-main2-HAN3t8tF.js @@ -0,0 +1,7 @@ +import { added } from "./entry-main1-kZfhqQ-c.js"; +console.log(added); +define((function () { 'use strict'; + + console.log('main2'); + +})); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main1-c6673fa5.js b/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main1-vmW_xTy-.js similarity index 100% rename from test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main1-c6673fa5.js rename to test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main1-vmW_xTy-.js diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main2-Nn78jd3g.js b/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main2-Nn78jd3g.js new file mode 100644 index 000000000..5bc61f1e7 --- /dev/null +++ b/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main2-Nn78jd3g.js @@ -0,0 +1,5 @@ +import { added } from "./entry-main1-vmW_xTy-.js"; +console.log(added); +'use strict'; + +console.log('main2'); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main2-a3a04675.js b/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main2-a3a04675.js deleted file mode 100644 index af9ae0e96..000000000 --- a/test/chunking-form/samples/render-chunk-transform/_expected/cjs/entry-main2-a3a04675.js +++ /dev/null @@ -1,5 +0,0 @@ -import { added } from "./entry-main1-c6673fa5.js"; -console.log(added); -'use strict'; - -console.log('main2'); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main1-56d7d368.js b/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main1-NHE3CPgw.js similarity index 100% rename from test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main1-56d7d368.js rename to test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main1-NHE3CPgw.js diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main2-7827261c.js b/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main2-7827261c.js deleted file mode 100644 index 183983b05..000000000 --- a/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main2-7827261c.js +++ /dev/null @@ -1,3 +0,0 @@ -import { added } from "./entry-main1-56d7d368.js"; -console.log(added); -console.log('main2'); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main2-bcI4ej2q.js b/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main2-bcI4ej2q.js new file mode 100644 index 000000000..04d953904 --- /dev/null +++ b/test/chunking-form/samples/render-chunk-transform/_expected/es/entry-main2-bcI4ej2q.js @@ -0,0 +1,3 @@ +import { added } from "./entry-main1-NHE3CPgw.js"; +console.log(added); +console.log('main2'); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main1-d7dc9358.js b/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main1-ulqZAx1e.js similarity index 100% rename from test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main1-d7dc9358.js rename to test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main1-ulqZAx1e.js diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main2-9TMBLN6w.js b/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main2-9TMBLN6w.js new file mode 100644 index 000000000..5af564bfc --- /dev/null +++ b/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main2-9TMBLN6w.js @@ -0,0 +1,12 @@ +import { added } from "./entry-main1-ulqZAx1e.js"; +console.log(added); +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + console.log('main2'); + + }) + }; +})); diff --git a/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main2-f1bbcc21.js b/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main2-f1bbcc21.js deleted file mode 100644 index f97000e82..000000000 --- a/test/chunking-form/samples/render-chunk-transform/_expected/system/entry-main2-f1bbcc21.js +++ /dev/null @@ -1,12 +0,0 @@ -import { added } from "./entry-main1-d7dc9358.js"; -console.log(added); -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log('main2'); - - }) - }; -})); diff --git a/test/chunking-form/samples/render-chunk/_expected/amd/asset-test-9f86d081 b/test/chunking-form/samples/render-chunk/_expected/amd/asset-test-uF-4QoZ1 similarity index 100% rename from test/chunking-form/samples/render-chunk/_expected/amd/asset-test-9f86d081 rename to test/chunking-form/samples/render-chunk/_expected/amd/asset-test-uF-4QoZ1 diff --git a/test/chunking-form/samples/render-chunk/_expected/amd/chunk-dep2-_bTcBm_f.js b/test/chunking-form/samples/render-chunk/_expected/amd/chunk-dep2-_bTcBm_f.js new file mode 100644 index 000000000..fff484f12 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/amd/chunk-dep2-_bTcBm_f.js @@ -0,0 +1,43 @@ +define(['require', 'exports'], (function (require, exports) { 'use strict'; + + var num = 2; + console.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href); + + exports.num = num; + +})); +console.log({ + "exports": [ + "num" + ], + "facadeModuleId": null, + "isDynamicEntry": false, + "isEntry": false, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep2.js" + ], + "name": "dep2", + "type": "chunk", + "dynamicImports": [], + "fileName": "chunk-dep2-_bTcBm_f.js", + "implicitlyLoadedBefore": [], + "importedBindings": {}, + "imports": [], + "modules": { + "**/dep2.js": { + "code": "\tvar num = 2;\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 117 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-n5Rl5PjH.js","entry-main2-ne4fysq0.js","chunk-dep2-_bTcBm_f.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/amd/chunk-dep2-af768b5f.js b/test/chunking-form/samples/render-chunk/_expected/amd/chunk-dep2-af768b5f.js deleted file mode 100644 index 0ad19885d..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/amd/chunk-dep2-af768b5f.js +++ /dev/null @@ -1,43 +0,0 @@ -define(['require', 'exports'], (function (require, exports) { 'use strict'; - - var num = 2; - console.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href); - - exports.num = num; - -})); -console.log({ - "exports": [ - "num" - ], - "facadeModuleId": null, - "isDynamicEntry": false, - "isEntry": false, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep2.js" - ], - "name": "dep2", - "type": "chunk", - "dynamicImports": [], - "fileName": "chunk-dep2-af768b5f.js", - "implicitlyLoadedBefore": [], - "importedBindings": {}, - "imports": [], - "modules": { - "**/dep2.js": { - "code": "\tvar num = 2;\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 117 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-62378d9a.js","entry-main2-d26bed01.js","chunk-dep2-af768b5f.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/amd/entry-main1-62378d9a.js b/test/chunking-form/samples/render-chunk/_expected/amd/entry-main1-62378d9a.js deleted file mode 100644 index 06d127c09..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/amd/entry-main1-62378d9a.js +++ /dev/null @@ -1,56 +0,0 @@ -define(['require', './chunk-dep2-af768b5f'], (function (require, dep2) { 'use strict'; - - var num = 1; - console.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href); - - console.log(num + dep2.num); - console.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href); - -})); -console.log({ - "exports": [], - "facadeModuleId": "**/main1.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep1.js", - "**/main1.js" - ], - "name": "main1", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main1-62378d9a.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-af768b5f.js": [ - "num" - ] - }, - "imports": [ - "chunk-dep2-af768b5f.js" - ], - "modules": { - "**/dep1.js": { - "code": "\tvar num = 1;\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 117 - }, - "**/main1.js": { - "code": "\tconsole.log(num + dep2.num);\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href);", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 133 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-62378d9a.js","entry-main2-d26bed01.js","chunk-dep2-af768b5f.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/amd/entry-main1-n5Rl5PjH.js b/test/chunking-form/samples/render-chunk/_expected/amd/entry-main1-n5Rl5PjH.js new file mode 100644 index 000000000..d0bffe932 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/amd/entry-main1-n5Rl5PjH.js @@ -0,0 +1,56 @@ +define(['require', './chunk-dep2-_bTcBm_f'], (function (require, dep2) { 'use strict'; + + var num = 1; + console.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href); + + console.log(num + dep2.num); + console.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href); + +})); +console.log({ + "exports": [], + "facadeModuleId": "**/main1.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep1.js", + "**/main1.js" + ], + "name": "main1", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main1-n5Rl5PjH.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-_bTcBm_f.js": [ + "num" + ] + }, + "imports": [ + "chunk-dep2-_bTcBm_f.js" + ], + "modules": { + "**/dep1.js": { + "code": "\tvar num = 1;\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 117 + }, + "**/main1.js": { + "code": "\tconsole.log(num + dep2.num);\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href);", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 133 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-n5Rl5PjH.js","entry-main2-ne4fysq0.js","chunk-dep2-_bTcBm_f.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/amd/entry-main2-d26bed01.js b/test/chunking-form/samples/render-chunk/_expected/amd/entry-main2-d26bed01.js deleted file mode 100644 index 86f2d8916..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/amd/entry-main2-d26bed01.js +++ /dev/null @@ -1,56 +0,0 @@ -define(['require', './chunk-dep2-af768b5f'], (function (require, dep2) { 'use strict'; - - var num = 3; - console.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href); - - console.log(dep2.num + num); - console.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href); - -})); -console.log({ - "exports": [], - "facadeModuleId": "**/main2.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep3.js", - "**/main2.js" - ], - "name": "main2", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main2-d26bed01.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-af768b5f.js": [ - "num" - ] - }, - "imports": [ - "chunk-dep2-af768b5f.js" - ], - "modules": { - "**/dep3.js": { - "code": "\tvar num = 3;\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 117 - }, - "**/main2.js": { - "code": "\tconsole.log(dep2.num + num);\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-9f86d081'), document.baseURI).href);", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 133 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-62378d9a.js","entry-main2-d26bed01.js","chunk-dep2-af768b5f.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/amd/entry-main2-ne4fysq0.js b/test/chunking-form/samples/render-chunk/_expected/amd/entry-main2-ne4fysq0.js new file mode 100644 index 000000000..2ae915dd6 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/amd/entry-main2-ne4fysq0.js @@ -0,0 +1,56 @@ +define(['require', './chunk-dep2-_bTcBm_f'], (function (require, dep2) { 'use strict'; + + var num = 3; + console.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href); + + console.log(dep2.num + num); + console.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href); + +})); +console.log({ + "exports": [], + "facadeModuleId": "**/main2.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep3.js", + "**/main2.js" + ], + "name": "main2", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main2-ne4fysq0.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-_bTcBm_f.js": [ + "num" + ] + }, + "imports": [ + "chunk-dep2-_bTcBm_f.js" + ], + "modules": { + "**/dep3.js": { + "code": "\tvar num = 3;\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 117 + }, + "**/main2.js": { + "code": "\tconsole.log(dep2.num + num);\n\tconsole.log('referenced asset', new URL(require.toUrl('./asset-test-uF-4QoZ1'), document.baseURI).href);", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 133 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-n5Rl5PjH.js","entry-main2-ne4fysq0.js","chunk-dep2-_bTcBm_f.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/cjs/asset-test-9f86d081 b/test/chunking-form/samples/render-chunk/_expected/cjs/asset-test-uF-4QoZ1 similarity index 100% rename from test/chunking-form/samples/render-chunk/_expected/cjs/asset-test-9f86d081 rename to test/chunking-form/samples/render-chunk/_expected/cjs/asset-test-uF-4QoZ1 diff --git a/test/chunking-form/samples/render-chunk/_expected/cjs/chunk-dep2-8d89c265.js b/test/chunking-form/samples/render-chunk/_expected/cjs/chunk-dep2-8d89c265.js deleted file mode 100644 index 8f14f5a6e..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/cjs/chunk-dep2-8d89c265.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -var num = 2; -console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href)); - -exports.num = num; -console.log({ - "exports": [ - "num" - ], - "facadeModuleId": null, - "isDynamicEntry": false, - "isEntry": false, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep2.js" - ], - "name": "dep2", - "type": "chunk", - "dynamicImports": [], - "fileName": "chunk-dep2-8d89c265.js", - "implicitlyLoadedBefore": [], - "importedBindings": {}, - "imports": [], - "modules": { - "**/dep2.js": { - "code": "var num = 2;\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href));", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 269 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-5be92ae4.js","entry-main2-20c5a0f4.js","chunk-dep2-8d89c265.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/cjs/chunk-dep2-XPNbbDh-.js b/test/chunking-form/samples/render-chunk/_expected/cjs/chunk-dep2-XPNbbDh-.js new file mode 100644 index 000000000..f203a28c8 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/cjs/chunk-dep2-XPNbbDh-.js @@ -0,0 +1,41 @@ +'use strict'; + +var num = 2; +console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href)); + +exports.num = num; +console.log({ + "exports": [ + "num" + ], + "facadeModuleId": null, + "isDynamicEntry": false, + "isEntry": false, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep2.js" + ], + "name": "dep2", + "type": "chunk", + "dynamicImports": [], + "fileName": "chunk-dep2-XPNbbDh-.js", + "implicitlyLoadedBefore": [], + "importedBindings": {}, + "imports": [], + "modules": { + "**/dep2.js": { + "code": "var num = 2;\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href));", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 269 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-zV-9xTLy.js","entry-main2-urBx_vfo.js","chunk-dep2-XPNbbDh-.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main1-5be92ae4.js b/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main1-5be92ae4.js deleted file mode 100644 index 3dce2c571..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main1-5be92ae4.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -var dep2 = require('./chunk-dep2-8d89c265.js'); - -var num = 1; -console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href)); - -console.log(num + dep2.num); -console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href)); -console.log({ - "exports": [], - "facadeModuleId": "**/main1.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep1.js", - "**/main1.js" - ], - "name": "main1", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main1-5be92ae4.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-8d89c265.js": [ - "num" - ] - }, - "imports": [ - "chunk-dep2-8d89c265.js" - ], - "modules": { - "**/dep1.js": { - "code": "var num = 1;\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href));", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 269 - }, - "**/main1.js": { - "code": "console.log(num + dep2.num);\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href));", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 285 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-5be92ae4.js","entry-main2-20c5a0f4.js","chunk-dep2-8d89c265.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main1-zV-9xTLy.js b/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main1-zV-9xTLy.js new file mode 100644 index 000000000..723e55840 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main1-zV-9xTLy.js @@ -0,0 +1,56 @@ +'use strict'; + +var dep2 = require('./chunk-dep2-XPNbbDh-.js'); + +var num = 1; +console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href)); + +console.log(num + dep2.num); +console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href)); +console.log({ + "exports": [], + "facadeModuleId": "**/main1.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep1.js", + "**/main1.js" + ], + "name": "main1", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main1-zV-9xTLy.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-XPNbbDh-.js": [ + "num" + ] + }, + "imports": [ + "chunk-dep2-XPNbbDh-.js" + ], + "modules": { + "**/dep1.js": { + "code": "var num = 1;\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href));", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 269 + }, + "**/main1.js": { + "code": "console.log(num + dep2.num);\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href));", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 285 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-zV-9xTLy.js","entry-main2-urBx_vfo.js","chunk-dep2-XPNbbDh-.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main2-20c5a0f4.js b/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main2-20c5a0f4.js deleted file mode 100644 index d72c61b69..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main2-20c5a0f4.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -var dep2 = require('./chunk-dep2-8d89c265.js'); - -var num = 3; -console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href)); - -console.log(dep2.num + num); -console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href)); -console.log({ - "exports": [], - "facadeModuleId": "**/main2.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep3.js", - "**/main2.js" - ], - "name": "main2", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main2-20c5a0f4.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-8d89c265.js": [ - "num" - ] - }, - "imports": [ - "chunk-dep2-8d89c265.js" - ], - "modules": { - "**/dep3.js": { - "code": "var num = 3;\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href));", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 269 - }, - "**/main2.js": { - "code": "console.log(dep2.num + num);\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-9f86d081').href : new URL('asset-test-9f86d081', document.currentScript && document.currentScript.src || document.baseURI).href));", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 285 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-5be92ae4.js","entry-main2-20c5a0f4.js","chunk-dep2-8d89c265.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main2-urBx_vfo.js b/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main2-urBx_vfo.js new file mode 100644 index 000000000..05b4f92fa --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/cjs/entry-main2-urBx_vfo.js @@ -0,0 +1,56 @@ +'use strict'; + +var dep2 = require('./chunk-dep2-XPNbbDh-.js'); + +var num = 3; +console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href)); + +console.log(dep2.num + num); +console.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href)); +console.log({ + "exports": [], + "facadeModuleId": "**/main2.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep3.js", + "**/main2.js" + ], + "name": "main2", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main2-urBx_vfo.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-XPNbbDh-.js": [ + "num" + ] + }, + "imports": [ + "chunk-dep2-XPNbbDh-.js" + ], + "modules": { + "**/dep3.js": { + "code": "var num = 3;\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href));", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 269 + }, + "**/main2.js": { + "code": "console.log(dep2.num + num);\nconsole.log('referenced asset', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/asset-test-uF-4QoZ1').href : new URL('asset-test-uF-4QoZ1', document.currentScript && document.currentScript.src || document.baseURI).href));", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 285 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-zV-9xTLy.js","entry-main2-urBx_vfo.js","chunk-dep2-XPNbbDh-.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/es/asset-test-9f86d081 b/test/chunking-form/samples/render-chunk/_expected/es/asset-test-uF-4QoZ1 similarity index 100% rename from test/chunking-form/samples/render-chunk/_expected/es/asset-test-9f86d081 rename to test/chunking-form/samples/render-chunk/_expected/es/asset-test-uF-4QoZ1 diff --git a/test/chunking-form/samples/render-chunk/_expected/es/chunk-dep2-0da9d5f1.js b/test/chunking-form/samples/render-chunk/_expected/es/chunk-dep2-0da9d5f1.js deleted file mode 100644 index 385503c25..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/es/chunk-dep2-0da9d5f1.js +++ /dev/null @@ -1,39 +0,0 @@ -var num = 2; -console.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href); - -export { num as n }; -console.log({ - "exports": [ - "n" - ], - "facadeModuleId": null, - "isDynamicEntry": false, - "isEntry": false, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep2.js" - ], - "name": "dep2", - "type": "chunk", - "dynamicImports": [], - "fileName": "chunk-dep2-0da9d5f1.js", - "implicitlyLoadedBefore": [], - "importedBindings": {}, - "imports": [], - "modules": { - "**/dep2.js": { - "code": "var num = 2;\nconsole.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 99 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-f3f64fb9.js","entry-main2-d0add96f.js","chunk-dep2-0da9d5f1.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/es/chunk-dep2-P6jMk6bJ.js b/test/chunking-form/samples/render-chunk/_expected/es/chunk-dep2-P6jMk6bJ.js new file mode 100644 index 000000000..7b4ceb759 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/es/chunk-dep2-P6jMk6bJ.js @@ -0,0 +1,39 @@ +var num = 2; +console.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href); + +export { num as n }; +console.log({ + "exports": [ + "n" + ], + "facadeModuleId": null, + "isDynamicEntry": false, + "isEntry": false, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep2.js" + ], + "name": "dep2", + "type": "chunk", + "dynamicImports": [], + "fileName": "chunk-dep2-P6jMk6bJ.js", + "implicitlyLoadedBefore": [], + "importedBindings": {}, + "imports": [], + "modules": { + "**/dep2.js": { + "code": "var num = 2;\nconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 99 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1--LupZW-p.js","entry-main2-wXJ52_9X.js","chunk-dep2-P6jMk6bJ.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/es/entry-main1--LupZW-p.js b/test/chunking-form/samples/render-chunk/_expected/es/entry-main1--LupZW-p.js new file mode 100644 index 000000000..d4f4182a6 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/es/entry-main1--LupZW-p.js @@ -0,0 +1,54 @@ +import { n as num$1 } from './chunk-dep2-P6jMk6bJ.js'; + +var num = 1; +console.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href); + +console.log(num + num$1); +console.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href); +console.log({ + "exports": [], + "facadeModuleId": "**/main1.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep1.js", + "**/main1.js" + ], + "name": "main1", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main1--LupZW-p.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-P6jMk6bJ.js": [ + "n" + ] + }, + "imports": [ + "chunk-dep2-P6jMk6bJ.js" + ], + "modules": { + "**/dep1.js": { + "code": "var num = 1;\nconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 99 + }, + "**/main1.js": { + "code": "console.log(num + num$1);\nconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href);", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 112 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1--LupZW-p.js","entry-main2-wXJ52_9X.js","chunk-dep2-P6jMk6bJ.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/es/entry-main1-f3f64fb9.js b/test/chunking-form/samples/render-chunk/_expected/es/entry-main1-f3f64fb9.js deleted file mode 100644 index bf56a24de..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/es/entry-main1-f3f64fb9.js +++ /dev/null @@ -1,54 +0,0 @@ -import { n as num$1 } from './chunk-dep2-0da9d5f1.js'; - -var num = 1; -console.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href); - -console.log(num + num$1); -console.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href); -console.log({ - "exports": [], - "facadeModuleId": "**/main1.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep1.js", - "**/main1.js" - ], - "name": "main1", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main1-f3f64fb9.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-0da9d5f1.js": [ - "n" - ] - }, - "imports": [ - "chunk-dep2-0da9d5f1.js" - ], - "modules": { - "**/dep1.js": { - "code": "var num = 1;\nconsole.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 99 - }, - "**/main1.js": { - "code": "console.log(num + num$1);\nconsole.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href);", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 112 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-f3f64fb9.js","entry-main2-d0add96f.js","chunk-dep2-0da9d5f1.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/es/entry-main2-d0add96f.js b/test/chunking-form/samples/render-chunk/_expected/es/entry-main2-d0add96f.js deleted file mode 100644 index ec8304ffc..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/es/entry-main2-d0add96f.js +++ /dev/null @@ -1,54 +0,0 @@ -import { n as num$1 } from './chunk-dep2-0da9d5f1.js'; - -var num = 3; -console.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href); - -console.log(num$1 + num); -console.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href); -console.log({ - "exports": [], - "facadeModuleId": "**/main2.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep3.js", - "**/main2.js" - ], - "name": "main2", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main2-d0add96f.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-0da9d5f1.js": [ - "n" - ] - }, - "imports": [ - "chunk-dep2-0da9d5f1.js" - ], - "modules": { - "**/dep3.js": { - "code": "var num = 3;\nconsole.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 99 - }, - "**/main2.js": { - "code": "console.log(num$1 + num);\nconsole.log('referenced asset', new URL('asset-test-9f86d081', import.meta.url).href);", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 112 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-f3f64fb9.js","entry-main2-d0add96f.js","chunk-dep2-0da9d5f1.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/es/entry-main2-wXJ52_9X.js b/test/chunking-form/samples/render-chunk/_expected/es/entry-main2-wXJ52_9X.js new file mode 100644 index 000000000..0d7280858 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/es/entry-main2-wXJ52_9X.js @@ -0,0 +1,54 @@ +import { n as num$1 } from './chunk-dep2-P6jMk6bJ.js'; + +var num = 3; +console.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href); + +console.log(num$1 + num); +console.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href); +console.log({ + "exports": [], + "facadeModuleId": "**/main2.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep3.js", + "**/main2.js" + ], + "name": "main2", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main2-wXJ52_9X.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-P6jMk6bJ.js": [ + "n" + ] + }, + "imports": [ + "chunk-dep2-P6jMk6bJ.js" + ], + "modules": { + "**/dep3.js": { + "code": "var num = 3;\nconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 99 + }, + "**/main2.js": { + "code": "console.log(num$1 + num);\nconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', import.meta.url).href);", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 112 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1--LupZW-p.js","entry-main2-wXJ52_9X.js","chunk-dep2-P6jMk6bJ.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/system/asset-test-9f86d081 b/test/chunking-form/samples/render-chunk/_expected/system/asset-test-uF-4QoZ1 similarity index 100% rename from test/chunking-form/samples/render-chunk/_expected/system/asset-test-9f86d081 rename to test/chunking-form/samples/render-chunk/_expected/system/asset-test-uF-4QoZ1 diff --git a/test/chunking-form/samples/render-chunk/_expected/system/chunk-dep2-be1287c1.js b/test/chunking-form/samples/render-chunk/_expected/system/chunk-dep2-be1287c1.js deleted file mode 100644 index 48f5a405d..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/system/chunk-dep2-be1287c1.js +++ /dev/null @@ -1,46 +0,0 @@ -System.register([], (function (exports, module) { - 'use strict'; - return { - execute: (function () { - - var num = exports('n', 2); - console.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href); - - }) - }; -})); -console.log({ - "exports": [ - "n" - ], - "facadeModuleId": null, - "isDynamicEntry": false, - "isEntry": false, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep2.js" - ], - "name": "dep2", - "type": "chunk", - "dynamicImports": [], - "fileName": "chunk-dep2-be1287c1.js", - "implicitlyLoadedBefore": [], - "importedBindings": {}, - "imports": [], - "modules": { - "**/dep2.js": { - "code": "\t\t\tvar num = exports('n', 2);\n\t\t\tconsole.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 113 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-f0891ef8.js","entry-main2-ef5991ab.js","chunk-dep2-be1287c1.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/system/chunk-dep2-tTS3nOMy.js b/test/chunking-form/samples/render-chunk/_expected/system/chunk-dep2-tTS3nOMy.js new file mode 100644 index 000000000..c955dbaf4 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/system/chunk-dep2-tTS3nOMy.js @@ -0,0 +1,46 @@ +System.register([], (function (exports, module) { + 'use strict'; + return { + execute: (function () { + + var num = exports('n', 2); + console.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href); + + }) + }; +})); +console.log({ + "exports": [ + "n" + ], + "facadeModuleId": null, + "isDynamicEntry": false, + "isEntry": false, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep2.js" + ], + "name": "dep2", + "type": "chunk", + "dynamicImports": [], + "fileName": "chunk-dep2-tTS3nOMy.js", + "implicitlyLoadedBefore": [], + "importedBindings": {}, + "imports": [], + "modules": { + "**/dep2.js": { + "code": "\t\t\tvar num = exports('n', 2);\n\t\t\tconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 113 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-j8-hK8pw.js","entry-main2-Y97yXNTt.js","chunk-dep2-tTS3nOMy.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/system/entry-main1-f0891ef8.js b/test/chunking-form/samples/render-chunk/_expected/system/entry-main1-f0891ef8.js deleted file mode 100644 index a9ede4a55..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/system/entry-main1-f0891ef8.js +++ /dev/null @@ -1,65 +0,0 @@ -System.register(['./chunk-dep2-be1287c1.js'], (function (exports, module) { - 'use strict'; - var num$1; - return { - setters: [function (module) { - num$1 = module.n; - }], - execute: (function () { - - var num = 1; - console.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href); - - console.log(num + num$1); - console.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href); - - }) - }; -})); -console.log({ - "exports": [], - "facadeModuleId": "**/main1.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep1.js", - "**/main1.js" - ], - "name": "main1", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main1-f0891ef8.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-be1287c1.js": [ - "n" - ] - }, - "imports": [ - "chunk-dep2-be1287c1.js" - ], - "modules": { - "**/dep1.js": { - "code": "\t\t\tvar num = 1;\n\t\t\tconsole.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 99 - }, - "**/main1.js": { - "code": "\t\t\tconsole.log(num + num$1);\n\t\t\tconsole.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href);", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 112 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-f0891ef8.js","entry-main2-ef5991ab.js","chunk-dep2-be1287c1.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/render-chunk/_expected/system/entry-main1-j8-hK8pw.js b/test/chunking-form/samples/render-chunk/_expected/system/entry-main1-j8-hK8pw.js new file mode 100644 index 000000000..113d4903a --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/system/entry-main1-j8-hK8pw.js @@ -0,0 +1,65 @@ +System.register(['./chunk-dep2-tTS3nOMy.js'], (function (exports, module) { + 'use strict'; + var num$1; + return { + setters: [function (module) { + num$1 = module.n; + }], + execute: (function () { + + var num = 1; + console.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href); + + console.log(num + num$1); + console.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href); + + }) + }; +})); +console.log({ + "exports": [], + "facadeModuleId": "**/main1.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep1.js", + "**/main1.js" + ], + "name": "main1", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main1-j8-hK8pw.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-tTS3nOMy.js": [ + "n" + ] + }, + "imports": [ + "chunk-dep2-tTS3nOMy.js" + ], + "modules": { + "**/dep1.js": { + "code": "\t\t\tvar num = 1;\n\t\t\tconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 99 + }, + "**/main1.js": { + "code": "\t\t\tconsole.log(num + num$1);\n\t\t\tconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href);", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 112 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-j8-hK8pw.js","entry-main2-Y97yXNTt.js","chunk-dep2-tTS3nOMy.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/system/entry-main2-Y97yXNTt.js b/test/chunking-form/samples/render-chunk/_expected/system/entry-main2-Y97yXNTt.js new file mode 100644 index 000000000..b869aed54 --- /dev/null +++ b/test/chunking-form/samples/render-chunk/_expected/system/entry-main2-Y97yXNTt.js @@ -0,0 +1,65 @@ +System.register(['./chunk-dep2-tTS3nOMy.js'], (function (exports, module) { + 'use strict'; + var num$1; + return { + setters: [function (module) { + num$1 = module.n; + }], + execute: (function () { + + var num = 3; + console.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href); + + console.log(num$1 + num); + console.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href); + + }) + }; +})); +console.log({ + "exports": [], + "facadeModuleId": "**/main2.js", + "isDynamicEntry": false, + "isEntry": true, + "isImplicitEntry": false, + "moduleIds": [ + "**/dep3.js", + "**/main2.js" + ], + "name": "main2", + "type": "chunk", + "dynamicImports": [], + "fileName": "entry-main2-Y97yXNTt.js", + "implicitlyLoadedBefore": [], + "importedBindings": { + "chunk-dep2-tTS3nOMy.js": [ + "n" + ] + }, + "imports": [ + "chunk-dep2-tTS3nOMy.js" + ], + "modules": { + "**/dep3.js": { + "code": "\t\t\tvar num = 3;\n\t\t\tconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href);", + "originalLength": 19, + "removedExports": [], + "renderedExports": [ + "num" + ], + "renderedLength": 99 + }, + "**/main2.js": { + "code": "\t\t\tconsole.log(num$1 + num);\n\t\t\tconsole.log('referenced asset', new URL('asset-test-uF-4QoZ1', module.meta.url).href);", + "originalLength": 102, + "removedExports": [], + "renderedExports": [], + "renderedLength": 112 + } + }, + "referencedFiles": [ + "asset-test-uF-4QoZ1" + ] +}); +console.log('all chunks', ["entry-main1-j8-hK8pw.js","entry-main2-Y97yXNTt.js","chunk-dep2-tTS3nOMy.js"]) +console.log('referenced asset in renderChunk', 'asset-test-uF-4QoZ1'); diff --git a/test/chunking-form/samples/render-chunk/_expected/system/entry-main2-ef5991ab.js b/test/chunking-form/samples/render-chunk/_expected/system/entry-main2-ef5991ab.js deleted file mode 100644 index 2d601bb5d..000000000 --- a/test/chunking-form/samples/render-chunk/_expected/system/entry-main2-ef5991ab.js +++ /dev/null @@ -1,65 +0,0 @@ -System.register(['./chunk-dep2-be1287c1.js'], (function (exports, module) { - 'use strict'; - var num$1; - return { - setters: [function (module) { - num$1 = module.n; - }], - execute: (function () { - - var num = 3; - console.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href); - - console.log(num$1 + num); - console.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href); - - }) - }; -})); -console.log({ - "exports": [], - "facadeModuleId": "**/main2.js", - "isDynamicEntry": false, - "isEntry": true, - "isImplicitEntry": false, - "moduleIds": [ - "**/dep3.js", - "**/main2.js" - ], - "name": "main2", - "type": "chunk", - "dynamicImports": [], - "fileName": "entry-main2-ef5991ab.js", - "implicitlyLoadedBefore": [], - "importedBindings": { - "chunk-dep2-be1287c1.js": [ - "n" - ] - }, - "imports": [ - "chunk-dep2-be1287c1.js" - ], - "modules": { - "**/dep3.js": { - "code": "\t\t\tvar num = 3;\n\t\t\tconsole.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href);", - "originalLength": 19, - "removedExports": [], - "renderedExports": [ - "num" - ], - "renderedLength": 99 - }, - "**/main2.js": { - "code": "\t\t\tconsole.log(num$1 + num);\n\t\t\tconsole.log('referenced asset', new URL('asset-test-9f86d081', module.meta.url).href);", - "originalLength": 102, - "removedExports": [], - "renderedExports": [], - "renderedLength": 112 - } - }, - "referencedFiles": [ - "asset-test-9f86d081" - ] -}); -console.log('all chunks', ["entry-main1-f0891ef8.js","entry-main2-ef5991ab.js","chunk-dep2-be1287c1.js"]) -console.log('referenced asset in renderChunk', 'asset-test-9f86d081'); diff --git a/test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-resolved-9e0f7ca5.txt b/test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-resolved-7pLh6Sdd.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-resolved-9e0f7ca5.txt rename to test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-resolved-7pLh6Sdd.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-solved-230ecafd.txt b/test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-solved-0oyI4hTT.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-solved-230ecafd.txt rename to test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-solved-0oyI4hTT.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-unresolved-f4c1e86c.txt b/test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-unresolved-e0Iev6TZ.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-unresolved-f4c1e86c.txt rename to test/chunking-form/samples/resolve-file-url/_expected/amd/assets/asset-unresolved-e0Iev6TZ.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/amd/main.js b/test/chunking-form/samples/resolve-file-url/_expected/amd/main.js index af4a4d205..ed660feea 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/amd/main.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/amd/main.js @@ -3,7 +3,7 @@ define(['require'], (function (require) { 'use strict'; const asset$1 = 'resolved'; const chunk$1 = 'resolved'; - const asset = new URL(require.toUrl('./assets/asset-unresolved-f4c1e86c.txt'), document.baseURI).href; + const asset = new URL(require.toUrl('./assets/asset-unresolved-e0Iev6TZ.txt'), document.baseURI).href; const chunk = new URL(require.toUrl('./nested/chunk2.js'), document.baseURI).href; new Promise(function (resolve, reject) { require(['./nested/chunk'], resolve, reject); }).then(result => console.log(result, chunk$1, chunk, asset$1, asset)); diff --git a/test/chunking-form/samples/resolve-file-url/_expected/amd/nested/chunk.js b/test/chunking-form/samples/resolve-file-url/_expected/amd/nested/chunk.js index c077f6b4e..5dc55f77d 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/amd/nested/chunk.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/amd/nested/chunk.js @@ -1,7 +1,7 @@ define(['require', 'exports'], (function (require, exports) { 'use strict'; - const asset = 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=amd:relativePath=../assets/asset-solved-230ecafd.txt:referenceId=6296c678'; - const chunk = 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=amd:relativePath=chunk2.js:referenceId=f6c25ae7'; + const asset = 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=amd:relativePath=../assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; + const chunk = 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=amd:relativePath=chunk2.js:referenceId=8T3lqddV'; exports.asset = asset; exports.chunk = chunk; diff --git a/test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-resolved-9e0f7ca5.txt b/test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-resolved-7pLh6Sdd.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-resolved-9e0f7ca5.txt rename to test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-resolved-7pLh6Sdd.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-solved-230ecafd.txt b/test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-solved-0oyI4hTT.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-solved-230ecafd.txt rename to test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-solved-0oyI4hTT.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-unresolved-f4c1e86c.txt b/test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-unresolved-e0Iev6TZ.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-unresolved-f4c1e86c.txt rename to test/chunking-form/samples/resolve-file-url/_expected/cjs/assets/asset-unresolved-e0Iev6TZ.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/cjs/main.js b/test/chunking-form/samples/resolve-file-url/_expected/cjs/main.js index b77e39dfd..4e291ed1d 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/cjs/main.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/cjs/main.js @@ -3,7 +3,7 @@ const asset$1 = 'resolved'; const chunk$1 = 'resolved'; -const asset = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-unresolved-f4c1e86c.txt').href : new URL('assets/asset-unresolved-f4c1e86c.txt', document.currentScript && document.currentScript.src || document.baseURI).href); +const asset = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-unresolved-e0Iev6TZ.txt').href : new URL('assets/asset-unresolved-e0Iev6TZ.txt', document.currentScript && document.currentScript.src || document.baseURI).href); const chunk = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/nested/chunk2.js').href : new URL('nested/chunk2.js', document.currentScript && document.currentScript.src || document.baseURI).href); Promise.resolve().then(function () { return require('./nested/chunk.js'); }).then(result => console.log(result, chunk$1, chunk, asset$1, asset)); diff --git a/test/chunking-form/samples/resolve-file-url/_expected/cjs/nested/chunk.js b/test/chunking-form/samples/resolve-file-url/_expected/cjs/nested/chunk.js index 206e5c2c2..4aec9a889 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/cjs/nested/chunk.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/cjs/nested/chunk.js @@ -1,7 +1,7 @@ 'use strict'; -const asset = 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=cjs:relativePath=../assets/asset-solved-230ecafd.txt:referenceId=6296c678'; -const chunk = 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=cjs:relativePath=chunk2.js:referenceId=f6c25ae7'; +const asset = 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=cjs:relativePath=../assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; +const chunk = 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=cjs:relativePath=chunk2.js:referenceId=8T3lqddV'; exports.asset = asset; exports.chunk = chunk; diff --git a/test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-resolved-9e0f7ca5.txt b/test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-resolved-7pLh6Sdd.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-resolved-9e0f7ca5.txt rename to test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-resolved-7pLh6Sdd.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-solved-230ecafd.txt b/test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-solved-0oyI4hTT.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-solved-230ecafd.txt rename to test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-solved-0oyI4hTT.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-unresolved-f4c1e86c.txt b/test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-unresolved-e0Iev6TZ.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-unresolved-f4c1e86c.txt rename to test/chunking-form/samples/resolve-file-url/_expected/es/assets/asset-unresolved-e0Iev6TZ.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/es/main.js b/test/chunking-form/samples/resolve-file-url/_expected/es/main.js index 787fa8158..46368bd72 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/es/main.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/es/main.js @@ -1,7 +1,7 @@ const asset$1 = 'resolved'; const chunk$1 = 'resolved'; -const asset = new URL('assets/asset-unresolved-f4c1e86c.txt', import.meta.url).href; +const asset = new URL('assets/asset-unresolved-e0Iev6TZ.txt', import.meta.url).href; const chunk = new URL('nested/chunk2.js', import.meta.url).href; import('./nested/chunk.js').then(result => console.log(result, chunk$1, chunk, asset$1, asset)); diff --git a/test/chunking-form/samples/resolve-file-url/_expected/es/nested/chunk.js b/test/chunking-form/samples/resolve-file-url/_expected/es/nested/chunk.js index a9081bb7a..b0cc32e88 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/es/nested/chunk.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/es/nested/chunk.js @@ -1,4 +1,4 @@ -const asset = 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=es:relativePath=../assets/asset-solved-230ecafd.txt:referenceId=6296c678'; -const chunk = 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=es:relativePath=chunk2.js:referenceId=f6c25ae7'; +const asset = 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=es:relativePath=../assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; +const chunk = 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=es:relativePath=chunk2.js:referenceId=8T3lqddV'; export { asset, chunk }; diff --git a/test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-resolved-9e0f7ca5.txt b/test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-resolved-7pLh6Sdd.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-resolved-9e0f7ca5.txt rename to test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-resolved-7pLh6Sdd.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-solved-230ecafd.txt b/test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-solved-0oyI4hTT.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-solved-230ecafd.txt rename to test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-solved-0oyI4hTT.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-unresolved-f4c1e86c.txt b/test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-unresolved-e0Iev6TZ.txt similarity index 100% rename from test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-unresolved-f4c1e86c.txt rename to test/chunking-form/samples/resolve-file-url/_expected/system/assets/asset-unresolved-e0Iev6TZ.txt diff --git a/test/chunking-form/samples/resolve-file-url/_expected/system/main.js b/test/chunking-form/samples/resolve-file-url/_expected/system/main.js index e8f41d38a..60d285357 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/system/main.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/system/main.js @@ -6,7 +6,7 @@ System.register([], (function (exports, module) { const asset$1 = 'resolved'; const chunk$1 = 'resolved'; - const asset = new URL('assets/asset-unresolved-f4c1e86c.txt', module.meta.url).href; + const asset = new URL('assets/asset-unresolved-e0Iev6TZ.txt', module.meta.url).href; const chunk = new URL('nested/chunk2.js', module.meta.url).href; module.import('./nested/chunk.js').then(result => console.log(result, chunk$1, chunk, asset$1, asset)); diff --git a/test/chunking-form/samples/resolve-file-url/_expected/system/nested/chunk.js b/test/chunking-form/samples/resolve-file-url/_expected/system/nested/chunk.js index 2565e1e88..6f462a10d 100644 --- a/test/chunking-form/samples/resolve-file-url/_expected/system/nested/chunk.js +++ b/test/chunking-form/samples/resolve-file-url/_expected/system/nested/chunk.js @@ -3,8 +3,8 @@ System.register([], (function (exports, module) { return { execute: (function () { - const asset = exports('asset', 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=system:relativePath=../assets/asset-solved-230ecafd.txt:referenceId=6296c678'); - const chunk = exports('chunk', 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=system:relativePath=chunk2.js:referenceId=f6c25ae7'); + const asset = exports('asset', 'chunkId=nested/chunk.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=system:relativePath=../assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'); + const chunk = exports('chunk', 'chunkId=nested/chunk.js:moduleId=solved:fileName=nested/chunk2.js:format=system:relativePath=chunk2.js:referenceId=8T3lqddV'); }) }; diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-HgyWTd0RHPMm-Z5LV91eZ.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-HgyWTd0RHPMm-Z5LV91eZ.js.map new file mode 100644 index 000000000..2faf27354 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-HgyWTd0RHPMm-Z5LV91eZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dynamic-hashed-Z5LV91eZ.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":";;CAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-eea0ce30202b-5ec8d44f.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-eea0ce30202b-5ec8d44f.js.map deleted file mode 100644 index c8102366e..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-eea0ce30202b-5ec8d44f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dynamic-hashed-5ec8d44f.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":";;CAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-hashed-5ec8d44f.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-hashed-5ec8d44f.js deleted file mode 100644 index 775befa5f..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-hashed-5ec8d44f.js +++ /dev/null @@ -1,6 +0,0 @@ -define((function () { 'use strict'; - - console.log('dynamic-hashed'); - -})); -//# sourceMappingURL=dynamic-eea0ce30202b-5ec8d44f.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-hashed-Z5LV91eZ.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-hashed-Z5LV91eZ.js new file mode 100644 index 000000000..5deef2a6c --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-hashed-Z5LV91eZ.js @@ -0,0 +1,6 @@ +define((function () { 'use strict'; + + console.log('dynamic-hashed'); + +})); +//# sourceMappingURL=dynamic-HgyWTd0RHPMm-Z5LV91eZ.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-a0f7e361.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-kWEjd9Su.js similarity index 100% rename from test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-a0f7e361.js rename to test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic-kWEjd9Su.js diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic.js.map index 3af06b91a..81e4f75eb 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic.js.map +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/dynamic.js.map @@ -1 +1 @@ -{"version":3,"file":"dynamic-a0f7e361.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":";;CAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;;;;;;"} \ No newline at end of file +{"version":3,"file":"dynamic-kWEjd9Su.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":";;CAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/main.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/main.js index 2c4333834..bc48ae880 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/main.js +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/amd/main.js @@ -1,7 +1,7 @@ define(['require'], (function (require) { 'use strict'; - new Promise(function (resolve, reject) { require(['./dynamic-a0f7e361'], resolve, reject); }); - new Promise(function (resolve, reject) { require(['./dynamic-hashed-5ec8d44f'], resolve, reject); }); + new Promise(function (resolve, reject) { require(['./dynamic-kWEjd9Su'], resolve, reject); }); + new Promise(function (resolve, reject) { require(['./dynamic-hashed-Z5LV91eZ'], resolve, reject); }); })); //# sourceMappingURL=main.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-44faaace9dbc-e21b9079.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-44faaace9dbc-e21b9079.js.map deleted file mode 100644 index b1be3c6ea..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-44faaace9dbc-e21b9079.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dynamic-hashed-e21b9079.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":";;AAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-Bj3iqQlUJnPN-DzdWIGlX.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-Bj3iqQlUJnPN-DzdWIGlX.js.map new file mode 100644 index 000000000..0c47da9b3 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-Bj3iqQlUJnPN-DzdWIGlX.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dynamic-hashed-DzdWIGlX.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":";;AAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-03a87e17.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-Q4C4Dm_h.js similarity index 100% rename from test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-03a87e17.js rename to test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-Q4C4Dm_h.js diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-hashed-DzdWIGlX.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-hashed-DzdWIGlX.js new file mode 100644 index 000000000..adebf2bba --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-hashed-DzdWIGlX.js @@ -0,0 +1,4 @@ +'use strict'; + +console.log('dynamic-hashed'); +//# sourceMappingURL=dynamic-Bj3iqQlUJnPN-DzdWIGlX.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-hashed-e21b9079.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-hashed-e21b9079.js deleted file mode 100644 index 4f1a4393c..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic-hashed-e21b9079.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -console.log('dynamic-hashed'); -//# sourceMappingURL=dynamic-44faaace9dbc-e21b9079.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic.js.map index 8535c836d..ab709c45c 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic.js.map +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/dynamic.js.map @@ -1 +1 @@ -{"version":3,"file":"dynamic-03a87e17.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":";;AAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;;"} \ No newline at end of file +{"version":3,"file":"dynamic-Q4C4Dm_h.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":";;AAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/main.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/main.js index ecf6f5b43..98cd0e2c2 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/main.js +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/cjs/main.js @@ -1,5 +1,5 @@ 'use strict'; -Promise.resolve().then(function () { return require('./dynamic-03a87e17.js'); }); -Promise.resolve().then(function () { return require('./dynamic-hashed-e21b9079.js'); }); +Promise.resolve().then(function () { return require('./dynamic-Q4C4Dm_h.js'); }); +Promise.resolve().then(function () { return require('./dynamic-hashed-DzdWIGlX.js'); }); //# sourceMappingURL=main.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-769057acb768-4b06902b.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-769057acb768-4b06902b.js.map deleted file mode 100644 index 35d31d3d6..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-769057acb768-4b06902b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dynamic-hashed-4b06902b.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-c7ad594d.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-APUNg5Yg.js similarity index 100% rename from test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-c7ad594d.js rename to test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-APUNg5Yg.js diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-hashed-4b06902b.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-hashed-4b06902b.js deleted file mode 100644 index ca9acfeed..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-hashed-4b06902b.js +++ /dev/null @@ -1,2 +0,0 @@ -console.log('dynamic-hashed'); -//# sourceMappingURL=dynamic-769057acb768-4b06902b.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-hashed-T4V3Rnvr.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-hashed-T4V3Rnvr.js new file mode 100644 index 000000000..828ef804b --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-hashed-T4V3Rnvr.js @@ -0,0 +1,2 @@ +console.log('dynamic-hashed'); +//# sourceMappingURL=dynamic-kETnNCzeTm-o-T4V3Rnvr.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-kETnNCzeTm-o-T4V3Rnvr.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-kETnNCzeTm-o-T4V3Rnvr.js.map new file mode 100644 index 000000000..ecea6e844 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic-kETnNCzeTm-o-T4V3Rnvr.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dynamic-hashed-T4V3Rnvr.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic.js.map index 45e7b978c..acee14c03 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic.js.map +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/dynamic.js.map @@ -1 +1 @@ -{"version":3,"file":"dynamic-c7ad594d.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"dynamic-APUNg5Yg.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/main.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/main.js index ae85ca097..638c28af5 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/main.js +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/es/main.js @@ -1,3 +1,3 @@ -import('./dynamic-c7ad594d.js'); -import('./dynamic-hashed-4b06902b.js'); +import('./dynamic-APUNg5Yg.js'); +import('./dynamic-hashed-T4V3Rnvr.js'); //# sourceMappingURL=main.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-883b8003cd49-c0b30ec8.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-883b8003cd49-c0b30ec8.js.map deleted file mode 100644 index 4efbf1079..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-883b8003cd49-c0b30ec8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dynamic-hashed-c0b30ec8.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":";;;;;GAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-ef271780.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-VkfTWHgI.js similarity index 100% rename from test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-ef271780.js rename to test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-VkfTWHgI.js diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-hashed-BFee68z_.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-hashed-BFee68z_.js new file mode 100644 index 000000000..9c648865c --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-hashed-BFee68z_.js @@ -0,0 +1,11 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + console.log('dynamic-hashed'); + + }) + }; +})); +//# sourceMappingURL=dynamic-sDZez62fO5oL-BFee68z_.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-hashed-c0b30ec8.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-hashed-c0b30ec8.js deleted file mode 100644 index d23349da9..000000000 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-hashed-c0b30ec8.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log('dynamic-hashed'); - - }) - }; -})); -//# sourceMappingURL=dynamic-883b8003cd49-c0b30ec8.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-sDZez62fO5oL-BFee68z_.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-sDZez62fO5oL-BFee68z_.js.map new file mode 100644 index 000000000..8ff8747d2 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic-sDZez62fO5oL-BFee68z_.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dynamic-hashed-BFee68z_.js","sources":["../../dynamic-hashed.js"],"sourcesContent":["console.log('dynamic-hashed');\n"],"names":[],"mappings":";;;;;GAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic.js.map b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic.js.map index 49fa5e4dd..47d7fdad4 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic.js.map +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/dynamic.js.map @@ -1 +1 @@ -{"version":3,"file":"dynamic-ef271780.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":";;;;;GAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"dynamic-VkfTWHgI.js","sources":["../../dynamic.js"],"sourcesContent":["console.log('dynamic');\n"],"names":[],"mappings":";;;;;GAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;;;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/main.js b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/main.js index a366b8a53..a200691d6 100644 --- a/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/main.js +++ b/test/chunking-form/samples/sourcemap-file-names-function/_expected/system/main.js @@ -3,8 +3,8 @@ System.register([], (function (exports, module) { return { execute: (function () { - module.import('./dynamic-ef271780.js'); - module.import('./dynamic-hashed-c0b30ec8.js'); + module.import('./dynamic-VkfTWHgI.js'); + module.import('./dynamic-hashed-BFee68z_.js'); }) }; diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-543232e9-amd-af8f17da.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-543232e9-amd-af8f17da.js.map deleted file mode 100644 index 242d8eda3..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-543232e9-amd-af8f17da.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main-543232e9-amd.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":";;CAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-543232e9-amd.js b/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-543232e9-amd.js deleted file mode 100644 index 3970ebf7c..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-543232e9-amd.js +++ /dev/null @@ -1,6 +0,0 @@ -define((function () { 'use strict'; - - console.log( 42 ); - -})); -//# sourceMappingURL=main-543232e9-amd-af8f17da.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-DrgsaZFk-amd-af4XjAqa.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-DrgsaZFk-amd-af4XjAqa.js.map new file mode 100644 index 000000000..c496aa986 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-DrgsaZFk-amd-af4XjAqa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main-DrgsaZFk-amd.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":";;CAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-DrgsaZFk-amd.js b/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-DrgsaZFk-amd.js new file mode 100644 index 000000000..9831abf0e --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/amd/main-DrgsaZFk-amd.js @@ -0,0 +1,6 @@ +define((function () { 'use strict'; + + console.log( 42 ); + +})); +//# sourceMappingURL=main-DrgsaZFk-amd-af4XjAqa.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-3fddaf82-cjs-c64b742b.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-3fddaf82-cjs-c64b742b.js.map deleted file mode 100644 index be5e8ad1c..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-3fddaf82-cjs-c64b742b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main-3fddaf82-cjs.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":";;AAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-3fddaf82-cjs.js b/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-3fddaf82-cjs.js deleted file mode 100644 index 98bd52e71..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-3fddaf82-cjs.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -console.log( 42 ); -//# sourceMappingURL=main-3fddaf82-cjs-c64b742b.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-R9n-8tvV-cjs-AkG5wfAe.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-R9n-8tvV-cjs-AkG5wfAe.js.map new file mode 100644 index 000000000..bdda8609f --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-R9n-8tvV-cjs-AkG5wfAe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main-R9n-8tvV-cjs.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":";;AAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-R9n-8tvV-cjs.js b/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-R9n-8tvV-cjs.js new file mode 100644 index 000000000..b28b51293 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/cjs/main-R9n-8tvV-cjs.js @@ -0,0 +1,4 @@ +'use strict'; + +console.log( 42 ); +//# sourceMappingURL=main-R9n-8tvV-cjs-AkG5wfAe.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-824894f4-es-dbab040a.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-824894f4-es-dbab040a.js.map deleted file mode 100644 index 83eea7bfe..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-824894f4-es-dbab040a.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main-824894f4-es.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-824894f4-es.js b/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-824894f4-es.js deleted file mode 100644 index 556fd1f82..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-824894f4-es.js +++ /dev/null @@ -1,2 +0,0 @@ -console.log( 42 ); -//# sourceMappingURL=main-824894f4-es-dbab040a.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-bXxLNi2H-es-8pqe0w5c.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-bXxLNi2H-es-8pqe0w5c.js.map new file mode 100644 index 000000000..bcff8df88 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-bXxLNi2H-es-8pqe0w5c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main-bXxLNi2H-es.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-bXxLNi2H-es.js b/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-bXxLNi2H-es.js new file mode 100644 index 000000000..c4bdc0c1f --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/es/main-bXxLNi2H-es.js @@ -0,0 +1,2 @@ +console.log( 42 ); +//# sourceMappingURL=main-bXxLNi2H-es-8pqe0w5c.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-6186746c-system-bce3d2ab.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-6186746c-system-bce3d2ab.js.map deleted file mode 100644 index 2d95a47c5..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-6186746c-system-bce3d2ab.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main-6186746c-system.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":";;;;;GAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;;;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-6186746c-system.js b/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-6186746c-system.js deleted file mode 100644 index 6d33eca3a..000000000 --- a/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-6186746c-system.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - console.log( 42 ); - - }) - }; -})); -//# sourceMappingURL=main-6186746c-system-bce3d2ab.js.map diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-c5ZQparC-system-mgjP6dBa.js.map b/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-c5ZQparC-system-mgjP6dBa.js.map new file mode 100644 index 000000000..40898211a --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-c5ZQparC-system-mgjP6dBa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main-c5ZQparC-system.js","sources":["../../main.js"],"sourcesContent":["console.log( 42 );\n"],"names":[],"mappings":";;;;;GAAA,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;;;;;;;;"} \ No newline at end of file diff --git a/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-c5ZQparC-system.js b/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-c5ZQparC-system.js new file mode 100644 index 000000000..6635e9df4 --- /dev/null +++ b/test/chunking-form/samples/sourcemap-file-names/_expected/system/main-c5ZQparC-system.js @@ -0,0 +1,11 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + console.log( 42 ); + + }) + }; +})); +//# sourceMappingURL=main-c5ZQparC-system-mgjP6dBa.js.map diff --git a/test/cli/samples/code-splitting-named-default-inputs/_config.js b/test/cli/samples/code-splitting-named-default-inputs/_config.js index 9bb1db99c..b0f7cd0e3 100644 --- a/test/cli/samples/code-splitting-named-default-inputs/_config.js +++ b/test/cli/samples/code-splitting-named-default-inputs/_config.js @@ -8,13 +8,13 @@ module.exports = defineTest({ assert.equal( code, '\n' + - `//→ entry1-10873415.js:\n` + + `//→ entry1-JF9mQsXW.js:\n` + "console.log('main1');\n" + '\n' + - `//→ Entry 2-b2b9d0bf.js:\n` + + `//→ Entry 2-GmuWsq4N.js:\n` + "console.log('main2');\n" + '\n' + - `//→ main3-064cd134.js:\n` + + `//→ main3-RQC0q0DR.js:\n` + "console.log('main3');\n" ); } diff --git a/test/cli/samples/code-splitting-named-inputs/_config.js b/test/cli/samples/code-splitting-named-inputs/_config.js index e22f53d98..575f82ca8 100644 --- a/test/cli/samples/code-splitting-named-inputs/_config.js +++ b/test/cli/samples/code-splitting-named-inputs/_config.js @@ -8,13 +8,13 @@ module.exports = defineTest({ assert.equal( code, '\n' + - `//→ entry1-10873415.js:\n` + + `//→ entry1-JF9mQsXW.js:\n` + "console.log('main1');\n" + '\n' + - `//→ Entry 2-b2b9d0bf.js:\n` + + `//→ Entry 2-GmuWsq4N.js:\n` + "console.log('main2');\n" + '\n' + - `//→ main3-064cd134.js:\n` + + `//→ main3-RQC0q0DR.js:\n` + "console.log('main3');\n" ); } diff --git a/test/cli/samples/stdout-code-splitting/_config.js b/test/cli/samples/stdout-code-splitting/_config.js index 597aa4320..ad1900655 100644 --- a/test/cli/samples/stdout-code-splitting/_config.js +++ b/test/cli/samples/stdout-code-splitting/_config.js @@ -20,7 +20,7 @@ module.exports = defineTest({ `${COLOR}//→ main2.js:${STANDARD}\n` + "console.log('main2');\n" + '\n' + - `${COLOR}//→ assets/asset-185f8db3:${STANDARD}\n` + + `${COLOR}//→ assets/asset-bdGDFXtM:${STANDARD}\n` + 'Hello' ); } diff --git a/test/cli/samples/validate/_config.js b/test/cli/samples/validate/_config.js index 3b410ed0d..823456c59 100644 --- a/test/cli/samples/validate/_config.js +++ b/test/cli/samples/validate/_config.js @@ -8,7 +8,7 @@ module.exports = defineTest({ stderr: stderr => assertIncludes( stderr, - `(!) Chunk "out.js" is not valid JavaScript: Unterminated comment (3:20). + `(!) Chunk "out.js" is not valid JavaScript: Unterminated block comment. out.js (3:20) 1: console.log(2 ); 2: diff --git a/test/cli/samples/warn-mixed-exports-multiple/rollup.config.js b/test/cli/samples/warn-mixed-exports-multiple/rollup.config.js index 2ee4513c4..083e1a120 100644 --- a/test/cli/samples/warn-mixed-exports-multiple/rollup.config.js +++ b/test/cli/samples/warn-mixed-exports-multiple/rollup.config.js @@ -1,7 +1,7 @@ module.exports = { input: 'main.js', - preserveModules: true, output: { - format: 'amd' + format: 'amd', + preserveModules: true } }; diff --git a/test/cli/samples/warn-unknown-options/rollup.config.js b/test/cli/samples/warn-unknown-options/rollup.config.js index c216ce3f7..87fe5f3d7 100644 --- a/test/cli/samples/warn-unknown-options/rollup.config.js +++ b/test/cli/samples/warn-unknown-options/rollup.config.js @@ -1,5 +1,5 @@ -var assert = require('node:assert'); -var replace = require('@rollup/plugin-replace'); +const assert = require('node:assert'); +const replace = require('@rollup/plugin-replace'); let warnings = 0; diff --git a/test/cli/samples/watch/bundle-error/_config.js b/test/cli/samples/watch/bundle-error/_config.js index 09425be26..588f9ed50 100644 --- a/test/cli/samples/watch/bundle-error/_config.js +++ b/test/cli/samples/watch/bundle-error/_config.js @@ -16,7 +16,7 @@ module.exports = defineTest({ setTimeout(() => unlinkSync(mainFile), 300); }, abortOnStderr(data) { - if (data.includes('[!] RollupError: Unexpected token')) { + if (data.includes('[!] RollupError: Expression expected')) { setTimeout(() => atomicWriteFileSync(mainFile, 'export default 42;'), 500); return false; } diff --git a/test/form/index.js b/test/form/index.js index 2305d78c8..c14e97413 100644 --- a/test/form/index.js +++ b/test/form/index.js @@ -6,7 +6,12 @@ const { basename, resolve } = require('node:path'); */ // @ts-expect-error not included in types const { rollup } = require('../../dist/rollup'); -const { compareLogs, normaliseOutput, runTestSuiteWithSamples } = require('../utils.js'); +const { + compareLogs, + normaliseOutput, + runTestSuiteWithSamples, + verifyAstPlugin +} = require('../utils.js'); const FORMATS = ['amd', 'cjs', 'system', 'es', 'iife', 'umd']; @@ -43,7 +48,15 @@ runTestSuiteWithSamples( } }, strictDeprecations: true, - ...config.options + ...config.options, + plugins: + config.verifyAst === false + ? config.options?.plugins + : config.options?.plugins === undefined + ? verifyAstPlugin + : Array.isArray(config.options.plugins) + ? [...config.options.plugins, verifyAstPlugin] + : config.options.plugins })); await generateAndTestBundle( bundle, diff --git a/test/form/samples/absolute-path-resolver/a.js b/test/form/samples/absolute-path-resolver/a.js index 3223031dc..7ad3ccb5b 100644 --- a/test/form/samples/absolute-path-resolver/a.js +++ b/test/form/samples/absolute-path-resolver/a.js @@ -1,3 +1,3 @@ export var a = () => { console.log('props'); -}; \ No newline at end of file +}; diff --git a/test/form/samples/acorn-external-plugins/_config.js b/test/form/samples/acorn-external-plugins/_config.js deleted file mode 100644 index 2789b15c1..000000000 --- a/test/form/samples/acorn-external-plugins/_config.js +++ /dev/null @@ -1,8 +0,0 @@ -const jsx = require('acorn-jsx'); - -module.exports = defineTest({ - description: 'supports official acorn plugins that may rely on a shared acorn instance', - options: { - acornInjectPlugins: [jsx()] - } -}); diff --git a/test/form/samples/acorn-external-plugins/_expected.js b/test/form/samples/acorn-external-plugins/_expected.js deleted file mode 100644 index d8d373310..000000000 --- a/test/form/samples/acorn-external-plugins/_expected.js +++ /dev/null @@ -1,3 +0,0 @@ -var main =
This is not JavaScript
; - -export { main as default }; diff --git a/test/form/samples/acorn-external-plugins/main.js b/test/form/samples/acorn-external-plugins/main.js deleted file mode 100644 index 5113b9c30..000000000 --- a/test/form/samples/acorn-external-plugins/main.js +++ /dev/null @@ -1 +0,0 @@ -export default
This is not JavaScript
; diff --git a/test/form/samples/big-int/_config.js b/test/form/samples/big-int/_config.js index cdd9c2424..256ffa6ca 100644 --- a/test/form/samples/big-int/_config.js +++ b/test/form/samples/big-int/_config.js @@ -1,3 +1,3 @@ module.exports = defineTest({ - description: 'supports bigint via acorn plugin' + description: 'supports bigint' }); diff --git a/test/form/samples/configure-file-url/_expected/amd.js b/test/form/samples/configure-file-url/_expected/amd.js index 5b95fa904..0288c956c 100644 --- a/test/form/samples/configure-file-url/_expected/amd.js +++ b/test/form/samples/configure-file-url/_expected/amd.js @@ -1,10 +1,10 @@ define(['require'], (function (require) { 'use strict'; - var asset1 = 'chunkId=amd.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=amd:relativePath=assets/asset-solved-230ecafd.txt:referenceId=6296c678'; + var asset1 = 'chunkId=amd.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=amd:relativePath=assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; var asset2 = 'resolved'; - var asset3 = new URL(require.toUrl('./assets/asset-unresolved-f4c1e86c.txt'), document.baseURI).href; + var asset3 = new URL(require.toUrl('./assets/asset-unresolved-e0Iev6TZ.txt'), document.baseURI).href; console.log(asset1, asset2, asset3); diff --git a/test/form/samples/configure-file-url/_expected/assets/asset-resolved-9e0f7ca5.txt b/test/form/samples/configure-file-url/_expected/assets/asset-resolved-7pLh6Sdd.txt similarity index 100% rename from test/form/samples/configure-file-url/_expected/assets/asset-resolved-9e0f7ca5.txt rename to test/form/samples/configure-file-url/_expected/assets/asset-resolved-7pLh6Sdd.txt diff --git a/test/form/samples/configure-file-url/_expected/assets/asset-solved-230ecafd.txt b/test/form/samples/configure-file-url/_expected/assets/asset-solved-0oyI4hTT.txt similarity index 100% rename from test/form/samples/configure-file-url/_expected/assets/asset-solved-230ecafd.txt rename to test/form/samples/configure-file-url/_expected/assets/asset-solved-0oyI4hTT.txt diff --git a/test/form/samples/configure-file-url/_expected/assets/asset-unresolved-f4c1e86c.txt b/test/form/samples/configure-file-url/_expected/assets/asset-unresolved-e0Iev6TZ.txt similarity index 100% rename from test/form/samples/configure-file-url/_expected/assets/asset-unresolved-f4c1e86c.txt rename to test/form/samples/configure-file-url/_expected/assets/asset-unresolved-e0Iev6TZ.txt diff --git a/test/form/samples/configure-file-url/_expected/cjs.js b/test/form/samples/configure-file-url/_expected/cjs.js index cc4b3be30..fdbff28d8 100644 --- a/test/form/samples/configure-file-url/_expected/cjs.js +++ b/test/form/samples/configure-file-url/_expected/cjs.js @@ -1,9 +1,9 @@ 'use strict'; -var asset1 = 'chunkId=cjs.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=cjs:relativePath=assets/asset-solved-230ecafd.txt:referenceId=6296c678'; +var asset1 = 'chunkId=cjs.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=cjs:relativePath=assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; var asset2 = 'resolved'; -var asset3 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-unresolved-f4c1e86c.txt').href : new URL('assets/asset-unresolved-f4c1e86c.txt', document.currentScript && document.currentScript.src || document.baseURI).href); +var asset3 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-unresolved-e0Iev6TZ.txt').href : new URL('assets/asset-unresolved-e0Iev6TZ.txt', document.currentScript && document.currentScript.src || document.baseURI).href); console.log(asset1, asset2, asset3); diff --git a/test/form/samples/configure-file-url/_expected/es.js b/test/form/samples/configure-file-url/_expected/es.js index 89945227e..e79334a1f 100644 --- a/test/form/samples/configure-file-url/_expected/es.js +++ b/test/form/samples/configure-file-url/_expected/es.js @@ -1,7 +1,7 @@ -var asset1 = 'chunkId=es.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=es:relativePath=assets/asset-solved-230ecafd.txt:referenceId=6296c678'; +var asset1 = 'chunkId=es.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=es:relativePath=assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; var asset2 = 'resolved'; -var asset3 = new URL('assets/asset-unresolved-f4c1e86c.txt', import.meta.url).href; +var asset3 = new URL('assets/asset-unresolved-e0Iev6TZ.txt', import.meta.url).href; console.log(asset1, asset2, asset3); diff --git a/test/form/samples/configure-file-url/_expected/iife.js b/test/form/samples/configure-file-url/_expected/iife.js index 66ea85781..2296c1ed1 100644 --- a/test/form/samples/configure-file-url/_expected/iife.js +++ b/test/form/samples/configure-file-url/_expected/iife.js @@ -1,11 +1,11 @@ (function () { 'use strict'; - var asset1 = 'chunkId=iife.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=iife:relativePath=assets/asset-solved-230ecafd.txt:referenceId=6296c678'; + var asset1 = 'chunkId=iife.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=iife:relativePath=assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; var asset2 = 'resolved'; - var asset3 = new URL('assets/asset-unresolved-f4c1e86c.txt', document.currentScript && document.currentScript.src || document.baseURI).href; + var asset3 = new URL('assets/asset-unresolved-e0Iev6TZ.txt', document.currentScript && document.currentScript.src || document.baseURI).href; console.log(asset1, asset2, asset3); diff --git a/test/form/samples/configure-file-url/_expected/system.js b/test/form/samples/configure-file-url/_expected/system.js index 83ada681a..83670329d 100644 --- a/test/form/samples/configure-file-url/_expected/system.js +++ b/test/form/samples/configure-file-url/_expected/system.js @@ -3,11 +3,11 @@ System.register([], (function (exports, module) { return { execute: (function () { - var asset1 = 'chunkId=system.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=system:relativePath=assets/asset-solved-230ecafd.txt:referenceId=6296c678'; + var asset1 = 'chunkId=system.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=system:relativePath=assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; var asset2 = 'resolved'; - var asset3 = new URL('assets/asset-unresolved-f4c1e86c.txt', module.meta.url).href; + var asset3 = new URL('assets/asset-unresolved-e0Iev6TZ.txt', module.meta.url).href; console.log(asset1, asset2, asset3); diff --git a/test/form/samples/configure-file-url/_expected/umd.js b/test/form/samples/configure-file-url/_expected/umd.js index 3c13a1507..081c383ae 100644 --- a/test/form/samples/configure-file-url/_expected/umd.js +++ b/test/form/samples/configure-file-url/_expected/umd.js @@ -3,11 +3,11 @@ factory(); })((function () { 'use strict'; - var asset1 = 'chunkId=umd.js:moduleId=solved:fileName=assets/asset-solved-230ecafd.txt:format=umd:relativePath=assets/asset-solved-230ecafd.txt:referenceId=6296c678'; + var asset1 = 'chunkId=umd.js:moduleId=solved:fileName=assets/asset-solved-0oyI4hTT.txt:format=umd:relativePath=assets/asset-solved-0oyI4hTT.txt:referenceId=JY$sxHZX'; var asset2 = 'resolved'; - var asset3 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-unresolved-f4c1e86c.txt').href : new URL('assets/asset-unresolved-f4c1e86c.txt', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); + var asset3 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-unresolved-e0Iev6TZ.txt').href : new URL('assets/asset-unresolved-e0Iev6TZ.txt', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); console.log(asset1, asset2, asset3); diff --git a/test/form/samples/custom-dynamic-import-no-interop/_config.js b/test/form/samples/custom-dynamic-import-no-interop/_config.js index 910798c4d..91f8f55c3 100644 --- a/test/form/samples/custom-dynamic-import-no-interop/_config.js +++ b/test/form/samples/custom-dynamic-import-no-interop/_config.js @@ -5,11 +5,13 @@ module.exports = defineTest({ output: { interop: 'auto' }, - plugins: { - name: 'test', - renderDynamicImport() { - return { left: 'getIt(', right: ')' }; + plugins: [ + { + name: 'test', + renderDynamicImport() { + return { left: 'getIt(', right: ')' }; + } } - } + ] } }); diff --git a/test/form/samples/deprecated/dynamic-import-inlining-array/_config.js b/test/form/samples/deprecated/dynamic-import-inlining-array/_config.js deleted file mode 100644 index dcdb14a77..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining-array/_config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = defineTest({ - description: 'supports an array with a single entry when inlining dynamic imports', - options: { - strictDeprecations: false, - inlineDynamicImports: true, - input: ['main'] - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/dynamic-import-inlining-array/_expected.js b/test/form/samples/deprecated/dynamic-import-inlining-array/_expected.js deleted file mode 100644 index 5a35de939..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining-array/_expected.js +++ /dev/null @@ -1,8 +0,0 @@ -const bar = 2; -Promise.resolve().then(function () { return foo; }); - -var foo = /*#__PURE__*/Object.freeze({ - __proto__: null -}); - -export { bar }; diff --git a/test/form/samples/deprecated/dynamic-import-inlining-array/foo.js b/test/form/samples/deprecated/dynamic-import-inlining-array/foo.js deleted file mode 100644 index 6a8018af4..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining-array/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const foo = 1; \ No newline at end of file diff --git a/test/form/samples/deprecated/dynamic-import-inlining-array/main.js b/test/form/samples/deprecated/dynamic-import-inlining-array/main.js deleted file mode 100644 index ee3e6a770..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining-array/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export const bar = 2; -import('./foo.js'); diff --git a/test/form/samples/deprecated/dynamic-import-inlining/_config.js b/test/form/samples/deprecated/dynamic-import-inlining/_config.js deleted file mode 100644 index 1c08b44c2..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining/_config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = defineTest({ - description: 'dynamic import inlining', - options: { - strictDeprecations: false, - inlineDynamicImports: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/dynamic-import-inlining/_expected.js b/test/form/samples/deprecated/dynamic-import-inlining/_expected.js deleted file mode 100644 index 5a35de939..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining/_expected.js +++ /dev/null @@ -1,8 +0,0 @@ -const bar = 2; -Promise.resolve().then(function () { return foo; }); - -var foo = /*#__PURE__*/Object.freeze({ - __proto__: null -}); - -export { bar }; diff --git a/test/form/samples/deprecated/dynamic-import-inlining/foo.js b/test/form/samples/deprecated/dynamic-import-inlining/foo.js deleted file mode 100644 index 6a8018af4..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const foo = 1; \ No newline at end of file diff --git a/test/form/samples/deprecated/dynamic-import-inlining/main.js b/test/form/samples/deprecated/dynamic-import-inlining/main.js deleted file mode 100644 index ee3e6a770..000000000 --- a/test/form/samples/deprecated/dynamic-import-inlining/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export const bar = 2; -import('./foo.js'); diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_config.js b/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_config.js deleted file mode 100644 index bd9972fd9..000000000 --- a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = defineTest({ - description: 'completely removes tree-shaken dynamic imports ', - options: { - strictDeprecations: false, - inlineDynamicImports: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/dynamic.js b/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/dynamic.js deleted file mode 100644 index 1d7a1acc1..000000000 --- a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/dynamic.js +++ /dev/null @@ -1,2 +0,0 @@ -console.log('dynamic'); -export var dynamic = 42; diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/main.js b/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/main.js deleted file mode 100644 index 9b0aad2c2..000000000 --- a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/main.js +++ /dev/null @@ -1,2 +0,0 @@ -console.log('main'); -const getFoo = () => import('./dynamic.js'); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_config.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_config.js deleted file mode 100644 index 9edd41090..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'does not add Symbol.toStringTag property to entry chunks with default export mode', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true, - exports: 'default', - name: 'bundle' - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/amd.js deleted file mode 100644 index 3c31a8f0b..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/amd.js +++ /dev/null @@ -1,7 +0,0 @@ -define((function () { 'use strict'; - - var main = { foo: 42 }; - - return main; - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/cjs.js deleted file mode 100644 index 202ac69ae..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/cjs.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var main = { foo: 42 }; - -module.exports = main; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/es.js deleted file mode 100644 index 9f84202e4..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/es.js +++ /dev/null @@ -1,3 +0,0 @@ -var main = { foo: 42 }; - -export { main as default }; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/iife.js deleted file mode 100644 index b9892e039..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/iife.js +++ /dev/null @@ -1,8 +0,0 @@ -var bundle = (function () { - 'use strict'; - - var main = { foo: 42 }; - - return main; - -})(); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/system.js deleted file mode 100644 index e78d3f095..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/system.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register('bundle', [], (function (exports) { - 'use strict'; - return { - execute: (function () { - - var main = exports('default', { foo: 42 }); - - }) - }; -})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/umd.js deleted file mode 100644 index 8bea77662..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/_expected/umd.js +++ /dev/null @@ -1,11 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bundle = factory()); -})(this, (function () { 'use strict'; - - var main = { foo: 42 }; - - return main; - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-default/main.js b/test/form/samples/deprecated/namespace-tostring/entry-default/main.js deleted file mode 100644 index 407b3c24e..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-default/main.js +++ /dev/null @@ -1 +0,0 @@ -export default { foo: 42 }; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_config.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_config.js deleted file mode 100644 index fdb9c53e7..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to entry chunks with named exports', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true, - exports: 'named', - name: 'bundle' - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/amd.js deleted file mode 100644 index 9b68f32c6..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/amd.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - const foo = 42; - - exports.foo = foo; - - Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/cjs.js deleted file mode 100644 index 3ced9f151..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/cjs.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); - -const foo = 42; - -exports.foo = foo; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/es.js deleted file mode 100644 index b72a22eac..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/es.js +++ /dev/null @@ -1,3 +0,0 @@ -const foo = 42; - -export { foo }; diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/iife.js deleted file mode 100644 index 031b5a7ba..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/iife.js +++ /dev/null @@ -1,12 +0,0 @@ -var bundle = (function (exports) { - 'use strict'; - - const foo = 42; - - exports.foo = foo; - - Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); - - return exports; - -})({}); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/system.js deleted file mode 100644 index 53ad1b79c..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/system.js +++ /dev/null @@ -1,10 +0,0 @@ -System.register('bundle', [], (function (exports) { - 'use strict'; - return { - execute: (function () { - - const foo = exports('foo', 42); - - }) - }; -})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/umd.js deleted file mode 100644 index f69065ef0..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/_expected/umd.js +++ /dev/null @@ -1,13 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bundle = {})); -})(this, (function (exports) { 'use strict'; - - const foo = 42; - - exports.foo = foo; - - Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/entry-named/main.js b/test/form/samples/deprecated/namespace-tostring/entry-named/main.js deleted file mode 100644 index 9d7381d29..000000000 --- a/test/form/samples/deprecated/namespace-tostring/entry-named/main.js +++ /dev/null @@ -1 +0,0 @@ -export const foo = 42; diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_config.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_config.js deleted file mode 100644 index a0c4e8717..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_config.js +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to external namespaces', - options: { - strictDeprecations: false, - external(id) { - return id.startsWith('external'); - }, - output: { - namespaceToStringTag: true, - globals: { - 'external-auto': 'externalAuto', - 'external-default': 'externalDefault', - 'external-defaultOnly': 'externalDefaultOnly' - }, - interop(id) { - switch (id) { - case 'external-auto': { - return 'auto'; - } - case 'external-default': { - return 'default'; - } - case 'external-defaultOnly': { - return 'defaultOnly'; - } - default: { - throw new Error(`Unexpected require "${id}"`); - } - } - } - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/amd.js deleted file mode 100644 index 5a24d36b9..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/amd.js +++ /dev/null @@ -1,40 +0,0 @@ -define(['external-auto', 'external-default', 'external-defaultOnly'], (function (externalAuto, externalDefault, externalDefaultOnly) { 'use strict'; - - function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: 'Module' })); } - - function _interopNamespaceDefault(e) { - var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); - 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); - } - - function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } - - var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); - var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); - var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); - - assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); - assert.strictEqual(externalAuto__namespace.foo, 42); - - assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); - assert.strictEqual(externalDefault__namespace.foo, 42); - - assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); - assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/cjs.js deleted file mode 100644 index d06f93db4..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/cjs.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var externalAuto = require('external-auto'); -var externalDefault = require('external-default'); -var externalDefaultOnly = require('external-defaultOnly'); - -function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: 'Module' })); } - -function _interopNamespaceDefault(e) { - var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); - 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); -} - -function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } - -var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); -var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); -var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); - -assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); -assert.strictEqual(externalAuto__namespace.foo, 42); - -assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); -assert.strictEqual(externalDefault__namespace.foo, 42); - -assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); -assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/es.js deleted file mode 100644 index 978de6a2c..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/es.js +++ /dev/null @@ -1,15 +0,0 @@ -import * as externalAuto from 'external-auto'; -import * as externalDefault from 'external-default'; -import * as externalDefaultOnly from 'external-defaultOnly'; - -assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); -assert.strictEqual(externalAuto.foo, 42); - -assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); -assert.strictEqual(externalDefault.foo, 42); - -assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); -assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/iife.js deleted file mode 100644 index eb04205bc..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/iife.js +++ /dev/null @@ -1,41 +0,0 @@ -(function (externalAuto, externalDefault, externalDefaultOnly) { - 'use strict'; - - function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: 'Module' })); } - - function _interopNamespaceDefault(e) { - var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); - 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); - } - - function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } - - var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); - var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); - var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); - - assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); - assert.strictEqual(externalAuto__namespace.foo, 42); - - assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); - assert.strictEqual(externalDefault__namespace.foo, 42); - - assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); - assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); - -})(externalAuto, externalDefault, externalDefaultOnly); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/system.js deleted file mode 100644 index 76dd2bf6c..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/system.js +++ /dev/null @@ -1,28 +0,0 @@ -System.register(['external-auto', 'external-default', 'external-defaultOnly'], (function () { - 'use strict'; - var externalAuto, externalDefault, externalDefaultOnly; - return { - setters: [function (module) { - externalAuto = module; - }, function (module) { - externalDefault = module; - }, function (module) { - externalDefaultOnly = module; - }], - execute: (function () { - - assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); - assert.strictEqual(externalAuto.foo, 42); - - assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); - assert.strictEqual(externalDefault.foo, 42); - - assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); - assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); - - }) - }; -})); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/umd.js deleted file mode 100644 index 8c3d88c66..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/_expected/umd.js +++ /dev/null @@ -1,44 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('external-auto'), require('external-default'), require('external-defaultOnly')) : - typeof define === 'function' && define.amd ? define(['external-auto', 'external-default', 'external-defaultOnly'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.externalAuto, global.externalDefault, global.externalDefaultOnly)); -})(this, (function (externalAuto, externalDefault, externalDefaultOnly) { 'use strict'; - - function _interopNamespaceDefaultOnly (e) { return Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: 'Module' })); } - - function _interopNamespaceDefault(e) { - var n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); - 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); - } - - function _interopNamespace (e) { return e && e.__esModule ? e : _interopNamespaceDefault(e); } - - var externalAuto__namespace = /*#__PURE__*/_interopNamespace(externalAuto); - var externalDefault__namespace = /*#__PURE__*/_interopNamespaceDefault(externalDefault); - var externalDefaultOnly__namespace = /*#__PURE__*/_interopNamespaceDefaultOnly(externalDefaultOnly); - - assert.strictEqual(externalAuto__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalAuto__namespace), '[object Module]'); - assert.strictEqual(externalAuto__namespace.foo, 42); - - assert.strictEqual(externalDefault__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefault__namespace), '[object Module]'); - assert.strictEqual(externalDefault__namespace.foo, 42); - - assert.strictEqual(externalDefaultOnly__namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly__namespace), '[object Module]'); - assert.deepStrictEqual(externalDefaultOnly__namespace.default, { foo: 42 }); - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/external-namespaces/main.js b/test/form/samples/deprecated/namespace-tostring/external-namespaces/main.js deleted file mode 100644 index 978de6a2c..000000000 --- a/test/form/samples/deprecated/namespace-tostring/external-namespaces/main.js +++ /dev/null @@ -1,15 +0,0 @@ -import * as externalAuto from 'external-auto'; -import * as externalDefault from 'external-default'; -import * as externalDefaultOnly from 'external-defaultOnly'; - -assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); -assert.strictEqual(externalAuto.foo, 42); - -assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); -assert.strictEqual(externalDefault.foo, 42); - -assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); -assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_config.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_config.js deleted file mode 100644 index 38a04e821..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to inlined namespaces', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/amd.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/amd.js deleted file mode 100644 index 0fd104871..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/amd.js +++ /dev/null @@ -1,14 +0,0 @@ -define((function () { 'use strict'; - - const bar = 42; - - var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ - __proto__: null, - bar: bar - }, Symbol.toStringTag, { value: 'Module' })); - - assert.strictEqual(foo[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); - assert.strictEqual(bar, 42); - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/cjs.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/cjs.js deleted file mode 100644 index 1d2be7a0b..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/cjs.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -const bar = 42; - -var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ - __proto__: null, - bar: bar -}, Symbol.toStringTag, { value: 'Module' })); - -assert.strictEqual(foo[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); -assert.strictEqual(bar, 42); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/es.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/es.js deleted file mode 100644 index a74e0a8f2..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/es.js +++ /dev/null @@ -1,10 +0,0 @@ -const bar = 42; - -var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ - __proto__: null, - bar: bar -}, Symbol.toStringTag, { value: 'Module' })); - -assert.strictEqual(foo[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); -assert.strictEqual(bar, 42); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/iife.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/iife.js deleted file mode 100644 index d960020bd..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/iife.js +++ /dev/null @@ -1,15 +0,0 @@ -(function () { - 'use strict'; - - const bar = 42; - - var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ - __proto__: null, - bar: bar - }, Symbol.toStringTag, { value: 'Module' })); - - assert.strictEqual(foo[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); - assert.strictEqual(bar, 42); - -})(); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/system.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/system.js deleted file mode 100644 index d26e50389..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/system.js +++ /dev/null @@ -1,19 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - const bar = 42; - - var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ - __proto__: null, - bar: bar - }, Symbol.toStringTag, { value: 'Module' })); - - assert.strictEqual(foo[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); - assert.strictEqual(bar, 42); - - }) - }; -})); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/umd.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/umd.js deleted file mode 100644 index fdb31a26c..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/_expected/umd.js +++ /dev/null @@ -1,17 +0,0 @@ -(function (factory) { - typeof define === 'function' && define.amd ? define(factory) : - factory(); -})((function () { 'use strict'; - - const bar = 42; - - var foo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ - __proto__: null, - bar: bar - }, Symbol.toStringTag, { value: 'Module' })); - - assert.strictEqual(foo[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); - assert.strictEqual(bar, 42); - -})); diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/foo.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/foo.js deleted file mode 100644 index 308e102fe..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const bar = 42; diff --git a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/main.js b/test/form/samples/deprecated/namespace-tostring/inlined-namespace/main.js deleted file mode 100644 index fb6b24345..000000000 --- a/test/form/samples/deprecated/namespace-tostring/inlined-namespace/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import * as foo from './foo'; - -assert.strictEqual(foo[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); -assert.strictEqual(foo.bar, 42); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/_config.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/_config.js deleted file mode 100644 index 9b4467d5c..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/_config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = defineTest({ - description: 'deconflicts variables when nested dynamic imports are inlined', - options: { - strictDeprecations: false, - inlineDynamicImports: true - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/amd.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/amd.js deleted file mode 100644 index 9786f514a..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/amd.js +++ /dev/null @@ -1,18 +0,0 @@ -define((function () { 'use strict'; - - async function main() { - const foo$1 = 1; - const ns = await Promise.resolve().then(function () { return foo; }); - console.log(ns.value + foo$1); - } - - main(); - - const value = 42; - - var foo = /*#__PURE__*/Object.freeze({ - __proto__: null, - value: value - }); - -})); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/cjs.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/cjs.js deleted file mode 100644 index 9226d1268..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/cjs.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -async function main() { - const foo$1 = 1; - const ns = await Promise.resolve().then(function () { return foo; }); - console.log(ns.value + foo$1); -} - -main(); - -const value = 42; - -var foo = /*#__PURE__*/Object.freeze({ - __proto__: null, - value: value -}); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/es.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/es.js deleted file mode 100644 index 97b0b8e51..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/es.js +++ /dev/null @@ -1,14 +0,0 @@ -async function main() { - const foo$1 = 1; - const ns = await Promise.resolve().then(function () { return foo; }); - console.log(ns.value + foo$1); -} - -main(); - -const value = 42; - -var foo = /*#__PURE__*/Object.freeze({ - __proto__: null, - value: value -}); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/iife.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/iife.js deleted file mode 100644 index 3dbed43ba..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/iife.js +++ /dev/null @@ -1,19 +0,0 @@ -(function () { - 'use strict'; - - async function main() { - const foo$1 = 1; - const ns = await Promise.resolve().then(function () { return foo; }); - console.log(ns.value + foo$1); - } - - main(); - - const value = 42; - - var foo = /*#__PURE__*/Object.freeze({ - __proto__: null, - value: value - }); - -})(); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/system.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/system.js deleted file mode 100644 index 8cb925481..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/system.js +++ /dev/null @@ -1,23 +0,0 @@ -System.register([], (function () { - 'use strict'; - return { - execute: (function () { - - async function main() { - const foo$1 = 1; - const ns = await Promise.resolve().then(function () { return foo; }); - console.log(ns.value + foo$1); - } - - main(); - - const value = 42; - - var foo = /*#__PURE__*/Object.freeze({ - __proto__: null, - value: value - }); - - }) - }; -})); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/umd.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/umd.js deleted file mode 100644 index 5fa0792d5..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/_expected/umd.js +++ /dev/null @@ -1,21 +0,0 @@ -(function (factory) { - typeof define === 'function' && define.amd ? define(factory) : - factory(); -})((function () { 'use strict'; - - async function main() { - const foo$1 = 1; - const ns = await Promise.resolve().then(function () { return foo; }); - console.log(ns.value + foo$1); - } - - main(); - - const value = 42; - - var foo = /*#__PURE__*/Object.freeze({ - __proto__: null, - value: value - }); - -})); diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/foo.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/foo.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/form/samples/deprecated/nested-inlined-dynamic-import/main.js b/test/form/samples/deprecated/nested-inlined-dynamic-import/main.js deleted file mode 100644 index 685c5cc1a..000000000 --- a/test/form/samples/deprecated/nested-inlined-dynamic-import/main.js +++ /dev/null @@ -1,7 +0,0 @@ -async function main() { - const foo = 1; - const ns = await import('./foo.js'); - console.log(ns.value + foo); -} - -main(); diff --git a/test/form/samples/deprecated/prefer-const/_config.js b/test/form/samples/deprecated/prefer-const/_config.js deleted file mode 100644 index ce844d456..000000000 --- a/test/form/samples/deprecated/prefer-const/_config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = defineTest({ - description: 'uses const instead of var if specified (#653)', - options: { - strictDeprecations: false, - external: ['other'], - output: { - globals: { other: 'other' }, - name: 'myBundle', - preferConst: true - } - }, - expectedWarnings: ['DEPRECATED_FEATURE'] -}); diff --git a/test/form/samples/deprecated/prefer-const/_expected/amd.js b/test/form/samples/deprecated/prefer-const/_expected/amd.js deleted file mode 100644 index 4401f36e6..000000000 --- a/test/form/samples/deprecated/prefer-const/_expected/amd.js +++ /dev/null @@ -1,19 +0,0 @@ -define(['other'], (function (other) { 'use strict'; - - const a = 1; - const b = 2; - - const namespace = /*#__PURE__*/Object.freeze({ - __proto__: null, - a: a, - b: b - }); - - console.log( Object.keys( namespace ) ); - console.log( other.name ); - - const main = 42; - - return main; - -})); diff --git a/test/form/samples/deprecated/prefer-const/_expected/cjs.js b/test/form/samples/deprecated/prefer-const/_expected/cjs.js deleted file mode 100644 index 01aa90d15..000000000 --- a/test/form/samples/deprecated/prefer-const/_expected/cjs.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -const other = require('other'); - -const a = 1; -const b = 2; - -const namespace = /*#__PURE__*/Object.freeze({ - __proto__: null, - a: a, - b: b -}); - -console.log( Object.keys( namespace ) ); -console.log( other.name ); - -const main = 42; - -module.exports = main; diff --git a/test/form/samples/deprecated/prefer-const/_expected/es.js b/test/form/samples/deprecated/prefer-const/_expected/es.js deleted file mode 100644 index 83d2861ae..000000000 --- a/test/form/samples/deprecated/prefer-const/_expected/es.js +++ /dev/null @@ -1,17 +0,0 @@ -import { name } from 'other'; - -const a = 1; -const b = 2; - -const namespace = /*#__PURE__*/Object.freeze({ - __proto__: null, - a: a, - b: b -}); - -console.log( Object.keys( namespace ) ); -console.log( name ); - -const main = 42; - -export { main as default }; diff --git a/test/form/samples/deprecated/prefer-const/_expected/iife.js b/test/form/samples/deprecated/prefer-const/_expected/iife.js deleted file mode 100644 index 85ef2a3c2..000000000 --- a/test/form/samples/deprecated/prefer-const/_expected/iife.js +++ /dev/null @@ -1,20 +0,0 @@ -var myBundle = (function (other) { - 'use strict'; - - const a = 1; - const b = 2; - - const namespace = /*#__PURE__*/Object.freeze({ - __proto__: null, - a: a, - b: b - }); - - console.log( Object.keys( namespace ) ); - console.log( other.name ); - - const main = 42; - - return main; - -})(other); diff --git a/test/form/samples/deprecated/prefer-const/_expected/system.js b/test/form/samples/deprecated/prefer-const/_expected/system.js deleted file mode 100644 index aca77a4b3..000000000 --- a/test/form/samples/deprecated/prefer-const/_expected/system.js +++ /dev/null @@ -1,26 +0,0 @@ -System.register('myBundle', ['other'], (function (exports) { - 'use strict'; - var name; - return { - setters: [function (module) { - name = module.name; - }], - execute: (function () { - - const a = 1; - const b = 2; - - const namespace = /*#__PURE__*/Object.freeze({ - __proto__: null, - a: a, - b: b - }); - - console.log( Object.keys( namespace ) ); - console.log( name ); - - const main = exports('default', 42); - - }) - }; -})); diff --git a/test/form/samples/deprecated/prefer-const/_expected/umd.js b/test/form/samples/deprecated/prefer-const/_expected/umd.js deleted file mode 100644 index 5da7a70a2..000000000 --- a/test/form/samples/deprecated/prefer-const/_expected/umd.js +++ /dev/null @@ -1,23 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('other')) : - typeof define === 'function' && define.amd ? define(['other'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.myBundle = factory(global.other)); -})(this, (function (other) { 'use strict'; - - const a = 1; - const b = 2; - - const namespace = /*#__PURE__*/Object.freeze({ - __proto__: null, - a: a, - b: b - }); - - console.log( Object.keys( namespace ) ); - console.log( other.name ); - - const main = 42; - - return main; - -})); diff --git a/test/form/samples/deprecated/prefer-const/main.js b/test/form/samples/deprecated/prefer-const/main.js deleted file mode 100644 index 968604698..000000000 --- a/test/form/samples/deprecated/prefer-const/main.js +++ /dev/null @@ -1,7 +0,0 @@ -import { name } from 'other'; -import * as namespace from './namespace.js'; - -console.log( Object.keys( namespace ) ); -console.log( name ); - -export default 42; diff --git a/test/form/samples/deprecated/prefer-const/namespace.js b/test/form/samples/deprecated/prefer-const/namespace.js deleted file mode 100644 index 72ab60e17..000000000 --- a/test/form/samples/deprecated/prefer-const/namespace.js +++ /dev/null @@ -1,2 +0,0 @@ -export const a = 1; -export const b = 2; diff --git a/test/form/samples/deprecated/removes-dynamic-assertions/_config.js b/test/form/samples/deprecated/removes-dynamic-assertions/_config.js new file mode 100644 index 000000000..cc9d7dadd --- /dev/null +++ b/test/form/samples/deprecated/removes-dynamic-assertions/_config.js @@ -0,0 +1,30 @@ +module.exports = defineTest({ + description: 'keep import assertions for dynamic imports', + expectedWarnings: ['UNRESOLVED_IMPORT', 'DEPRECATED_FEATURE'], + options: { + strictDeprecations: false, + external: id => { + if (id === 'unresolved') return null; + return true; + }, + plugins: [ + { + name: 'test', + resolveDynamicImport(specifier) { + if (typeof specifier === 'object') { + if (specifier.type === 'TemplateLiteral') { + return "'resolvedString'"; + } + if (specifier.type === 'BinaryExpression') { + return { id: 'resolved-id', external: true }; + } + } else if (specifier === 'external-resolved') { + return { id: 'resolved-different', external: true }; + } + return null; + } + } + ], + output: { externalImportAssertions: false } + } +}); diff --git a/test/form/samples/import-assertions/removes-dynamic-assertions/_expected.js b/test/form/samples/deprecated/removes-dynamic-assertions/_expected.js similarity index 100% rename from test/form/samples/import-assertions/removes-dynamic-assertions/_expected.js rename to test/form/samples/deprecated/removes-dynamic-assertions/_expected.js diff --git a/test/form/samples/deprecated/removes-dynamic-assertions/main.js b/test/form/samples/deprecated/removes-dynamic-assertions/main.js new file mode 100644 index 000000000..025b60451 --- /dev/null +++ b/test/form/samples/deprecated/removes-dynamic-assertions/main.js @@ -0,0 +1,6 @@ +import('external', { with: { type: 'special' } }); +import(globalThis.unknown, { with: { type: 'special' } }); +import(`external-${globalThis.unknown}`, { with: { type: 'special' } }); +import('external' + globalThis.unknown, { with: { type: 'special' } }); +import('external-resolved', { with: { type: 'special' } }); +import('unresolved', { with: { type: 'special' } }); diff --git a/test/form/samples/deprecated/removes-static-attributes/_config.js b/test/form/samples/deprecated/removes-static-attributes/_config.js new file mode 100644 index 000000000..0fae6d851 --- /dev/null +++ b/test/form/samples/deprecated/removes-static-attributes/_config.js @@ -0,0 +1,12 @@ +module.exports = defineTest({ + description: 'keeps any import assertions on input', + expectedWarnings: ['UNRESOLVED_IMPORT', 'DEPRECATED_FEATURE'], + options: { + strictDeprecations: false, + external: id => { + if (id === 'unresolved') return null; + return true; + }, + output: { name: 'bundle', externalImportAssertions: false } + } +}); diff --git a/test/form/samples/import-assertions/removes-static-assertions/_expected.js b/test/form/samples/deprecated/removes-static-attributes/_expected.js similarity index 100% rename from test/form/samples/import-assertions/removes-static-assertions/_expected.js rename to test/form/samples/deprecated/removes-static-attributes/_expected.js diff --git a/test/form/samples/deprecated/removes-static-attributes/main.js b/test/form/samples/deprecated/removes-static-attributes/main.js new file mode 100644 index 000000000..645381650 --- /dev/null +++ b/test/form/samples/deprecated/removes-static-attributes/main.js @@ -0,0 +1,9 @@ +import { a } from 'a' with { type: 'a', extra: 'extra' }; +import * as b from 'b' with { type: 'b' }; +export { c } from 'c' with { type: 'c' }; +export * from 'd' with { type: 'd' }; +import 'unresolved' with { type: 'e' }; + +console.log(a, b, d); + + diff --git a/test/form/samples/emit-asset-file/_config.js b/test/form/samples/emit-asset-file/_config.js index 8086990f7..156e7b028 100644 --- a/test/form/samples/emit-asset-file/_config.js +++ b/test/form/samples/emit-asset-file/_config.js @@ -5,39 +5,41 @@ const path = require('node:path'); module.exports = defineTest({ description: 'supports emitting assets from plugin hooks', options: { - plugins: { - name: 'test', - resolveId(id, importee) { - if (id.endsWith('.svg')) { - return path.resolve(path.dirname(importee), id); + plugins: [ + { + name: 'test', + resolveId(id, importee) { + if (id.endsWith('.svg')) { + return path.resolve(path.dirname(importee), id); + } + }, + load(id) { + if (id.endsWith('.svg')) { + return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ + type: 'asset', + name: path.basename(id), + source: readFileSync(id) + })};`; + } + }, + generateBundle(options, outputBundle) { + const keys = Object.keys(outputBundle); + assert.strictEqual(keys.length, 2); + assert.strictEqual(keys[0], 'assets/logo-Mw5Zq12q.svg'); + const asset = outputBundle[keys[0]]; + assert.strictEqual(asset.fileName, 'assets/logo-Mw5Zq12q.svg'); + if (asset.type !== 'asset') { + throw new Error(`Unexpected asset type ${asset.type}.`); + } + /** @type {any} */ + const source = asset.source; + assert.ok( + source.equals(readFileSync(path.resolve(__dirname, 'logo.svg'))), + 'asset has correct source' + ); + assert.ok(keys[1].endsWith('.js'), `${keys[1]} ends with ".js"`); } - }, - load(id) { - if (id.endsWith('.svg')) { - return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ - type: 'asset', - name: path.basename(id), - source: readFileSync(id) - })};`; - } - }, - generateBundle(options, outputBundle) { - const keys = Object.keys(outputBundle); - assert.strictEqual(keys.length, 2); - assert.strictEqual(keys[0], 'assets/logo-a2a2cdc4.svg'); - const asset = outputBundle[keys[0]]; - assert.strictEqual(asset.fileName, 'assets/logo-a2a2cdc4.svg'); - if (asset.type !== 'asset') { - throw new Error(`Unexpected asset type ${asset.type}.`); - } - /** @type {any} */ - const source = asset.source; - assert.ok( - source.equals(readFileSync(path.resolve(__dirname, 'logo.svg'))), - 'asset has correct source' - ); - assert.ok(keys[1].endsWith('.js'), `${keys[1]} ends with ".js"`); } - } + ] } }); diff --git a/test/form/samples/emit-asset-file/_expected/amd.js b/test/form/samples/emit-asset-file/_expected/amd.js index ca2a1bdd5..95e450ea2 100644 --- a/test/form/samples/emit-asset-file/_expected/amd.js +++ b/test/form/samples/emit-asset-file/_expected/amd.js @@ -1,6 +1,6 @@ define(['require'], (function (require) { 'use strict'; - var logo = new URL(require.toUrl('./assets/logo-a2a2cdc4.svg'), document.baseURI).href; + var logo = new URL(require.toUrl('./assets/logo-Mw5Zq12q.svg'), document.baseURI).href; function showImage(url) { console.log(url); diff --git a/test/form/samples/emit-asset-file/_expected/assets/logo-a2a2cdc4.svg b/test/form/samples/emit-asset-file/_expected/assets/logo-Mw5Zq12q.svg similarity index 100% rename from test/form/samples/emit-asset-file/_expected/assets/logo-a2a2cdc4.svg rename to test/form/samples/emit-asset-file/_expected/assets/logo-Mw5Zq12q.svg diff --git a/test/form/samples/emit-asset-file/_expected/cjs.js b/test/form/samples/emit-asset-file/_expected/cjs.js index 2814aa111..f08047311 100644 --- a/test/form/samples/emit-asset-file/_expected/cjs.js +++ b/test/form/samples/emit-asset-file/_expected/cjs.js @@ -1,6 +1,6 @@ 'use strict'; -var logo = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/logo-a2a2cdc4.svg').href : new URL('assets/logo-a2a2cdc4.svg', document.currentScript && document.currentScript.src || document.baseURI).href); +var logo = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/logo-Mw5Zq12q.svg').href : new URL('assets/logo-Mw5Zq12q.svg', document.currentScript && document.currentScript.src || document.baseURI).href); function showImage(url) { console.log(url); diff --git a/test/form/samples/emit-asset-file/_expected/es.js b/test/form/samples/emit-asset-file/_expected/es.js index c29240a6a..3ce6ee622 100644 --- a/test/form/samples/emit-asset-file/_expected/es.js +++ b/test/form/samples/emit-asset-file/_expected/es.js @@ -1,4 +1,4 @@ -var logo = new URL('assets/logo-a2a2cdc4.svg', import.meta.url).href; +var logo = new URL('assets/logo-Mw5Zq12q.svg', import.meta.url).href; function showImage(url) { console.log(url); diff --git a/test/form/samples/emit-asset-file/_expected/iife.js b/test/form/samples/emit-asset-file/_expected/iife.js index f28f46dbc..cb0e0f33f 100644 --- a/test/form/samples/emit-asset-file/_expected/iife.js +++ b/test/form/samples/emit-asset-file/_expected/iife.js @@ -1,7 +1,7 @@ (function () { 'use strict'; - var logo = new URL('assets/logo-a2a2cdc4.svg', document.currentScript && document.currentScript.src || document.baseURI).href; + var logo = new URL('assets/logo-Mw5Zq12q.svg', document.currentScript && document.currentScript.src || document.baseURI).href; function showImage(url) { console.log(url); diff --git a/test/form/samples/emit-asset-file/_expected/system.js b/test/form/samples/emit-asset-file/_expected/system.js index d332088ba..5d2b8c1ee 100644 --- a/test/form/samples/emit-asset-file/_expected/system.js +++ b/test/form/samples/emit-asset-file/_expected/system.js @@ -3,7 +3,7 @@ System.register([], (function (exports, module) { return { execute: (function () { - var logo = new URL('assets/logo-a2a2cdc4.svg', module.meta.url).href; + var logo = new URL('assets/logo-Mw5Zq12q.svg', module.meta.url).href; function showImage(url) { console.log(url); diff --git a/test/form/samples/emit-asset-file/_expected/umd.js b/test/form/samples/emit-asset-file/_expected/umd.js index 0e30ac021..dba160744 100644 --- a/test/form/samples/emit-asset-file/_expected/umd.js +++ b/test/form/samples/emit-asset-file/_expected/umd.js @@ -3,7 +3,7 @@ factory(); })((function () { 'use strict'; - var logo = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/logo-a2a2cdc4.svg').href : new URL('assets/logo-a2a2cdc4.svg', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); + var logo = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/logo-Mw5Zq12q.svg').href : new URL('assets/logo-Mw5Zq12q.svg', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); function showImage(url) { console.log(url); diff --git a/test/form/samples/emit-file-tree-shaken-access/_config.js b/test/form/samples/emit-file-tree-shaken-access/_config.js index 124940e78..03475f0ea 100644 --- a/test/form/samples/emit-file-tree-shaken-access/_config.js +++ b/test/form/samples/emit-file-tree-shaken-access/_config.js @@ -4,22 +4,24 @@ const path = require('node:path'); module.exports = defineTest({ description: 'does not include format globals when tree-shaking an asset access', options: { - plugins: { - name: 'test', - resolveId(id, importee) { - if (id.endsWith('.svg')) { - return path.resolve(path.dirname(importee), id); - } - }, - load(id) { - if (id.endsWith('.svg')) { - return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ - type: 'asset', - name: path.basename(id), - source: readFileSync(id) - })};`; + plugins: [ + { + name: 'test', + resolveId(id, importee) { + if (id.endsWith('.svg')) { + return path.resolve(path.dirname(importee), id); + } + }, + load(id) { + if (id.endsWith('.svg')) { + return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ + type: 'asset', + name: path.basename(id), + source: readFileSync(id) + })};`; + } } } - } + ] } }); diff --git a/test/form/samples/emit-file-tree-shaken-access/_expected/assets/logo-a2a2cdc4.svg b/test/form/samples/emit-file-tree-shaken-access/_expected/assets/logo-Mw5Zq12q.svg similarity index 100% rename from test/form/samples/emit-file-tree-shaken-access/_expected/assets/logo-a2a2cdc4.svg rename to test/form/samples/emit-file-tree-shaken-access/_expected/assets/logo-Mw5Zq12q.svg diff --git a/test/form/samples/emit-uint8array-no-buffer/_config.js b/test/form/samples/emit-uint8array-no-buffer/_config.js index bdce9965b..2d77cc8a2 100644 --- a/test/form/samples/emit-uint8array-no-buffer/_config.js +++ b/test/form/samples/emit-uint8array-no-buffer/_config.js @@ -9,21 +9,23 @@ module.exports = defineTest({ global.Buffer = Buffer; }, options: { - plugins: { - name: 'test', - resolveId(id) { - if (id.startsWith('asset')) { - return id; - } - }, - load(id) { - if (id.startsWith('asset')) { - return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ - type: 'asset', - source: Uint8Array.from([...id].map(char => char.charCodeAt(0))) - })};`; + plugins: [ + { + name: 'test', + resolveId(id) { + if (id.startsWith('asset')) { + return id; + } + }, + load(id) { + if (id.startsWith('asset')) { + return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ + type: 'asset', + source: Uint8Array.from([...id].map(char => char.charCodeAt(0))) + })};`; + } } } - } + ] } }); diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/amd.js b/test/form/samples/emit-uint8array-no-buffer/_expected/amd.js index 4dd0a3d99..9c9e5e8db 100644 --- a/test/form/samples/emit-uint8array-no-buffer/_expected/amd.js +++ b/test/form/samples/emit-uint8array-no-buffer/_expected/amd.js @@ -1,10 +1,10 @@ define(['require'], (function (require) { 'use strict'; - var asset1 = new URL(require.toUrl('./assets/asset-8e3dd2ea'), document.baseURI).href; + var asset1 = new URL(require.toUrl('./assets/asset-tb9uIT4z'), document.baseURI).href; - var asset2 = new URL(require.toUrl('./assets/asset-75590fc1'), document.baseURI).href; + var asset2 = new URL(require.toUrl('./assets/asset-rVqBj9gL'), document.baseURI).href; - var asset99 = new URL(require.toUrl('./assets/asset-60cc5dc9'), document.baseURI).href; + var asset99 = new URL(require.toUrl('./assets/asset-PPyJ5YHr'), document.baseURI).href; console.log(asset1, asset2, asset99); diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-60cc5dc9 b/test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-PPyJ5YHr similarity index 100% rename from test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-60cc5dc9 rename to test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-PPyJ5YHr diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-75590fc1 b/test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-rVqBj9gL similarity index 100% rename from test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-75590fc1 rename to test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-rVqBj9gL diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-8e3dd2ea b/test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-tb9uIT4z similarity index 100% rename from test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-8e3dd2ea rename to test/form/samples/emit-uint8array-no-buffer/_expected/assets/asset-tb9uIT4z diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/cjs.js b/test/form/samples/emit-uint8array-no-buffer/_expected/cjs.js index 6221222f2..72766f772 100644 --- a/test/form/samples/emit-uint8array-no-buffer/_expected/cjs.js +++ b/test/form/samples/emit-uint8array-no-buffer/_expected/cjs.js @@ -1,9 +1,9 @@ 'use strict'; -var asset1 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-8e3dd2ea').href : new URL('assets/asset-8e3dd2ea', document.currentScript && document.currentScript.src || document.baseURI).href); +var asset1 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-tb9uIT4z').href : new URL('assets/asset-tb9uIT4z', document.currentScript && document.currentScript.src || document.baseURI).href); -var asset2 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-75590fc1').href : new URL('assets/asset-75590fc1', document.currentScript && document.currentScript.src || document.baseURI).href); +var asset2 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-rVqBj9gL').href : new URL('assets/asset-rVqBj9gL', document.currentScript && document.currentScript.src || document.baseURI).href); -var asset99 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-60cc5dc9').href : new URL('assets/asset-60cc5dc9', document.currentScript && document.currentScript.src || document.baseURI).href); +var asset99 = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-PPyJ5YHr').href : new URL('assets/asset-PPyJ5YHr', document.currentScript && document.currentScript.src || document.baseURI).href); console.log(asset1, asset2, asset99); diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/es.js b/test/form/samples/emit-uint8array-no-buffer/_expected/es.js index b534c76f8..e8e4da6f6 100644 --- a/test/form/samples/emit-uint8array-no-buffer/_expected/es.js +++ b/test/form/samples/emit-uint8array-no-buffer/_expected/es.js @@ -1,7 +1,7 @@ -var asset1 = new URL('assets/asset-8e3dd2ea', import.meta.url).href; +var asset1 = new URL('assets/asset-tb9uIT4z', import.meta.url).href; -var asset2 = new URL('assets/asset-75590fc1', import.meta.url).href; +var asset2 = new URL('assets/asset-rVqBj9gL', import.meta.url).href; -var asset99 = new URL('assets/asset-60cc5dc9', import.meta.url).href; +var asset99 = new URL('assets/asset-PPyJ5YHr', import.meta.url).href; console.log(asset1, asset2, asset99); diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/iife.js b/test/form/samples/emit-uint8array-no-buffer/_expected/iife.js index 0f2545ae0..1e53ea6a5 100644 --- a/test/form/samples/emit-uint8array-no-buffer/_expected/iife.js +++ b/test/form/samples/emit-uint8array-no-buffer/_expected/iife.js @@ -1,11 +1,11 @@ (function () { 'use strict'; - var asset1 = new URL('assets/asset-8e3dd2ea', document.currentScript && document.currentScript.src || document.baseURI).href; + var asset1 = new URL('assets/asset-tb9uIT4z', document.currentScript && document.currentScript.src || document.baseURI).href; - var asset2 = new URL('assets/asset-75590fc1', document.currentScript && document.currentScript.src || document.baseURI).href; + var asset2 = new URL('assets/asset-rVqBj9gL', document.currentScript && document.currentScript.src || document.baseURI).href; - var asset99 = new URL('assets/asset-60cc5dc9', document.currentScript && document.currentScript.src || document.baseURI).href; + var asset99 = new URL('assets/asset-PPyJ5YHr', document.currentScript && document.currentScript.src || document.baseURI).href; console.log(asset1, asset2, asset99); diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/system.js b/test/form/samples/emit-uint8array-no-buffer/_expected/system.js index 6ea30debb..793417e46 100644 --- a/test/form/samples/emit-uint8array-no-buffer/_expected/system.js +++ b/test/form/samples/emit-uint8array-no-buffer/_expected/system.js @@ -3,11 +3,11 @@ System.register([], (function (exports, module) { return { execute: (function () { - var asset1 = new URL('assets/asset-8e3dd2ea', module.meta.url).href; + var asset1 = new URL('assets/asset-tb9uIT4z', module.meta.url).href; - var asset2 = new URL('assets/asset-75590fc1', module.meta.url).href; + var asset2 = new URL('assets/asset-rVqBj9gL', module.meta.url).href; - var asset99 = new URL('assets/asset-60cc5dc9', module.meta.url).href; + var asset99 = new URL('assets/asset-PPyJ5YHr', module.meta.url).href; console.log(asset1, asset2, asset99); diff --git a/test/form/samples/emit-uint8array-no-buffer/_expected/umd.js b/test/form/samples/emit-uint8array-no-buffer/_expected/umd.js index 8f36a10af..3dd9d1d11 100644 --- a/test/form/samples/emit-uint8array-no-buffer/_expected/umd.js +++ b/test/form/samples/emit-uint8array-no-buffer/_expected/umd.js @@ -3,11 +3,11 @@ factory(); })((function () { 'use strict'; - var asset1 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-8e3dd2ea').href : new URL('assets/asset-8e3dd2ea', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); + var asset1 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-tb9uIT4z').href : new URL('assets/asset-tb9uIT4z', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); - var asset2 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-75590fc1').href : new URL('assets/asset-75590fc1', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); + var asset2 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-rVqBj9gL').href : new URL('assets/asset-rVqBj9gL', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); - var asset99 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-60cc5dc9').href : new URL('assets/asset-60cc5dc9', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); + var asset99 = (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__dirname + '/assets/asset-PPyJ5YHr').href : new URL('assets/asset-PPyJ5YHr', typeof document === 'undefined' ? location.href : document.currentScript && document.currentScript.src || document.baseURI).href); console.log(asset1, asset2, asset99); diff --git a/test/form/samples/empty-export/_config.js b/test/form/samples/empty-export/_config.js new file mode 100644 index 000000000..ea67178e3 --- /dev/null +++ b/test/form/samples/empty-export/_config.js @@ -0,0 +1,3 @@ +module.exports = defineTest({ + description: 'handles empty exports' +}); diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/amd.js b/test/form/samples/empty-export/_expected/amd.js similarity index 100% rename from test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/amd.js rename to test/form/samples/empty-export/_expected/amd.js diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/cjs.js b/test/form/samples/empty-export/_expected/cjs.js similarity index 100% rename from test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/cjs.js rename to test/form/samples/empty-export/_expected/cjs.js diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/es.js b/test/form/samples/empty-export/_expected/es.js similarity index 100% rename from test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/es.js rename to test/form/samples/empty-export/_expected/es.js diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/iife.js b/test/form/samples/empty-export/_expected/iife.js similarity index 100% rename from test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/iife.js rename to test/form/samples/empty-export/_expected/iife.js diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/system.js b/test/form/samples/empty-export/_expected/system.js similarity index 100% rename from test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/system.js rename to test/form/samples/empty-export/_expected/system.js diff --git a/test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/umd.js b/test/form/samples/empty-export/_expected/umd.js similarity index 100% rename from test/form/samples/deprecated/inlined-treeshaken-dynamic-import/_expected/umd.js rename to test/form/samples/empty-export/_expected/umd.js diff --git a/test/form/samples/empty-export/main.js b/test/form/samples/empty-export/main.js new file mode 100644 index 000000000..40f1e1d7b --- /dev/null +++ b/test/form/samples/empty-export/main.js @@ -0,0 +1,2 @@ +console.log('main'); +export {}; diff --git a/test/form/samples/empty-statament-class-member/_config.js b/test/form/samples/empty-statament-class-member/_config.js new file mode 100644 index 000000000..31e35cc41 --- /dev/null +++ b/test/form/samples/empty-statament-class-member/_config.js @@ -0,0 +1,3 @@ +module.exports = defineTest({ + description: 'Do not crash if class body has empty statements' +}); diff --git a/test/form/samples/empty-statament-class-member/_expected/amd.js b/test/form/samples/empty-statament-class-member/_expected/amd.js new file mode 100644 index 000000000..5300be6a4 --- /dev/null +++ b/test/form/samples/empty-statament-class-member/_expected/amd.js @@ -0,0 +1,11 @@ +define((function () { 'use strict'; + + class Foo { + foo() { + console.log('foo'); + }; + } + + console.log(Foo); + +})); diff --git a/test/form/samples/empty-statament-class-member/_expected/cjs.js b/test/form/samples/empty-statament-class-member/_expected/cjs.js new file mode 100644 index 000000000..5c7b09b47 --- /dev/null +++ b/test/form/samples/empty-statament-class-member/_expected/cjs.js @@ -0,0 +1,9 @@ +'use strict'; + +class Foo { + foo() { + console.log('foo'); + }; +} + +console.log(Foo); diff --git a/test/form/samples/empty-statament-class-member/_expected/es.js b/test/form/samples/empty-statament-class-member/_expected/es.js new file mode 100644 index 000000000..d6767f3d0 --- /dev/null +++ b/test/form/samples/empty-statament-class-member/_expected/es.js @@ -0,0 +1,7 @@ +class Foo { + foo() { + console.log('foo'); + }; +} + +console.log(Foo); diff --git a/test/form/samples/empty-statament-class-member/_expected/iife.js b/test/form/samples/empty-statament-class-member/_expected/iife.js new file mode 100644 index 000000000..59053d3a1 --- /dev/null +++ b/test/form/samples/empty-statament-class-member/_expected/iife.js @@ -0,0 +1,12 @@ +(function () { + 'use strict'; + + class Foo { + foo() { + console.log('foo'); + }; + } + + console.log(Foo); + +})(); diff --git a/test/form/samples/empty-statament-class-member/_expected/system.js b/test/form/samples/empty-statament-class-member/_expected/system.js new file mode 100644 index 000000000..dc2eff5bb --- /dev/null +++ b/test/form/samples/empty-statament-class-member/_expected/system.js @@ -0,0 +1,16 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + class Foo { + foo() { + console.log('foo'); + }; + } + + console.log(Foo); + + }) + }; +})); diff --git a/test/form/samples/empty-statament-class-member/_expected/umd.js b/test/form/samples/empty-statament-class-member/_expected/umd.js new file mode 100644 index 000000000..dd4f83d34 --- /dev/null +++ b/test/form/samples/empty-statament-class-member/_expected/umd.js @@ -0,0 +1,14 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + class Foo { + foo() { + console.log('foo'); + }; + } + + console.log(Foo); + +})); diff --git a/test/form/samples/empty-statament-class-member/main.js b/test/form/samples/empty-statament-class-member/main.js new file mode 100644 index 000000000..d6767f3d0 --- /dev/null +++ b/test/form/samples/empty-statament-class-member/main.js @@ -0,0 +1,7 @@ +class Foo { + foo() { + console.log('foo'); + }; +} + +console.log(Foo); diff --git a/test/form/samples/entry-with-unused-synthetic-exports/_config.js b/test/form/samples/entry-with-unused-synthetic-exports/_config.js index 67dd54b20..e79ba880f 100644 --- a/test/form/samples/entry-with-unused-synthetic-exports/_config.js +++ b/test/form/samples/entry-with-unused-synthetic-exports/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'does not include unused synthetic namespace object in entry points', options: { - plugins: { - name: 'test-plugin', - transform(code) { - return { code, syntheticNamedExports: '__moduleExports' }; + plugins: [ + { + name: 'test-plugin', + transform(code) { + return { code, syntheticNamedExports: '__moduleExports' }; + } } - } + ] } }); diff --git a/test/form/samples/export-globals/_config.js b/test/form/samples/export-globals/_config.js index 6d54b2cfe..d4fb00a05 100644 --- a/test/form/samples/export-globals/_config.js +++ b/test/form/samples/export-globals/_config.js @@ -1,6 +1,3 @@ -// Changed due to https://github.com/acornjs/acorn/issues/806 -// Consider reverting this change should this become an acorn option - module.exports = defineTest({ description: 'Supports reexports of globals with namespace access', options: { diff --git a/test/form/samples/handles-special-comments/_config.js b/test/form/samples/handles-special-comments/_config.js new file mode 100644 index 000000000..f1866b5bf --- /dev/null +++ b/test/form/samples/handles-special-comments/_config.js @@ -0,0 +1,3 @@ +module.exports = defineTest({ + description: 'does not fail on certain comments (#5174)' +}); diff --git a/test/form/samples/handles-special-comments/_expected.js b/test/form/samples/handles-special-comments/_expected.js new file mode 100644 index 000000000..e9a293a63 --- /dev/null +++ b/test/form/samples/handles-special-comments/_expected.js @@ -0,0 +1,2 @@ +// “__ +console.log('main'); diff --git a/test/form/samples/handles-special-comments/main.js b/test/form/samples/handles-special-comments/main.js new file mode 100644 index 000000000..e9a293a63 --- /dev/null +++ b/test/form/samples/handles-special-comments/main.js @@ -0,0 +1,2 @@ +// “__ +console.log('main'); diff --git a/test/form/samples/hashbang/_config.js b/test/form/samples/hashbang/_config.js deleted file mode 100644 index 36eb1925f..000000000 --- a/test/form/samples/hashbang/_config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = defineTest({ - description: 'supports input files with leading hashbang comment' -}); diff --git a/test/form/samples/hashbang/_expected.js b/test/form/samples/hashbang/_expected.js deleted file mode 100644 index 180a2a592..000000000 --- a/test/form/samples/hashbang/_expected.js +++ /dev/null @@ -1,3 +0,0 @@ -console.log('other'); - -console.log('main'); diff --git a/test/form/samples/hoisted-vars-in-dead-branches/_expected.js b/test/form/samples/hoisted-vars-in-dead-branches/_expected.js index 86e711f27..d9656038e 100644 --- a/test/form/samples/hoisted-vars-in-dead-branches/_expected.js +++ b/test/form/samples/hoisted-vars-in-dead-branches/_expected.js @@ -1,4 +1,4 @@ -var a, b; { +var b, a; { console.log(a, b); } diff --git a/test/form/samples/import-assertions/assertion-shapes/_config.js b/test/form/samples/import-assertions/assertion-shapes/_config.js deleted file mode 100644 index 4629f8754..000000000 --- a/test/form/samples/import-assertions/assertion-shapes/_config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = defineTest({ - description: 'handles special shapes of assertions', - options: { - external: () => true - } -}); diff --git a/test/form/samples/import-assertions/assertion-shapes/main.js b/test/form/samples/import-assertions/assertion-shapes/main.js deleted file mode 100644 index a82cad812..000000000 --- a/test/form/samples/import-assertions/assertion-shapes/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import('external-a', { 'assert': { 'type': 'json', foo: 1, ...{} } }); -import('external-b', { assert: {} }); -import('external-c', { ...{} }); -import('external-d', {}); diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/_config.js b/test/form/samples/import-assertions/keep-dynamic-assertions/_config.js deleted file mode 100644 index 6cd9a1555..000000000 --- a/test/form/samples/import-assertions/keep-dynamic-assertions/_config.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = defineTest({ - description: 'keep import assertions for dynamic imports', - expectedWarnings: ['UNRESOLVED_IMPORT'], - options: { - external: id => { - if (id === 'unresolved') return null; - return true; - }, - plugins: [ - { - name: 'test', - resolveDynamicImport(specifier) { - if (typeof specifier === 'object') { - if (specifier.type === 'TemplateLiteral') { - return "'resolvedString'"; - } - if (specifier.type === 'BinaryExpression') { - return { id: 'resolved-id', external: true }; - } - } else if (specifier === 'external-resolved') { - return { id: 'resolved-different', external: true }; - } - return null; - } - } - ] - } -}); diff --git a/test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/_config.js b/test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/_config.js deleted file mode 100644 index a0ec44b6b..000000000 --- a/test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/_config.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = defineTest({ - description: 'allows plugins to read and write import assertions in resolveDynamicImport', - options: { - plugins: [ - { - name: 'test', - resolveDynamicImport(specifier, importer, { assertions }) { - const resolutionOptions = { - external: true, - assertions: Object.fromEntries(Object.keys(assertions).map(key => [key, 'changed'])) - }; - if (typeof specifier === 'object') { - if (specifier.type === 'TemplateLiteral') { - return { id: 'resolved-a', ...resolutionOptions }; - } - return { id: 'resolved-b', ...resolutionOptions }; - } - return { id: specifier, ...resolutionOptions }; - } - } - ] - } -}); diff --git a/test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/main.js b/test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/main.js deleted file mode 100644 index 6d8a892a6..000000000 --- a/test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import('a', { assert: { type: 'special' } }); -import(globalThis.unknown, { assert: { type: 'special', extra: 'value' } }); -import('b'); -import(`external-${globalThis.unknown}`); diff --git a/test/form/samples/import-assertions/plugin-assertions-resolveid/_config.js b/test/form/samples/import-assertions/plugin-assertions-resolveid/_config.js deleted file mode 100644 index 53b921dda..000000000 --- a/test/form/samples/import-assertions/plugin-assertions-resolveid/_config.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = defineTest({ - description: 'allows plugins to read and write import assertions in resolveId', - options: { - output: { name: 'bundle' }, - plugins: [ - { - name: 'test', - resolveId(source, importer, { assertions, isEntry }) { - return { - id: source, - external: !isEntry, - assertions: Object.fromEntries(Object.keys(assertions).map(key => [key, 'changed'])) - }; - } - } - ] - } -}); diff --git a/test/form/samples/import-assertions/plugin-assertions-resolveid/main.js b/test/form/samples/import-assertions/plugin-assertions-resolveid/main.js deleted file mode 100644 index 7781ebfe7..000000000 --- a/test/form/samples/import-assertions/plugin-assertions-resolveid/main.js +++ /dev/null @@ -1,9 +0,0 @@ -import { a } from 'a' assert { type: 'a', extra: 'extra' }; -import * as b from 'b' assert { type: 'b' }; -export { c } from 'c' assert { type: 'c' }; -export * from 'd' assert { type: 'd' }; -import 'e'; - -console.log(a, b, d); -import('f', { assert: { type: 'f' } }); -import('g'); diff --git a/test/form/samples/import-assertions/removes-dynamic-assertions/_config.js b/test/form/samples/import-assertions/removes-dynamic-assertions/_config.js deleted file mode 100644 index 5330ee734..000000000 --- a/test/form/samples/import-assertions/removes-dynamic-assertions/_config.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = defineTest({ - description: 'keep import assertions for dynamic imports', - expectedWarnings: ['UNRESOLVED_IMPORT'], - options: { - external: id => { - if (id === 'unresolved') return null; - return true; - }, - plugins: [ - { - name: 'test', - resolveDynamicImport(specifier) { - if (typeof specifier === 'object') { - if (specifier.type === 'TemplateLiteral') { - return "'resolvedString'"; - } - if (specifier.type === 'BinaryExpression') { - return { id: 'resolved-id', external: true }; - } - } else if (specifier === 'external-resolved') { - return { id: 'resolved-different', external: true }; - } - return null; - } - } - ], - output: { externalImportAssertions: false } - } -}); diff --git a/test/form/samples/import-assertions/removes-dynamic-assertions/main.js b/test/form/samples/import-assertions/removes-dynamic-assertions/main.js deleted file mode 100644 index 38bfed638..000000000 --- a/test/form/samples/import-assertions/removes-dynamic-assertions/main.js +++ /dev/null @@ -1,6 +0,0 @@ -import('external', { assert: { type: 'special' } }); -import(globalThis.unknown, { assert: { type: 'special' } }); -import(`external-${globalThis.unknown}`, { assert: { type: 'special' } }); -import('external' + globalThis.unknown, { assert: { type: 'special' } }); -import('external-resolved', { assert: { type: 'special' } }); -import('unresolved', { assert: { type: 'special' } }); diff --git a/test/form/samples/import-assertions/removes-static-assertions/_config.js b/test/form/samples/import-assertions/removes-static-assertions/_config.js deleted file mode 100644 index 8f8d7c07f..000000000 --- a/test/form/samples/import-assertions/removes-static-assertions/_config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = defineTest({ - description: 'keeps any import assertions on input', - expectedWarnings: ['UNRESOLVED_IMPORT'], - options: { - external: id => { - if (id === 'unresolved') return null; - return true; - }, - output: { name: 'bundle', externalImportAssertions: false } - } -}); diff --git a/test/form/samples/import-assertions/removes-static-assertions/main.js b/test/form/samples/import-assertions/removes-static-assertions/main.js deleted file mode 100644 index 02b154c86..000000000 --- a/test/form/samples/import-assertions/removes-static-assertions/main.js +++ /dev/null @@ -1,9 +0,0 @@ -import { a } from 'a' assert { type: 'a', extra: 'extra' }; -import * as b from 'b' assert { type: 'b' }; -export { c } from 'c' assert { type: 'c' }; -export * from 'd' assert { type: 'd' }; -import 'unresolved' assert { type: 'e' }; - -console.log(a, b, d); - - diff --git a/test/form/samples/import-attributes/attribute-shapes/_config.js b/test/form/samples/import-attributes/attribute-shapes/_config.js new file mode 100644 index 000000000..e0cd94cea --- /dev/null +++ b/test/form/samples/import-attributes/attribute-shapes/_config.js @@ -0,0 +1,7 @@ +module.exports = defineTest({ + description: 'handles special shapes of attributes', + options: { + external: () => true + }, + expectedWarnings: ['INVALID_IMPORT_ATTRIBUTE'] +}); diff --git a/test/form/samples/import-assertions/assertion-shapes/_expected.js b/test/form/samples/import-attributes/attribute-shapes/_expected.js similarity index 100% rename from test/form/samples/import-assertions/assertion-shapes/_expected.js rename to test/form/samples/import-attributes/attribute-shapes/_expected.js diff --git a/test/form/samples/import-attributes/attribute-shapes/main.js b/test/form/samples/import-attributes/attribute-shapes/main.js new file mode 100644 index 000000000..63f5bb69b --- /dev/null +++ b/test/form/samples/import-attributes/attribute-shapes/main.js @@ -0,0 +1,4 @@ +import('external-a', { 'with': { 'type': 'json', foo: 1, ...{} } }); +import('external-b', { with: {} }); +import('external-c', { ...{} }); +import('external-d', {}); diff --git a/test/form/samples/import-attributes/keep-dynamic-assertions/_config.js b/test/form/samples/import-attributes/keep-dynamic-assertions/_config.js new file mode 100644 index 000000000..a75f18189 --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-assertions/_config.js @@ -0,0 +1,28 @@ +module.exports = defineTest({ + description: 'keep import attributes for dynamic imports', + expectedWarnings: ['UNRESOLVED_IMPORT'], + options: { + external: id => { + if (id === 'unresolved') return null; + return true; + }, + plugins: [ + { + name: 'test', + resolveDynamicImport(specifier) { + if (typeof specifier === 'object') { + if (specifier.type === 'TemplateLiteral') { + return "'resolvedString'"; + } + if (specifier.type === 'BinaryExpression') { + return { id: 'resolved-id', external: true }; + } + } else if (specifier === 'external-resolved') { + return { id: 'resolved-different', external: true }; + } + return null; + } + } + ] + } +}); diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/_expected/amd.js b/test/form/samples/import-attributes/keep-dynamic-assertions/_expected/amd.js similarity index 100% rename from test/form/samples/import-assertions/keep-dynamic-assertions/_expected/amd.js rename to test/form/samples/import-attributes/keep-dynamic-assertions/_expected/amd.js diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/_expected/cjs.js b/test/form/samples/import-attributes/keep-dynamic-assertions/_expected/cjs.js similarity index 100% rename from test/form/samples/import-assertions/keep-dynamic-assertions/_expected/cjs.js rename to test/form/samples/import-attributes/keep-dynamic-assertions/_expected/cjs.js diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/_expected/es.js b/test/form/samples/import-attributes/keep-dynamic-assertions/_expected/es.js similarity index 100% rename from test/form/samples/import-assertions/keep-dynamic-assertions/_expected/es.js rename to test/form/samples/import-attributes/keep-dynamic-assertions/_expected/es.js diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/_expected/iife.js b/test/form/samples/import-attributes/keep-dynamic-assertions/_expected/iife.js similarity index 100% rename from test/form/samples/import-assertions/keep-dynamic-assertions/_expected/iife.js rename to test/form/samples/import-attributes/keep-dynamic-assertions/_expected/iife.js diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/_expected/system.js b/test/form/samples/import-attributes/keep-dynamic-assertions/_expected/system.js similarity index 100% rename from test/form/samples/import-assertions/keep-dynamic-assertions/_expected/system.js rename to test/form/samples/import-attributes/keep-dynamic-assertions/_expected/system.js diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/_expected/umd.js b/test/form/samples/import-attributes/keep-dynamic-assertions/_expected/umd.js similarity index 100% rename from test/form/samples/import-assertions/keep-dynamic-assertions/_expected/umd.js rename to test/form/samples/import-attributes/keep-dynamic-assertions/_expected/umd.js diff --git a/test/form/samples/import-assertions/keep-dynamic-assertions/main.js b/test/form/samples/import-attributes/keep-dynamic-assertions/main.js similarity index 100% rename from test/form/samples/import-assertions/keep-dynamic-assertions/main.js rename to test/form/samples/import-attributes/keep-dynamic-assertions/main.js diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/_config.js b/test/form/samples/import-attributes/keep-dynamic-attributes/_config.js new file mode 100644 index 000000000..a75f18189 --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/_config.js @@ -0,0 +1,28 @@ +module.exports = defineTest({ + description: 'keep import attributes for dynamic imports', + expectedWarnings: ['UNRESOLVED_IMPORT'], + options: { + external: id => { + if (id === 'unresolved') return null; + return true; + }, + plugins: [ + { + name: 'test', + resolveDynamicImport(specifier) { + if (typeof specifier === 'object') { + if (specifier.type === 'TemplateLiteral') { + return "'resolvedString'"; + } + if (specifier.type === 'BinaryExpression') { + return { id: 'resolved-id', external: true }; + } + } else if (specifier === 'external-resolved') { + return { id: 'resolved-different', external: true }; + } + return null; + } + } + ] + } +}); diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/amd.js b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/amd.js new file mode 100644 index 000000000..e9478c8fc --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/amd.js @@ -0,0 +1,27 @@ +define(['require'], (function (require) { 'use strict'; + + function _interopNamespaceDefault(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); + } + + new Promise(function (resolve, reject) { require(['external'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }); + (function (t) { return new Promise(function (resolve, reject) { require([t], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }); })(globalThis.unknown); + (function (t) { return new Promise(function (resolve, reject) { require([t], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }); })('resolvedString'); + new Promise(function (resolve, reject) { require(['resolved-id'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }); + new Promise(function (resolve, reject) { require(['resolved-different'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }); + new Promise(function (resolve, reject) { require(['unresolved'], function (m) { resolve(/*#__PURE__*/_interopNamespaceDefault(m)); }, reject); }); + +})); diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/cjs.js b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/cjs.js new file mode 100644 index 000000000..e1cd2b6d0 --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/cjs.js @@ -0,0 +1,8 @@ +'use strict'; + +import('external'); +import(globalThis.unknown); +import('resolvedString'); +import('resolved-id'); +import('resolved-different'); +import('unresolved'); diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/es.js b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/es.js new file mode 100644 index 000000000..511aa8d86 --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/es.js @@ -0,0 +1,6 @@ +import('external', { assert: { type: 'special' } }); +import(globalThis.unknown, { with: { type: 'special' } }); +import('resolvedString', { with: { type: 'special' } }); +import('resolved-id', { assert: { type: 'special' } }); +import('resolved-different', { assert: { type: 'special' } }); +import('unresolved', { assert: { type: 'special' } }); diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/iife.js b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/iife.js new file mode 100644 index 000000000..0da800282 --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/iife.js @@ -0,0 +1,11 @@ +(function () { + 'use strict'; + + import('external'); + import(globalThis.unknown); + import('resolvedString'); + import('resolved-id'); + import('resolved-different'); + import('unresolved'); + +})(); diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/system.js b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/system.js new file mode 100644 index 000000000..44c758c29 --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/system.js @@ -0,0 +1,15 @@ +System.register([], (function (exports, module) { + 'use strict'; + return { + execute: (function () { + + module.import('external'); + module.import(globalThis.unknown); + module.import('resolvedString'); + module.import('resolved-id'); + module.import('resolved-different'); + module.import('unresolved'); + + }) + }; +})); diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/umd.js b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/umd.js new file mode 100644 index 000000000..cd9d7642d --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/_expected/umd.js @@ -0,0 +1,13 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + import('external'); + import(globalThis.unknown); + import('resolvedString'); + import('resolved-id'); + import('resolved-different'); + import('unresolved'); + +})); diff --git a/test/form/samples/import-attributes/keep-dynamic-attributes/main.js b/test/form/samples/import-attributes/keep-dynamic-attributes/main.js new file mode 100644 index 000000000..025b60451 --- /dev/null +++ b/test/form/samples/import-attributes/keep-dynamic-attributes/main.js @@ -0,0 +1,6 @@ +import('external', { with: { type: 'special' } }); +import(globalThis.unknown, { with: { type: 'special' } }); +import(`external-${globalThis.unknown}`, { with: { type: 'special' } }); +import('external' + globalThis.unknown, { with: { type: 'special' } }); +import('external-resolved', { with: { type: 'special' } }); +import('unresolved', { with: { type: 'special' } }); diff --git a/test/form/samples/import-assertions/keeps-static-assertions/_config.js b/test/form/samples/import-attributes/keeps-static-assertions/_config.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/_config.js rename to test/form/samples/import-attributes/keeps-static-assertions/_config.js diff --git a/test/form/samples/import-assertions/keeps-static-assertions/_expected/amd.js b/test/form/samples/import-attributes/keeps-static-assertions/_expected/amd.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/_expected/amd.js rename to test/form/samples/import-attributes/keeps-static-assertions/_expected/amd.js diff --git a/test/form/samples/import-assertions/keeps-static-assertions/_expected/cjs.js b/test/form/samples/import-attributes/keeps-static-assertions/_expected/cjs.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/_expected/cjs.js rename to test/form/samples/import-attributes/keeps-static-assertions/_expected/cjs.js diff --git a/test/form/samples/import-assertions/keeps-static-assertions/_expected/es.js b/test/form/samples/import-attributes/keeps-static-assertions/_expected/es.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/_expected/es.js rename to test/form/samples/import-attributes/keeps-static-assertions/_expected/es.js diff --git a/test/form/samples/import-assertions/keeps-static-assertions/_expected/iife.js b/test/form/samples/import-attributes/keeps-static-assertions/_expected/iife.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/_expected/iife.js rename to test/form/samples/import-attributes/keeps-static-assertions/_expected/iife.js diff --git a/test/form/samples/import-assertions/keeps-static-assertions/_expected/system.js b/test/form/samples/import-attributes/keeps-static-assertions/_expected/system.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/_expected/system.js rename to test/form/samples/import-attributes/keeps-static-assertions/_expected/system.js diff --git a/test/form/samples/import-assertions/keeps-static-assertions/_expected/umd.js b/test/form/samples/import-attributes/keeps-static-assertions/_expected/umd.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/_expected/umd.js rename to test/form/samples/import-attributes/keeps-static-assertions/_expected/umd.js diff --git a/test/form/samples/import-assertions/keeps-static-assertions/main.js b/test/form/samples/import-attributes/keeps-static-assertions/main.js similarity index 100% rename from test/form/samples/import-assertions/keeps-static-assertions/main.js rename to test/form/samples/import-attributes/keeps-static-assertions/main.js diff --git a/test/form/samples/import-attributes/keeps-static-attributes/_config.js b/test/form/samples/import-attributes/keeps-static-attributes/_config.js new file mode 100644 index 000000000..c9572989e --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/_config.js @@ -0,0 +1,11 @@ +module.exports = defineTest({ + description: 'keeps any import attributes on input', + expectedWarnings: ['UNRESOLVED_IMPORT'], + options: { + external: id => { + if (id === 'unresolved') return null; + return true; + }, + output: { name: 'bundle' } + } +}); diff --git a/test/form/samples/import-attributes/keeps-static-attributes/_expected/amd.js b/test/form/samples/import-attributes/keeps-static-attributes/_expected/amd.js new file mode 100644 index 000000000..a062f43e7 --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/_expected/amd.js @@ -0,0 +1,35 @@ +define(['exports', 'a', 'b', 'c', 'd', 'unresolved'], (function (exports, a, b, c, d$1, unresolved) { 'use strict'; + + function _interopNamespaceDefault(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); + } + + var b__namespace = /*#__PURE__*/_interopNamespaceDefault(b); + + console.log(a.a, b__namespace, d); + + Object.defineProperty(exports, 'c', { + enumerable: true, + get: function () { return c.c; } + }); + Object.keys(d$1).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, { + enumerable: true, + get: function () { return d$1[k]; } + }); + }); + +})); diff --git a/test/form/samples/import-attributes/keeps-static-attributes/_expected/cjs.js b/test/form/samples/import-attributes/keeps-static-attributes/_expected/cjs.js new file mode 100644 index 000000000..edfd57fa1 --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/_expected/cjs.js @@ -0,0 +1,39 @@ +'use strict'; + +var a = require('a'); +var b = require('b'); +var c = require('c'); +var d$1 = require('d'); +require('unresolved'); + +function _interopNamespaceDefault(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); +} + +var b__namespace = /*#__PURE__*/_interopNamespaceDefault(b); + +console.log(a.a, b__namespace, d); + +Object.defineProperty(exports, 'c', { + enumerable: true, + get: function () { return c.c; } +}); +Object.keys(d$1).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, { + enumerable: true, + get: function () { return d$1[k]; } + }); +}); diff --git a/test/form/samples/import-attributes/keeps-static-attributes/_expected/es.js b/test/form/samples/import-attributes/keeps-static-attributes/_expected/es.js new file mode 100644 index 000000000..ba6c7ba45 --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/_expected/es.js @@ -0,0 +1,7 @@ +import { a } from 'a' assert { type: 'a', extra: 'extra' }; +import * as b from 'b' assert { type: 'b' }; +export { c } from 'c' assert { type: 'c' }; +export * from 'd' assert { type: 'd' }; +import 'unresolved' assert { type: 'e' }; + +console.log(a, b, d); diff --git a/test/form/samples/import-attributes/keeps-static-attributes/_expected/iife.js b/test/form/samples/import-attributes/keeps-static-attributes/_expected/iife.js new file mode 100644 index 000000000..bb4f140e1 --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/_expected/iife.js @@ -0,0 +1,38 @@ +var bundle = (function (exports, a, b, c, d$1) { + 'use strict'; + + function _interopNamespaceDefault(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); + } + + var b__namespace = /*#__PURE__*/_interopNamespaceDefault(b); + + console.log(a.a, b__namespace, d); + + Object.defineProperty(exports, 'c', { + enumerable: true, + get: function () { return c.c; } + }); + Object.keys(d$1).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, { + enumerable: true, + get: function () { return d$1[k]; } + }); + }); + + return exports; + +})({}, a, b, c, d$1); diff --git a/test/form/samples/import-attributes/keeps-static-attributes/_expected/system.js b/test/form/samples/import-attributes/keeps-static-attributes/_expected/system.js new file mode 100644 index 000000000..e1e3a6ae4 --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/_expected/system.js @@ -0,0 +1,28 @@ +System.register('bundle', ['a', 'b', 'c', 'd', 'unresolved'], (function (exports) { + 'use strict'; + var _starExcludes = { + default: 1, + c: 1 + }; + var a, b; + return { + setters: [function (module) { + a = module.a; + }, function (module) { + b = module; + }, function (module) { + exports('c', module.c); + }, function (module) { + var setter = {}; + for (var name in module) { + if (!_starExcludes[name]) setter[name] = module[name]; + } + exports(setter); + }, null], + execute: (function () { + + console.log(a, b, d); + + }) + }; +})); diff --git a/test/form/samples/import-attributes/keeps-static-attributes/_expected/umd.js b/test/form/samples/import-attributes/keeps-static-attributes/_expected/umd.js new file mode 100644 index 000000000..0b8de0fef --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/_expected/umd.js @@ -0,0 +1,39 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('a'), require('b'), require('c'), require('d'), require('unresolved')) : + typeof define === 'function' && define.amd ? define(['exports', 'a', 'b', 'c', 'd', 'unresolved'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bundle = {}, global.a, global.b, global.c, global.d$1)); +})(this, (function (exports, a, b, c, d$1) { 'use strict'; + + function _interopNamespaceDefault(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); + } + + var b__namespace = /*#__PURE__*/_interopNamespaceDefault(b); + + console.log(a.a, b__namespace, d); + + Object.defineProperty(exports, 'c', { + enumerable: true, + get: function () { return c.c; } + }); + Object.keys(d$1).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, { + enumerable: true, + get: function () { return d$1[k]; } + }); + }); + +})); diff --git a/test/form/samples/import-attributes/keeps-static-attributes/main.js b/test/form/samples/import-attributes/keeps-static-attributes/main.js new file mode 100644 index 000000000..645381650 --- /dev/null +++ b/test/form/samples/import-attributes/keeps-static-attributes/main.js @@ -0,0 +1,9 @@ +import { a } from 'a' with { type: 'a', extra: 'extra' }; +import * as b from 'b' with { type: 'b' }; +export { c } from 'c' with { type: 'c' }; +export * from 'd' with { type: 'd' }; +import 'unresolved' with { type: 'e' }; + +console.log(a, b, d); + + diff --git a/test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/_config.js b/test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/_config.js new file mode 100644 index 000000000..77e37956d --- /dev/null +++ b/test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/_config.js @@ -0,0 +1,23 @@ +module.exports = defineTest({ + description: 'allows plugins to read and write import attributes in resolveDynamicImport', + options: { + plugins: [ + { + name: 'test', + resolveDynamicImport(specifier, importer, { attributes }) { + const resolutionOptions = { + external: true, + attributes: Object.fromEntries(Object.keys(attributes).map(key => [key, 'changed'])) + }; + if (typeof specifier === 'object') { + if (specifier.type === 'TemplateLiteral') { + return { id: 'resolved-a', ...resolutionOptions }; + } + return { id: 'resolved-b', ...resolutionOptions }; + } + return { id: specifier, ...resolutionOptions }; + } + } + ] + } +}); diff --git a/test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/_expected.js b/test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/_expected.js similarity index 100% rename from test/form/samples/import-assertions/plugin-assertions-resolvedynamicimport/_expected.js rename to test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/_expected.js diff --git a/test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/main.js b/test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/main.js new file mode 100644 index 000000000..d4fd36770 --- /dev/null +++ b/test/form/samples/import-attributes/plugin-attributes-resolvedynamicimport/main.js @@ -0,0 +1,4 @@ +import('a', { with: { type: 'special' } }); +import(globalThis.unknown, { with: { type: 'special', extra: 'value' } }); +import('b'); +import(`external-${globalThis.unknown}`); diff --git a/test/form/samples/import-attributes/plugin-attributes-resolveid/_config.js b/test/form/samples/import-attributes/plugin-attributes-resolveid/_config.js new file mode 100644 index 000000000..1b61ac24c --- /dev/null +++ b/test/form/samples/import-attributes/plugin-attributes-resolveid/_config.js @@ -0,0 +1,18 @@ +module.exports = defineTest({ + description: 'allows plugins to read and write import attributes in resolveId', + options: { + output: { name: 'bundle' }, + plugins: [ + { + name: 'test', + resolveId(source, importer, { attributes, isEntry }) { + return { + id: source, + external: !isEntry, + attributes: Object.fromEntries(Object.keys(attributes).map(key => [key, 'changed'])) + }; + } + } + ] + } +}); diff --git a/test/form/samples/import-assertions/plugin-assertions-resolveid/_expected.js b/test/form/samples/import-attributes/plugin-attributes-resolveid/_expected.js similarity index 100% rename from test/form/samples/import-assertions/plugin-assertions-resolveid/_expected.js rename to test/form/samples/import-attributes/plugin-attributes-resolveid/_expected.js diff --git a/test/form/samples/import-attributes/plugin-attributes-resolveid/main.js b/test/form/samples/import-attributes/plugin-attributes-resolveid/main.js new file mode 100644 index 000000000..239d32572 --- /dev/null +++ b/test/form/samples/import-attributes/plugin-attributes-resolveid/main.js @@ -0,0 +1,9 @@ +import { a } from 'a' with { type: 'a', extra: 'extra' }; +import * as b from 'b' with { type: 'b' }; +export { c } from 'c' with { type: 'c' }; +export * from 'd' with { type: 'd' }; +import 'e'; + +console.log(a, b, d); +import('f', { with: { type: 'f' } }); +import('g'); diff --git a/test/form/samples/import-attributes/removes-dynamic-attributes/_config.js b/test/form/samples/import-attributes/removes-dynamic-attributes/_config.js new file mode 100644 index 000000000..0c8e6bfc1 --- /dev/null +++ b/test/form/samples/import-attributes/removes-dynamic-attributes/_config.js @@ -0,0 +1,29 @@ +module.exports = defineTest({ + description: 'keep import attributes for dynamic imports', + expectedWarnings: ['UNRESOLVED_IMPORT'], + options: { + external: id => { + if (id === 'unresolved') return null; + return true; + }, + plugins: [ + { + name: 'test', + resolveDynamicImport(specifier) { + if (typeof specifier === 'object') { + if (specifier.type === 'TemplateLiteral') { + return "'resolvedString'"; + } + if (specifier.type === 'BinaryExpression') { + return { id: 'resolved-id', external: true }; + } + } else if (specifier === 'external-resolved') { + return { id: 'resolved-different', external: true }; + } + return null; + } + } + ], + output: { externalImportAttributes: false } + } +}); diff --git a/test/form/samples/import-attributes/removes-dynamic-attributes/_expected.js b/test/form/samples/import-attributes/removes-dynamic-attributes/_expected.js new file mode 100644 index 000000000..2d4172646 --- /dev/null +++ b/test/form/samples/import-attributes/removes-dynamic-attributes/_expected.js @@ -0,0 +1,6 @@ +import('external'); +import(globalThis.unknown); +import('resolvedString'); +import('resolved-id'); +import('resolved-different'); +import('unresolved'); diff --git a/test/form/samples/import-attributes/removes-dynamic-attributes/main.js b/test/form/samples/import-attributes/removes-dynamic-attributes/main.js new file mode 100644 index 000000000..025b60451 --- /dev/null +++ b/test/form/samples/import-attributes/removes-dynamic-attributes/main.js @@ -0,0 +1,6 @@ +import('external', { with: { type: 'special' } }); +import(globalThis.unknown, { with: { type: 'special' } }); +import(`external-${globalThis.unknown}`, { with: { type: 'special' } }); +import('external' + globalThis.unknown, { with: { type: 'special' } }); +import('external-resolved', { with: { type: 'special' } }); +import('unresolved', { with: { type: 'special' } }); diff --git a/test/form/samples/import-attributes/removes-static-attributes/_config.js b/test/form/samples/import-attributes/removes-static-attributes/_config.js new file mode 100644 index 000000000..92caa7dde --- /dev/null +++ b/test/form/samples/import-attributes/removes-static-attributes/_config.js @@ -0,0 +1,11 @@ +module.exports = defineTest({ + description: 'keeps any import attributes on input', + expectedWarnings: ['UNRESOLVED_IMPORT'], + options: { + external: id => { + if (id === 'unresolved') return null; + return true; + }, + output: { name: 'bundle', externalImportAttributes: false } + } +}); diff --git a/test/form/samples/import-attributes/removes-static-attributes/_expected.js b/test/form/samples/import-attributes/removes-static-attributes/_expected.js new file mode 100644 index 000000000..40f55f223 --- /dev/null +++ b/test/form/samples/import-attributes/removes-static-attributes/_expected.js @@ -0,0 +1,7 @@ +import { a } from 'a'; +import * as b from 'b'; +export { c } from 'c'; +export * from 'd'; +import 'unresolved'; + +console.log(a, b, d); diff --git a/test/form/samples/import-attributes/removes-static-attributes/main.js b/test/form/samples/import-attributes/removes-static-attributes/main.js new file mode 100644 index 000000000..645381650 --- /dev/null +++ b/test/form/samples/import-attributes/removes-static-attributes/main.js @@ -0,0 +1,9 @@ +import { a } from 'a' with { type: 'a', extra: 'extra' }; +import * as b from 'b' with { type: 'b' }; +export { c } from 'c' with { type: 'c' }; +export * from 'd' with { type: 'd' }; +import 'unresolved' with { type: 'e' }; + +console.log(a, b, d); + + diff --git a/test/form/samples/import-named-exported-global-with-alias/_config.js b/test/form/samples/import-named-exported-global-with-alias/_config.js index 2be7a8e17..ed0df9a03 100644 --- a/test/form/samples/import-named-exported-global-with-alias/_config.js +++ b/test/form/samples/import-named-exported-global-with-alias/_config.js @@ -1,6 +1,3 @@ -// Changed due to https://github.com/acornjs/acorn/issues/806 -// Consider reverting this change should this become an acorn option - module.exports = defineTest({ description: 'allow globals to be exported and imported', expectedWarnings: ['EMPTY_BUNDLE'], diff --git a/test/form/samples/leading-comments/_expected.js b/test/form/samples/leading-comments/_expected.js index 9975cfbc8..88ed7dae0 100644 --- a/test/form/samples/leading-comments/_expected.js +++ b/test/form/samples/leading-comments/_expected.js @@ -1,3 +1,4 @@ +#! /usr/bin/env node import 'external'; // comment dep 1/3 diff --git a/test/form/samples/make-absolute-externals-relative/make-relative-false/_config.js b/test/form/samples/make-absolute-externals-relative/make-relative-false/_config.js index a2498b029..198fbd68b 100644 --- a/test/form/samples/make-absolute-externals-relative/make-relative-false/_config.js +++ b/test/form/samples/make-absolute-externals-relative/make-relative-false/_config.js @@ -18,30 +18,36 @@ module.exports = defineTest({ ) return true; }, - plugins: { - name: 'test', - async buildStart() { - // eslint-disable-next-line unicorn/consistent-function-scoping - const testExternal = async (source, expected) => - assert.deepStrictEqual((await this.resolve(source, ID_MAIN)).external, expected, source); + plugins: [ + { + name: 'test', + async buildStart() { + // eslint-disable-next-line unicorn/consistent-function-scoping + const testExternal = async (source, expected) => + assert.deepStrictEqual( + (await this.resolve(source, ID_MAIN, { skipSelf: false })).external, + expected, + source + ); - await testExternal('./relativeUnresolved.js', true); - await testExternal('/absolute.js', 'absolute'); - await testExternal('./pluginDirect.js', true); - await testExternal('/pluginDifferentAbsolute.js', 'absolute'); - await testExternal('./pluginTrue.js', 'absolute'); - await testExternal('./pluginForceAbsolute.js', 'absolute'); - await testExternal('./pluginForceRelative.js', true); - }, - resolveId(source) { - if (source.endsWith('/pluginDirect.js')) return false; - if (source.endsWith('/pluginDifferentAbsolute.js')) return '/pluginAbsolute.js'; - if (source.endsWith('/pluginTrue.js')) return { id: '/pluginTrue.js', external: true }; - if (source.endsWith('/pluginForceAbsolute.js')) - return { id: '/pluginForceAbsolute.js', external: 'absolute' }; - if (source.endsWith('/pluginForceRelative.js')) - return { id: path.join(__dirname, 'pluginForceRelative.js'), external: 'relative' }; + await testExternal('./relativeUnresolved.js', true); + await testExternal('/absolute.js', 'absolute'); + await testExternal('./pluginDirect.js', true); + await testExternal('/pluginDifferentAbsolute.js', 'absolute'); + await testExternal('./pluginTrue.js', 'absolute'); + await testExternal('./pluginForceAbsolute.js', 'absolute'); + await testExternal('./pluginForceRelative.js', true); + }, + resolveId(source) { + if (source.endsWith('/pluginDirect.js')) return false; + if (source.endsWith('/pluginDifferentAbsolute.js')) return '/pluginAbsolute.js'; + if (source.endsWith('/pluginTrue.js')) return { id: '/pluginTrue.js', external: true }; + if (source.endsWith('/pluginForceAbsolute.js')) + return { id: '/pluginForceAbsolute.js', external: 'absolute' }; + if (source.endsWith('/pluginForceRelative.js')) + return { id: path.join(__dirname, 'pluginForceRelative.js'), external: 'relative' }; + } } - } + ] } }); diff --git a/test/form/samples/make-absolute-externals-relative/make-relative-relative/_config.js b/test/form/samples/make-absolute-externals-relative/make-relative-relative/_config.js index 5d7df6077..90defe1d4 100644 --- a/test/form/samples/make-absolute-externals-relative/make-relative-relative/_config.js +++ b/test/form/samples/make-absolute-externals-relative/make-relative-relative/_config.js @@ -21,33 +21,39 @@ module.exports = defineTest({ ) return true; }, - plugins: { - name: 'test', - async buildStart() { - // eslint-disable-next-line unicorn/consistent-function-scoping - const testExternal = async (source, expected) => - assert.deepStrictEqual((await this.resolve(source, ID_MAIN)).external, expected, source); + plugins: [ + { + name: 'test', + async buildStart() { + // eslint-disable-next-line unicorn/consistent-function-scoping + const testExternal = async (source, expected) => + assert.deepStrictEqual( + (await this.resolve(source, ID_MAIN, { skipSelf: false })).external, + expected, + source + ); - await testExternal('./relativeUnresolved.js', true); - await testExternal('./relativeMissing.js', true); - await testExternal('./relativeExisting.js', true); - await testExternal('/absolute.js', 'absolute'); - await testExternal('./pluginDirect.js', true); - await testExternal('/pluginDifferentAbsolute.js', 'absolute'); - await testExternal('./pluginTrue.js', true); - await testExternal('./pluginForceAbsolute.js', 'absolute'); - await testExternal('./pluginForceRelative.js', true); - }, - resolveId(source) { - if (source.endsWith('/pluginDirect.js')) return false; - if (source.endsWith('/pluginDifferentAbsolute.js')) return '/pluginAbsolute.js'; - if (source.endsWith('/pluginTrue.js')) - return { id: path.join(__dirname, 'pluginTrue.js'), external: true }; - if (source.endsWith('/pluginForceAbsolute.js')) - return { id: '/pluginForceAbsolute.js', external: 'absolute' }; - if (source.endsWith('/pluginForceRelative.js')) - return { id: path.join(__dirname, 'pluginForceRelative.js'), external: 'relative' }; + await testExternal('./relativeUnresolved.js', true); + await testExternal('./relativeMissing.js', true); + await testExternal('./relativeExisting.js', true); + await testExternal('/absolute.js', 'absolute'); + await testExternal('./pluginDirect.js', true); + await testExternal('/pluginDifferentAbsolute.js', 'absolute'); + await testExternal('./pluginTrue.js', true); + await testExternal('./pluginForceAbsolute.js', 'absolute'); + await testExternal('./pluginForceRelative.js', true); + }, + resolveId(source) { + if (source.endsWith('/pluginDirect.js')) return false; + if (source.endsWith('/pluginDifferentAbsolute.js')) return '/pluginAbsolute.js'; + if (source.endsWith('/pluginTrue.js')) + return { id: path.join(__dirname, 'pluginTrue.js'), external: true }; + if (source.endsWith('/pluginForceAbsolute.js')) + return { id: '/pluginForceAbsolute.js', external: 'absolute' }; + if (source.endsWith('/pluginForceRelative.js')) + return { id: path.join(__dirname, 'pluginForceRelative.js'), external: 'relative' }; + } } - } + ] } }); diff --git a/test/form/samples/make-absolute-externals-relative/make-relative-true/_config.js b/test/form/samples/make-absolute-externals-relative/make-relative-true/_config.js index 29807ce3c..f5167a5e1 100644 --- a/test/form/samples/make-absolute-externals-relative/make-relative-true/_config.js +++ b/test/form/samples/make-absolute-externals-relative/make-relative-true/_config.js @@ -20,35 +20,41 @@ module.exports = defineTest({ ) return true; }, - plugins: { - name: 'test', - async buildStart() { - // eslint-disable-next-line unicorn/consistent-function-scoping - const testExternal = async (source, expected) => - assert.deepStrictEqual((await this.resolve(source, ID_MAIN)).external, expected, source); + plugins: [ + { + name: 'test', + async buildStart() { + // eslint-disable-next-line unicorn/consistent-function-scoping + const testExternal = async (source, expected) => + assert.deepStrictEqual( + (await this.resolve(source, ID_MAIN, { skipSelf: false })).external, + expected, + source + ); - await testExternal('./relativeUnresolved.js', true); - await testExternal('./relativeMissing.js', true); - await testExternal('./relativeExisting.js', true); - await testExternal('/absolute.js', true); - await testExternal('./pluginDirect.js', true); - await testExternal('/pluginDifferentAbsolute.js', true); - await testExternal('./pluginTrue.js', true); - await testExternal('./pluginForceAbsolute.js', 'absolute'); - await testExternal('./pluginForceRelative.js', true); - }, - resolveId(source) { - if (source.endsWith('/pluginDirect.js')) return false; - if (source.endsWith('/pluginDifferentAbsolute.js')) - return path.join(__dirname, 'pluginAbsolute.js'); - if (source.endsWith('/pluginTrue.js')) - return { id: path.join(__dirname, 'pluginTrue.js'), external: true }; - if (source.endsWith('/pluginForceAbsolute.js')) - return { id: '/pluginForceAbsolute.js', external: 'absolute' }; - if (source.endsWith('/pluginForceRelative.js')) - return { id: path.join(__dirname, 'pluginForceRelative.js'), external: 'relative' }; - if (source === '/absolute.js') return path.join(__dirname, 'absolute.js'); + await testExternal('./relativeUnresolved.js', true); + await testExternal('./relativeMissing.js', true); + await testExternal('./relativeExisting.js', true); + await testExternal('/absolute.js', true); + await testExternal('./pluginDirect.js', true); + await testExternal('/pluginDifferentAbsolute.js', true); + await testExternal('./pluginTrue.js', true); + await testExternal('./pluginForceAbsolute.js', 'absolute'); + await testExternal('./pluginForceRelative.js', true); + }, + resolveId(source) { + if (source.endsWith('/pluginDirect.js')) return false; + if (source.endsWith('/pluginDifferentAbsolute.js')) + return path.join(__dirname, 'pluginAbsolute.js'); + if (source.endsWith('/pluginTrue.js')) + return { id: path.join(__dirname, 'pluginTrue.js'), external: true }; + if (source.endsWith('/pluginForceAbsolute.js')) + return { id: '/pluginForceAbsolute.js', external: 'absolute' }; + if (source.endsWith('/pluginForceRelative.js')) + return { id: path.join(__dirname, 'pluginForceRelative.js'), external: 'relative' }; + if (source === '/absolute.js') return path.join(__dirname, 'absolute.js'); + } } - } + ] } }); diff --git a/test/form/samples/module-no-treeshake/_config.js b/test/form/samples/module-no-treeshake/_config.js index db7e5f18a..49b72992f 100644 --- a/test/form/samples/module-no-treeshake/_config.js +++ b/test/form/samples/module-no-treeshake/_config.js @@ -5,37 +5,39 @@ function getCode(id) { module.exports = defineTest({ description: 'allows disabling tree-shaking for modules', options: { - plugins: { - resolveId(id) { - if (id.startsWith('dep')) { - if (id === 'depResolved') { - return { - id, - moduleSideEffects: 'no-treeshake' - }; + plugins: [ + { + resolveId(id) { + if (id.startsWith('dep')) { + if (id === 'depResolved') { + return { + id, + moduleSideEffects: 'no-treeshake' + }; + } + return id; } - return id; - } - }, - load(id) { - if (id.startsWith('dep')) { - if (id === 'depLoaded') { + }, + load(id) { + if (id.startsWith('dep')) { + if (id === 'depLoaded') { + return { + code: getCode(id), + moduleSideEffects: 'no-treeshake' + }; + } + return getCode(id); + } + }, + transform(code, id) { + if (id === 'depTransformed') { return { code: getCode(id), moduleSideEffects: 'no-treeshake' }; } - return getCode(id); - } - }, - transform(code, id) { - if (id === 'depTransformed') { - return { - code: getCode(id), - moduleSideEffects: 'no-treeshake' - }; } } - } + ] } }); diff --git a/test/form/samples/nested-pure-comments/_config.js b/test/form/samples/nested-pure-comments/_config.js index 0891a42f0..8f300142c 100644 --- a/test/form/samples/nested-pure-comments/_config.js +++ b/test/form/samples/nested-pure-comments/_config.js @@ -1,3 +1,4 @@ module.exports = defineTest({ - description: 'correctly associates pure comments before sequence expressions etc.' + description: 'correctly associates pure comments before sequence expressions etc.', + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/nested-pure-comments/main.js b/test/form/samples/nested-pure-comments/main.js index 1e4ce33d8..d9791f075 100644 --- a/test/form/samples/nested-pure-comments/main.js +++ b/test/form/samples/nested-pure-comments/main.js @@ -21,4 +21,6 @@ false /*@__PURE__*/ || keep(); // Calls with parentheses /*@__PURE__*/(remove()); +/*@__PURE__*/(((remove()))); /*@__PURE__*/(new Remove()); +/*@__PURE__*/(((new Remove()))); diff --git a/test/form/samples/no-side-effects-function-declaration-preserve/_config.js b/test/form/samples/no-side-effects-function-declaration-preserve/_config.js index 8791127a9..7878d064a 100644 --- a/test/form/samples/no-side-effects-function-declaration-preserve/_config.js +++ b/test/form/samples/no-side-effects-function-declaration-preserve/_config.js @@ -1,5 +1,4 @@ -// tests compiled from https://github.com/mishoo/UglifyJS2/blob/88c8f4e363e0d585b33ea29df560243d3dc74ce1/test/compress/pure_funcs.js - module.exports = defineTest({ - description: 'preserve __NO_SIDE_EFFECTS__ annotations for function declarations' + description: 'preserve __NO_SIDE_EFFECTS__ annotations for function declarations', + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/no-side-effects-function-declaration-preserve/_expected.js b/test/form/samples/no-side-effects-function-declaration-preserve/_expected.js index 33772214e..841bb6ee0 100644 --- a/test/form/samples/no-side-effects-function-declaration-preserve/_expected.js +++ b/test/form/samples/no-side-effects-function-declaration-preserve/_expected.js @@ -31,13 +31,13 @@ const fnC = /*#__NO_SIDE_EFFECTS__*/ (args) => { }; -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ const fnD = (args) => { console.log(args); return args }; -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ const fnE = (args) => { console.log(args); return args @@ -45,10 +45,10 @@ const fnE = (args) => { /** * This is a jsdoc comment, with no side effects annotation - * + * * @param {any} args * @__NO_SIDE_EFFECTS__ - */ + */ const fnF = (args) => { console.log(args); return args @@ -56,17 +56,6 @@ const fnF = (args) => { const fnAlias = fnA; -/** - * Have both annotations - * - * @__PURE__ - * @__NO_SIDE_EFFECTS__ - */ -const fnBothAnnotations = (args) => { - console.log(args); - return args -}; - // This annonation get ignored let fnLet = (args) => { @@ -74,4 +63,4 @@ let fnLet = (args) => { return args }; -export { fnA, fnAlias, fnB, fnBothAnnotations, fnC, fnD, fnE, fnEffects, fnF, fnFromSub, fnLet, fnPure }; +export { fnA, fnAlias, fnB, fnC, fnD, fnE, fnEffects, fnF, fnFromSub, fnLet, fnPure }; diff --git a/test/form/samples/no-side-effects-function-declaration-preserve/functions.js b/test/form/samples/no-side-effects-function-declaration-preserve/functions.js index 399b6a6c3..59c37d8d9 100644 --- a/test/form/samples/no-side-effects-function-declaration-preserve/functions.js +++ b/test/form/samples/no-side-effects-function-declaration-preserve/functions.js @@ -26,7 +26,7 @@ export const fnC = /*#__NO_SIDE_EFFECTS__*/ (args) => { } -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ const fnD = (args) => { console.log(args) return args @@ -34,7 +34,7 @@ const fnD = (args) => { export { fnD } -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ export const fnE = (args) => { console.log(args) return args @@ -42,16 +42,16 @@ export const fnE = (args) => { /** * This is a jsdoc comment, with no side effects annotation - * + * * @param {any} args * @__NO_SIDE_EFFECTS__ - */ + */ export const fnF = (args) => { console.log(args) return args } -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ export default function fnDefault(args) { console.log(args) return args @@ -61,17 +61,6 @@ export * from './sub-functions' export const fnAlias = fnA -/** - * Have both annotations - * - * @__PURE__ - * @__NO_SIDE_EFFECTS__ - */ -export const fnBothAnnotations = (args) => { - console.log(args) - return args -} - // This annonation get ignored /** @__NO_SIDE_EFFECTS__ */ export let fnLet = (args) => { diff --git a/test/form/samples/no-side-effects-function-declaration/_config.js b/test/form/samples/no-side-effects-function-declaration/_config.js index c3178070c..5d7379912 100644 --- a/test/form/samples/no-side-effects-function-declaration/_config.js +++ b/test/form/samples/no-side-effects-function-declaration/_config.js @@ -1,5 +1,3 @@ -// tests compiled from https://github.com/mishoo/UglifyJS2/blob/88c8f4e363e0d585b33ea29df560243d3dc74ce1/test/compress/pure_funcs.js - module.exports = defineTest({ description: '__NO_SIDE_EFFECTS__ annotations for function declarations' }); diff --git a/test/form/samples/no-side-effects-function-declaration/functions.js b/test/form/samples/no-side-effects-function-declaration/functions.js index 61954b3ae..83d130ce8 100644 --- a/test/form/samples/no-side-effects-function-declaration/functions.js +++ b/test/form/samples/no-side-effects-function-declaration/functions.js @@ -26,7 +26,7 @@ export const fnC = /*#__NO_SIDE_EFFECTS__*/ (args) => { } -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ const fnD = (args) => { console.log(args) return args @@ -34,7 +34,7 @@ const fnD = (args) => { export { fnD } -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ export const fnE = (args) => { console.log(args) return args @@ -42,10 +42,10 @@ export const fnE = (args) => { /** * This is a jsdoc comment, with pure annotation - * + * * @param {any} args * @__NO_SIDE_EFFECTS__ - */ + */ export const fnF = (args) => { console.log(args) return args @@ -59,7 +59,7 @@ export async function fnG(args) { /** * #__NO_SIDE_EFFECTS__ - */ + */ export const fnH = async (args) => { console.log(args) return args @@ -73,7 +73,7 @@ export const fnI = /*#__NO_SIDE_EFFECTS__*/ async (args) => { /** * #__NO_SIDE_EFFECTS__ - */ + */ export function * fnJ(args) { console.log(args) return args @@ -81,13 +81,13 @@ export function * fnJ(args) { /** * #__NO_SIDE_EFFECTS__ - */ + */ export async function * fnK(args) { console.log(args) return args } -/*#__NO_SIDE_EFFECTS__*/ +/*#__NO_SIDE_EFFECTS__*/ export default function fnDefault(args) { console.log(args) return args diff --git a/test/form/samples/ns-external-star-reexport/_config.js b/test/form/samples/ns-external-star-reexport/_config.js index 506491a80..a556f5bcd 100644 --- a/test/form/samples/ns-external-star-reexport/_config.js +++ b/test/form/samples/ns-external-star-reexport/_config.js @@ -2,17 +2,19 @@ module.exports = defineTest({ description: 'supports namespaces with external star reexports', options: { external: ['external1', 'external2'], - plugins: { - transform(code, id) { - if (id.endsWith('override.js')) { - return { - code, - syntheticNamedExports: true - }; + plugins: [ + { + transform(code, id) { + if (id.endsWith('override.js')) { + return { + code, + syntheticNamedExports: true + }; + } + return null; } - return null; } - }, + ], output: { globals: { external1: 'external1', diff --git a/test/form/samples/pure-comment-line-break/_config.js b/test/form/samples/pure-comment-line-break/_config.js index 7e663b33f..fc087cdd4 100644 --- a/test/form/samples/pure-comment-line-break/_config.js +++ b/test/form/samples/pure-comment-line-break/_config.js @@ -1,3 +1,4 @@ module.exports = defineTest({ - description: 'adjust line-break handling when dealing with pure annotations' + description: 'adjust line-break handling when dealing with pure annotations', + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/pure-comment-line-break/_expected.js b/test/form/samples/pure-comment-line-break/_expected.js index 134dcf3ff..45f13faa7 100644 --- a/test/form/samples/pure-comment-line-break/_expected.js +++ b/test/form/samples/pure-comment-line-break/_expected.js @@ -1,39 +1,45 @@ const x = 'code'; -console.log('should remain impure'); +console.log('code0'); -console.log('should remain impure'); +console.log('code1'); -console.log('code'); -console.log('should remain impure'); +console.log('code2'); -console.log('code'); -console.log('should remain impure'); -console.log('should remain impure'); +console.log('code3'); -console.log('code'); -console.log('should remain impure'); +console.log('code4'); -console.log('code'), -console.log('should remain impure'); +console.log('code5'); -console.log('code'), -console.log('should remain impure'); +console.log('code6'); -console.log('should remain impure'); +console.log('code7'); -console.log('code'); -console.log('should remain impure'); +console.log('code8'); -console.log('should remain impure'); +console.log('code9'); -console.log('should remain impure') ; +console.log('code10'), +console.log('code11'); -console.log('code'); -console.log('should remain impure', x); +console.log('code12'), +console.log('code13'); + +console.log('code14'); + +console.log('code15'); +console.log('code16'); + +console.log('code17'); + +console.log('code18') ; + +console.log('code19'); +console.log('code20', x); { - console.log('should remain impure'); + console.log('code21'); } keep1() ; keep2(); keep3() ; diff --git a/test/form/samples/pure-comment-line-break/dep.js b/test/form/samples/pure-comment-line-break/dep.js index 724095977..86c31d2f7 100644 --- a/test/form/samples/pure-comment-line-break/dep.js +++ b/test/form/samples/pure-comment-line-break/dep.js @@ -1,3 +1,3 @@ const x = 'code';//@__PURE__ export default x; -console.log('should remain impure'); +console.log('code0'); diff --git a/test/form/samples/pure-comment-line-break/main.js b/test/form/samples/pure-comment-line-break/main.js index cadb2158f..2484e4d82 100644 --- a/test/form/samples/pure-comment-line-break/main.js +++ b/test/form/samples/pure-comment-line-break/main.js @@ -1,46 +1,57 @@ /*@__PURE__*/ (() => {})(); -console.log('should remain impure'); -console.log('code');//@__PURE__ +console.log('code1'); /*@__PURE__*/ +(() => {})(), /*@__PURE__*/(() => {})(); + +console.log('code2'); /*@__PURE__*/ +(() => {})() || /*@__PURE__*/(() => {})(); + +console.log('code3'); /*@__PURE__*/ +(() => {})() + /*@__PURE__*/(() => {})(); + +console.log('code4'); /*@__PURE__*/ +(() => {})() ? /*@__PURE__*/(() => {})() : /*@__PURE__*/(() => {})(); + +console.log('code5'); /*@__PURE__*/ +foo?.bar(); + +console.log('code6');//@__PURE__ (() => {})(); -console.log('should remain impure'); -console.log('code')/*@__PURE__*/; +console.log('code7')/*@__PURE__*/; (() => {})(); -console.log('should remain impure'); +console.log('code8'); (() => {})();//@__PURE__ (() => {})(); -console.log('should remain impure'); -console.log('code');/*@__PURE__*///@__PURE__ +console.log('code9');/*@__PURE__*///@__PURE__ /*@__PURE__*/ (() => {})(); -console.log('should remain impure'); -console.log('code'),//@__PURE__ -(() => {})(),console.log('should remain impure'); +console.log('code10'),//@__PURE__ +(() => {})(),console.log('code11'); -console.log('code')/*@__PURE__*/, -(() => {})(),console.log('should remain impure'); +console.log('code12')/*@__PURE__*/, +(() => {})(),console.log('code13'); (() => {})(),//@__PURE__ -(() => {})(),console.log('should remain impure'); +(() => {})(),console.log('code14'); -console.log('code');//@__PURE__ -;console.log('should remain impure'); +console.log('code15');//@__PURE__ +;console.log('code16'); -/*@__PURE__*/true && console.log('should remain impure'); +/*@__PURE__*/true && console.log('code17'); -/*@__PURE__*/true ? console.log('should remain impure') : console.log('code'); +/*@__PURE__*/true ? console.log('code18') : console.log('removed'); -console.log('code');//@__PURE__ +console.log('code19');//@__PURE__ import code from './dep.js'; -console.log('should remain impure', code); +console.log('code20', code); /*@__PURE__*/ if (true) { - console.log('should remain impure'); + console.log('code21'); } /*@__PURE__*/ drop1(); diff --git a/test/form/samples/pure-comment-scenarios-complex/_config.js b/test/form/samples/pure-comment-scenarios-complex/_config.js index 9d7bbd86f..c3f85cff1 100644 --- a/test/form/samples/pure-comment-scenarios-complex/_config.js +++ b/test/form/samples/pure-comment-scenarios-complex/_config.js @@ -1,5 +1,6 @@ // tests compiled from https://github.com/mishoo/UglifyJS2/blob/bcebacbb9e7ddac7d9c0e4ca2c7e0faf0e0bca7c/test/compress/issue-1261.js module.exports = defineTest({ - description: 'correctly handles various advanced pure comment scenarios' + description: 'correctly handles various advanced pure comment scenarios', + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/pure-comment-scenarios-simple/_config.js b/test/form/samples/pure-comment-scenarios-simple/_config.js index 910ed3946..9bf852418 100644 --- a/test/form/samples/pure-comment-scenarios-simple/_config.js +++ b/test/form/samples/pure-comment-scenarios-simple/_config.js @@ -1,5 +1,6 @@ // tests compiled from https://github.com/mishoo/UglifyJS2/blob/88c8f4e363e0d585b33ea29df560243d3dc74ce1/test/compress/pure_funcs.js module.exports = defineTest({ - description: 'correctly handles various pure comment scenarios' + description: 'correctly handles various pure comment scenarios', + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/pure-comment-scenarios-simple/_expected.js b/test/form/samples/pure-comment-scenarios-simple/_expected.js index 58e48fb60..562d2bce0 100644 --- a/test/form/samples/pure-comment-scenarios-simple/_expected.js +++ b/test/form/samples/pure-comment-scenarios-simple/_expected.js @@ -7,8 +7,8 @@ (w(), y()); /*@__PURE__*/(g() || h())(x(), y()); /*@__PURE__*/new (g() || h())(x(), y()); -(/*@__PURE__*/ (a() || b()))(c(), d()); -new (/*@__PURE__*/ (a() || b()))(c(), d()); +( (a() || b()))(c(), d()); +new ( (a() || b()))(c(), d()); [ /*@__PURE__*/ x(), y() ]; [ /*@__PURE__*/ new x(), y() ]; [ w(), /*@__PURE__*/ x(), y() ]; @@ -22,9 +22,9 @@ new (/*@__PURE__*/ (a() || b()))(c(), d()); ( e).x(1).y(2).z(3); ( f.x)(1).y(2).z(3); (/*@__PURE__*/ g.x(1)).y(2).z(3); -( h.x(1).y)(2).z(3); +(/*@__PURE__*/ h.x(1).y)(2).z(3); (/*@__PURE__*/ i.x(1).y(2)).z(3); -( j.x(1).y(2).z)(3); +(/*@__PURE__*/ j.x(1).y(2).z)(3); new ( k)(); new ( l)(1)(2)(3); (/*@__PURE__*/ new m(1))(2)(3); @@ -32,6 +32,6 @@ new ( l)(1)(2)(3); new ( o).x(1).y(2).z(3); /* */ new ( p.x)(1).y(2).z(3); (/*@__PURE__*/ new q.x(1)).y(2).z(3); -( new r.x(1).y)(2).z(3); +(/*@__PURE__*/ new r.x(1).y)(2).z(3); (/*@__PURE__*/ new s.x(1).y(2)).z(3); -( new t.x(1).y(2).z)(3); +(/*@__PURE__*/ new t.x(1).y(2).z)(3); diff --git a/test/form/samples/pure-comments-disabled/_config.js b/test/form/samples/pure-comments-disabled/_config.js index ab9f76495..6964d13f7 100644 --- a/test/form/samples/pure-comments-disabled/_config.js +++ b/test/form/samples/pure-comments-disabled/_config.js @@ -4,5 +4,6 @@ module.exports = defineTest({ treeshake: { annotations: false } - } + }, + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/relative-external-ids/_config.js b/test/form/samples/relative-external-ids/_config.js index 159cea043..bee86d610 100644 --- a/test/form/samples/relative-external-ids/_config.js +++ b/test/form/samples/relative-external-ids/_config.js @@ -22,26 +22,28 @@ module.exports = defineTest({ } } }, - plugins: { - resolveId(id) { - switch (id) { - case './hook.js': { - return false; - } - case './hookNested.js': { - return false; - } - case 'resolved': { - return { id: './resolved.js', external: true }; - } - case 'resolvedNested': { - return { id: './resolvedNested.js', external: true }; - } - default: { - return null; + plugins: [ + { + resolveId(id) { + switch (id) { + case './hook.js': { + return false; + } + case './hookNested.js': { + return false; + } + case 'resolved': { + return { id: './resolved.js', external: true }; + } + case 'resolvedNested': { + return { id: './resolvedNested.js', external: true }; + } + default: { + return null; + } } } } - } + ] } }); diff --git a/test/form/samples/remove-invalid-pure-comments/_config.js b/test/form/samples/remove-invalid-pure-comments/_config.js index a05717b05..4e959ed7e 100644 --- a/test/form/samples/remove-invalid-pure-comments/_config.js +++ b/test/form/samples/remove-invalid-pure-comments/_config.js @@ -1,3 +1,4 @@ module.exports = defineTest({ - description: 'removes invalidly placed pure annotations' + description: 'removes invalidly placed pure annotations', + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/remove-no-side-effects-variable/_config.js b/test/form/samples/remove-no-side-effects-variable/_config.js new file mode 100644 index 000000000..48a324a37 --- /dev/null +++ b/test/form/samples/remove-no-side-effects-variable/_config.js @@ -0,0 +1,4 @@ +module.exports = defineTest({ + description: + 'removes __NO_SIDE_EFFECTS__ annotation if the variable declaration is only removed partially' +}); diff --git a/test/form/samples/remove-no-side-effects-variable/_expected.js b/test/form/samples/remove-no-side-effects-variable/_expected.js new file mode 100644 index 000000000..7203af1c1 --- /dev/null +++ b/test/form/samples/remove-no-side-effects-variable/_expected.js @@ -0,0 +1,5 @@ +const bar = () => console.log(); + +// should be retained, but the annotation needs to be removed, otherwise it +// will appear to be side effect free for downstream consumers. +bar(); diff --git a/test/form/samples/remove-no-side-effects-variable/main.js b/test/form/samples/remove-no-side-effects-variable/main.js new file mode 100644 index 000000000..d6cccd381 --- /dev/null +++ b/test/form/samples/remove-no-side-effects-variable/main.js @@ -0,0 +1,9 @@ +/*@__NO_SIDE_EFFECTS__*/ +const foo = () => console.log(), bar = () => console.log(); + +// should be removed +foo(); + +// should be retained, but the annotation needs to be removed, otherwise it +// will appear to be side effect free for downstream consumers. +bar(); diff --git a/test/form/samples/remove-tree-shaken-pure-comments/_config.js b/test/form/samples/remove-tree-shaken-pure-comments/_config.js index 64d1ca3fb..64ffd0ec6 100644 --- a/test/form/samples/remove-tree-shaken-pure-comments/_config.js +++ b/test/form/samples/remove-tree-shaken-pure-comments/_config.js @@ -1,3 +1,4 @@ module.exports = defineTest({ - description: 'removes pure comments of tree-shaken nodes' + description: 'removes pure comments of tree-shaken nodes', + expectedWarnings: ['INVALID_ANNOTATION'] }); diff --git a/test/form/samples/resolution-order/_config.js b/test/form/samples/resolution-order/_config.js index cca0484c4..38eec40c2 100644 --- a/test/form/samples/resolution-order/_config.js +++ b/test/form/samples/resolution-order/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'does not depend on the resolution order of modules for tree-shaking (#2753)', options: { - plugins: { - resolveId(id) { - if (id === './utcWeek') { - return new Promise(resolve => setTimeout(resolve, 0)); + plugins: [ + { + resolveId(id) { + if (id === './utcWeek') { + return new Promise(resolve => setTimeout(resolve, 0)); + } } } - } + ] } }); diff --git a/test/form/samples/shebang-1/_config.js b/test/form/samples/shebang-1/_config.js new file mode 100644 index 000000000..6f262e6b6 --- /dev/null +++ b/test/form/samples/shebang-1/_config.js @@ -0,0 +1,19 @@ +const assert = require('node:assert'); + +module.exports = defineTest({ + description: 'preserve shebang in entry module for CJS and ESM outputs', + options: { + plugins: [ + { + generateBundle(options, outputBundle) { + const keys = Object.keys(outputBundle); + if (options.format === 'cjs' || options.format === 'es') { + assert.ok(outputBundle[keys[0]].code.startsWith('#!')); + } else { + assert.ok(!outputBundle[keys[0]].code.includes('#!')); + } + } + } + ] + } +}); diff --git a/test/form/samples/shebang-1/_expected/amd.js b/test/form/samples/shebang-1/_expected/amd.js new file mode 100644 index 000000000..b479d3212 --- /dev/null +++ b/test/form/samples/shebang-1/_expected/amd.js @@ -0,0 +1,5 @@ +define((function () { 'use strict'; + + assert.ok('shebang'); + +})); diff --git a/test/form/samples/shebang-1/_expected/cjs.js b/test/form/samples/shebang-1/_expected/cjs.js new file mode 100644 index 000000000..3e516269f --- /dev/null +++ b/test/form/samples/shebang-1/_expected/cjs.js @@ -0,0 +1,4 @@ +#!/usr/bin/env node +'use strict'; + +assert.ok('shebang'); diff --git a/test/form/samples/shebang-1/_expected/es.js b/test/form/samples/shebang-1/_expected/es.js new file mode 100644 index 000000000..26cf235f5 --- /dev/null +++ b/test/form/samples/shebang-1/_expected/es.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +assert.ok('shebang'); diff --git a/test/form/samples/shebang-1/_expected/iife.js b/test/form/samples/shebang-1/_expected/iife.js new file mode 100644 index 000000000..6a482e486 --- /dev/null +++ b/test/form/samples/shebang-1/_expected/iife.js @@ -0,0 +1,6 @@ +(function () { + 'use strict'; + + assert.ok('shebang'); + +})(); diff --git a/test/form/samples/shebang-1/_expected/system.js b/test/form/samples/shebang-1/_expected/system.js new file mode 100644 index 000000000..4b84c65ac --- /dev/null +++ b/test/form/samples/shebang-1/_expected/system.js @@ -0,0 +1,10 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + assert.ok('shebang'); + + }) + }; +})); diff --git a/test/form/samples/shebang-1/_expected/umd.js b/test/form/samples/shebang-1/_expected/umd.js new file mode 100644 index 000000000..ce034fde7 --- /dev/null +++ b/test/form/samples/shebang-1/_expected/umd.js @@ -0,0 +1,8 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + assert.ok('shebang'); + +})); diff --git a/test/form/samples/shebang-1/main.js b/test/form/samples/shebang-1/main.js new file mode 100644 index 000000000..26cf235f5 --- /dev/null +++ b/test/form/samples/shebang-1/main.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +assert.ok('shebang'); diff --git a/test/form/samples/shebang-2/_config.js b/test/form/samples/shebang-2/_config.js new file mode 100644 index 000000000..fc6831280 --- /dev/null +++ b/test/form/samples/shebang-2/_config.js @@ -0,0 +1,15 @@ +const assert = require('node:assert'); + +module.exports = defineTest({ + description: 'remove shebang in non-entry module for all format outputs', + options: { + plugins: [ + { + generateBundle(_, outputBundle) { + const keys = Object.keys(outputBundle); + assert.ok(!outputBundle[keys[0]].code.includes('#!')); + } + } + ] + } +}); diff --git a/test/form/samples/shebang-2/_expected/amd.js b/test/form/samples/shebang-2/_expected/amd.js new file mode 100644 index 000000000..b479d3212 --- /dev/null +++ b/test/form/samples/shebang-2/_expected/amd.js @@ -0,0 +1,5 @@ +define((function () { 'use strict'; + + assert.ok('shebang'); + +})); diff --git a/test/form/samples/shebang-2/_expected/cjs.js b/test/form/samples/shebang-2/_expected/cjs.js new file mode 100644 index 000000000..550b528f6 --- /dev/null +++ b/test/form/samples/shebang-2/_expected/cjs.js @@ -0,0 +1,3 @@ +'use strict'; + +assert.ok('shebang'); diff --git a/test/form/samples/shebang-2/_expected/es.js b/test/form/samples/shebang-2/_expected/es.js new file mode 100644 index 000000000..27239e876 --- /dev/null +++ b/test/form/samples/shebang-2/_expected/es.js @@ -0,0 +1 @@ +assert.ok('shebang'); diff --git a/test/form/samples/shebang-2/_expected/iife.js b/test/form/samples/shebang-2/_expected/iife.js new file mode 100644 index 000000000..6a482e486 --- /dev/null +++ b/test/form/samples/shebang-2/_expected/iife.js @@ -0,0 +1,6 @@ +(function () { + 'use strict'; + + assert.ok('shebang'); + +})(); diff --git a/test/form/samples/shebang-2/_expected/system.js b/test/form/samples/shebang-2/_expected/system.js new file mode 100644 index 000000000..4b84c65ac --- /dev/null +++ b/test/form/samples/shebang-2/_expected/system.js @@ -0,0 +1,10 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + assert.ok('shebang'); + + }) + }; +})); diff --git a/test/form/samples/shebang-2/_expected/umd.js b/test/form/samples/shebang-2/_expected/umd.js new file mode 100644 index 000000000..ce034fde7 --- /dev/null +++ b/test/form/samples/shebang-2/_expected/umd.js @@ -0,0 +1,8 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + assert.ok('shebang'); + +})); diff --git a/test/form/samples/shebang-2/dep.js b/test/form/samples/shebang-2/dep.js new file mode 100644 index 000000000..26cf235f5 --- /dev/null +++ b/test/form/samples/shebang-2/dep.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +assert.ok('shebang'); diff --git a/test/function/samples/deprecated/manual-chunks-conflict/main.js b/test/form/samples/shebang-2/main.js similarity index 100% rename from test/function/samples/deprecated/manual-chunks-conflict/main.js rename to test/form/samples/shebang-2/main.js diff --git a/test/form/samples/shebang-3/_config.js b/test/form/samples/shebang-3/_config.js new file mode 100644 index 000000000..bf37319da --- /dev/null +++ b/test/form/samples/shebang-3/_config.js @@ -0,0 +1,3 @@ +module.exports = defineTest({ + description: 'supports input files with leading shebang comment' +}); diff --git a/test/form/samples/shebang-3/_expected.js b/test/form/samples/shebang-3/_expected.js new file mode 100644 index 000000000..2dcbbb30d --- /dev/null +++ b/test/form/samples/shebang-3/_expected.js @@ -0,0 +1,4 @@ +#!/usr/bin/env node +console.log('other'); + +console.log('main'); diff --git a/test/form/samples/hashbang/main.js b/test/form/samples/shebang-3/main.js similarity index 100% rename from test/form/samples/hashbang/main.js rename to test/form/samples/shebang-3/main.js diff --git a/test/form/samples/hashbang/other.js b/test/form/samples/shebang-3/other.js similarity index 100% rename from test/form/samples/hashbang/other.js rename to test/form/samples/shebang-3/other.js diff --git a/test/form/samples/side-effects-internal-modules/_config.js b/test/form/samples/side-effects-internal-modules/_config.js index 973ecfeda..091fe7d8c 100644 --- a/test/form/samples/side-effects-internal-modules/_config.js +++ b/test/form/samples/side-effects-internal-modules/_config.js @@ -11,18 +11,20 @@ module.exports = defineTest({ return false; } }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (id === 'virtual') { - return VIRTUAL_ID; - } - }, - load(id) { - if (id === VIRTUAL_ID) { - return "console.log('effect')"; + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (id === 'virtual') { + return VIRTUAL_ID; + } + }, + load(id) { + if (id === VIRTUAL_ID) { + return "console.log('effect')"; + } } } - } + ] } }); diff --git a/test/form/samples/supports-core-js/_config.js b/test/form/samples/supports-core-js/_config.js index ad8e2ea80..070775017 100644 --- a/test/form/samples/supports-core-js/_config.js +++ b/test/form/samples/supports-core-js/_config.js @@ -1,5 +1,6 @@ module.exports = defineTest({ description: 'supports core-js', + verifyAst: false, options: { // check against tree-shake: false when updating the polyfill treeshake: true, diff --git a/test/form/samples/supports-core-js/_expected.js b/test/form/samples/supports-core-js/_expected.js index 3935a61b9..0dfb82654 100644 --- a/test/form/samples/supports-core-js/_expected.js +++ b/test/form/samples/supports-core-js/_expected.js @@ -87,21 +87,21 @@ var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function (fn) { }; }; -var uncurryThis$1T = functionUncurryThis; +var uncurryThis$1U = functionUncurryThis; -var toString$K = uncurryThis$1T({}.toString); -var stringSlice$l = uncurryThis$1T(''.slice); +var toString$L = uncurryThis$1U({}.toString); +var stringSlice$l = uncurryThis$1U(''.slice); var classofRaw$2 = function (it) { - return stringSlice$l(toString$K(it), 8, -1); + return stringSlice$l(toString$L(it), 8, -1); }; -var uncurryThis$1S = functionUncurryThis; +var uncurryThis$1T = functionUncurryThis; var fails$1r = fails$1u; var classof$r = classofRaw$2; var $Object$8 = Object; -var split$4 = uncurryThis$1S(''.split); +var split$4 = uncurryThis$1T(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings var indexedObject = fails$1r(function () { @@ -125,7 +125,7 @@ var $TypeError$I = TypeError; // `RequireObjectCoercible` abstract operation // https://tc39.es/ecma262/#sec-requireobjectcoercible var requireObjectCoercible$p = function (it) { - if (isNullOrUndefined$j(it)) throw $TypeError$I("Can't call method on " + it); + if (isNullOrUndefined$j(it)) throw new $TypeError$I("Can't call method on " + it); return it; }; @@ -154,37 +154,37 @@ var documentAll$1 = $documentAll$1.all; // `IsCallable` abstract operation // https://tc39.es/ecma262/#sec-iscallable -var isCallable$K = $documentAll$1.IS_HTMLDDA ? function (argument) { +var isCallable$J = $documentAll$1.IS_HTMLDDA ? function (argument) { return typeof argument == 'function' || argument === documentAll$1; } : function (argument) { return typeof argument == 'function'; }; -var isCallable$J = isCallable$K; +var isCallable$I = isCallable$J; var $documentAll = documentAll_1; var documentAll = $documentAll.all; var isObject$K = $documentAll.IS_HTMLDDA ? function (it) { - return typeof it == 'object' ? it !== null : isCallable$J(it) || it === documentAll; + return typeof it == 'object' ? it !== null : isCallable$I(it) || it === documentAll; } : function (it) { - return typeof it == 'object' ? it !== null : isCallable$J(it); + return typeof it == 'object' ? it !== null : isCallable$I(it); }; var global$15 = global$16; -var isCallable$I = isCallable$K; +var isCallable$H = isCallable$J; var aFunction = function (argument) { - return isCallable$I(argument) ? argument : undefined; + return isCallable$H(argument) ? argument : undefined; }; var getBuiltIn$M = function (namespace, method) { return arguments.length < 2 ? aFunction(global$15[namespace]) : global$15[namespace] && global$15[namespace][method]; }; -var uncurryThis$1R = functionUncurryThis; +var uncurryThis$1S = functionUncurryThis; -var objectIsPrototypeOf = uncurryThis$1R({}.isPrototypeOf); +var objectIsPrototypeOf = uncurryThis$1S({}.isPrototypeOf); var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; @@ -243,7 +243,7 @@ var useSymbolAsUid = NATIVE_SYMBOL$7 && typeof Symbol.iterator == 'symbol'; var getBuiltIn$L = getBuiltIn$M; -var isCallable$H = isCallable$K; +var isCallable$G = isCallable$J; var isPrototypeOf$e = objectIsPrototypeOf; var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; @@ -253,7 +253,7 @@ var isSymbol$8 = USE_SYMBOL_AS_UID$1 ? function (it) { return typeof it == 'symbol'; } : function (it) { var $Symbol = getBuiltIn$L('Symbol'); - return isCallable$H($Symbol) && isPrototypeOf$e($Symbol.prototype, $Object$7(it)); + return isCallable$G($Symbol) && isPrototypeOf$e($Symbol.prototype, $Object$7(it)); }; var $String$8 = String; @@ -266,15 +266,15 @@ var tryToString$7 = function (argument) { } }; -var isCallable$G = isCallable$K; +var isCallable$F = isCallable$J; var tryToString$6 = tryToString$7; var $TypeError$H = TypeError; // `Assert: IsCallable(argument) is true` var aCallable$N = function (argument) { - if (isCallable$G(argument)) return argument; - throw $TypeError$H(tryToString$6(argument) + ' is not a function'); + if (isCallable$F(argument)) return argument; + throw new $TypeError$H(tryToString$6(argument) + ' is not a function'); }; var aCallable$M = aCallable$N; @@ -288,7 +288,7 @@ var getMethod$l = function (V, P) { }; var call$1h = functionCall; -var isCallable$F = isCallable$K; +var isCallable$E = isCallable$J; var isObject$J = isObject$K; var $TypeError$G = TypeError; @@ -297,10 +297,10 @@ var $TypeError$G = TypeError; // https://tc39.es/ecma262/#sec-ordinarytoprimitive var ordinaryToPrimitive$2 = function (input, pref) { var fn, val; - if (pref === 'string' && isCallable$F(fn = input.toString) && !isObject$J(val = call$1h(fn, input))) return val; - if (isCallable$F(fn = input.valueOf) && !isObject$J(val = call$1h(fn, input))) return val; - if (pref !== 'string' && isCallable$F(fn = input.toString) && !isObject$J(val = call$1h(fn, input))) return val; - throw $TypeError$G("Can't convert object to primitive value"); + if (pref === 'string' && isCallable$E(fn = input.toString) && !isObject$J(val = call$1h(fn, input))) return val; + if (isCallable$E(fn = input.valueOf) && !isObject$J(val = call$1h(fn, input))) return val; + if (pref !== 'string' && isCallable$E(fn = input.toString) && !isObject$J(val = call$1h(fn, input))) return val; + throw new $TypeError$G("Can't convert object to primitive value"); }; var shared$b = {exports: {}}; @@ -333,10 +333,10 @@ var store$4 = sharedStore; (shared$b.exports = function (key, value) { return store$4[key] || (store$4[key] = value !== undefined ? value : {}); })('versions', []).push({ - version: '3.32.2', + version: '3.33.0', mode: 'global', copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', - license: 'https://github.com/zloirock/core-js/blob/v3.32.2/LICENSE', + license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE', source: 'https://github.com/zloirock/core-js' }); @@ -352,10 +352,10 @@ var toObject$D = function (argument) { return $Object$6(requireObjectCoercible$n(argument)); }; -var uncurryThis$1Q = functionUncurryThis; +var uncurryThis$1R = functionUncurryThis; var toObject$C = toObject$D; -var hasOwnProperty = uncurryThis$1Q({}.hasOwnProperty); +var hasOwnProperty = uncurryThis$1R({}.hasOwnProperty); // `HasOwnProperty` abstract operation // https://tc39.es/ecma262/#sec-hasownproperty @@ -364,14 +364,14 @@ var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { return hasOwnProperty(toObject$C(it), key); }; -var uncurryThis$1P = functionUncurryThis; +var uncurryThis$1Q = functionUncurryThis; var id$2 = 0; var postfix = Math.random(); -var toString$J = uncurryThis$1P(1.0.toString); +var toString$K = uncurryThis$1Q(1.0.toString); var uid$7 = function (key) { - return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$J(++id$2 + postfix, 36); + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$K(++id$2 + postfix, 36); }; var global$10 = global$16; @@ -385,7 +385,7 @@ var Symbol$7 = global$10.Symbol; var WellKnownSymbolsStore$2 = shared$a('wks'); var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$7['for'] || Symbol$7 : Symbol$7 && Symbol$7.withoutSetter || uid$6; -var wellKnownSymbol$T = function (name) { +var wellKnownSymbol$S = function (name) { if (!hasOwn$F(WellKnownSymbolsStore$2, name)) { WellKnownSymbolsStore$2[name] = NATIVE_SYMBOL$6 && hasOwn$F(Symbol$7, name) ? Symbol$7[name] @@ -398,10 +398,10 @@ var isObject$I = isObject$K; var isSymbol$7 = isSymbol$8; var getMethod$k = getMethod$l; var ordinaryToPrimitive$1 = ordinaryToPrimitive$2; -var wellKnownSymbol$S = wellKnownSymbol$T; +var wellKnownSymbol$R = wellKnownSymbol$S; var $TypeError$F = TypeError; -var TO_PRIMITIVE$1 = wellKnownSymbol$S('toPrimitive'); +var TO_PRIMITIVE$1 = wellKnownSymbol$R('toPrimitive'); // `ToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-toprimitive @@ -413,7 +413,7 @@ var toPrimitive$4 = function (input, pref) { if (pref === undefined) pref = 'default'; result = call$1g(exoticToPrim, input, pref); if (!isObject$I(result) || isSymbol$7(result)) return result; - throw $TypeError$F("Can't convert object to primitive value"); + throw new $TypeError$F("Can't convert object to primitive value"); } if (pref === undefined) pref = 'number'; return ordinaryToPrimitive$1(input, pref); @@ -498,7 +498,7 @@ var $TypeError$E = TypeError; // `Assert: Type(argument) is Object` var anObject$1f = function (argument) { if (isObject$G(argument)) return argument; - throw $TypeError$E($String$7(argument) + ' is not an object'); + throw new $TypeError$E($String$7(argument) + ' is not an object'); }; var DESCRIPTORS$P = descriptors; @@ -540,7 +540,7 @@ objectDefineProperty.f = DESCRIPTORS$P ? V8_PROTOTYPE_DEFINE_BUG$1 ? function de if (IE8_DOM_DEFINE) try { return $defineProperty$1(O, P, Attributes); } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw $TypeError$D('Accessors not supported'); + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$D('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; @@ -576,14 +576,14 @@ var functionName = { CONFIGURABLE: CONFIGURABLE }; -var uncurryThis$1O = functionUncurryThis; -var isCallable$E = isCallable$K; +var uncurryThis$1P = functionUncurryThis; +var isCallable$D = isCallable$J; var store$3 = sharedStore; -var functionToString$1 = uncurryThis$1O(Function.toString); +var functionToString$1 = uncurryThis$1P(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper -if (!isCallable$E(store$3.inspectSource)) { +if (!isCallable$D(store$3.inspectSource)) { store$3.inspectSource = function (it) { return functionToString$1(it); }; @@ -592,11 +592,11 @@ if (!isCallable$E(store$3.inspectSource)) { var inspectSource$4 = store$3.inspectSource; var global$_ = global$16; -var isCallable$D = isCallable$K; +var isCallable$C = isCallable$J; var WeakMap$5 = global$_.WeakMap; -var weakMapBasicDetection = isCallable$D(WeakMap$5) && /native code/.test(String(WeakMap$5)); +var weakMapBasicDetection = isCallable$C(WeakMap$5) && /native code/.test(String(WeakMap$5)); var shared$9 = sharedExports; var uid$5 = uid$7; @@ -631,7 +631,7 @@ var getterFor$2 = function (TYPE) { return function (it) { var state; if (!isObject$F(it) || (state = get$6(it)).type !== TYPE) { - throw TypeError$9('Incompatible receiver, ' + TYPE + ' required'); + throw new TypeError$9('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; @@ -644,7 +644,7 @@ if (NATIVE_WEAK_MAP$1 || shared$8.state) { store$2.set = store$2.set; /* eslint-enable no-self-assign -- prototype methods protection */ set$b = function (it, metadata) { - if (store$2.has(it)) throw TypeError$9(OBJECT_ALREADY_INITIALIZED); + if (store$2.has(it)) throw new TypeError$9(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; store$2.set(it, metadata); return metadata; @@ -659,7 +659,7 @@ if (NATIVE_WEAK_MAP$1 || shared$8.state) { var STATE = sharedKey$3('state'); hiddenKeys$5[STATE] = true; set$b = function (it, metadata) { - if (hasOwn$C(it, STATE)) throw TypeError$9(OBJECT_ALREADY_INITIALIZED); + if (hasOwn$C(it, STATE)) throw new TypeError$9(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; createNonEnumerableProperty$j(it, STATE, metadata); return metadata; @@ -680,9 +680,9 @@ var internalState = { getterFor: getterFor$2 }; -var uncurryThis$1N = functionUncurryThis; +var uncurryThis$1O = functionUncurryThis; var fails$1n = fails$1u; -var isCallable$C = isCallable$K; +var isCallable$B = isCallable$J; var hasOwn$B = hasOwnProperty_1; var DESCRIPTORS$M = descriptors; var CONFIGURABLE_FUNCTION_NAME$2 = functionName.CONFIGURABLE; @@ -694,9 +694,9 @@ var getInternalState$g = InternalStateModule$n.get; var $String$6 = String; // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty$h = Object.defineProperty; -var stringSlice$k = uncurryThis$1N(''.slice); -var replace$c = uncurryThis$1N(''.replace); -var join$9 = uncurryThis$1N([].join); +var stringSlice$k = uncurryThis$1O(''.slice); +var replace$d = uncurryThis$1O(''.replace); +var join$9 = uncurryThis$1O([].join); var CONFIGURABLE_LENGTH = DESCRIPTORS$M && !fails$1n(function () { return defineProperty$h(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; @@ -706,7 +706,7 @@ var TEMPLATE = String(String).split('String'); var makeBuiltIn$4 = makeBuiltIn$5.exports = function (value, name, options) { if (stringSlice$k($String$6(name), 0, 7) === 'Symbol(') { - name = '[' + replace$c($String$6(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; + name = '[' + replace$d($String$6(name), /^Symbol\(([^)]*)\)/, '$1') + ']'; } if (options && options.getter) name = 'get ' + name; if (options && options.setter) name = 'set ' + name; @@ -732,12 +732,12 @@ var makeBuiltIn$4 = makeBuiltIn$5.exports = function (value, name, options) { // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative // eslint-disable-next-line no-extend-native -- required Function.prototype.toString = makeBuiltIn$4(function toString() { - return isCallable$C(this) && getInternalState$g(this).source || inspectSource$3(this); + return isCallable$B(this) && getInternalState$g(this).source || inspectSource$3(this); }, 'toString'); var makeBuiltInExports = makeBuiltIn$5.exports; -var isCallable$B = isCallable$K; +var isCallable$A = isCallable$J; var definePropertyModule$a = objectDefineProperty; var makeBuiltIn$3 = makeBuiltInExports; var defineGlobalProperty$1 = defineGlobalProperty$3; @@ -746,7 +746,7 @@ var defineBuiltIn$u = function (O, key, value, options) { if (!options) options = {}; var simple = options.enumerable; var name = options.name !== undefined ? options.name : key; - if (isCallable$B(value)) makeBuiltIn$3(value, name, options); + if (isCallable$A(value)) makeBuiltIn$3(value, name, options); if (options.global) { if (simple) O[key] = value; else defineGlobalProperty$1(key, value); @@ -778,14 +778,14 @@ var mathTrunc = Math.trunc || function trunc(x) { return (n > 0 ? floor$a : ceil$1)(n); }; -var trunc$2 = mathTrunc; +var trunc$1 = mathTrunc; // `ToIntegerOrInfinity` abstract operation // https://tc39.es/ecma262/#sec-tointegerorinfinity var toIntegerOrInfinity$p = function (argument) { var number = +argument; // eslint-disable-next-line no-self-compare -- NaN check - return number !== number || number === 0 ? 0 : trunc$2(number); + return number !== number || number === 0 ? 0 : trunc$1(number); }; var toIntegerOrInfinity$o = toIntegerOrInfinity$p; @@ -852,13 +852,13 @@ var arrayIncludes = { indexOf: createMethod$8(false) }; -var uncurryThis$1M = functionUncurryThis; +var uncurryThis$1N = functionUncurryThis; var hasOwn$A = hasOwnProperty_1; var toIndexedObject$h = toIndexedObject$k; var indexOf$2 = arrayIncludes.indexOf; var hiddenKeys$4 = hiddenKeys$6; -var push$s = uncurryThis$1M([].push); +var push$s = uncurryThis$1N([].push); var objectKeysInternal = function (object, names) { var O = toIndexedObject$h(object); @@ -902,12 +902,12 @@ var objectGetOwnPropertySymbols = {}; objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; var getBuiltIn$K = getBuiltIn$M; -var uncurryThis$1L = functionUncurryThis; +var uncurryThis$1M = functionUncurryThis; var getOwnPropertyNamesModule$2 = objectGetOwnPropertyNames; var getOwnPropertySymbolsModule$3 = objectGetOwnPropertySymbols; var anObject$1d = anObject$1f; -var concat$4 = uncurryThis$1L([].concat); +var concat$4 = uncurryThis$1M([].concat); // all object keys, includes non-enumerable and symbols var ownKeys$3 = getBuiltIn$K('Reflect', 'ownKeys') || function ownKeys(it) { @@ -934,7 +934,7 @@ var copyConstructorProperties$6 = function (target, source, exceptions) { }; var fails$1m = fails$1u; -var isCallable$A = isCallable$K; +var isCallable$z = isCallable$J; var replacement = /#|\.prototype\./; @@ -942,7 +942,7 @@ var isForced$5 = function (feature, detection) { var value = data[normalize(feature)]; return value === POLYFILL ? true : value === NATIVE ? false - : isCallable$A(detection) ? fails$1m(detection) + : isCallable$z(detection) ? fails$1m(detection) : !!detection; }; @@ -1011,9 +1011,9 @@ var _export = function (options, source) { } }; -var wellKnownSymbol$R = wellKnownSymbol$T; +var wellKnownSymbol$Q = wellKnownSymbol$S; -var TO_STRING_TAG$c = wellKnownSymbol$R('toStringTag'); +var TO_STRING_TAG$c = wellKnownSymbol$Q('toStringTag'); var test$2 = {}; test$2[TO_STRING_TAG$c] = 'z'; @@ -1021,11 +1021,11 @@ test$2[TO_STRING_TAG$c] = 'z'; var toStringTagSupport = String(test$2) === '[object z]'; var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; -var isCallable$z = isCallable$K; +var isCallable$y = isCallable$J; var classofRaw$1 = classofRaw$2; -var wellKnownSymbol$Q = wellKnownSymbol$T; +var wellKnownSymbol$P = wellKnownSymbol$S; -var TO_STRING_TAG$b = wellKnownSymbol$Q('toStringTag'); +var TO_STRING_TAG$b = wellKnownSymbol$P('toStringTag'); var $Object$5 = Object; // ES3 wrong here @@ -1047,15 +1047,15 @@ var classof$q = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { // builtinTag case : CORRECT_ARGUMENTS ? classofRaw$1(O) // ES3 arguments fallback - : (result = classofRaw$1(O)) === 'Object' && isCallable$z(O.callee) ? 'Arguments' : result; + : (result = classofRaw$1(O)) === 'Object' && isCallable$y(O.callee) ? 'Arguments' : result; }; var classof$p = classof$q; var $String$5 = String; -var toString$I = function (argument) { - if (classof$p(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); +var toString$J = function (argument) { + if (classof$p(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); return $String$5(argument); }; @@ -1245,9 +1245,9 @@ var defineBuiltInAccessor$o = function (target, name, descriptor) { var wellKnownSymbolWrapped = {}; -var wellKnownSymbol$P = wellKnownSymbol$T; +var wellKnownSymbol$O = wellKnownSymbol$S; -wellKnownSymbolWrapped.f = wellKnownSymbol$P; +wellKnownSymbolWrapped.f = wellKnownSymbol$O; var global$X = global$16; @@ -1267,14 +1267,14 @@ var wellKnownSymbolDefine = function (NAME) { var call$1e = functionCall; var getBuiltIn$I = getBuiltIn$M; -var wellKnownSymbol$O = wellKnownSymbol$T; +var wellKnownSymbol$N = wellKnownSymbol$S; var defineBuiltIn$s = defineBuiltIn$u; var symbolDefineToPrimitive = function () { var Symbol = getBuiltIn$I('Symbol'); var SymbolPrototype = Symbol && Symbol.prototype; var valueOf = SymbolPrototype && SymbolPrototype.valueOf; - var TO_PRIMITIVE = wellKnownSymbol$O('toPrimitive'); + var TO_PRIMITIVE = wellKnownSymbol$N('toPrimitive'); if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { // `Symbol.prototype[@@toPrimitive]` method @@ -1288,9 +1288,9 @@ var symbolDefineToPrimitive = function () { var defineProperty$e = objectDefineProperty.f; var hasOwn$x = hasOwnProperty_1; -var wellKnownSymbol$N = wellKnownSymbol$T; +var wellKnownSymbol$M = wellKnownSymbol$S; -var TO_STRING_TAG$a = wellKnownSymbol$N('toStringTag'); +var TO_STRING_TAG$a = wellKnownSymbol$M('toStringTag'); var setToStringTag$d = function (target, TAG, STATIC) { if (target && !STATIC) target = target.prototype; @@ -1300,20 +1300,20 @@ var setToStringTag$d = function (target, TAG, STATIC) { }; var classofRaw = classofRaw$2; -var uncurryThis$1K = functionUncurryThis; +var uncurryThis$1L = functionUncurryThis; var functionUncurryThisClause = function (fn) { // Nashorn bug: // https://github.com/zloirock/core-js/issues/1128 // https://github.com/zloirock/core-js/issues/1130 - if (classofRaw(fn) === 'Function') return uncurryThis$1K(fn); + if (classofRaw(fn) === 'Function') return uncurryThis$1L(fn); }; -var uncurryThis$1J = functionUncurryThisClause; +var uncurryThis$1K = functionUncurryThisClause; var aCallable$L = aCallable$N; var NATIVE_BIND$2 = functionBindNative; -var bind$v = uncurryThis$1J(uncurryThis$1J.bind); +var bind$v = uncurryThis$1K(uncurryThis$1K.bind); // optional / simple context binding var functionBindContext = function (fn, that) { @@ -1332,9 +1332,9 @@ var isArray$b = Array.isArray || function isArray(argument) { return classof$n(argument) === 'Array'; }; -var uncurryThis$1I = functionUncurryThis; +var uncurryThis$1J = functionUncurryThis; var fails$1l = fails$1u; -var isCallable$y = isCallable$K; +var isCallable$x = isCallable$J; var classof$m = classof$q; var getBuiltIn$H = getBuiltIn$M; var inspectSource$2 = inspectSource$4; @@ -1343,11 +1343,11 @@ var noop = function () { /* empty */ }; var empty = []; var construct$1 = getBuiltIn$H('Reflect', 'construct'); var constructorRegExp = /^\s*(?:class|function)\b/; -var exec$g = uncurryThis$1I(constructorRegExp.exec); -var INCORRECT_TO_STRING$2 = !constructorRegExp.exec(noop); +var exec$g = uncurryThis$1J(constructorRegExp.exec); +var INCORRECT_TO_STRING$2 = !constructorRegExp.test(noop); var isConstructorModern = function isConstructor(argument) { - if (!isCallable$y(argument)) return false; + if (!isCallable$x(argument)) return false; try { construct$1(noop, empty, argument); return true; @@ -1357,7 +1357,7 @@ var isConstructorModern = function isConstructor(argument) { }; var isConstructorLegacy = function isConstructor(argument) { - if (!isCallable$y(argument)) return false; + if (!isCallable$x(argument)) return false; switch (classof$m(argument)) { case 'AsyncFunction': case 'GeneratorFunction': @@ -1388,9 +1388,9 @@ var isConstructor$a = !construct$1 || fails$1l(function () { var isArray$a = isArray$b; var isConstructor$9 = isConstructor$a; var isObject$E = isObject$K; -var wellKnownSymbol$M = wellKnownSymbol$T; +var wellKnownSymbol$L = wellKnownSymbol$S; -var SPECIES$6 = wellKnownSymbol$M('species'); +var SPECIES$6 = wellKnownSymbol$L('species'); var $Array$b = Array; // a part of `ArraySpeciesCreate` abstract operation @@ -1417,13 +1417,13 @@ var arraySpeciesCreate$5 = function (originalArray, length) { }; var bind$u = functionBindContext; -var uncurryThis$1H = functionUncurryThis; +var uncurryThis$1I = functionUncurryThis; var IndexedObject$6 = indexedObject; var toObject$B = toObject$D; var lengthOfArrayLike$z = lengthOfArrayLike$C; var arraySpeciesCreate$4 = arraySpeciesCreate$5; -var push$r = uncurryThis$1H([].push); +var push$r = uncurryThis$1I([].push); // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation var createMethod$7 = function (TYPE) { @@ -1490,10 +1490,10 @@ var arrayIteration = { filterReject: createMethod$7(7) }; -var $$5q = _export; +var $$5r = _export; var global$W = global$16; var call$1d = functionCall; -var uncurryThis$1G = functionUncurryThis; +var uncurryThis$1H = functionUncurryThis; var DESCRIPTORS$K = descriptors; var NATIVE_SYMBOL$5 = symbolConstructorDetection; var fails$1k = fails$1u; @@ -1502,7 +1502,7 @@ var isPrototypeOf$d = objectIsPrototypeOf; var anObject$1a = anObject$1f; var toIndexedObject$e = toIndexedObject$k; var toPropertyKey$6 = toPropertyKey$a; -var $toString$3 = toString$I; +var $toString$3 = toString$J; var createPropertyDescriptor$9 = createPropertyDescriptor$d; var nativeObjectCreate = objectCreate$1; var objectKeys$4 = objectKeys$6; @@ -1519,7 +1519,7 @@ var shared$7 = sharedExports; var sharedKey$1 = sharedKey$4; var hiddenKeys$1 = hiddenKeys$6; var uid$4 = uid$7; -var wellKnownSymbol$L = wellKnownSymbol$T; +var wellKnownSymbol$K = wellKnownSymbol$S; var wrappedWellKnownSymbolModule = wellKnownSymbolWrapped; var defineWellKnownSymbol$l = wellKnownSymbolDefine; var defineSymbolToPrimitive$1 = symbolDefineToPrimitive; @@ -1537,13 +1537,14 @@ var getInternalState$f = InternalStateModule$m.getterFor(SYMBOL); var ObjectPrototype$5 = Object[PROTOTYPE$1]; var $Symbol = global$W.Symbol; var SymbolPrototype$1 = $Symbol && $Symbol[PROTOTYPE$1]; +var RangeError$5 = global$W.RangeError; var TypeError$8 = global$W.TypeError; var QObject = global$W.QObject; var nativeGetOwnPropertyDescriptor$2 = getOwnPropertyDescriptorModule$5.f; var nativeDefineProperty$1 = definePropertyModule$6.f; var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; var nativePropertyIsEnumerable = propertyIsEnumerableModule$1.f; -var push$q = uncurryThis$1G([].push); +var push$q = uncurryThis$1H([].push); var AllSymbols = shared$7('symbols'); var ObjectPrototypeSymbols = shared$7('op-symbols'); @@ -1553,18 +1554,20 @@ var WellKnownSymbolsStore$1 = shared$7('wks'); var USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDescriptor = DESCRIPTORS$K && fails$1k(function () { - return nativeObjectCreate(nativeDefineProperty$1({}, 'a', { - get: function () { return nativeDefineProperty$1(this, 'a', { value: 7 }).a; } - })).a !== 7; -}) ? function (O, P, Attributes) { +var fallbackDefineProperty = function (O, P, Attributes) { var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$2(ObjectPrototype$5, P); if (ObjectPrototypeDescriptor) delete ObjectPrototype$5[P]; nativeDefineProperty$1(O, P, Attributes); if (ObjectPrototypeDescriptor && O !== ObjectPrototype$5) { nativeDefineProperty$1(ObjectPrototype$5, P, ObjectPrototypeDescriptor); } -} : nativeDefineProperty$1; +}; + +var setSymbolDescriptor = DESCRIPTORS$K && fails$1k(function () { + return nativeObjectCreate(nativeDefineProperty$1({}, 'a', { + get: function () { return nativeDefineProperty$1(this, 'a', { value: 7 }).a; } + })).a !== 7; +}) ? fallbackDefineProperty : nativeDefineProperty$1; var wrap = function (tag, description) { var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype$1); @@ -1651,13 +1654,19 @@ var $getOwnPropertySymbols = function (O) { // https://tc39.es/ecma262/#sec-symbol-constructor if (!NATIVE_SYMBOL$5) { $Symbol = function Symbol() { - if (isPrototypeOf$d(SymbolPrototype$1, this)) throw TypeError$8('Symbol is not a constructor'); + if (isPrototypeOf$d(SymbolPrototype$1, this)) throw new TypeError$8('Symbol is not a constructor'); var description = !arguments.length || arguments[0] === undefined ? undefined : $toString$3(arguments[0]); var tag = uid$4(description); var setter = function (value) { if (this === ObjectPrototype$5) call$1d(setter, ObjectPrototypeSymbols, value); if (hasOwn$w(this, HIDDEN) && hasOwn$w(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDescriptor(this, tag, createPropertyDescriptor$9(1, value)); + var descriptor = createPropertyDescriptor$9(1, value); + try { + setSymbolDescriptor(this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError$5)) throw error; + fallbackDefineProperty(this, tag, descriptor); + } }; if (DESCRIPTORS$K && USE_SETTER) setSymbolDescriptor(ObjectPrototype$5, tag, { configurable: true, set: setter }); return wrap(tag, description); @@ -1681,7 +1690,7 @@ if (!NATIVE_SYMBOL$5) { getOwnPropertySymbolsModule$2.f = $getOwnPropertySymbols; wrappedWellKnownSymbolModule.f = function (name) { - return wrap(wellKnownSymbol$L(name), name); + return wrap(wellKnownSymbol$K(name), name); }; if (DESCRIPTORS$K) { @@ -1698,7 +1707,7 @@ if (!NATIVE_SYMBOL$5) { } } -$$5q({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL$5, sham: !NATIVE_SYMBOL$5 }, { +$$5r({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL$5, sham: !NATIVE_SYMBOL$5 }, { Symbol: $Symbol }); @@ -1706,12 +1715,12 @@ $forEach$3(objectKeys$4(WellKnownSymbolsStore$1), function (name) { defineWellKnownSymbol$l(name); }); -$$5q({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL$5 }, { +$$5r({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL$5 }, { useSetter: function () { USE_SETTER = true; }, useSimple: function () { USE_SETTER = false; } }); -$$5q({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL$5, sham: !DESCRIPTORS$K }, { +$$5r({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL$5, sham: !DESCRIPTORS$K }, { // `Object.create` method // https://tc39.es/ecma262/#sec-object.create create: $create, @@ -1726,7 +1735,7 @@ $$5q({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL$5, sham: !DESCRIPTOR getOwnPropertyDescriptor: $getOwnPropertyDescriptor }); -$$5q({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL$5 }, { +$$5r({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL$5 }, { // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames getOwnPropertyNames: $getOwnPropertyNames @@ -1747,10 +1756,10 @@ var NATIVE_SYMBOL$4 = symbolConstructorDetection; /* eslint-disable es/no-symbol -- safe */ var symbolRegistryDetection = NATIVE_SYMBOL$4 && !!Symbol['for'] && !!Symbol.keyFor; -var $$5p = _export; +var $$5q = _export; var getBuiltIn$G = getBuiltIn$M; var hasOwn$v = hasOwnProperty_1; -var toString$H = toString$I; +var toString$I = toString$J; var shared$6 = sharedExports; var NATIVE_SYMBOL_REGISTRY$1 = symbolRegistryDetection; @@ -1759,9 +1768,9 @@ var SymbolToStringRegistry$1 = shared$6('symbol-to-string-registry'); // `Symbol.for` method // https://tc39.es/ecma262/#sec-symbol.for -$$5p({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY$1 }, { +$$5q({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY$1 }, { 'for': function (key) { - var string = toString$H(key); + var string = toString$I(key); if (hasOwn$v(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; var symbol = getBuiltIn$G('Symbol')(string); StringToSymbolRegistry[string] = symbol; @@ -1770,7 +1779,7 @@ $$5p({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY$1 }, { } }); -var $$5o = _export; +var $$5p = _export; var hasOwn$u = hasOwnProperty_1; var isSymbol$5 = isSymbol$8; var tryToString$5 = tryToString$7; @@ -1781,9 +1790,9 @@ var SymbolToStringRegistry = shared$5('symbol-to-string-registry'); // `Symbol.keyFor` method // https://tc39.es/ecma262/#sec-symbol.keyfor -$$5o({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { +$$5p({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { keyFor: function keyFor(sym) { - if (!isSymbol$5(sym)) throw TypeError(tryToString$5(sym) + ' is not a symbol'); + if (!isSymbol$5(sym)) throw new TypeError(tryToString$5(sym) + ' is not a symbol'); if (hasOwn$u(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; } }); @@ -1799,27 +1808,27 @@ var functionApply$1 = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIN return call$1c.apply(apply$e, arguments); }); -var uncurryThis$1F = functionUncurryThis; +var uncurryThis$1G = functionUncurryThis; -var arraySlice$b = uncurryThis$1F([].slice); +var arraySlice$b = uncurryThis$1G([].slice); -var uncurryThis$1E = functionUncurryThis; +var uncurryThis$1F = functionUncurryThis; var isArray$9 = isArray$b; -var isCallable$x = isCallable$K; +var isCallable$w = isCallable$J; var classof$l = classofRaw$2; -var toString$G = toString$I; +var toString$H = toString$J; -var push$p = uncurryThis$1E([].push); +var push$p = uncurryThis$1F([].push); var getJsonReplacerFunction = function (replacer) { - if (isCallable$x(replacer)) return replacer; + if (isCallable$w(replacer)) return replacer; if (!isArray$9(replacer)) return; var rawLength = replacer.length; var keys = []; for (var i = 0; i < rawLength; i++) { var element = replacer[i]; if (typeof element == 'string') push$p(keys, element); - else if (typeof element == 'number' || classof$l(element) === 'Number' || classof$l(element) === 'String') push$p(keys, toString$G(element)); + else if (typeof element == 'number' || classof$l(element) === 'Number' || classof$l(element) === 'String') push$p(keys, toString$H(element)); } var keysLength = keys.length; var root = true; @@ -1833,13 +1842,13 @@ var getJsonReplacerFunction = function (replacer) { }; }; -var $$5n = _export; +var $$5o = _export; var getBuiltIn$F = getBuiltIn$M; var apply$d = functionApply$1; var call$1b = functionCall; -var uncurryThis$1D = functionUncurryThis; +var uncurryThis$1E = functionUncurryThis; var fails$1j = fails$1u; -var isCallable$w = isCallable$K; +var isCallable$v = isCallable$J; var isSymbol$4 = isSymbol$8; var arraySlice$a = arraySlice$b; var getReplacerFunction$1 = getJsonReplacerFunction; @@ -1847,11 +1856,11 @@ var NATIVE_SYMBOL$3 = symbolConstructorDetection; var $String$4 = String; var $stringify$1 = getBuiltIn$F('JSON', 'stringify'); -var exec$f = uncurryThis$1D(/./.exec); -var charAt$k = uncurryThis$1D(''.charAt); -var charCodeAt$8 = uncurryThis$1D(''.charCodeAt); -var replace$b = uncurryThis$1D(''.replace); -var numberToString$3 = uncurryThis$1D(1.0.toString); +var exec$f = uncurryThis$1E(/./.exec); +var charAt$k = uncurryThis$1E(''.charAt); +var charCodeAt$9 = uncurryThis$1E(''.charCodeAt); +var replace$c = uncurryThis$1E(''.replace); +var numberToString$3 = uncurryThis$1E(1.0.toString); var tester = /[\uD800-\uDFFF]/g; var low = /^[\uD800-\uDBFF]$/; @@ -1876,10 +1885,10 @@ var ILL_FORMED_UNICODE = fails$1j(function () { var stringifyWithSymbolsFix = function (it, replacer) { var args = arraySlice$a(arguments); var $replacer = getReplacerFunction$1(replacer); - if (!isCallable$w($replacer) && (it === undefined || isSymbol$4(it))) return; // IE8 returns string on undefined + if (!isCallable$v($replacer) && (it === undefined || isSymbol$4(it))) return; // IE8 returns string on undefined args[1] = function (key, value) { // some old implementations (like WebKit) could pass numbers as keys - if (isCallable$w($replacer)) value = call$1b($replacer, this, $String$4(key), value); + if (isCallable$v($replacer)) value = call$1b($replacer, this, $String$4(key), value); if (!isSymbol$4(value)) return value; }; return apply$d($stringify$1, null, args); @@ -1889,24 +1898,24 @@ var fixIllFormed = function (match, offset, string) { var prev = charAt$k(string, offset - 1); var next = charAt$k(string, offset + 1); if ((exec$f(low, match) && !exec$f(hi, next)) || (exec$f(hi, match) && !exec$f(low, prev))) { - return '\\u' + numberToString$3(charCodeAt$8(match, 0), 16); + return '\\u' + numberToString$3(charCodeAt$9(match, 0), 16); } return match; }; if ($stringify$1) { // `JSON.stringify` method // https://tc39.es/ecma262/#sec-json.stringify - $$5n({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + $$5o({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { // eslint-disable-next-line no-unused-vars -- required for `.length` stringify: function stringify(it, replacer, space) { var args = arraySlice$a(arguments); var result = apply$d(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify$1, null, args); - return ILL_FORMED_UNICODE && typeof result == 'string' ? replace$b(result, tester, fixIllFormed) : result; + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace$c(result, tester, fixIllFormed) : result; } }); } -var $$5m = _export; +var $$5n = _export; var NATIVE_SYMBOL$2 = symbolConstructorDetection; var fails$1i = fails$1u; var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; @@ -1918,35 +1927,35 @@ var FORCED$E = !NATIVE_SYMBOL$2 || fails$1i(function () { getOwnPropertySymbolsM // `Object.getOwnPropertySymbols` method // https://tc39.es/ecma262/#sec-object.getownpropertysymbols -$$5m({ target: 'Object', stat: true, forced: FORCED$E }, { +$$5n({ target: 'Object', stat: true, forced: FORCED$E }, { getOwnPropertySymbols: function getOwnPropertySymbols(it) { var $getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject$A(it)) : []; } }); -var $$5l = _export; +var $$5m = _export; var DESCRIPTORS$J = descriptors; var global$V = global$16; -var uncurryThis$1C = functionUncurryThis; +var uncurryThis$1D = functionUncurryThis; var hasOwn$t = hasOwnProperty_1; -var isCallable$v = isCallable$K; +var isCallable$u = isCallable$J; var isPrototypeOf$c = objectIsPrototypeOf; -var toString$F = toString$I; +var toString$G = toString$J; var defineBuiltInAccessor$m = defineBuiltInAccessor$o; var copyConstructorProperties$4 = copyConstructorProperties$6; var NativeSymbol = global$V.Symbol; var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; -if (DESCRIPTORS$J && isCallable$v(NativeSymbol) && (!('description' in SymbolPrototype) || +if (DESCRIPTORS$J && isCallable$u(NativeSymbol) && (!('description' in SymbolPrototype) || // Safari 12 bug NativeSymbol().description !== undefined )) { var EmptyStringDescriptionStore = {}; // wrap Symbol constructor for correct work with undefined description var SymbolWrapper = function Symbol() { - var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString$F(arguments[0]); + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString$G(arguments[0]); var result = isPrototypeOf$c(SymbolPrototype, this) ? new NativeSymbol(description) // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' @@ -1960,11 +1969,11 @@ if (DESCRIPTORS$J && isCallable$v(NativeSymbol) && (!('description' in SymbolPro SymbolPrototype.constructor = SymbolWrapper; var NATIVE_SYMBOL$1 = String(NativeSymbol('description detection')) === 'Symbol(description detection)'; - var thisSymbolValue$2 = uncurryThis$1C(SymbolPrototype.valueOf); - var symbolDescriptiveString = uncurryThis$1C(SymbolPrototype.toString); + var thisSymbolValue$2 = uncurryThis$1D(SymbolPrototype.valueOf); + var symbolDescriptiveString = uncurryThis$1D(SymbolPrototype.toString); var regexp = /^Symbol\((.*)\)[^)]+$/; - var replace$a = uncurryThis$1C(''.replace); - var stringSlice$j = uncurryThis$1C(''.slice); + var replace$b = uncurryThis$1D(''.replace); + var stringSlice$j = uncurryThis$1D(''.slice); defineBuiltInAccessor$m(SymbolPrototype, 'description', { configurable: true, @@ -1972,12 +1981,12 @@ if (DESCRIPTORS$J && isCallable$v(NativeSymbol) && (!('description' in SymbolPro var symbol = thisSymbolValue$2(this); if (hasOwn$t(EmptyStringDescriptionStore, symbol)) return ''; var string = symbolDescriptiveString(symbol); - var desc = NATIVE_SYMBOL$1 ? stringSlice$j(string, 7, -1) : replace$a(string, regexp, '$1'); + var desc = NATIVE_SYMBOL$1 ? stringSlice$j(string, 7, -1) : replace$b(string, regexp, '$1'); return desc === '' ? undefined : desc; } }); - $$5l({ global: true, constructor: true, forced: true }, { + $$5m({ global: true, constructor: true, forced: true }, { Symbol: SymbolWrapper }); } @@ -2071,24 +2080,24 @@ var defineWellKnownSymbol$8 = wellKnownSymbolDefine; // https://tc39.es/ecma262/#sec-symbol.unscopables defineWellKnownSymbol$8('unscopables'); -var uncurryThis$1B = functionUncurryThis; +var uncurryThis$1C = functionUncurryThis; var aCallable$K = aCallable$N; var functionUncurryThisAccessor = function (object, key, method) { try { // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - return uncurryThis$1B(aCallable$K(Object.getOwnPropertyDescriptor(object, key)[method])); + return uncurryThis$1C(aCallable$K(Object.getOwnPropertyDescriptor(object, key)[method])); } catch (error) { /* empty */ } }; -var isCallable$u = isCallable$K; +var isCallable$t = isCallable$J; var $String$3 = String; var $TypeError$C = TypeError; var aPossiblePrototype$2 = function (argument) { - if (typeof argument == 'object' || isCallable$u(argument)) return argument; - throw $TypeError$C("Can't set " + $String$3(argument) + ' as a prototype'); + if (typeof argument == 'object' || isCallable$t(argument)) return argument; + throw new $TypeError$C("Can't set " + $String$3(argument) + ' as a prototype'); }; /* eslint-disable no-proto -- safe */ @@ -2128,7 +2137,7 @@ var proxyAccessor$2 = function (Target, Source, key) { }); }; -var isCallable$t = isCallable$K; +var isCallable$s = isCallable$J; var isObject$D = isObject$K; var setPrototypeOf$a = objectSetPrototypeOf$1; @@ -2139,7 +2148,7 @@ var inheritIfRequired$6 = function ($this, dummy, Wrapper) { // it can work only with native `setPrototypeOf` setPrototypeOf$a && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - isCallable$t(NewTarget = dummy.constructor) && + isCallable$s(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject$D(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype @@ -2147,10 +2156,10 @@ var inheritIfRequired$6 = function ($this, dummy, Wrapper) { return $this; }; -var toString$E = toString$I; +var toString$F = toString$J; var normalizeStringArgument$6 = function (argument, $default) { - return argument === undefined ? arguments.length < 2 ? '' : $default : toString$E(argument); + return argument === undefined ? arguments.length < 2 ? '' : $default : toString$F(argument); }; var isObject$C = isObject$K; @@ -2164,19 +2173,19 @@ var installErrorCause$2 = function (O, options) { } }; -var uncurryThis$1A = functionUncurryThis; +var uncurryThis$1B = functionUncurryThis; var $Error$2 = Error; -var replace$9 = uncurryThis$1A(''.replace); +var replace$a = uncurryThis$1B(''.replace); -var TEST = (function (arg) { return String($Error$2(arg).stack); })('zxcasd'); +var TEST = (function (arg) { return String(new $Error$2(arg).stack); })('zxcasd'); // eslint-disable-next-line redos/no-vulnerable -- safe var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); var errorStackClear = function (stack, dropEntries) { if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error$2.prepareStackTrace) { - while (dropEntries--) stack = replace$9(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + while (dropEntries--) stack = replace$a(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); } return stack; }; @@ -2184,7 +2193,7 @@ var fails$1h = fails$1u; var createPropertyDescriptor$8 = createPropertyDescriptor$d; var errorStackInstallable = !fails$1h(function () { - var error = Error('a'); + var error = new Error('a'); if (!('stack' in error)) return true; // eslint-disable-next-line es/no-object-defineproperty -- safe Object.defineProperty(error, 'stack', createPropertyDescriptor$8(1, 7)); @@ -2270,7 +2279,7 @@ var wrapErrorConstructorWithCause$2 = function (FULL_NAME, wrapper, FORCED, IS_A }; /* eslint-disable no-unused-vars -- required for functions `.length` */ -var $$5k = _export; +var $$5l = _export; var global$U = global$16; var apply$c = functionApply$1; var wrapErrorConstructorWithCause$1 = wrapErrorConstructorWithCause$2; @@ -2278,19 +2287,20 @@ var wrapErrorConstructorWithCause$1 = wrapErrorConstructorWithCause$2; var WEB_ASSEMBLY = 'WebAssembly'; var WebAssembly$1 = global$U[WEB_ASSEMBLY]; -var FORCED$D = Error('e', { cause: 7 }).cause !== 7; +// eslint-disable-next-line es/no-error-cause -- feature detection +var FORCED$D = new Error('e', { cause: 7 }).cause !== 7; var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { var O = {}; O[ERROR_NAME] = wrapErrorConstructorWithCause$1(ERROR_NAME, wrapper, FORCED$D); - $$5k({ global: true, constructor: true, arity: 1, forced: FORCED$D }, O); + $$5l({ global: true, constructor: true, arity: 1, forced: FORCED$D }, O); }; var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { if (WebAssembly$1 && WebAssembly$1[ERROR_NAME]) { var O = {}; O[ERROR_NAME] = wrapErrorConstructorWithCause$1(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED$D); - $$5k({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED$D }, O); + $$5l({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED$D }, O); } }; @@ -2377,7 +2387,7 @@ var correctPrototypeGetter = !fails$1f(function () { }); var hasOwn$r = hasOwnProperty_1; -var isCallable$s = isCallable$K; +var isCallable$r = isCallable$J; var toObject$z = toObject$D; var sharedKey = sharedKey$4; var CORRECT_PROTOTYPE_GETTER$2 = correctPrototypeGetter; @@ -2393,17 +2403,17 @@ var objectGetPrototypeOf$2 = CORRECT_PROTOTYPE_GETTER$2 ? $Object$4.getPrototype var object = toObject$z(O); if (hasOwn$r(object, IE_PROTO)) return object[IE_PROTO]; var constructor = object.constructor; - if (isCallable$s(constructor) && object instanceof constructor) { + if (isCallable$r(constructor) && object instanceof constructor) { return constructor.prototype; } return object instanceof $Object$4 ? ObjectPrototype$4 : null; }; var iterators = {}; -var wellKnownSymbol$K = wellKnownSymbol$T; +var wellKnownSymbol$J = wellKnownSymbol$S; var Iterators$5 = iterators; -var ITERATOR$b = wellKnownSymbol$K('iterator'); +var ITERATOR$b = wellKnownSymbol$J('iterator'); var ArrayPrototype$1 = Array.prototype; // check on default Array iterator @@ -2415,9 +2425,9 @@ var classof$k = classof$q; var getMethod$j = getMethod$l; var isNullOrUndefined$h = isNullOrUndefined$k; var Iterators$4 = iterators; -var wellKnownSymbol$J = wellKnownSymbol$T; +var wellKnownSymbol$I = wellKnownSymbol$S; -var ITERATOR$a = wellKnownSymbol$J('iterator'); +var ITERATOR$a = wellKnownSymbol$I('iterator'); var getIteratorMethod$8 = function (it) { if (!isNullOrUndefined$h(it)) return getMethod$j(it, ITERATOR$a) @@ -2436,7 +2446,7 @@ var $TypeError$B = TypeError; var getIterator$7 = function (argument, usingIterator) { var iteratorMethod = arguments.length < 2 ? getIteratorMethod$7(argument) : usingIterator; if (aCallable$J(iteratorMethod)) return anObject$17(call$1a(iteratorMethod, argument)); - throw $TypeError$B(tryToString$4(argument) + ' is not iterable'); + throw new $TypeError$B(tryToString$4(argument) + ' is not iterable'); }; var call$19 = functionCall; @@ -2510,7 +2520,7 @@ var iterate$G = function (iterable, unboundFunction, options) { iterator = iterable; } else { iterFn = getIteratorMethod$6(iterable); - if (!iterFn) throw $TypeError$A(tryToString$3(iterable) + ' is not iterable'); + if (!iterFn) throw new $TypeError$A(tryToString$3(iterable) + ' is not iterable'); // optimisation for array iterators if (isArrayIteratorMethod$2(iterFn)) { for (index = 0, length = lengthOfArrayLike$y(iterable); length > index; index++) { @@ -2532,7 +2542,7 @@ var iterate$G = function (iterable, unboundFunction, options) { } return new Result(false); }; -var $$5j = _export; +var $$5k = _export; var isPrototypeOf$9 = objectIsPrototypeOf; var getPrototypeOf$h = objectGetPrototypeOf$2; var setPrototypeOf$8 = objectSetPrototypeOf$1; @@ -2544,9 +2554,9 @@ var installErrorCause = installErrorCause$2; var installErrorStack$1 = errorStackInstall; var iterate$F = iterate$G; var normalizeStringArgument$3 = normalizeStringArgument$6; -var wellKnownSymbol$I = wellKnownSymbol$T; +var wellKnownSymbol$H = wellKnownSymbol$S; -var TO_STRING_TAG$9 = wellKnownSymbol$I('toStringTag'); +var TO_STRING_TAG$9 = wellKnownSymbol$H('toStringTag'); var $Error$1 = Error; var push$o = [].push; @@ -2554,7 +2564,7 @@ var $AggregateError$1 = function AggregateError(errors, message /* , options */) var isInstance = isPrototypeOf$9(AggregateErrorPrototype, this); var that; if (setPrototypeOf$8) { - that = setPrototypeOf$8($Error$1(), isInstance ? getPrototypeOf$h(this) : AggregateErrorPrototype); + that = setPrototypeOf$8(new $Error$1(), isInstance ? getPrototypeOf$h(this) : AggregateErrorPrototype); } else { that = isInstance ? this : create$h(AggregateErrorPrototype); createNonEnumerableProperty$e(that, TO_STRING_TAG$9, 'Error'); @@ -2579,11 +2589,11 @@ var AggregateErrorPrototype = $AggregateError$1.prototype = create$h($Error$1.pr // `AggregateError` constructor // https://tc39.es/ecma262/#sec-aggregate-error-constructor -$$5j({ global: true, constructor: true, arity: 2 }, { +$$5k({ global: true, constructor: true, arity: 2 }, { AggregateError: $AggregateError$1 }); -var $$5i = _export; +var $$5j = _export; var getBuiltIn$C = getBuiltIn$M; var apply$b = functionApply$1; var fails$1e = fails$1u; @@ -2599,18 +2609,18 @@ var FORCED$C = !fails$1e(function () { }); // https://tc39.es/ecma262/#sec-aggregate-error -$$5i({ global: true, constructor: true, arity: 2, forced: FORCED$C }, { +$$5j({ global: true, constructor: true, arity: 2, forced: FORCED$C }, { AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { // eslint-disable-next-line no-unused-vars -- required for functions `.length` return function AggregateError(errors, message) { return apply$b(init, this, arguments); }; }, FORCED$C, true) }); -var wellKnownSymbol$H = wellKnownSymbol$T; +var wellKnownSymbol$G = wellKnownSymbol$S; var create$g = objectCreate$1; var defineProperty$c = objectDefineProperty.f; -var UNSCOPABLES = wellKnownSymbol$H('unscopables'); +var UNSCOPABLES = wellKnownSymbol$G('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] @@ -2627,7 +2637,7 @@ var addToUnscopables$n = function (key) { ArrayPrototype[UNSCOPABLES][key] = true; }; -var $$5h = _export; +var $$5i = _export; var toObject$y = toObject$D; var lengthOfArrayLike$x = lengthOfArrayLike$C; var toIntegerOrInfinity$m = toIntegerOrInfinity$p; @@ -2635,7 +2645,7 @@ var addToUnscopables$m = addToUnscopables$n; // `Array.prototype.at` method // https://tc39.es/ecma262/#sec-array.prototype.at -$$5h({ target: 'Array', proto: true }, { +$$5i({ target: 'Array', proto: true }, { at: function at(index) { var O = toObject$y(this); var len = lengthOfArrayLike$x(O); @@ -2656,10 +2666,10 @@ var doesNotExceedSafeInteger$7 = function (it) { }; var fails$1d = fails$1u; -var wellKnownSymbol$G = wellKnownSymbol$T; +var wellKnownSymbol$F = wellKnownSymbol$S; var V8_VERSION$2 = engineV8Version; -var SPECIES$5 = wellKnownSymbol$G('species'); +var SPECIES$5 = wellKnownSymbol$F('species'); var arrayMethodHasSpeciesSupport$5 = function (METHOD_NAME) { // We can't use this feature detection in V8 since it causes @@ -2675,7 +2685,7 @@ var arrayMethodHasSpeciesSupport$5 = function (METHOD_NAME) { }); }; -var $$5g = _export; +var $$5h = _export; var fails$1c = fails$1u; var isArray$8 = isArray$b; var isObject$B = isObject$K; @@ -2685,10 +2695,10 @@ var doesNotExceedSafeInteger$6 = doesNotExceedSafeInteger$7; var createProperty$9 = createProperty$b; var arraySpeciesCreate$3 = arraySpeciesCreate$5; var arrayMethodHasSpeciesSupport$4 = arrayMethodHasSpeciesSupport$5; -var wellKnownSymbol$F = wellKnownSymbol$T; +var wellKnownSymbol$E = wellKnownSymbol$S; var V8_VERSION$1 = engineV8Version; -var IS_CONCAT_SPREADABLE = wellKnownSymbol$F('isConcatSpreadable'); +var IS_CONCAT_SPREADABLE = wellKnownSymbol$E('isConcatSpreadable'); // We can't use this feature detection in V8 since it causes // deoptimization and serious performance degradation @@ -2710,7 +2720,7 @@ var FORCED$B = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$4( // `Array.prototype.concat` method // https://tc39.es/ecma262/#sec-array.prototype.concat // with adding support of @@isConcatSpreadable and @@species -$$5g({ target: 'Array', proto: true, arity: 1, forced: FORCED$B }, { +$$5h({ target: 'Array', proto: true, arity: 1, forced: FORCED$B }, { // eslint-disable-next-line no-unused-vars -- required for `.length` concat: function concat(arg) { var O = toObject$x(this); @@ -2738,7 +2748,7 @@ var tryToString$2 = tryToString$7; var $TypeError$y = TypeError; var deletePropertyOrThrow$4 = function (O, P) { - if (!delete O[P]) throw $TypeError$y('Cannot delete property ' + tryToString$2(P) + ' of ' + tryToString$2(O)); + if (!delete O[P]) throw new $TypeError$y('Cannot delete property ' + tryToString$2(P) + ' of ' + tryToString$2(O)); }; var toObject$w = toObject$D; @@ -2772,13 +2782,13 @@ var arrayCopyWithin = [].copyWithin || function copyWithin(target /* = 0 */, sta } return O; }; -var $$5f = _export; +var $$5g = _export; var copyWithin = arrayCopyWithin; var addToUnscopables$l = addToUnscopables$n; // `Array.prototype.copyWithin` method // https://tc39.es/ecma262/#sec-array.prototype.copywithin -$$5f({ target: 'Array', proto: true }, { +$$5g({ target: 'Array', proto: true }, { copyWithin: copyWithin }); @@ -2795,7 +2805,7 @@ var arrayMethodIsStrict$b = function (METHOD_NAME, argument) { }); }; -var $$5e = _export; +var $$5f = _export; var $every$2 = arrayIteration.every; var arrayMethodIsStrict$a = arrayMethodIsStrict$b; @@ -2803,7 +2813,7 @@ var STRICT_METHOD$4 = arrayMethodIsStrict$a('every'); // `Array.prototype.every` method // https://tc39.es/ecma262/#sec-array.prototype.every -$$5e({ target: 'Array', proto: true, forced: !STRICT_METHOD$4 }, { +$$5f({ target: 'Array', proto: true, forced: !STRICT_METHOD$4 }, { every: function every(callbackfn /* , thisArg */) { return $every$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -2826,20 +2836,20 @@ var arrayFill$1 = function fill(value /* , start = 0, end = @length */) { return O; }; -var $$5d = _export; +var $$5e = _export; var fill$1 = arrayFill$1; var addToUnscopables$k = addToUnscopables$n; // `Array.prototype.fill` method // https://tc39.es/ecma262/#sec-array.prototype.fill -$$5d({ target: 'Array', proto: true }, { +$$5e({ target: 'Array', proto: true }, { fill: fill$1 }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables$k('fill'); -var $$5c = _export; +var $$5d = _export; var $filter$1 = arrayIteration.filter; var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$5; @@ -2848,13 +2858,13 @@ var HAS_SPECIES_SUPPORT$3 = arrayMethodHasSpeciesSupport$3('filter'); // `Array.prototype.filter` method // https://tc39.es/ecma262/#sec-array.prototype.filter // with adding support of @@species -$$5c({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$3 }, { +$$5d({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$3 }, { filter: function filter(callbackfn /* , thisArg */) { return $filter$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); -var $$5b = _export; +var $$5c = _export; var $find$2 = arrayIteration.find; var addToUnscopables$j = addToUnscopables$n; @@ -2867,7 +2877,7 @@ if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES$1 = false; }); // `Array.prototype.find` method // https://tc39.es/ecma262/#sec-array.prototype.find -$$5b({ target: 'Array', proto: true, forced: SKIPS_HOLES$1 }, { +$$5c({ target: 'Array', proto: true, forced: SKIPS_HOLES$1 }, { find: function find(callbackfn /* , that = undefined */) { return $find$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -2876,7 +2886,7 @@ $$5b({ target: 'Array', proto: true, forced: SKIPS_HOLES$1 }, { // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables$j(FIND); -var $$5a = _export; +var $$5b = _export; var $findIndex$1 = arrayIteration.findIndex; var addToUnscopables$i = addToUnscopables$n; @@ -2889,7 +2899,7 @@ if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }) // `Array.prototype.findIndex` method // https://tc39.es/ecma262/#sec-array.prototype.findindex -$$5a({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { +$$5b({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { findIndex: function findIndex(callbackfn /* , that = undefined */) { return $findIndex$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -2933,13 +2943,13 @@ var arrayIterationFromLast = { findLastIndex: createMethod$6(1) }; -var $$59 = _export; +var $$5a = _export; var $findLast$1 = arrayIterationFromLast.findLast; var addToUnscopables$h = addToUnscopables$n; // `Array.prototype.findLast` method // https://tc39.es/ecma262/#sec-array.prototype.findlast -$$59({ target: 'Array', proto: true }, { +$$5a({ target: 'Array', proto: true }, { findLast: function findLast(callbackfn /* , that = undefined */) { return $findLast$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -2947,13 +2957,13 @@ $$59({ target: 'Array', proto: true }, { addToUnscopables$h('findLast'); -var $$58 = _export; +var $$59 = _export; var $findLastIndex$1 = arrayIterationFromLast.findLastIndex; var addToUnscopables$g = addToUnscopables$n; // `Array.prototype.findLastIndex` method // https://tc39.es/ecma262/#sec-array.prototype.findlastindex -$$58({ target: 'Array', proto: true }, { +$$59({ target: 'Array', proto: true }, { findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { return $findLastIndex$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -2995,7 +3005,7 @@ var flattenIntoArray$2 = function (target, original, source, sourceLen, start, d var flattenIntoArray_1 = flattenIntoArray$2; -var $$57 = _export; +var $$58 = _export; var flattenIntoArray$1 = flattenIntoArray_1; var toObject$t = toObject$D; var lengthOfArrayLike$r = lengthOfArrayLike$C; @@ -3004,7 +3014,7 @@ var arraySpeciesCreate$2 = arraySpeciesCreate$5; // `Array.prototype.flat` method // https://tc39.es/ecma262/#sec-array.prototype.flat -$$57({ target: 'Array', proto: true }, { +$$58({ target: 'Array', proto: true }, { flat: function flat(/* depthArg = 1 */) { var depthArg = arguments.length ? arguments[0] : undefined; var O = toObject$t(this); @@ -3015,7 +3025,7 @@ $$57({ target: 'Array', proto: true }, { } }); -var $$56 = _export; +var $$57 = _export; var flattenIntoArray = flattenIntoArray_1; var aCallable$I = aCallable$N; var toObject$s = toObject$D; @@ -3024,7 +3034,7 @@ var arraySpeciesCreate$1 = arraySpeciesCreate$5; // `Array.prototype.flatMap` method // https://tc39.es/ecma262/#sec-array.prototype.flatmap -$$56({ target: 'Array', proto: true }, { +$$57({ target: 'Array', proto: true }, { flatMap: function flatMap(callbackfn /* , thisArg */) { var O = toObject$s(this); var sourceLen = lengthOfArrayLike$q(O); @@ -3048,13 +3058,13 @@ var arrayForEach = !STRICT_METHOD$3 ? function forEach(callbackfn /* , thisArg * // eslint-disable-next-line es/no-array-prototype-foreach -- safe } : [].forEach; -var $$55 = _export; +var $$56 = _export; var forEach$6 = arrayForEach; // `Array.prototype.forEach` method // https://tc39.es/ecma262/#sec-array.prototype.foreach // eslint-disable-next-line es/no-array-prototype-foreach -- safe -$$55({ target: 'Array', proto: true, forced: [].forEach !== forEach$6 }, { +$$56({ target: 'Array', proto: true, forced: [].forEach !== forEach$6 }, { forEach: forEach$6 }); @@ -3116,9 +3126,9 @@ var arrayFrom$1 = function from(arrayLike /* , mapfn = undefined, thisArg = unde return result; }; -var wellKnownSymbol$E = wellKnownSymbol$T; +var wellKnownSymbol$D = wellKnownSymbol$S; -var ITERATOR$9 = wellKnownSymbol$E('iterator'); +var ITERATOR$9 = wellKnownSymbol$D('iterator'); var SAFE_CLOSING = false; try { @@ -3157,7 +3167,7 @@ var checkCorrectnessOfIteration$4 = function (exec, SKIP_CLOSING) { return ITERATION_SUPPORT; }; -var $$54 = _export; +var $$55 = _export; var from$4 = arrayFrom$1; var checkCorrectnessOfIteration$3 = checkCorrectnessOfIteration$4; @@ -3168,11 +3178,11 @@ var INCORRECT_ITERATION = !checkCorrectnessOfIteration$3(function (iterable) { // `Array.from` method // https://tc39.es/ecma262/#sec-array.from -$$54({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { +$$55({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { from: from$4 }); -var $$53 = _export; +var $$54 = _export; var $includes$1 = arrayIncludes.includes; var fails$1a = fails$1u; var addToUnscopables$f = addToUnscopables$n; @@ -3185,7 +3195,7 @@ var BROKEN_ON_SPARSE = fails$1a(function () { // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes -$$53({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { +$$54({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { includes: function includes(el /* , fromIndex = 0 */) { return $includes$1(this, el, arguments.length > 1 ? arguments[1] : undefined); } @@ -3195,19 +3205,19 @@ $$53({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { addToUnscopables$f('includes'); /* eslint-disable es/no-array-prototype-indexof -- required for testing */ -var $$52 = _export; -var uncurryThis$1z = functionUncurryThisClause; +var $$53 = _export; +var uncurryThis$1A = functionUncurryThisClause; var $indexOf$1 = arrayIncludes.indexOf; var arrayMethodIsStrict$8 = arrayMethodIsStrict$b; -var nativeIndexOf = uncurryThis$1z([].indexOf); +var nativeIndexOf = uncurryThis$1A([].indexOf); var NEGATIVE_ZERO$1 = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; var FORCED$A = NEGATIVE_ZERO$1 || !arrayMethodIsStrict$8('indexOf'); // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof -$$52({ target: 'Array', proto: true, forced: FORCED$A }, { +$$53({ target: 'Array', proto: true, forced: FORCED$A }, { indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { var fromIndex = arguments.length > 1 ? arguments[1] : undefined; return NEGATIVE_ZERO$1 @@ -3217,23 +3227,23 @@ $$52({ target: 'Array', proto: true, forced: FORCED$A }, { } }); -var $$51 = _export; +var $$52 = _export; var isArray$6 = isArray$b; // `Array.isArray` method // https://tc39.es/ecma262/#sec-array.isarray -$$51({ target: 'Array', stat: true }, { +$$52({ target: 'Array', stat: true }, { isArray: isArray$6 }); var fails$19 = fails$1u; -var isCallable$r = isCallable$K; +var isCallable$q = isCallable$J; var isObject$A = isObject$K; var getPrototypeOf$g = objectGetPrototypeOf$2; var defineBuiltIn$p = defineBuiltIn$u; -var wellKnownSymbol$D = wellKnownSymbol$T; +var wellKnownSymbol$C = wellKnownSymbol$S; -var ITERATOR$8 = wellKnownSymbol$D('iterator'); +var ITERATOR$8 = wellKnownSymbol$C('iterator'); var BUGGY_SAFARI_ITERATORS$1 = false; // `%IteratorPrototype%` object @@ -3261,7 +3271,7 @@ if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$6 = {}; // `%IteratorPrototype%[@@iterator]()` method // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator -if (!isCallable$r(IteratorPrototype$6[ITERATOR$8])) { +if (!isCallable$q(IteratorPrototype$6[ITERATOR$8])) { defineBuiltIn$p(IteratorPrototype$6, ITERATOR$8, function () { return this; }); @@ -3288,17 +3298,17 @@ var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUME return IteratorConstructor; }; -var $$50 = _export; +var $$51 = _export; var call$16 = functionCall; var FunctionName$1 = functionName; -var isCallable$q = isCallable$K; +var isCallable$p = isCallable$J; var createIteratorConstructor$6 = iteratorCreateConstructor; var getPrototypeOf$f = objectGetPrototypeOf$2; var setPrototypeOf$7 = objectSetPrototypeOf$1; var setToStringTag$9 = setToStringTag$d; var createNonEnumerableProperty$d = createNonEnumerableProperty$k; var defineBuiltIn$o = defineBuiltIn$u; -var wellKnownSymbol$C = wellKnownSymbol$T; +var wellKnownSymbol$B = wellKnownSymbol$S; var Iterators$2 = iterators; var IteratorsCore = iteratorsCore; @@ -3306,7 +3316,7 @@ var PROPER_FUNCTION_NAME$3 = FunctionName$1.PROPER; var CONFIGURABLE_FUNCTION_NAME$1 = FunctionName$1.CONFIGURABLE; var IteratorPrototype$4 = IteratorsCore.IteratorPrototype; var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; -var ITERATOR$7 = wellKnownSymbol$C('iterator'); +var ITERATOR$7 = wellKnownSymbol$B('iterator'); var KEYS = 'keys'; var VALUES = 'values'; var ENTRIES = 'entries'; @@ -3346,7 +3356,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL if (getPrototypeOf$f(CurrentIteratorPrototype) !== IteratorPrototype$4) { if (setPrototypeOf$7) { setPrototypeOf$7(CurrentIteratorPrototype, IteratorPrototype$4); - } else if (!isCallable$q(CurrentIteratorPrototype[ITERATOR$7])) { + } else if (!isCallable$p(CurrentIteratorPrototype[ITERATOR$7])) { defineBuiltIn$o(CurrentIteratorPrototype, ITERATOR$7, returnThis); } } @@ -3376,7 +3386,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { defineBuiltIn$o(IterablePrototype, KEY, methods[KEY]); } - } else $$50({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } else $$51({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); } // define iterator @@ -3456,20 +3466,20 @@ if (DESCRIPTORS$G && values.name !== 'values') try { defineProperty$b(values, 'name', { value: 'values' }); } catch (error) { /* empty */ } -var $$4$ = _export; -var uncurryThis$1y = functionUncurryThis; +var $$50 = _export; +var uncurryThis$1z = functionUncurryThis; var IndexedObject$4 = indexedObject; var toIndexedObject$c = toIndexedObject$k; var arrayMethodIsStrict$7 = arrayMethodIsStrict$b; -var nativeJoin = uncurryThis$1y([].join); +var nativeJoin = uncurryThis$1z([].join); var ES3_STRINGS = IndexedObject$4 !== Object; var FORCED$z = ES3_STRINGS || !arrayMethodIsStrict$7('join', ','); // `Array.prototype.join` method // https://tc39.es/ecma262/#sec-array.prototype.join -$$4$({ target: 'Array', proto: true, forced: FORCED$z }, { +$$50({ target: 'Array', proto: true, forced: FORCED$z }, { join: function join(separator) { return nativeJoin(toIndexedObject$c(this), separator === undefined ? ',' : separator); } @@ -3502,17 +3512,17 @@ var arrayLastIndexOf = FORCED$y ? function lastIndexOf(searchElement /* , fromIn return -1; } : $lastIndexOf$1; -var $$4_ = _export; +var $$4$ = _export; var lastIndexOf = arrayLastIndexOf; // `Array.prototype.lastIndexOf` method // https://tc39.es/ecma262/#sec-array.prototype.lastindexof // eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing -$$4_({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { +$$4$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { lastIndexOf: lastIndexOf }); -var $$4Z = _export; +var $$4_ = _export; var $map$1 = arrayIteration.map; var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$5; @@ -3521,13 +3531,13 @@ var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$2('map'); // `Array.prototype.map` method // https://tc39.es/ecma262/#sec-array.prototype.map // with adding support of @@species -$$4Z({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, { +$$4_({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, { map: function map(callbackfn /* , thisArg */) { return $map$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); -var $$4Y = _export; +var $$4Z = _export; var fails$18 = fails$1u; var isConstructor$7 = isConstructor$a; var createProperty$7 = createProperty$b; @@ -3543,7 +3553,7 @@ var ISNT_GENERIC = fails$18(function () { // `Array.of` method // https://tc39.es/ecma262/#sec-array.of // WebKit Array.of isn't generic -$$4Y({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { +$$4Z({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { of: function of(/* ...args */) { var index = 0; var argumentsLength = arguments.length; @@ -3575,13 +3585,13 @@ var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS$F && !function () { var arraySetLength = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { if (isArray$5(O) && !getOwnPropertyDescriptor$c(O, 'length').writable) { - throw $TypeError$x('Cannot set read only .length'); + throw new $TypeError$x('Cannot set read only .length'); } return O.length = length; } : function (O, length) { return O.length = length; }; -var $$4X = _export; +var $$4Y = _export; var toObject$q = toObject$D; var lengthOfArrayLike$n = lengthOfArrayLike$C; var setArrayLength$2 = arraySetLength; @@ -3607,7 +3617,7 @@ var FORCED$x = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength$1(); // `Array.prototype.push` method // https://tc39.es/ecma262/#sec-array.prototype.push -$$4X({ target: 'Array', proto: true, arity: 1, forced: FORCED$x }, { +$$4Y({ target: 'Array', proto: true, arity: 1, forced: FORCED$x }, { // eslint-disable-next-line no-unused-vars -- required for `.length` push: function push(item) { var O = toObject$q(this); @@ -3647,7 +3657,7 @@ var createMethod$5 = function (IS_RIGHT) { } index += i; if (IS_RIGHT ? index < 0 : length <= index) { - throw $TypeError$w('Reduce of empty array with no initial value'); + throw new $TypeError$w('Reduce of empty array with no initial value'); } } for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { @@ -3671,7 +3681,7 @@ var classof$j = classofRaw$2; var engineIsNode = classof$j(global$T.process) === 'process'; -var $$4W = _export; +var $$4X = _export; var $reduce$1 = arrayReduce.left; var arrayMethodIsStrict$5 = arrayMethodIsStrict$b; var CHROME_VERSION$1 = engineV8Version; @@ -3684,14 +3694,14 @@ var FORCED$w = CHROME_BUG$1 || !arrayMethodIsStrict$5('reduce'); // `Array.prototype.reduce` method // https://tc39.es/ecma262/#sec-array.prototype.reduce -$$4W({ target: 'Array', proto: true, forced: FORCED$w }, { +$$4X({ target: 'Array', proto: true, forced: FORCED$w }, { reduce: function reduce(callbackfn /* , initialValue */) { var length = arguments.length; return $reduce$1(this, callbackfn, length, length > 1 ? arguments[1] : undefined); } }); -var $$4V = _export; +var $$4W = _export; var $reduceRight$1 = arrayReduce.right; var arrayMethodIsStrict$4 = arrayMethodIsStrict$b; var CHROME_VERSION = engineV8Version; @@ -3704,24 +3714,24 @@ var FORCED$v = CHROME_BUG || !arrayMethodIsStrict$4('reduceRight'); // `Array.prototype.reduceRight` method // https://tc39.es/ecma262/#sec-array.prototype.reduceright -$$4V({ target: 'Array', proto: true, forced: FORCED$v }, { +$$4W({ target: 'Array', proto: true, forced: FORCED$v }, { reduceRight: function reduceRight(callbackfn /* , initialValue */) { return $reduceRight$1(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); } }); -var $$4U = _export; -var uncurryThis$1x = functionUncurryThis; +var $$4V = _export; +var uncurryThis$1y = functionUncurryThis; var isArray$4 = isArray$b; -var nativeReverse = uncurryThis$1x([].reverse); +var nativeReverse = uncurryThis$1y([].reverse); var test$1 = [1, 2]; // `Array.prototype.reverse` method // https://tc39.es/ecma262/#sec-array.prototype.reverse // fix for Safari 12.0 bug // https://bugs.webkit.org/show_bug.cgi?id=188794 -$$4U({ target: 'Array', proto: true, forced: String(test$1) === String(test$1.reverse()) }, { +$$4V({ target: 'Array', proto: true, forced: String(test$1) === String(test$1.reverse()) }, { reverse: function reverse() { // eslint-disable-next-line no-self-assign -- dirty hack if (isArray$4(this)) this.length = this.length; @@ -3729,7 +3739,7 @@ $$4U({ target: 'Array', proto: true, forced: String(test$1) === String(test$1.re } }); -var $$4T = _export; +var $$4U = _export; var isArray$3 = isArray$b; var isConstructor$6 = isConstructor$a; var isObject$z = isObject$K; @@ -3737,20 +3747,20 @@ var toAbsoluteIndex$6 = toAbsoluteIndex$b; var lengthOfArrayLike$l = lengthOfArrayLike$C; var toIndexedObject$a = toIndexedObject$k; var createProperty$6 = createProperty$b; -var wellKnownSymbol$B = wellKnownSymbol$T; +var wellKnownSymbol$A = wellKnownSymbol$S; var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$5; var nativeSlice = arraySlice$b; var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('slice'); -var SPECIES$4 = wellKnownSymbol$B('species'); +var SPECIES$4 = wellKnownSymbol$A('species'); var $Array$8 = Array; var max$8 = Math.max; // `Array.prototype.slice` method // https://tc39.es/ecma262/#sec-array.prototype.slice // fallback for not array-like ES3 strings and DOM objects -$$4T({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { +$$4U({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { slice: function slice(start, end) { var O = toIndexedObject$a(this); var length = lengthOfArrayLike$l(O); @@ -3778,7 +3788,7 @@ $$4T({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { } }); -var $$4S = _export; +var $$4T = _export; var $some$2 = arrayIteration.some; var arrayMethodIsStrict$3 = arrayMethodIsStrict$b; @@ -3786,7 +3796,7 @@ var STRICT_METHOD$1 = arrayMethodIsStrict$3('some'); // `Array.prototype.some` method // https://tc39.es/ecma262/#sec-array.prototype.some -$$4S({ target: 'Array', proto: true, forced: !STRICT_METHOD$1 }, { +$$4T({ target: 'Array', proto: true, forced: !STRICT_METHOD$1 }, { some: function some(callbackfn /* , thisArg */) { return $some$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -3853,13 +3863,13 @@ var webkit = userAgent$4.match(/AppleWebKit\/(\d+)\./); var engineWebkitVersion = !!webkit && +webkit[1]; -var $$4R = _export; -var uncurryThis$1w = functionUncurryThis; +var $$4S = _export; +var uncurryThis$1x = functionUncurryThis; var aCallable$G = aCallable$N; var toObject$o = toObject$D; var lengthOfArrayLike$k = lengthOfArrayLike$C; var deletePropertyOrThrow$2 = deletePropertyOrThrow$4; -var toString$D = toString$I; +var toString$E = toString$J; var fails$16 = fails$1u; var internalSort$1 = arraySort$1; var arrayMethodIsStrict$2 = arrayMethodIsStrict$b; @@ -3869,8 +3879,8 @@ var V8$2 = engineV8Version; var WEBKIT$2 = engineWebkitVersion; var test = []; -var nativeSort$1 = uncurryThis$1w(test.sort); -var push$n = uncurryThis$1w(test.push); +var nativeSort$1 = uncurryThis$1x(test.sort); +var push$n = uncurryThis$1x(test.push); // IE8- var FAILS_ON_UNDEFINED = fails$16(function () { @@ -3925,13 +3935,13 @@ var getSortCompare$1 = function (comparefn) { if (y === undefined) return -1; if (x === undefined) return 1; if (comparefn !== undefined) return +comparefn(x, y) || 0; - return toString$D(x) > toString$D(y) ? 1 : -1; + return toString$E(x) > toString$E(y) ? 1 : -1; }; }; // `Array.prototype.sort` method // https://tc39.es/ecma262/#sec-array.prototype.sort -$$4R({ target: 'Array', proto: true, forced: FORCED$u }, { +$$4S({ target: 'Array', proto: true, forced: FORCED$u }, { sort: function sort(comparefn) { if (comparefn !== undefined) aCallable$G(comparefn); @@ -3961,10 +3971,10 @@ $$4R({ target: 'Array', proto: true, forced: FORCED$u }, { var getBuiltIn$B = getBuiltIn$M; var defineBuiltInAccessor$l = defineBuiltInAccessor$o; -var wellKnownSymbol$A = wellKnownSymbol$T; +var wellKnownSymbol$z = wellKnownSymbol$S; var DESCRIPTORS$E = descriptors; -var SPECIES$3 = wellKnownSymbol$A('species'); +var SPECIES$3 = wellKnownSymbol$z('species'); var setSpecies$7 = function (CONSTRUCTOR_NAME) { var Constructor = getBuiltIn$B(CONSTRUCTOR_NAME); @@ -3983,7 +3993,7 @@ var setSpecies$6 = setSpecies$7; // https://tc39.es/ecma262/#sec-get-array-@@species setSpecies$6('Array'); -var $$4Q = _export; +var $$4R = _export; var toObject$n = toObject$D; var toAbsoluteIndex$5 = toAbsoluteIndex$b; var toIntegerOrInfinity$j = toIntegerOrInfinity$p; @@ -4003,7 +4013,7 @@ var min$a = Math.min; // `Array.prototype.splice` method // https://tc39.es/ecma262/#sec-array.prototype.splice // with adding support of @@species -$$4Q({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { +$$4R({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { splice: function splice(start, deleteCount /* , ...items */) { var O = toObject$n(this); var len = lengthOfArrayLike$j(O); @@ -4062,7 +4072,7 @@ var arrayToReversed$2 = function (O, C) { return A; }; -var $$4P = _export; +var $$4Q = _export; var arrayToReversed$1 = arrayToReversed$2; var toIndexedObject$9 = toIndexedObject$k; var addToUnscopables$d = addToUnscopables$n; @@ -4071,7 +4081,7 @@ var $Array$7 = Array; // `Array.prototype.toReversed` method // https://tc39.es/ecma262/#sec-array.prototype.toreversed -$$4P({ target: 'Array', proto: true }, { +$$4Q({ target: 'Array', proto: true }, { toReversed: function toReversed() { return arrayToReversed$1(toIndexedObject$9(this), $Array$7); } @@ -4095,8 +4105,8 @@ var entryVirtual = function (CONSTRUCTOR) { return global$S[CONSTRUCTOR].prototype; }; -var $$4O = _export; -var uncurryThis$1v = functionUncurryThis; +var $$4P = _export; +var uncurryThis$1w = functionUncurryThis; var aCallable$F = aCallable$N; var toIndexedObject$8 = toIndexedObject$k; var arrayFromConstructorAndList$5 = arrayFromConstructorAndList$6; @@ -4104,11 +4114,11 @@ var getVirtual$1 = entryVirtual; var addToUnscopables$c = addToUnscopables$n; var $Array$6 = Array; -var sort$1 = uncurryThis$1v(getVirtual$1('Array').sort); +var sort$1 = uncurryThis$1w(getVirtual$1('Array').sort); // `Array.prototype.toSorted` method // https://tc39.es/ecma262/#sec-array.prototype.tosorted -$$4O({ target: 'Array', proto: true }, { +$$4P({ target: 'Array', proto: true }, { toSorted: function toSorted(compareFn) { if (compareFn !== undefined) aCallable$F(compareFn); var O = toIndexedObject$8(this); @@ -4119,7 +4129,7 @@ $$4O({ target: 'Array', proto: true }, { addToUnscopables$c('toSorted'); -var $$4N = _export; +var $$4O = _export; var addToUnscopables$b = addToUnscopables$n; var doesNotExceedSafeInteger$2 = doesNotExceedSafeInteger$7; var lengthOfArrayLike$g = lengthOfArrayLike$C; @@ -4133,7 +4143,7 @@ var min$9 = Math.min; // `Array.prototype.toSpliced` method // https://tc39.es/ecma262/#sec-array.prototype.tospliced -$$4N({ target: 'Array', proto: true }, { +$$4O({ target: 'Array', proto: true }, { toSpliced: function toSpliced(start, deleteCount /* , ...items */) { var O = toIndexedObject$7(this); var len = lengthOfArrayLike$g(O); @@ -4177,7 +4187,7 @@ var addToUnscopables$9 = addToUnscopables$n; // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables$9('flatMap'); -var $$4M = _export; +var $$4N = _export; var toObject$m = toObject$D; var lengthOfArrayLike$f = lengthOfArrayLike$C; var setArrayLength = arraySetLength; @@ -4201,7 +4211,7 @@ var FORCED$t = INCORRECT_RESULT || !properErrorOnNonWritableLength(); // `Array.prototype.unshift` method // https://tc39.es/ecma262/#sec-array.prototype.unshift -$$4M({ target: 'Array', proto: true, arity: 1, forced: FORCED$t }, { +$$4N({ target: 'Array', proto: true, arity: 1, forced: FORCED$t }, { // eslint-disable-next-line no-unused-vars -- required for `.length` unshift: function unshift(item) { var O = toObject$m(this); @@ -4233,14 +4243,14 @@ var arrayWith$2 = function (O, C, index, value) { var len = lengthOfArrayLike$e(O); var relativeIndex = toIntegerOrInfinity$h(index); var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; - if (actualIndex >= len || actualIndex < 0) throw $RangeError$d('Incorrect index'); + if (actualIndex >= len || actualIndex < 0) throw new $RangeError$d('Incorrect index'); var A = new C(len); var k = 0; for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; return A; }; -var $$4L = _export; +var $$4M = _export; var arrayWith$1 = arrayWith$2; var toIndexedObject$6 = toIndexedObject$k; @@ -4248,7 +4258,7 @@ var $Array$4 = Array; // `Array.prototype.with` method // https://tc39.es/ecma262/#sec-array.prototype.with -$$4L({ target: 'Array', proto: true }, { +$$4M({ target: 'Array', proto: true }, { 'with': function (index, value) { return arrayWith$1(toIndexedObject$6(this), $Array$4, index, value); } @@ -4270,7 +4280,7 @@ var $TypeError$v = TypeError; var anInstance$f = function (it, Prototype) { if (isPrototypeOf$8(Prototype, it)) return it; - throw $TypeError$v('Incorrect invocation'); + throw new $TypeError$v('Incorrect invocation'); }; var toIntegerOrInfinity$g = toIntegerOrInfinity$p; @@ -4284,7 +4294,7 @@ var toIndex$5 = function (it) { if (it === undefined) return 0; var number = toIntegerOrInfinity$g(it); var length = toLength$b(number); - if (number !== length) throw $RangeError$c('Wrong length or index'); + if (number !== length) throw new $RangeError$c('Wrong length or index'); return length; }; @@ -4297,35 +4307,60 @@ var mathSign = Math.sign || function sign(x) { return n === 0 || n !== n ? n : n < 0 ? -1 : 1; }; -// IEEE754 conversions based on https://github.com/feross/ieee754 -var sign$3 = mathSign; -var trunc$1 = mathTrunc; +var sign$2 = mathSign; -var $Array$3 = Array; var abs$8 = Math.abs; -var pow$5 = Math.pow; + +var EPSILON = 2.220446049250313e-16; // Number.EPSILON +var INVERSE_EPSILON = 1 / EPSILON; + +var roundTiesToEven = function (n) { + return n + INVERSE_EPSILON - INVERSE_EPSILON; +}; + +var mathFloatRound = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) { + var n = +x; + var absolute = abs$8(n); + var s = sign$2(n); + if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON; + var a = (1 + FLOAT_EPSILON / EPSILON) * absolute; + var result = a - (a - absolute); + // eslint-disable-next-line no-self-compare -- NaN check + if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity; + return s * result; +}; + +var floatRound$1 = mathFloatRound; + +var FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23; +var FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104 +var FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126; + +// `Math.fround` method implementation +// https://tc39.es/ecma262/#sec-math.fround +// eslint-disable-next-line es/no-math-fround -- safe +var mathFround = Math.fround || function fround(x) { + return floatRound$1(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE); +}; + +// IEEE754 conversions based on https://github.com/feross/ieee754 +var $Array$3 = Array; +var abs$7 = Math.abs; +var pow$4 = Math.pow; var floor$8 = Math.floor; var log$8 = Math.log; var LN2$2 = Math.LN2; -var roundToEven = function (number) { - var truncated = trunc$1(number); - var delta = abs$8(number - truncated); - if (delta > 0.5 || delta === 0.5 && truncated % 2 !== 0) { - return truncated + sign$3(number); - } return truncated; -}; - var pack = function (number, mantissaLength, bytes) { var buffer = $Array$3(bytes); var exponentLength = bytes * 8 - mantissaLength - 1; var eMax = (1 << exponentLength) - 1; var eBias = eMax >> 1; - var rt = mantissaLength === 23 ? pow$5(2, -24) - pow$5(2, -77) : 0; - var s = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var rt = mantissaLength === 23 ? pow$4(2, -24) - pow$4(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; var index = 0; var exponent, mantissa, c; - number = abs$8(number); + number = abs$7(number); // eslint-disable-next-line no-self-compare -- NaN check if (number !== number || number === Infinity) { // eslint-disable-next-line no-self-compare -- NaN check @@ -4333,7 +4368,7 @@ var pack = function (number, mantissaLength, bytes) { exponent = eMax; } else { exponent = floor$8(log$8(number) / LN2$2); - c = pow$5(2, -exponent); + c = pow$4(2, -exponent); if (number * c < 1) { exponent--; c *= 2; @@ -4341,7 +4376,7 @@ var pack = function (number, mantissaLength, bytes) { if (exponent + eBias >= 1) { number += rt / c; } else { - number += rt * pow$5(2, 1 - eBias); + number += rt * pow$4(2, 1 - eBias); } if (number * c >= 2) { exponent++; @@ -4351,10 +4386,10 @@ var pack = function (number, mantissaLength, bytes) { mantissa = 0; exponent = eMax; } else if (exponent + eBias >= 1) { - mantissa = roundToEven((number * c - 1) * pow$5(2, mantissaLength)); + mantissa = (number * c - 1) * pow$4(2, mantissaLength); exponent += eBias; } else { - mantissa = roundToEven(number * pow$5(2, eBias - 1) * pow$5(2, mantissaLength)); + mantissa = number * pow$4(2, eBias - 1) * pow$4(2, mantissaLength); exponent = 0; } } @@ -4370,7 +4405,7 @@ var pack = function (number, mantissaLength, bytes) { exponent /= 256; exponentLength -= 8; } - buffer[--index] |= s * 128; + buffer[--index] |= sign * 128; return buffer; }; @@ -4381,10 +4416,10 @@ var unpack = function (buffer, mantissaLength) { var eBias = eMax >> 1; var nBits = exponentLength - 7; var index = bytes - 1; - var s = buffer[index--]; - var exponent = s & 127; + var sign = buffer[index--]; + var exponent = sign & 127; var mantissa; - s >>= 7; + sign >>= 7; while (nBits > 0) { exponent = exponent * 256 + buffer[index--]; nBits -= 8; @@ -4399,11 +4434,11 @@ var unpack = function (buffer, mantissaLength) { if (exponent === 0) { exponent = 1 - eBias; } else if (exponent === eMax) { - return mantissa ? NaN : s ? -Infinity : Infinity; + return mantissa ? NaN : sign ? -Infinity : Infinity; } else { - mantissa += pow$5(2, mantissaLength); + mantissa += pow$4(2, mantissaLength); exponent -= eBias; - } return (s ? -1 : 1) * mantissa * pow$5(2, exponent - mantissaLength); + } return (sign ? -1 : 1) * mantissa * pow$4(2, exponent - mantissaLength); }; var ieee754 = { @@ -4412,7 +4447,7 @@ var ieee754 = { }; var global$R = global$16; -var uncurryThis$1u = functionUncurryThis; +var uncurryThis$1v = functionUncurryThis; var DESCRIPTORS$D = descriptors; var NATIVE_ARRAY_BUFFER$2 = arrayBufferBasicDetection; var FunctionName = functionName; @@ -4424,7 +4459,8 @@ var anInstance$e = anInstance$f; var toIntegerOrInfinity$f = toIntegerOrInfinity$p; var toLength$a = toLength$d; var toIndex$4 = toIndex$5; -var IEEE754$1 = ieee754; +var fround$2 = mathFround; +var IEEE754 = ieee754; var getPrototypeOf$e = objectGetPrototypeOf$2; var setPrototypeOf$6 = objectSetPrototypeOf$1; var getOwnPropertyNames$5 = objectGetOwnPropertyNames.f; @@ -4444,18 +4480,18 @@ var getInternalArrayBufferState = InternalStateModule$k.getterFor(ARRAY_BUFFER$1 var getInternalDataViewState = InternalStateModule$k.getterFor(DATA_VIEW); var setInternalState$k = InternalStateModule$k.set; var NativeArrayBuffer$1 = global$R[ARRAY_BUFFER$1]; -var $ArrayBuffer = NativeArrayBuffer$1; -var ArrayBufferPrototype$3 = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; +var $ArrayBuffer$1 = NativeArrayBuffer$1; +var ArrayBufferPrototype$3 = $ArrayBuffer$1 && $ArrayBuffer$1[PROTOTYPE]; var $DataView = global$R[DATA_VIEW]; var DataViewPrototype$2 = $DataView && $DataView[PROTOTYPE]; var ObjectPrototype$3 = Object.prototype; var Array$3 = global$R.Array; var RangeError$4 = global$R.RangeError; -var fill = uncurryThis$1u(arrayFill); -var reverse = uncurryThis$1u([].reverse); +var fill = uncurryThis$1v(arrayFill); +var reverse = uncurryThis$1v([].reverse); -var packIEEE754$2 = IEEE754$1.pack; -var unpackIEEE754$2 = IEEE754$1.unpack; +var packIEEE754$1 = IEEE754.pack; +var unpackIEEE754$1 = IEEE754.unpack; var packInt8 = function (number) { return [number & 0xFF]; @@ -4474,11 +4510,11 @@ var unpackInt32 = function (buffer) { }; var packFloat32 = function (number) { - return packIEEE754$2(number, 23, 4); + return packIEEE754$1(fround$2(number), 23, 4); }; var packFloat64 = function (number) { - return packIEEE754$2(number, 52, 8); + return packIEEE754$1(number, 52, 8); }; var addGetter$2 = function (Constructor, key, getInternalState) { @@ -4494,7 +4530,7 @@ var get$5 = function (view, count, index, isLittleEndian) { var store = getInternalDataViewState(view); var intIndex = toIndex$4(index); var boolIsLittleEndian = !!isLittleEndian; - if (intIndex + count > store.byteLength) throw RangeError$4(WRONG_INDEX); + if (intIndex + count > store.byteLength) throw new RangeError$4(WRONG_INDEX); var bytes = store.bytes; var start = intIndex + store.byteOffset; var pack = arraySlice$8(bytes, start, start + count); @@ -4506,14 +4542,14 @@ var set$a = function (view, count, index, conversion, value, isLittleEndian) { var intIndex = toIndex$4(index); var pack = conversion(+value); var boolIsLittleEndian = !!isLittleEndian; - if (intIndex + count > store.byteLength) throw RangeError$4(WRONG_INDEX); + if (intIndex + count > store.byteLength) throw new RangeError$4(WRONG_INDEX); var bytes = store.bytes; var start = intIndex + store.byteOffset; for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1]; }; if (!NATIVE_ARRAY_BUFFER$2) { - $ArrayBuffer = function ArrayBuffer(length) { + $ArrayBuffer$1 = function ArrayBuffer(length) { anInstance$e(this, ArrayBufferPrototype$3); var byteLength = toIndex$4(length); setInternalState$k(this, { @@ -4527,7 +4563,7 @@ if (!NATIVE_ARRAY_BUFFER$2) { } }; - ArrayBufferPrototype$3 = $ArrayBuffer[PROTOTYPE]; + ArrayBufferPrototype$3 = $ArrayBuffer$1[PROTOTYPE]; $DataView = function DataView(buffer, byteOffset, byteLength) { anInstance$e(this, DataViewPrototype$2); @@ -4535,9 +4571,9 @@ if (!NATIVE_ARRAY_BUFFER$2) { var bufferState = getInternalArrayBufferState(buffer); var bufferLength = bufferState.byteLength; var offset = toIntegerOrInfinity$f(byteOffset); - if (offset < 0 || offset > bufferLength) throw RangeError$4('Wrong offset'); + if (offset < 0 || offset > bufferLength) throw new RangeError$4('Wrong offset'); byteLength = byteLength === undefined ? bufferLength - offset : toLength$a(byteLength); - if (offset + byteLength > bufferLength) throw RangeError$4(WRONG_LENGTH$1); + if (offset + byteLength > bufferLength) throw new RangeError$4(WRONG_LENGTH$1); setInternalState$k(this, { type: DATA_VIEW, buffer: buffer, @@ -4555,7 +4591,7 @@ if (!NATIVE_ARRAY_BUFFER$2) { DataViewPrototype$2 = $DataView[PROTOTYPE]; if (DESCRIPTORS$D) { - addGetter$2($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter$2($ArrayBuffer$1, 'byteLength', getInternalArrayBufferState); addGetter$2($DataView, 'buffer', getInternalDataViewState); addGetter$2($DataView, 'byteLength', getInternalDataViewState); addGetter$2($DataView, 'byteOffset', getInternalDataViewState); @@ -4583,10 +4619,10 @@ if (!NATIVE_ARRAY_BUFFER$2) { return unpackInt32(get$5(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0; }, getFloat32: function getFloat32(byteOffset /* , littleEndian */) { - return unpackIEEE754$2(get$5(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); + return unpackIEEE754$1(get$5(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); }, getFloat64: function getFloat64(byteOffset /* , littleEndian */) { - return unpackIEEE754$2(get$5(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); + return unpackIEEE754$1(get$5(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); }, setInt8: function setInt8(byteOffset, value) { set$a(this, 1, byteOffset, packInt8, value); @@ -4627,20 +4663,20 @@ if (!NATIVE_ARRAY_BUFFER$2) { return NativeArrayBuffer$1.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; })) { /* eslint-enable no-new -- required for testing */ - $ArrayBuffer = function ArrayBuffer(length) { + $ArrayBuffer$1 = function ArrayBuffer(length) { anInstance$e(this, ArrayBufferPrototype$3); return new NativeArrayBuffer$1(toIndex$4(length)); }; - $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype$3; + $ArrayBuffer$1[PROTOTYPE] = ArrayBufferPrototype$3; for (var keys$2 = getOwnPropertyNames$5(NativeArrayBuffer$1), j = 0, key$2; keys$2.length > j;) { - if (!((key$2 = keys$2[j++]) in $ArrayBuffer)) { - createNonEnumerableProperty$c($ArrayBuffer, key$2, NativeArrayBuffer$1[key$2]); + if (!((key$2 = keys$2[j++]) in $ArrayBuffer$1)) { + createNonEnumerableProperty$c($ArrayBuffer$1, key$2, NativeArrayBuffer$1[key$2]); } } - ArrayBufferPrototype$3.constructor = $ArrayBuffer; + ArrayBufferPrototype$3.constructor = $ArrayBuffer$1; } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { createNonEnumerableProperty$c(NativeArrayBuffer$1, 'name', ARRAY_BUFFER$1); } @@ -4651,8 +4687,8 @@ if (!NATIVE_ARRAY_BUFFER$2) { } // iOS Safari 7.x bug - var testView = new $DataView(new $ArrayBuffer(2)); - var $setInt8 = uncurryThis$1u(DataViewPrototype$2.setInt8); + var testView = new $DataView(new $ArrayBuffer$1(2)); + var $setInt8 = uncurryThis$1v(DataViewPrototype$2.setInt8); testView.setInt8(0, 2147483648); testView.setInt8(1, 2147483649); if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns$a(DataViewPrototype$2, { @@ -4665,15 +4701,15 @@ if (!NATIVE_ARRAY_BUFFER$2) { }, { unsafe: true }); } -setToStringTag$8($ArrayBuffer, ARRAY_BUFFER$1); +setToStringTag$8($ArrayBuffer$1, ARRAY_BUFFER$1); setToStringTag$8($DataView, DATA_VIEW); var arrayBuffer = { - ArrayBuffer: $ArrayBuffer, + ArrayBuffer: $ArrayBuffer$1, DataView: $DataView }; -var $$4K = _export; +var $$4L = _export; var global$Q = global$16; var arrayBufferModule = arrayBuffer; var setSpecies$5 = setSpecies$7; @@ -4684,7 +4720,7 @@ var NativeArrayBuffer = global$Q[ARRAY_BUFFER]; // `ArrayBuffer` constructor // https://tc39.es/ecma262/#sec-arraybuffer-constructor -$$4K({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer$5 }, { +$$4L({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer$5 }, { ArrayBuffer: ArrayBuffer$5 }); @@ -4693,7 +4729,7 @@ setSpecies$5(ARRAY_BUFFER); var NATIVE_ARRAY_BUFFER$1 = arrayBufferBasicDetection; var DESCRIPTORS$C = descriptors; var global$P = global$16; -var isCallable$p = isCallable$K; +var isCallable$o = isCallable$J; var isObject$y = isObject$K; var hasOwn$q = hasOwnProperty_1; var classof$i = classof$q; @@ -4704,7 +4740,7 @@ var defineBuiltInAccessor$j = defineBuiltInAccessor$o; var isPrototypeOf$7 = objectIsPrototypeOf; var getPrototypeOf$d = objectGetPrototypeOf$2; var setPrototypeOf$5 = objectSetPrototypeOf$1; -var wellKnownSymbol$z = wellKnownSymbol$T; +var wellKnownSymbol$y = wellKnownSymbol$S; var uid$3 = uid$7; var InternalStateModule$j = internalState; @@ -4719,7 +4755,7 @@ var TypedArrayPrototype$2 = Int8ArrayPrototype$1 && getPrototypeOf$d(Int8ArrayPr var ObjectPrototype$2 = Object.prototype; var TypeError$7 = global$P.TypeError; -var TO_STRING_TAG$8 = wellKnownSymbol$z('toStringTag'); +var TO_STRING_TAG$8 = wellKnownSymbol$y('toStringTag'); var TYPED_ARRAY_TAG$1 = uid$3('TYPED_ARRAY_TAG'); var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; // Fixing native typed arrays in Opera Presto crashes the browser, see #595 @@ -4768,12 +4804,12 @@ var isTypedArray$1 = function (it) { var aTypedArray$x = function (it) { if (isTypedArray$1(it)) return it; - throw TypeError$7('Target is not a typed array'); + throw new TypeError$7('Target is not a typed array'); }; var aTypedArrayConstructor$5 = function (C) { - if (isCallable$p(C) && (!setPrototypeOf$5 || isPrototypeOf$7(TypedArray$1, C))) return C; - throw TypeError$7(tryToString$1(C) + ' is not a typed array constructor'); + if (isCallable$o(C) && (!setPrototypeOf$5 || isPrototypeOf$7(TypedArray$1, C))) return C; + throw new TypeError$7(tryToString$1(C) + ' is not a typed array constructor'); }; var exportTypedArrayMethod$y = function (KEY, property, forced, options) { @@ -4834,10 +4870,10 @@ for (NAME$1 in BigIntArrayConstructorsList) { } // WebKit bug - typed arrays constructors prototype is Object.prototype -if (!NATIVE_ARRAY_BUFFER_VIEWS$3 || !isCallable$p(TypedArray$1) || TypedArray$1 === Function.prototype) { +if (!NATIVE_ARRAY_BUFFER_VIEWS$3 || !isCallable$o(TypedArray$1) || TypedArray$1 === Function.prototype) { // eslint-disable-next-line no-shadow -- safe TypedArray$1 = function TypedArray() { - throw TypeError$7('Incorrect invocation'); + throw new TypeError$7('Incorrect invocation'); }; if (NATIVE_ARRAY_BUFFER_VIEWS$3) for (NAME$1 in TypedArrayConstructorsList) { if (global$P[NAME$1]) setPrototypeOf$5(global$P[NAME$1], TypedArray$1); @@ -4883,14 +4919,14 @@ var arrayBufferViewCore = { TypedArrayPrototype: TypedArrayPrototype$2 }; -var $$4J = _export; +var $$4K = _export; var ArrayBufferViewCore$B = arrayBufferViewCore; var NATIVE_ARRAY_BUFFER_VIEWS$2 = ArrayBufferViewCore$B.NATIVE_ARRAY_BUFFER_VIEWS; // `ArrayBuffer.isView` method // https://tc39.es/ecma262/#sec-arraybuffer.isview -$$4J({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS$2 }, { +$$4K({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS$2 }, { isView: ArrayBufferViewCore$B.isView }); @@ -4902,15 +4938,15 @@ var $TypeError$u = TypeError; // `Assert: IsConstructor(argument) is true` var aConstructor$5 = function (argument) { if (isConstructor$5(argument)) return argument; - throw $TypeError$u(tryToString(argument) + ' is not a constructor'); + throw new $TypeError$u(tryToString(argument) + ' is not a constructor'); }; var anObject$13 = anObject$1f; var aConstructor$4 = aConstructor$5; var isNullOrUndefined$g = isNullOrUndefined$k; -var wellKnownSymbol$y = wellKnownSymbol$T; +var wellKnownSymbol$x = wellKnownSymbol$S; -var SPECIES$2 = wellKnownSymbol$y('species'); +var SPECIES$2 = wellKnownSymbol$x('species'); // `SpeciesConstructor` abstract operation // https://tc39.es/ecma262/#sec-speciesconstructor @@ -4920,8 +4956,8 @@ var speciesConstructor$6 = function (O, defaultConstructor) { return C === undefined || isNullOrUndefined$g(S = anObject$13(C)[SPECIES$2]) ? defaultConstructor : aConstructor$4(S); }; -var $$4I = _export; -var uncurryThis$1t = functionUncurryThisClause; +var $$4J = _export; +var uncurryThis$1u = functionUncurryThisClause; var fails$14 = fails$1u; var ArrayBufferModule$2 = arrayBuffer; var anObject$12 = anObject$1f; @@ -4932,9 +4968,9 @@ var speciesConstructor$5 = speciesConstructor$6; var ArrayBuffer$4 = ArrayBufferModule$2.ArrayBuffer; var DataView$3 = ArrayBufferModule$2.DataView; var DataViewPrototype$1 = DataView$3.prototype; -var nativeArrayBufferSlice = uncurryThis$1t(ArrayBuffer$4.prototype.slice); -var getUint8$1 = uncurryThis$1t(DataViewPrototype$1.getUint8); -var setUint8$1 = uncurryThis$1t(DataViewPrototype$1.setUint8); +var nativeArrayBufferSlice = uncurryThis$1u(ArrayBuffer$4.prototype.slice); +var getUint8$1 = uncurryThis$1u(DataViewPrototype$1.getUint8); +var setUint8$1 = uncurryThis$1u(DataViewPrototype$1.setUint8); var INCORRECT_SLICE = fails$14(function () { return !new ArrayBuffer$4(2).slice(1, undefined).byteLength; @@ -4942,7 +4978,7 @@ var INCORRECT_SLICE = fails$14(function () { // `ArrayBuffer.prototype.slice` method // https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice -$$4I({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { +$$4J({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { slice: function slice(start, end) { if (nativeArrayBufferSlice && end === undefined) { return nativeArrayBufferSlice(anObject$12(this), start); // FF fix @@ -4960,18 +4996,18 @@ $$4I({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE } }); -var $$4H = _export; +var $$4I = _export; var ArrayBufferModule$1 = arrayBuffer; var NATIVE_ARRAY_BUFFER = arrayBufferBasicDetection; // `DataView` constructor // https://tc39.es/ecma262/#sec-dataview-constructor -$$4H({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { +$$4I({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { DataView: ArrayBufferModule$1.DataView }); -var $$4G = _export; -var uncurryThis$1s = functionUncurryThis; +var $$4H = _export; +var uncurryThis$1t = functionUncurryThis; var fails$13 = fails$1u; // IE8- non-standard case @@ -4980,42 +5016,42 @@ var FORCED$s = fails$13(function () { return new Date(16e11).getYear() !== 120; }); -var getFullYear = uncurryThis$1s(Date.prototype.getFullYear); +var getFullYear = uncurryThis$1t(Date.prototype.getFullYear); // `Date.prototype.getYear` method // https://tc39.es/ecma262/#sec-date.prototype.getyear -$$4G({ target: 'Date', proto: true, forced: FORCED$s }, { +$$4H({ target: 'Date', proto: true, forced: FORCED$s }, { getYear: function getYear() { return getFullYear(this) - 1900; } }); // TODO: Remove from `core-js@4` -var $$4F = _export; -var uncurryThis$1r = functionUncurryThis; +var $$4G = _export; +var uncurryThis$1s = functionUncurryThis; var $Date = Date; -var thisTimeValue$4 = uncurryThis$1r($Date.prototype.getTime); +var thisTimeValue$4 = uncurryThis$1s($Date.prototype.getTime); // `Date.now` method // https://tc39.es/ecma262/#sec-date.now -$$4F({ target: 'Date', stat: true }, { +$$4G({ target: 'Date', stat: true }, { now: function now() { return thisTimeValue$4(new $Date()); } }); -var $$4E = _export; -var uncurryThis$1q = functionUncurryThis; +var $$4F = _export; +var uncurryThis$1r = functionUncurryThis; var toIntegerOrInfinity$e = toIntegerOrInfinity$p; var DatePrototype$3 = Date.prototype; -var thisTimeValue$3 = uncurryThis$1q(DatePrototype$3.getTime); -var setFullYear = uncurryThis$1q(DatePrototype$3.setFullYear); +var thisTimeValue$3 = uncurryThis$1r(DatePrototype$3.getTime); +var setFullYear = uncurryThis$1r(DatePrototype$3.setFullYear); // `Date.prototype.setYear` method // https://tc39.es/ecma262/#sec-date.prototype.setyear -$$4E({ target: 'Date', proto: true }, { +$$4F({ target: 'Date', proto: true }, { setYear: function setYear(year) { // validate thisTimeValue$3(this); @@ -5025,16 +5061,16 @@ $$4E({ target: 'Date', proto: true }, { } }); -var $$4D = _export; +var $$4E = _export; // `Date.prototype.toGMTString` method // https://tc39.es/ecma262/#sec-date.prototype.togmtstring -$$4D({ target: 'Date', proto: true }, { +$$4E({ target: 'Date', proto: true }, { toGMTString: Date.prototype.toUTCString }); var toIntegerOrInfinity$d = toIntegerOrInfinity$p; -var toString$C = toString$I; +var toString$D = toString$J; var requireObjectCoercible$m = requireObjectCoercible$p; var $RangeError$b = RangeError; @@ -5042,32 +5078,32 @@ var $RangeError$b = RangeError; // `String.prototype.repeat` method implementation // https://tc39.es/ecma262/#sec-string.prototype.repeat var stringRepeat = function repeat(count) { - var str = toString$C(requireObjectCoercible$m(this)); + var str = toString$D(requireObjectCoercible$m(this)); var result = ''; var n = toIntegerOrInfinity$d(count); - if (n < 0 || n === Infinity) throw $RangeError$b('Wrong number of repetitions'); + if (n < 0 || n === Infinity) throw new $RangeError$b('Wrong number of repetitions'); for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; return result; }; // https://github.com/tc39/proposal-string-pad-start-end -var uncurryThis$1p = functionUncurryThis; +var uncurryThis$1q = functionUncurryThis; var toLength$8 = toLength$d; -var toString$B = toString$I; +var toString$C = toString$J; var $repeat$2 = stringRepeat; var requireObjectCoercible$l = requireObjectCoercible$p; -var repeat$3 = uncurryThis$1p($repeat$2); -var stringSlice$i = uncurryThis$1p(''.slice); +var repeat$3 = uncurryThis$1q($repeat$2); +var stringSlice$i = uncurryThis$1q(''.slice); var ceil = Math.ceil; // `String.prototype.{ padStart, padEnd }` methods implementation var createMethod$4 = function (IS_END) { return function ($this, maxLength, fillString) { - var S = toString$B(requireObjectCoercible$l($this)); + var S = toString$C(requireObjectCoercible$l($this)); var intMaxLength = toLength$8(maxLength); var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : toString$B(fillString); + var fillStr = fillString === undefined ? ' ' : toString$C(fillString); var fillLen, stringFiller; if (intMaxLength <= stringLength || fillStr === '') return S; fillLen = intMaxLength - stringLength; @@ -5086,23 +5122,23 @@ var stringPad = { end: createMethod$4(true) }; -var uncurryThis$1o = functionUncurryThis; +var uncurryThis$1p = functionUncurryThis; var fails$12 = fails$1u; var padStart = stringPad.start; var $RangeError$a = RangeError; -var $isFinite$2 = isFinite; -var abs$7 = Math.abs; +var $isFinite$1 = isFinite; +var abs$6 = Math.abs; var DatePrototype$2 = Date.prototype; var nativeDateToISOString = DatePrototype$2.toISOString; -var thisTimeValue$2 = uncurryThis$1o(DatePrototype$2.getTime); -var getUTCDate = uncurryThis$1o(DatePrototype$2.getUTCDate); -var getUTCFullYear = uncurryThis$1o(DatePrototype$2.getUTCFullYear); -var getUTCHours = uncurryThis$1o(DatePrototype$2.getUTCHours); -var getUTCMilliseconds = uncurryThis$1o(DatePrototype$2.getUTCMilliseconds); -var getUTCMinutes = uncurryThis$1o(DatePrototype$2.getUTCMinutes); -var getUTCMonth = uncurryThis$1o(DatePrototype$2.getUTCMonth); -var getUTCSeconds = uncurryThis$1o(DatePrototype$2.getUTCSeconds); +var thisTimeValue$2 = uncurryThis$1p(DatePrototype$2.getTime); +var getUTCDate = uncurryThis$1p(DatePrototype$2.getUTCDate); +var getUTCFullYear = uncurryThis$1p(DatePrototype$2.getUTCFullYear); +var getUTCHours = uncurryThis$1p(DatePrototype$2.getUTCHours); +var getUTCMilliseconds = uncurryThis$1p(DatePrototype$2.getUTCMilliseconds); +var getUTCMinutes = uncurryThis$1p(DatePrototype$2.getUTCMinutes); +var getUTCMonth = uncurryThis$1p(DatePrototype$2.getUTCMonth); +var getUTCSeconds = uncurryThis$1p(DatePrototype$2.getUTCSeconds); // `Date.prototype.toISOString` method implementation // https://tc39.es/ecma262/#sec-date.prototype.toisostring @@ -5112,12 +5148,12 @@ var dateToIsoString = (fails$12(function () { }) || !fails$12(function () { nativeDateToISOString.call(new Date(NaN)); })) ? function toISOString() { - if (!$isFinite$2(thisTimeValue$2(this))) throw $RangeError$a('Invalid time value'); + if (!$isFinite$1(thisTimeValue$2(this))) throw new $RangeError$a('Invalid time value'); var date = this; var year = getUTCFullYear(date); var milliseconds = getUTCMilliseconds(date); var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; - return sign + padStart(abs$7(year), sign ? 6 : 4, 0) + + return sign + padStart(abs$6(year), sign ? 6 : 4, 0) + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + '-' + padStart(getUTCDate(date), 2, 0) + 'T' + padStart(getUTCHours(date), 2, 0) + @@ -5127,17 +5163,17 @@ var dateToIsoString = (fails$12(function () { 'Z'; } : nativeDateToISOString; -var $$4C = _export; +var $$4D = _export; var toISOString = dateToIsoString; // `Date.prototype.toISOString` method // https://tc39.es/ecma262/#sec-date.prototype.toisostring // PhantomJS / old WebKit has a broken implementations -$$4C({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { +$$4D({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { toISOString: toISOString }); -var $$4B = _export; +var $$4C = _export; var fails$11 = fails$1u; var toObject$l = toObject$D; var toPrimitive$2 = toPrimitive$4; @@ -5149,7 +5185,7 @@ var FORCED$r = fails$11(function () { // `Date.prototype.toJSON` method // https://tc39.es/ecma262/#sec-date.prototype.tojson -$$4B({ target: 'Date', proto: true, arity: 1, forced: FORCED$r }, { +$$4C({ target: 'Date', proto: true, arity: 1, forced: FORCED$r }, { // eslint-disable-next-line no-unused-vars -- required for `.length` toJSON: function toJSON(key) { var O = toObject$l(this); @@ -5168,16 +5204,16 @@ var $TypeError$t = TypeError; var dateToPrimitive$1 = function (hint) { anObject$11(this); if (hint === 'string' || hint === 'default') hint = 'string'; - else if (hint !== 'number') throw $TypeError$t('Incorrect hint'); + else if (hint !== 'number') throw new $TypeError$t('Incorrect hint'); return ordinaryToPrimitive(this, hint); }; var hasOwn$p = hasOwnProperty_1; var defineBuiltIn$l = defineBuiltIn$u; var dateToPrimitive = dateToPrimitive$1; -var wellKnownSymbol$x = wellKnownSymbol$T; +var wellKnownSymbol$w = wellKnownSymbol$S; -var TO_PRIMITIVE = wellKnownSymbol$x('toPrimitive'); +var TO_PRIMITIVE = wellKnownSymbol$w('toPrimitive'); var DatePrototype$1 = Date.prototype; // `Date.prototype[@@toPrimitive]` method @@ -5187,14 +5223,14 @@ if (!hasOwn$p(DatePrototype$1, TO_PRIMITIVE)) { } // TODO: Remove from `core-js@4` -var uncurryThis$1n = functionUncurryThis; +var uncurryThis$1o = functionUncurryThis; var defineBuiltIn$k = defineBuiltIn$u; var DatePrototype = Date.prototype; var INVALID_DATE = 'Invalid Date'; var TO_STRING$1 = 'toString'; -var nativeDateToString = uncurryThis$1n(DatePrototype[TO_STRING$1]); -var thisTimeValue$1 = uncurryThis$1n(DatePrototype.getTime); +var nativeDateToString = uncurryThis$1o(DatePrototype[TO_STRING$1]); +var thisTimeValue$1 = uncurryThis$1o(DatePrototype.getTime); // `Date.prototype.toString` method // https://tc39.es/ecma262/#sec-date.prototype.tostring @@ -5206,15 +5242,15 @@ if (String(new Date(NaN)) !== INVALID_DATE) { }); } -var $$4A = _export; -var uncurryThis$1m = functionUncurryThis; -var toString$A = toString$I; +var $$4B = _export; +var uncurryThis$1n = functionUncurryThis; +var toString$B = toString$J; -var charAt$j = uncurryThis$1m(''.charAt); -var charCodeAt$7 = uncurryThis$1m(''.charCodeAt); -var exec$e = uncurryThis$1m(/./.exec); -var numberToString$2 = uncurryThis$1m(1.0.toString); -var toUpperCase = uncurryThis$1m(''.toUpperCase); +var charAt$j = uncurryThis$1n(''.charAt); +var charCodeAt$8 = uncurryThis$1n(''.charCodeAt); +var exec$e = uncurryThis$1n(/./.exec); +var numberToString$2 = uncurryThis$1n(1.0.toString); +var toUpperCase = uncurryThis$1n(''.toUpperCase); var raw = /[\w*+\-./@]/; @@ -5226,9 +5262,9 @@ var hex$1 = function (code, length) { // `escape` method // https://tc39.es/ecma262/#sec-escape-string -$$4A({ global: true }, { +$$4B({ global: true }, { escape: function escape(string) { - var str = toString$A(string); + var str = toString$B(string); var result = ''; var length = str.length; var index = 0; @@ -5238,7 +5274,7 @@ $$4A({ global: true }, { if (exec$e(raw, chr)) { result += chr; } else { - code = charCodeAt$7(chr, 0); + code = charCodeAt$8(chr, 0); if (code < 256) { result += '%' + hex$1(code, 2); } else { @@ -5249,7 +5285,7 @@ $$4A({ global: true }, { } }); -var uncurryThis$1l = functionUncurryThis; +var uncurryThis$1m = functionUncurryThis; var aCallable$E = aCallable$N; var isObject$x = isObject$K; var hasOwn$o = hasOwnProperty_1; @@ -5257,8 +5293,8 @@ var arraySlice$7 = arraySlice$b; var NATIVE_BIND = functionBindNative; var $Function = Function; -var concat$3 = uncurryThis$1l([].concat); -var join$8 = uncurryThis$1l([].join); +var concat$3 = uncurryThis$1m([].concat); +var join$8 = uncurryThis$1m([].join); var factories = {}; var construct = function (C, argsLength, args) { @@ -5286,31 +5322,31 @@ var functionBind = NATIVE_BIND ? $Function.bind : function bind(that /* , ...arg }; // TODO: Remove from `core-js@4` -var $$4z = _export; +var $$4A = _export; var bind$p = functionBind; // `Function.prototype.bind` method // https://tc39.es/ecma262/#sec-function.prototype.bind // eslint-disable-next-line es/no-function-prototype-bind -- detection -$$4z({ target: 'Function', proto: true, forced: Function.bind !== bind$p }, { +$$4A({ target: 'Function', proto: true, forced: Function.bind !== bind$p }, { bind: bind$p }); -var isCallable$o = isCallable$K; +var isCallable$n = isCallable$J; var isObject$w = isObject$K; var definePropertyModule$5 = objectDefineProperty; var getPrototypeOf$c = objectGetPrototypeOf$2; -var wellKnownSymbol$w = wellKnownSymbol$T; +var wellKnownSymbol$v = wellKnownSymbol$S; var makeBuiltIn$1 = makeBuiltInExports; -var HAS_INSTANCE = wellKnownSymbol$w('hasInstance'); +var HAS_INSTANCE = wellKnownSymbol$v('hasInstance'); var FunctionPrototype$2 = Function.prototype; // `Function.prototype[@@hasInstance]` method // https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance if (!(HAS_INSTANCE in FunctionPrototype$2)) { definePropertyModule$5.f(FunctionPrototype$2, HAS_INSTANCE, { value: makeBuiltIn$1(function (O) { - if (!isCallable$o(this) || !isObject$w(O)) return false; + if (!isCallable$n(this) || !isObject$w(O)) return false; var P = this.prototype; if (!isObject$w(P)) return O instanceof this; // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: @@ -5321,13 +5357,13 @@ if (!(HAS_INSTANCE in FunctionPrototype$2)) { var DESCRIPTORS$B = descriptors; var FUNCTION_NAME_EXISTS = functionName.EXISTS; -var uncurryThis$1k = functionUncurryThis; +var uncurryThis$1l = functionUncurryThis; var defineBuiltInAccessor$i = defineBuiltInAccessor$o; var FunctionPrototype$1 = Function.prototype; -var functionToString = uncurryThis$1k(FunctionPrototype$1.toString); +var functionToString = uncurryThis$1l(FunctionPrototype$1.toString); var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; -var regExpExec$4 = uncurryThis$1k(nameRE.exec); +var regExpExec$4 = uncurryThis$1l(nameRE.exec); var NAME = 'name'; // Function instances `.name` property @@ -5345,12 +5381,12 @@ if (DESCRIPTORS$B && !FUNCTION_NAME_EXISTS) { }); } -var $$4y = _export; +var $$4z = _export; var global$O = global$16; // `globalThis` object // https://tc39.es/ecma262/#sec-globalthis -$$4y({ global: true, forced: global$O.globalThis !== global$O }, { +$$4z({ global: true, forced: global$O.globalThis !== global$O }, { globalThis: global$O }); @@ -5398,8 +5434,8 @@ var freezing = !fails$_(function () { return Object.isExtensible(Object.preventExtensions({})); }); -var $$4x = _export; -var uncurryThis$1j = functionUncurryThis; +var $$4y = _export; +var uncurryThis$1k = functionUncurryThis; var hiddenKeys = hiddenKeys$6; var isObject$u = isObject$K; var hasOwn$n = hasOwnProperty_1; @@ -5457,7 +5493,7 @@ var enable = function () { meta.enable = function () { /* empty */ }; REQUIRED = true; var getOwnPropertyNames = getOwnPropertyNamesModule.f; - var splice = uncurryThis$1j([].splice); + var splice = uncurryThis$1k([].splice); var test = {}; test[METADATA$1] = 1; @@ -5473,7 +5509,7 @@ var enable = function () { } return result; }; - $$4x({ target: 'Object', stat: true, forced: true }, { + $$4y({ target: 'Object', stat: true, forced: true }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f }); } @@ -5490,15 +5526,15 @@ hiddenKeys[METADATA$1] = true; var internalMetadataExports = internalMetadata.exports; -var $$4w = _export; +var $$4x = _export; var global$M = global$16; -var uncurryThis$1i = functionUncurryThis; +var uncurryThis$1j = functionUncurryThis; var isForced$3 = isForced_1; var defineBuiltIn$j = defineBuiltIn$u; var InternalMetadataModule$1 = internalMetadataExports; var iterate$E = iterate$G; var anInstance$d = anInstance$f; -var isCallable$n = isCallable$K; +var isCallable$m = isCallable$J; var isNullOrUndefined$f = isNullOrUndefined$k; var isObject$t = isObject$K; var fails$Z = fails$1u; @@ -5516,7 +5552,7 @@ var collection$4 = function (CONSTRUCTOR_NAME, wrapper, common) { var exported = {}; var fixMethod = function (KEY) { - var uncurriedNativeMethod = uncurryThis$1i(NativePrototype[KEY]); + var uncurriedNativeMethod = uncurryThis$1j(NativePrototype[KEY]); defineBuiltIn$j(NativePrototype, KEY, KEY === 'add' ? function add(value) { uncurriedNativeMethod(this, value === 0 ? 0 : value); @@ -5536,7 +5572,7 @@ var collection$4 = function (CONSTRUCTOR_NAME, wrapper, common) { var REPLACE = isForced$3( CONSTRUCTOR_NAME, - !isCallable$n(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$Z(function () { + !isCallable$m(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$Z(function () { new NativeConstructor().entries().next(); })) ); @@ -5587,7 +5623,7 @@ var collection$4 = function (CONSTRUCTOR_NAME, wrapper, common) { } exported[CONSTRUCTOR_NAME] = Constructor; - $$4w({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); + $$4x({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); setToStringTag$6(Constructor, CONSTRUCTOR_NAME); @@ -5822,7 +5858,7 @@ var mathLog1p = Math.log1p || function log1p(x) { return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log$7(1 + n); }; -var $$4v = _export; +var $$4w = _export; var log1p$1 = mathLog1p; // eslint-disable-next-line es/no-math-acosh -- required for testing @@ -5839,7 +5875,7 @@ var FORCED$q = !$acosh // `Math.acosh` method // https://tc39.es/ecma262/#sec-math.acosh -$$4v({ target: 'Math', stat: true, forced: FORCED$q }, { +$$4w({ target: 'Math', stat: true, forced: FORCED$q }, { acosh: function acosh(x) { var n = +x; return n < 1 ? NaN : n > 94906265.62425156 @@ -5848,7 +5884,7 @@ $$4v({ target: 'Math', stat: true, forced: FORCED$q }, { } }); -var $$4u = _export; +var $$4v = _export; // eslint-disable-next-line es/no-math-asinh -- required for testing var $asinh = Math.asinh; @@ -5865,11 +5901,11 @@ var FORCED$p = !($asinh && 1 / $asinh(0) > 0); // `Math.asinh` method // https://tc39.es/ecma262/#sec-math.asinh // Tor Browser bug: Math.asinh(0) -> -0 -$$4u({ target: 'Math', stat: true, forced: FORCED$p }, { +$$4v({ target: 'Math', stat: true, forced: FORCED$p }, { asinh: asinh }); -var $$4t = _export; +var $$4u = _export; // eslint-disable-next-line es/no-math-atanh -- required for testing var $atanh = Math.atanh; @@ -5880,29 +5916,29 @@ var FORCED$o = !($atanh && 1 / $atanh(-0) < 0); // `Math.atanh` method // https://tc39.es/ecma262/#sec-math.atanh // Tor Browser bug: Math.atanh(-0) -> 0 -$$4t({ target: 'Math', stat: true, forced: FORCED$o }, { +$$4u({ target: 'Math', stat: true, forced: FORCED$o }, { atanh: function atanh(x) { var n = +x; return n === 0 ? n : log$4((1 + n) / (1 - n)) / 2; } }); -var $$4s = _export; -var sign$2 = mathSign; +var $$4t = _export; +var sign$1 = mathSign; -var abs$6 = Math.abs; -var pow$4 = Math.pow; +var abs$5 = Math.abs; +var pow$3 = Math.pow; // `Math.cbrt` method // https://tc39.es/ecma262/#sec-math.cbrt -$$4s({ target: 'Math', stat: true }, { +$$4t({ target: 'Math', stat: true }, { cbrt: function cbrt(x) { var n = +x; - return sign$2(n) * pow$4(abs$6(n), 1 / 3); + return sign$1(n) * pow$3(abs$5(n), 1 / 3); } }); -var $$4r = _export; +var $$4s = _export; var floor$7 = Math.floor; var log$3 = Math.log; @@ -5910,7 +5946,7 @@ var LOG2E = Math.LOG2E; // `Math.clz32` method // https://tc39.es/ecma262/#sec-math.clz32 -$$4r({ target: 'Math', stat: true }, { +$$4s({ target: 'Math', stat: true }, { clz32: function clz32(x) { var n = x >>> 0; return n ? 31 - floor$7(log$3(n + 0.5) * LOG2E) : 32; @@ -5934,70 +5970,41 @@ var mathExpm1 = (!$expm1 return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp$2(n) - 1; } : $expm1; -var $$4q = _export; +var $$4r = _export; var expm1$3 = mathExpm1; // eslint-disable-next-line es/no-math-cosh -- required for testing var $cosh = Math.cosh; -var abs$5 = Math.abs; +var abs$4 = Math.abs; var E$1 = Math.E; var FORCED$n = !$cosh || $cosh(710) === Infinity; // `Math.cosh` method // https://tc39.es/ecma262/#sec-math.cosh -$$4q({ target: 'Math', stat: true, forced: FORCED$n }, { +$$4r({ target: 'Math', stat: true, forced: FORCED$n }, { cosh: function cosh(x) { - var t = expm1$3(abs$5(x) - 1) + 1; + var t = expm1$3(abs$4(x) - 1) + 1; return (t + 1 / (t * E$1 * E$1)) * (E$1 / 2); } }); -var $$4p = _export; +var $$4q = _export; var expm1$2 = mathExpm1; // `Math.expm1` method // https://tc39.es/ecma262/#sec-math.expm1 // eslint-disable-next-line es/no-math-expm1 -- required for testing -$$4p({ target: 'Math', stat: true, forced: expm1$2 !== Math.expm1 }, { expm1: expm1$2 }); - -var sign$1 = mathSign; - -var abs$4 = Math.abs; -var pow$3 = Math.pow; -var EPSILON = pow$3(2, -52); -var EPSILON32 = pow$3(2, -23); -var MAX32 = pow$3(2, 127) * (2 - EPSILON32); -var MIN32 = pow$3(2, -126); - -var roundTiesToEven = function (n) { - return n + 1 / EPSILON - 1 / EPSILON; -}; - -// `Math.fround` method implementation -// https://tc39.es/ecma262/#sec-math.fround -// eslint-disable-next-line es/no-math-fround -- safe -var mathFround = Math.fround || function fround(x) { - var n = +x; - var $abs = abs$4(n); - var $sign = sign$1(n); - var a, result; - if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; - a = (1 + EPSILON32 / EPSILON) * $abs; - result = a - (a - $abs); - // eslint-disable-next-line no-self-compare -- NaN check - if (result > MAX32 || result !== result) return $sign * Infinity; - return $sign * result; -}; +$$4q({ target: 'Math', stat: true, forced: expm1$2 !== Math.expm1 }, { expm1: expm1$2 }); -var $$4o = _export; +var $$4p = _export; var fround$1 = mathFround; // `Math.fround` method // https://tc39.es/ecma262/#sec-math.fround -$$4o({ target: 'Math', stat: true }, { fround: fround$1 }); +$$4p({ target: 'Math', stat: true }, { fround: fround$1 }); -var $$4n = _export; +var $$4o = _export; // eslint-disable-next-line es/no-math-hypot -- required for testing var $hypot = Math.hypot; @@ -6010,7 +6017,7 @@ var FORCED$m = !!$hypot && $hypot(Infinity, NaN) !== Infinity; // `Math.hypot` method // https://tc39.es/ecma262/#sec-math.hypot -$$4n({ target: 'Math', stat: true, arity: 2, forced: FORCED$m }, { +$$4o({ target: 'Math', stat: true, arity: 2, forced: FORCED$m }, { // eslint-disable-next-line no-unused-vars -- required for `.length` hypot: function hypot(value1, value2) { var sum = 0; @@ -6033,7 +6040,7 @@ $$4n({ target: 'Math', stat: true, arity: 2, forced: FORCED$m }, { } }); -var $$4m = _export; +var $$4n = _export; var fails$Y = fails$1u; // eslint-disable-next-line es/no-math-imul -- required for testing @@ -6046,7 +6053,7 @@ var FORCED$l = fails$Y(function () { // `Math.imul` method // https://tc39.es/ecma262/#sec-math.imul // some WebKit versions fails with big numbers, some has wrong arity -$$4m({ target: 'Math', stat: true, forced: FORCED$l }, { +$$4n({ target: 'Math', stat: true, forced: FORCED$l }, { imul: function imul(x, y) { var UINT16 = 0xFFFF; var xn = +x; @@ -6065,45 +6072,45 @@ var mathLog10 = Math.log10 || function log10(x) { return log$2(x) * LOG10E; }; -var $$4l = _export; +var $$4m = _export; var log10$1 = mathLog10; // `Math.log10` method // https://tc39.es/ecma262/#sec-math.log10 -$$4l({ target: 'Math', stat: true }, { +$$4m({ target: 'Math', stat: true }, { log10: log10$1 }); -var $$4k = _export; +var $$4l = _export; var log1p = mathLog1p; // `Math.log1p` method // https://tc39.es/ecma262/#sec-math.log1p -$$4k({ target: 'Math', stat: true }, { log1p: log1p }); +$$4l({ target: 'Math', stat: true }, { log1p: log1p }); -var $$4j = _export; +var $$4k = _export; var log$1 = Math.log; var LN2 = Math.LN2; // `Math.log2` method // https://tc39.es/ecma262/#sec-math.log2 -$$4j({ target: 'Math', stat: true }, { +$$4k({ target: 'Math', stat: true }, { log2: function log2(x) { return log$1(x) / LN2; } }); -var $$4i = _export; +var $$4j = _export; var sign = mathSign; // `Math.sign` method // https://tc39.es/ecma262/#sec-math.sign -$$4i({ target: 'Math', stat: true }, { +$$4j({ target: 'Math', stat: true }, { sign: sign }); -var $$4h = _export; +var $$4i = _export; var fails$X = fails$1u; var expm1$1 = mathExpm1; @@ -6119,21 +6126,21 @@ var FORCED$k = fails$X(function () { // `Math.sinh` method // https://tc39.es/ecma262/#sec-math.sinh // V8 near Chromium 38 has a problem with very small numbers -$$4h({ target: 'Math', stat: true, forced: FORCED$k }, { +$$4i({ target: 'Math', stat: true, forced: FORCED$k }, { sinh: function sinh(x) { var n = +x; return abs$2(n) < 1 ? (expm1$1(n) - expm1$1(-n)) / 2 : (exp$1(n - 1) - exp$1(-n - 1)) * (E / 2); } }); -var $$4g = _export; +var $$4h = _export; var expm1 = mathExpm1; var exp = Math.exp; // `Math.tanh` method // https://tc39.es/ecma262/#sec-math.tanh -$$4g({ target: 'Math', stat: true }, { +$$4h({ target: 'Math', stat: true }, { tanh: function tanh(x) { var n = +x; var a = expm1(n); @@ -6148,40 +6155,40 @@ var setToStringTag$5 = setToStringTag$d; // https://tc39.es/ecma262/#sec-math-@@tostringtag setToStringTag$5(Math, 'Math', true); -var $$4f = _export; +var $$4g = _export; var trunc = mathTrunc; // `Math.trunc` method // https://tc39.es/ecma262/#sec-math.trunc -$$4f({ target: 'Math', stat: true }, { +$$4g({ target: 'Math', stat: true }, { trunc: trunc }); -var uncurryThis$1h = functionUncurryThis; +var uncurryThis$1i = functionUncurryThis; // `thisNumberValue` abstract operation // https://tc39.es/ecma262/#sec-thisnumbervalue -var thisNumberValue$5 = uncurryThis$1h(1.0.valueOf); +var thisNumberValue$5 = uncurryThis$1i(1.0.valueOf); // a string of all valid unicode whitespaces var whitespaces$6 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; -var uncurryThis$1g = functionUncurryThis; +var uncurryThis$1h = functionUncurryThis; var requireObjectCoercible$k = requireObjectCoercible$p; -var toString$z = toString$I; +var toString$A = toString$J; var whitespaces$5 = whitespaces$6; -var replace$8 = uncurryThis$1g(''.replace); +var replace$9 = uncurryThis$1h(''.replace); var ltrim = RegExp('^[' + whitespaces$5 + ']+'); var rtrim = RegExp('(^|[^' + whitespaces$5 + '])[' + whitespaces$5 + ']+$'); // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation var createMethod$3 = function (TYPE) { return function ($this) { - var string = toString$z(requireObjectCoercible$k($this)); - if (TYPE & 1) string = replace$8(string, ltrim, ''); - if (TYPE & 2) string = replace$8(string, rtrim, '$1'); + var string = toString$A(requireObjectCoercible$k($this)); + if (TYPE & 1) string = replace$9(string, ltrim, ''); + if (TYPE & 2) string = replace$9(string, rtrim, '$1'); return string; }; }; @@ -6198,12 +6205,12 @@ var stringTrim = { trim: createMethod$3(3) }; -var $$4e = _export; +var $$4f = _export; var IS_PURE$i = isPure; var DESCRIPTORS$z = descriptors; var global$L = global$16; var path = path$2; -var uncurryThis$1f = functionUncurryThis; +var uncurryThis$1g = functionUncurryThis; var isForced$2 = isForced_1; var hasOwn$m = hasOwnProperty_1; var inheritIfRequired$3 = inheritIfRequired$6; @@ -6222,8 +6229,8 @@ var NativeNumber = global$L[NUMBER]; path[NUMBER]; var NumberPrototype = NativeNumber.prototype; var TypeError$6 = global$L.TypeError; -var stringSlice$h = uncurryThis$1f(''.slice); -var charCodeAt$6 = uncurryThis$1f(''.charCodeAt); +var stringSlice$h = uncurryThis$1g(''.slice); +var charCodeAt$7 = uncurryThis$1g(''.charCodeAt); // `ToNumeric` abstract operation // https://tc39.es/ecma262/#sec-tonumeric @@ -6237,15 +6244,15 @@ var toNumeric = function (value) { var toNumber = function (argument) { var it = toPrimitive$1(argument, 'number'); var first, third, radix, maxCode, digits, length, index, code; - if (isSymbol$3(it)) throw TypeError$6('Cannot convert a Symbol value to a number'); + if (isSymbol$3(it)) throw new TypeError$6('Cannot convert a Symbol value to a number'); if (typeof it == 'string' && it.length > 2) { it = trim$2(it); - first = charCodeAt$6(it, 0); + first = charCodeAt$7(it, 0); if (first === 43 || first === 45) { - third = charCodeAt$6(it, 2); + third = charCodeAt$7(it, 2); if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix } else if (first === 48) { - switch (charCodeAt$6(it, 1)) { + switch (charCodeAt$7(it, 1)) { // fast equal of /^0b[01]+$/i case 66: case 98: @@ -6264,7 +6271,7 @@ var toNumber = function (argument) { digits = stringSlice$h(it, 2); length = digits.length; for (index = 0; index < length; index++) { - code = charCodeAt$6(digits, index); + code = charCodeAt$7(digits, index); // parseInt parses a string to a first unavailable symbol // but ToNumber should return NaN if a string contains unavailable symbols if (code < 48 || code > maxCode) return NaN; @@ -6290,7 +6297,7 @@ var NumberWrapper = function Number(value) { NumberWrapper.prototype = NumberPrototype; if (FORCED$j && !IS_PURE$i) NumberPrototype.constructor = NumberWrapper; -$$4e({ global: true, constructor: true, wrap: true, forced: FORCED$j }, { +$$4f({ global: true, constructor: true, wrap: true, forced: FORCED$j }, { Number: NumberWrapper }); @@ -6311,11 +6318,11 @@ var copyConstructorProperties$1 = function (target, source) { }; if (FORCED$j || IS_PURE$i) copyConstructorProperties$1(path[NUMBER], NativeNumber); -var $$4d = _export; +var $$4e = _export; // `Number.EPSILON` constant // https://tc39.es/ecma262/#sec-number.epsilon -$$4d({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { +$$4e({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { EPSILON: Math.pow(2, -52) }); @@ -6330,12 +6337,12 @@ var numberIsFinite$2 = Number.isFinite || function isFinite(it) { return typeof it == 'number' && globalIsFinite(it); }; -var $$4c = _export; +var $$4d = _export; var numberIsFinite$1 = numberIsFinite$2; // `Number.isFinite` method // https://tc39.es/ecma262/#sec-number.isfinite -$$4c({ target: 'Number', stat: true }, { isFinite: numberIsFinite$1 }); +$$4d({ target: 'Number', stat: true }, { isFinite: numberIsFinite$1 }); var isObject$s = isObject$K; @@ -6348,63 +6355,63 @@ var isIntegralNumber$3 = Number.isInteger || function isInteger(it) { return !isObject$s(it) && isFinite(it) && floor$6(it) === it; }; -var $$4b = _export; +var $$4c = _export; var isIntegralNumber$2 = isIntegralNumber$3; // `Number.isInteger` method // https://tc39.es/ecma262/#sec-number.isinteger -$$4b({ target: 'Number', stat: true }, { +$$4c({ target: 'Number', stat: true }, { isInteger: isIntegralNumber$2 }); -var $$4a = _export; +var $$4b = _export; // `Number.isNaN` method // https://tc39.es/ecma262/#sec-number.isnan -$$4a({ target: 'Number', stat: true }, { +$$4b({ target: 'Number', stat: true }, { isNaN: function isNaN(number) { // eslint-disable-next-line no-self-compare -- NaN check return number !== number; } }); -var $$49 = _export; +var $$4a = _export; var isIntegralNumber$1 = isIntegralNumber$3; var abs$1 = Math.abs; // `Number.isSafeInteger` method // https://tc39.es/ecma262/#sec-number.issafeinteger -$$49({ target: 'Number', stat: true }, { +$$4a({ target: 'Number', stat: true }, { isSafeInteger: function isSafeInteger(number) { return isIntegralNumber$1(number) && abs$1(number) <= 0x1FFFFFFFFFFFFF; } }); -var $$48 = _export; +var $$49 = _export; // `Number.MAX_SAFE_INTEGER` constant // https://tc39.es/ecma262/#sec-number.max_safe_integer -$$48({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { +$$49({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF }); -var $$47 = _export; +var $$48 = _export; // `Number.MIN_SAFE_INTEGER` constant // https://tc39.es/ecma262/#sec-number.min_safe_integer -$$47({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { +$$48({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF }); var global$J = global$16; var fails$V = fails$1u; -var uncurryThis$1e = functionUncurryThis; -var toString$y = toString$I; +var uncurryThis$1f = functionUncurryThis; +var toString$z = toString$J; var trim$1 = stringTrim.trim; var whitespaces$4 = whitespaces$6; -var charAt$i = uncurryThis$1e(''.charAt); +var charAt$i = uncurryThis$1f(''.charAt); var $parseFloat$1 = global$J.parseFloat; var Symbol$6 = global$J.Symbol; var ITERATOR$6 = Symbol$6 && Symbol$6.iterator; @@ -6415,25 +6422,25 @@ var FORCED$i = 1 / $parseFloat$1(whitespaces$4 + '-0') !== -Infinity // `parseFloat` method // https://tc39.es/ecma262/#sec-parsefloat-string var numberParseFloat = FORCED$i ? function parseFloat(string) { - var trimmedString = trim$1(toString$y(string)); + var trimmedString = trim$1(toString$z(string)); var result = $parseFloat$1(trimmedString); return result === 0 && charAt$i(trimmedString, 0) === '-' ? -0 : result; } : $parseFloat$1; -var $$46 = _export; +var $$47 = _export; var parseFloat$1 = numberParseFloat; // `Number.parseFloat` method // https://tc39.es/ecma262/#sec-number.parseFloat // eslint-disable-next-line es/no-number-parsefloat -- required for testing -$$46({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat$1 }, { +$$47({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat$1 }, { parseFloat: parseFloat$1 }); var global$I = global$16; var fails$U = fails$1u; -var uncurryThis$1d = functionUncurryThis; -var toString$x = toString$I; +var uncurryThis$1e = functionUncurryThis; +var toString$y = toString$J; var trim = stringTrim.trim; var whitespaces$3 = whitespaces$6; @@ -6441,7 +6448,7 @@ var $parseInt$2 = global$I.parseInt; var Symbol$5 = global$I.Symbol; var ITERATOR$5 = Symbol$5 && Symbol$5.iterator; var hex = /^[+-]?0x/i; -var exec$d = uncurryThis$1d(hex.exec); +var exec$d = uncurryThis$1e(hex.exec); var FORCED$h = $parseInt$2(whitespaces$3 + '08') !== 8 || $parseInt$2(whitespaces$3 + '0x16') !== 22 // MS Edge 18- broken with boxed symbols || (ITERATOR$5 && !fails$U(function () { $parseInt$2(Object(ITERATOR$5)); })); @@ -6449,22 +6456,22 @@ var FORCED$h = $parseInt$2(whitespaces$3 + '08') !== 8 || $parseInt$2(whitespace // `parseInt` method // https://tc39.es/ecma262/#sec-parseint-string-radix var numberParseInt = FORCED$h ? function parseInt(string, radix) { - var S = trim(toString$x(string)); + var S = trim(toString$y(string)); return $parseInt$2(S, (radix >>> 0) || (exec$d(hex, S) ? 16 : 10)); } : $parseInt$2; -var $$45 = _export; +var $$46 = _export; var parseInt$3 = numberParseInt; // `Number.parseInt` method // https://tc39.es/ecma262/#sec-number.parseint // eslint-disable-next-line es/no-number-parseint -- required for testing -$$45({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt$3 }, { +$$46({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt$3 }, { parseInt: parseInt$3 }); -var $$44 = _export; -var uncurryThis$1c = functionUncurryThis; +var $$45 = _export; +var uncurryThis$1d = functionUncurryThis; var toIntegerOrInfinity$c = toIntegerOrInfinity$p; var thisNumberValue$3 = thisNumberValue$5; var $repeat$1 = stringRepeat; @@ -6473,14 +6480,14 @@ var fails$T = fails$1u; var $RangeError$9 = RangeError; var $String$2 = String; -var $isFinite$1 = isFinite; +var $isFinite = isFinite; var abs = Math.abs; var floor$5 = Math.floor; var pow$2 = Math.pow; var round$1 = Math.round; -var nativeToExponential = uncurryThis$1c(1.0.toExponential); -var repeat$2 = uncurryThis$1c($repeat$1); -var stringSlice$g = uncurryThis$1c(''.slice); +var nativeToExponential = uncurryThis$1d(1.0.toExponential); +var repeat$2 = uncurryThis$1d($repeat$1); +var stringSlice$g = uncurryThis$1d(''.slice); // Edge 17- var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' @@ -6512,14 +6519,14 @@ var FORCED$g = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFini // `Number.prototype.toExponential` method // https://tc39.es/ecma262/#sec-number.prototype.toexponential -$$44({ target: 'Number', proto: true, forced: FORCED$g }, { +$$45({ target: 'Number', proto: true, forced: FORCED$g }, { toExponential: function toExponential(fractionDigits) { var x = thisNumberValue$3(this); if (fractionDigits === undefined) return nativeToExponential(x); var f = toIntegerOrInfinity$c(fractionDigits); - if (!$isFinite$1(x)) return String(x); + if (!$isFinite(x)) return String(x); // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation - if (f < 0 || f > 20) throw $RangeError$9('Incorrect fraction digits'); + if (f < 0 || f > 20) throw new $RangeError$9('Incorrect fraction digits'); if (ROUNDS_PROPERLY) return nativeToExponential(x, f); var s = ''; var m = ''; @@ -6565,8 +6572,8 @@ $$44({ target: 'Number', proto: true, forced: FORCED$g }, { } }); -var $$43 = _export; -var uncurryThis$1b = functionUncurryThis; +var $$44 = _export; +var uncurryThis$1c = functionUncurryThis; var toIntegerOrInfinity$b = toIntegerOrInfinity$p; var thisNumberValue$2 = thisNumberValue$5; var $repeat = stringRepeat; @@ -6575,9 +6582,9 @@ var fails$S = fails$1u; var $RangeError$8 = RangeError; var $String$1 = String; var floor$4 = Math.floor; -var repeat$1 = uncurryThis$1b($repeat); -var stringSlice$f = uncurryThis$1b(''.slice); -var nativeToFixed = uncurryThis$1b(1.0.toFixed); +var repeat$1 = uncurryThis$1c($repeat); +var stringSlice$f = uncurryThis$1c(''.slice); +var nativeToFixed = uncurryThis$1c(1.0.toFixed); var pow$1 = function (x, n, acc) { return n === 0 ? acc : n % 2 === 1 ? pow$1(x, n - 1, acc * x) : pow$1(x * x, n / 2, acc); @@ -6639,7 +6646,7 @@ var FORCED$f = fails$S(function () { // `Number.prototype.toFixed` method // https://tc39.es/ecma262/#sec-number.prototype.tofixed -$$43({ target: 'Number', proto: true, forced: FORCED$f }, { +$$44({ target: 'Number', proto: true, forced: FORCED$f }, { toFixed: function toFixed(fractionDigits) { var number = thisNumberValue$2(this); var fractDigits = toIntegerOrInfinity$b(fractionDigits); @@ -6649,7 +6656,7 @@ $$43({ target: 'Number', proto: true, forced: FORCED$f }, { var e, z, j, k; // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation - if (fractDigits < 0 || fractDigits > 20) throw $RangeError$8('Incorrect fraction digits'); + if (fractDigits < 0 || fractDigits > 20) throw new $RangeError$8('Incorrect fraction digits'); // eslint-disable-next-line no-self-compare -- NaN check if (number !== number) return 'NaN'; if (number <= -1e21 || number >= 1e21) return $String$1(number); @@ -6696,12 +6703,12 @@ $$43({ target: 'Number', proto: true, forced: FORCED$f }, { } }); -var $$42 = _export; -var uncurryThis$1a = functionUncurryThis; +var $$43 = _export; +var uncurryThis$1b = functionUncurryThis; var fails$R = fails$1u; var thisNumberValue$1 = thisNumberValue$5; -var nativeToPrecision = uncurryThis$1a(1.0.toPrecision); +var nativeToPrecision = uncurryThis$1b(1.0.toPrecision); var FORCED$e = fails$R(function () { // IE7- @@ -6713,7 +6720,7 @@ var FORCED$e = fails$R(function () { // `Number.prototype.toPrecision` method // https://tc39.es/ecma262/#sec-number.prototype.toprecision -$$42({ target: 'Number', proto: true, forced: FORCED$e }, { +$$43({ target: 'Number', proto: true, forced: FORCED$e }, { toPrecision: function toPrecision(precision) { return precision === undefined ? nativeToPrecision(thisNumberValue$1(this)) @@ -6722,7 +6729,7 @@ $$42({ target: 'Number', proto: true, forced: FORCED$e }, { }); var DESCRIPTORS$y = descriptors; -var uncurryThis$19 = functionUncurryThis; +var uncurryThis$1a = functionUncurryThis; var call$15 = functionCall; var fails$Q = fails$1u; var objectKeys$3 = objectKeys$6; @@ -6735,7 +6742,7 @@ var IndexedObject$2 = indexedObject; var $assign = Object.assign; // eslint-disable-next-line es/no-object-defineproperty -- required for testing var defineProperty$8 = Object.defineProperty; -var concat$2 = uncurryThis$19([].concat); +var concat$2 = uncurryThis$1a([].concat); // `Object.assign` method // https://tc39.es/ecma262/#sec-object.assign @@ -6778,24 +6785,24 @@ var objectAssign = !$assign || fails$Q(function () { } return T; } : $assign; -var $$41 = _export; +var $$42 = _export; var assign$1 = objectAssign; // `Object.assign` method // https://tc39.es/ecma262/#sec-object.assign // eslint-disable-next-line es/no-object-assign -- required for testing -$$41({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign$1 }, { +$$42({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign$1 }, { assign: assign$1 }); // TODO: Remove from `core-js@4` -var $$40 = _export; +var $$41 = _export; var DESCRIPTORS$x = descriptors; var create$d = objectCreate$1; // `Object.create` method // https://tc39.es/ecma262/#sec-object.create -$$40({ target: 'Object', stat: true, sham: !DESCRIPTORS$x }, { +$$41({ target: 'Object', stat: true, sham: !DESCRIPTORS$x }, { create: create$d }); @@ -6815,7 +6822,7 @@ var objectPrototypeAccessorsForced = !fails$P(function () { delete global$H[key]; }); -var $$3$ = _export; +var $$40 = _export; var DESCRIPTORS$w = descriptors; var FORCED$d = objectPrototypeAccessorsForced; var aCallable$D = aCallable$N; @@ -6825,36 +6832,36 @@ var definePropertyModule$4 = objectDefineProperty; // `Object.prototype.__defineGetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ if (DESCRIPTORS$w) { - $$3$({ target: 'Object', proto: true, forced: FORCED$d }, { + $$40({ target: 'Object', proto: true, forced: FORCED$d }, { __defineGetter__: function __defineGetter__(P, getter) { definePropertyModule$4.f(toObject$j(this), P, { get: aCallable$D(getter), enumerable: true, configurable: true }); } }); } -var $$3_ = _export; +var $$3$ = _export; var DESCRIPTORS$v = descriptors; var defineProperties = objectDefineProperties.f; // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe -$$3_({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS$v }, { +$$3$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS$v }, { defineProperties: defineProperties }); -var $$3Z = _export; +var $$3_ = _export; var DESCRIPTORS$u = descriptors; var defineProperty$7 = objectDefineProperty.f; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty // eslint-disable-next-line es/no-object-defineproperty -- safe -$$3Z({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty$7, sham: !DESCRIPTORS$u }, { +$$3_({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty$7, sham: !DESCRIPTORS$u }, { defineProperty: defineProperty$7 }); -var $$3Y = _export; +var $$3Z = _export; var DESCRIPTORS$t = descriptors; var FORCED$c = objectPrototypeAccessorsForced; var aCallable$C = aCallable$N; @@ -6864,7 +6871,7 @@ var definePropertyModule$3 = objectDefineProperty; // `Object.prototype.__defineSetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ if (DESCRIPTORS$t) { - $$3Y({ target: 'Object', proto: true, forced: FORCED$c }, { + $$3Z({ target: 'Object', proto: true, forced: FORCED$c }, { __defineSetter__: function __defineSetter__(P, setter) { definePropertyModule$3.f(toObject$i(this), P, { set: aCallable$C(setter), enumerable: true, configurable: true }); } @@ -6873,14 +6880,14 @@ if (DESCRIPTORS$t) { var DESCRIPTORS$s = descriptors; var fails$O = fails$1u; -var uncurryThis$18 = functionUncurryThis; +var uncurryThis$19 = functionUncurryThis; var objectGetPrototypeOf$1 = objectGetPrototypeOf$2; var objectKeys$2 = objectKeys$6; var toIndexedObject$5 = toIndexedObject$k; var $propertyIsEnumerable = objectPropertyIsEnumerable.f; -var propertyIsEnumerable = uncurryThis$18($propertyIsEnumerable); -var push$m = uncurryThis$18([].push); +var propertyIsEnumerable = uncurryThis$19($propertyIsEnumerable); +var push$m = uncurryThis$19([].push); // in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys // of `null` prototype objects @@ -6920,18 +6927,18 @@ var objectToArray = { values: createMethod$2(false) }; -var $$3X = _export; +var $$3Y = _export; var $entries = objectToArray.entries; // `Object.entries` method // https://tc39.es/ecma262/#sec-object.entries -$$3X({ target: 'Object', stat: true }, { +$$3Y({ target: 'Object', stat: true }, { entries: function entries(O) { return $entries(O); } }); -var $$3W = _export; +var $$3X = _export; var FREEZING$6 = freezing; var fails$N = fails$1u; var isObject$r = isObject$K; @@ -6943,19 +6950,19 @@ var FAILS_ON_PRIMITIVES$5 = fails$N(function () { $freeze(1); }); // `Object.freeze` method // https://tc39.es/ecma262/#sec-object.freeze -$$3W({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$5, sham: !FREEZING$6 }, { +$$3X({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$5, sham: !FREEZING$6 }, { freeze: function freeze(it) { return $freeze && isObject$r(it) ? $freeze(onFreeze$2(it)) : it; } }); -var $$3V = _export; +var $$3W = _export; var iterate$C = iterate$G; var createProperty$4 = createProperty$b; // `Object.fromEntries` method // https://github.com/tc39/proposal-object-from-entries -$$3V({ target: 'Object', stat: true }, { +$$3W({ target: 'Object', stat: true }, { fromEntries: function fromEntries(iterable) { var obj = {}; iterate$C(iterable, function (k, v) { @@ -6965,7 +6972,7 @@ $$3V({ target: 'Object', stat: true }, { } }); -var $$3U = _export; +var $$3V = _export; var fails$M = fails$1u; var toIndexedObject$4 = toIndexedObject$k; var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; @@ -6975,13 +6982,13 @@ var FORCED$b = !DESCRIPTORS$r || fails$M(function () { nativeGetOwnPropertyDescr // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -$$3U({ target: 'Object', stat: true, forced: FORCED$b, sham: !DESCRIPTORS$r }, { +$$3V({ target: 'Object', stat: true, forced: FORCED$b, sham: !DESCRIPTORS$r }, { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { return nativeGetOwnPropertyDescriptor$1(toIndexedObject$4(it), key); } }); -var $$3T = _export; +var $$3U = _export; var DESCRIPTORS$q = descriptors; var ownKeys$1 = ownKeys$3; var toIndexedObject$3 = toIndexedObject$k; @@ -6990,7 +6997,7 @@ var createProperty$3 = createProperty$b; // `Object.getOwnPropertyDescriptors` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors -$$3T({ target: 'Object', stat: true, sham: !DESCRIPTORS$q }, { +$$3U({ target: 'Object', stat: true, sham: !DESCRIPTORS$q }, { getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { var O = toIndexedObject$3(object); var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule$4.f; @@ -7006,7 +7013,7 @@ $$3T({ target: 'Object', stat: true, sham: !DESCRIPTORS$q }, { } }); -var $$3S = _export; +var $$3T = _export; var fails$L = fails$1u; var getOwnPropertyNames$3 = objectGetOwnPropertyNamesExternal.f; @@ -7015,11 +7022,11 @@ var FAILS_ON_PRIMITIVES$4 = fails$L(function () { return !Object.getOwnPropertyN // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames -$$3S({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$4 }, { +$$3T({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$4 }, { getOwnPropertyNames: getOwnPropertyNames$3 }); -var $$3R = _export; +var $$3S = _export; var fails$K = fails$1u; var toObject$h = toObject$D; var nativeGetPrototypeOf = objectGetPrototypeOf$2; @@ -7029,18 +7036,18 @@ var FAILS_ON_PRIMITIVES$3 = fails$K(function () { nativeGetPrototypeOf(1); }); // `Object.getPrototypeOf` method // https://tc39.es/ecma262/#sec-object.getprototypeof -$$3R({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$3, sham: !CORRECT_PROTOTYPE_GETTER$1 }, { +$$3S({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$3, sham: !CORRECT_PROTOTYPE_GETTER$1 }, { getPrototypeOf: function getPrototypeOf(it) { return nativeGetPrototypeOf(toObject$h(it)); } }); -var $$3Q = _export; +var $$3R = _export; var hasOwn$l = hasOwnProperty_1; // `Object.hasOwn` method // https://tc39.es/ecma262/#sec-object.hasown -$$3Q({ target: 'Object', stat: true }, { +$$3R({ target: 'Object', stat: true }, { hasOwn: hasOwn$l }); @@ -7052,26 +7059,26 @@ var sameValue$1 = Object.is || function is(x, y) { return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; }; -var $$3P = _export; +var $$3Q = _export; var is = sameValue$1; // `Object.is` method // https://tc39.es/ecma262/#sec-object.is -$$3P({ target: 'Object', stat: true }, { +$$3Q({ target: 'Object', stat: true }, { is: is }); -var $$3O = _export; +var $$3P = _export; var $isExtensible$1 = objectIsExtensible; // `Object.isExtensible` method // https://tc39.es/ecma262/#sec-object.isextensible // eslint-disable-next-line es/no-object-isextensible -- safe -$$3O({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible$1 }, { +$$3P({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible$1 }, { isExtensible: $isExtensible$1 }); -var $$3N = _export; +var $$3O = _export; var fails$J = fails$1u; var isObject$q = isObject$K; var classof$g = classofRaw$2; @@ -7084,7 +7091,7 @@ var FORCED$a = ARRAY_BUFFER_NON_EXTENSIBLE$1 || fails$J(function () { $isFrozen( // `Object.isFrozen` method // https://tc39.es/ecma262/#sec-object.isfrozen -$$3N({ target: 'Object', stat: true, forced: FORCED$a }, { +$$3O({ target: 'Object', stat: true, forced: FORCED$a }, { isFrozen: function isFrozen(it) { if (!isObject$q(it)) return true; if (ARRAY_BUFFER_NON_EXTENSIBLE$1 && classof$g(it) === 'ArrayBuffer') return true; @@ -7092,7 +7099,7 @@ $$3N({ target: 'Object', stat: true, forced: FORCED$a }, { } }); -var $$3M = _export; +var $$3N = _export; var fails$I = fails$1u; var isObject$p = isObject$K; var classof$f = classofRaw$2; @@ -7105,7 +7112,7 @@ var FORCED$9 = ARRAY_BUFFER_NON_EXTENSIBLE || fails$I(function () { $isSealed(1) // `Object.isSealed` method // https://tc39.es/ecma262/#sec-object.issealed -$$3M({ target: 'Object', stat: true, forced: FORCED$9 }, { +$$3N({ target: 'Object', stat: true, forced: FORCED$9 }, { isSealed: function isSealed(it) { if (!isObject$p(it)) return true; if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$f(it) === 'ArrayBuffer') return true; @@ -7113,7 +7120,7 @@ $$3M({ target: 'Object', stat: true, forced: FORCED$9 }, { } }); -var $$3L = _export; +var $$3M = _export; var toObject$g = toObject$D; var nativeKeys = objectKeys$6; var fails$H = fails$1u; @@ -7122,13 +7129,13 @@ var FAILS_ON_PRIMITIVES$2 = fails$H(function () { nativeKeys(1); }); // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys -$$3L({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$2 }, { +$$3M({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$2 }, { keys: function keys(it) { return nativeKeys(toObject$g(it)); } }); -var $$3K = _export; +var $$3L = _export; var DESCRIPTORS$p = descriptors; var FORCED$8 = objectPrototypeAccessorsForced; var toObject$f = toObject$D; @@ -7139,7 +7146,7 @@ var getOwnPropertyDescriptor$a = objectGetOwnPropertyDescriptor.f; // `Object.prototype.__lookupGetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ if (DESCRIPTORS$p) { - $$3K({ target: 'Object', proto: true, forced: FORCED$8 }, { + $$3L({ target: 'Object', proto: true, forced: FORCED$8 }, { __lookupGetter__: function __lookupGetter__(P) { var O = toObject$f(this); var key = toPropertyKey$5(P); @@ -7151,7 +7158,7 @@ if (DESCRIPTORS$p) { }); } -var $$3J = _export; +var $$3K = _export; var DESCRIPTORS$o = descriptors; var FORCED$7 = objectPrototypeAccessorsForced; var toObject$e = toObject$D; @@ -7162,7 +7169,7 @@ var getOwnPropertyDescriptor$9 = objectGetOwnPropertyDescriptor.f; // `Object.prototype.__lookupSetter__` method // https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ if (DESCRIPTORS$o) { - $$3J({ target: 'Object', proto: true, forced: FORCED$7 }, { + $$3K({ target: 'Object', proto: true, forced: FORCED$7 }, { __lookupSetter__: function __lookupSetter__(P) { var O = toObject$e(this); var key = toPropertyKey$4(P); @@ -7174,7 +7181,7 @@ if (DESCRIPTORS$o) { }); } -var $$3I = _export; +var $$3J = _export; var isObject$o = isObject$K; var onFreeze$1 = internalMetadataExports.onFreeze; var FREEZING$5 = freezing; @@ -7186,7 +7193,7 @@ var FAILS_ON_PRIMITIVES$1 = fails$G(function () { $preventExtensions(1); }); // `Object.preventExtensions` method // https://tc39.es/ecma262/#sec-object.preventextensions -$$3I({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$1, sham: !FREEZING$5 }, { +$$3J({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$1, sham: !FREEZING$5 }, { preventExtensions: function preventExtensions(it) { return $preventExtensions && isObject$o(it) ? $preventExtensions(onFreeze$1(it)) : it; } @@ -7221,7 +7228,7 @@ if (DESCRIPTORS$n && getPrototypeOf$9 && setPrototypeOf$4 && !(PROTO in ObjectPr }); } catch (error) { /* empty */ } -var $$3H = _export; +var $$3I = _export; var isObject$m = isObject$K; var onFreeze = internalMetadataExports.onFreeze; var FREEZING$4 = freezing; @@ -7233,18 +7240,18 @@ var FAILS_ON_PRIMITIVES = fails$F(function () { $seal(1); }); // `Object.seal` method // https://tc39.es/ecma262/#sec-object.seal -$$3H({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING$4 }, { +$$3I({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING$4 }, { seal: function seal(it) { return $seal && isObject$m(it) ? $seal(onFreeze(it)) : it; } }); -var $$3G = _export; +var $$3H = _export; var setPrototypeOf$3 = objectSetPrototypeOf$1; // `Object.setPrototypeOf` method // https://tc39.es/ecma262/#sec-object.setprototypeof -$$3G({ target: 'Object', stat: true }, { +$$3H({ target: 'Object', stat: true }, { setPrototypeOf: setPrototypeOf$3 }); @@ -7259,47 +7266,47 @@ var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() var TO_STRING_TAG_SUPPORT = toStringTagSupport; var defineBuiltIn$i = defineBuiltIn$u; -var toString$w = objectToString; +var toString$x = objectToString; // `Object.prototype.toString` method // https://tc39.es/ecma262/#sec-object.prototype.tostring if (!TO_STRING_TAG_SUPPORT) { - defineBuiltIn$i(Object.prototype, 'toString', toString$w, { unsafe: true }); + defineBuiltIn$i(Object.prototype, 'toString', toString$x, { unsafe: true }); } -var $$3F = _export; +var $$3G = _export; var $values = objectToArray.values; // `Object.values` method // https://tc39.es/ecma262/#sec-object.values -$$3F({ target: 'Object', stat: true }, { +$$3G({ target: 'Object', stat: true }, { values: function values(O) { return $values(O); } }); -var $$3E = _export; +var $$3F = _export; var $parseFloat = numberParseFloat; // `parseFloat` method // https://tc39.es/ecma262/#sec-parsefloat-string -$$3E({ global: true, forced: parseFloat !== $parseFloat }, { +$$3F({ global: true, forced: parseFloat !== $parseFloat }, { parseFloat: $parseFloat }); -var $$3D = _export; +var $$3E = _export; var $parseInt$1 = numberParseInt; // `parseInt` method // https://tc39.es/ecma262/#sec-parseint-string-radix -$$3D({ global: true, forced: parseInt !== $parseInt$1 }, { +$$3E({ global: true, forced: parseInt !== $parseInt$1 }, { parseInt: $parseInt$1 }); var $TypeError$s = TypeError; var validateArgumentsLength$b = function (passed, required) { - if (passed < required) throw $TypeError$s('Not enough arguments'); + if (passed < required) throw new $TypeError$s('Not enough arguments'); return passed; }; @@ -7311,7 +7318,7 @@ var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$3); var global$G = global$16; var apply$9 = functionApply$1; var bind$n = functionBindContext; -var isCallable$m = isCallable$K; +var isCallable$l = isCallable$J; var hasOwn$k = hasOwnProperty_1; var fails$E = fails$1u; var html = html$2; @@ -7331,7 +7338,7 @@ var String$1 = global$G.String; var counter = 0; var queue$2 = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; -var $location, defer, channel, port; +var $location, defer, channel$1, port; fails$E(function () { // Deno throws a ReferenceError on `location` access without `--location` flag @@ -7365,7 +7372,7 @@ var globalPostMessageDefer = function (id) { if (!set$9 || !clear) { set$9 = function setImmediate(handler) { validateArgumentsLength$a(arguments.length, 1); - var fn = isCallable$m(handler) ? handler : Function$2(handler); + var fn = isCallable$l(handler) ? handler : Function$2(handler); var args = arraySlice$6(arguments, 1); queue$2[++counter] = function () { apply$9(fn, undefined, args); @@ -7389,15 +7396,15 @@ if (!set$9 || !clear) { // Browsers with MessageChannel, includes WebWorkers // except iOS - https://github.com/zloirock/core-js/issues/624 } else if (MessageChannel && !IS_IOS$1) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = eventListener; + channel$1 = new MessageChannel(); + port = channel$1.port2; + channel$1.port1.onmessage = eventListener; defer = bind$n(port.postMessage, port); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' } else if ( global$G.addEventListener && - isCallable$m(global$G.postMessage) && + isCallable$l(global$G.postMessage) && !global$G.importScripts && $location && $location.protocol !== 'file:' && !fails$E(globalPostMessageDefer) @@ -7570,18 +7577,18 @@ var engineIsBrowser = !IS_DENO$2 && !IS_NODE$4 var global$D = global$16; var NativePromiseConstructor$4 = promiseNativeConstructor; -var isCallable$l = isCallable$K; +var isCallable$k = isCallable$J; var isForced$1 = isForced_1; var inspectSource$1 = inspectSource$4; -var wellKnownSymbol$v = wellKnownSymbol$T; +var wellKnownSymbol$u = wellKnownSymbol$S; var IS_BROWSER$1 = engineIsBrowser; var IS_DENO$1 = engineIsDeno; var V8_VERSION = engineV8Version; NativePromiseConstructor$4 && NativePromiseConstructor$4.prototype; -var SPECIES$1 = wellKnownSymbol$v('species'); +var SPECIES$1 = wellKnownSymbol$u('species'); var SUBCLASSING = false; -var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$l(global$D.PromiseRejectionEvent); +var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$k(global$D.PromiseRejectionEvent); var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1('Promise', function () { var PROMISE_CONSTRUCTOR_SOURCE = inspectSource$1(NativePromiseConstructor$4); @@ -7622,7 +7629,7 @@ var $TypeError$r = TypeError; var PromiseCapability = function (C) { var resolve, reject; this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw $TypeError$r('Bad Promise constructor'); + if (resolve !== undefined || reject !== undefined) throw new $TypeError$r('Bad Promise constructor'); resolve = $$resolve; reject = $$reject; }); @@ -7636,7 +7643,7 @@ newPromiseCapability$2.f = function (C) { return new PromiseCapability(C); }; -var $$3C = _export; +var $$3D = _export; var IS_NODE$3 = engineIsNode; var global$C = global$16; var call$14 = functionCall; @@ -7645,7 +7652,7 @@ var setPrototypeOf$2 = objectSetPrototypeOf$1; var setToStringTag$4 = setToStringTag$d; var setSpecies$3 = setSpecies$7; var aCallable$A = aCallable$N; -var isCallable$k = isCallable$K; +var isCallable$j = isCallable$J; var isObject$l = isObject$K; var anInstance$b = anInstance$f; var speciesConstructor$4 = speciesConstructor$6; @@ -7688,7 +7695,7 @@ var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; // helpers var isThenable = function (it) { var then; - return isObject$l(it) && isCallable$k(then = it.then) ? then : false; + return isObject$l(it) && isCallable$j(then = it.then) ? then : false; }; var callReaction = function (reaction, state) { @@ -7715,7 +7722,7 @@ var callReaction = function (reaction, state) { } } if (result === reaction.promise) { - reject(TypeError$5('Promise-chain cycle')); + reject(new TypeError$5('Promise-chain cycle')); } else if (then = isThenable(result)) { call$14(then, result, resolve, reject); } else resolve(result); @@ -7805,7 +7812,7 @@ var internalResolve = function (state, value, unwrap) { state.done = true; if (unwrap) state = unwrap; try { - if (state.facade === value) throw TypeError$5("Promise can't be resolved itself"); + if (state.facade === value) throw new TypeError$5("Promise can't be resolved itself"); var then = isThenable(value); if (then) { microtask$1(function () { @@ -7866,8 +7873,8 @@ if (FORCED_PROMISE_CONSTRUCTOR$4) { var state = getInternalPromiseState(this); var reaction = newPromiseCapability$1(speciesConstructor$4(this, PromiseConstructor)); state.parent = true; - reaction.ok = isCallable$k(onFulfilled) ? onFulfilled : true; - reaction.fail = isCallable$k(onRejected) && onRejected; + reaction.ok = isCallable$j(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$j(onRejected) && onRejected; reaction.domain = IS_NODE$3 ? process$1.domain : undefined; if (state.state === PENDING$2) state.reactions.add(reaction); else microtask$1(function () { @@ -7890,7 +7897,7 @@ if (FORCED_PROMISE_CONSTRUCTOR$4) { : newGenericPromiseCapability(C); }; - if (isCallable$k(NativePromiseConstructor$3) && NativePromisePrototype$2 !== Object.prototype) { + if (isCallable$j(NativePromiseConstructor$3) && NativePromisePrototype$2 !== Object.prototype) { nativeThen = NativePromisePrototype$2.then; if (!NATIVE_PROMISE_SUBCLASSING) { @@ -7916,7 +7923,7 @@ if (FORCED_PROMISE_CONSTRUCTOR$4) { } } -$$3C({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { +$$3D({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { Promise: PromiseConstructor }); @@ -7931,7 +7938,7 @@ var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCor NativePromiseConstructor$2.all(iterable).then(undefined, function () { /* empty */ }); }); -var $$3B = _export; +var $$3C = _export; var call$13 = functionCall; var aCallable$z = aCallable$N; var newPromiseCapabilityModule$6 = newPromiseCapability$2; @@ -7941,7 +7948,7 @@ var PROMISE_STATICS_INCORRECT_ITERATION$3 = promiseStaticsIncorrectIteration; // `Promise.all` method // https://tc39.es/ecma262/#sec-promise.all -$$3B({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$3 }, { +$$3C({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$3 }, { all: function all(iterable) { var C = this; var capability = newPromiseCapabilityModule$6.f(C); @@ -7970,32 +7977,32 @@ $$3B({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATIO } }); -var $$3A = _export; +var $$3B = _export; var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; var NativePromiseConstructor$1 = promiseNativeConstructor; var getBuiltIn$A = getBuiltIn$M; -var isCallable$j = isCallable$K; +var isCallable$i = isCallable$J; var defineBuiltIn$g = defineBuiltIn$u; var NativePromisePrototype$1 = NativePromiseConstructor$1 && NativePromiseConstructor$1.prototype; // `Promise.prototype.catch` method // https://tc39.es/ecma262/#sec-promise.prototype.catch -$$3A({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { +$$3B({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { 'catch': function (onRejected) { return this.then(undefined, onRejected); } }); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` -if (isCallable$j(NativePromiseConstructor$1)) { +if (isCallable$i(NativePromiseConstructor$1)) { var method$1 = getBuiltIn$A('Promise').prototype['catch']; if (NativePromisePrototype$1['catch'] !== method$1) { defineBuiltIn$g(NativePromisePrototype$1, 'catch', method$1, { unsafe: true }); } } -var $$3z = _export; +var $$3A = _export; var call$12 = functionCall; var aCallable$y = aCallable$N; var newPromiseCapabilityModule$5 = newPromiseCapability$2; @@ -8005,7 +8012,7 @@ var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration; // `Promise.race` method // https://tc39.es/ecma262/#sec-promise.race -$$3z({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$2 }, { +$$3A({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$2 }, { race: function race(iterable) { var C = this; var capability = newPromiseCapabilityModule$5.f(C); @@ -8021,14 +8028,14 @@ $$3z({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATIO } }); -var $$3y = _export; +var $$3z = _export; var call$11 = functionCall; var newPromiseCapabilityModule$4 = newPromiseCapability$2; var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; // `Promise.reject` method // https://tc39.es/ecma262/#sec-promise.reject -$$3y({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { +$$3z({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { reject: function reject(r) { var capability = newPromiseCapabilityModule$4.f(this); call$11(capability.reject, undefined, r); @@ -8049,7 +8056,7 @@ var promiseResolve$2 = function (C, x) { return promiseCapability.promise; }; -var $$3x = _export; +var $$3y = _export; var getBuiltIn$z = getBuiltIn$M; var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; var promiseResolve$1 = promiseResolve$2; @@ -8058,13 +8065,13 @@ getBuiltIn$z('Promise'); // `Promise.resolve` method // https://tc39.es/ecma262/#sec-promise.resolve -$$3x({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { +$$3y({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { resolve: function resolve(x) { return promiseResolve$1(this, x); } }); -var $$3w = _export; +var $$3x = _export; var call$10 = functionCall; var aCallable$x = aCallable$N; var newPromiseCapabilityModule$3 = newPromiseCapability$2; @@ -8074,7 +8081,7 @@ var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; // `Promise.allSettled` method // https://tc39.es/ecma262/#sec-promise.allsettled -$$3w({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { +$$3x({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { allSettled: function allSettled(iterable) { var C = this; var capability = newPromiseCapabilityModule$3.f(C); @@ -8108,7 +8115,7 @@ $$3w({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATIO } }); -var $$3v = _export; +var $$3w = _export; var call$$ = functionCall; var aCallable$w = aCallable$N; var getBuiltIn$y = getBuiltIn$M; @@ -8121,7 +8128,7 @@ var PROMISE_ANY_ERROR = 'No one promise resolved'; // `Promise.any` method // https://tc39.es/ecma262/#sec-promise.any -$$3v({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { +$$3w({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { any: function any(iterable) { var C = this; var AggregateError = getBuiltIn$y('AggregateError'); @@ -8156,11 +8163,11 @@ $$3v({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATIO } }); -var $$3u = _export; +var $$3v = _export; var NativePromiseConstructor = promiseNativeConstructor; var fails$D = fails$1u; var getBuiltIn$x = getBuiltIn$M; -var isCallable$i = isCallable$K; +var isCallable$h = isCallable$J; var speciesConstructor$3 = speciesConstructor$6; var promiseResolve = promiseResolve$2; var defineBuiltIn$f = defineBuiltIn$u; @@ -8175,10 +8182,10 @@ var NON_GENERIC = !!NativePromiseConstructor && fails$D(function () { // `Promise.prototype.finally` method // https://tc39.es/ecma262/#sec-promise.prototype.finally -$$3u({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { +$$3v({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { 'finally': function (onFinally) { var C = speciesConstructor$3(this, getBuiltIn$x('Promise')); - var isFunction = isCallable$i(onFinally); + var isFunction = isCallable$h(onFinally); return this.then( isFunction ? function (x) { return promiseResolve(C, onFinally()).then(function () { return x; }); @@ -8191,14 +8198,14 @@ $$3u({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { }); // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` -if (isCallable$i(NativePromiseConstructor)) { +if (isCallable$h(NativePromiseConstructor)) { var method = getBuiltIn$x('Promise').prototype['finally']; if (NativePromisePrototype['finally'] !== method) { defineBuiltIn$f(NativePromisePrototype, 'finally', method, { unsafe: true }); } } -var $$3t = _export; +var $$3u = _export; var functionApply = functionApply$1; var aCallable$v = aCallable$N; var anObject$$ = anObject$1f; @@ -8212,13 +8219,13 @@ var OPTIONAL_ARGUMENTS_LIST = !fails$C(function () { // `Reflect.apply` method // https://tc39.es/ecma262/#sec-reflect.apply -$$3t({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { +$$3u({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { apply: function apply(target, thisArgument, argumentsList) { return functionApply(aCallable$v(target), thisArgument, anObject$$(argumentsList)); } }); -var $$3s = _export; +var $$3t = _export; var getBuiltIn$w = getBuiltIn$M; var apply$8 = functionApply$1; var bind$k = functionBind; @@ -8247,7 +8254,7 @@ var ARGS_BUG = !fails$B(function () { var FORCED$6 = NEW_TARGET_BUG || ARGS_BUG; -$$3s({ target: 'Reflect', stat: true, forced: FORCED$6, sham: FORCED$6 }, { +$$3t({ target: 'Reflect', stat: true, forced: FORCED$6, sham: FORCED$6 }, { construct: function construct(Target, args /* , newTarget */) { aConstructor$3(Target); anObject$_(args); @@ -8275,7 +8282,7 @@ $$3s({ target: 'Reflect', stat: true, forced: FORCED$6, sham: FORCED$6 }, { } }); -var $$3r = _export; +var $$3s = _export; var DESCRIPTORS$m = descriptors; var anObject$Z = anObject$1f; var toPropertyKey$3 = toPropertyKey$a; @@ -8290,7 +8297,7 @@ var ERROR_INSTEAD_OF_FALSE = fails$A(function () { // `Reflect.defineProperty` method // https://tc39.es/ecma262/#sec-reflect.defineproperty -$$3r({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS$m }, { +$$3s({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS$m }, { defineProperty: function defineProperty(target, propertyKey, attributes) { anObject$Z(target); var key = toPropertyKey$3(propertyKey); @@ -8304,13 +8311,13 @@ $$3r({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DES } }); -var $$3q = _export; +var $$3r = _export; var anObject$Y = anObject$1f; var getOwnPropertyDescriptor$7 = objectGetOwnPropertyDescriptor.f; // `Reflect.deleteProperty` method // https://tc39.es/ecma262/#sec-reflect.deleteproperty -$$3q({ target: 'Reflect', stat: true }, { +$$3r({ target: 'Reflect', stat: true }, { deleteProperty: function deleteProperty(target, propertyKey) { var descriptor = getOwnPropertyDescriptor$7(anObject$Y(target), propertyKey); return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; @@ -8323,7 +8330,7 @@ var isDataDescriptor$2 = function (descriptor) { return descriptor !== undefined && (hasOwn$j(descriptor, 'value') || hasOwn$j(descriptor, 'writable')); }; -var $$3p = _export; +var $$3q = _export; var call$_ = functionCall; var isObject$i = isObject$K; var anObject$X = anObject$1f; @@ -8344,76 +8351,76 @@ function get$4(target, propertyKey /* , receiver */) { if (isObject$i(prototype = getPrototypeOf$8(target))) return get$4(prototype, propertyKey, receiver); } -$$3p({ target: 'Reflect', stat: true }, { +$$3q({ target: 'Reflect', stat: true }, { get: get$4 }); -var $$3o = _export; +var $$3p = _export; var DESCRIPTORS$l = descriptors; var anObject$W = anObject$1f; var getOwnPropertyDescriptorModule$2 = objectGetOwnPropertyDescriptor; // `Reflect.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor -$$3o({ target: 'Reflect', stat: true, sham: !DESCRIPTORS$l }, { +$$3p({ target: 'Reflect', stat: true, sham: !DESCRIPTORS$l }, { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { return getOwnPropertyDescriptorModule$2.f(anObject$W(target), propertyKey); } }); -var $$3n = _export; +var $$3o = _export; var anObject$V = anObject$1f; var objectGetPrototypeOf = objectGetPrototypeOf$2; var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; // `Reflect.getPrototypeOf` method // https://tc39.es/ecma262/#sec-reflect.getprototypeof -$$3n({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { +$$3o({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { getPrototypeOf: function getPrototypeOf(target) { return objectGetPrototypeOf(anObject$V(target)); } }); -var $$3m = _export; +var $$3n = _export; // `Reflect.has` method // https://tc39.es/ecma262/#sec-reflect.has -$$3m({ target: 'Reflect', stat: true }, { +$$3n({ target: 'Reflect', stat: true }, { has: function has(target, propertyKey) { return propertyKey in target; } }); -var $$3l = _export; +var $$3m = _export; var anObject$U = anObject$1f; var $isExtensible = objectIsExtensible; // `Reflect.isExtensible` method // https://tc39.es/ecma262/#sec-reflect.isextensible -$$3l({ target: 'Reflect', stat: true }, { +$$3m({ target: 'Reflect', stat: true }, { isExtensible: function isExtensible(target) { anObject$U(target); return $isExtensible(target); } }); -var $$3k = _export; +var $$3l = _export; var ownKeys = ownKeys$3; // `Reflect.ownKeys` method // https://tc39.es/ecma262/#sec-reflect.ownkeys -$$3k({ target: 'Reflect', stat: true }, { +$$3l({ target: 'Reflect', stat: true }, { ownKeys: ownKeys }); -var $$3j = _export; +var $$3k = _export; var getBuiltIn$v = getBuiltIn$M; var anObject$T = anObject$1f; var FREEZING$3 = freezing; // `Reflect.preventExtensions` method // https://tc39.es/ecma262/#sec-reflect.preventextensions -$$3j({ target: 'Reflect', stat: true, sham: !FREEZING$3 }, { +$$3k({ target: 'Reflect', stat: true, sham: !FREEZING$3 }, { preventExtensions: function preventExtensions(target) { anObject$T(target); try { @@ -8426,7 +8433,7 @@ $$3j({ target: 'Reflect', stat: true, sham: !FREEZING$3 }, { } }); -var $$3i = _export; +var $$3j = _export; var call$Z = functionCall; var anObject$S = anObject$1f; var isObject$h = isObject$K; @@ -8472,18 +8479,18 @@ var MS_EDGE_BUG = fails$z(function () { return Reflect.set(Constructor.prototype, 'a', 1, object) !== false; }); -$$3i({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { +$$3j({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { set: set$8 }); -var $$3h = _export; +var $$3i = _export; var anObject$R = anObject$1f; var aPossiblePrototype = aPossiblePrototype$2; var objectSetPrototypeOf = objectSetPrototypeOf$1; // `Reflect.setPrototypeOf` method // https://tc39.es/ecma262/#sec-reflect.setprototypeof -if (objectSetPrototypeOf) $$3h({ target: 'Reflect', stat: true }, { +if (objectSetPrototypeOf) $$3i({ target: 'Reflect', stat: true }, { setPrototypeOf: function setPrototypeOf(target, proto) { anObject$R(target); aPossiblePrototype(proto); @@ -8496,11 +8503,11 @@ if (objectSetPrototypeOf) $$3h({ target: 'Reflect', stat: true }, { } }); -var $$3g = _export; +var $$3h = _export; var global$B = global$16; var setToStringTag$3 = setToStringTag$d; -$$3g({ global: true }, { Reflect: {} }); +$$3h({ global: true }, { Reflect: {} }); // Reflect[@@toStringTag] property // https://tc39.es/ecma262/#sec-reflect-@@tostringtag @@ -8508,9 +8515,9 @@ setToStringTag$3(global$B.Reflect, 'Reflect', true); var isObject$g = isObject$K; var classof$d = classofRaw$2; -var wellKnownSymbol$u = wellKnownSymbol$T; +var wellKnownSymbol$t = wellKnownSymbol$S; -var MATCH$2 = wellKnownSymbol$u('match'); +var MATCH$2 = wellKnownSymbol$t('match'); // `IsRegExp` abstract operation // https://tc39.es/ecma262/#sec-isregexp @@ -8589,7 +8596,7 @@ var $RegExp$1 = global$z.RegExp; var regexpUnsupportedDotAll = fails$x(function () { var re = $RegExp$1('.', 's'); - return !(re.dotAll && re.exec('\n') && re.flags === 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); }); var fails$w = fails$1u; @@ -8606,14 +8613,14 @@ var regexpUnsupportedNcg = fails$w(function () { var DESCRIPTORS$k = descriptors; var global$x = global$16; -var uncurryThis$17 = functionUncurryThis; +var uncurryThis$18 = functionUncurryThis; var isForced = isForced_1; var inheritIfRequired$2 = inheritIfRequired$6; var createNonEnumerableProperty$a = createNonEnumerableProperty$k; var getOwnPropertyNames$2 = objectGetOwnPropertyNames.f; var isPrototypeOf$4 = objectIsPrototypeOf; var isRegExp$4 = isRegexp; -var toString$v = toString$I; +var toString$w = toString$J; var getRegExpFlags$4 = regexpGetFlags; var stickyHelpers$2 = regexpStickyHelpers; var proxyAccessor = proxyAccessor$2; @@ -8622,19 +8629,19 @@ var fails$v = fails$1u; var hasOwn$h = hasOwnProperty_1; var enforceInternalState$2 = internalState.enforce; var setSpecies$2 = setSpecies$7; -var wellKnownSymbol$t = wellKnownSymbol$T; +var wellKnownSymbol$s = wellKnownSymbol$S; var UNSUPPORTED_DOT_ALL$2 = regexpUnsupportedDotAll; var UNSUPPORTED_NCG$1 = regexpUnsupportedNcg; -var MATCH$1 = wellKnownSymbol$t('match'); +var MATCH$1 = wellKnownSymbol$s('match'); var NativeRegExp = global$x.RegExp; var RegExpPrototype$6 = NativeRegExp.prototype; var SyntaxError$3 = global$x.SyntaxError; -var exec$c = uncurryThis$17(RegExpPrototype$6.exec); -var charAt$h = uncurryThis$17(''.charAt); -var replace$7 = uncurryThis$17(''.replace); -var stringIndexOf$5 = uncurryThis$17(''.indexOf); -var stringSlice$e = uncurryThis$17(''.slice); +var exec$c = uncurryThis$18(RegExpPrototype$6.exec); +var charAt$h = uncurryThis$18(''.charAt); +var replace$8 = uncurryThis$18(''.replace); +var stringIndexOf$5 = uncurryThis$18(''.indexOf); +var stringSlice$e = uncurryThis$18(''.slice); // TODO: Use only proper RegExpIdentifierName var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; var re1 = /a/g; @@ -8741,20 +8748,20 @@ if (isForced('RegExp', BASE_FORCED)) { if (flagsAreUndefined) flags = getRegExpFlags$4(rawPattern); } - pattern = pattern === undefined ? '' : toString$v(pattern); - flags = flags === undefined ? '' : toString$v(flags); + pattern = pattern === undefined ? '' : toString$w(pattern); + flags = flags === undefined ? '' : toString$w(flags); rawPattern = pattern; if (UNSUPPORTED_DOT_ALL$2 && 'dotAll' in re1) { dotAll = !!flags && stringIndexOf$5(flags, 's') > -1; - if (dotAll) flags = replace$7(flags, /s/g, ''); + if (dotAll) flags = replace$8(flags, /s/g, ''); } rawFlags = flags; if (MISSED_STICKY$1 && 'sticky' in re1) { sticky = !!flags && stringIndexOf$5(flags, 'y') > -1; - if (sticky && UNSUPPORTED_Y$2) flags = replace$7(flags, /y/g, ''); + if (sticky && UNSUPPORTED_Y$2) flags = replace$8(flags, /y/g, ''); } if (UNSUPPORTED_NCG$1) { @@ -8816,7 +8823,7 @@ if (DESCRIPTORS$j && UNSUPPORTED_DOT_ALL$1) { if (classof$c(this) === 'RegExp') { return !!getInternalState$c(this).dotAll; } - throw $TypeError$q('Incompatible receiver, RegExp required'); + throw new $TypeError$q('Incompatible receiver, RegExp required'); } }); } @@ -8824,8 +8831,8 @@ if (DESCRIPTORS$j && UNSUPPORTED_DOT_ALL$1) { /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ /* eslint-disable regexp/no-useless-quantifier -- testing */ var call$X = functionCall; -var uncurryThis$16 = functionUncurryThis; -var toString$u = toString$I; +var uncurryThis$17 = functionUncurryThis; +var toString$v = toString$J; var regexpFlags = regexpFlags$1; var stickyHelpers$1 = regexpStickyHelpers; var shared$4 = sharedExports; @@ -8837,10 +8844,10 @@ var UNSUPPORTED_NCG = regexpUnsupportedNcg; var nativeReplace = shared$4('native-string-replace', String.prototype.replace); var nativeExec = RegExp.prototype.exec; var patchedExec = nativeExec; -var charAt$g = uncurryThis$16(''.charAt); -var indexOf$1 = uncurryThis$16(''.indexOf); -var replace$6 = uncurryThis$16(''.replace); -var stringSlice$d = uncurryThis$16(''.slice); +var charAt$g = uncurryThis$17(''.charAt); +var indexOf$1 = uncurryThis$17(''.indexOf); +var replace$7 = uncurryThis$17(''.replace); +var stringSlice$d = uncurryThis$17(''.slice); var UPDATES_LAST_INDEX_WRONG = (function () { var re1 = /a/; @@ -8861,7 +8868,7 @@ if (PATCH) { patchedExec = function exec(string) { var re = this; var state = getInternalState$b(re); - var str = toString$u(string); + var str = toString$v(string); var raw = state.raw; var result, reCopy, lastIndex, match, i, object, group; @@ -8880,7 +8887,7 @@ if (PATCH) { var strCopy = str; if (sticky) { - flags = replace$6(flags, 'y', ''); + flags = replace$7(flags, 'y', ''); if (indexOf$1(flags, 'g') === -1) { flags += 'g'; } @@ -8938,12 +8945,12 @@ if (PATCH) { var regexpExec$3 = patchedExec; -var $$3f = _export; +var $$3g = _export; var exec$b = regexpExec$3; // `RegExp.prototype.exec` method // https://tc39.es/ecma262/#sec-regexp.prototype.exec -$$3f({ target: 'RegExp', proto: true, forced: /./.exec !== exec$b }, { +$$3g({ target: 'RegExp', proto: true, forced: /./.exec !== exec$b }, { exec: exec$b }); @@ -9024,18 +9031,18 @@ if (DESCRIPTORS$h && MISSED_STICKY) { if (classof$b(this) === 'RegExp') { return !!getInternalState$a(this).sticky; } - throw $TypeError$p('Incompatible receiver, RegExp required'); + throw new $TypeError$p('Incompatible receiver, RegExp required'); } }); } // TODO: Remove from `core-js@4` since it's moved to entry points -var $$3e = _export; +var $$3f = _export; var call$W = functionCall; -var isCallable$h = isCallable$K; +var isCallable$g = isCallable$J; var anObject$P = anObject$1f; -var toString$t = toString$I; +var toString$u = toString$J; var DELEGATES_TO_EXEC = function () { var execCalled = false; @@ -9051,12 +9058,12 @@ var nativeTest = /./.test; // `RegExp.prototype.test` method // https://tc39.es/ecma262/#sec-regexp.prototype.test -$$3e({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { +$$3f({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { test: function (S) { var R = anObject$P(this); - var string = toString$t(S); + var string = toString$u(S); var exec = R.exec; - if (!isCallable$h(exec)) return call$W(nativeTest, R, string); + if (!isCallable$g(exec)) return call$W(nativeTest, R, string); var result = call$W(exec, R, string); if (result === null) return false; anObject$P(result); @@ -9067,7 +9074,7 @@ $$3e({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { var PROPER_FUNCTION_NAME$1 = functionName.PROPER; var defineBuiltIn$d = defineBuiltIn$u; var anObject$O = anObject$1f; -var $toString$2 = toString$I; +var $toString$2 = toString$J; var fails$t = fails$1u; var getRegExpFlags$3 = regexpGetFlags; @@ -9099,14 +9106,14 @@ collection$2('Set', function (init) { return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; }, collectionStrong); -var $$3d = _export; -var uncurryThis$15 = functionUncurryThis; +var $$3e = _export; +var uncurryThis$16 = functionUncurryThis; var requireObjectCoercible$i = requireObjectCoercible$p; var toIntegerOrInfinity$a = toIntegerOrInfinity$p; -var toString$s = toString$I; +var toString$t = toString$J; var fails$s = fails$1u; -var charAt$f = uncurryThis$15(''.charAt); +var charAt$f = uncurryThis$16(''.charAt); var FORCED$4 = fails$s(function () { // eslint-disable-next-line es/no-array-string-prototype-at -- safe @@ -9115,9 +9122,9 @@ var FORCED$4 = fails$s(function () { // `String.prototype.at` method // https://tc39.es/ecma262/#sec-string.prototype.at -$$3d({ target: 'String', proto: true, forced: FORCED$4 }, { +$$3e({ target: 'String', proto: true, forced: FORCED$4 }, { at: function at(index) { - var S = toString$s(requireObjectCoercible$i(this)); + var S = toString$t(requireObjectCoercible$i(this)); var len = S.length; var relativeIndex = toIntegerOrInfinity$a(index); var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; @@ -9125,25 +9132,25 @@ $$3d({ target: 'String', proto: true, forced: FORCED$4 }, { } }); -var uncurryThis$14 = functionUncurryThis; +var uncurryThis$15 = functionUncurryThis; var toIntegerOrInfinity$9 = toIntegerOrInfinity$p; -var toString$r = toString$I; +var toString$s = toString$J; var requireObjectCoercible$h = requireObjectCoercible$p; -var charAt$e = uncurryThis$14(''.charAt); -var charCodeAt$5 = uncurryThis$14(''.charCodeAt); -var stringSlice$c = uncurryThis$14(''.slice); +var charAt$e = uncurryThis$15(''.charAt); +var charCodeAt$6 = uncurryThis$15(''.charCodeAt); +var stringSlice$c = uncurryThis$15(''.slice); var createMethod$1 = function (CONVERT_TO_STRING) { return function ($this, pos) { - var S = toString$r(requireObjectCoercible$h($this)); + var S = toString$s(requireObjectCoercible$h($this)); var position = toIntegerOrInfinity$9(pos); var size = S.length; var first, second; if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = charCodeAt$5(S, position); + first = charCodeAt$6(S, position); return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = charCodeAt$5(S, position + 1)) < 0xDC00 || second > 0xDFFF + || (second = charCodeAt$6(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt$e(S, position) : first @@ -9162,12 +9169,12 @@ var stringMultibyte = { charAt: createMethod$1(true) }; -var $$3c = _export; +var $$3d = _export; var codeAt$2 = stringMultibyte.codeAt; // `String.prototype.codePointAt` method // https://tc39.es/ecma262/#sec-string.prototype.codepointat -$$3c({ target: 'String', proto: true }, { +$$3d({ target: 'String', proto: true }, { codePointAt: function codePointAt(pos) { return codeAt$2(this, pos); } @@ -9179,13 +9186,13 @@ var $TypeError$o = TypeError; var notARegexp = function (it) { if (isRegExp$3(it)) { - throw $TypeError$o("The method doesn't accept regular expressions"); + throw new $TypeError$o("The method doesn't accept regular expressions"); } return it; }; -var wellKnownSymbol$s = wellKnownSymbol$T; +var wellKnownSymbol$r = wellKnownSymbol$S; -var MATCH = wellKnownSymbol$s('match'); +var MATCH = wellKnownSymbol$r('match'); var correctIsRegexpLogic = function (METHOD_NAME) { var regexp = /./; @@ -9199,18 +9206,18 @@ var correctIsRegexpLogic = function (METHOD_NAME) { } return false; }; -var $$3b = _export; -var uncurryThis$13 = functionUncurryThisClause; +var $$3c = _export; +var uncurryThis$14 = functionUncurryThisClause; var getOwnPropertyDescriptor$6 = objectGetOwnPropertyDescriptor.f; var toLength$7 = toLength$d; -var toString$q = toString$I; +var toString$r = toString$J; var notARegExp$2 = notARegexp; var requireObjectCoercible$g = requireObjectCoercible$p; var correctIsRegExpLogic$2 = correctIsRegexpLogic; // eslint-disable-next-line es/no-string-prototype-endswith -- safe -var nativeEndsWith = uncurryThis$13(''.endsWith); -var slice$6 = uncurryThis$13(''.slice); +var nativeEndsWith = uncurryThis$14(''.endsWith); +var slice$6 = uncurryThis$14(''.slice); var min$8 = Math.min; var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegExpLogic$2('endsWith'); @@ -9222,36 +9229,36 @@ var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function () { // `String.prototype.endsWith` method // https://tc39.es/ecma262/#sec-string.prototype.endswith -$$3b({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, { +$$3c({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, { endsWith: function endsWith(searchString /* , endPosition = @length */) { - var that = toString$q(requireObjectCoercible$g(this)); + var that = toString$r(requireObjectCoercible$g(this)); notARegExp$2(searchString); var endPosition = arguments.length > 1 ? arguments[1] : undefined; var len = that.length; var end = endPosition === undefined ? len : min$8(toLength$7(endPosition), len); - var search = toString$q(searchString); + var search = toString$r(searchString); return nativeEndsWith ? nativeEndsWith(that, search, end) : slice$6(that, end - search.length, end) === search; } }); -var $$3a = _export; -var uncurryThis$12 = functionUncurryThis; +var $$3b = _export; +var uncurryThis$13 = functionUncurryThis; var toAbsoluteIndex$2 = toAbsoluteIndex$b; var $RangeError$7 = RangeError; var fromCharCode$5 = String.fromCharCode; // eslint-disable-next-line es/no-string-fromcodepoint -- required for testing var $fromCodePoint = String.fromCodePoint; -var join$7 = uncurryThis$12([].join); +var join$7 = uncurryThis$13([].join); // length should be 1, old FF problem var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; // `String.fromCodePoint` method // https://tc39.es/ecma262/#sec-string.fromcodepoint -$$3a({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { +$$3b({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { // eslint-disable-next-line no-unused-vars -- required for `.length` fromCodePoint: function fromCodePoint(x) { var elements = []; @@ -9260,7 +9267,7 @@ $$3a({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { var code; while (length > i) { code = +arguments[i++]; - if (toAbsoluteIndex$2(code, 0x10FFFF) !== code) throw $RangeError$7(code + ' is not a valid code point'); + if (toAbsoluteIndex$2(code, 0x10FFFF) !== code) throw new $RangeError$7(code + ' is not a valid code point'); elements[i] = code < 0x10000 ? fromCharCode$5(code) : fromCharCode$5(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); @@ -9268,52 +9275,52 @@ $$3a({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { } }); -var $$39 = _export; -var uncurryThis$11 = functionUncurryThis; +var $$3a = _export; +var uncurryThis$12 = functionUncurryThis; var notARegExp$1 = notARegexp; var requireObjectCoercible$f = requireObjectCoercible$p; -var toString$p = toString$I; +var toString$q = toString$J; var correctIsRegExpLogic$1 = correctIsRegexpLogic; -var stringIndexOf$4 = uncurryThis$11(''.indexOf); +var stringIndexOf$4 = uncurryThis$12(''.indexOf); // `String.prototype.includes` method // https://tc39.es/ecma262/#sec-string.prototype.includes -$$39({ target: 'String', proto: true, forced: !correctIsRegExpLogic$1('includes') }, { +$$3a({ target: 'String', proto: true, forced: !correctIsRegExpLogic$1('includes') }, { includes: function includes(searchString /* , position = 0 */) { return !!~stringIndexOf$4( - toString$p(requireObjectCoercible$f(this)), - toString$p(notARegExp$1(searchString)), + toString$q(requireObjectCoercible$f(this)), + toString$q(notARegExp$1(searchString)), arguments.length > 1 ? arguments[1] : undefined ); } }); -var $$38 = _export; -var uncurryThis$10 = functionUncurryThis; +var $$39 = _export; +var uncurryThis$11 = functionUncurryThis; var requireObjectCoercible$e = requireObjectCoercible$p; -var toString$o = toString$I; +var toString$p = toString$J; -var charCodeAt$4 = uncurryThis$10(''.charCodeAt); +var charCodeAt$5 = uncurryThis$11(''.charCodeAt); // `String.prototype.isWellFormed` method // https://github.com/tc39/proposal-is-usv-string -$$38({ target: 'String', proto: true }, { +$$39({ target: 'String', proto: true }, { isWellFormed: function isWellFormed() { - var S = toString$o(requireObjectCoercible$e(this)); + var S = toString$p(requireObjectCoercible$e(this)); var length = S.length; for (var i = 0; i < length; i++) { - var charCode = charCodeAt$4(S, i); + var charCode = charCodeAt$5(S, i); // single UTF-16 code unit if ((charCode & 0xF800) !== 0xD800) continue; // unpaired surrogate - if (charCode >= 0xDC00 || ++i >= length || (charCodeAt$4(S, i) & 0xFC00) !== 0xDC00) return false; + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt$5(S, i) & 0xFC00) !== 0xDC00) return false; } return true; } }); var charAt$d = stringMultibyte.charAt; -var toString$n = toString$I; +var toString$o = toString$J; var InternalStateModule$g = internalState; var defineIterator = iteratorDefine; var createIterResultObject$d = createIterResultObject$g; @@ -9327,7 +9334,7 @@ var getInternalState$9 = InternalStateModule$g.getterFor(STRING_ITERATOR$1); defineIterator(String, 'String', function (iterated) { setInternalState$h(this, { type: STRING_ITERATOR$1, - string: toString$n(iterated), + string: toString$o(iterated), index: 0 }); // `%StringIteratorPrototype%.next` method @@ -9345,18 +9352,18 @@ defineIterator(String, 'String', function (iterated) { // TODO: Remove from `core-js@4` since it's moved to entry points -var uncurryThis$$ = functionUncurryThisClause; +var uncurryThis$10 = functionUncurryThisClause; var defineBuiltIn$c = defineBuiltIn$u; var regexpExec$2 = regexpExec$3; var fails$r = fails$1u; -var wellKnownSymbol$r = wellKnownSymbol$T; +var wellKnownSymbol$q = wellKnownSymbol$S; var createNonEnumerableProperty$9 = createNonEnumerableProperty$k; -var SPECIES = wellKnownSymbol$r('species'); +var SPECIES = wellKnownSymbol$q('species'); var RegExpPrototype$1 = RegExp.prototype; var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { - var SYMBOL = wellKnownSymbol$r(KEY); + var SYMBOL = wellKnownSymbol$q(KEY); var DELEGATES_TO_SYMBOL = !fails$r(function () { // String methods call symbol-named RegEp methods @@ -9397,9 +9404,9 @@ var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { !DELEGATES_TO_EXEC || FORCED ) { - var uncurriedNativeRegExpMethod = uncurryThis$$(/./[SYMBOL]); + var uncurriedNativeRegExpMethod = uncurryThis$10(/./[SYMBOL]); var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - var uncurriedNativeMethod = uncurryThis$$(nativeMethod); + var uncurriedNativeMethod = uncurryThis$10(nativeMethod); var $exec = regexp.exec; if ($exec === regexpExec$2 || $exec === RegExpPrototype$1.exec) { if (DELEGATES_TO_SYMBOL && !forceStringMethod) { @@ -9430,7 +9437,7 @@ var advanceStringIndex$4 = function (S, index, unicode) { var call$V = functionCall; var anObject$N = anObject$1f; -var isCallable$g = isCallable$K; +var isCallable$f = isCallable$J; var classof$a = classofRaw$2; var regexpExec$1 = regexpExec$3; @@ -9440,13 +9447,13 @@ var $TypeError$n = TypeError; // https://tc39.es/ecma262/#sec-regexpexec var regexpExecAbstract = function (R, S) { var exec = R.exec; - if (isCallable$g(exec)) { + if (isCallable$f(exec)) { var result = call$V(exec, R, S); if (result !== null) anObject$N(result); return result; } if (classof$a(R) === 'RegExp') return call$V(regexpExec$1, R, S); - throw $TypeError$n('RegExp#exec called on incompatible receiver'); + throw new $TypeError$n('RegExp#exec called on incompatible receiver'); }; var call$U = functionCall; @@ -9454,7 +9461,7 @@ var fixRegExpWellKnownSymbolLogic$3 = fixRegexpWellKnownSymbolLogic; var anObject$M = anObject$1f; var isNullOrUndefined$d = isNullOrUndefined$k; var toLength$6 = toLength$d; -var toString$m = toString$I; +var toString$n = toString$J; var requireObjectCoercible$d = requireObjectCoercible$p; var getMethod$h = getMethod$l; var advanceStringIndex$3 = advanceStringIndex$4; @@ -9468,13 +9475,13 @@ fixRegExpWellKnownSymbolLogic$3('match', function (MATCH, nativeMatch, maybeCall function match(regexp) { var O = requireObjectCoercible$d(this); var matcher = isNullOrUndefined$d(regexp) ? undefined : getMethod$h(regexp, MATCH); - return matcher ? call$U(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString$m(O)); + return matcher ? call$U(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString$n(O)); }, // `RegExp.prototype[@@match]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@match function (string) { var rx = anObject$M(this); - var S = toString$m(string); + var S = toString$n(string); var res = maybeCallNative(nativeMatch, rx, S); if (res.done) return res.value; @@ -9487,7 +9494,7 @@ fixRegExpWellKnownSymbolLogic$3('match', function (MATCH, nativeMatch, maybeCall var n = 0; var result; while ((result = regExpExec$3(rx, S)) !== null) { - var matchStr = toString$m(result[0]); + var matchStr = toString$n(result[0]); A[n] = matchStr; if (matchStr === '') rx.lastIndex = advanceStringIndex$3(S, toLength$6(rx.lastIndex), fullUnicode); n++; @@ -9498,14 +9505,14 @@ fixRegExpWellKnownSymbolLogic$3('match', function (MATCH, nativeMatch, maybeCall }); /* eslint-disable es/no-string-prototype-matchall -- safe */ -var $$37 = _export; +var $$38 = _export; var call$T = functionCall; -var uncurryThis$_ = functionUncurryThisClause; +var uncurryThis$$ = functionUncurryThisClause; var createIteratorConstructor$5 = iteratorCreateConstructor; var createIterResultObject$c = createIterResultObject$g; var requireObjectCoercible$c = requireObjectCoercible$p; var toLength$5 = toLength$d; -var toString$l = toString$I; +var toString$m = toString$J; var anObject$L = anObject$1f; var isNullOrUndefined$c = isNullOrUndefined$k; var classof$9 = classofRaw$2; @@ -9514,22 +9521,22 @@ var getRegExpFlags$2 = regexpGetFlags; var getMethod$g = getMethod$l; var defineBuiltIn$b = defineBuiltIn$u; var fails$q = fails$1u; -var wellKnownSymbol$q = wellKnownSymbol$T; +var wellKnownSymbol$p = wellKnownSymbol$S; var speciesConstructor$2 = speciesConstructor$6; var advanceStringIndex$2 = advanceStringIndex$4; var regExpExec$2 = regexpExecAbstract; var InternalStateModule$f = internalState; var IS_PURE$h = isPure; -var MATCH_ALL = wellKnownSymbol$q('matchAll'); +var MATCH_ALL = wellKnownSymbol$p('matchAll'); var REGEXP_STRING = 'RegExp String'; var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; var setInternalState$g = InternalStateModule$f.set; var getInternalState$8 = InternalStateModule$f.getterFor(REGEXP_STRING_ITERATOR); var RegExpPrototype = RegExp.prototype; var $TypeError$m = TypeError; -var stringIndexOf$3 = uncurryThis$_(''.indexOf); -var nativeMatchAll = uncurryThis$_(''.matchAll); +var stringIndexOf$3 = uncurryThis$$(''.indexOf); +var nativeMatchAll = uncurryThis$$(''.matchAll); var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails$q(function () { nativeMatchAll('a', /./); @@ -9555,7 +9562,7 @@ var $RegExpStringIterator = createIteratorConstructor$5(function RegExpStringIte return createIterResultObject$c(undefined, true); } if (state.global) { - if (toString$l(match[0]) === '') R.lastIndex = advanceStringIndex$2(S, toLength$5(R.lastIndex), state.unicode); + if (toString$m(match[0]) === '') R.lastIndex = advanceStringIndex$2(S, toLength$5(R.lastIndex), state.unicode); return createIterResultObject$c(match, false); } state.done = true; @@ -9564,9 +9571,9 @@ var $RegExpStringIterator = createIteratorConstructor$5(function RegExpStringIte var $matchAll = function (string) { var R = anObject$L(this); - var S = toString$l(string); + var S = toString$m(string); var C = speciesConstructor$2(R, RegExp); - var flags = toString$l(getRegExpFlags$2(R)); + var flags = toString$m(getRegExpFlags$2(R)); var matcher, $global, fullUnicode; matcher = new C(C === RegExp ? R.source : R, flags); $global = !!~stringIndexOf$3(flags, 'g'); @@ -9577,21 +9584,21 @@ var $matchAll = function (string) { // `String.prototype.matchAll` method // https://tc39.es/ecma262/#sec-string.prototype.matchall -$$37({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { +$$38({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { matchAll: function matchAll(regexp) { var O = requireObjectCoercible$c(this); var flags, S, matcher, rx; if (!isNullOrUndefined$c(regexp)) { if (isRegExp$2(regexp)) { - flags = toString$l(requireObjectCoercible$c(getRegExpFlags$2(regexp))); - if (!~stringIndexOf$3(flags, 'g')) throw $TypeError$m('`.matchAll` does not allow non-global regexes'); + flags = toString$m(requireObjectCoercible$c(getRegExpFlags$2(regexp))); + if (!~stringIndexOf$3(flags, 'g')) throw new $TypeError$m('`.matchAll` does not allow non-global regexes'); } if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); matcher = getMethod$g(regexp, MATCH_ALL); if (matcher === undefined && IS_PURE$h && classof$9(regexp) === 'RegExp') matcher = $matchAll; if (matcher) return call$T(matcher, regexp, O); } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); - S = toString$l(O); + S = toString$m(O); rx = new RegExp(regexp, 'g'); return rx[MATCH_ALL](S); } @@ -9604,43 +9611,43 @@ var userAgent = engineUserAgent; var stringPadWebkitBug = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent); -var $$36 = _export; +var $$37 = _export; var $padEnd = stringPad.end; var WEBKIT_BUG$1 = stringPadWebkitBug; // `String.prototype.padEnd` method // https://tc39.es/ecma262/#sec-string.prototype.padend -$$36({ target: 'String', proto: true, forced: WEBKIT_BUG$1 }, { +$$37({ target: 'String', proto: true, forced: WEBKIT_BUG$1 }, { padEnd: function padEnd(maxLength /* , fillString = ' ' */) { return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); } }); -var $$35 = _export; +var $$36 = _export; var $padStart = stringPad.start; var WEBKIT_BUG = stringPadWebkitBug; // `String.prototype.padStart` method // https://tc39.es/ecma262/#sec-string.prototype.padstart -$$35({ target: 'String', proto: true, forced: WEBKIT_BUG }, { +$$36({ target: 'String', proto: true, forced: WEBKIT_BUG }, { padStart: function padStart(maxLength /* , fillString = ' ' */) { return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); } }); -var $$34 = _export; -var uncurryThis$Z = functionUncurryThis; +var $$35 = _export; +var uncurryThis$_ = functionUncurryThis; var toIndexedObject$2 = toIndexedObject$k; var toObject$c = toObject$D; -var toString$k = toString$I; +var toString$l = toString$J; var lengthOfArrayLike$d = lengthOfArrayLike$C; -var push$k = uncurryThis$Z([].push); -var join$6 = uncurryThis$Z([].join); +var push$k = uncurryThis$_([].push); +var join$6 = uncurryThis$_([].join); // `String.raw` method // https://tc39.es/ecma262/#sec-string.raw -$$34({ target: 'String', stat: true }, { +$$35({ target: 'String', stat: true }, { raw: function raw(template) { var rawTemplate = toIndexedObject$2(toObject$c(template).raw); var literalSegments = lengthOfArrayLike$d(rawTemplate); @@ -9649,29 +9656,29 @@ $$34({ target: 'String', stat: true }, { var elements = []; var i = 0; while (true) { - push$k(elements, toString$k(rawTemplate[i++])); + push$k(elements, toString$l(rawTemplate[i++])); if (i === literalSegments) return join$6(elements, ''); - if (i < argumentsLength) push$k(elements, toString$k(arguments[i])); + if (i < argumentsLength) push$k(elements, toString$l(arguments[i])); } } }); -var $$33 = _export; +var $$34 = _export; var repeat = stringRepeat; // `String.prototype.repeat` method // https://tc39.es/ecma262/#sec-string.prototype.repeat -$$33({ target: 'String', proto: true }, { +$$34({ target: 'String', proto: true }, { repeat: repeat }); -var uncurryThis$Y = functionUncurryThis; +var uncurryThis$Z = functionUncurryThis; var toObject$b = toObject$D; var floor$3 = Math.floor; -var charAt$b = uncurryThis$Y(''.charAt); -var replace$5 = uncurryThis$Y(''.replace); -var stringSlice$b = uncurryThis$Y(''.slice); +var charAt$b = uncurryThis$Z(''.charAt); +var replace$6 = uncurryThis$Z(''.replace); +var stringSlice$b = uncurryThis$Z(''.slice); // eslint-disable-next-line redos/no-vulnerable -- safe var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; @@ -9686,7 +9693,7 @@ var getSubstitution$2 = function (matched, str, position, captures, namedCapture namedCaptures = toObject$b(namedCaptures); symbols = SUBSTITUTION_SYMBOLS; } - return replace$5(replacement, symbols, function (match, ch) { + return replace$6(replacement, symbols, function (match, ch) { var capture; switch (charAt$b(ch, 0)) { case '$': return '$'; @@ -9713,29 +9720,29 @@ var getSubstitution$2 = function (matched, str, position, captures, namedCapture var apply$7 = functionApply$1; var call$S = functionCall; -var uncurryThis$X = functionUncurryThis; +var uncurryThis$Y = functionUncurryThis; var fixRegExpWellKnownSymbolLogic$2 = fixRegexpWellKnownSymbolLogic; var fails$p = fails$1u; var anObject$K = anObject$1f; -var isCallable$f = isCallable$K; +var isCallable$e = isCallable$J; var isNullOrUndefined$b = isNullOrUndefined$k; var toIntegerOrInfinity$8 = toIntegerOrInfinity$p; var toLength$4 = toLength$d; -var toString$j = toString$I; +var toString$k = toString$J; var requireObjectCoercible$b = requireObjectCoercible$p; var advanceStringIndex$1 = advanceStringIndex$4; var getMethod$f = getMethod$l; var getSubstitution$1 = getSubstitution$2; var regExpExec$1 = regexpExecAbstract; -var wellKnownSymbol$p = wellKnownSymbol$T; +var wellKnownSymbol$o = wellKnownSymbol$S; -var REPLACE$1 = wellKnownSymbol$p('replace'); +var REPLACE$1 = wellKnownSymbol$o('replace'); var max$5 = Math.max; var min$7 = Math.min; -var concat$1 = uncurryThis$X([].concat); -var push$j = uncurryThis$X([].push); -var stringIndexOf$2 = uncurryThis$X(''.indexOf); -var stringSlice$a = uncurryThis$X(''.slice); +var concat$1 = uncurryThis$Y([].concat); +var push$j = uncurryThis$Y([].push); +var stringIndexOf$2 = uncurryThis$Y(''.indexOf); +var stringSlice$a = uncurryThis$Y(''.slice); var maybeToString = function (it) { return it === undefined ? it : String(it); @@ -9779,13 +9786,13 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall var replacer = isNullOrUndefined$b(searchValue) ? undefined : getMethod$f(searchValue, REPLACE$1); return replacer ? call$S(replacer, searchValue, O, replaceValue) - : call$S(nativeReplace, toString$j(O), searchValue, replaceValue); + : call$S(nativeReplace, toString$k(O), searchValue, replaceValue); }, // `RegExp.prototype[@@replace]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace function (string, replaceValue) { var rx = anObject$K(this); - var S = toString$j(string); + var S = toString$k(string); if ( typeof replaceValue == 'string' && @@ -9796,8 +9803,8 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall if (res.done) return res.value; } - var functionalReplace = isCallable$f(replaceValue); - if (!functionalReplace) replaceValue = toString$j(replaceValue); + var functionalReplace = isCallable$e(replaceValue); + if (!functionalReplace) replaceValue = toString$k(replaceValue); var global = rx.global; var fullUnicode; @@ -9815,7 +9822,7 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall push$j(results, result); if (!global) break; - var matchStr = toString$j(result[0]); + var matchStr = toString$k(result[0]); if (matchStr === '') rx.lastIndex = advanceStringIndex$1(S, toLength$4(rx.lastIndex), fullUnicode); } @@ -9824,7 +9831,7 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall for (var i = 0; i < results.length; i++) { result = results[i]; - var matched = toString$j(result[0]); + var matched = toString$k(result[0]); var position = max$5(min$7(toIntegerOrInfinity$8(result.index), S.length), 0); var captures = []; var replacement; @@ -9838,7 +9845,7 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall if (functionalReplace) { var replacerArgs = concat$1([matched], captures, position, S); if (namedCaptures !== undefined) push$j(replacerArgs, namedCaptures); - replacement = toString$j(apply$7(replaceValue, undefined, replacerArgs)); + replacement = toString$k(apply$7(replaceValue, undefined, replacerArgs)); } else { replacement = getSubstitution$1(matched, S, position, captures, namedCaptures, replaceValue); } @@ -9853,24 +9860,24 @@ fixRegExpWellKnownSymbolLogic$2('replace', function (_, nativeReplace, maybeCall ]; }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); -var $$32 = _export; +var $$33 = _export; var call$R = functionCall; -var uncurryThis$W = functionUncurryThis; +var uncurryThis$X = functionUncurryThis; var requireObjectCoercible$a = requireObjectCoercible$p; -var isCallable$e = isCallable$K; +var isCallable$d = isCallable$J; var isNullOrUndefined$a = isNullOrUndefined$k; var isRegExp$1 = isRegexp; -var toString$i = toString$I; +var toString$j = toString$J; var getMethod$e = getMethod$l; var getRegExpFlags$1 = regexpGetFlags; var getSubstitution = getSubstitution$2; -var wellKnownSymbol$o = wellKnownSymbol$T; +var wellKnownSymbol$n = wellKnownSymbol$S; -var REPLACE = wellKnownSymbol$o('replace'); +var REPLACE = wellKnownSymbol$n('replace'); var $TypeError$l = TypeError; -var indexOf = uncurryThis$W(''.indexOf); -uncurryThis$W(''.replace); -var stringSlice$9 = uncurryThis$W(''.slice); +var indexOf = uncurryThis$X(''.indexOf); +uncurryThis$X(''.replace); +var stringSlice$9 = uncurryThis$X(''.slice); var max$4 = Math.max; var stringIndexOf$1 = function (string, searchValue, fromIndex) { @@ -9881,7 +9888,7 @@ var stringIndexOf$1 = function (string, searchValue, fromIndex) { // `String.prototype.replaceAll` method // https://tc39.es/ecma262/#sec-string.prototype.replaceall -$$32({ target: 'String', proto: true }, { +$$33({ target: 'String', proto: true }, { replaceAll: function replaceAll(searchValue, replaceValue) { var O = requireObjectCoercible$a(this); var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; @@ -9891,24 +9898,24 @@ $$32({ target: 'String', proto: true }, { if (!isNullOrUndefined$a(searchValue)) { IS_REG_EXP = isRegExp$1(searchValue); if (IS_REG_EXP) { - flags = toString$i(requireObjectCoercible$a(getRegExpFlags$1(searchValue))); - if (!~indexOf(flags, 'g')) throw $TypeError$l('`.replaceAll` does not allow non-global regexes'); + flags = toString$j(requireObjectCoercible$a(getRegExpFlags$1(searchValue))); + if (!~indexOf(flags, 'g')) throw new $TypeError$l('`.replaceAll` does not allow non-global regexes'); } replacer = getMethod$e(searchValue, REPLACE); if (replacer) { return call$R(replacer, searchValue, O, replaceValue); } } - string = toString$i(O); - searchString = toString$i(searchValue); - functionalReplace = isCallable$e(replaceValue); - if (!functionalReplace) replaceValue = toString$i(replaceValue); + string = toString$j(O); + searchString = toString$j(searchValue); + functionalReplace = isCallable$d(replaceValue); + if (!functionalReplace) replaceValue = toString$j(replaceValue); searchLength = searchString.length; advanceBy = max$4(1, searchLength); position = stringIndexOf$1(string, searchString, 0); while (position !== -1) { replacement = functionalReplace - ? toString$i(replaceValue(searchString, position, string)) + ? toString$j(replaceValue(searchString, position, string)) : getSubstitution(searchString, string, position, [], undefined, replaceValue); result += stringSlice$9(string, endOfLastMatch, position) + replacement; endOfLastMatch = position + searchLength; @@ -9927,7 +9934,7 @@ var anObject$J = anObject$1f; var isNullOrUndefined$9 = isNullOrUndefined$k; var requireObjectCoercible$9 = requireObjectCoercible$p; var sameValue = sameValue$1; -var toString$h = toString$I; +var toString$i = toString$J; var getMethod$d = getMethod$l; var regExpExec = regexpExecAbstract; @@ -9939,13 +9946,13 @@ fixRegExpWellKnownSymbolLogic$1('search', function (SEARCH, nativeSearch, maybeC function search(regexp) { var O = requireObjectCoercible$9(this); var searcher = isNullOrUndefined$9(regexp) ? undefined : getMethod$d(regexp, SEARCH); - return searcher ? call$Q(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$h(O)); + return searcher ? call$Q(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$i(O)); }, // `RegExp.prototype[@@search]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@search function (string) { var rx = anObject$J(this); - var S = toString$h(string); + var S = toString$i(string); var res = maybeCallNative(nativeSearch, rx, S); if (res.done) return res.value; @@ -9961,7 +9968,7 @@ fixRegExpWellKnownSymbolLogic$1('search', function (SEARCH, nativeSearch, maybeC var apply$6 = functionApply$1; var call$P = functionCall; -var uncurryThis$V = functionUncurryThis; +var uncurryThis$W = functionUncurryThis; var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; var anObject$I = anObject$1f; var isNullOrUndefined$8 = isNullOrUndefined$k; @@ -9970,7 +9977,7 @@ var requireObjectCoercible$8 = requireObjectCoercible$p; var speciesConstructor$1 = speciesConstructor$6; var advanceStringIndex = advanceStringIndex$4; var toLength$3 = toLength$d; -var toString$g = toString$I; +var toString$h = toString$J; var getMethod$c = getMethod$l; var arraySlice$5 = arraySliceSimple; var callRegExpExec = regexpExecAbstract; @@ -9982,9 +9989,9 @@ var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; var MAX_UINT32 = 0xFFFFFFFF; var min$6 = Math.min; var $push = [].push; -var exec$a = uncurryThis$V(/./.exec); -var push$i = uncurryThis$V($push); -var stringSlice$8 = uncurryThis$V(''.slice); +var exec$a = uncurryThis$W(/./.exec); +var push$i = uncurryThis$W($push); +var stringSlice$8 = uncurryThis$W(''.slice); // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec // Weex JS has frozen built-in prototypes, so use try / catch wrapper @@ -10012,7 +10019,7 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa ) { // based on es5-shim implementation, need to rework it internalSplit = function (separator, limit) { - var string = toString$g(requireObjectCoercible$8(this)); + var string = toString$h(requireObjectCoercible$8(this)); var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; if (lim === 0) return []; if (separator === undefined) return [string]; @@ -10060,7 +10067,7 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa var splitter = isNullOrUndefined$8(separator) ? undefined : getMethod$c(separator, SPLIT); return splitter ? call$P(splitter, separator, O, limit) - : call$P(internalSplit, toString$g(O), separator, limit); + : call$P(internalSplit, toString$h(O), separator, limit); }, // `RegExp.prototype[@@split]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@split @@ -10069,7 +10076,7 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa // the 'y' flag. function (string, limit) { var rx = anObject$I(this); - var S = toString$g(string); + var S = toString$h(string); var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); if (res.done) return res.value; @@ -10116,18 +10123,18 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa ]; }, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); -var $$31 = _export; -var uncurryThis$U = functionUncurryThisClause; +var $$32 = _export; +var uncurryThis$V = functionUncurryThisClause; var getOwnPropertyDescriptor$5 = objectGetOwnPropertyDescriptor.f; var toLength$2 = toLength$d; -var toString$f = toString$I; +var toString$g = toString$J; var notARegExp = notARegexp; var requireObjectCoercible$7 = requireObjectCoercible$p; var correctIsRegExpLogic = correctIsRegexpLogic; // eslint-disable-next-line es/no-string-prototype-startswith -- safe -var nativeStartsWith = uncurryThis$U(''.startsWith); -var stringSlice$7 = uncurryThis$U(''.slice); +var nativeStartsWith = uncurryThis$V(''.startsWith); +var stringSlice$7 = uncurryThis$V(''.slice); var min$5 = Math.min; var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); @@ -10139,25 +10146,25 @@ var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { // `String.prototype.startsWith` method // https://tc39.es/ecma262/#sec-string.prototype.startswith -$$31({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { +$$32({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { startsWith: function startsWith(searchString /* , position = 0 */) { - var that = toString$f(requireObjectCoercible$7(this)); + var that = toString$g(requireObjectCoercible$7(this)); notARegExp(searchString); var index = toLength$2(min$5(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = toString$f(searchString); + var search = toString$g(searchString); return nativeStartsWith ? nativeStartsWith(that, search, index) : stringSlice$7(that, index, index + search.length) === search; } }); -var $$30 = _export; -var uncurryThis$T = functionUncurryThis; +var $$31 = _export; +var uncurryThis$U = functionUncurryThis; var requireObjectCoercible$6 = requireObjectCoercible$p; var toIntegerOrInfinity$7 = toIntegerOrInfinity$p; -var toString$e = toString$I; +var toString$f = toString$J; -var stringSlice$6 = uncurryThis$T(''.slice); +var stringSlice$6 = uncurryThis$U(''.slice); var max$3 = Math.max; var min$4 = Math.min; @@ -10166,9 +10173,9 @@ var FORCED$3 = !''.substr || 'ab'.substr(-1) !== 'b'; // `String.prototype.substr` method // https://tc39.es/ecma262/#sec-string.prototype.substr -$$30({ target: 'String', proto: true, forced: FORCED$3 }, { +$$31({ target: 'String', proto: true, forced: FORCED$3 }, { substr: function substr(start, length) { - var that = toString$e(requireObjectCoercible$6(this)); + var that = toString$f(requireObjectCoercible$6(this)); var size = that.length; var intStart = toIntegerOrInfinity$7(start); var intLength, intEnd; @@ -10181,17 +10188,17 @@ $$30({ target: 'String', proto: true, forced: FORCED$3 }, { } }); -var $$2$ = _export; +var $$30 = _export; var call$O = functionCall; -var uncurryThis$S = functionUncurryThis; +var uncurryThis$T = functionUncurryThis; var requireObjectCoercible$5 = requireObjectCoercible$p; -var toString$d = toString$I; +var toString$e = toString$J; var fails$n = fails$1u; var $Array$2 = Array; -var charAt$a = uncurryThis$S(''.charAt); -var charCodeAt$3 = uncurryThis$S(''.charCodeAt); -var join$5 = uncurryThis$S([].join); +var charAt$a = uncurryThis$T(''.charAt); +var charCodeAt$4 = uncurryThis$T(''.charCodeAt); +var join$5 = uncurryThis$T([].join); // eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe var $toWellFormed = ''.toWellFormed; var REPLACEMENT_CHARACTER = '\uFFFD'; @@ -10203,18 +10210,18 @@ var TO_STRING_CONVERSION_BUG = $toWellFormed && fails$n(function () { // `String.prototype.toWellFormed` method // https://github.com/tc39/proposal-is-usv-string -$$2$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { +$$30({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { toWellFormed: function toWellFormed() { - var S = toString$d(requireObjectCoercible$5(this)); + var S = toString$e(requireObjectCoercible$5(this)); if (TO_STRING_CONVERSION_BUG) return call$O($toWellFormed, S); var length = S.length; var result = $Array$2(length); for (var i = 0; i < length; i++) { - var charCode = charCodeAt$3(S, i); + var charCode = charCodeAt$4(S, i); // single UTF-16 code unit if ((charCode & 0xF800) !== 0xD800) result[i] = charAt$a(S, i); // unpaired surrogate - else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt$3(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt$4(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; // surrogate pair else { result[i] = charAt$a(S, i); @@ -10240,13 +10247,13 @@ var stringTrimForced = function (METHOD_NAME) { }); }; -var $$2_ = _export; +var $$2$ = _export; var $trim = stringTrim.trim; var forcedStringTrimMethod$2 = stringTrimForced; // `String.prototype.trim` method // https://tc39.es/ecma262/#sec-string.prototype.trim -$$2_({ target: 'String', proto: true, forced: forcedStringTrimMethod$2('trim') }, { +$$2$({ target: 'String', proto: true, forced: forcedStringTrimMethod$2('trim') }, { trim: function trim() { return $trim(this); } @@ -10263,25 +10270,25 @@ var stringTrimEnd = forcedStringTrimMethod$1('trimEnd') ? function trimEnd() { // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe } : ''.trimEnd; -var $$2Z = _export; +var $$2_ = _export; var trimEnd$1 = stringTrimEnd; // `String.prototype.trimRight` method // https://tc39.es/ecma262/#sec-string.prototype.trimend // eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe -$$2Z({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd$1 }, { +$$2_({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd$1 }, { trimRight: trimEnd$1 }); // TODO: Remove this line from `core-js@4` -var $$2Y = _export; +var $$2Z = _export; var trimEnd = stringTrimEnd; // `String.prototype.trimEnd` method // https://tc39.es/ecma262/#sec-string.prototype.trimend // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe -$$2Y({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { +$$2Z({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { trimEnd: trimEnd }); @@ -10296,41 +10303,41 @@ var stringTrimStart = forcedStringTrimMethod('trimStart') ? function trimStart() // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe } : ''.trimStart; -var $$2X = _export; +var $$2Y = _export; var trimStart$1 = stringTrimStart; // `String.prototype.trimLeft` method // https://tc39.es/ecma262/#sec-string.prototype.trimleft // eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe -$$2X({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart$1 }, { +$$2Y({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart$1 }, { trimLeft: trimStart$1 }); // TODO: Remove this line from `core-js@4` -var $$2W = _export; +var $$2X = _export; var trimStart = stringTrimStart; // `String.prototype.trimStart` method // https://tc39.es/ecma262/#sec-string.prototype.trimstart // eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe -$$2W({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { +$$2X({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { trimStart: trimStart }); -var uncurryThis$R = functionUncurryThis; +var uncurryThis$S = functionUncurryThis; var requireObjectCoercible$4 = requireObjectCoercible$p; -var toString$c = toString$I; +var toString$d = toString$J; var quot = /"/g; -var replace$4 = uncurryThis$R(''.replace); +var replace$5 = uncurryThis$S(''.replace); // `CreateHTML` abstract operation // https://tc39.es/ecma262/#sec-createhtml var createHtml = function (string, tag, attribute, value) { - var S = toString$c(requireObjectCoercible$4(string)); + var S = toString$d(requireObjectCoercible$4(string)); var p1 = '<' + tag; - if (attribute !== '') p1 += ' ' + attribute + '="' + replace$4(toString$c(value), quot, '"') + '"'; + if (attribute !== '') p1 += ' ' + attribute + '="' + replace$5(toString$d(value), quot, '"') + '"'; return p1 + '>' + S + ''; }; @@ -10345,157 +10352,157 @@ var stringHtmlForced = function (METHOD_NAME) { }); }; -var $$2V = _export; +var $$2W = _export; var createHTML$c = createHtml; var forcedStringHTMLMethod$c = stringHtmlForced; // `String.prototype.anchor` method // https://tc39.es/ecma262/#sec-string.prototype.anchor -$$2V({ target: 'String', proto: true, forced: forcedStringHTMLMethod$c('anchor') }, { +$$2W({ target: 'String', proto: true, forced: forcedStringHTMLMethod$c('anchor') }, { anchor: function anchor(name) { return createHTML$c(this, 'a', 'name', name); } }); -var $$2U = _export; +var $$2V = _export; var createHTML$b = createHtml; var forcedStringHTMLMethod$b = stringHtmlForced; // `String.prototype.big` method // https://tc39.es/ecma262/#sec-string.prototype.big -$$2U({ target: 'String', proto: true, forced: forcedStringHTMLMethod$b('big') }, { +$$2V({ target: 'String', proto: true, forced: forcedStringHTMLMethod$b('big') }, { big: function big() { return createHTML$b(this, 'big', '', ''); } }); -var $$2T = _export; +var $$2U = _export; var createHTML$a = createHtml; var forcedStringHTMLMethod$a = stringHtmlForced; // `String.prototype.blink` method // https://tc39.es/ecma262/#sec-string.prototype.blink -$$2T({ target: 'String', proto: true, forced: forcedStringHTMLMethod$a('blink') }, { +$$2U({ target: 'String', proto: true, forced: forcedStringHTMLMethod$a('blink') }, { blink: function blink() { return createHTML$a(this, 'blink', '', ''); } }); -var $$2S = _export; +var $$2T = _export; var createHTML$9 = createHtml; var forcedStringHTMLMethod$9 = stringHtmlForced; // `String.prototype.bold` method // https://tc39.es/ecma262/#sec-string.prototype.bold -$$2S({ target: 'String', proto: true, forced: forcedStringHTMLMethod$9('bold') }, { +$$2T({ target: 'String', proto: true, forced: forcedStringHTMLMethod$9('bold') }, { bold: function bold() { return createHTML$9(this, 'b', '', ''); } }); -var $$2R = _export; +var $$2S = _export; var createHTML$8 = createHtml; var forcedStringHTMLMethod$8 = stringHtmlForced; // `String.prototype.fixed` method // https://tc39.es/ecma262/#sec-string.prototype.fixed -$$2R({ target: 'String', proto: true, forced: forcedStringHTMLMethod$8('fixed') }, { +$$2S({ target: 'String', proto: true, forced: forcedStringHTMLMethod$8('fixed') }, { fixed: function fixed() { return createHTML$8(this, 'tt', '', ''); } }); -var $$2Q = _export; +var $$2R = _export; var createHTML$7 = createHtml; var forcedStringHTMLMethod$7 = stringHtmlForced; // `String.prototype.fontcolor` method // https://tc39.es/ecma262/#sec-string.prototype.fontcolor -$$2Q({ target: 'String', proto: true, forced: forcedStringHTMLMethod$7('fontcolor') }, { +$$2R({ target: 'String', proto: true, forced: forcedStringHTMLMethod$7('fontcolor') }, { fontcolor: function fontcolor(color) { return createHTML$7(this, 'font', 'color', color); } }); -var $$2P = _export; +var $$2Q = _export; var createHTML$6 = createHtml; var forcedStringHTMLMethod$6 = stringHtmlForced; // `String.prototype.fontsize` method // https://tc39.es/ecma262/#sec-string.prototype.fontsize -$$2P({ target: 'String', proto: true, forced: forcedStringHTMLMethod$6('fontsize') }, { +$$2Q({ target: 'String', proto: true, forced: forcedStringHTMLMethod$6('fontsize') }, { fontsize: function fontsize(size) { return createHTML$6(this, 'font', 'size', size); } }); -var $$2O = _export; +var $$2P = _export; var createHTML$5 = createHtml; var forcedStringHTMLMethod$5 = stringHtmlForced; // `String.prototype.italics` method // https://tc39.es/ecma262/#sec-string.prototype.italics -$$2O({ target: 'String', proto: true, forced: forcedStringHTMLMethod$5('italics') }, { +$$2P({ target: 'String', proto: true, forced: forcedStringHTMLMethod$5('italics') }, { italics: function italics() { return createHTML$5(this, 'i', '', ''); } }); -var $$2N = _export; +var $$2O = _export; var createHTML$4 = createHtml; var forcedStringHTMLMethod$4 = stringHtmlForced; // `String.prototype.link` method // https://tc39.es/ecma262/#sec-string.prototype.link -$$2N({ target: 'String', proto: true, forced: forcedStringHTMLMethod$4('link') }, { +$$2O({ target: 'String', proto: true, forced: forcedStringHTMLMethod$4('link') }, { link: function link(url) { return createHTML$4(this, 'a', 'href', url); } }); -var $$2M = _export; +var $$2N = _export; var createHTML$3 = createHtml; var forcedStringHTMLMethod$3 = stringHtmlForced; // `String.prototype.small` method // https://tc39.es/ecma262/#sec-string.prototype.small -$$2M({ target: 'String', proto: true, forced: forcedStringHTMLMethod$3('small') }, { +$$2N({ target: 'String', proto: true, forced: forcedStringHTMLMethod$3('small') }, { small: function small() { return createHTML$3(this, 'small', '', ''); } }); -var $$2L = _export; +var $$2M = _export; var createHTML$2 = createHtml; var forcedStringHTMLMethod$2 = stringHtmlForced; // `String.prototype.strike` method // https://tc39.es/ecma262/#sec-string.prototype.strike -$$2L({ target: 'String', proto: true, forced: forcedStringHTMLMethod$2('strike') }, { +$$2M({ target: 'String', proto: true, forced: forcedStringHTMLMethod$2('strike') }, { strike: function strike() { return createHTML$2(this, 'strike', '', ''); } }); -var $$2K = _export; +var $$2L = _export; var createHTML$1 = createHtml; var forcedStringHTMLMethod$1 = stringHtmlForced; // `String.prototype.sub` method // https://tc39.es/ecma262/#sec-string.prototype.sub -$$2K({ target: 'String', proto: true, forced: forcedStringHTMLMethod$1('sub') }, { +$$2L({ target: 'String', proto: true, forced: forcedStringHTMLMethod$1('sub') }, { sub: function sub() { return createHTML$1(this, 'sub', '', ''); } }); -var $$2J = _export; +var $$2K = _export; var createHTML = createHtml; var forcedStringHTMLMethod = stringHtmlForced; // `String.prototype.sup` method // https://tc39.es/ecma262/#sec-string.prototype.sup -$$2J({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { +$$2K({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { sup: function sup() { return createHTML(this, 'sup', '', ''); } @@ -10532,7 +10539,7 @@ var $RangeError$6 = RangeError; var toPositiveInteger$5 = function (it) { var result = toIntegerOrInfinity$6(it); - if (result < 0) throw $RangeError$6("The argument can't be less than 0"); + if (result < 0) throw new $RangeError$6("The argument can't be less than 0"); return result; }; @@ -10542,7 +10549,7 @@ var $RangeError$5 = RangeError; var toOffset$2 = function (it, BYTES) { var offset = toPositiveInteger$4(it); - if (offset % BYTES) throw $RangeError$5('Wrong offset'); + if (offset % BYTES) throw new $RangeError$5('Wrong offset'); return offset; }; @@ -10568,7 +10575,7 @@ var $TypeError$k = TypeError; // https://tc39.es/ecma262/#sec-tobigint var toBigInt$4 = function (argument) { var prim = toPrimitive(argument, 'number'); - if (typeof prim == 'number') throw $TypeError$k("Can't convert number to bigint"); + if (typeof prim == 'number') throw new $TypeError$k("Can't convert number to bigint"); // eslint-disable-next-line es/no-bigint -- safe return BigInt(prim); }; @@ -10615,7 +10622,7 @@ var typedArrayFrom$2 = function from(source /* , mapfn, thisArg */) { return result; }; -var $$2I = _export; +var $$2J = _export; var global$u = global$16; var call$M = functionCall; var DESCRIPTORS$g = descriptors; @@ -10731,7 +10738,7 @@ if (DESCRIPTORS$g) { addGetter$1(TypedArrayPrototype$1, 'length'); } - $$2I({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + $$2J({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, defineProperty: wrappedDefineProperty }); @@ -10783,12 +10790,12 @@ if (DESCRIPTORS$g) { byteOffset = toOffset$1(offset, BYTES); var $len = data.byteLength; if ($length === undefined) { - if ($len % BYTES) throw RangeError$3(WRONG_LENGTH); + if ($len % BYTES) throw new RangeError$3(WRONG_LENGTH); byteLength = $len - byteOffset; - if (byteLength < 0) throw RangeError$3(WRONG_LENGTH); + if (byteLength < 0) throw new RangeError$3(WRONG_LENGTH); } else { byteLength = toLength$1($length) * BYTES; - if (byteLength + byteOffset > $len) throw RangeError$3(WRONG_LENGTH); + if (byteLength + byteOffset > $len) throw new RangeError$3(WRONG_LENGTH); } length = byteLength / BYTES; } else if (isTypedArray(data)) { @@ -10846,7 +10853,7 @@ if (DESCRIPTORS$g) { exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; - $$2I({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + $$2J({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { createNonEnumerableProperty$8(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); @@ -10969,11 +10976,11 @@ exportTypedArrayMethod$x('at', function at(index) { return (k < 0 || k >= len) ? undefined : O[k]; }); -var uncurryThis$Q = functionUncurryThis; +var uncurryThis$R = functionUncurryThis; var ArrayBufferViewCore$y = arrayBufferViewCore; var $ArrayCopyWithin = arrayCopyWithin; -var u$ArrayCopyWithin = uncurryThis$Q($ArrayCopyWithin); +var u$ArrayCopyWithin = uncurryThis$R($ArrayCopyWithin); var aTypedArray$v = ArrayBufferViewCore$y.aTypedArray; var exportTypedArrayMethod$w = ArrayBufferViewCore$y.exportTypedArrayMethod; @@ -11000,12 +11007,12 @@ var $fill = arrayFill$1; var toBigInt$2 = toBigInt$4; var classof$6 = classof$q; var call$L = functionCall; -var uncurryThis$P = functionUncurryThis; +var uncurryThis$Q = functionUncurryThis; var fails$j = fails$1u; var aTypedArray$t = ArrayBufferViewCore$w.aTypedArray; var exportTypedArrayMethod$u = ArrayBufferViewCore$w.exportTypedArrayMethod; -var slice$5 = uncurryThis$P(''.slice); +var slice$5 = uncurryThis$Q(''.slice); // V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 var CONVERSION_BUG = fails$j(function () { @@ -11151,16 +11158,16 @@ exportTypedArrayMethod$m('indexOf', function indexOf(searchElement /* , fromInde var global$t = global$16; var fails$i = fails$1u; -var uncurryThis$O = functionUncurryThis; +var uncurryThis$P = functionUncurryThis; var ArrayBufferViewCore$m = arrayBufferViewCore; var ArrayIterators = es_array_iterator; -var wellKnownSymbol$n = wellKnownSymbol$T; +var wellKnownSymbol$m = wellKnownSymbol$S; -var ITERATOR$4 = wellKnownSymbol$n('iterator'); +var ITERATOR$4 = wellKnownSymbol$m('iterator'); var Uint8Array$1 = global$t.Uint8Array; -var arrayValues = uncurryThis$O(ArrayIterators.values); -var arrayKeys = uncurryThis$O(ArrayIterators.keys); -var arrayEntries = uncurryThis$O(ArrayIterators.entries); +var arrayValues = uncurryThis$P(ArrayIterators.values); +var arrayKeys = uncurryThis$P(ArrayIterators.keys); +var arrayEntries = uncurryThis$P(ArrayIterators.entries); var aTypedArray$k = ArrayBufferViewCore$m.aTypedArray; var exportTypedArrayMethod$l = ArrayBufferViewCore$m.exportTypedArrayMethod; var TypedArrayPrototype = Uint8Array$1 && Uint8Array$1.prototype; @@ -11196,11 +11203,11 @@ exportTypedArrayMethod$l('values', typedArrayValues, GENERIC || !ITERATOR_IS_VAL exportTypedArrayMethod$l(ITERATOR$4, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); var ArrayBufferViewCore$l = arrayBufferViewCore; -var uncurryThis$N = functionUncurryThis; +var uncurryThis$O = functionUncurryThis; var aTypedArray$j = ArrayBufferViewCore$l.aTypedArray; var exportTypedArrayMethod$k = ArrayBufferViewCore$l.exportTypedArrayMethod; -var $join = uncurryThis$N([].join); +var $join = uncurryThis$O([].join); // `%TypedArray%.prototype.join` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.join @@ -11340,7 +11347,7 @@ exportTypedArrayMethod$e('set', function set(arrayLike /* , offset */) { var length = this.length; var len = lengthOfArrayLike$a(src); var index = 0; - if (len + offset > length) throw RangeError$2('Wrong length'); + if (len + offset > length) throw new RangeError$2('Wrong length'); while (index < len) this[offset + index] = src[index++]; }, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); @@ -11382,7 +11389,7 @@ exportTypedArrayMethod$c('some', function some(callbackfn /* , thisArg */) { }); var global$r = global$16; -var uncurryThis$M = functionUncurryThisClause; +var uncurryThis$N = functionUncurryThisClause; var fails$f = fails$1u; var aCallable$u = aCallable$N; var internalSort = arraySort$1; @@ -11395,7 +11402,7 @@ var WEBKIT = engineWebkitVersion; var aTypedArray$a = ArrayBufferViewCore$b.aTypedArray; var exportTypedArrayMethod$b = ArrayBufferViewCore$b.exportTypedArrayMethod; var Uint16Array = global$r.Uint16Array; -var nativeSort = Uint16Array && uncurryThis$M(Uint16Array.prototype.sort); +var nativeSort = Uint16Array && uncurryThis$N(Uint16Array.prototype.sort); // WebKit var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails$f(function () { @@ -11519,14 +11526,14 @@ exportTypedArrayMethod$8('toReversed', function toReversed() { }); var ArrayBufferViewCore$7 = arrayBufferViewCore; -var uncurryThis$L = functionUncurryThis; +var uncurryThis$M = functionUncurryThis; var aCallable$t = aCallable$N; var arrayFromConstructorAndList$3 = arrayFromConstructorAndList$6; var aTypedArray$6 = ArrayBufferViewCore$7.aTypedArray; var getTypedArrayConstructor$3 = ArrayBufferViewCore$7.getTypedArrayConstructor; var exportTypedArrayMethod$7 = ArrayBufferViewCore$7.exportTypedArrayMethod; -var sort = uncurryThis$L(ArrayBufferViewCore$7.TypedArrayPrototype.sort); +var sort = uncurryThis$M(ArrayBufferViewCore$7.TypedArrayPrototype.sort); // `%TypedArray%.prototype.toSorted` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted @@ -11540,12 +11547,12 @@ exportTypedArrayMethod$7('toSorted', function toSorted(compareFn) { var exportTypedArrayMethod$6 = arrayBufferViewCore.exportTypedArrayMethod; var fails$d = fails$1u; var global$p = global$16; -var uncurryThis$K = functionUncurryThis; +var uncurryThis$L = functionUncurryThis; var Uint8Array = global$p.Uint8Array; var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; var arrayToString = [].toString; -var join$4 = uncurryThis$K([].join); +var join$4 = uncurryThis$L([].join); if (fails$d(function () { arrayToString.call({}); })) { arrayToString = function toString() { @@ -11589,23 +11596,23 @@ exportTypedArrayMethod$5('with', { 'with': function (index, value) { return arrayWith(O, getTypedArrayConstructor$2(O), relativeIndex, actualValue); } }['with'], !PROPER_ORDER$1); -var $$2H = _export; -var uncurryThis$J = functionUncurryThis; -var toString$b = toString$I; +var $$2I = _export; +var uncurryThis$K = functionUncurryThis; +var toString$c = toString$J; var fromCharCode$4 = String.fromCharCode; -var charAt$9 = uncurryThis$J(''.charAt); -var exec$9 = uncurryThis$J(/./.exec); -var stringSlice$5 = uncurryThis$J(''.slice); +var charAt$9 = uncurryThis$K(''.charAt); +var exec$9 = uncurryThis$K(/./.exec); +var stringSlice$5 = uncurryThis$K(''.slice); var hex2 = /^[\da-f]{2}$/i; var hex4 = /^[\da-f]{4}$/i; // `unescape` method // https://tc39.es/ecma262/#sec-unescape-string -$$2H({ global: true }, { +$$2I({ global: true }, { unescape: function unescape(string) { - var str = toString$b(string); + var str = toString$c(string); var result = ''; var length = str.length; var index = 0; @@ -11634,7 +11641,7 @@ $$2H({ global: true }, { } }); -var uncurryThis$I = functionUncurryThis; +var uncurryThis$J = functionUncurryThis; var defineBuiltIns$8 = defineBuiltIns$b; var getWeakData = internalMetadataExports.getWeakData; var anInstance$9 = anInstance$f; @@ -11650,7 +11657,7 @@ var setInternalState$e = InternalStateModule$d.set; var internalStateGetterFor = InternalStateModule$d.getterFor; var find$1 = ArrayIterationModule.find; var findIndex = ArrayIterationModule.findIndex; -var splice$1 = uncurryThis$I([].splice); +var splice$1 = uncurryThis$J([].splice); var id = 0; // fallback for uncaught frozen keys @@ -11767,7 +11774,7 @@ var collectionWeak$2 = { var FREEZING$2 = freezing; var global$o = global$16; -var uncurryThis$H = functionUncurryThis; +var uncurryThis$I = functionUncurryThis; var defineBuiltIns$7 = defineBuiltIns$b; var InternalMetadataModule = internalMetadataExports; var collection$1 = collection$4; @@ -11806,7 +11813,7 @@ var wrapper = function (init) { // https://tc39.es/ecma262/#sec-weakmap-constructor var $WeakMap = collection$1('WeakMap', wrapper, collectionWeak$1); var WeakMapPrototype$1 = $WeakMap.prototype; -var nativeSet = uncurryThis$H(WeakMapPrototype$1.set); +var nativeSet = uncurryThis$I(WeakMapPrototype$1.set); // Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them var hasMSEdgeFreezingBug = function () { @@ -11823,9 +11830,9 @@ var hasMSEdgeFreezingBug = function () { if (NATIVE_WEAK_MAP) if (IS_IE11) { InternalWeakMap = collectionWeak$1.getConstructor(wrapper, 'WeakMap', true); InternalMetadataModule.enable(); - var nativeDelete = uncurryThis$H(WeakMapPrototype$1['delete']); - var nativeHas = uncurryThis$H(WeakMapPrototype$1.has); - var nativeGet = uncurryThis$H(WeakMapPrototype$1.get); + var nativeDelete = uncurryThis$I(WeakMapPrototype$1['delete']); + var nativeHas = uncurryThis$I(WeakMapPrototype$1.has); + var nativeGet = uncurryThis$I(WeakMapPrototype$1.get); defineBuiltIns$7(WeakMapPrototype$1, { 'delete': function (key) { if (isObject$d(key) && !isExtensible(key)) { @@ -11883,7 +11890,7 @@ collection('WeakSet', function (init) { return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; }, collectionWeak); -var $$2G = _export; +var $$2H = _export; var isPrototypeOf$2 = objectIsPrototypeOf; var getPrototypeOf$6 = objectGetPrototypeOf$2; var setPrototypeOf = objectSetPrototypeOf$1; @@ -11893,16 +11900,16 @@ var createNonEnumerableProperty$7 = createNonEnumerableProperty$k; var createPropertyDescriptor$3 = createPropertyDescriptor$d; var installErrorStack = errorStackInstall; var normalizeStringArgument$2 = normalizeStringArgument$6; -var wellKnownSymbol$m = wellKnownSymbol$T; +var wellKnownSymbol$l = wellKnownSymbol$S; -var TO_STRING_TAG$7 = wellKnownSymbol$m('toStringTag'); +var TO_STRING_TAG$7 = wellKnownSymbol$l('toStringTag'); var $Error = Error; var $SuppressedError = function SuppressedError(error, suppressed, message) { var isInstance = isPrototypeOf$2(SuppressedErrorPrototype, this); var that; if (setPrototypeOf) { - that = setPrototypeOf($Error(), isInstance ? getPrototypeOf$6(this) : SuppressedErrorPrototype); + that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf$6(this) : SuppressedErrorPrototype); } else { that = isInstance ? this : create$9(SuppressedErrorPrototype); createNonEnumerableProperty$7(that, TO_STRING_TAG$7, 'Error'); @@ -11925,26 +11932,26 @@ var SuppressedErrorPrototype = $SuppressedError.prototype = create$9($Error.prot // `SuppressedError` constructor // https://github.com/tc39/proposal-explicit-resource-management -$$2G({ global: true, constructor: true, arity: 3 }, { +$$2H({ global: true, constructor: true, arity: 3 }, { SuppressedError: $SuppressedError }); var global$n = global$16; var shared$3 = sharedStore; -var isCallable$d = isCallable$K; +var isCallable$c = isCallable$J; var getPrototypeOf$5 = objectGetPrototypeOf$2; var defineBuiltIn$a = defineBuiltIn$u; -var wellKnownSymbol$l = wellKnownSymbol$T; +var wellKnownSymbol$k = wellKnownSymbol$S; var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR'; -var ASYNC_ITERATOR$3 = wellKnownSymbol$l('asyncIterator'); +var ASYNC_ITERATOR$3 = wellKnownSymbol$k('asyncIterator'); var AsyncIterator = global$n.AsyncIterator; var PassedAsyncIteratorPrototype = shared$3.AsyncIteratorPrototype; var AsyncIteratorPrototype$5, prototype; if (PassedAsyncIteratorPrototype) { AsyncIteratorPrototype$5 = PassedAsyncIteratorPrototype; -} else if (isCallable$d(AsyncIterator)) { +} else if (isCallable$c(AsyncIterator)) { AsyncIteratorPrototype$5 = AsyncIterator.prototype; } else if (shared$3[USE_FUNCTION_CONSTRUCTOR] || global$n[USE_FUNCTION_CONSTRUCTOR]) { try { @@ -11956,7 +11963,7 @@ if (PassedAsyncIteratorPrototype) { if (!AsyncIteratorPrototype$5) AsyncIteratorPrototype$5 = {}; -if (!isCallable$d(AsyncIteratorPrototype$5[ASYNC_ITERATOR$3])) { +if (!isCallable$c(AsyncIteratorPrototype$5[ASYNC_ITERATOR$3])) { defineBuiltIn$a(AsyncIteratorPrototype$5, ASYNC_ITERATOR$3, function () { return this; }); @@ -12029,9 +12036,9 @@ var anObject$F = anObject$1f; var getIterator$3 = getIterator$7; var getIteratorDirect$n = getIteratorDirect$o; var getMethod$a = getMethod$l; -var wellKnownSymbol$k = wellKnownSymbol$T; +var wellKnownSymbol$j = wellKnownSymbol$S; -var ASYNC_ITERATOR$2 = wellKnownSymbol$k('asyncIterator'); +var ASYNC_ITERATOR$2 = wellKnownSymbol$j('asyncIterator'); var getAsyncIterator$1 = function (it, usingIterator) { var method = arguments.length < 2 ? getMethod$a(it, ASYNC_ITERATOR$2) : usingIterator; @@ -12148,7 +12155,7 @@ var asyncIteratorIteration = { }; var bind$i = functionBindContext; -var uncurryThis$G = functionUncurryThis; +var uncurryThis$H = functionUncurryThis; var toObject$9 = toObject$D; var isConstructor$4 = isConstructor$a; var getAsyncIterator = getAsyncIterator$1; @@ -12158,13 +12165,13 @@ var getIteratorMethod$3 = getIteratorMethod$8; var getMethod$8 = getMethod$l; var getVirtual = entryVirtual; var getBuiltIn$r = getBuiltIn$M; -var wellKnownSymbol$j = wellKnownSymbol$T; +var wellKnownSymbol$i = wellKnownSymbol$S; var AsyncFromSyncIterator$2 = asyncFromSyncIterator; var toArray = asyncIteratorIteration.toArray; -var ASYNC_ITERATOR$1 = wellKnownSymbol$j('asyncIterator'); -var arrayIterator = uncurryThis$G(getVirtual('Array').values); -var arrayIteratorNext = uncurryThis$G(arrayIterator([]).next); +var ASYNC_ITERATOR$1 = wellKnownSymbol$i('asyncIterator'); +var arrayIterator = uncurryThis$H(getVirtual('Array').values); +var arrayIteratorNext = uncurryThis$H(arrayIterator([]).next); var safeArrayIterator = function () { return new SafeArrayIterator(this); @@ -12198,23 +12205,23 @@ var arrayFromAsync$1 = function fromAsync(asyncItems /* , mapfn = undefined, thi }); }; -var $$2F = _export; +var $$2G = _export; var fromAsync = arrayFromAsync$1; // `Array.fromAsync` method // https://github.com/tc39/proposal-array-from-async -$$2F({ target: 'Array', stat: true }, { +$$2G({ target: 'Array', stat: true }, { fromAsync: fromAsync }); // TODO: remove from `core-js@4` -var $$2E = _export; +var $$2F = _export; var $filterReject$3 = arrayIteration.filterReject; var addToUnscopables$8 = addToUnscopables$n; // `Array.prototype.filterOut` method // https://github.com/tc39/proposal-array-filtering -$$2E({ target: 'Array', proto: true, forced: true }, { +$$2F({ target: 'Array', proto: true, forced: true }, { filterOut: function filterOut(callbackfn /* , thisArg */) { return $filterReject$3(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -12222,13 +12229,13 @@ $$2E({ target: 'Array', proto: true, forced: true }, { addToUnscopables$8('filterOut'); -var $$2D = _export; +var $$2E = _export; var $filterReject$2 = arrayIteration.filterReject; var addToUnscopables$7 = addToUnscopables$n; // `Array.prototype.filterReject` method // https://github.com/tc39/proposal-array-filtering -$$2D({ target: 'Array', proto: true, forced: true }, { +$$2E({ target: 'Array', proto: true, forced: true }, { filterReject: function filterReject(callbackfn /* , thisArg */) { return $filterReject$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } @@ -12237,7 +12244,7 @@ $$2D({ target: 'Array', proto: true, forced: true }, { addToUnscopables$7('filterReject'); var bind$h = functionBindContext; -var uncurryThis$F = functionUncurryThis; +var uncurryThis$G = functionUncurryThis; var IndexedObject$1 = indexedObject; var toObject$8 = toObject$D; var toPropertyKey$1 = toPropertyKey$a; @@ -12246,7 +12253,7 @@ var objectCreate = objectCreate$1; var arrayFromConstructorAndList$2 = arrayFromConstructorAndList$6; var $Array$1 = Array; -var push$h = uncurryThis$F([].push); +var push$h = uncurryThis$G([].push); var arrayGroup = function ($this, callbackfn, that, specificConstructor) { var O = toObject$8($this); @@ -12273,13 +12280,13 @@ var arrayGroup = function ($this, callbackfn, that, specificConstructor) { } return target; }; -var $$2C = _export; +var $$2D = _export; var $group$2 = arrayGroup; var addToUnscopables$6 = addToUnscopables$n; // `Array.prototype.group` method // https://github.com/tc39/proposal-array-grouping -$$2C({ target: 'Array', proto: true }, { +$$2D({ target: 'Array', proto: true }, { group: function group(callbackfn /* , thisArg */) { var thisArg = arguments.length > 1 ? arguments[1] : undefined; return $group$2(this, callbackfn, thisArg); @@ -12289,7 +12296,7 @@ $$2C({ target: 'Array', proto: true }, { addToUnscopables$6('group'); // TODO: Remove from `core-js@4` -var $$2B = _export; +var $$2C = _export; var $group$1 = arrayGroup; var arrayMethodIsStrict$1 = arrayMethodIsStrict$b; var addToUnscopables$5 = addToUnscopables$n; @@ -12297,7 +12304,7 @@ var addToUnscopables$5 = addToUnscopables$n; // `Array.prototype.groupBy` method // https://github.com/tc39/proposal-array-grouping // https://bugs.webkit.org/show_bug.cgi?id=236541 -$$2B({ target: 'Array', proto: true, forced: !arrayMethodIsStrict$1('groupBy') }, { +$$2C({ target: 'Array', proto: true, forced: !arrayMethodIsStrict$1('groupBy') }, { groupBy: function groupBy(callbackfn /* , thisArg */) { var thisArg = arguments.length > 1 ? arguments[1] : undefined; return $group$1(this, callbackfn, thisArg); @@ -12306,7 +12313,7 @@ $$2B({ target: 'Array', proto: true, forced: !arrayMethodIsStrict$1('groupBy') } addToUnscopables$5('groupBy'); -var uncurryThis$E = functionUncurryThis; +var uncurryThis$F = functionUncurryThis; // eslint-disable-next-line es/no-map -- safe var MapPrototype$1 = Map.prototype; @@ -12314,15 +12321,15 @@ var MapPrototype$1 = Map.prototype; var mapHelpers = { // eslint-disable-next-line es/no-map -- safe Map: Map, - set: uncurryThis$E(MapPrototype$1.set), - get: uncurryThis$E(MapPrototype$1.get), - has: uncurryThis$E(MapPrototype$1.has), - remove: uncurryThis$E(MapPrototype$1['delete']), + set: uncurryThis$F(MapPrototype$1.set), + get: uncurryThis$F(MapPrototype$1.get), + has: uncurryThis$F(MapPrototype$1.has), + remove: uncurryThis$F(MapPrototype$1['delete']), proto: MapPrototype$1 }; var bind$g = functionBindContext; -var uncurryThis$D = functionUncurryThis; +var uncurryThis$E = functionUncurryThis; var IndexedObject = indexedObject; var toObject$7 = toObject$D; var lengthOfArrayLike$8 = lengthOfArrayLike$C; @@ -12332,7 +12339,7 @@ var Map$b = MapHelpers$9.Map; var mapGet$1 = MapHelpers$9.get; var mapHas$2 = MapHelpers$9.has; var mapSet$2 = MapHelpers$9.set; -var push$g = uncurryThis$D([].push); +var push$g = uncurryThis$E([].push); // `Array.prototype.groupToMap` method // https://github.com/tc39/proposal-array-grouping @@ -12353,7 +12360,7 @@ var arrayGroupToMap = function groupToMap(callbackfn /* , thisArg */) { }; // TODO: Remove from `core-js@4` -var $$2A = _export; +var $$2B = _export; var arrayMethodIsStrict = arrayMethodIsStrict$b; var addToUnscopables$4 = addToUnscopables$n; var $groupToMap$1 = arrayGroupToMap; @@ -12361,26 +12368,26 @@ var $groupToMap$1 = arrayGroupToMap; // `Array.prototype.groupByToMap` method // https://github.com/tc39/proposal-array-grouping // https://bugs.webkit.org/show_bug.cgi?id=236541 -$$2A({ target: 'Array', proto: true, name: 'groupToMap', forced: !arrayMethodIsStrict('groupByToMap') }, { +$$2B({ target: 'Array', proto: true, name: 'groupToMap', forced: !arrayMethodIsStrict('groupByToMap') }, { groupByToMap: $groupToMap$1 }); addToUnscopables$4('groupByToMap'); -var $$2z = _export; +var $$2A = _export; var addToUnscopables$3 = addToUnscopables$n; var $groupToMap = arrayGroupToMap; var IS_PURE$g = isPure; // `Array.prototype.groupToMap` method // https://github.com/tc39/proposal-array-grouping -$$2z({ target: 'Array', proto: true, forced: IS_PURE$g }, { +$$2A({ target: 'Array', proto: true, forced: IS_PURE$g }, { groupToMap: $groupToMap }); addToUnscopables$3('groupToMap'); -var $$2y = _export; +var $$2z = _export; var isArray$1 = isArray$b; // eslint-disable-next-line es/no-object-isfrozen -- safe @@ -12401,7 +12408,7 @@ var isFrozenStringArray = function (array, allowUndefined) { // `Array.isTemplateObject` method // https://github.com/tc39/proposal-array-is-template-object -$$2y({ target: 'Array', stat: true, sham: true, forced: true }, { +$$2z({ target: 'Array', stat: true, sham: true, forced: true }, { isTemplateObject: function isTemplateObject(value) { if (!isFrozenStringArray(value, true)) return false; var raw = value.raw; @@ -12470,14 +12477,14 @@ var iterateSimple$8 = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { } }; -var uncurryThis$C = functionUncurryThis; +var uncurryThis$D = functionUncurryThis; var iterateSimple$7 = iterateSimple$8; var MapHelpers$8 = mapHelpers; var Map$a = MapHelpers$8.Map; var MapPrototype = MapHelpers$8.proto; -var forEach$4 = uncurryThis$C(MapPrototype.forEach); -var entries = uncurryThis$C(MapPrototype.entries); +var forEach$4 = uncurryThis$D(MapPrototype.forEach); +var entries = uncurryThis$D(MapPrototype.entries); var next$1 = entries(new Map$a()).next; var mapIterate = function (map, fn, interruptible) { @@ -12486,7 +12493,7 @@ var mapIterate = function (map, fn, interruptible) { }) : forEach$4(map, fn); }; -var uncurryThis$B = functionUncurryThis; +var uncurryThis$C = functionUncurryThis; var aCallable$r = aCallable$N; var isNullOrUndefined$6 = isNullOrUndefined$k; var lengthOfArrayLike$5 = lengthOfArrayLike$C; @@ -12497,7 +12504,7 @@ var iterate$w = mapIterate; var Map$9 = MapHelpers$7.Map; var mapHas$1 = MapHelpers$7.has; var mapSet$1 = MapHelpers$7.set; -var push$f = uncurryThis$B([].push); +var push$f = uncurryThis$C([].push); // `Array.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique @@ -12521,13 +12528,13 @@ var arrayUniqueBy$2 = function uniqueBy(resolver) { return result; }; -var $$2x = _export; +var $$2y = _export; var addToUnscopables = addToUnscopables$n; var uniqueBy = arrayUniqueBy$2; // `Array.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique -$$2x({ target: 'Array', proto: true, forced: true }, { +$$2y({ target: 'Array', proto: true, forced: true }, { uniqueBy: uniqueBy }); @@ -12542,14 +12549,14 @@ var $TypeError$j = TypeError; // - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). // - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. var arrayBufferByteLength$2 = uncurryThisAccessor$2(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { - if (classof$5(O) !== 'ArrayBuffer') throw $TypeError$j('ArrayBuffer expected'); + if (classof$5(O) !== 'ArrayBuffer') throw new $TypeError$j('ArrayBuffer expected'); return O.byteLength; }; -var uncurryThis$A = functionUncurryThis; +var uncurryThis$B = functionUncurryThis; var arrayBufferByteLength$1 = arrayBufferByteLength$2; -var slice$4 = uncurryThis$A(ArrayBuffer.prototype.slice); +var slice$4 = uncurryThis$B(ArrayBuffer.prototype.slice); var arrayBufferIsDetached = function (O) { if (arrayBufferByteLength$1(O) !== 0) return false; @@ -12576,97 +12583,151 @@ if (DESCRIPTORS$d && !('detached' in ArrayBufferPrototype$1)) { }); } +var IS_NODE$2 = engineIsNode; + +var tryNodeRequire$2 = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE$2) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + var global$m = global$16; var fails$b = fails$1u; var V8 = engineV8Version; var IS_BROWSER = engineIsBrowser; var IS_DENO = engineIsDeno; -var IS_NODE$2 = engineIsNode; +var IS_NODE$1 = engineIsNode; -var structuredClone$1 = global$m.structuredClone; +var structuredClone$2 = global$m.structuredClone; -var structuredCloneProperTransfer = !!structuredClone$1 && !fails$b(function () { +var structuredCloneProperTransfer = !!structuredClone$2 && !fails$b(function () { // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation // https://github.com/zloirock/core-js/issues/679 - if ((IS_DENO && V8 > 92) || (IS_NODE$2 && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; + if ((IS_DENO && V8 > 92) || (IS_NODE$1 && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; var buffer = new ArrayBuffer(8); - var clone = structuredClone$1(buffer, { transfer: [buffer] }); + var clone = structuredClone$2(buffer, { transfer: [buffer] }); return buffer.byteLength !== 0 || clone.byteLength !== 8; }); var global$l = global$16; -var uncurryThis$z = functionUncurryThis; +var tryNodeRequire$1 = tryNodeRequire$2; +var PROPER_STRUCTURED_CLONE_TRANSFER$2 = structuredCloneProperTransfer; + +var structuredClone$1 = global$l.structuredClone; +var $ArrayBuffer = global$l.ArrayBuffer; +var $MessageChannel = global$l.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER$2) { + detach = function (transferable) { + structuredClone$1(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = tryNodeRequire$1('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +var detachTransferable$1 = detach; + +var global$k = global$16; +var uncurryThis$A = functionUncurryThis; var uncurryThisAccessor$1 = functionUncurryThisAccessor; var toIndex$2 = toIndex$5; var isDetached = arrayBufferIsDetached; var arrayBufferByteLength = arrayBufferByteLength$2; -var PROPER_TRANSFER$1 = structuredCloneProperTransfer; +var detachTransferable = detachTransferable$1; +var PROPER_STRUCTURED_CLONE_TRANSFER$1 = structuredCloneProperTransfer; -var TypeError$4 = global$l.TypeError; -var structuredClone = global$l.structuredClone; -var ArrayBuffer$1 = global$l.ArrayBuffer; -var DataView$1 = global$l.DataView; +var structuredClone = global$k.structuredClone; +var ArrayBuffer$1 = global$k.ArrayBuffer; +var DataView$1 = global$k.DataView; +var TypeError$4 = global$k.TypeError; var min$3 = Math.min; var ArrayBufferPrototype = ArrayBuffer$1.prototype; var DataViewPrototype = DataView$1.prototype; -var slice$3 = uncurryThis$z(ArrayBufferPrototype.slice); +var slice$3 = uncurryThis$A(ArrayBufferPrototype.slice); var isResizable = uncurryThisAccessor$1(ArrayBufferPrototype, 'resizable', 'get'); var maxByteLength = uncurryThisAccessor$1(ArrayBufferPrototype, 'maxByteLength', 'get'); -var getInt8 = uncurryThis$z(DataViewPrototype.getInt8); -var setInt8 = uncurryThis$z(DataViewPrototype.setInt8); +var getInt8 = uncurryThis$A(DataViewPrototype.getInt8); +var setInt8 = uncurryThis$A(DataViewPrototype.setInt8); -var arrayBufferTransfer = PROPER_TRANSFER$1 && function (arrayBuffer, newLength, preserveResizability) { +var arrayBufferTransfer$1 = (PROPER_STRUCTURED_CLONE_TRANSFER$1 || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { var byteLength = arrayBufferByteLength(arrayBuffer); var newByteLength = newLength === undefined ? byteLength : toIndex$2(newLength); var fixedLength = !isResizable || !isResizable(arrayBuffer); - if (isDetached(arrayBuffer)) throw TypeError$4('ArrayBuffer is detached'); - var newBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); - if (byteLength === newByteLength && (preserveResizability || fixedLength)) return newBuffer; - if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) return slice$3(newBuffer, 0, newByteLength); - var options = (preserveResizability && !fixedLength) && maxByteLength ? { maxByteLength: maxByteLength(newBuffer) } : undefined; - var newNewBuffer = new ArrayBuffer$1(newByteLength, options); - var a = new DataView$1(newBuffer); - var b = new DataView$1(newNewBuffer); - var copyLength = min$3(newByteLength, byteLength); - for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); - return newNewBuffer; + var newBuffer; + if (isDetached(arrayBuffer)) throw new TypeError$4('ArrayBuffer is detached'); + if (PROPER_STRUCTURED_CLONE_TRANSFER$1) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice$3(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer$1(newByteLength, options); + var a = new DataView$1(arrayBuffer); + var b = new DataView$1(newBuffer); + var copyLength = min$3(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER$1) detachTransferable(arrayBuffer); + return newBuffer; }; -var $$2w = _export; -var $transfer$1 = arrayBufferTransfer; +var $$2x = _export; +var $transfer$1 = arrayBufferTransfer$1; // `ArrayBuffer.prototype.transfer` method // https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer -if ($transfer$1) $$2w({ target: 'ArrayBuffer', proto: true }, { +if ($transfer$1) $$2x({ target: 'ArrayBuffer', proto: true }, { transfer: function transfer() { return $transfer$1(this, arguments.length ? arguments[0] : undefined, true); } }); -var $$2v = _export; -var $transfer = arrayBufferTransfer; +var $$2w = _export; +var $transfer = arrayBufferTransfer$1; // `ArrayBuffer.prototype.transferToFixedLength` method // https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength -if ($transfer) $$2v({ target: 'ArrayBuffer', proto: true }, { +if ($transfer) $$2w({ target: 'ArrayBuffer', proto: true }, { transferToFixedLength: function transferToFixedLength() { return $transfer(this, arguments.length ? arguments[0] : undefined, false); } }); var call$E = functionCall; -var uncurryThis$y = functionUncurryThis; +var uncurryThis$z = functionUncurryThis; var bind$f = functionBindContext; var anObject$D = anObject$1f; var aCallable$q = aCallable$N; var isNullOrUndefined$5 = isNullOrUndefined$k; var getMethod$7 = getMethod$l; -var wellKnownSymbol$i = wellKnownSymbol$T; +var wellKnownSymbol$h = wellKnownSymbol$S; -var ASYNC_DISPOSE$2 = wellKnownSymbol$i('asyncDispose'); -var DISPOSE$2 = wellKnownSymbol$i('dispose'); +var ASYNC_DISPOSE$2 = wellKnownSymbol$h('asyncDispose'); +var DISPOSE$2 = wellKnownSymbol$h('dispose'); -var push$e = uncurryThis$y([].push); +var push$e = uncurryThis$z([].push); // `GetDisposeMethod` abstract operation // https://tc39.es/proposal-explicit-resource-management/#sec-getdisposemethod @@ -12710,7 +12771,7 @@ var addDisposableResource$2 = function (disposable, V, hint, method) { }; // https://github.com/tc39/proposal-async-explicit-resource-management -var $$2u = _export; +var $$2v = _export; var DESCRIPTORS$c = descriptors; var getBuiltIn$q = getBuiltIn$M; var aCallable$p = aCallable$N; @@ -12718,7 +12779,7 @@ var anInstance$8 = anInstance$f; var defineBuiltIn$9 = defineBuiltIn$u; var defineBuiltIns$5 = defineBuiltIns$b; var defineBuiltInAccessor$8 = defineBuiltInAccessor$o; -var wellKnownSymbol$h = wellKnownSymbol$T; +var wellKnownSymbol$g = wellKnownSymbol$S; var InternalStateModule$b = internalState; var addDisposableResource$1 = addDisposableResource$2; @@ -12726,8 +12787,8 @@ var Promise$4 = getBuiltIn$q('Promise'); var SuppressedError$1 = getBuiltIn$q('SuppressedError'); var $ReferenceError$1 = ReferenceError; -var ASYNC_DISPOSE$1 = wellKnownSymbol$h('asyncDispose'); -var TO_STRING_TAG$6 = wellKnownSymbol$h('toStringTag'); +var ASYNC_DISPOSE$1 = wellKnownSymbol$g('asyncDispose'); +var TO_STRING_TAG$6 = wellKnownSymbol$g('toStringTag'); var ASYNC_DISPOSABLE_STACK = 'AsyncDisposableStack'; var setInternalState$c = InternalStateModule$b.set; @@ -12739,7 +12800,7 @@ var PENDING$1 = 'pending'; var getPendingAsyncDisposableStackInternalState = function (stack) { var internalState = getAsyncDisposableStackInternalState(stack); - if (internalState.state === DISPOSED$1) throw $ReferenceError$1(ASYNC_DISPOSABLE_STACK + ' already disposed'); + if (internalState.state === DISPOSED$1) throw new $ReferenceError$1(ASYNC_DISPOSABLE_STACK + ' already disposed'); return internalState; }; @@ -12835,26 +12896,26 @@ if (DESCRIPTORS$c) defineBuiltInAccessor$8(AsyncDisposableStackPrototype, 'dispo defineBuiltIn$9(AsyncDisposableStackPrototype, ASYNC_DISPOSE$1, AsyncDisposableStackPrototype.disposeAsync, { name: 'disposeAsync' }); defineBuiltIn$9(AsyncDisposableStackPrototype, TO_STRING_TAG$6, ASYNC_DISPOSABLE_STACK, { nonWritable: true }); -$$2u({ global: true, constructor: true }, { +$$2v({ global: true, constructor: true }, { AsyncDisposableStack: $AsyncDisposableStack }); -var $$2t = _export; +var $$2u = _export; var anInstance$7 = anInstance$f; var getPrototypeOf$4 = objectGetPrototypeOf$2; var createNonEnumerableProperty$6 = createNonEnumerableProperty$k; var hasOwn$e = hasOwnProperty_1; -var wellKnownSymbol$g = wellKnownSymbol$T; +var wellKnownSymbol$f = wellKnownSymbol$S; var AsyncIteratorPrototype$3 = asyncIteratorPrototype; var IS_PURE$f = isPure; -var TO_STRING_TAG$5 = wellKnownSymbol$g('toStringTag'); +var TO_STRING_TAG$5 = wellKnownSymbol$f('toStringTag'); var $TypeError$i = TypeError; var AsyncIteratorConstructor = function AsyncIterator() { anInstance$7(this, AsyncIteratorPrototype$3); - if (getPrototypeOf$4(this) === AsyncIteratorPrototype$3) throw $TypeError$i('Abstract class AsyncIterator not directly constructable'); + if (getPrototypeOf$4(this) === AsyncIteratorPrototype$3) throw new $TypeError$i('Abstract class AsyncIterator not directly constructable'); }; AsyncIteratorConstructor.prototype = AsyncIteratorPrototype$3; @@ -12869,7 +12930,7 @@ if (!hasOwn$e(AsyncIteratorPrototype$3, 'constructor') || AsyncIteratorPrototype // `AsyncIterator` constructor // https://github.com/tc39/proposal-async-iterator-helpers -$$2t({ global: true, constructor: true, forced: IS_PURE$f }, { +$$2u({ global: true, constructor: true, forced: IS_PURE$f }, { AsyncIterator: AsyncIteratorConstructor }); @@ -12879,7 +12940,7 @@ var anObject$C = anObject$1f; var create$7 = objectCreate$1; var createNonEnumerableProperty$5 = createNonEnumerableProperty$k; var defineBuiltIns$4 = defineBuiltIns$b; -var wellKnownSymbol$f = wellKnownSymbol$T; +var wellKnownSymbol$e = wellKnownSymbol$S; var InternalStateModule$a = internalState; var getBuiltIn$p = getBuiltIn$M; var getMethod$6 = getMethod$l; @@ -12889,7 +12950,7 @@ var iteratorClose$5 = iteratorClose$8; var Promise$3 = getBuiltIn$p('Promise'); -var TO_STRING_TAG$4 = wellKnownSymbol$f('toStringTag'); +var TO_STRING_TAG$4 = wellKnownSymbol$e('toStringTag'); var ASYNC_ITERATOR_HELPER = 'AsyncIteratorHelper'; var WRAP_FOR_VALID_ASYNC_ITERATOR = 'WrapForValidAsyncIterator'; var setInternalState$b = InternalStateModule$a.set; @@ -13049,12 +13110,12 @@ var asyncIteratorIndexed = function indexed() { }; // TODO: Remove from `core-js@4` -var $$2s = _export; +var $$2t = _export; var indexed$3 = asyncIteratorIndexed; // `AsyncIterator.prototype.asIndexedPairs` method // https://github.com/tc39/proposal-iterator-helpers -$$2s({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, { +$$2t({ target: 'AsyncIterator', name: 'indexed', proto: true, real: true, forced: true }, { asIndexedPairs: indexed$3 }); @@ -13064,10 +13125,10 @@ var defineBuiltIn$8 = defineBuiltIn$u; var getBuiltIn$o = getBuiltIn$M; var getMethod$5 = getMethod$l; var hasOwn$d = hasOwnProperty_1; -var wellKnownSymbol$e = wellKnownSymbol$T; +var wellKnownSymbol$d = wellKnownSymbol$S; var AsyncIteratorPrototype$1 = asyncIteratorPrototype; -var ASYNC_DISPOSE = wellKnownSymbol$e('asyncDispose'); +var ASYNC_DISPOSE = wellKnownSymbol$d('asyncDispose'); var Promise$2 = getBuiltIn$o('Promise'); if (!hasOwn$d(AsyncIteratorPrototype$1, ASYNC_DISPOSE)) { @@ -13089,10 +13150,10 @@ var $RangeError$4 = RangeError; var notANan = function (it) { // eslint-disable-next-line no-self-compare -- NaN check if (it === it) return it; - throw $RangeError$4('NaN is not allowed'); + throw new $RangeError$4('NaN is not allowed'); }; -var $$2r = _export; +var $$2s = _export; var call$z = functionCall; var anObject$A = anObject$1f; var getIteratorDirect$j = getIteratorDirect$o; @@ -13133,7 +13194,7 @@ var AsyncIteratorProxy$3 = createAsyncIteratorProxy$4(function (Promise) { // `AsyncIterator.prototype.drop` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2r({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$e }, { +$$2s({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$e }, { drop: function drop(limit) { anObject$A(this); var remaining = toPositiveInteger$3(notANaN$3(+limit)); @@ -13143,18 +13204,18 @@ $$2r({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$e }, { } }); -var $$2q = _export; +var $$2r = _export; var $every = asyncIteratorIteration.every; // `AsyncIterator.prototype.every` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2q({ target: 'AsyncIterator', proto: true, real: true }, { +$$2r({ target: 'AsyncIterator', proto: true, real: true }, { every: function every(predicate) { return $every(this, predicate); } }); -var $$2p = _export; +var $$2q = _export; var call$y = functionCall; var aCallable$n = aCallable$N; var anObject$z = anObject$1f; @@ -13211,7 +13272,7 @@ var AsyncIteratorProxy$2 = createAsyncIteratorProxy$3(function (Promise) { // `AsyncIterator.prototype.filter` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2p({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$d }, { +$$2q({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$d }, { filter: function filter(predicate) { anObject$z(this); aCallable$n(predicate); @@ -13221,34 +13282,34 @@ $$2p({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$d }, { } }); -var $$2o = _export; +var $$2p = _export; var $find = asyncIteratorIteration.find; // `AsyncIterator.prototype.find` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2o({ target: 'AsyncIterator', proto: true, real: true }, { +$$2p({ target: 'AsyncIterator', proto: true, real: true }, { find: function find(predicate) { return $find(this, predicate); } }); var call$x = functionCall; -var isCallable$c = isCallable$K; +var isCallable$b = isCallable$J; var anObject$y = anObject$1f; var getIteratorDirect$h = getIteratorDirect$o; var getIteratorMethod$2 = getIteratorMethod$8; var getMethod$4 = getMethod$l; -var wellKnownSymbol$d = wellKnownSymbol$T; +var wellKnownSymbol$c = wellKnownSymbol$S; var AsyncFromSyncIterator$1 = asyncFromSyncIterator; -var ASYNC_ITERATOR = wellKnownSymbol$d('asyncIterator'); +var ASYNC_ITERATOR = wellKnownSymbol$c('asyncIterator'); var getAsyncIteratorFlattenable$2 = function from(obj) { var object = anObject$y(obj); var alreadyAsync = true; var method = getMethod$4(object, ASYNC_ITERATOR); var iterator; - if (!isCallable$c(method)) { + if (!isCallable$b(method)) { method = getIteratorMethod$2(object); alreadyAsync = false; } @@ -13262,7 +13323,7 @@ var getAsyncIteratorFlattenable$2 = function from(obj) { return getIteratorDirect$h(alreadyAsync ? iterator : new AsyncFromSyncIterator$1(getIteratorDirect$h(iterator))); }; -var $$2n = _export; +var $$2o = _export; var call$w = functionCall; var aCallable$m = aCallable$N; var anObject$x = anObject$1f; @@ -13339,7 +13400,7 @@ var AsyncIteratorProxy$1 = createAsyncIteratorProxy$2(function (Promise) { // `AsyncIterator.prototype.flaMap` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2n({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$c }, { +$$2o({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$c }, { flatMap: function flatMap(mapper) { anObject$x(this); aCallable$m(mapper); @@ -13350,12 +13411,12 @@ $$2n({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$c }, { } }); -var $$2m = _export; +var $$2n = _export; var $forEach = asyncIteratorIteration.forEach; // `AsyncIterator.prototype.forEach` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2m({ target: 'AsyncIterator', proto: true, real: true }, { +$$2n({ target: 'AsyncIterator', proto: true, real: true }, { forEach: function forEach(fn) { return $forEach(this, fn); } @@ -13368,7 +13429,7 @@ var asyncIteratorWrap = createAsyncIteratorProxy$1(function () { return call$v(this.next, this.iterator); }, true); -var $$2l = _export; +var $$2m = _export; var toObject$3 = toObject$D; var isPrototypeOf$1 = objectIsPrototypeOf; var getAsyncIteratorFlattenable = getAsyncIteratorFlattenable$2; @@ -13378,7 +13439,7 @@ var IS_PURE$b = isPure; // `AsyncIterator.from` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2l({ target: 'AsyncIterator', stat: true, forced: IS_PURE$b }, { +$$2m({ target: 'AsyncIterator', stat: true, forced: IS_PURE$b }, { from: function from(O) { var iteratorRecord = getAsyncIteratorFlattenable(typeof O == 'string' ? toObject$3(O) : O); return isPrototypeOf$1(AsyncIteratorPrototype, iteratorRecord.iterator) @@ -13388,26 +13449,26 @@ $$2l({ target: 'AsyncIterator', stat: true, forced: IS_PURE$b }, { }); // TODO: Remove from `core-js@4` -var $$2k = _export; +var $$2l = _export; var indexed$2 = asyncIteratorIndexed; // `AsyncIterator.prototype.indexed` method // https://github.com/tc39/proposal-iterator-helpers -$$2k({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { +$$2l({ target: 'AsyncIterator', proto: true, real: true, forced: true }, { indexed: indexed$2 }); -var $$2j = _export; +var $$2k = _export; var map$2 = asyncIteratorMap; var IS_PURE$a = isPure; // `AsyncIterator.prototype.map` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2j({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$a }, { +$$2k({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$a }, { map: map$2 }); -var $$2i = _export; +var $$2j = _export; var call$u = functionCall; var aCallable$l = aCallable$N; var anObject$w = anObject$1f; @@ -13421,7 +13482,7 @@ var $TypeError$h = TypeError; // `AsyncIterator.prototype.reduce` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2i({ target: 'AsyncIterator', proto: true, real: true }, { +$$2j({ target: 'AsyncIterator', proto: true, real: true }, { reduce: function reduce(reducer /* , initialValue */) { anObject$w(this); aCallable$l(reducer); @@ -13442,7 +13503,7 @@ $$2i({ target: 'AsyncIterator', proto: true, real: true }, { Promise$1.resolve(anObject$w(call$u(next, iterator))).then(function (step) { try { if (anObject$w(step).done) { - noInitial ? reject($TypeError$h('Reduce of empty iterator with no initial value')) : resolve(accumulator); + noInitial ? reject(new $TypeError$h('Reduce of empty iterator with no initial value')) : resolve(accumulator); } else { var value = step.value; if (noInitial) { @@ -13472,18 +13533,18 @@ $$2i({ target: 'AsyncIterator', proto: true, real: true }, { } }); -var $$2h = _export; +var $$2i = _export; var $some = asyncIteratorIteration.some; // `AsyncIterator.prototype.some` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2h({ target: 'AsyncIterator', proto: true, real: true }, { +$$2i({ target: 'AsyncIterator', proto: true, real: true }, { some: function some(predicate) { return $some(this, predicate); } }); -var $$2g = _export; +var $$2h = _export; var call$t = functionCall; var anObject$v = anObject$1f; var getIteratorDirect$e = getIteratorDirect$o; @@ -13521,7 +13582,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) { // `AsyncIterator.prototype.take` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2g({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$9 }, { +$$2h({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$9 }, { take: function take(limit) { anObject$v(this); var remaining = toPositiveInteger$2(notANaN$2(+limit)); @@ -13531,12 +13592,12 @@ $$2g({ target: 'AsyncIterator', proto: true, real: true, forced: IS_PURE$9 }, { } }); -var $$2f = _export; +var $$2g = _export; var $toArray = asyncIteratorIteration.toArray; // `AsyncIterator.prototype.toArray` method // https://github.com/tc39/proposal-async-iterator-helpers -$$2f({ target: 'AsyncIterator', proto: true, real: true }, { +$$2g({ target: 'AsyncIterator', proto: true, real: true }, { toArray: function toArray() { return $toArray(this, undefined, []); } @@ -13562,10 +13623,10 @@ var $TypeError$g = TypeError; var $RangeIterator = createIteratorConstructor$4(function NumericRangeIterator(start, end, option, type, zero, one) { // TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4` if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) { - throw $TypeError$g(INCORRECT_RANGE); + throw new $TypeError$g(INCORRECT_RANGE); } if (start === Infinity || start === -Infinity) { - throw $RangeError$3(INCORRECT_RANGE); + throw new $RangeError$3(INCORRECT_RANGE); } var ifIncrease = end > start; var inclusiveEnd = false; @@ -13578,16 +13639,16 @@ var $RangeIterator = createIteratorConstructor$4(function NumericRangeIterator(s } else if (typeof option == type) { step = option; } else { - throw $TypeError$g(INCORRECT_RANGE); + throw new $TypeError$g(INCORRECT_RANGE); } if (isNullOrUndefined$4(step)) { step = ifIncrease ? one : -one; } if (typeof step != type) { - throw $TypeError$g(INCORRECT_RANGE); + throw new $TypeError$g(INCORRECT_RANGE); } if (step === Infinity || step === -Infinity || (step === zero && start !== end)) { - throw $RangeError$3(INCORRECT_RANGE); + throw new $RangeError$3(INCORRECT_RANGE); } // eslint-disable-next-line no-self-compare -- NaN check var hitsEnd = start !== start || end !== end || step !== step || (end > start) !== (step > zero); @@ -13649,14 +13710,14 @@ if (DESCRIPTORS$b) { var numericRangeIterator = $RangeIterator; /* eslint-disable es/no-bigint -- safe */ -var $$2e = _export; +var $$2f = _export; var NumericRangeIterator$2 = numericRangeIterator; // `BigInt.range` method // https://github.com/tc39/proposal-Number.range // TODO: Remove from `core-js@4` if (typeof BigInt == 'function') { - $$2e({ target: 'BigInt', stat: true, forced: true }, { + $$2f({ target: 'BigInt', stat: true, forced: true }, { range: function range(start, end, option) { return new NumericRangeIterator$2(start, end, option, 'bigint', BigInt(0), BigInt(1)); } @@ -13707,13 +13768,13 @@ var compositeKey = function () { for (i = 0; i < length; i++) { if (isObject$6(it = arguments[i])) active = active.next(i, it, true); } - if (this === $Object$2 && active === root) throw $TypeError$f('Composite keys must contain a non-primitive component'); + if (this === $Object$2 && active === root) throw new $TypeError$f('Composite keys must contain a non-primitive component'); for (i = 0; i < length; i++) { if (!isObject$6(it = arguments[i])) active = active.next(i, it, false); } return active; }; -var $$2d = _export; +var $$2e = _export; var apply$3 = functionApply$1; var getCompositeKeyNode$1 = compositeKey; var getBuiltIn$l = getBuiltIn$M; @@ -13727,98 +13788,111 @@ var initializer = function () { }; // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey -$$2d({ global: true, forced: true }, { +$$2e({ global: true, forced: true }, { compositeKey: function compositeKey() { return apply$3(getCompositeKeyNode$1, $Object$1, arguments).get('object', initializer); } }); -var $$2c = _export; +var $$2d = _export; var getCompositeKeyNode = compositeKey; var getBuiltIn$k = getBuiltIn$M; var apply$2 = functionApply$1; // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey -$$2c({ global: true, forced: true }, { +$$2d({ global: true, forced: true }, { compositeSymbol: function compositeSymbol() { if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn$k('Symbol')['for'](arguments[0]); return apply$2(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn$k('Symbol')); } }); -var $$2b = _export; -var uncurryThis$x = functionUncurryThis; -var unpackIEEE754$1 = ieee754.unpack; +var $$2c = _export; +var uncurryThis$y = functionUncurryThis; +var unpackIEEE754 = ieee754.unpack; // eslint-disable-next-line es/no-typed-arrays -- safe -var getUint16 = uncurryThis$x(DataView.prototype.getUint16); +var getUint16 = uncurryThis$y(DataView.prototype.getUint16); // `DataView.prototype.getFloat16` method // https://github.com/tc39/proposal-float16array -$$2b({ target: 'DataView', proto: true }, { +$$2c({ target: 'DataView', proto: true }, { getFloat16: function getFloat16(byteOffset /* , littleEndian */) { var uint16 = getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false); - return unpackIEEE754$1([uint16 & 0xFF, uint16 >> 8 & 0xFF], 10); + return unpackIEEE754([uint16 & 0xFF, uint16 >> 8 & 0xFF], 10); } }); -var $$2a = _export; -var uncurryThis$w = functionUncurryThis; +var $$2b = _export; +var uncurryThis$x = functionUncurryThis; // eslint-disable-next-line es/no-typed-arrays -- safe -var getUint8 = uncurryThis$w(DataView.prototype.getUint8); +var getUint8 = uncurryThis$x(DataView.prototype.getUint8); // `DataView.prototype.getUint8Clamped` method // https://github.com/tc39/proposal-dataview-get-set-uint8c -$$2a({ target: 'DataView', proto: true, forced: true }, { +$$2b({ target: 'DataView', proto: true, forced: true }, { getUint8Clamped: function getUint8Clamped(byteOffset) { return getUint8(this, byteOffset); } }); -var $$29 = _export; -var uncurryThis$v = functionUncurryThis; +var floatRound = mathFloatRound; + +var FLOAT16_EPSILON = 0.0009765625; +var FLOAT16_MAX_VALUE = 65504; +var FLOAT16_MIN_VALUE = 6.103515625e-05; + +// `Math.f16round` method implementation +// https://github.com/tc39/proposal-float16array +var mathF16round = Math.f16round || function f16round(x) { + return floatRound(x, FLOAT16_EPSILON, FLOAT16_MAX_VALUE, FLOAT16_MIN_VALUE); +}; + +var $$2a = _export; +var uncurryThis$w = functionUncurryThis; var classof$4 = classof$q; var toIndex$1 = toIndex$5; -var packIEEE754$1 = ieee754.pack; +var packIEEE754 = ieee754.pack; +var f16round$1 = mathF16round; var $TypeError$e = TypeError; // eslint-disable-next-line es/no-typed-arrays -- safe -var setUint16 = uncurryThis$v(DataView.prototype.setUint16); +var setUint16 = uncurryThis$w(DataView.prototype.setUint16); // `DataView.prototype.setFloat16` method // https://github.com/tc39/proposal-float16array -$$29({ target: 'DataView', proto: true }, { +$$2a({ target: 'DataView', proto: true }, { setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) { - if (classof$4(this) !== 'DataView') throw $TypeError$e('Incorrect receiver'); + if (classof$4(this) !== 'DataView') throw new $TypeError$e('Incorrect receiver'); var offset = toIndex$1(byteOffset); - var bytes = packIEEE754$1(+value, 10, 2); + var bytes = packIEEE754(f16round$1(value), 10, 2); return setUint16(this, offset, bytes[1] << 8 | bytes[0], arguments.length > 2 ? arguments[2] : false); } }); -var $$28 = _export; -var uncurryThis$u = functionUncurryThis; +var $$29 = _export; +var uncurryThis$v = functionUncurryThis; var classof$3 = classof$q; var toIndex = toIndex$5; var toUint8Clamped = toUint8Clamped$2; var $TypeError$d = TypeError; // eslint-disable-next-line es/no-typed-arrays -- safe -var setUint8 = uncurryThis$u(DataView.prototype.setUint8); +var setUint8 = uncurryThis$v(DataView.prototype.setUint8); // `DataView.prototype.setUint8Clamped` method // https://github.com/tc39/proposal-dataview-get-set-uint8c -$$28({ target: 'DataView', proto: true, forced: true }, { +$$29({ target: 'DataView', proto: true, forced: true }, { setUint8Clamped: function setUint8Clamped(byteOffset, value) { - if (classof$3(this) !== 'DataView') throw $TypeError$d('Incorrect receiver'); + if (classof$3(this) !== 'DataView') throw new $TypeError$d('Incorrect receiver'); var offset = toIndex(byteOffset); return setUint8(this, offset, toUint8Clamped(value)); } }); // https://github.com/tc39/proposal-explicit-resource-management -var $$27 = _export; +var $$28 = _export; var DESCRIPTORS$a = descriptors; var getBuiltIn$j = getBuiltIn$M; var aCallable$k = aCallable$N; @@ -13826,15 +13900,15 @@ var anInstance$6 = anInstance$f; var defineBuiltIn$7 = defineBuiltIn$u; var defineBuiltIns$3 = defineBuiltIns$b; var defineBuiltInAccessor$6 = defineBuiltInAccessor$o; -var wellKnownSymbol$c = wellKnownSymbol$T; +var wellKnownSymbol$b = wellKnownSymbol$S; var InternalStateModule$8 = internalState; var addDisposableResource = addDisposableResource$2; var SuppressedError = getBuiltIn$j('SuppressedError'); var $ReferenceError = ReferenceError; -var DISPOSE$1 = wellKnownSymbol$c('dispose'); -var TO_STRING_TAG$3 = wellKnownSymbol$c('toStringTag'); +var DISPOSE$1 = wellKnownSymbol$b('dispose'); +var TO_STRING_TAG$3 = wellKnownSymbol$b('toStringTag'); var DISPOSABLE_STACK = 'DisposableStack'; var setInternalState$9 = InternalStateModule$8.set; @@ -13846,7 +13920,7 @@ var PENDING = 'pending'; var getPendingDisposableStackInternalState = function (stack) { var internalState = getDisposableStackInternalState(stack); - if (internalState.state === DISPOSED) throw $ReferenceError(DISPOSABLE_STACK + ' already disposed'); + if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed'); return internalState; }; @@ -13927,29 +14001,29 @@ if (DESCRIPTORS$a) defineBuiltInAccessor$6(DisposableStackPrototype, 'disposed', defineBuiltIn$7(DisposableStackPrototype, DISPOSE$1, DisposableStackPrototype.dispose, { name: 'dispose' }); defineBuiltIn$7(DisposableStackPrototype, TO_STRING_TAG$3, DISPOSABLE_STACK, { nonWritable: true }); -$$27({ global: true, constructor: true }, { +$$28({ global: true, constructor: true }, { DisposableStack: $DisposableStack }); -var uncurryThis$t = functionUncurryThis; +var uncurryThis$u = functionUncurryThis; var aCallable$j = aCallable$N; var functionDemethodize = function demethodize() { - return uncurryThis$t(aCallable$j(this)); + return uncurryThis$u(aCallable$j(this)); }; -var $$26 = _export; +var $$27 = _export; var demethodize$1 = functionDemethodize; // `Function.prototype.demethodize` method // https://github.com/js-choi/proposal-function-demethodize -$$26({ target: 'Function', proto: true, forced: true }, { +$$27({ target: 'Function', proto: true, forced: true }, { demethodize: demethodize$1 }); - -var $$25 = _export; -var uncurryThis$s = functionUncurryThis; -var $isCallable = isCallable$K; + +var $$26 = _export; +var uncurryThis$t = functionUncurryThis; +var $isCallable = isCallable$J; var inspectSource = inspectSource$4; var hasOwn$c = hasOwnProperty_1; var DESCRIPTORS$9 = descriptors; @@ -13957,7 +14031,7 @@ var DESCRIPTORS$9 = descriptors; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor$4 = Object.getOwnPropertyDescriptor; var classRegExp = /^\s*class\b/; -var exec$8 = uncurryThis$s(classRegExp.exec); +var exec$8 = uncurryThis$t(classRegExp.exec); var isClassConstructor = function (argument) { try { @@ -13971,25 +14045,25 @@ var isClassConstructor = function (argument) { // `Function.isCallable` method // https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md -$$25({ target: 'Function', stat: true, sham: true, forced: true }, { +$$26({ target: 'Function', stat: true, sham: true, forced: true }, { isCallable: function isCallable(argument) { return $isCallable(argument) && !isClassConstructor(argument); } }); -var $$24 = _export; +var $$25 = _export; var isConstructor$3 = isConstructor$a; // `Function.isConstructor` method // https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md -$$24({ target: 'Function', stat: true, forced: true }, { +$$25({ target: 'Function', stat: true, forced: true }, { isConstructor: isConstructor$3 }); -var wellKnownSymbol$b = wellKnownSymbol$T; +var wellKnownSymbol$a = wellKnownSymbol$S; var defineProperty$6 = objectDefineProperty.f; -var METADATA = wellKnownSymbol$b('metadata'); +var METADATA = wellKnownSymbol$a('metadata'); var FunctionPrototype = Function.prototype; // Function.prototype[@@metadata] @@ -14000,41 +14074,41 @@ if (FunctionPrototype[METADATA] === undefined) { }); } -var $$23 = _export; +var $$24 = _export; var demethodize = functionDemethodize; // `Function.prototype.unThis` method // https://github.com/js-choi/proposal-function-demethodize // TODO: Remove from `core-js@4` -$$23({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, { +$$24({ target: 'Function', proto: true, forced: true, name: 'demethodize' }, { unThis: demethodize }); -var $$22 = _export; -var global$k = global$16; +var $$23 = _export; +var global$j = global$16; var anInstance$5 = anInstance$f; -var isCallable$b = isCallable$K; +var isCallable$a = isCallable$J; var getPrototypeOf$3 = objectGetPrototypeOf$2; var createNonEnumerableProperty$4 = createNonEnumerableProperty$k; var fails$a = fails$1u; var hasOwn$b = hasOwnProperty_1; -var wellKnownSymbol$a = wellKnownSymbol$T; +var wellKnownSymbol$9 = wellKnownSymbol$S; var IteratorPrototype$3 = iteratorsCore.IteratorPrototype; -var TO_STRING_TAG$2 = wellKnownSymbol$a('toStringTag'); +var TO_STRING_TAG$2 = wellKnownSymbol$9('toStringTag'); var $TypeError$c = TypeError; -var NativeIterator = global$k.Iterator; +var NativeIterator = global$j.Iterator; // FF56- have non-standard global helper `Iterator` -var FORCED = !isCallable$b(NativeIterator) +var FORCED = !isCallable$a(NativeIterator) || NativeIterator.prototype !== IteratorPrototype$3 // FF44- non-standard `Iterator` passes previous tests || !fails$a(function () { NativeIterator({}); }); var IteratorConstructor = function Iterator() { anInstance$5(this, IteratorPrototype$3); - if (getPrototypeOf$3(this) === IteratorPrototype$3) throw $TypeError$c('Abstract class Iterator not directly constructable'); + if (getPrototypeOf$3(this) === IteratorPrototype$3) throw new $TypeError$c('Abstract class Iterator not directly constructable'); }; if (!hasOwn$b(IteratorPrototype$3, TO_STRING_TAG$2)) { @@ -14049,7 +14123,7 @@ IteratorConstructor.prototype = IteratorPrototype$3; // `Iterator` constructor // https://github.com/tc39/proposal-iterator-helpers -$$22({ global: true, constructor: true, forced: FORCED }, { +$$23({ global: true, constructor: true, forced: FORCED }, { Iterator: IteratorConstructor }); @@ -14057,14 +14131,14 @@ var call$s = functionCall; var create$4 = objectCreate$1; var createNonEnumerableProperty$3 = createNonEnumerableProperty$k; var defineBuiltIns$2 = defineBuiltIns$b; -var wellKnownSymbol$9 = wellKnownSymbol$T; +var wellKnownSymbol$8 = wellKnownSymbol$S; var InternalStateModule$7 = internalState; var getMethod$3 = getMethod$l; var IteratorPrototype$2 = iteratorsCore.IteratorPrototype; var createIterResultObject$3 = createIterResultObject$g; var iteratorClose$4 = iteratorClose$8; -var TO_STRING_TAG$1 = wellKnownSymbol$9('toStringTag'); +var TO_STRING_TAG$1 = wellKnownSymbol$8('toStringTag'); var ITERATOR_HELPER = 'IteratorHelper'; var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator'; var setInternalState$8 = InternalStateModule$7.set; @@ -14167,12 +14241,12 @@ var iteratorIndexed = function indexed() { }; // TODO: Remove from `core-js@4` -var $$21 = _export; +var $$22 = _export; var indexed$1 = iteratorIndexed; // `Iterator.prototype.asIndexedPairs` method // https://github.com/tc39/proposal-iterator-helpers -$$21({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, { +$$22({ target: 'Iterator', name: 'indexed', proto: true, real: true, forced: true }, { asIndexedPairs: indexed$1 }); @@ -14181,10 +14255,10 @@ var call$p = functionCall; var defineBuiltIn$6 = defineBuiltIn$u; var getMethod$2 = getMethod$l; var hasOwn$a = hasOwnProperty_1; -var wellKnownSymbol$8 = wellKnownSymbol$T; +var wellKnownSymbol$7 = wellKnownSymbol$S; var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; -var DISPOSE = wellKnownSymbol$8('dispose'); +var DISPOSE = wellKnownSymbol$7('dispose'); if (!hasOwn$a(IteratorPrototype$1, DISPOSE)) { defineBuiltIn$6(IteratorPrototype$1, DISPOSE, function () { @@ -14193,7 +14267,7 @@ if (!hasOwn$a(IteratorPrototype$1, DISPOSE)) { }); } -var $$20 = _export; +var $$21 = _export; var call$o = functionCall; var anObject$t = anObject$1f; var getIteratorDirect$c = getIteratorDirect$o; @@ -14219,7 +14293,7 @@ var IteratorProxy$4 = createIteratorProxy$4(function () { // `Iterator.prototype.drop` method // https://github.com/tc39/proposal-iterator-helpers -$$20({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$8 }, { +$$21({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$8 }, { drop: function drop(limit) { anObject$t(this); var remaining = toPositiveInteger$1(notANaN$1(+limit)); @@ -14229,7 +14303,7 @@ $$20({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$8 }, { } }); -var $$1$ = _export; +var $$20 = _export; var iterate$v = iterate$G; var aCallable$h = aCallable$N; var anObject$s = anObject$1f; @@ -14237,7 +14311,7 @@ var getIteratorDirect$b = getIteratorDirect$o; // `Iterator.prototype.every` method // https://github.com/tc39/proposal-iterator-helpers -$$1$({ target: 'Iterator', proto: true, real: true }, { +$$20({ target: 'Iterator', proto: true, real: true }, { every: function every(predicate) { anObject$s(this); aCallable$h(predicate); @@ -14249,7 +14323,7 @@ $$1$({ target: 'Iterator', proto: true, real: true }, { } }); -var $$1_ = _export; +var $$1$ = _export; var call$n = functionCall; var aCallable$g = aCallable$N; var anObject$r = anObject$1f; @@ -14274,7 +14348,7 @@ var IteratorProxy$3 = createIteratorProxy$3(function () { // `Iterator.prototype.filter` method // https://github.com/tc39/proposal-iterator-helpers -$$1_({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$7 }, { +$$1$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$7 }, { filter: function filter(predicate) { anObject$r(this); aCallable$g(predicate); @@ -14284,7 +14358,7 @@ $$1_({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$7 }, { } }); -var $$1Z = _export; +var $$1_ = _export; var iterate$u = iterate$G; var aCallable$f = aCallable$N; var anObject$q = anObject$1f; @@ -14292,7 +14366,7 @@ var getIteratorDirect$9 = getIteratorDirect$o; // `Iterator.prototype.find` method // https://github.com/tc39/proposal-iterator-helpers -$$1Z({ target: 'Iterator', proto: true, real: true }, { +$$1_({ target: 'Iterator', proto: true, real: true }, { find: function find(predicate) { anObject$q(this); aCallable$f(predicate); @@ -14315,7 +14389,7 @@ var getIteratorFlattenable$2 = function (obj, stringHandling) { return getIteratorDirect$8(anObject$p(method !== undefined ? call$m(method, obj) : obj)); }; -var $$1Y = _export; +var $$1Z = _export; var call$l = functionCall; var aCallable$e = aCallable$N; var anObject$o = anObject$1f; @@ -14349,7 +14423,7 @@ var IteratorProxy$2 = createIteratorProxy$2(function () { // `Iterator.prototype.flatMap` method // https://github.com/tc39/proposal-iterator-helpers -$$1Y({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$6 }, { +$$1Z({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$6 }, { flatMap: function flatMap(mapper) { anObject$o(this); aCallable$e(mapper); @@ -14360,7 +14434,7 @@ $$1Y({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$6 }, { } }); -var $$1X = _export; +var $$1Y = _export; var iterate$t = iterate$G; var aCallable$d = aCallable$N; var anObject$n = anObject$1f; @@ -14368,7 +14442,7 @@ var getIteratorDirect$6 = getIteratorDirect$o; // `Iterator.prototype.forEach` method // https://github.com/tc39/proposal-iterator-helpers -$$1X({ target: 'Iterator', proto: true, real: true }, { +$$1Y({ target: 'Iterator', proto: true, real: true }, { forEach: function forEach(fn) { anObject$n(this); aCallable$d(fn); @@ -14380,7 +14454,7 @@ $$1X({ target: 'Iterator', proto: true, real: true }, { } }); -var $$1W = _export; +var $$1X = _export; var call$k = functionCall; var toObject$2 = toObject$D; var isPrototypeOf = objectIsPrototypeOf; @@ -14395,7 +14469,7 @@ var IteratorProxy$1 = createIteratorProxy$1(function () { // `Iterator.from` method // https://github.com/tc39/proposal-iterator-helpers -$$1W({ target: 'Iterator', stat: true, forced: IS_PURE$5 }, { +$$1X({ target: 'Iterator', stat: true, forced: IS_PURE$5 }, { from: function from(O) { var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject$2(O) : O, true); return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator) @@ -14405,42 +14479,42 @@ $$1W({ target: 'Iterator', stat: true, forced: IS_PURE$5 }, { }); // TODO: Remove from `core-js@4` -var $$1V = _export; +var $$1W = _export; var indexed = iteratorIndexed; // `Iterator.prototype.indexed` method // https://github.com/tc39/proposal-iterator-helpers -$$1V({ target: 'Iterator', proto: true, real: true, forced: true }, { +$$1W({ target: 'Iterator', proto: true, real: true, forced: true }, { indexed: indexed }); -var $$1U = _export; +var $$1V = _export; var map = iteratorMap; var IS_PURE$4 = isPure; // `Iterator.prototype.map` method // https://github.com/tc39/proposal-iterator-helpers -$$1U({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$4 }, { +$$1V({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$4 }, { map: map }); /* eslint-disable es/no-bigint -- safe */ -var $$1T = _export; +var $$1U = _export; var NumericRangeIterator$1 = numericRangeIterator; var $TypeError$b = TypeError; // `Iterator.range` method // https://github.com/tc39/proposal-Number.range -$$1T({ target: 'Iterator', stat: true, forced: true }, { +$$1U({ target: 'Iterator', stat: true, forced: true }, { range: function range(start, end, option) { if (typeof start == 'number') return new NumericRangeIterator$1(start, end, option, 'number', 0, 1); if (typeof start == 'bigint') return new NumericRangeIterator$1(start, end, option, 'bigint', BigInt(0), BigInt(1)); - throw $TypeError$b('Incorrect Iterator.range arguments'); + throw new $TypeError$b('Incorrect Iterator.range arguments'); } }); -var $$1S = _export; +var $$1T = _export; var iterate$s = iterate$G; var aCallable$c = aCallable$N; var anObject$m = anObject$1f; @@ -14450,7 +14524,7 @@ var $TypeError$a = TypeError; // `Iterator.prototype.reduce` method // https://github.com/tc39/proposal-iterator-helpers -$$1S({ target: 'Iterator', proto: true, real: true }, { +$$1T({ target: 'Iterator', proto: true, real: true }, { reduce: function reduce(reducer /* , initialValue */) { anObject$m(this); aCallable$c(reducer); @@ -14467,12 +14541,12 @@ $$1S({ target: 'Iterator', proto: true, real: true }, { } counter++; }, { IS_RECORD: true }); - if (noInitial) throw $TypeError$a('Reduce of empty iterator with no initial value'); + if (noInitial) throw new $TypeError$a('Reduce of empty iterator with no initial value'); return accumulator; } }); -var $$1R = _export; +var $$1S = _export; var iterate$r = iterate$G; var aCallable$b = aCallable$N; var anObject$l = anObject$1f; @@ -14480,7 +14554,7 @@ var getIteratorDirect$4 = getIteratorDirect$o; // `Iterator.prototype.some` method // https://github.com/tc39/proposal-iterator-helpers -$$1R({ target: 'Iterator', proto: true, real: true }, { +$$1S({ target: 'Iterator', proto: true, real: true }, { some: function some(predicate) { anObject$l(this); aCallable$b(predicate); @@ -14492,7 +14566,7 @@ $$1R({ target: 'Iterator', proto: true, real: true }, { } }); -var $$1Q = _export; +var $$1R = _export; var call$j = functionCall; var anObject$k = anObject$1f; var getIteratorDirect$3 = getIteratorDirect$o; @@ -14515,7 +14589,7 @@ var IteratorProxy = createIteratorProxy(function () { // `Iterator.prototype.take` method // https://github.com/tc39/proposal-iterator-helpers -$$1Q({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$3 }, { +$$1R({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$3 }, { take: function take(limit) { anObject$k(this); var remaining = toPositiveInteger(notANaN(+limit)); @@ -14525,7 +14599,7 @@ $$1Q({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$3 }, { } }); -var $$1P = _export; +var $$1Q = _export; var anObject$j = anObject$1f; var iterate$q = iterate$G; var getIteratorDirect$2 = getIteratorDirect$o; @@ -14534,7 +14608,7 @@ var push$d = [].push; // `Iterator.prototype.toArray` method // https://github.com/tc39/proposal-iterator-helpers -$$1P({ target: 'Iterator', proto: true, real: true }, { +$$1Q({ target: 'Iterator', proto: true, real: true }, { toArray: function toArray() { var result = []; iterate$q(getIteratorDirect$2(anObject$j(this)), push$d, { that: result, IS_RECORD: true }); @@ -14542,7 +14616,7 @@ $$1P({ target: 'Iterator', proto: true, real: true }, { } }); -var $$1O = _export; +var $$1P = _export; var anObject$i = anObject$1f; var AsyncFromSyncIterator = asyncFromSyncIterator; var WrapAsyncIterator = asyncIteratorWrap; @@ -14551,7 +14625,7 @@ var IS_PURE$2 = isPure; // `Iterator.prototype.toAsync` method // https://github.com/tc39/proposal-async-iterator-helpers -$$1O({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$2 }, { +$$1P({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$2 }, { toAsync: function toAsync() { return new WrapAsyncIterator(getIteratorDirect$1(new AsyncFromSyncIterator(getIteratorDirect$1(anObject$i(this))))); } @@ -14575,26 +14649,26 @@ var isRawJson = function isRawJSON(O) { return !!state && state.type === 'RawJSON'; }; -var $$1N = _export; +var $$1O = _export; var NATIVE_RAW_JSON$1 = nativeRawJson; var isRawJSON$1 = isRawJson; // `JSON.parse` method // https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson // https://github.com/tc39/proposal-json-parse-with-source -$$1N({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON$1 }, { +$$1O({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON$1 }, { isRawJSON: isRawJSON$1 }); -var uncurryThis$r = functionUncurryThis; +var uncurryThis$s = functionUncurryThis; var hasOwn$9 = hasOwnProperty_1; var $SyntaxError$2 = SyntaxError; var $parseInt = parseInt; var fromCharCode$3 = String.fromCharCode; -var at$2 = uncurryThis$r(''.charAt); -var slice$2 = uncurryThis$r(''.slice); -var exec$7 = uncurryThis$r(/./.exec); +var at$2 = uncurryThis$s(''.charAt); +var slice$2 = uncurryThis$s(''.slice); +var exec$7 = uncurryThis$s(/./.exec); var codePoints = { '\\"': '"', @@ -14624,52 +14698,52 @@ var parseJsonString = function (source, i) { } else if (twoChars === '\\u') { i += 2; var fourHexDigits = slice$2(source, i, i + 4); - if (!exec$7(IS_4_HEX_DIGITS, fourHexDigits)) throw $SyntaxError$2('Bad Unicode escape at: ' + i); + if (!exec$7(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError$2('Bad Unicode escape at: ' + i); value += fromCharCode$3($parseInt(fourHexDigits, 16)); i += 4; - } else throw $SyntaxError$2('Unknown escape sequence: "' + twoChars + '"'); + } else throw new $SyntaxError$2('Unknown escape sequence: "' + twoChars + '"'); } else if (chr === '"') { unterminated = false; i++; break; } else { - if (exec$7(IS_C0_CONTROL_CODE, chr)) throw $SyntaxError$2('Bad control character in string literal at: ' + i); + if (exec$7(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError$2('Bad control character in string literal at: ' + i); value += chr; i++; } } - if (unterminated) throw $SyntaxError$2('Unterminated string at: ' + i); + if (unterminated) throw new $SyntaxError$2('Unterminated string at: ' + i); return { value: value, end: i }; }; -var $$1M = _export; +var $$1N = _export; var DESCRIPTORS$8 = descriptors; -var global$j = global$16; +var global$i = global$16; var getBuiltIn$i = getBuiltIn$M; -var uncurryThis$q = functionUncurryThis; +var uncurryThis$r = functionUncurryThis; var call$i = functionCall; -var isCallable$a = isCallable$K; +var isCallable$9 = isCallable$J; var isObject$4 = isObject$K; var isArray = isArray$b; var hasOwn$8 = hasOwnProperty_1; -var toString$a = toString$I; +var toString$b = toString$J; var lengthOfArrayLike$4 = lengthOfArrayLike$C; var createProperty$2 = createProperty$b; var fails$8 = fails$1u; var parseJSONString$1 = parseJsonString; var NATIVE_SYMBOL = symbolConstructorDetection; -var JSON$1 = global$j.JSON; -var Number$1 = global$j.Number; -var SyntaxError$2 = global$j.SyntaxError; +var JSON$1 = global$i.JSON; +var Number$1 = global$i.Number; +var SyntaxError$2 = global$i.SyntaxError; var nativeParse = JSON$1 && JSON$1.parse; var enumerableOwnProperties = getBuiltIn$i('Object', 'keys'); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor$3 = Object.getOwnPropertyDescriptor; -var at$1 = uncurryThis$q(''.charAt); -var slice$1 = uncurryThis$q(''.slice); -var exec$6 = uncurryThis$q(/./.exec); -var push$c = uncurryThis$q([].push); +var at$1 = uncurryThis$r(''.charAt); +var slice$1 = uncurryThis$r(''.slice); +var exec$6 = uncurryThis$r(/./.exec); +var push$c = uncurryThis$r([].push); var IS_DIGIT = /^\d$/; var IS_NON_ZERO_DIGIT = /^[1-9]$/; @@ -14680,15 +14754,15 @@ var PRIMITIVE = 0; var OBJECT = 1; var $parse = function (source, reviver) { - source = toString$a(source); + source = toString$b(source); var context = new Context(source, 0); var root = context.parse(); var value = root.value; var endIndex = context.skip(IS_WHITESPACE$1, root.end); if (endIndex < source.length) { - throw SyntaxError$2('Unexpected extra character: "' + at$1(source, endIndex) + '" after the parsed data at: ' + endIndex); + throw new SyntaxError$2('Unexpected extra character: "' + at$1(source, endIndex) + '" after the parsed data at: ' + endIndex); } - return isCallable$a(reviver) ? internalize({ '': value }, '', reviver, root) : value; + return isCallable$9(reviver) ? internalize({ '': value }, '', reviver, root) : value; }; var internalize = function (holder, name, reviver, node) { @@ -14762,7 +14836,7 @@ Context.prototype = { return fork.keyword(false); case 'n': return fork.keyword(null); - } throw SyntaxError$2('Unexpected character: "' + chr + '" at: ' + i); + } throw new SyntaxError$2('Unexpected character: "' + chr + '" at: ' + i); }, node: function (type, value, start, end, nodes) { return new Node(value, end, type ? null : slice$1(this.source, start, end), nodes); @@ -14839,14 +14913,14 @@ Context.prototype = { if (at$1(source, i) === '-') i++; if (at$1(source, i) === '0') i++; else if (exec$6(IS_NON_ZERO_DIGIT, at$1(source, i))) i = this.skip(IS_DIGIT, ++i); - else throw SyntaxError$2('Failed to parse number at: ' + i); + else throw new SyntaxError$2('Failed to parse number at: ' + i); if (at$1(source, i) === '.') i = this.skip(IS_DIGIT, ++i); if (at$1(source, i) === 'e' || at$1(source, i) === 'E') { i++; if (at$1(source, i) === '+' || at$1(source, i) === '-') i++; var exponentStartIndex = i; i = this.skip(IS_DIGIT, i); - if (exponentStartIndex === i) throw SyntaxError$2("Failed to parse number's exponent value at: " + i); + if (exponentStartIndex === i) throw new SyntaxError$2("Failed to parse number's exponent value at: " + i); } return this.node(PRIMITIVE, Number$1(slice$1(source, startIndex, i)), startIndex, i); }, @@ -14854,7 +14928,7 @@ Context.prototype = { var keyword = '' + value; var index = this.index; var endIndex = index + keyword.length; - if (slice$1(this.source, index, endIndex) !== keyword) throw SyntaxError$2('Failed to parse value at: ' + index); + if (slice$1(this.source, index, endIndex) !== keyword) throw new SyntaxError$2('Failed to parse value at: ' + index); return this.node(PRIMITIVE, value, index, endIndex); }, skip: function (regex, i) { @@ -14866,7 +14940,7 @@ Context.prototype = { i = this.skip(IS_WHITESPACE$1, i); var chr = at$1(this.source, i); for (var j = 0; j < array.length; j++) if (array[j] === chr) return i; - throw SyntaxError$2('Unexpected character: "' + chr + '" at: ' + i); + throw new SyntaxError$2('Unexpected character: "' + chr + '" at: ' + i); } }; @@ -14887,21 +14961,21 @@ var PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails$8(function () { // `JSON.parse` method // https://tc39.es/ecma262/#sec-json.parse // https://github.com/tc39/proposal-json-parse-with-source -$$1M({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, { +$$1N({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, { parse: function parse(text, reviver) { - return PROPER_BASE_PARSE && !isCallable$a(reviver) ? nativeParse(text) : $parse(text, reviver); + return PROPER_BASE_PARSE && !isCallable$9(reviver) ? nativeParse(text) : $parse(text, reviver); } }); -var $$1L = _export; +var $$1M = _export; var FREEZING$1 = freezing; var NATIVE_RAW_JSON = nativeRawJson; var getBuiltIn$h = getBuiltIn$M; var call$h = functionCall; -var uncurryThis$p = functionUncurryThis; -var isCallable$9 = isCallable$K; +var uncurryThis$q = functionUncurryThis; +var isCallable$8 = isCallable$J; var isRawJSON = isRawJson; -var toString$9 = toString$I; +var toString$a = toString$J; var createProperty$1 = createProperty$b; var parseJSONString = parseJsonString; var getReplacerFunction = getJsonReplacerFunction; @@ -14914,10 +14988,10 @@ var parse$1 = getBuiltIn$h('JSON', 'parse'); var $stringify = getBuiltIn$h('JSON', 'stringify'); var create$3 = getBuiltIn$h('Object', 'create'); var freeze$1 = getBuiltIn$h('Object', 'freeze'); -var at = uncurryThis$p(''.charAt); -var slice = uncurryThis$p(''.slice); -var exec$5 = uncurryThis$p(/./.exec); -var push$b = uncurryThis$p([].push); +var at = uncurryThis$q(''.charAt); +var slice = uncurryThis$q(''.slice); +var exec$5 = uncurryThis$q(/./.exec); +var push$b = uncurryThis$q([].push); var MARK = uid$1(); var MARK_LENGTH = MARK.length; @@ -14927,14 +15001,14 @@ var IS_WHITESPACE = /^[\t\n\r ]$/; // `JSON.parse` method // https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson // https://github.com/tc39/proposal-json-parse-with-source -$$1L({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { +$$1M({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { rawJSON: function rawJSON(text) { - var jsonString = toString$9(text); + var jsonString = toString$a(text); if (jsonString === '' || exec$5(IS_WHITESPACE, at(jsonString, 0)) || exec$5(IS_WHITESPACE, at(jsonString, jsonString.length - 1))) { - throw $SyntaxError$1(ERROR_MESSAGE); + throw new $SyntaxError$1(ERROR_MESSAGE); } var parsed = parse$1(jsonString); - if (typeof parsed == 'object' && parsed !== null) throw $SyntaxError$1(ERROR_MESSAGE); + if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError$1(ERROR_MESSAGE); var obj = create$3(null); setInternalState$7(obj, { type: 'RawJSON' }); createProperty$1(obj, 'rawJSON', jsonString); @@ -14945,14 +15019,14 @@ $$1L({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { // `JSON.stringify` method // https://tc39.es/ecma262/#sec-json.stringify // https://github.com/tc39/proposal-json-parse-with-source -if ($stringify) $$1L({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JSON }, { +if ($stringify) $$1M({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JSON }, { stringify: function stringify(text, replacer, space) { var replacerFunction = getReplacerFunction(replacer); var rawStrings = []; var json = $stringify(text, function (key, value) { // some old implementations (like WebKit) could pass numbers as keys - var v = isCallable$9(replacerFunction) ? call$h(replacerFunction, this, $String(key), value) : value; + var v = isCallable$8(replacerFunction) ? call$h(replacerFunction, this, $String(key), value) : value; return isRawJSON(v) ? MARK + (push$b(rawStrings, v.rawJSON) - 1) : v; }, space); @@ -14985,13 +15059,13 @@ var aMap$e = function (it) { return it; }; -var $$1K = _export; +var $$1L = _export; var aMap$d = aMap$e; var remove$5 = mapHelpers.remove; // `Map.prototype.deleteAll` method // https://github.com/tc39/proposal-collection-methods -$$1K({ target: 'Map', proto: true, real: true, forced: true }, { +$$1L({ target: 'Map', proto: true, real: true, forced: true }, { deleteAll: function deleteAll(/* ...elements */) { var collection = aMap$d(this); var allDeleted = true; @@ -15003,7 +15077,7 @@ $$1K({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1J = _export; +var $$1K = _export; var aMap$c = aMap$e; var MapHelpers$6 = mapHelpers; @@ -15013,7 +15087,7 @@ var set$7 = MapHelpers$6.set; // `Map.prototype.emplace` method // https://github.com/tc39/proposal-upsert -$$1J({ target: 'Map', proto: true, real: true, forced: true }, { +$$1K({ target: 'Map', proto: true, real: true, forced: true }, { emplace: function emplace(key, handler) { var map = aMap$c(this); var value, inserted; @@ -15030,14 +15104,14 @@ $$1J({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1I = _export; +var $$1J = _export; var bind$e = functionBindContext; var aMap$b = aMap$e; var iterate$p = mapIterate; // `Map.prototype.every` method // https://github.com/tc39/proposal-collection-methods -$$1I({ target: 'Map', proto: true, real: true, forced: true }, { +$$1J({ target: 'Map', proto: true, real: true, forced: true }, { every: function every(callbackfn /* , thisArg */) { var map = aMap$b(this); var boundFunction = bind$e(callbackfn, arguments.length > 1 ? arguments[1] : undefined); @@ -15047,7 +15121,7 @@ $$1I({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1H = _export; +var $$1I = _export; var bind$d = functionBindContext; var aMap$a = aMap$e; var MapHelpers$5 = mapHelpers; @@ -15058,7 +15132,7 @@ var set$6 = MapHelpers$5.set; // `Map.prototype.filter` method // https://github.com/tc39/proposal-collection-methods -$$1H({ target: 'Map', proto: true, real: true, forced: true }, { +$$1I({ target: 'Map', proto: true, real: true, forced: true }, { filter: function filter(callbackfn /* , thisArg */) { var map = aMap$a(this); var boundFunction = bind$d(callbackfn, arguments.length > 1 ? arguments[1] : undefined); @@ -15070,14 +15144,14 @@ $$1H({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1G = _export; +var $$1H = _export; var bind$c = functionBindContext; var aMap$9 = aMap$e; var iterate$n = mapIterate; // `Map.prototype.find` method // https://github.com/tc39/proposal-collection-methods -$$1G({ target: 'Map', proto: true, real: true, forced: true }, { +$$1H({ target: 'Map', proto: true, real: true, forced: true }, { find: function find(callbackfn /* , thisArg */) { var map = aMap$9(this); var boundFunction = bind$c(callbackfn, arguments.length > 1 ? arguments[1] : undefined); @@ -15088,14 +15162,14 @@ $$1G({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1F = _export; +var $$1G = _export; var bind$b = functionBindContext; var aMap$8 = aMap$e; var iterate$m = mapIterate; // `Map.prototype.findKey` method // https://github.com/tc39/proposal-collection-methods -$$1F({ target: 'Map', proto: true, real: true, forced: true }, { +$$1G({ target: 'Map', proto: true, real: true, forced: true }, { findKey: function findKey(callbackfn /* , thisArg */) { var map = aMap$8(this); var boundFunction = bind$b(callbackfn, arguments.length > 1 ? arguments[1] : undefined); @@ -15137,17 +15211,17 @@ var collectionFrom = function from(source /* , mapFn, thisArg */) { return new this(array); }; -var $$1E = _export; +var $$1F = _export; var from$3 = collectionFrom; // `Map.from` method // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from -$$1E({ target: 'Map', stat: true, forced: true }, { +$$1F({ target: 'Map', stat: true, forced: true }, { from: from$3 }); -var $$1D = _export; -var uncurryThis$o = functionUncurryThis; +var $$1E = _export; +var uncurryThis$p = functionUncurryThis; var aCallable$9 = aCallable$N; var requireObjectCoercible$3 = requireObjectCoercible$p; var iterate$k = iterate$G; @@ -15158,11 +15232,11 @@ var Map$6 = MapHelpers$4.Map; var has$a = MapHelpers$4.has; var get$2 = MapHelpers$4.get; var set$5 = MapHelpers$4.set; -var push$9 = uncurryThis$o([].push); +var push$9 = uncurryThis$p([].push); // `Map.groupBy` method // https://github.com/tc39/proposal-array-grouping -$$1D({ target: 'Map', stat: true, forced: IS_PURE$1 }, { +$$1E({ target: 'Map', stat: true, forced: IS_PURE$1 }, { groupBy: function groupBy(items, callbackfn) { requireObjectCoercible$3(items); aCallable$9(callbackfn); @@ -15184,14 +15258,14 @@ var sameValueZero$1 = function (x, y) { return x === y || x !== x && y !== y; }; -var $$1C = _export; +var $$1D = _export; var sameValueZero = sameValueZero$1; var aMap$7 = aMap$e; var iterate$j = mapIterate; // `Map.prototype.includes` method // https://github.com/tc39/proposal-collection-methods -$$1C({ target: 'Map', proto: true, real: true, forced: true }, { +$$1D({ target: 'Map', proto: true, real: true, forced: true }, { includes: function includes(searchElement) { return iterate$j(aMap$7(this), function (value) { if (sameValueZero(value, searchElement)) return true; @@ -15199,18 +15273,18 @@ $$1C({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1B = _export; +var $$1C = _export; var call$f = functionCall; var iterate$i = iterate$G; -var isCallable$8 = isCallable$K; +var isCallable$7 = isCallable$J; var aCallable$8 = aCallable$N; var Map$5 = mapHelpers.Map; // `Map.keyBy` method // https://github.com/tc39/proposal-collection-methods -$$1B({ target: 'Map', stat: true, forced: true }, { +$$1C({ target: 'Map', stat: true, forced: true }, { keyBy: function keyBy(iterable, keyDerivative) { - var C = isCallable$8(this) ? this : Map$5; + var C = isCallable$7(this) ? this : Map$5; var newMap = new C(); aCallable$8(keyDerivative); var setter = aCallable$8(newMap.set); @@ -15221,13 +15295,13 @@ $$1B({ target: 'Map', stat: true, forced: true }, { } }); -var $$1A = _export; +var $$1B = _export; var aMap$6 = aMap$e; var iterate$h = mapIterate; // `Map.prototype.keyOf` method // https://github.com/tc39/proposal-collection-methods -$$1A({ target: 'Map', proto: true, real: true, forced: true }, { +$$1B({ target: 'Map', proto: true, real: true, forced: true }, { keyOf: function keyOf(searchElement) { var result = iterate$h(aMap$6(this), function (value, key) { if (value === searchElement) return { key: key }; @@ -15236,7 +15310,7 @@ $$1A({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1z = _export; +var $$1A = _export; var bind$9 = functionBindContext; var aMap$5 = aMap$e; var MapHelpers$3 = mapHelpers; @@ -15247,7 +15321,7 @@ var set$4 = MapHelpers$3.set; // `Map.prototype.mapKeys` method // https://github.com/tc39/proposal-collection-methods -$$1z({ target: 'Map', proto: true, real: true, forced: true }, { +$$1A({ target: 'Map', proto: true, real: true, forced: true }, { mapKeys: function mapKeys(callbackfn /* , thisArg */) { var map = aMap$5(this); var boundFunction = bind$9(callbackfn, arguments.length > 1 ? arguments[1] : undefined); @@ -15259,7 +15333,7 @@ $$1z({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1y = _export; +var $$1z = _export; var bind$8 = functionBindContext; var aMap$4 = aMap$e; var MapHelpers$2 = mapHelpers; @@ -15270,7 +15344,7 @@ var set$3 = MapHelpers$2.set; // `Map.prototype.mapValues` method // https://github.com/tc39/proposal-collection-methods -$$1y({ target: 'Map', proto: true, real: true, forced: true }, { +$$1z({ target: 'Map', proto: true, real: true, forced: true }, { mapValues: function mapValues(callbackfn /* , thisArg */) { var map = aMap$4(this); var boundFunction = bind$8(callbackfn, arguments.length > 1 ? arguments[1] : undefined); @@ -15282,14 +15356,14 @@ $$1y({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1x = _export; +var $$1y = _export; var aMap$3 = aMap$e; var iterate$e = iterate$G; var set$2 = mapHelpers.set; // `Map.prototype.merge` method // https://github.com/tc39/proposal-collection-methods -$$1x({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, { +$$1y({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, { // eslint-disable-next-line no-unused-vars -- required for `.length` merge: function merge(iterable /* ...iterables */) { var map = aMap$3(this); @@ -15311,16 +15385,16 @@ var collectionOf = function of() { return new this(arraySlice$2(arguments)); }; -var $$1w = _export; +var $$1x = _export; var of$3 = collectionOf; // `Map.of` method // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of -$$1w({ target: 'Map', stat: true, forced: true }, { +$$1x({ target: 'Map', stat: true, forced: true }, { of: of$3 }); -var $$1v = _export; +var $$1w = _export; var aCallable$7 = aCallable$N; var aMap$2 = aMap$e; var iterate$d = mapIterate; @@ -15329,7 +15403,7 @@ var $TypeError$9 = TypeError; // `Map.prototype.reduce` method // https://github.com/tc39/proposal-collection-methods -$$1v({ target: 'Map', proto: true, real: true, forced: true }, { +$$1w({ target: 'Map', proto: true, real: true, forced: true }, { reduce: function reduce(callbackfn /* , initialValue */) { var map = aMap$2(this); var noInitial = arguments.length < 2; @@ -15343,19 +15417,19 @@ $$1v({ target: 'Map', proto: true, real: true, forced: true }, { accumulator = callbackfn(accumulator, value, key, map); } }); - if (noInitial) throw $TypeError$9('Reduce of empty map with no initial value'); + if (noInitial) throw new $TypeError$9('Reduce of empty map with no initial value'); return accumulator; } }); -var $$1u = _export; +var $$1v = _export; var bind$7 = functionBindContext; var aMap$1 = aMap$e; var iterate$c = mapIterate; // `Map.prototype.some` method // https://github.com/tc39/proposal-collection-methods -$$1u({ target: 'Map', proto: true, real: true, forced: true }, { +$$1v({ target: 'Map', proto: true, real: true, forced: true }, { some: function some(callbackfn /* , thisArg */) { var map = aMap$1(this); var boundFunction = bind$7(callbackfn, arguments.length > 1 ? arguments[1] : undefined); @@ -15365,7 +15439,7 @@ $$1u({ target: 'Map', proto: true, real: true, forced: true }, { } }); -var $$1t = _export; +var $$1u = _export; var aCallable$6 = aCallable$N; var aMap = aMap$e; var MapHelpers$1 = mapHelpers; @@ -15377,14 +15451,14 @@ var set$1 = MapHelpers$1.set; // `Map.prototype.update` method // https://github.com/tc39/proposal-collection-methods -$$1t({ target: 'Map', proto: true, real: true, forced: true }, { +$$1u({ target: 'Map', proto: true, real: true, forced: true }, { update: function update(key, callback /* , thunk */) { var map = aMap(this); var length = arguments.length; aCallable$6(callback); var isPresentInMap = has$9(map, key); if (!isPresentInMap && length < 3) { - throw $TypeError$8('Updating absent value'); + throw new $TypeError$8('Updating absent value'); } var value = isPresentInMap ? get$1(map, key) : aCallable$6(length > 2 ? arguments[2] : undefined)(key, map); set$1(map, key, callback(value, key, map)); @@ -15394,7 +15468,7 @@ $$1t({ target: 'Map', proto: true, real: true, forced: true }, { var call$e = functionCall; var aCallable$5 = aCallable$N; -var isCallable$7 = isCallable$K; +var isCallable$6 = isCallable$J; var anObject$h = anObject$1f; var $TypeError$7 = TypeError; @@ -15408,69 +15482,69 @@ var mapUpsert = function upsert(key, updateFn /* , insertFn */) { var set = aCallable$5(map.set); var insertFn = arguments.length > 2 ? arguments[2] : undefined; var value; - if (!isCallable$7(updateFn) && !isCallable$7(insertFn)) { - throw $TypeError$7('At least one callback required'); + if (!isCallable$6(updateFn) && !isCallable$6(insertFn)) { + throw new $TypeError$7('At least one callback required'); } if (call$e(has, map, key)) { value = call$e(get, map, key); - if (isCallable$7(updateFn)) { + if (isCallable$6(updateFn)) { value = updateFn(value); call$e(set, map, key, value); } - } else if (isCallable$7(insertFn)) { + } else if (isCallable$6(insertFn)) { value = insertFn(); call$e(set, map, key, value); } return value; }; // TODO: remove from `core-js@4` -var $$1s = _export; +var $$1t = _export; var upsert$2 = mapUpsert; // `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`) // https://github.com/thumbsupep/proposal-upsert -$$1s({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, { +$$1t({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, { updateOrInsert: upsert$2 }); // TODO: remove from `core-js@4` -var $$1r = _export; +var $$1s = _export; var upsert$1 = mapUpsert; // `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`) // https://github.com/thumbsupep/proposal-upsert -$$1r({ target: 'Map', proto: true, real: true, forced: true }, { +$$1s({ target: 'Map', proto: true, real: true, forced: true }, { upsert: upsert$1 }); -var $$1q = _export; +var $$1r = _export; var min$2 = Math.min; var max$2 = Math.max; // `Math.clamp` method // https://rwaldron.github.io/proposal-math-extensions/ -$$1q({ target: 'Math', stat: true, forced: true }, { +$$1r({ target: 'Math', stat: true, forced: true }, { clamp: function clamp(x, lower, upper) { return min$2(upper, max$2(lower, x)); } }); -var $$1p = _export; +var $$1q = _export; // `Math.DEG_PER_RAD` constant // https://rwaldron.github.io/proposal-math-extensions/ -$$1p({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, { +$$1q({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, { DEG_PER_RAD: Math.PI / 180 }); -var $$1o = _export; +var $$1p = _export; var RAD_PER_DEG = 180 / Math.PI; // `Math.degrees` method // https://rwaldron.github.io/proposal-math-extensions/ -$$1o({ target: 'Math', stat: true, forced: true }, { +$$1p({ target: 'Math', stat: true, forced: true }, { degrees: function degrees(radians) { return radians * RAD_PER_DEG; } @@ -15490,41 +15564,32 @@ var mathScale = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow; }; -var $$1n = _export; +var $$1o = _export; var scale$1 = mathScale; var fround = mathFround; // `Math.fscale` method // https://rwaldron.github.io/proposal-math-extensions/ -$$1n({ target: 'Math', stat: true, forced: true }, { +$$1o({ target: 'Math', stat: true, forced: true }, { fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { return fround(scale$1(x, inLow, inHigh, outLow, outHigh)); } }); -var $$1m = _export; -var IEEE754 = ieee754; - -var packIEEE754 = IEEE754.pack; -var unpackIEEE754 = IEEE754.unpack; -var $isFinite = isFinite; +var $$1n = _export; +var f16round = mathF16round; // `Math.f16round` method // https://github.com/tc39/proposal-float16array -$$1m({ target: 'Math', stat: true }, { - f16round: function f16round(x) { - var n = +x; - return $isFinite(n) && n !== 0 ? unpackIEEE754(packIEEE754(n, 10, 2), 10) : n; - } -}); +$$1n({ target: 'Math', stat: true }, { f16round: f16round }); -var $$1l = _export; +var $$1m = _export; // `Math.iaddh` method // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 // TODO: Remove from `core-js@4` -$$1l({ target: 'Math', stat: true, forced: true }, { +$$1m({ target: 'Math', stat: true, forced: true }, { iaddh: function iaddh(x0, x1, y0, y1) { var $x0 = x0 >>> 0; var $x1 = x1 >>> 0; @@ -15533,12 +15598,12 @@ $$1l({ target: 'Math', stat: true, forced: true }, { } }); -var $$1k = _export; +var $$1l = _export; // `Math.imulh` method // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 // TODO: Remove from `core-js@4` -$$1k({ target: 'Math', stat: true, forced: true }, { +$$1l({ target: 'Math', stat: true, forced: true }, { imulh: function imulh(u, v) { var UINT16 = 0xFFFF; var $u = +u; @@ -15552,12 +15617,12 @@ $$1k({ target: 'Math', stat: true, forced: true }, { } }); -var $$1j = _export; +var $$1k = _export; // `Math.isubh` method // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 // TODO: Remove from `core-js@4` -$$1j({ target: 'Math', stat: true, forced: true }, { +$$1k({ target: 'Math', stat: true, forced: true }, { isubh: function isubh(x0, x1, y0, y1) { var $x0 = x0 >>> 0; var $x1 = x1 >>> 0; @@ -15566,36 +15631,36 @@ $$1j({ target: 'Math', stat: true, forced: true }, { } }); -var $$1i = _export; +var $$1j = _export; // `Math.RAD_PER_DEG` constant // https://rwaldron.github.io/proposal-math-extensions/ -$$1i({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, { +$$1j({ target: 'Math', stat: true, nonConfigurable: true, nonWritable: true }, { RAD_PER_DEG: 180 / Math.PI }); -var $$1h = _export; +var $$1i = _export; var DEG_PER_RAD = Math.PI / 180; // `Math.radians` method // https://rwaldron.github.io/proposal-math-extensions/ -$$1h({ target: 'Math', stat: true, forced: true }, { +$$1i({ target: 'Math', stat: true, forced: true }, { radians: function radians(degrees) { return degrees * DEG_PER_RAD; } }); -var $$1g = _export; +var $$1h = _export; var scale = mathScale; // `Math.scale` method // https://rwaldron.github.io/proposal-math-extensions/ -$$1g({ target: 'Math', stat: true, forced: true }, { +$$1h({ target: 'Math', stat: true, forced: true }, { scale: scale }); -var $$1f = _export; +var $$1g = _export; var anObject$g = anObject$1f; var numberIsFinite = numberIsFinite$2; var createIteratorConstructor$3 = iteratorCreateConstructor; @@ -15623,19 +15688,19 @@ var $SeededRandomGenerator = createIteratorConstructor$3(function SeededRandomGe // `Math.seededPRNG` method // https://github.com/tc39/proposal-seeded-random // based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html -$$1f({ target: 'Math', stat: true, forced: true }, { +$$1g({ target: 'Math', stat: true, forced: true }, { seededPRNG: function seededPRNG(it) { var seed = anObject$g(it).seed; - if (!numberIsFinite(seed)) throw $TypeError$6(SEED_TYPE_ERROR); + if (!numberIsFinite(seed)) throw new $TypeError$6(SEED_TYPE_ERROR); return new $SeededRandomGenerator(seed); } }); -var $$1e = _export; +var $$1f = _export; // `Math.signbit` method // https://github.com/tc39/proposal-Math.signbit -$$1e({ target: 'Math', stat: true, forced: true }, { +$$1f({ target: 'Math', stat: true, forced: true }, { signbit: function signbit(x) { var n = +x; // eslint-disable-next-line no-self-compare -- NaN check @@ -15643,12 +15708,12 @@ $$1e({ target: 'Math', stat: true, forced: true }, { } }); -var $$1d = _export; +var $$1e = _export; // `Math.umulh` method // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 // TODO: Remove from `core-js@4` -$$1d({ target: 'Math', stat: true, forced: true }, { +$$1e({ target: 'Math', stat: true, forced: true }, { umulh: function umulh(u, v) { var UINT16 = 0xFFFF; var $u = +u; @@ -15662,8 +15727,8 @@ $$1d({ target: 'Math', stat: true, forced: true }, { } }); -var $$1c = _export; -var uncurryThis$n = functionUncurryThis; +var $$1d = _export; +var uncurryThis$o = functionUncurryThis; var toIntegerOrInfinity$3 = toIntegerOrInfinity$p; var parseInt$2 = numberParseInt; @@ -15673,40 +15738,40 @@ var $RangeError$2 = RangeError; var $SyntaxError = SyntaxError; var $TypeError$5 = TypeError; var valid = /^[\da-z]+$/; -var charAt$8 = uncurryThis$n(''.charAt); -var exec$4 = uncurryThis$n(valid.exec); -var numberToString$1 = uncurryThis$n(1.0.toString); -var stringSlice$4 = uncurryThis$n(''.slice); +var charAt$8 = uncurryThis$o(''.charAt); +var exec$4 = uncurryThis$o(valid.exec); +var numberToString$1 = uncurryThis$o(1.0.toString); +var stringSlice$4 = uncurryThis$o(''.slice); // `Number.fromString` method // https://github.com/tc39/proposal-number-fromstring -$$1c({ target: 'Number', stat: true, forced: true }, { +$$1d({ target: 'Number', stat: true, forced: true }, { fromString: function fromString(string, radix) { var sign = 1; var R, mathNum; - if (typeof string != 'string') throw $TypeError$5(INVALID_NUMBER_REPRESENTATION); - if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION); + if (typeof string != 'string') throw new $TypeError$5(INVALID_NUMBER_REPRESENTATION); + if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); if (charAt$8(string, 0) === '-') { sign = -1; string = stringSlice$4(string, 1); - if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION); + if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); } R = radix === undefined ? 10 : toIntegerOrInfinity$3(radix); - if (R < 2 || R > 36) throw $RangeError$2(INVALID_RADIX); + if (R < 2 || R > 36) throw new $RangeError$2(INVALID_RADIX); if (!exec$4(valid, string) || numberToString$1(mathNum = parseInt$2(string, R), R) !== string) { - throw $SyntaxError(INVALID_NUMBER_REPRESENTATION); + throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); } return sign * mathNum; } }); -var $$1b = _export; +var $$1c = _export; var NumericRangeIterator = numericRangeIterator; // `Number.range` method // https://github.com/tc39/proposal-Number.range // TODO: Remove from `core-js@4` -$$1b({ target: 'Number', stat: true, forced: true }, { +$$1c({ target: 'Number', stat: true, forced: true }, { range: function range(start, end, option) { return new NumericRangeIterator(start, end, option, 'number', 0, 1); } @@ -15751,55 +15816,55 @@ var objectIterator = createIteratorConstructor$2(function ObjectIterator(source, }); // TODO: Remove from `core-js@4` -var $$1a = _export; +var $$1b = _export; var ObjectIterator$2 = objectIterator; // `Object.iterateEntries` method // https://github.com/tc39/proposal-object-iteration -$$1a({ target: 'Object', stat: true, forced: true }, { +$$1b({ target: 'Object', stat: true, forced: true }, { iterateEntries: function iterateEntries(object) { return new ObjectIterator$2(object, 'entries'); } }); // TODO: Remove from `core-js@4` -var $$19 = _export; +var $$1a = _export; var ObjectIterator$1 = objectIterator; // `Object.iterateKeys` method // https://github.com/tc39/proposal-object-iteration -$$19({ target: 'Object', stat: true, forced: true }, { +$$1a({ target: 'Object', stat: true, forced: true }, { iterateKeys: function iterateKeys(object) { return new ObjectIterator$1(object, 'keys'); } }); // TODO: Remove from `core-js@4` -var $$18 = _export; +var $$19 = _export; var ObjectIterator = objectIterator; // `Object.iterateValues` method // https://github.com/tc39/proposal-object-iteration -$$18({ target: 'Object', stat: true, forced: true }, { +$$19({ target: 'Object', stat: true, forced: true }, { iterateValues: function iterateValues(object) { return new ObjectIterator(object, 'values'); } }); -var $$17 = _export; +var $$18 = _export; var getBuiltIn$g = getBuiltIn$M; -var uncurryThis$m = functionUncurryThis; +var uncurryThis$n = functionUncurryThis; var aCallable$4 = aCallable$N; var requireObjectCoercible$2 = requireObjectCoercible$p; var toPropertyKey = toPropertyKey$a; var iterate$b = iterate$G; var create$2 = getBuiltIn$g('Object', 'create'); -var push$8 = uncurryThis$m([].push); +var push$8 = uncurryThis$n([].push); // `Object.groupBy` method // https://github.com/tc39/proposal-array-grouping -$$17({ target: 'Object', stat: true }, { +$$18({ target: 'Object', stat: true }, { groupBy: function groupBy(items, callbackfn) { requireObjectCoercible$2(items); aCallable$4(callbackfn); @@ -15816,29 +15881,15 @@ $$17({ target: 'Object', stat: true }, { } }); -var global$i = global$16; -var isCallable$6 = isCallable$K; -var wellKnownSymbol$7 = wellKnownSymbol$T; - -var $$OBSERVABLE$2 = wellKnownSymbol$7('observable'); -var NativeObservable = global$i.Observable; -var NativeObservablePrototype = NativeObservable && NativeObservable.prototype; - -var observableForced = !isCallable$6(NativeObservable) - || !isCallable$6(NativeObservable.from) - || !isCallable$6(NativeObservable.of) - || !isCallable$6(NativeObservablePrototype.subscribe) - || !isCallable$6(NativeObservablePrototype[$$OBSERVABLE$2]); - // https://github.com/tc39/proposal-observable -var $$16 = _export; +var $$17 = _export; var call$d = functionCall; var DESCRIPTORS$7 = descriptors; var setSpecies = setSpecies$7; var aCallable$3 = aCallable$N; var anObject$f = anObject$1f; var anInstance$4 = anInstance$f; -var isCallable$5 = isCallable$K; +var isCallable$5 = isCallable$J; var isNullOrUndefined$2 = isNullOrUndefined$k; var isObject$3 = isObject$K; var getMethod$1 = getMethod$l; @@ -15846,9 +15897,8 @@ var defineBuiltIn$5 = defineBuiltIn$u; var defineBuiltIns$1 = defineBuiltIns$b; var defineBuiltInAccessor$5 = defineBuiltInAccessor$o; var hostReportErrors = hostReportErrors$2; -var wellKnownSymbol$6 = wellKnownSymbol$T; +var wellKnownSymbol$6 = wellKnownSymbol$S; var InternalStateModule$4 = internalState; -var OBSERVABLE_FORCED$2 = observableForced; var $$OBSERVABLE$1 = wellKnownSymbol$6('observable'); var OBSERVABLE = 'Observable'; @@ -16012,13 +16062,13 @@ defineBuiltIns$1(ObservablePrototype, { defineBuiltIn$5(ObservablePrototype, $$OBSERVABLE$1, function () { return this; }); -$$16({ global: true, constructor: true, forced: OBSERVABLE_FORCED$2 }, { +$$17({ global: true, constructor: true, forced: true }, { Observable: $Observable }); setSpecies(OBSERVABLE); -var $$15 = _export; +var $$16 = _export; var getBuiltIn$f = getBuiltIn$M; var call$c = functionCall; var anObject$e = anObject$1f; @@ -16026,14 +16076,13 @@ var isConstructor$2 = isConstructor$a; var getIterator$1 = getIterator$7; var getMethod = getMethod$l; var iterate$a = iterate$G; -var wellKnownSymbol$5 = wellKnownSymbol$T; -var OBSERVABLE_FORCED$1 = observableForced; +var wellKnownSymbol$5 = wellKnownSymbol$S; var $$OBSERVABLE = wellKnownSymbol$5('observable'); // `Observable.from` method // https://github.com/tc39/proposal-observable -$$15({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED$1 }, { +$$16({ target: 'Observable', stat: true, forced: true }, { from: function from(x) { var C = isConstructor$2(this) ? this : getBuiltIn$f('Observable'); var observableMethod = getMethod(anObject$e(x), $$OBSERVABLE); @@ -16054,16 +16103,15 @@ $$15({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED$1 }, { } }); -var $$14 = _export; +var $$15 = _export; var getBuiltIn$e = getBuiltIn$M; var isConstructor$1 = isConstructor$a; -var OBSERVABLE_FORCED = observableForced; var Array$2 = getBuiltIn$e('Array'); // `Observable.of` method // https://github.com/tc39/proposal-observable -$$14({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED }, { +$$15({ target: 'Observable', stat: true, forced: true }, { of: function of() { var C = isConstructor$1(this) ? this : getBuiltIn$e('Observable'); var length = arguments.length; @@ -16080,13 +16128,13 @@ $$14({ target: 'Observable', stat: true, forced: OBSERVABLE_FORCED }, { }); // TODO: Remove from `core-js@4` -var $$13 = _export; +var $$14 = _export; var newPromiseCapabilityModule$1 = newPromiseCapability$2; var perform = perform$7; // `Promise.try` method // https://github.com/tc39/proposal-promise-try -$$13({ target: 'Promise', stat: true, forced: true }, { +$$14({ target: 'Promise', stat: true, forced: true }, { 'try': function (callbackfn) { var promiseCapability = newPromiseCapabilityModule$1.f(this); var result = perform(callbackfn); @@ -16095,12 +16143,12 @@ $$13({ target: 'Promise', stat: true, forced: true }, { } }); -var $$12 = _export; +var $$13 = _export; var newPromiseCapabilityModule = newPromiseCapability$2; // `Promise.withResolvers` method // https://github.com/tc39/proposal-promise-with-resolvers -$$12({ target: 'Promise', stat: true }, { +$$13({ target: 'Promise', stat: true }, { withResolvers: function withResolvers() { var promiseCapability = newPromiseCapabilityModule.f(this); return { @@ -16115,12 +16163,12 @@ $$12({ target: 'Promise', stat: true }, { var getBuiltIn$d = getBuiltIn$M; -var uncurryThis$l = functionUncurryThis; +var uncurryThis$m = functionUncurryThis; var shared$2 = sharedExports; var Map$2 = getBuiltIn$d('Map'); var WeakMap$2 = getBuiltIn$d('WeakMap'); -var push$7 = uncurryThis$l([].push); +var push$7 = uncurryThis$m([].push); var metadata = shared$2('metadata'); var store$1 = metadata.store || (metadata.store = new WeakMap$2()); @@ -16174,7 +16222,7 @@ var reflectMetadata = { }; // TODO: Remove from `core-js@4` -var $$11 = _export; +var $$12 = _export; var ReflectMetadataModule$8 = reflectMetadata; var anObject$d = anObject$1f; @@ -16183,14 +16231,14 @@ var ordinaryDefineOwnMetadata$1 = ReflectMetadataModule$8.set; // `Reflect.defineMetadata` method // https://github.com/rbuckton/reflect-metadata -$$11({ target: 'Reflect', stat: true }, { +$$12({ target: 'Reflect', stat: true }, { defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) { var targetKey = arguments.length < 4 ? undefined : toMetadataKey$8(arguments[3]); ordinaryDefineOwnMetadata$1(metadataKey, metadataValue, anObject$d(target), targetKey); } }); -var $$10 = _export; +var $$11 = _export; var ReflectMetadataModule$7 = reflectMetadata; var anObject$c = anObject$1f; @@ -16200,7 +16248,7 @@ var store = ReflectMetadataModule$7.store; // `Reflect.deleteMetadata` method // https://github.com/rbuckton/reflect-metadata -$$10({ target: 'Reflect', stat: true }, { +$$11({ target: 'Reflect', stat: true }, { deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey$7(arguments[2]); var metadataMap = getOrCreateMetadataMap(anObject$c(target), targetKey, false); @@ -16213,7 +16261,7 @@ $$10({ target: 'Reflect', stat: true }, { }); // TODO: Remove from `core-js@4` -var $$$ = _export; +var $$10 = _export; var ReflectMetadataModule$6 = reflectMetadata; var anObject$b = anObject$1f; var getPrototypeOf$2 = objectGetPrototypeOf$2; @@ -16231,7 +16279,7 @@ var ordinaryGetMetadata = function (MetadataKey, O, P) { // `Reflect.getMetadata` method // https://github.com/rbuckton/reflect-metadata -$$$({ target: 'Reflect', stat: true }, { +$$10({ target: 'Reflect', stat: true }, { getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey$6(arguments[2]); return ordinaryGetMetadata(metadataKey, anObject$b(target), targetKey); @@ -16239,15 +16287,15 @@ $$$({ target: 'Reflect', stat: true }, { }); // TODO: Remove from `core-js@4` -var $$_ = _export; -var uncurryThis$k = functionUncurryThis; +var $$$ = _export; +var uncurryThis$l = functionUncurryThis; var ReflectMetadataModule$5 = reflectMetadata; var anObject$a = anObject$1f; var getPrototypeOf$1 = objectGetPrototypeOf$2; var $arrayUniqueBy$1 = arrayUniqueBy$2; -var arrayUniqueBy$1 = uncurryThis$k($arrayUniqueBy$1); -var concat = uncurryThis$k([].concat); +var arrayUniqueBy$1 = uncurryThis$l($arrayUniqueBy$1); +var concat = uncurryThis$l([].concat); var ordinaryOwnMetadataKeys$1 = ReflectMetadataModule$5.keys; var toMetadataKey$5 = ReflectMetadataModule$5.toKey; @@ -16261,7 +16309,7 @@ var ordinaryMetadataKeys = function (O, P) { // `Reflect.getMetadataKeys` method // https://github.com/rbuckton/reflect-metadata -$$_({ target: 'Reflect', stat: true }, { +$$$({ target: 'Reflect', stat: true }, { getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { var targetKey = arguments.length < 2 ? undefined : toMetadataKey$5(arguments[1]); return ordinaryMetadataKeys(anObject$a(target), targetKey); @@ -16269,7 +16317,7 @@ $$_({ target: 'Reflect', stat: true }, { }); // TODO: Remove from `core-js@4` -var $$Z = _export; +var $$_ = _export; var ReflectMetadataModule$4 = reflectMetadata; var anObject$9 = anObject$1f; @@ -16278,7 +16326,7 @@ var toMetadataKey$4 = ReflectMetadataModule$4.toKey; // `Reflect.getOwnMetadata` method // https://github.com/rbuckton/reflect-metadata -$$Z({ target: 'Reflect', stat: true }, { +$$_({ target: 'Reflect', stat: true }, { getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey$4(arguments[2]); return ordinaryGetOwnMetadata(metadataKey, anObject$9(target), targetKey); @@ -16286,7 +16334,7 @@ $$Z({ target: 'Reflect', stat: true }, { }); // TODO: Remove from `core-js@4` -var $$Y = _export; +var $$Z = _export; var ReflectMetadataModule$3 = reflectMetadata; var anObject$8 = anObject$1f; @@ -16295,7 +16343,7 @@ var toMetadataKey$3 = ReflectMetadataModule$3.toKey; // `Reflect.getOwnMetadataKeys` method // https://github.com/rbuckton/reflect-metadata -$$Y({ target: 'Reflect', stat: true }, { +$$Z({ target: 'Reflect', stat: true }, { getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { var targetKey = arguments.length < 2 ? undefined : toMetadataKey$3(arguments[1]); return ordinaryOwnMetadataKeys(anObject$8(target), targetKey); @@ -16303,7 +16351,7 @@ $$Y({ target: 'Reflect', stat: true }, { }); // TODO: Remove from `core-js@4` -var $$X = _export; +var $$Y = _export; var ReflectMetadataModule$2 = reflectMetadata; var anObject$7 = anObject$1f; var getPrototypeOf = objectGetPrototypeOf$2; @@ -16320,7 +16368,7 @@ var ordinaryHasMetadata = function (MetadataKey, O, P) { // `Reflect.hasMetadata` method // https://github.com/rbuckton/reflect-metadata -$$X({ target: 'Reflect', stat: true }, { +$$Y({ target: 'Reflect', stat: true }, { hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey$2(arguments[2]); return ordinaryHasMetadata(metadataKey, anObject$7(target), targetKey); @@ -16328,7 +16376,7 @@ $$X({ target: 'Reflect', stat: true }, { }); // TODO: Remove from `core-js@4` -var $$W = _export; +var $$X = _export; var ReflectMetadataModule$1 = reflectMetadata; var anObject$6 = anObject$1f; @@ -16337,14 +16385,14 @@ var toMetadataKey$1 = ReflectMetadataModule$1.toKey; // `Reflect.hasOwnMetadata` method // https://github.com/rbuckton/reflect-metadata -$$W({ target: 'Reflect', stat: true }, { +$$X({ target: 'Reflect', stat: true }, { hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetadataKey$1(arguments[2]); return ordinaryHasOwnMetadata(metadataKey, anObject$6(target), targetKey); } }); -var $$V = _export; +var $$W = _export; var ReflectMetadataModule = reflectMetadata; var anObject$5 = anObject$1f; @@ -16353,7 +16401,7 @@ var ordinaryDefineOwnMetadata = ReflectMetadataModule.set; // `Reflect.metadata` method // https://github.com/rbuckton/reflect-metadata -$$V({ target: 'Reflect', stat: true }, { +$$W({ target: 'Reflect', stat: true }, { metadata: function metadata(metadataKey, metadataValue) { return function decorator(target, key) { ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject$5(target), toMetadataKey(key)); @@ -16361,6 +16409,26 @@ $$V({ target: 'Reflect', stat: true }, { } }); +var $$V = _export; +var uncurryThis$k = functionUncurryThis; +var toString$9 = toString$J; +var WHITESPACES = whitespaces$6; + +var charCodeAt$3 = uncurryThis$k(''.charCodeAt); +var replace$4 = uncurryThis$k(''.replace); +var NEED_ESCAPING = RegExp('[!"#$%&\'()*+,\\-./:;<=>?@[\\\\\\]^`{|}~' + WHITESPACES + ']', 'g'); + +// `RegExp.escape` method +// https://github.com/tc39/proposal-regex-escaping +$$V({ target: 'RegExp', stat: true, forced: true }, { + escape: function escape(S) { + var str = toString$9(S); + var firstCode = charCodeAt$3(str, 0); + // escape first DecimalDigit + return (firstCode > 47 && firstCode < 58 ? '\\x3' : '') + replace$4(str, NEED_ESCAPING, '\\$&'); + } +}); + var uncurryThis$j = functionUncurryThis; // eslint-disable-next-line es/no-set -- safe @@ -16485,9 +16553,9 @@ var getSetRecord$7 = function (obj) { var numSize = +obj.size; // NOTE: If size is undefined, then numSize will be NaN // eslint-disable-next-line no-self-compare -- NaN check - if (numSize !== numSize) throw $TypeError$4(INVALID_SIZE); + if (numSize !== numSize) throw new $TypeError$4(INVALID_SIZE); var intSize = toIntegerOrInfinity$2(numSize); - if (intSize < 0) throw $RangeError$1(INVALID_SIZE); + if (intSize < 0) throw new $RangeError$1(INVALID_SIZE); return new SetRecord( obj, max$1(intSize, 0), @@ -16570,7 +16638,7 @@ $$S({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike$6( var classof$2 = classof$q; var hasOwn$6 = hasOwnProperty_1; var isNullOrUndefined$1 = isNullOrUndefined$k; -var wellKnownSymbol$4 = wellKnownSymbol$T; +var wellKnownSymbol$4 = wellKnownSymbol$S; var Iterators = iterators; var ITERATOR$3 = wellKnownSymbol$4('iterator'); @@ -16585,7 +16653,7 @@ var isIterable$1 = function (it) { }; var getBuiltIn$b = getBuiltIn$M; -var isCallable$4 = isCallable$K; +var isCallable$4 = isCallable$J; var isIterable = isIterable$1; var isObject$2 = isObject$K; @@ -16879,7 +16947,7 @@ var $$E = _export; var uncurryThis$h = functionUncurryThis; var aSet$5 = aSet$g; var iterate$4 = setIterate; -var toString$8 = toString$I; +var toString$8 = toString$J; var arrayJoin = uncurryThis$h([].join); var push$6 = uncurryThis$h([].push); @@ -16953,7 +17021,7 @@ $$B({ target: 'Set', proto: true, real: true, forced: true }, { accumulator = callbackfn(accumulator, value, value, set); } }); - if (noInitial) throw $TypeError$3('Reduce of empty set with no initial value'); + if (noInitial) throw new $TypeError$3('Reduce of empty set with no initial value'); return accumulator; } }); @@ -17069,7 +17137,7 @@ var $$v = _export; var charAt$7 = stringMultibyte.charAt; var requireObjectCoercible$1 = requireObjectCoercible$p; var toIntegerOrInfinity$1 = toIntegerOrInfinity$p; -var toString$7 = toString$I; +var toString$7 = toString$J; // `String.prototype.at` method // https://github.com/mathiasbynens/String.prototype.at @@ -17085,7 +17153,7 @@ $$v({ target: 'String', proto: true, forced: true }, { var uncurryThis$g = functionUncurryThis; var toIndexedObject = toIndexedObject$k; -var toString$6 = toString$I; +var toString$6 = toString$J; var lengthOfArrayLike$3 = lengthOfArrayLike$C; var $TypeError$2 = TypeError; @@ -17103,7 +17171,7 @@ var stringCooked = function cooked(template /* , ...substitutions */) { var i = 0; while (true) { var nextVal = cookedTemplate[i++]; - if (nextVal === undefined) throw $TypeError$2('Incorrect template'); + if (nextVal === undefined) throw new $TypeError$2('Incorrect template'); push$5(elements, toString$6(nextVal)); if (i === literalSegments) return join$3(elements, ''); if (i < argumentsLength) push$5(elements, toString$6(arguments[i])); @@ -17123,7 +17191,7 @@ var $$t = _export; var createIteratorConstructor$1 = iteratorCreateConstructor; var createIterResultObject = createIterResultObject$g; var requireObjectCoercible = requireObjectCoercible$p; -var toString$5 = toString$I; +var toString$5 = toString$J; var InternalStateModule$3 = internalState; var StringMultibyteModule = stringMultibyte; @@ -17287,7 +17355,7 @@ var uncurryThis$e = functionUncurryThis; var apply$1 = functionApply$1; var anObject$3 = anObject$1f; var toObject = toObject$D; -var isCallable$3 = isCallable$K; +var isCallable$3 = isCallable$J; var lengthOfArrayLike$2 = lengthOfArrayLike$C; var defineProperty$5 = objectDefineProperty.f; var createArrayFromList = arraySliceSimple; @@ -17326,7 +17394,7 @@ var INVALID_CLOSING_LINE = 'Invalid closing line'; var dedentTemplateStringsArray = function (template) { var rawInput = template.raw; // https://github.com/tc39/proposal-string-dedent/issues/75 - if (FREEZING && !isFrozen(rawInput)) throw $TypeError$1('Raw template should be frozen'); + if (FREEZING && !isFrozen(rawInput)) throw new $TypeError$1('Raw template should be frozen'); if (globalDedentRegistry.has(rawInput)) return globalDedentRegistry.get(rawInput); var raw = dedentStringsArray(rawInput); var cookedArr = cookStrings(raw); @@ -17346,12 +17414,12 @@ var dedentStringsArray = function (template) { var i = 0; var lines, common, quasi, k; - if (!length) throw $TypeError$1(INVALID_TAG); + if (!length) throw new $TypeError$1(INVALID_TAG); for (; i < length; i++) { var element = t[i]; if (typeof element == 'string') blocks[i] = split$3(element, NEW_LINE); - else throw $TypeError$1(INVALID_TAG); + else throw new $TypeError$1(INVALID_TAG); } for (i = 0; i < length; i++) { @@ -17359,13 +17427,13 @@ var dedentStringsArray = function (template) { lines = blocks[i]; if (i === 0) { if (lines.length === 1 || lines[0].length > 0) { - throw $TypeError$1(INVALID_OPENING_LINE); + throw new $TypeError$1(INVALID_OPENING_LINE); } lines[1] = ''; } if (lastSplit) { if (lines.length === 1 || exec$3(NON_WHITESPACE, lines[lines.length - 1])) { - throw $TypeError$1(INVALID_CLOSING_LINE); + throw new $TypeError$1(INVALID_CLOSING_LINE); } lines[lines.length - 2] = ''; lines[lines.length - 1] = ''; @@ -17516,7 +17584,7 @@ var shared = sharedExports; var getBuiltIn$7 = getBuiltIn$M; var uncurryThis$c = functionUncurryThis; var isSymbol$1 = isSymbol$8; -var wellKnownSymbol$3 = wellKnownSymbol$T; +var wellKnownSymbol$3 = wellKnownSymbol$S; var Symbol$1 = getBuiltIn$7('Symbol'); var $isWellKnownSymbol = Symbol$1.isWellKnownSymbol; @@ -17941,7 +18009,7 @@ var getBuiltIn$5 = getBuiltIn$M; var uncurryThis$8 = functionUncurryThis; var call$3 = functionCall; var fails$5 = fails$1u; -var toString$4 = toString$I; +var toString$4 = toString$J; var hasOwn$5 = hasOwnProperty_1; var validateArgumentsLength$9 = validateArgumentsLength$b; var ctoi = base64Map.ctoi; @@ -18003,7 +18071,7 @@ var getBuiltIn$4 = getBuiltIn$M; var uncurryThis$7 = functionUncurryThis; var call$2 = functionCall; var fails$4 = fails$1u; -var toString$3 = toString$I; +var toString$3 = toString$J; var validateArgumentsLength$8 = validateArgumentsLength$b; var itoc = base64Map.itoc; @@ -18116,7 +18184,7 @@ var DOMIterables = domIterables; var DOMTokenListPrototype = domTokenListPrototype; var ArrayIteratorMethods = es_array_iterator; var createNonEnumerableProperty$1 = createNonEnumerableProperty$k; -var wellKnownSymbol$2 = wellKnownSymbol$T; +var wellKnownSymbol$2 = wellKnownSymbol$S; var ITERATOR$2 = wellKnownSymbol$2('iterator'); var TO_STRING_TAG = wellKnownSymbol$2('toStringTag'); @@ -18150,15 +18218,6 @@ for (var COLLECTION_NAME in DOMIterables) { handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); -var IS_NODE$1 = engineIsNode; - -var tryNodeRequire$1 = function (name) { - try { - // eslint-disable-next-line no-new-func -- safe - if (IS_NODE$1) return Function('return require("' + name + '")')(); - } catch (error) { /* empty */ } -}; - var domExceptionConstants = { IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, @@ -18188,7 +18247,7 @@ var domExceptionConstants = { }; var $$c = _export; -var tryNodeRequire = tryNodeRequire$1; +var tryNodeRequire = tryNodeRequire$2; var getBuiltIn$3 = getBuiltIn$M; var fails$3 = fails$1u; var create$1 = objectCreate$1; @@ -18224,7 +18283,7 @@ var NativeDOMExceptionPrototype = NativeDOMException$1 && NativeDOMException$1.p var ErrorPrototype = Error$3.prototype; var setInternalState$2 = InternalStateModule$2.set; var getInternalState = InternalStateModule$2.getterFor(DOM_EXCEPTION$2); -var HAS_STACK = 'stack' in Error$3(DOM_EXCEPTION$2); +var HAS_STACK = 'stack' in new Error$3(DOM_EXCEPTION$2); var codeFor = function (name) { return hasOwn$4(DOMExceptionConstants$1, name) && DOMExceptionConstants$1[name].m ? DOMExceptionConstants$1[name].c : 0; @@ -18248,7 +18307,7 @@ var $DOMException$1 = function DOMException() { this.code = code; } if (HAS_STACK) { - var error = Error$3(message); + var error = new Error$3(message); error.name = DOM_EXCEPTION$2; defineProperty$2(this, 'stack', createPropertyDescriptor$2(1, clearErrorStack$1(error.stack, 1))); } @@ -18354,7 +18413,7 @@ var $DOMException = function DOMException() { var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); var that = new NativeDOMException(message, name); - var error = Error$2(message); + var error = new Error$2(message); error.name = DOM_EXCEPTION$1; defineProperty$1(that, 'stack', createPropertyDescriptor$1(1, clearErrorStack(error.stack, 1))); inheritIfRequired(that, this, $DOMException); @@ -18363,7 +18422,7 @@ var $DOMException = function DOMException() { var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; -var ERROR_HAS_STACK = 'stack' in Error$2(DOM_EXCEPTION$1); +var ERROR_HAS_STACK = 'stack' in new Error$2(DOM_EXCEPTION$1); var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe @@ -18421,7 +18480,7 @@ var engineIsBun = typeof Bun == 'function' && Bun && typeof Bun.version == 'stri var global$9 = global$16; var apply = functionApply$1; -var isCallable$2 = isCallable$K; +var isCallable$2 = isCallable$J; var ENGINE_IS_BUN = engineIsBun; var USER_AGENT = engineUserAgent; var arraySlice$1 = arraySlice$b; @@ -18508,7 +18567,7 @@ try { return global$6; }, set: function self(value) { - if (this !== global$6) throw $TypeError('Illegal invocation'); + if (this !== global$6) throw new $TypeError('Illegal invocation'); defineProperty(global$6, 'self', { value: value, writable: true, @@ -18531,7 +18590,7 @@ var getBuiltin = getBuiltIn$M; var uncurryThis$6 = functionUncurryThis; var fails$2 = fails$1u; var uid = uid$7; -var isCallable$1 = isCallable$K; +var isCallable$1 = isCallable$J; var isConstructor = isConstructor$a; var isNullOrUndefined = isNullOrUndefined$k; var isObject$1 = isObject$K; @@ -18547,8 +18606,9 @@ var validateArgumentsLength$5 = validateArgumentsLength$b; var getRegExpFlags = regexpGetFlags; var MapHelpers = mapHelpers; var SetHelpers = setHelpers; +var arrayBufferTransfer = arrayBufferTransfer$1; var ERROR_STACK_INSTALLABLE = errorStackInstallable; -var PROPER_TRANSFER = structuredCloneProperTransfer; +var PROPER_STRUCTURED_CLONE_TRANSFER = structuredCloneProperTransfer; var Object$1 = global$5.Object; var Array$1 = global$5.Array; @@ -18754,37 +18814,37 @@ var structuredCloneInternal = function (value, map, transferredBuffers) { name = value.name; switch (name) { case 'AggregateError': - cloned = getBuiltin('AggregateError')([]); + cloned = new (getBuiltin('AggregateError'))([]); break; case 'EvalError': - cloned = EvalError(); + cloned = new EvalError(); break; case 'RangeError': - cloned = RangeError$1(); + cloned = new RangeError$1(); break; case 'ReferenceError': - cloned = ReferenceError$1(); + cloned = new ReferenceError$1(); break; case 'SyntaxError': - cloned = SyntaxError$1(); + cloned = new SyntaxError$1(); break; case 'TypeError': - cloned = TypeError$3(); + cloned = new TypeError$3(); break; case 'URIError': - cloned = URIError(); + cloned = new URIError(); break; case 'CompileError': - cloned = CompileError(); + cloned = new CompileError(); break; case 'LinkError': - cloned = LinkError(); + cloned = new LinkError(); break; case 'RuntimeError': - cloned = RuntimeError(); + cloned = new RuntimeError(); break; default: - cloned = Error$1(); + cloned = new Error$1(); } break; case 'DOMException': @@ -19047,7 +19107,7 @@ var replacePlaceholders = function (value, map) { }; var tryToTransfer = function (rawTransfer, map) { - if (!isObject$1(rawTransfer)) throw TypeError$3('Transfer option cannot be converted to a sequence'); + if (!isObject$1(rawTransfer)) throw new TypeError$3('Transfer option cannot be converted to a sequence'); var transfer = []; @@ -19072,7 +19132,7 @@ var tryToTransfer = function (rawTransfer, map) { if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); - if (PROPER_TRANSFER) { + if (PROPER_STRUCTURED_CLONE_TRANSFER) { transferred = nativeStructuredClone(value, { transfer: [value] }); } else switch (type) { case 'ImageBitmap': @@ -19120,8 +19180,8 @@ var tryToTransferBuffers = function (transfer, map) { if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); - if (PROPER_TRANSFER) { - transferred = nativeStructuredClone(value, { transfer: [value] }); + if (arrayBufferTransfer) { + transferred = arrayBufferTransfer(value, undefined, true); } else { if (!isCallable$1(value.transfer)) throwUnpolyfillable('ArrayBuffer', TRANSFERRING); transferred = value.transfer(); @@ -19133,7 +19193,7 @@ var tryToTransferBuffers = function (transfer, map) { // `structuredClone` method // https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone -$$6({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, { +$$6({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, { structuredClone: function structuredClone(value /* , { transfer } */) { var options = validateArgumentsLength$5(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject$1(arguments[1]) : undefined; var transfer = options ? options.transfer : undefined; @@ -19185,7 +19245,7 @@ $$4({ global: true, bind: true, forced: global$3.setTimeout !== setTimeout$1 }, }); var fails$1 = fails$1u; -var wellKnownSymbol$1 = wellKnownSymbol$T; +var wellKnownSymbol$1 = wellKnownSymbol$S; var DESCRIPTORS$3 = descriptors; var IS_PURE = isPure; @@ -19358,7 +19418,7 @@ var encode = function (input) { // Increase `delta` enough to advance the decoder's state to , but guard against overflow. var handledCPCountPlusOne = handledCPCount + 1; if (m - n > floor$1((maxInt - delta) / handledCPCountPlusOne)) { - throw $RangeError(OVERFLOW_ERROR); + throw new $RangeError(OVERFLOW_ERROR); } delta += (m - n) * handledCPCountPlusOne; @@ -19367,7 +19427,7 @@ var encode = function (input) { for (i = 0; i < input.length; i++) { currentValue = input[i]; if (currentValue < n && ++delta > maxInt) { - throw $RangeError(OVERFLOW_ERROR); + throw new $RangeError(OVERFLOW_ERROR); } if (currentValue === n) { // Represent delta as a generalized variable-length integer. @@ -19422,19 +19482,19 @@ var setToStringTag$1 = setToStringTag$d; var createIteratorConstructor = iteratorCreateConstructor; var InternalStateModule$1 = internalState; var anInstance$1 = anInstance$f; -var isCallable = isCallable$K; +var isCallable = isCallable$J; var hasOwn$1 = hasOwnProperty_1; var bind$1 = functionBindContext; var classof = classof$q; var anObject = anObject$1f; var isObject = isObject$K; -var $toString$1 = toString$I; +var $toString$1 = toString$J; var create = objectCreate$1; var createPropertyDescriptor = createPropertyDescriptor$d; var getIterator = getIterator$7; var getIteratorMethod = getIteratorMethod$8; var validateArgumentsLength$4 = validateArgumentsLength$b; -var wellKnownSymbol = wellKnownSymbol$T; +var wellKnownSymbol = wellKnownSymbol$S; var arraySort = arraySort$1; var ITERATOR = wellKnownSymbol('iterator'); @@ -19564,7 +19624,7 @@ URLSearchParamsState.prototype = { (first = call$1(entryNext, entryIterator)).done || (second = call$1(entryNext, entryIterator)).done || !call$1(entryNext, entryIterator).done - ) throw TypeError$2('Expected sequence with length 2'); + ) throw new TypeError$2('Expected sequence with length 2'); push$2(this.entries, { key: $toString$1(first.value), value: $toString$1(second.value) }); } } else for (var key in object) if (hasOwn$1(object, key)) { @@ -19839,7 +19899,7 @@ var arrayFrom = arrayFrom$1; var arraySlice = arraySliceSimple; var codeAt = stringMultibyte.codeAt; var toASCII = stringPunycodeToAscii; -var $toString = toString$I; +var $toString = toString$J; var setToStringTag = setToStringTag$d; var validateArgumentsLength$3 = validateArgumentsLength$b; var URLSearchParamsModule = web_urlSearchParams_constructor; @@ -20143,12 +20203,12 @@ var URLState = function (url, isBase, base) { var baseState, failure, searchParams; if (isBase) { failure = this.parse(urlString); - if (failure) throw TypeError$1(failure); + if (failure) throw new TypeError$1(failure); this.searchParams = null; } else { if (base !== undefined) baseState = new URLState(base, true); failure = this.parse(urlString, null, baseState); - if (failure) throw TypeError$1(failure); + if (failure) throw new TypeError$1(failure); searchParams = getInternalSearchParamsState(new URLSearchParams$1()); searchParams.bindURL(this); this.searchParams = searchParams; @@ -20637,7 +20697,7 @@ URLState.prototype = { // https://url.spec.whatwg.org/#dom-url-href setHref: function (href) { var failure = this.parse(href); - if (failure) throw TypeError$1(failure); + if (failure) throw new TypeError$1(failure); this.searchParams.update(); }, // https://url.spec.whatwg.org/#dom-url-origin @@ -20874,7 +20934,7 @@ var $$1 = _export; var getBuiltIn = getBuiltIn$M; var fails = fails$1u; var validateArgumentsLength$2 = validateArgumentsLength$b; -var toString$2 = toString$I; +var toString$2 = toString$J; var USE_NATIVE_URL = urlConstructorDetection; var URL$1 = getBuiltIn('URL'); @@ -20913,7 +20973,7 @@ $({ target: 'URL', proto: true, enumerable: true }, { var defineBuiltIn$1 = defineBuiltIn$u; var uncurryThis$2 = functionUncurryThis; -var toString$1 = toString$I; +var toString$1 = toString$J; var validateArgumentsLength$1 = validateArgumentsLength$b; var $URLSearchParams$1 = URLSearchParams; @@ -20962,7 +21022,7 @@ if (params$1 + '' !== 'a=2') { var defineBuiltIn = defineBuiltIn$u; var uncurryThis$1 = functionUncurryThis; -var toString = toString$I; +var toString = toString$J; var validateArgumentsLength = validateArgumentsLength$b; var $URLSearchParams = URLSearchParams; diff --git a/test/form/samples/supports-es5-shim/_config.js b/test/form/samples/supports-es5-shim/_config.js index 8d44b41d4..564ffd1e5 100644 --- a/test/form/samples/supports-es5-shim/_config.js +++ b/test/form/samples/supports-es5-shim/_config.js @@ -6,7 +6,6 @@ module.exports = defineTest({ throw new Error(warning.message); } }, - // TODO notable exception: Promise.resolve(thenable) not yet retained // check against tree-shake: false when updating the shim treeshake: true, plugins: [ diff --git a/test/form/samples/system-uninitialized/_config.js b/test/form/samples/system-uninitialized/_config.js index 871cd4092..685acc69d 100644 --- a/test/form/samples/system-uninitialized/_config.js +++ b/test/form/samples/system-uninitialized/_config.js @@ -1,6 +1,3 @@ -// Changed due to https://github.com/acornjs/acorn/issues/806 -// Consider reverting this change should this become an acorn option - module.exports = defineTest({ description: 'supports uninitialized binding exports', options: { diff --git a/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js b/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js index 8a69e51d0..f8330f85c 100644 --- a/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js +++ b/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js @@ -155,15 +155,6 @@ var bail1$1 = /*#__PURE__*/Object.freeze({ named1: named1 }); -var bail2 = '@included-bail-2'; -const named2 = 'bail2'; - -var bail2$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - default: bail2, - named2: named2 -}); - var bail3 = '@included-bail-3'; const named3 = 'bail3'; @@ -173,6 +164,15 @@ var bail3$1 = /*#__PURE__*/Object.freeze({ named3: named3 }); +var bail2 = '@included-bail-2'; +const named2 = 'bail2'; + +var bail2$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + default: bail2, + named2: named2 +}); + var bail4 = '@included-bail-4'; const named4 = 'bail4'; diff --git a/test/form/samples/unknown-token-effects/_config.js b/test/form/samples/unknown-token-effects/_config.js deleted file mode 100644 index c917c7ca2..000000000 --- a/test/form/samples/unknown-token-effects/_config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = defineTest({ - description: 'does not tree-shake unknown tokens', - options: { - acornInjectPlugins: Parser => - class extends Parser { - parseExprAtom(referenceDestructuringErrors) { - if (this.type.keyword === 'do') { - this.eat(this.type); - const node = this.startNode(); - node.body = this.parseBlock(); - return this.finishNode(node, 'DoExpression'); - } - return super.parseExprAtom(referenceDestructuringErrors); - } - } - } -}); diff --git a/test/form/samples/unknown-token-effects/_expected.js b/test/form/samples/unknown-token-effects/_expected.js deleted file mode 100644 index ecb186398..000000000 --- a/test/form/samples/unknown-token-effects/_expected.js +++ /dev/null @@ -1,34 +0,0 @@ -(do { - () => console.log('retained'); -}()); -(do { - null; -}.y); -(do { - ({ y: () => console.log('retained') }); -}.y()); -(do { - ({ - set y(value) { - console.log(value); - } - }); -}.y = 'retained'); - -const functionUsedInExpr = () => 1; -const objectUsedInExpr = { value: 2 }; -const valueUsedInExpr = 3; - -const exprValue = do { - if (unknownCondition1) { - functionUsedInExpr(); - } else if (unknownCondition2) { - objectUsedInExpr.value; - } else if (unknownCondition3) { - valueUsedInExpr; - } else { - 'direct value'; - } -}; - -export { exprValue }; diff --git a/test/form/samples/unknown-token-effects/main.js b/test/form/samples/unknown-token-effects/main.js deleted file mode 100644 index 624210488..000000000 --- a/test/form/samples/unknown-token-effects/main.js +++ /dev/null @@ -1,32 +0,0 @@ -(do { - () => console.log('retained'); -}()); -(do { - null; -}.y); -(do { - ({ y: () => console.log('retained') }); -}.y()); -(do { - ({ - set y(value) { - console.log(value); - } - }); -}.y = 'retained'); - -const functionUsedInExpr = () => 1; -const objectUsedInExpr = { value: 2 }; -const valueUsedInExpr = 3; - -export const exprValue = do { - if (unknownCondition1) { - functionUsedInExpr(); - } else if (unknownCondition2) { - objectUsedInExpr.value; - } else if (unknownCondition3) { - valueUsedInExpr; - } else { - 'direct value' - } -}; diff --git a/test/function/index.js b/test/function/index.js index d00b26669..ddf4fbaa8 100644 --- a/test/function/index.js +++ b/test/function/index.js @@ -5,7 +5,12 @@ const path = require('node:path'); */ // @ts-expect-error not included in types const rollup = require('../../dist/rollup'); -const { compareError, compareLogs, runTestSuiteWithSamples } = require('../utils.js'); +const { + compareError, + compareLogs, + runTestSuiteWithSamples, + verifyAstPlugin +} = require('../utils.js'); function requireWithContext(code, context, exports) { const module = { exports }; @@ -67,6 +72,14 @@ runTestSuiteWithSamples( process.chdir(directory); const logs = []; const warnings = []; + const plugins = + config.verifyAst === false + ? config.options?.plugins + : config.options?.plugins === undefined + ? verifyAstPlugin + : Array.isArray(config.options.plugins) + ? [...config.options.plugins, verifyAstPlugin] + : config.options.plugins; return rollup .rollup({ @@ -78,7 +91,8 @@ runTestSuiteWithSamples( } }, strictDeprecations: true, - ...config.options + ...config.options, + plugins }) .then(bundle => { let unintendedError; diff --git a/test/function/samples/add-watch-file-generate/_config.js b/test/function/samples/add-watch-file-generate/_config.js index 1a36f9f8a..862acfce3 100644 --- a/test/function/samples/add-watch-file-generate/_config.js +++ b/test/function/samples/add-watch-file-generate/_config.js @@ -3,12 +3,14 @@ const path = require('node:path'); module.exports = defineTest({ description: 'throws when adding watch files during generate', options: { - plugins: { - name: 'test-plugin', - renderStart() { - this.addWatchFile(path.join(__dirname, 'watched.js')); + plugins: [ + { + name: 'test-plugin', + renderStart() { + this.addWatchFile(path.join(__dirname, 'watched.js')); + } } - } + ] }, generateError: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/allow-reserved/_config.js b/test/function/samples/allow-reserved/_config.js deleted file mode 100644 index 810d2959e..000000000 --- a/test/function/samples/allow-reserved/_config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = defineTest({ - description: 'allow reserved identifiers via custom acorn options', - options: { - acorn: { - allowReserved: true - } - } -}); diff --git a/test/function/samples/allow-reserved/main.js b/test/function/samples/allow-reserved/main.js deleted file mode 100644 index 00782b93d..000000000 --- a/test/function/samples/allow-reserved/main.js +++ /dev/null @@ -1,4 +0,0 @@ -var x = function await() { - return 42; -}; -assert.equal(x(), 42); diff --git a/test/function/samples/bundle-facade-order/_config.js b/test/function/samples/bundle-facade-order/_config.js index 9dd3332ec..2c45be4d5 100644 --- a/test/function/samples/bundle-facade-order/_config.js +++ b/test/function/samples/bundle-facade-order/_config.js @@ -8,21 +8,23 @@ module.exports = defineTest({ 'main-alias': 'main', other: 'other' }, - plugins: { - name: 'test-plugin', - generateBundle(options, bundle) { - assert.deepStrictEqual( - Object.keys(bundle).map(id => [id, bundle[id].code]), - [ - ['main.js', "'use strict';\n\nvar main = 'main1';\n\nmodule.exports = main;\n"], - ['other.js', "'use strict';\n\nvar other = 'main2';\n\nmodule.exports = other;\n"], + plugins: [ + { + name: 'test-plugin', + generateBundle(options, bundle) { + assert.deepStrictEqual( + Object.keys(bundle).map(id => [id, bundle[id].code]), [ - 'main-alias.js', - "'use strict';\n\nvar main = require('./main.js');\n\n\n\nmodule.exports = main;\n" + ['main.js', "'use strict';\n\nvar main = 'main1';\n\nmodule.exports = main;\n"], + ['other.js', "'use strict';\n\nvar other = 'main2';\n\nmodule.exports = other;\n"], + [ + 'main-alias.js', + "'use strict';\n\nvar main = require('./main.js');\n\n\n\nmodule.exports = main;\n" + ] ] - ] - ); + ); + } } - } + ] } }); diff --git a/test/function/samples/call-marked-pure-with-plugin-parse-ast/_config.js b/test/function/samples/call-marked-pure-with-plugin-parse-ast/_config.js index 9fe44391a..d736faba6 100644 --- a/test/function/samples/call-marked-pure-with-plugin-parse-ast/_config.js +++ b/test/function/samples/call-marked-pure-with-plugin-parse-ast/_config.js @@ -8,11 +8,7 @@ module.exports = defineTest({ plugins: [ { transform(code) { - const comments = []; - const ast = this.parse(code, { onComment: comments }); - if (comments.length != 5 || comments.some(({ value }) => !value.includes('PURE'))) { - throw new Error('failed to get comments'); - } + const ast = this.parse(code); return { ast, code, map: null }; } } diff --git a/test/function/samples/cannot-resolve-sourcemap-warning/_config.js b/test/function/samples/cannot-resolve-sourcemap-warning/_config.js index 89dfd06cd..cfec197b8 100644 --- a/test/function/samples/cannot-resolve-sourcemap-warning/_config.js +++ b/test/function/samples/cannot-resolve-sourcemap-warning/_config.js @@ -4,12 +4,14 @@ const ID_MAIN = path.join(__dirname, 'main.js'); module.exports = defineTest({ description: 'handles when a sourcemap cannot be resolved in a warning', options: { - plugins: { - name: 'test-plugin', - transform() { - return { code: 'export default this', map: { mappings: '' } }; + plugins: [ + { + name: 'test-plugin', + transform() { + return { code: 'export default this', map: { mappings: '' } }; + } } - } + ] }, warnings: [ { diff --git a/test/function/samples/check-exports-exportedBindings-as-a-supplementary-test/_config.js b/test/function/samples/check-exports-exportedBindings-as-a-supplementary-test/_config.js index c2b0ddb5a..dbfddc29c 100644 --- a/test/function/samples/check-exports-exportedBindings-as-a-supplementary-test/_config.js +++ b/test/function/samples/check-exports-exportedBindings-as-a-supplementary-test/_config.js @@ -23,12 +23,14 @@ const expectedResult = { module.exports = defineTest({ description: 'check exports and exportedBindings in moduleParsed as a supplementary test', options: { - plugins: { - name: 'test-plugin', - moduleParsed(moduleInfo) { - const { exports, exportedBindings, id } = moduleInfo; - assert.deepStrictEqual({ exports, exportedBindings }, expectedResult[id]); + plugins: [ + { + name: 'test-plugin', + moduleParsed(moduleInfo) { + const { exports, exportedBindings, id } = moduleInfo; + assert.deepStrictEqual({ exports, exportedBindings }, expectedResult[id]); + } } - } + ] } }); diff --git a/test/function/samples/context-resolve-skipself/_config.js b/test/function/samples/context-resolve-skipself/_config.js index 75662842f..3f1d53a71 100644 --- a/test/function/samples/context-resolve-skipself/_config.js +++ b/test/function/samples/context-resolve-skipself/_config.js @@ -1,5 +1,8 @@ const path = require('node:path'); +let hasInfinite = false; +const importer = path.join(__dirname, 'main.js'); + module.exports = defineTest({ description: 'allows a plugin to skip its own resolveId hook when using this.resolve', options: { @@ -9,15 +12,15 @@ module.exports = defineTest({ if (id === 'resolutions') { return id; } - if (id.startsWith('test')) { + if (id.startsWith('test') || id.startsWith('foo') || id.startsWith('bar')) { return 'own-resolution'; } }, load(id) { if (id === 'resolutions') { - const importer = path.join(__dirname, 'main.js'); return Promise.all([ - this.resolve('test', importer).then(result => ({ id: result.id, text: 'all' })), + this.resolve('bar', importer).then(result => ({ id: result.id, text: 'bar' })), + this.resolve('foo', importer).then(result => ({ id: result.id, text: 'foo' })), this.resolve('test', importer, { skipSelf: false }).then(result => ({ id: result.id, text: 'unskipped' @@ -32,10 +35,27 @@ module.exports = defineTest({ }, { resolveId(id) { + if (id.startsWith('bar')) { + return this.resolve('bar', importer); + } + if (id.startsWith('foo')) { + if (hasInfinite) { + return 'foo-resolution'; + } + hasInfinite = true; + return this.resolve('foo', importer, { skipSelf: false }); + } if (id.startsWith('test')) { return 'other-resolution'; } } + }, + { + resolveId(id) { + if (id.startsWith('bar')) { + return 'bar-resolution'; + } + } } ] } diff --git a/test/function/samples/context-resolve-skipself/existing.js b/test/function/samples/context-resolve-skipself/existing.js deleted file mode 100644 index 948626053..000000000 --- a/test/function/samples/context-resolve-skipself/existing.js +++ /dev/null @@ -1 +0,0 @@ -console.log('existing'); diff --git a/test/function/samples/context-resolve-skipself/main.js b/test/function/samples/context-resolve-skipself/main.js index a0be821e3..d490fbe14 100644 --- a/test/function/samples/context-resolve-skipself/main.js +++ b/test/function/samples/context-resolve-skipself/main.js @@ -2,8 +2,12 @@ import resolutions from 'resolutions'; assert.deepStrictEqual(resolutions, [ { - id: 'own-resolution', - text: 'all' + id: 'bar-resolution', + text: 'bar' + }, + { + id: 'foo-resolution', + text: 'foo' }, { id: 'own-resolution', diff --git a/test/function/samples/context-resolve/_config.js b/test/function/samples/context-resolve/_config.js index 680305939..985585d5c 100644 --- a/test/function/samples/context-resolve/_config.js +++ b/test/function/samples/context-resolve/_config.js @@ -6,7 +6,7 @@ const tests = [ source: './existing', expected: { id: path.join(__dirname, 'existing.js'), - assertions: {}, + attributes: {}, external: false, meta: {}, resolvedBy: 'rollup', @@ -26,7 +26,7 @@ const tests = [ source: './marked-directly-external-relative', expected: { id: path.join(__dirname, 'marked-directly-external-relative'), - assertions: {}, + attributes: {}, external: true, meta: {}, moduleSideEffects: true, @@ -38,7 +38,7 @@ const tests = [ source: './marked-external-relative', expected: { id: path.join(__dirname, 'marked-external-relative'), - assertions: {}, + attributes: {}, external: true, meta: {}, moduleSideEffects: true, @@ -50,7 +50,7 @@ const tests = [ source: 'marked-external-absolute', expected: { id: 'marked-external-absolute', - assertions: {}, + attributes: {}, external: true, meta: {}, moduleSideEffects: true, @@ -62,7 +62,7 @@ const tests = [ source: 'resolved-name', expected: { id: 'resolved:resolved-name', - assertions: {}, + attributes: {}, external: false, meta: {}, moduleSideEffects: true, @@ -74,7 +74,7 @@ const tests = [ source: 'resolved-false', expected: { id: 'resolved-false', - assertions: {}, + attributes: {}, external: true, meta: {}, resolvedBy: 'rollup', @@ -86,7 +86,7 @@ const tests = [ source: 'resolved-object', expected: { id: 'resolved:resolved-object', - assertions: {}, + attributes: {}, external: false, meta: {}, moduleSideEffects: true, @@ -98,7 +98,7 @@ const tests = [ source: 'resolved-object-non-external', expected: { id: 'resolved:resolved-object-non-external', - assertions: {}, + attributes: {}, external: false, meta: {}, moduleSideEffects: true, @@ -110,7 +110,7 @@ const tests = [ source: 'resolved-object-external', expected: { id: 'resolved:resolved-object-external', - assertions: {}, + attributes: {}, external: true, meta: {}, moduleSideEffects: true, diff --git a/test/function/samples/deprecated/compact/_config.js b/test/function/samples/deprecated/compact/_config.js deleted file mode 100644 index 852426cfd..000000000 --- a/test/function/samples/deprecated/compact/_config.js +++ /dev/null @@ -1,32 +0,0 @@ -const path = require('node:path'); -const ID_MAIN = path.join(__dirname, 'main.js'); - -module.exports = defineTest({ - description: 'compact output with compact: true', - options: { - strictDeprecations: false, - external: ['external'], - output: { - compact: true, - namespaceToStringTag: true - } - }, - warnings: [ - { - code: 'CIRCULAR_DEPENDENCY', - ids: [ID_MAIN, ID_MAIN], - message: 'Circular dependency: main.js -> main.js' - }, - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ], - context: { - require() { - return 42; - } - } -}); diff --git a/test/function/samples/deprecated/compact/main.js b/test/function/samples/deprecated/compact/main.js deleted file mode 100644 index 6ecb287fb..000000000 --- a/test/function/samples/deprecated/compact/main.js +++ /dev/null @@ -1,12 +0,0 @@ -import x from 'external'; -import * as self from './main.js'; - -assert.equal(self && self['de' + 'fault'](), 42); - -export default function foo() { - return x; -} - -import('./main.js').then(self => { - assert.equal(self && self['de' + 'fault'](), 42); -}); diff --git a/test/function/samples/deprecated/dynamic-import-duplicates/_config.js b/test/function/samples/deprecated/dynamic-import-duplicates/_config.js deleted file mode 100644 index fa2edf25f..000000000 --- a/test/function/samples/deprecated/dynamic-import-duplicates/_config.js +++ /dev/null @@ -1,23 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'Dynamic import inlining', - options: { - strictDeprecations: false, - inlineDynamicImports: true - }, - exports(exports) { - assert.equal(exports.x, 41); - return exports.promise.then(y => { - assert.equal(y, 42); - }); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "inlineDynamicImports" option is deprecated. Use the "output.inlineDynamicImports" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - } - ] -}); diff --git a/test/function/samples/deprecated/dynamic-import-duplicates/foo.js b/test/function/samples/deprecated/dynamic-import-duplicates/foo.js deleted file mode 100644 index ddb14e152..000000000 --- a/test/function/samples/deprecated/dynamic-import-duplicates/foo.js +++ /dev/null @@ -1 +0,0 @@ -export var x = 42; \ No newline at end of file diff --git a/test/function/samples/deprecated/dynamic-import-duplicates/main.js b/test/function/samples/deprecated/dynamic-import-duplicates/main.js deleted file mode 100644 index 37a427d7d..000000000 --- a/test/function/samples/deprecated/dynamic-import-duplicates/main.js +++ /dev/null @@ -1,5 +0,0 @@ -export var x = 41; - -export var promise = Promise.all([import('./foo'), import('./foo')]).then(foos => { - return foos[0].x; -}); diff --git a/test/function/samples/deprecated/dynamic-import-inlining/_config.js b/test/function/samples/deprecated/dynamic-import-inlining/_config.js deleted file mode 100644 index fa2edf25f..000000000 --- a/test/function/samples/deprecated/dynamic-import-inlining/_config.js +++ /dev/null @@ -1,23 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'Dynamic import inlining', - options: { - strictDeprecations: false, - inlineDynamicImports: true - }, - exports(exports) { - assert.equal(exports.x, 41); - return exports.promise.then(y => { - assert.equal(y, 42); - }); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "inlineDynamicImports" option is deprecated. Use the "output.inlineDynamicImports" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - } - ] -}); diff --git a/test/function/samples/deprecated/dynamic-import-inlining/foo.js b/test/function/samples/deprecated/dynamic-import-inlining/foo.js deleted file mode 100644 index ddb14e152..000000000 --- a/test/function/samples/deprecated/dynamic-import-inlining/foo.js +++ /dev/null @@ -1 +0,0 @@ -export var x = 42; \ No newline at end of file diff --git a/test/function/samples/deprecated/dynamic-import-inlining/main.js b/test/function/samples/deprecated/dynamic-import-inlining/main.js deleted file mode 100644 index 94869cb0b..000000000 --- a/test/function/samples/deprecated/dynamic-import-inlining/main.js +++ /dev/null @@ -1,5 +0,0 @@ -export var x = 41; - -export var promise = import('./foo').then(foo => { - return foo.x; -}); diff --git a/test/function/samples/deprecated/dynamic-import-name-warn/_config.js b/test/function/samples/deprecated/dynamic-import-name-warn/_config.js deleted file mode 100644 index 60e45b2b3..000000000 --- a/test/function/samples/deprecated/dynamic-import-name-warn/_config.js +++ /dev/null @@ -1,44 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'warns when specifying a custom importer function for formats other than "es"', - context: { - require(path) { - assert.equal(path, './foo.js'); - return 42; - } - }, - options: { - strictDeprecations: false, - input: 'main.js', - plugins: { - resolveDynamicImport() { - return false; - } - }, - output: { - dynamicImportFunction: 'myImporter', - format: 'cjs', - dynamicImportInCjs: false - } - }, - exports(exports) { - return exports.fromFoo.then(value => - assert.deepStrictEqual(value, { __proto__: null, default: 42 }) - ); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.dynamicImportFunction" option is deprecated. Use the "renderDynamicImport" plugin hook instead.', - url: 'https://rollupjs.org/plugin-development/#renderdynamicimport' - }, - { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "output.dynamicImportFunction" - this option is ignored for formats other than "es".', - url: 'https://rollupjs.org/configuration-options/#output-dynamicimportfunction' - } - ] -}); diff --git a/test/function/samples/deprecated/dynamic-import-name-warn/main.js b/test/function/samples/deprecated/dynamic-import-name-warn/main.js deleted file mode 100644 index ed74de99f..000000000 --- a/test/function/samples/deprecated/dynamic-import-name-warn/main.js +++ /dev/null @@ -1 +0,0 @@ -export const fromFoo = import('./foo.js'); diff --git a/test/function/samples/deprecated/dynamic-import-name/_config.js b/test/function/samples/deprecated/dynamic-import-name/_config.js deleted file mode 100644 index 6a93ad208..000000000 --- a/test/function/samples/deprecated/dynamic-import-name/_config.js +++ /dev/null @@ -1,36 +0,0 @@ -const assert = require('node:assert'); -let imported = false; - -module.exports = defineTest({ - description: 'allows specifying a custom importer function', - context: { - myImporter(path) { - assert.equal(path, './foo.js'); - imported = true; - } - }, - options: { - strictDeprecations: false, - input: 'main.js', - plugins: { - resolveDynamicImport() { - return false; - } - }, - output: { - dynamicImportFunction: 'myImporter', - format: 'es' - } - }, - exports() { - assert.ok(imported); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.dynamicImportFunction" option is deprecated. Use the "renderDynamicImport" plugin hook instead.', - url: 'https://rollupjs.org/plugin-development/#renderdynamicimport' - } - ] -}); diff --git a/test/function/samples/deprecated/dynamic-import-name/main.js b/test/function/samples/deprecated/dynamic-import-name/main.js deleted file mode 100644 index bbe4a5cc2..000000000 --- a/test/function/samples/deprecated/dynamic-import-name/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./foo.js'); diff --git a/test/function/samples/deprecated/inline-dynamic-imports-bundle/_config.js b/test/function/samples/deprecated/inline-dynamic-imports-bundle/_config.js deleted file mode 100644 index 3a1c929fc..000000000 --- a/test/function/samples/deprecated/inline-dynamic-imports-bundle/_config.js +++ /dev/null @@ -1,26 +0,0 @@ -const assert = require('node:assert'); -const path = require('node:path'); - -module.exports = defineTest({ - description: 'ignores non-bundled modules when inlining dynamic imports', - options: { - strictDeprecations: false, - inlineDynamicImports: true, - plugins: { - generateBundle(options, bundle) { - assert.deepStrictEqual(Object.keys(bundle['main.js'].modules), [ - path.join(__dirname, 'lib.js'), - path.join(__dirname, 'main.js') - ]); - } - } - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "inlineDynamicImports" option is deprecated. Use the "output.inlineDynamicImports" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - } - ] -}); diff --git a/test/function/samples/deprecated/inline-dynamic-imports-bundle/lib.js b/test/function/samples/deprecated/inline-dynamic-imports-bundle/lib.js deleted file mode 100644 index 9d7381d29..000000000 --- a/test/function/samples/deprecated/inline-dynamic-imports-bundle/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const foo = 42; diff --git a/test/function/samples/deprecated/inline-dynamic-imports-bundle/main.js b/test/function/samples/deprecated/inline-dynamic-imports-bundle/main.js deleted file mode 100644 index 0bb1f9f4b..000000000 --- a/test/function/samples/deprecated/inline-dynamic-imports-bundle/main.js +++ /dev/null @@ -1 +0,0 @@ -export { foo } from './reexporter'; diff --git a/test/function/samples/deprecated/inline-dynamic-imports-bundle/reexporter.js b/test/function/samples/deprecated/inline-dynamic-imports-bundle/reexporter.js deleted file mode 100644 index 26a05cf13..000000000 --- a/test/function/samples/deprecated/inline-dynamic-imports-bundle/reexporter.js +++ /dev/null @@ -1 +0,0 @@ -export { foo } from './lib'; diff --git a/test/function/samples/deprecated/inline-imports-with-manual/_config.js b/test/function/samples/deprecated/inline-imports-with-manual/_config.js deleted file mode 100644 index b72dc7f5b..000000000 --- a/test/function/samples/deprecated/inline-imports-with-manual/_config.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = defineTest({ - description: 'Manual chunks are not supported when inlining dynamic imports', - options: { - strictDeprecations: false, - input: ['main.js'], - inlineDynamicImports: true, - manualChunks: { - lib: ['lib.js'] - } - }, - generateError: { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "output.manualChunks" - this option is not supported for "output.inlineDynamicImports".', - url: 'https://rollupjs.org/configuration-options/#output-manualchunks' - }, - warnings: [] -}); diff --git a/test/function/samples/deprecated/inline-imports-with-manual/lib.js b/test/function/samples/deprecated/inline-imports-with-manual/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/inline-imports-with-manual/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/inline-imports-with-manual/main.js b/test/function/samples/deprecated/inline-imports-with-manual/main.js deleted file mode 100644 index 4869dc82f..000000000 --- a/test/function/samples/deprecated/inline-imports-with-manual/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./lib').then(({value}) => assert.equal(value, 42)); diff --git a/test/function/samples/deprecated/inline-imports-with-multiple-array/_config.js b/test/function/samples/deprecated/inline-imports-with-multiple-array/_config.js deleted file mode 100644 index 30eeb3b6e..000000000 --- a/test/function/samples/deprecated/inline-imports-with-multiple-array/_config.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = defineTest({ - description: 'Having multiple inputs in an array is not supported when inlining dynamic imports', - options: { - strictDeprecations: false, - input: ['main.js', 'lib.js'], - inlineDynamicImports: true - }, - generateError: { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "output.inlineDynamicImports" - multiple inputs are not supported when "output.inlineDynamicImports" is true.', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - }, - warnings: [] -}); diff --git a/test/function/samples/deprecated/inline-imports-with-multiple-array/lib.js b/test/function/samples/deprecated/inline-imports-with-multiple-array/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/inline-imports-with-multiple-array/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/inline-imports-with-multiple-array/main.js b/test/function/samples/deprecated/inline-imports-with-multiple-array/main.js deleted file mode 100644 index 4869dc82f..000000000 --- a/test/function/samples/deprecated/inline-imports-with-multiple-array/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./lib').then(({value}) => assert.equal(value, 42)); diff --git a/test/function/samples/deprecated/inline-imports-with-multiple-object/_config.js b/test/function/samples/deprecated/inline-imports-with-multiple-object/_config.js deleted file mode 100644 index 65df9df7e..000000000 --- a/test/function/samples/deprecated/inline-imports-with-multiple-object/_config.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = defineTest({ - description: 'Having multiple inputs in an object is not supported when inlining dynamic imports', - options: { - strictDeprecations: false, - input: { main: 'main.js', lib: 'lib.js' }, - inlineDynamicImports: true - }, - generateError: { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "output.inlineDynamicImports" - multiple inputs are not supported when "output.inlineDynamicImports" is true.', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "inlineDynamicImports" option is deprecated. Use the "output.inlineDynamicImports" option instead.' - } - ] -}); diff --git a/test/function/samples/deprecated/inline-imports-with-multiple-object/lib.js b/test/function/samples/deprecated/inline-imports-with-multiple-object/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/inline-imports-with-multiple-object/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/inline-imports-with-multiple-object/main.js b/test/function/samples/deprecated/inline-imports-with-multiple-object/main.js deleted file mode 100644 index 4869dc82f..000000000 --- a/test/function/samples/deprecated/inline-imports-with-multiple-object/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./lib').then(({value}) => assert.equal(value, 42)); diff --git a/test/function/samples/deprecated/manual-chunks-conflict/_config.js b/test/function/samples/deprecated/manual-chunks-conflict/_config.js deleted file mode 100644 index 789f7339c..000000000 --- a/test/function/samples/deprecated/manual-chunks-conflict/_config.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = defineTest({ - description: 'Throws for conflicts between manual chunks', - options: { - strictDeprecations: false, - input: ['main.js'], - output: { - manualChunks: { - dep1: ['dep.js'], - dep2: ['dep.js'] - } - } - }, - generateError: { - code: 'INVALID_CHUNK', - message: 'Cannot assign "dep.js" to the "dep2" chunk as it is already in the "dep1" chunk.' - }, - warnings: [] -}); diff --git a/test/function/samples/deprecated/manual-chunks-conflict/dep.js b/test/function/samples/deprecated/manual-chunks-conflict/dep.js deleted file mode 100644 index b74a9837c..000000000 --- a/test/function/samples/deprecated/manual-chunks-conflict/dep.js +++ /dev/null @@ -1 +0,0 @@ -console.log('dep'); diff --git a/test/function/samples/deprecated/manual-chunks-info/_config.js b/test/function/samples/deprecated/manual-chunks-info/_config.js deleted file mode 100644 index 6a7d57050..000000000 --- a/test/function/samples/deprecated/manual-chunks-info/_config.js +++ /dev/null @@ -1,315 +0,0 @@ -const assert = require('node:assert'); -const path = require('node:path'); -const { getObject } = require('../../../../utils'); - -function getId(name) { - return path.join(__dirname, `${name}.js`); -} - -module.exports = defineTest({ - description: 'provides additional chunk information to a manualChunks function', - options: { - strictDeprecations: false, - external: 'external', - output: { - manualChunks(id, { getModuleIds, getModuleInfo }) { - assert.deepStrictEqual( - getObject( - [...getModuleIds()].map(id => [id, JSON.parse(JSON.stringify(getModuleInfo(id)))]) - ), - { - [getId('dynamic')]: { - id: getId('dynamic'), - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 88, - body: [ - { - type: 'ExportNamedDeclaration', - start: 0, - end: 42, - declaration: { - type: 'VariableDeclaration', - start: 7, - end: 42, - declarations: [ - { - type: 'VariableDeclarator', - start: 13, - end: 41, - id: { type: 'Identifier', start: 13, end: 20, name: 'promise' }, - init: { - type: 'ImportExpression', - start: 23, - end: 41, - source: { - type: 'Literal', - start: 30, - end: 40, - value: 'external', - raw: "'external'" - } - } - } - ], - kind: 'const' - }, - specifiers: [], - source: null - }, - { - type: 'ExportNamedDeclaration', - start: 43, - end: 87, - declaration: null, - specifiers: [ - { - type: 'ExportSpecifier', - start: 52, - end: 71, - local: { type: 'Identifier', start: 52, end: 59, name: 'default' }, - exported: { type: 'Identifier', start: 63, end: 71, name: 'internal' } - } - ], - source: { type: 'Literal', start: 79, end: 86, value: './lib', raw: "'./lib'" } - } - ], - sourceType: 'module' - }, - code: "export const promise = import('external');\nexport { default as internal } from './lib';\n", - dynamicallyImportedIdResolutions: [ - { - assertions: {}, - external: true, - id: 'external', - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - dynamicallyImportedIds: ['external'], - dynamicImporters: [getId('main')], - exports: ['promise', 'internal'], - exportedBindings: { '.': ['promise'], './lib': ['internal'] }, - hasDefaultExport: false, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [ - { - assertions: {}, - external: false, - id: getId('lib'), - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - importedIds: [getId('lib')], - importers: [], - isEntry: false, - isExternal: false, - isIncluded: true, - meta: {}, - syntheticNamedExports: false - }, - [getId('lib')]: { - id: getId('lib'), - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 19, - body: [ - { - type: 'ExportDefaultDeclaration', - start: 0, - end: 18, - declaration: { type: 'Literal', start: 15, end: 17, value: 42, raw: '42' } - } - ], - sourceType: 'module' - }, - code: 'export default 42;\n', - dynamicallyImportedIdResolutions: [], - dynamicallyImportedIds: [], - dynamicImporters: [], - exportedBindings: { '.': ['default'] }, - exports: ['default'], - hasDefaultExport: true, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [], - importedIds: [], - importers: [getId('dynamic'), getId('main')], - isEntry: false, - isExternal: false, - isIncluded: true, - meta: {}, - syntheticNamedExports: false - }, - [getId('main')]: { - id: getId('main'), - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 123, - body: [ - { - type: 'ExportNamedDeclaration', - start: 0, - end: 43, - declaration: { - type: 'VariableDeclaration', - start: 7, - end: 43, - declarations: [ - { - type: 'VariableDeclarator', - start: 13, - end: 42, - id: { type: 'Identifier', start: 13, end: 20, name: 'promise' }, - init: { - type: 'ImportExpression', - start: 23, - end: 42, - source: { - type: 'Literal', - start: 30, - end: 41, - value: './dynamic', - raw: "'./dynamic'" - } - } - } - ], - kind: 'const' - }, - specifiers: [], - source: null - }, - { - type: 'ExportNamedDeclaration', - start: 44, - end: 85, - declaration: null, - specifiers: [ - { - type: 'ExportSpecifier', - start: 53, - end: 69, - local: { type: 'Identifier', start: 53, end: 60, name: 'default' }, - exported: { type: 'Identifier', start: 64, end: 69, name: 'value' } - } - ], - source: { type: 'Literal', start: 77, end: 84, value: './lib', raw: "'./lib'" } - }, - { - type: 'ExportNamedDeclaration', - start: 86, - end: 122, - declaration: null, - specifiers: [ - { - type: 'ExportSpecifier', - start: 95, - end: 103, - local: { type: 'Identifier', start: 95, end: 103, name: 'external' }, - exported: { type: 'Identifier', start: 95, end: 103, name: 'external' } - } - ], - source: { - type: 'Literal', - start: 111, - end: 121, - value: 'external', - raw: "'external'" - } - } - ], - sourceType: 'module' - }, - code: "export const promise = import('./dynamic');\nexport { default as value } from './lib';\nexport { external } from 'external';\n", - dynamicallyImportedIdResolutions: [ - { - assertions: {}, - external: false, - id: getId('dynamic'), - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - dynamicallyImportedIds: [getId('dynamic')], - dynamicImporters: [], - exportedBindings: { '.': ['promise'], './lib': ['value'], external: ['external'] }, - exports: ['promise', 'value', 'external'], - hasDefaultExport: false, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [ - { - assertions: {}, - external: false, - id: getId('lib'), - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - }, - { - assertions: {}, - external: true, - id: 'external', - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - importedIds: [getId('lib'), 'external'], - importers: [], - isEntry: true, - isExternal: false, - isIncluded: true, - meta: {}, - syntheticNamedExports: false - }, - external: { - id: 'external', - assertions: {}, - ast: null, - code: null, - dynamicallyImportedIdResolutions: [], - dynamicallyImportedIds: [], - dynamicImporters: [getId('dynamic')], - exportedBindings: null, - exports: null, - hasDefaultExport: null, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [], - importedIds: [], - importers: [getId('main')], - isEntry: false, - isExternal: true, - isIncluded: null, - meta: {}, - syntheticNamedExports: false - } - } - ); - } - } - }, - warnings: [] -}); diff --git a/test/function/samples/deprecated/manual-chunks-info/dynamic.js b/test/function/samples/deprecated/manual-chunks-info/dynamic.js deleted file mode 100644 index 2d2ab6f35..000000000 --- a/test/function/samples/deprecated/manual-chunks-info/dynamic.js +++ /dev/null @@ -1,2 +0,0 @@ -export const promise = import('external'); -export { default as internal } from './lib'; diff --git a/test/function/samples/deprecated/manual-chunks-info/lib.js b/test/function/samples/deprecated/manual-chunks-info/lib.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/function/samples/deprecated/manual-chunks-info/lib.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/function/samples/deprecated/manual-chunks-info/main.js b/test/function/samples/deprecated/manual-chunks-info/main.js deleted file mode 100644 index c79c2fe09..000000000 --- a/test/function/samples/deprecated/manual-chunks-info/main.js +++ /dev/null @@ -1,3 +0,0 @@ -export const promise = import('./dynamic'); -export { default as value } from './lib'; -export { external } from 'external'; diff --git a/test/function/samples/deprecated/manual-chunks-preserve-modules/_config.js b/test/function/samples/deprecated/manual-chunks-preserve-modules/_config.js deleted file mode 100644 index 1afbdff0e..000000000 --- a/test/function/samples/deprecated/manual-chunks-preserve-modules/_config.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = defineTest({ - description: 'Assigning manual chunks fails when preserving modules', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - manualChunks: { - lib: ['lib.js'] - } - }, - generateError: { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "output.manualChunks" - this option is not supported for "output.preserveModules".', - url: 'https://rollupjs.org/configuration-options/#output-manualchunks' - }, - warnings: [] -}); diff --git a/test/function/samples/deprecated/manual-chunks-preserve-modules/lib.js b/test/function/samples/deprecated/manual-chunks-preserve-modules/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/manual-chunks-preserve-modules/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/manual-chunks-preserve-modules/main.js b/test/function/samples/deprecated/manual-chunks-preserve-modules/main.js deleted file mode 100644 index 0786352d0..000000000 --- a/test/function/samples/deprecated/manual-chunks-preserve-modules/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { value } from './lib'; - -assert.equal(value, 42); diff --git a/test/function/samples/deprecated/max-parallel-file-reads/infinity/1.js b/test/function/samples/deprecated/max-parallel-file-reads/infinity/1.js deleted file mode 100644 index 877dd1fbb..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/infinity/1.js +++ /dev/null @@ -1 +0,0 @@ -export const x1 = 1; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/infinity/2.js b/test/function/samples/deprecated/max-parallel-file-reads/infinity/2.js deleted file mode 100644 index c269ae0d2..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/infinity/2.js +++ /dev/null @@ -1 +0,0 @@ -export const x2 = 2; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/infinity/3.js b/test/function/samples/deprecated/max-parallel-file-reads/infinity/3.js deleted file mode 100644 index 1c3235399..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/infinity/3.js +++ /dev/null @@ -1 +0,0 @@ -export const x3 = 3; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/infinity/4.js b/test/function/samples/deprecated/max-parallel-file-reads/infinity/4.js deleted file mode 100644 index 1b01b419a..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/infinity/4.js +++ /dev/null @@ -1 +0,0 @@ -export const x4 = 4; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/infinity/5.js b/test/function/samples/deprecated/max-parallel-file-reads/infinity/5.js deleted file mode 100644 index 734bf3f6f..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/infinity/5.js +++ /dev/null @@ -1 +0,0 @@ -export const x5 = 5; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/infinity/_config.js b/test/function/samples/deprecated/max-parallel-file-reads/infinity/_config.js deleted file mode 100644 index 8f9700cf2..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/infinity/_config.js +++ /dev/null @@ -1,37 +0,0 @@ -const assert = require('node:assert'); -const { promises: fs } = require('node:fs'); -const { wait } = require('../../../../../utils'); - -const fsReadFile = fs.readFile; -let currentReads = 0; -let maxReads = 0; - -module.exports = defineTest({ - description: 'maxParallelFileReads set to infinity', - options: { - strictDeprecations: false, - maxParallelFileReads: 0 - }, - before() { - fs.readFile = async (path, options) => { - currentReads++; - maxReads = Math.max(maxReads, currentReads); - const content = await fsReadFile(path, options); - await wait(50); - currentReads--; - return content; - }; - }, - after() { - fs.readFile = fsReadFile; - assert.strictEqual(maxReads, 5, 'Wrong number of parallel file reads: ' + maxReads); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "maxParallelFileReads" option is deprecated. Use the "maxParallelFileOps" option instead.', - url: 'https://rollupjs.org/configuration-options/#maxparallelfileops' - } - ] -}); diff --git a/test/function/samples/deprecated/max-parallel-file-reads/infinity/main.js b/test/function/samples/deprecated/max-parallel-file-reads/infinity/main.js deleted file mode 100644 index 5f0a705e4..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/infinity/main.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from './1'; -export * from './2'; -export * from './3'; -export * from './4'; -export * from './5'; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/set/1.js b/test/function/samples/deprecated/max-parallel-file-reads/set/1.js deleted file mode 100644 index 877dd1fbb..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/set/1.js +++ /dev/null @@ -1 +0,0 @@ -export const x1 = 1; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/set/2.js b/test/function/samples/deprecated/max-parallel-file-reads/set/2.js deleted file mode 100644 index c269ae0d2..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/set/2.js +++ /dev/null @@ -1 +0,0 @@ -export const x2 = 2; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/set/3.js b/test/function/samples/deprecated/max-parallel-file-reads/set/3.js deleted file mode 100644 index 1c3235399..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/set/3.js +++ /dev/null @@ -1 +0,0 @@ -export const x3 = 3; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/set/4.js b/test/function/samples/deprecated/max-parallel-file-reads/set/4.js deleted file mode 100644 index 1b01b419a..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/set/4.js +++ /dev/null @@ -1 +0,0 @@ -export const x4 = 4; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/set/5.js b/test/function/samples/deprecated/max-parallel-file-reads/set/5.js deleted file mode 100644 index 734bf3f6f..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/set/5.js +++ /dev/null @@ -1 +0,0 @@ -export const x5 = 5; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/set/_config.js b/test/function/samples/deprecated/max-parallel-file-reads/set/_config.js deleted file mode 100644 index 4f9d4e77b..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/set/_config.js +++ /dev/null @@ -1,37 +0,0 @@ -const assert = require('node:assert'); -const { promises: fs } = require('node:fs'); -const { wait } = require('../../../../../utils'); - -const fsReadFile = fs.readFile; -let currentReads = 0; -let maxReads = 0; - -module.exports = defineTest({ - description: 'maxParallelFileReads set to 3', - options: { - strictDeprecations: false, - maxParallelFileReads: 3 - }, - before() { - fs.readFile = async (path, options) => { - currentReads++; - maxReads = Math.max(maxReads, currentReads); - const content = await fsReadFile(path, options); - await wait(50); - currentReads--; - return content; - }; - }, - after() { - fs.readFile = fsReadFile; - assert.strictEqual(maxReads, 3, 'Wrong number of parallel file reads: ' + maxReads); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "maxParallelFileReads" option is deprecated. Use the "maxParallelFileOps" option instead.', - url: 'https://rollupjs.org/configuration-options/#maxparallelfileops' - } - ] -}); diff --git a/test/function/samples/deprecated/max-parallel-file-reads/set/main.js b/test/function/samples/deprecated/max-parallel-file-reads/set/main.js deleted file mode 100644 index 5f0a705e4..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/set/main.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from './1'; -export * from './2'; -export * from './3'; -export * from './4'; -export * from './5'; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/1.js b/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/1.js deleted file mode 100644 index 877dd1fbb..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/1.js +++ /dev/null @@ -1 +0,0 @@ -export const x1 = 1; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/2.js b/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/2.js deleted file mode 100644 index c269ae0d2..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/2.js +++ /dev/null @@ -1 +0,0 @@ -export const x2 = 2; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/3.js b/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/3.js deleted file mode 100644 index 1c3235399..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/3.js +++ /dev/null @@ -1 +0,0 @@ -export const x3 = 3; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/4.js b/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/4.js deleted file mode 100644 index 1b01b419a..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/4.js +++ /dev/null @@ -1 +0,0 @@ -export const x4 = 4; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/5.js b/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/5.js deleted file mode 100644 index 734bf3f6f..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/5.js +++ /dev/null @@ -1 +0,0 @@ -export const x5 = 5; diff --git a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/_config.js b/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/_config.js deleted file mode 100644 index b16cd3bf5..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/_config.js +++ /dev/null @@ -1,44 +0,0 @@ -const assert = require('node:assert'); -const { promises: fs } = require('node:fs'); -const { wait } = require('../../../../../utils'); - -const fsReadFile = fs.readFile; -let currentReads = 0; -let maxReads = 0; - -module.exports = defineTest({ - description: 'maxParallelFileReads with plugin', - options: { - strictDeprecations: false, - maxParallelFileReads: 3, - plugins: [ - { - load(id) { - return fs.readFile(id, 'utf8'); - } - } - ] - }, - before() { - fs.readFile = async (path, options) => { - currentReads++; - maxReads = Math.max(maxReads, currentReads); - const content = await fsReadFile(path, options); - await wait(50); - currentReads--; - return content; - }; - }, - after() { - fs.readFile = fsReadFile; - assert.strictEqual(maxReads, 3, 'Wrong number of parallel file reads: ' + maxReads); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "maxParallelFileReads" option is deprecated. Use the "maxParallelFileOps" option instead.', - url: 'https://rollupjs.org/configuration-options/#maxparallelfileops' - } - ] -}); diff --git a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/main.js b/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/main.js deleted file mode 100644 index 5f0a705e4..000000000 --- a/test/function/samples/deprecated/max-parallel-file-reads/with-plugin/main.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from './1'; -export * from './2'; -export * from './3'; -export * from './4'; -export * from './5'; diff --git a/test/function/samples/deprecated/name-conflict-symbol/_config.js b/test/function/samples/deprecated/name-conflict-symbol/_config.js deleted file mode 100644 index e13f395ce..000000000 --- a/test/function/samples/deprecated/name-conflict-symbol/_config.js +++ /dev/null @@ -1,23 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'avoids name conflicts with local variables named Symbol', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true - } - }, - exports(exports) { - assert.strictEqual(exports.Symbol, null); - assert.strictEqual(exports.toString(), '[object Module]'); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/name-conflict-symbol/main.js b/test/function/samples/deprecated/name-conflict-symbol/main.js deleted file mode 100644 index 6b55d36f1..000000000 --- a/test/function/samples/deprecated/name-conflict-symbol/main.js +++ /dev/null @@ -1 +0,0 @@ -export const Symbol = null; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js deleted file mode 100644 index fdcc36cfa..000000000 --- a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/_config.js +++ /dev/null @@ -1,27 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: - 'adds Symbol.toStringTag property to dynamic imports of entry chunks with default export mode', - options: { - strictDeprecations: false, - input: ['main', 'foo'], - output: { - namespaceToStringTag: true - } - }, - async exports(exports) { - const foo = await exports; - assert.strictEqual(foo[Symbol.toStringTag], 'Module'); - assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); - assert.strictEqual(foo.default, 42); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/foo.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js deleted file mode 100644 index 88023eaa2..000000000 --- a/test/function/samples/deprecated/namespace-tostring/dynamic-import-default-mode/main.js +++ /dev/null @@ -1 +0,0 @@ -export default import('./foo'); diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import/_config.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import/_config.js deleted file mode 100644 index a7672c3e1..000000000 --- a/test/function/samples/deprecated/namespace-tostring/dynamic-import/_config.js +++ /dev/null @@ -1,30 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to dynamic imports', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true - } - }, - async exports(exports) { - const namespace = await exports; - assert.strictEqual(Object.prototype.toString.call(namespace), '[object Module]'); - assert.strictEqual(namespace[Symbol.toStringTag], 'Module'); - assert.strictEqual(namespace.bar, 42); - - const copied = { ...namespace }; - assert.deepStrictEqual(copied, { bar: 42 }); - assert.strictEqual(Object.prototype.toString.call(copied), '[object Object]'); - assert.strictEqual(copied[Symbol.toStringTag], undefined); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import/foo.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import/foo.js deleted file mode 100644 index 308e102fe..000000000 --- a/test/function/samples/deprecated/namespace-tostring/dynamic-import/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const bar = 42; diff --git a/test/function/samples/deprecated/namespace-tostring/dynamic-import/main.js b/test/function/samples/deprecated/namespace-tostring/dynamic-import/main.js deleted file mode 100644 index 88023eaa2..000000000 --- a/test/function/samples/deprecated/namespace-tostring/dynamic-import/main.js +++ /dev/null @@ -1 +0,0 @@ -export default import('./foo'); diff --git a/test/function/samples/deprecated/namespace-tostring/entry-default/_config.js b/test/function/samples/deprecated/namespace-tostring/entry-default/_config.js deleted file mode 100644 index bed1e2e5b..000000000 --- a/test/function/samples/deprecated/namespace-tostring/entry-default/_config.js +++ /dev/null @@ -1,25 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'does not add Symbol.toStringTag property to entry chunks with default export mode', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true, - exports: 'default' - } - }, - exports(exports) { - assert.strictEqual(exports[Symbol.toStringTag], undefined); - assert.strictEqual(Object.prototype.toString.call(exports), '[object Object]'); - assert.strictEqual(exports.foo, 42); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/entry-default/main.js b/test/function/samples/deprecated/namespace-tostring/entry-default/main.js deleted file mode 100644 index 407b3c24e..000000000 --- a/test/function/samples/deprecated/namespace-tostring/entry-default/main.js +++ /dev/null @@ -1 +0,0 @@ -export default { foo: 42 }; diff --git a/test/function/samples/deprecated/namespace-tostring/entry-named/_config.js b/test/function/samples/deprecated/namespace-tostring/entry-named/_config.js deleted file mode 100644 index 80242f61d..000000000 --- a/test/function/samples/deprecated/namespace-tostring/entry-named/_config.js +++ /dev/null @@ -1,30 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to entry chunks with named exports', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true, - exports: 'named' - } - }, - exports(exports) { - assert.strictEqual(Object.prototype.toString.call(exports), '[object Module]'); - assert.strictEqual(exports[Symbol.toStringTag], 'Module'); - assert.strictEqual(exports.foo, 42); - - const copied = { ...exports }; - assert.deepStrictEqual(copied, { foo: 42 }); - assert.strictEqual(Object.prototype.toString.call(copied), '[object Object]'); - assert.strictEqual(copied[Symbol.toStringTag], undefined); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/entry-named/main.js b/test/function/samples/deprecated/namespace-tostring/entry-named/main.js deleted file mode 100644 index 9d7381d29..000000000 --- a/test/function/samples/deprecated/namespace-tostring/entry-named/main.js +++ /dev/null @@ -1 +0,0 @@ -export const foo = 42; diff --git a/test/function/samples/deprecated/namespace-tostring/external-namespaces/_config.js b/test/function/samples/deprecated/namespace-tostring/external-namespaces/_config.js deleted file mode 100644 index f5f42bc9b..000000000 --- a/test/function/samples/deprecated/namespace-tostring/external-namespaces/_config.js +++ /dev/null @@ -1,41 +0,0 @@ -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to external namespaces', - options: { - strictDeprecations: false, - external(id) { - return id.startsWith('external'); - }, - output: { - namespaceToStringTag: true, - interop(id) { - switch (id) { - case 'external-auto': { - return 'auto'; - } - case 'external-default': { - return 'default'; - } - case 'external-defaultOnly': { - return 'defaultOnly'; - } - default: { - throw new Error(`Unexpected require "${id}"`); - } - } - } - } - }, - context: { - require() { - return { foo: 42 }; - } - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/external-namespaces/main.js b/test/function/samples/deprecated/namespace-tostring/external-namespaces/main.js deleted file mode 100644 index 978de6a2c..000000000 --- a/test/function/samples/deprecated/namespace-tostring/external-namespaces/main.js +++ /dev/null @@ -1,15 +0,0 @@ -import * as externalAuto from 'external-auto'; -import * as externalDefault from 'external-default'; -import * as externalDefaultOnly from 'external-defaultOnly'; - -assert.strictEqual(externalAuto[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalAuto), '[object Module]'); -assert.strictEqual(externalAuto.foo, 42); - -assert.strictEqual(externalDefault[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefault), '[object Module]'); -assert.strictEqual(externalDefault.foo, 42); - -assert.strictEqual(externalDefaultOnly[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(externalDefaultOnly), '[object Module]'); -assert.deepStrictEqual(externalDefaultOnly.default, { foo: 42 }); diff --git a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/_config.js b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/_config.js deleted file mode 100644 index b13c2840c..000000000 --- a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/_config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = defineTest({ - description: 'adds Symbol.toStringTag property to inlined namespaces', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true - } - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/foo.js b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/foo.js deleted file mode 100644 index 308e102fe..000000000 --- a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const bar = 42; diff --git a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/main.js b/test/function/samples/deprecated/namespace-tostring/inlined-namespace/main.js deleted file mode 100644 index fb6b24345..000000000 --- a/test/function/samples/deprecated/namespace-tostring/inlined-namespace/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import * as foo from './foo'; - -assert.strictEqual(foo[Symbol.toStringTag], 'Module'); -assert.strictEqual(Object.prototype.toString.call(foo), '[object Module]'); -assert.strictEqual(foo.bar, 42); diff --git a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/_config.js b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/_config.js deleted file mode 100644 index 56a9227ac..000000000 --- a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/_config.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = defineTest({ - description: 'generated interop namespaces should have correct Symbol.toStringTag', - context: { - require() { - return { answer: 42 }; - } - }, - options: { - strictDeprecations: false, - external(id) { - return id.includes('external'); - }, - output: { - namespaceToStringTag: true, - interop(id) { - return id.split('-')[1]; - } - } - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/dep.js b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/dep.js deleted file mode 100644 index 123aa5a11..000000000 --- a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/dep.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from 'external-default'; -export const extra = 'extra'; diff --git a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/main.js b/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/main.js deleted file mode 100644 index 7240b9002..000000000 --- a/test/function/samples/deprecated/namespace-tostring/interop-property-descriptor/main.js +++ /dev/null @@ -1,25 +0,0 @@ -import * as nsDefault from 'external-default'; -import * as nsDefaultOnly from 'external-defaultOnly'; -import * as nsMerged from './dep.js'; - -function verifyNamespace(ns, expected) { - assert.deepStrictEqual(Object.getOwnPropertyDescriptor(ns, Symbol.toStringTag), { - value: 'Module', - configurable: false, - enumerable: false, - writable: false - }); - - const assigned = Object.assign({}, ns); - const spreaded = { ...ns }; - - assert.deepStrictEqual(assigned, expected); - assert.strictEqual(assigned[Symbol.toStringTag], undefined); - - assert.deepStrictEqual(spreaded, expected); - assert.strictEqual(spreaded[Symbol.toStringTag], undefined); -} - -verifyNamespace(nsDefault, { answer: 42, default: { answer: 42 } }); -verifyNamespace(nsDefaultOnly, { default: { answer: 42 } }); -verifyNamespace(nsMerged, { answer: 42, extra: 'extra' }); diff --git a/test/function/samples/deprecated/namespace-tostring/property-descriptor/_config.js b/test/function/samples/deprecated/namespace-tostring/property-descriptor/_config.js deleted file mode 100644 index c0a08b6ee..000000000 --- a/test/function/samples/deprecated/namespace-tostring/property-descriptor/_config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = defineTest({ - description: 'namespace export should have @@toStringTag with correct property descriptors #4336', - options: { - strictDeprecations: false, - output: { - namespaceToStringTag: true - } - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/namespace-tostring/property-descriptor/foo.js b/test/function/samples/deprecated/namespace-tostring/property-descriptor/foo.js deleted file mode 100644 index c155820bf..000000000 --- a/test/function/samples/deprecated/namespace-tostring/property-descriptor/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const foo = 'bar'; diff --git a/test/function/samples/deprecated/namespace-tostring/property-descriptor/main.js b/test/function/samples/deprecated/namespace-tostring/property-descriptor/main.js deleted file mode 100644 index 2743d20a1..000000000 --- a/test/function/samples/deprecated/namespace-tostring/property-descriptor/main.js +++ /dev/null @@ -1,22 +0,0 @@ -import * as ns from './foo.js'; - -const { assign, getOwnPropertyDescriptor } = Object; - -const { configurable, enumerable, value, writable } = getOwnPropertyDescriptor( - ns, - Symbol.toStringTag -); - -assert.strictEqual(value, 'Module', 'value'); -assert.strictEqual(configurable, false, 'configurable'); -assert.strictEqual(enumerable, false, 'enumerable'); -assert.strictEqual(writable, false, 'writable'); - -const a = assign({}, ns); -const b = { ...ns }; - -assert.deepStrictEqual(a, { foo: 'bar' }); -assert.strictEqual(a[Symbol.toStringTag], undefined); - -assert.deepStrictEqual(b, { foo: 'bar' }); -assert.strictEqual(b[Symbol.toStringTag], undefined); diff --git a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/_config.js b/test/function/samples/deprecated/nested-inlined-dynamic-import-1/_config.js deleted file mode 100644 index 8d567dff2..000000000 --- a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/_config.js +++ /dev/null @@ -1,21 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: - 'deconflicts variables when nested dynamic imports are inlined via inlineDynamicImports', - options: { - strictDeprecations: false, - inlineDynamicImports: true - }, - exports(exports) { - return exports().then(result => assert.strictEqual(result, 43)); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "inlineDynamicImports" option is deprecated. Use the "output.inlineDynamicImports" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - } - ] -}); diff --git a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/foo.js b/test/function/samples/deprecated/nested-inlined-dynamic-import-1/foo.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/foo.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/main.js b/test/function/samples/deprecated/nested-inlined-dynamic-import-1/main.js deleted file mode 100644 index 24dfcc33b..000000000 --- a/test/function/samples/deprecated/nested-inlined-dynamic-import-1/main.js +++ /dev/null @@ -1,4 +0,0 @@ -export default () => { - const foo = 1; - return import('./foo.js').then(ns => ns.value + foo); -}; diff --git a/test/function/samples/deprecated/plugin-module-ids/_config.js b/test/function/samples/deprecated/plugin-module-ids/_config.js deleted file mode 100644 index e296b0c91..000000000 --- a/test/function/samples/deprecated/plugin-module-ids/_config.js +++ /dev/null @@ -1,34 +0,0 @@ -const assert = require('node:assert'); -const path = require('node:path'); - -let rendered = false; - -module.exports = defineTest({ - description: 'provides all module ids on the plugin context', - options: { - strictDeprecations: false, - external: ['path'], - plugins: { - renderStart() { - rendered = true; - assert.deepStrictEqual([...this.moduleIds].sort(), [ - path.join(__dirname, 'foo.js'), - path.join(__dirname, 'main.js'), - 'path' - ]); - } - } - }, - bundle() { - assert.ok(rendered); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'Accessing "this.moduleIds" on the plugin context by plugin at position 1 is deprecated. The "this.getModuleIds" plugin context function should be used instead.', - plugin: 'at position 1', - url: 'https://rollupjs.org/plugin-development/#this-getmoduleids' - } - ] -}); diff --git a/test/function/samples/deprecated/plugin-module-ids/foo.js b/test/function/samples/deprecated/plugin-module-ids/foo.js deleted file mode 100644 index cb4875a0a..000000000 --- a/test/function/samples/deprecated/plugin-module-ids/foo.js +++ /dev/null @@ -1,3 +0,0 @@ -import path from 'path'; - -export const foo = path.resolve('foo'); diff --git a/test/function/samples/deprecated/plugin-module-ids/main.js b/test/function/samples/deprecated/plugin-module-ids/main.js deleted file mode 100644 index 9fbe8414a..000000000 --- a/test/function/samples/deprecated/plugin-module-ids/main.js +++ /dev/null @@ -1,2 +0,0 @@ -export { foo } from './foo.js'; -export const path = import('path'); diff --git a/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/_config.js b/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/_config.js deleted file mode 100644 index f72dfda5b..000000000 --- a/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/_config.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = defineTest({ - description: 'Inlining dynamic imports is not supported when preserving modules', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - inlineDynamicImports: true - }, - generateError: { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "output.inlineDynamicImports" - this option is not supported for "output.preserveModules".', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - } -}); diff --git a/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/lib.js b/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/main.js b/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/main.js deleted file mode 100644 index 4869dc82f..000000000 --- a/test/function/samples/deprecated/preserveModules/inline-dynamic-imports/main.js +++ /dev/null @@ -1 +0,0 @@ -import('./lib').then(({value}) => assert.equal(value, 42)); diff --git a/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/_config.js b/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/_config.js deleted file mode 100644 index de7fd9305..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/_config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = defineTest({ - description: 'throws when using default export mode with named exports', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - output: { - exports: 'default' - } - }, - generateError: { - code: 'INVALID_EXPORT_OPTION', - message: - '"default" was specified for "output.exports", but entry module "lib.js" has the following exports: "value"', - url: 'https://rollupjs.org/configuration-options/#output-exports' - } -}); diff --git a/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/lib.js b/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/main.js b/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/main.js deleted file mode 100644 index c379b667d..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-default-export-mode/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { value } from './lib.js'; -assert.equal(value, 42); -export default 43; diff --git a/test/function/samples/deprecated/preserveModules/invalid-no-preserve-entry-signatures/_config.js b/test/function/samples/deprecated/preserveModules/invalid-no-preserve-entry-signatures/_config.js deleted file mode 100644 index c3fbb2273..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-no-preserve-entry-signatures/_config.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = defineTest({ - description: 'throws when setting preserveEntrySignatures to false', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - preserveEntrySignatures: false - }, - generateError: { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "preserveEntrySignatures" - setting this option to false is not supported for "output.preserveModules".', - url: 'https://rollupjs.org/configuration-options/#preserveentrysignatures' - } -}); diff --git a/test/function/samples/deprecated/preserveModules/invalid-no-preserve-entry-signatures/main.js b/test/function/samples/deprecated/preserveModules/invalid-no-preserve-entry-signatures/main.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-no-preserve-entry-signatures/main.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/_config.js b/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/_config.js deleted file mode 100644 index d8b428008..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/_config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = defineTest({ - description: 'throws when using none export mode with named exports', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - output: { - exports: 'none' - } - }, - generateError: { - code: 'INVALID_EXPORT_OPTION', - message: - '"none" was specified for "output.exports", but entry module "lib.js" has the following exports: "value"', - url: 'https://rollupjs.org/configuration-options/#output-exports' - } -}); diff --git a/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/lib.js b/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/main.js b/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/main.js deleted file mode 100644 index f26e8d860..000000000 --- a/test/function/samples/deprecated/preserveModules/invalid-none-export-mode/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { value } from './lib.js'; - -assert.equal(value, 42); diff --git a/test/function/samples/deprecated/preserveModules/manual-chunks/_config.js b/test/function/samples/deprecated/preserveModules/manual-chunks/_config.js deleted file mode 100644 index f5a3018c9..000000000 --- a/test/function/samples/deprecated/preserveModules/manual-chunks/_config.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = defineTest({ - description: 'Assigning manual chunks fails when preserving modules', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - output: { - manualChunks: { - lib: ['lib.js'] - } - } - }, - generateError: { - code: 'INVALID_OPTION', - message: - 'Invalid value for option "output.manualChunks" - this option is not supported for "output.preserveModules".', - url: 'https://rollupjs.org/configuration-options/#output-manualchunks' - } -}); diff --git a/test/function/samples/deprecated/preserveModules/manual-chunks/lib.js b/test/function/samples/deprecated/preserveModules/manual-chunks/lib.js deleted file mode 100644 index 46d3ca8c6..000000000 --- a/test/function/samples/deprecated/preserveModules/manual-chunks/lib.js +++ /dev/null @@ -1 +0,0 @@ -export const value = 42; diff --git a/test/function/samples/deprecated/preserveModules/manual-chunks/main.js b/test/function/samples/deprecated/preserveModules/manual-chunks/main.js deleted file mode 100644 index 0786352d0..000000000 --- a/test/function/samples/deprecated/preserveModules/manual-chunks/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import { value } from './lib'; - -assert.equal(value, 42); diff --git a/test/function/samples/deprecated/preserveModules/mixed-exports/_config.js b/test/function/samples/deprecated/preserveModules/mixed-exports/_config.js deleted file mode 100644 index a8b3919de..000000000 --- a/test/function/samples/deprecated/preserveModules/mixed-exports/_config.js +++ /dev/null @@ -1,34 +0,0 @@ -const path = require('node:path'); -const ID_MAIN = path.join(__dirname, 'main.js'); -const ID_LIB1 = path.join(__dirname, 'lib1.js'); - -module.exports = defineTest({ - description: 'warns for mixed exports in all chunks when preserving modules', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "preserveModules" option is deprecated. Use the "output.preserveModules" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-preservemodules' - }, - { - code: 'MIXED_EXPORTS', - id: ID_MAIN, - message: - 'Entry module "main.js" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.', - url: 'https://rollupjs.org/configuration-options/#output-exports' - }, - { - code: 'MIXED_EXPORTS', - id: ID_LIB1, - message: - 'Entry module "lib1.js" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.', - url: 'https://rollupjs.org/configuration-options/#output-exports' - } - ] -}); diff --git a/test/function/samples/deprecated/preserveModules/mixed-exports/lib1.js b/test/function/samples/deprecated/preserveModules/mixed-exports/lib1.js deleted file mode 100644 index fea73e2bf..000000000 --- a/test/function/samples/deprecated/preserveModules/mixed-exports/lib1.js +++ /dev/null @@ -1,2 +0,0 @@ -export const value1 = 42; -export default 42; diff --git a/test/function/samples/deprecated/preserveModules/mixed-exports/lib2.js b/test/function/samples/deprecated/preserveModules/mixed-exports/lib2.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/function/samples/deprecated/preserveModules/mixed-exports/lib2.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/function/samples/deprecated/preserveModules/mixed-exports/lib3.js b/test/function/samples/deprecated/preserveModules/mixed-exports/lib3.js deleted file mode 100644 index baeef4a82..000000000 --- a/test/function/samples/deprecated/preserveModules/mixed-exports/lib3.js +++ /dev/null @@ -1 +0,0 @@ -export const value3 = 42; diff --git a/test/function/samples/deprecated/preserveModules/mixed-exports/main.js b/test/function/samples/deprecated/preserveModules/mixed-exports/main.js deleted file mode 100644 index 0bd873754..000000000 --- a/test/function/samples/deprecated/preserveModules/mixed-exports/main.js +++ /dev/null @@ -1,11 +0,0 @@ -import lib1, { value1 } from './lib1'; -import lib2 from './lib2'; -import { value3 } from './lib3'; - -assert.equal(lib1, 42); -assert.equal(value1, 42); -assert.equal(lib2, 42); -assert.equal(value3, 42); - -export const value = 42; -export default 42; diff --git a/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/_config.js b/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/_config.js deleted file mode 100644 index 3210239e8..000000000 --- a/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/_config.js +++ /dev/null @@ -1,41 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'Generates actual files for virtual modules when preserving modules', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - plugins: [ - { - resolveId(id) { - if (id === '\0virtualModule.js') return id; - }, - load(id) { - if (id !== '\0virtualModule.js') return null; - return 'export const virtual = "Virtual!";\n'; - }, - transform(code, id) { - if (id === '\0virtualModule.js') return null; - return 'import {virtual} from "\0virtualModule.js";\n' + code; - } - } - ] - }, - bundle(bundle) { - return bundle.generate({ format: 'es' }).then(generated => - assert.deepEqual( - generated.output.map(chunk => chunk.fileName), - ['main.js', '_virtual/_virtualModule.js', '_virtual/_virtualModule2.js'] - ) - ); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "preserveModules" option is deprecated. Use the "output.preserveModules" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-preservemodules' - } - ] -}); diff --git a/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/_virtual/_virtualModule.js b/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/_virtual/_virtualModule.js deleted file mode 100644 index 3901a31bd..000000000 --- a/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/_virtual/_virtualModule.js +++ /dev/null @@ -1,3 +0,0 @@ -export const notSoVirtual = 'real'; - -assert.equal(virtual, 'Virtual!'); diff --git a/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/main.js b/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/main.js deleted file mode 100644 index 7653b3548..000000000 --- a/test/function/samples/deprecated/preserveModules/virtual-modules-conflict/main.js +++ /dev/null @@ -1,4 +0,0 @@ -import { notSoVirtual } from './_virtual/_virtualModule'; - -assert.equal(virtual, 'Virtual!'); -assert.equal(notSoVirtual, 'real'); diff --git a/test/function/samples/deprecated/preserveModules/virtual-modules/_config.js b/test/function/samples/deprecated/preserveModules/virtual-modules/_config.js deleted file mode 100644 index 8aecc53f5..000000000 --- a/test/function/samples/deprecated/preserveModules/virtual-modules/_config.js +++ /dev/null @@ -1,41 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'Generates actual files for virtual modules when preserving modules', - options: { - strictDeprecations: false, - input: ['main.js'], - preserveModules: true, - plugins: [ - { - resolveId(id) { - if (id === '\0virtualModule') return id; - }, - load(id) { - if (id !== '\0virtualModule') return null; - return 'export const virtual = "Virtual!";\n'; - }, - transform(code, id) { - if (id === '\0virtualModule') return null; - return 'import {virtual} from "\0virtualModule";\n' + code; - } - } - ] - }, - bundle(bundle) { - return bundle.generate({ format: 'es' }).then(generated => - assert.deepEqual( - generated.output.map(chunk => chunk.fileName), - ['main.js', '_virtual/_virtualModule.js', 'lib/lib.js'] - ) - ); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "preserveModules" option is deprecated. Use the "output.preserveModules" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-preservemodules' - } - ] -}); diff --git a/test/function/samples/deprecated/preserveModules/virtual-modules/lib/lib.js b/test/function/samples/deprecated/preserveModules/virtual-modules/lib/lib.js deleted file mode 100644 index 505982998..000000000 --- a/test/function/samples/deprecated/preserveModules/virtual-modules/lib/lib.js +++ /dev/null @@ -1 +0,0 @@ -assert.equal(virtual, 'Virtual!'); diff --git a/test/function/samples/deprecated/preserveModules/virtual-modules/main.js b/test/function/samples/deprecated/preserveModules/virtual-modules/main.js deleted file mode 100644 index f983b2526..000000000 --- a/test/function/samples/deprecated/preserveModules/virtual-modules/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import './lib/lib.js'; - -assert.equal(virtual, 'Virtual!'); diff --git a/test/function/samples/deprecated/reexport-ns/_config.js b/test/function/samples/deprecated/reexport-ns/_config.js deleted file mode 100644 index 24750619e..000000000 --- a/test/function/samples/deprecated/reexport-ns/_config.js +++ /dev/null @@ -1,25 +0,0 @@ -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'external namespace reexport', - options: { - strictDeprecations: false, - external: ['external'], - output: { - namespaceToStringTag: true - } - }, - exports(exports) { - assert.strictEqual(typeof exports.maths, 'object'); - assert.strictEqual(exports[Symbol.toStringTag], 'Module'); - assert.strictEqual(exports.maths.external, true); - }, - warnings: [ - { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } - ] -}); diff --git a/test/function/samples/deprecated/reexport-ns/main.js b/test/function/samples/deprecated/reexport-ns/main.js deleted file mode 100644 index 240d9f00f..000000000 --- a/test/function/samples/deprecated/reexport-ns/main.js +++ /dev/null @@ -1,3 +0,0 @@ -import * as maths from './maths.js'; - -export default maths; diff --git a/test/function/samples/deprecated/reexport-ns/maths.js b/test/function/samples/deprecated/reexport-ns/maths.js deleted file mode 100644 index 5089bebae..000000000 --- a/test/function/samples/deprecated/reexport-ns/maths.js +++ /dev/null @@ -1 +0,0 @@ -export { default as maths } from './square.js'; diff --git a/test/function/samples/deprecated/reexport-ns/square.js b/test/function/samples/deprecated/reexport-ns/square.js deleted file mode 100644 index b3725dbd9..000000000 --- a/test/function/samples/deprecated/reexport-ns/square.js +++ /dev/null @@ -1,2 +0,0 @@ -import * as m from 'external'; -export default m; diff --git a/test/function/samples/deprecated/resolve-id-external/_config.js b/test/function/samples/deprecated/resolve-id-external/_config.js deleted file mode 100644 index c1cb13a30..000000000 --- a/test/function/samples/deprecated/resolve-id-external/_config.js +++ /dev/null @@ -1,87 +0,0 @@ -const assert = require('node:assert'); -const path = require('node:path'); -const sideEffects = []; -const { getObject } = require('../../../../utils'); - -module.exports = defineTest({ - description: 'does not include modules without used exports if moduleSideEffect is false', - context: { - require(id) { - sideEffects.push(id); - return { value: id }; - } - }, - exports() { - assert.deepStrictEqual(sideEffects, [ - 'sideeffects-false-usereffects-false-used-import', - 'sideeffects-null-usereffects-false-used-import', - 'sideeffects-true-usereffects-false', - 'sideeffects-true-usereffects-false-unused-import', - 'sideeffects-true-usereffects-false-used-import', - 'sideeffects-false-usereffects-true-used-import', - 'sideeffects-null-usereffects-true', - 'sideeffects-null-usereffects-true-unused-import', - 'sideeffects-null-usereffects-true-used-import', - 'sideeffects-true-usereffects-true', - 'sideeffects-true-usereffects-true-unused-import', - 'sideeffects-true-usereffects-true-used-import' - ]); - }, - options: { - strictDeprecations: false, - treeshake: { - moduleSideEffects(id) { - if (id.includes('main')) return true; - return JSON.parse(id.split('-')[3]); - } - }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - return { - id, - external: true, - moduleSideEffects: JSON.parse(id.split('-')[1]) - }; - } - }, - buildEnd() { - assert.deepStrictEqual( - getObject( - [...this.getModuleIds()] - .filter(id => !path.isAbsolute(id)) - .map(id => [id, this.getModuleInfo(id).hasModuleSideEffects]) - ), - { - 'sideeffects-false-usereffects-false': false, - 'sideeffects-false-usereffects-false-unused-import': false, - 'sideeffects-false-usereffects-false-used-import': false, - 'sideeffects-false-usereffects-true': false, - 'sideeffects-false-usereffects-true-unused-import': false, - 'sideeffects-false-usereffects-true-used-import': false, - 'sideeffects-null-usereffects-false': false, - 'sideeffects-null-usereffects-false-unused-import': false, - 'sideeffects-null-usereffects-false-used-import': false, - 'sideeffects-null-usereffects-true': true, - 'sideeffects-null-usereffects-true-unused-import': true, - 'sideeffects-null-usereffects-true-used-import': true, - 'sideeffects-true-usereffects-false': true, - 'sideeffects-true-usereffects-false-unused-import': true, - 'sideeffects-true-usereffects-false-used-import': true, - 'sideeffects-true-usereffects-true': true, - 'sideeffects-true-usereffects-true-unused-import': true, - 'sideeffects-true-usereffects-true-used-import': true - } - ); - } - } - }, - warnings(warnings) { - for (const warning of warnings) { - if (warning.code !== 'UNUSED_EXTERNAL_IMPORT' && warning.code !== 'DEPRECATED_FEATURE') { - throw new Error(`Unexpected warning code "${warning.code}"`); - } - } - } -}); diff --git a/test/function/samples/deprecated/resolve-id-external/main.js b/test/function/samples/deprecated/resolve-id-external/main.js deleted file mode 100644 index dba6f1c07..000000000 --- a/test/function/samples/deprecated/resolve-id-external/main.js +++ /dev/null @@ -1,25 +0,0 @@ -import 'sideeffects-false-usereffects-false'; -import { value as unusedValue1 } from 'sideeffects-false-usereffects-false-unused-import'; -import { value as usedValue1 } from 'sideeffects-false-usereffects-false-used-import'; - -import 'sideeffects-null-usereffects-false'; -import { value as unusedValue2 } from 'sideeffects-null-usereffects-false-unused-import'; -import { value as usedValue2 } from 'sideeffects-null-usereffects-false-used-import'; - -import 'sideeffects-true-usereffects-false'; -import { value as unusedValue3 } from 'sideeffects-true-usereffects-false-unused-import'; -import { value as usedValue3 } from 'sideeffects-true-usereffects-false-used-import'; - -import 'sideeffects-false-usereffects-true'; -import { value as unusedValue4 } from 'sideeffects-false-usereffects-true-unused-import'; -import { value as usedValue4 } from 'sideeffects-false-usereffects-true-used-import'; - -import 'sideeffects-null-usereffects-true'; -import { value as unusedValue5 } from 'sideeffects-null-usereffects-true-unused-import'; -import { value as usedValue5 } from 'sideeffects-null-usereffects-true-used-import'; - -import 'sideeffects-true-usereffects-true'; -import { value as unusedValue6 } from 'sideeffects-true-usereffects-true-unused-import'; -import { value as usedValue6 } from 'sideeffects-true-usereffects-true-used-import'; - -export const values = [usedValue1, usedValue2, usedValue3, usedValue4, usedValue5, usedValue6]; diff --git a/test/function/samples/deprecated/resolve-id/_config.js b/test/function/samples/deprecated/resolve-id/_config.js deleted file mode 100644 index 825b6a69a..000000000 --- a/test/function/samples/deprecated/resolve-id/_config.js +++ /dev/null @@ -1,94 +0,0 @@ -const assert = require('node:assert'); -const path = require('node:path'); -const { getObject } = require('../../../../utils'); - -const sideEffects = []; - -module.exports = defineTest({ - description: 'does not include modules without used exports if moduleSideEffect is false', - context: { - sideEffects - }, - exports() { - assert.deepStrictEqual(sideEffects, [ - 'sideeffects-false-usereffects-false-used-import', - 'sideeffects-null-usereffects-false-used-import', - 'sideeffects-true-usereffects-false', - 'sideeffects-true-usereffects-false-unused-import', - 'sideeffects-true-usereffects-false-used-import', - 'sideeffects-false-usereffects-true-used-import', - 'sideeffects-null-usereffects-true', - 'sideeffects-null-usereffects-true-unused-import', - 'sideeffects-null-usereffects-true-used-import', - 'sideeffects-true-usereffects-true', - 'sideeffects-true-usereffects-true-unused-import', - 'sideeffects-true-usereffects-true-used-import' - ]); - }, - options: { - strictDeprecations: false, - treeshake: { - moduleSideEffects(id) { - if (id.includes('main')) return true; - return JSON.parse(id.split('-')[3]); - } - }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - return { - id, - external: false, - moduleSideEffects: JSON.parse(id.split('-')[1]) - }; - } - }, - load(id) { - if (!path.isAbsolute(id)) { - const sideEffects = JSON.parse(id.split('-')[1]); - const userEffects = JSON.parse(id.split('-')[3]); - assert.strictEqual( - this.getModuleInfo(id).hasModuleSideEffects, - typeof sideEffects === 'boolean' ? sideEffects : userEffects - ); - return `export const value = '${id}'; sideEffects.push(value);`; - } - }, - buildEnd() { - assert.deepStrictEqual( - getObject( - [...this.getModuleIds()] - .filter(id => !path.isAbsolute(id)) - .map(id => [id, this.getModuleInfo(id).hasModuleSideEffects]) - ), - { - 'sideeffects-false-usereffects-false': false, - 'sideeffects-false-usereffects-false-unused-import': false, - 'sideeffects-false-usereffects-false-used-import': false, - 'sideeffects-false-usereffects-true': false, - 'sideeffects-false-usereffects-true-unused-import': false, - 'sideeffects-false-usereffects-true-used-import': false, - 'sideeffects-null-usereffects-false': false, - 'sideeffects-null-usereffects-false-unused-import': false, - 'sideeffects-null-usereffects-false-used-import': false, - 'sideeffects-null-usereffects-true': true, - 'sideeffects-null-usereffects-true-unused-import': true, - 'sideeffects-null-usereffects-true-used-import': true, - 'sideeffects-true-usereffects-false': true, - 'sideeffects-true-usereffects-false-unused-import': true, - 'sideeffects-true-usereffects-false-used-import': true, - 'sideeffects-true-usereffects-true': true, - 'sideeffects-true-usereffects-true-unused-import': true, - 'sideeffects-true-usereffects-true-used-import': true - } - ); - } - } - }, - warnings(warnings) { - for (const warning of warnings) { - assert.strictEqual(warning.code, 'DEPRECATED_FEATURE'); - } - } -}); diff --git a/test/function/samples/deprecated/resolve-id/main.js b/test/function/samples/deprecated/resolve-id/main.js deleted file mode 100644 index dba6f1c07..000000000 --- a/test/function/samples/deprecated/resolve-id/main.js +++ /dev/null @@ -1,25 +0,0 @@ -import 'sideeffects-false-usereffects-false'; -import { value as unusedValue1 } from 'sideeffects-false-usereffects-false-unused-import'; -import { value as usedValue1 } from 'sideeffects-false-usereffects-false-used-import'; - -import 'sideeffects-null-usereffects-false'; -import { value as unusedValue2 } from 'sideeffects-null-usereffects-false-unused-import'; -import { value as usedValue2 } from 'sideeffects-null-usereffects-false-used-import'; - -import 'sideeffects-true-usereffects-false'; -import { value as unusedValue3 } from 'sideeffects-true-usereffects-false-unused-import'; -import { value as usedValue3 } from 'sideeffects-true-usereffects-false-used-import'; - -import 'sideeffects-false-usereffects-true'; -import { value as unusedValue4 } from 'sideeffects-false-usereffects-true-unused-import'; -import { value as usedValue4 } from 'sideeffects-false-usereffects-true-used-import'; - -import 'sideeffects-null-usereffects-true'; -import { value as unusedValue5 } from 'sideeffects-null-usereffects-true-unused-import'; -import { value as usedValue5 } from 'sideeffects-null-usereffects-true-used-import'; - -import 'sideeffects-true-usereffects-true'; -import { value as unusedValue6 } from 'sideeffects-true-usereffects-true-unused-import'; -import { value as usedValue6 } from 'sideeffects-true-usereffects-true-used-import'; - -export const values = [usedValue1, usedValue2, usedValue3, usedValue4, usedValue5, usedValue6]; diff --git a/test/function/samples/deprecations/dynamicImportFunction/_config.js b/test/function/samples/deprecations/dynamicImportFunction/_config.js deleted file mode 100644 index e143d84cf..000000000 --- a/test/function/samples/deprecations/dynamicImportFunction/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "output.dynamicImportFunction" option as deprecated', - options: { - output: { - dynamicImportFunction: 'foo' - } - }, - generateError: { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.dynamicImportFunction" option is deprecated. Use the "renderDynamicImport" plugin hook instead.', - url: 'https://rollupjs.org/plugin-development/#renderdynamicimport' - } -}); diff --git a/test/function/samples/deprecations/dynamicImportFunction/main.js b/test/function/samples/deprecations/dynamicImportFunction/main.js deleted file mode 100644 index cc1d88a24..000000000 --- a/test/function/samples/deprecations/dynamicImportFunction/main.js +++ /dev/null @@ -1 +0,0 @@ -assert.ok(true); diff --git a/test/function/samples/deprecations/experimentalDeepDynamicChunkOptimization/_config.js b/test/function/samples/deprecations/experimentalDeepDynamicChunkOptimization/_config.js deleted file mode 100644 index 55497278e..000000000 --- a/test/function/samples/deprecations/experimentalDeepDynamicChunkOptimization/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "output.experimentalDeepDynamicChunkOptimization" option as deprecated', - options: { - output: { - experimentalDeepDynamicChunkOptimization: true - } - }, - generateError: { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.experimentalDeepDynamicChunkOptimization" option is deprecated as Rollup always runs the full chunking algorithm now. The option should be removed.', - url: 'https://rollupjs.org/configuration-options/#output-experimentaldeepdynamicchunkoptimization' - } -}); diff --git a/test/function/samples/deprecations/experimentalDeepDynamicChunkOptimization/main.js b/test/function/samples/deprecations/experimentalDeepDynamicChunkOptimization/main.js deleted file mode 100644 index cc1d88a24..000000000 --- a/test/function/samples/deprecations/experimentalDeepDynamicChunkOptimization/main.js +++ /dev/null @@ -1 +0,0 @@ -assert.ok(true); diff --git a/test/function/samples/deprecations/externalImportAssertions/_config.js b/test/function/samples/deprecations/externalImportAssertions/_config.js new file mode 100644 index 000000000..ef167bd3a --- /dev/null +++ b/test/function/samples/deprecations/externalImportAssertions/_config.js @@ -0,0 +1,12 @@ +module.exports = defineTest({ + description: 'marks the "output.externalImportAssertions" option as deprecated', + options: { + output: { externalImportAssertions: false } + }, + generateError: { + code: 'DEPRECATED_FEATURE', + message: + 'The "output.externalImportAssertions" option is deprecated. Use the "output.externalImportAttributes" option instead.', + url: 'https://rollupjs.org/configuration-options/#output-externalimportattributes' + } +}); diff --git a/test/function/samples/deprecations/externalImportAssertions/_expected.js b/test/function/samples/deprecations/externalImportAssertions/_expected.js new file mode 100644 index 000000000..2d4172646 --- /dev/null +++ b/test/function/samples/deprecations/externalImportAssertions/_expected.js @@ -0,0 +1,6 @@ +import('external'); +import(globalThis.unknown); +import('resolvedString'); +import('resolved-id'); +import('resolved-different'); +import('unresolved'); diff --git a/test/function/samples/deprecations/externalImportAssertions/main.js b/test/function/samples/deprecations/externalImportAssertions/main.js new file mode 100644 index 000000000..025b60451 --- /dev/null +++ b/test/function/samples/deprecations/externalImportAssertions/main.js @@ -0,0 +1,6 @@ +import('external', { with: { type: 'special' } }); +import(globalThis.unknown, { with: { type: 'special' } }); +import(`external-${globalThis.unknown}`, { with: { type: 'special' } }); +import('external' + globalThis.unknown, { with: { type: 'special' } }); +import('external-resolved', { with: { type: 'special' } }); +import('unresolved', { with: { type: 'special' } }); diff --git a/test/function/samples/deprecations/hasModuleSideEffects/_config.js b/test/function/samples/deprecations/hasModuleSideEffects/_config.js deleted file mode 100644 index a711e73a9..000000000 --- a/test/function/samples/deprecations/hasModuleSideEffects/_config.js +++ /dev/null @@ -1,27 +0,0 @@ -const assert = require('node:assert'); -const path = require('node:path'); - -module.exports = defineTest({ - description: 'warns that accessing "ModuleInfo.hasModuleSideEffects" is deprecated', - options: { - strictDeprecations: true, - plugins: [ - { - name: 'test', - moduleParsed({ hasModuleSideEffects }) { - assert.ok(hasModuleSideEffects); - } - } - ] - }, - error: { - code: 'PLUGIN_ERROR', - hook: 'moduleParsed', - message: - 'Accessing ModuleInfo.hasModuleSideEffects from plugins is deprecated. Please use ModuleInfo.moduleSideEffects instead.', - plugin: 'test', - pluginCode: 'DEPRECATED_FEATURE', - url: 'https://rollupjs.org/plugin-development/#this-getmoduleinfo', - watchFiles: [path.join(__dirname, 'main.js')] - } -}); diff --git a/test/function/samples/deprecations/hasModuleSideEffects/main.js b/test/function/samples/deprecations/hasModuleSideEffects/main.js deleted file mode 100644 index cc1d88a24..000000000 --- a/test/function/samples/deprecations/hasModuleSideEffects/main.js +++ /dev/null @@ -1 +0,0 @@ -assert.ok(true); diff --git a/test/function/samples/deprecations/inlineDynamicImports/_config.js b/test/function/samples/deprecations/inlineDynamicImports/_config.js deleted file mode 100644 index cb5956690..000000000 --- a/test/function/samples/deprecations/inlineDynamicImports/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "inlineDynamicImports" input option as deprecated', - options: { - inlineDynamicImports: true - }, - error: { - code: 'DEPRECATED_FEATURE', - message: - 'The "inlineDynamicImports" option is deprecated. Use the "output.inlineDynamicImports" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-inlinedynamicimports' - } -}); diff --git a/test/function/samples/deprecations/inlineDynamicImports/main.js b/test/function/samples/deprecations/inlineDynamicImports/main.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/function/samples/deprecations/inlineDynamicImports/main.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/function/samples/deprecations/manualChunks/_config.js b/test/function/samples/deprecations/manualChunks/_config.js deleted file mode 100644 index be135218f..000000000 --- a/test/function/samples/deprecations/manualChunks/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "manualChunks" input option as deprecated', - options: { - manualChunks() { - return 'manual'; - } - }, - error: { - code: 'DEPRECATED_FEATURE', - message: - 'The "manualChunks" option is deprecated. Use the "output.manualChunks" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-manualchunks' - } -}); diff --git a/test/function/samples/deprecations/manualChunks/main.js b/test/function/samples/deprecations/manualChunks/main.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/function/samples/deprecations/manualChunks/main.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/function/samples/deprecations/maxParallelFileReads/_config.js b/test/function/samples/deprecations/maxParallelFileReads/_config.js deleted file mode 100644 index 3fb15c6e4..000000000 --- a/test/function/samples/deprecations/maxParallelFileReads/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "maxParallelFileReads" option as deprecated', - options: { - maxParallelFileReads: 3 - }, - error: { - code: 'DEPRECATED_FEATURE', - message: - 'The "maxParallelFileReads" option is deprecated. Use the "maxParallelFileOps" option instead.', - url: 'https://rollupjs.org/configuration-options/#maxparallelfileops' - } -}); diff --git a/test/function/samples/deprecations/maxParallelFileReads/main.js b/test/function/samples/deprecations/maxParallelFileReads/main.js deleted file mode 100644 index cc1d88a24..000000000 --- a/test/function/samples/deprecations/maxParallelFileReads/main.js +++ /dev/null @@ -1 +0,0 @@ -assert.ok(true); diff --git a/test/function/samples/deprecations/namespaceToStringTag/_config.js b/test/function/samples/deprecations/namespaceToStringTag/_config.js deleted file mode 100644 index 79b151732..000000000 --- a/test/function/samples/deprecations/namespaceToStringTag/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "output.namespaceToStringTag" option as deprecated', - options: { - output: { - namespaceToStringTag: true - } - }, - generateError: { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.namespaceToStringTag" option is deprecated. Use the "output.generatedCode.symbols" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-symbols' - } -}); diff --git a/test/function/samples/deprecations/namespaceToStringTag/main.js b/test/function/samples/deprecations/namespaceToStringTag/main.js deleted file mode 100644 index cc1d88a24..000000000 --- a/test/function/samples/deprecations/namespaceToStringTag/main.js +++ /dev/null @@ -1 +0,0 @@ -assert.ok(true); diff --git a/test/function/samples/deprecations/plugin-module-ids/_config.js b/test/function/samples/deprecations/plugin-module-ids/_config.js deleted file mode 100644 index 0b49a46c9..000000000 --- a/test/function/samples/deprecations/plugin-module-ids/_config.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = defineTest({ - description: 'provides all module ids on the plugin context', - options: { - external: ['path'], - plugins: { - name: 'test', - renderStart() { - console.log([...this.moduleIds]); - } - } - }, - generateError: { - code: 'PLUGIN_ERROR', - hook: 'renderStart', - message: - 'Accessing "this.moduleIds" on the plugin context by plugin test is deprecated. The "this.getModuleIds" plugin context function should be used instead.', - plugin: 'test', - pluginCode: 'DEPRECATED_FEATURE', - url: 'https://rollupjs.org/plugin-development/#this-getmoduleids' - } -}); diff --git a/test/function/samples/deprecations/plugin-module-ids/foo.js b/test/function/samples/deprecations/plugin-module-ids/foo.js deleted file mode 100644 index cb4875a0a..000000000 --- a/test/function/samples/deprecations/plugin-module-ids/foo.js +++ /dev/null @@ -1,3 +0,0 @@ -import path from 'path'; - -export const foo = path.resolve('foo'); diff --git a/test/function/samples/deprecations/plugin-module-ids/main.js b/test/function/samples/deprecations/plugin-module-ids/main.js deleted file mode 100644 index 4ffe2d41c..000000000 --- a/test/function/samples/deprecations/plugin-module-ids/main.js +++ /dev/null @@ -1 +0,0 @@ -export { foo } from './foo.js'; diff --git a/test/function/samples/deprecations/prefer-const/_config.js b/test/function/samples/deprecations/prefer-const/_config.js deleted file mode 100644 index 0e9a06f92..000000000 --- a/test/function/samples/deprecations/prefer-const/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "output.preferConst" option as deprecated', - options: { - output: { - preferConst: true - } - }, - generateError: { - code: 'DEPRECATED_FEATURE', - message: - 'The "output.preferConst" option is deprecated. Use the "output.generatedCode.constBindings" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-generatedcode-constbindings' - } -}); diff --git a/test/function/samples/deprecations/prefer-const/main.js b/test/function/samples/deprecations/prefer-const/main.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/function/samples/deprecations/prefer-const/main.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/function/samples/deprecations/preserveModules/_config.js b/test/function/samples/deprecations/preserveModules/_config.js deleted file mode 100644 index 0bb0d2140..000000000 --- a/test/function/samples/deprecations/preserveModules/_config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = defineTest({ - description: 'marks the "preserveModules" input option as deprecated', - options: { - preserveModules: true - }, - error: { - code: 'DEPRECATED_FEATURE', - message: - 'The "preserveModules" option is deprecated. Use the "output.preserveModules" option instead.', - url: 'https://rollupjs.org/configuration-options/#output-preservemodules' - } -}); diff --git a/test/function/samples/deprecations/preserveModules/main.js b/test/function/samples/deprecations/preserveModules/main.js deleted file mode 100644 index 7a4e8a723..000000000 --- a/test/function/samples/deprecations/preserveModules/main.js +++ /dev/null @@ -1 +0,0 @@ -export default 42; diff --git a/test/function/samples/double-default-export/_config.js b/test/function/samples/double-default-export/_config.js index a6760044b..cda58349b 100644 --- a/test/function/samples/double-default-export/_config.js +++ b/test/function/samples/double-default-export/_config.js @@ -6,28 +6,24 @@ module.exports = defineTest({ description: 'throws on double default exports', error: { cause: { - loc: { - column: 7, - line: 2 - }, - message: "Duplicate export 'default' (2:7)", - pos: 25, - raisedAt: 34 + code: 'PARSE_ERROR', + message: 'the name `default` is exported multiple times', + pos: 18 }, code: 'PARSE_ERROR', - message: `Duplicate export 'default'`, + message: 'the name `default` is exported multiple times', id: ID_FOO, - pos: 25, + pos: 18, watchFiles: [ID_FOO, ID_MAIN], loc: { file: ID_FOO, line: 2, - column: 7 + column: 0 }, frame: ` 1: export default 1; 2: export default 2; - ^ + ^ ` } }); diff --git a/test/function/samples/double-named-export/_config.js b/test/function/samples/double-named-export/_config.js index 7e671029a..51903cfa9 100644 --- a/test/function/samples/double-named-export/_config.js +++ b/test/function/samples/double-named-export/_config.js @@ -6,16 +6,12 @@ module.exports = defineTest({ description: 'throws on duplicate named exports', error: { cause: { - loc: { - column: 9, - line: 3 - }, - message: "Duplicate export 'foo' (3:9)", - pos: 38, - raisedAt: 43 + code: 'PARSE_ERROR', + message: 'the name `foo` is exported multiple times', + pos: 38 }, code: 'PARSE_ERROR', - message: `Duplicate export 'foo'`, + message: 'the name `foo` is exported multiple times', id: ID_FOO, pos: 38, watchFiles: [ID_FOO, ID_MAIN], diff --git a/test/function/samples/double-named-reexport/_config.js b/test/function/samples/double-named-reexport/_config.js index 4488a569c..12ea35747 100644 --- a/test/function/samples/double-named-reexport/_config.js +++ b/test/function/samples/double-named-reexport/_config.js @@ -6,16 +6,12 @@ module.exports = defineTest({ description: 'throws on duplicate named exports', error: { cause: { - loc: { - column: 9, - line: 3 - }, - message: "Duplicate export 'foo' (3:9)", - pos: 38, - raisedAt: 43 + code: 'PARSE_ERROR', + message: 'the name `foo` is exported multiple times', + pos: 38 }, code: 'PARSE_ERROR', - message: `Duplicate export 'foo'`, + message: 'the name `foo` is exported multiple times', id: ID_FOO, pos: 38, watchFiles: [ID_FOO, ID_MAIN], diff --git a/test/function/samples/duplicate-import-fails/_config.js b/test/function/samples/duplicate-import-fails/_config.js index f4dee4a93..9688aa7af 100644 --- a/test/function/samples/duplicate-import-fails/_config.js +++ b/test/function/samples/duplicate-import-fails/_config.js @@ -5,16 +5,12 @@ module.exports = defineTest({ description: 'disallows duplicate imports', error: { cause: { - loc: { - column: 9, - line: 2 - }, - message: "Identifier 'a' has already been declared (2:9)", - pos: 36, - raisedAt: 39 + code: 'PARSE_ERROR', + message: 'the name `a` is defined multiple times', + pos: 36 }, code: 'PARSE_ERROR', - message: `Identifier 'a' has already been declared`, + message: 'the name `a` is defined multiple times', id: ID_MAIN, pos: 36, watchFiles: [ID_MAIN], diff --git a/test/function/samples/duplicate-import-specifier-fails/_config.js b/test/function/samples/duplicate-import-specifier-fails/_config.js index 17dd9bafc..28c02f0af 100644 --- a/test/function/samples/duplicate-import-specifier-fails/_config.js +++ b/test/function/samples/duplicate-import-specifier-fails/_config.js @@ -5,16 +5,12 @@ module.exports = defineTest({ description: 'disallows duplicate import specifiers', error: { cause: { - loc: { - column: 12, - line: 1 - }, - message: "Identifier 'a' has already been declared (1:12)", - pos: 12, - raisedAt: 15 + code: 'PARSE_ERROR', + message: 'the name `a` is defined multiple times', + pos: 12 }, code: 'PARSE_ERROR', - message: `Identifier 'a' has already been declared`, + message: 'the name `a` is defined multiple times', id: ID_MAIN, pos: 12, watchFiles: [ID_MAIN], diff --git a/test/function/samples/emit-chunk-hash/_config.js b/test/function/samples/emit-chunk-hash/_config.js index cf145f5a8..0d453c080 100644 --- a/test/function/samples/emit-chunk-hash/_config.js +++ b/test/function/samples/emit-chunk-hash/_config.js @@ -8,13 +8,15 @@ module.exports = defineTest({ output: { chunkFileNames: '[name]-[hash].js' }, - plugins: { - buildStart() { - referenceId = this.emitFile({ type: 'chunk', id: 'emitted' }); - }, - generateBundle() { - assert.strictEqual(this.getFileName(referenceId), 'emitted-38bdd9b2.js'); + plugins: [ + { + buildStart() { + referenceId = this.emitFile({ type: 'chunk', id: 'emitted' }); + }, + generateBundle() { + assert.strictEqual(this.getFileName(referenceId), 'emitted-QRI93uhT.js'); + } } - } + ] } }); diff --git a/test/function/samples/emit-chunk-manual-asset-source/_config.js b/test/function/samples/emit-chunk-manual-asset-source/_config.js index 36dd0dcc4..6ce2e054a 100644 --- a/test/function/samples/emit-chunk-manual-asset-source/_config.js +++ b/test/function/samples/emit-chunk-manual-asset-source/_config.js @@ -8,20 +8,22 @@ module.exports = defineTest({ manualChunks: { foo: ['manual.js'] }, assetFileNames: '[name]-[hash][extname]' }, - plugins: { - transform(code, id) { - if (id.endsWith('manual.js')) { - referenceId = this.emitFile({ type: 'asset', name: 'emitted.txt' }); + plugins: [ + { + transform(code, id) { + if (id.endsWith('manual.js')) { + referenceId = this.emitFile({ type: 'asset', name: 'emitted.txt' }); + } + }, + moduleParsed({ id }) { + if (id.endsWith('manual.js')) { + this.setAssetSource(referenceId, 'emitted'); + } + }, + generateBundle() { + assert.strictEqual(this.getFileName(referenceId), 'emitted-umwR9Fta.txt'); } - }, - moduleParsed({ id }) { - if (id.endsWith('manual.js')) { - this.setAssetSource(referenceId, 'emitted'); - } - }, - generateBundle() { - assert.strictEqual(this.getFileName(referenceId), 'emitted-f57bfbce.txt'); } - } + ] } }); diff --git a/test/function/samples/emit-chunk-manual/_config.js b/test/function/samples/emit-chunk-manual/_config.js index 09e17c86d..7b8edc260 100644 --- a/test/function/samples/emit-chunk-manual/_config.js +++ b/test/function/samples/emit-chunk-manual/_config.js @@ -8,15 +8,17 @@ module.exports = defineTest({ manualChunks: { foo: ['manual.js'] }, assetFileNames: '[name]-[hash][extname]' }, - plugins: { - transform(code, id) { - if (id.endsWith('manual.js')) { - referenceId = this.emitFile({ type: 'asset', name: 'emitted.txt', source: 'emitted' }); + plugins: [ + { + transform(code, id) { + if (id.endsWith('manual.js')) { + referenceId = this.emitFile({ type: 'asset', name: 'emitted.txt', source: 'emitted' }); + } + }, + generateBundle() { + assert.strictEqual(this.getFileName(referenceId), 'emitted-umwR9Fta.txt'); } - }, - generateBundle() { - assert.strictEqual(this.getFileName(referenceId), 'emitted-f57bfbce.txt'); } - } + ] } }); diff --git a/test/function/samples/emit-file/asset-source-invalid/_config.js b/test/function/samples/emit-file/asset-source-invalid/_config.js index e7176b36e..276756509 100644 --- a/test/function/samples/emit-file/asset-source-invalid/_config.js +++ b/test/function/samples/emit-file/asset-source-invalid/_config.js @@ -1,13 +1,15 @@ module.exports = defineTest({ description: 'throws when setting an empty asset source', options: { - plugins: { - name: 'test-plugin', - buildStart() { - const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); - this.setAssetSource(assetId, null); + plugins: [ + { + name: 'test-plugin', + buildStart() { + const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); + this.setAssetSource(assetId, null); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/asset-source-invalid2/_config.js b/test/function/samples/emit-file/asset-source-invalid2/_config.js index f835adc9b..8edc13a8c 100644 --- a/test/function/samples/emit-file/asset-source-invalid2/_config.js +++ b/test/function/samples/emit-file/asset-source-invalid2/_config.js @@ -1,13 +1,15 @@ module.exports = defineTest({ description: 'throws when setting an empty asset source', options: { - plugins: { - name: 'test-plugin', - buildStart() { - const assetId = this.emitFile({ type: 'asset', fileName: 'test.ext' }); - this.setAssetSource(assetId, null); + plugins: [ + { + name: 'test-plugin', + buildStart() { + const assetId = this.emitFile({ type: 'asset', fileName: 'test.ext' }); + this.setAssetSource(assetId, null); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/asset-source-invalid3/_config.js b/test/function/samples/emit-file/asset-source-invalid3/_config.js index 0cf25fa9a..b4b14d6d7 100644 --- a/test/function/samples/emit-file/asset-source-invalid3/_config.js +++ b/test/function/samples/emit-file/asset-source-invalid3/_config.js @@ -1,19 +1,21 @@ module.exports = defineTest({ description: 'throws when setting an empty asset source', options: { - plugins: { - name: 'test-plugin', - buildStart() { - const assetId = this.emitFile({ type: 'asset' }); - this.setAssetSource(assetId, null); + plugins: [ + { + name: 'test-plugin', + buildStart() { + const assetId = this.emitFile({ type: 'asset' }); + this.setAssetSource(assetId, null); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', hook: 'buildStart', message: - 'Could not set source for asset "6b86b273", asset source needs to be a string, Uint8Array or Buffer.', + 'Could not set source for asset "WPGYjwIl", asset source needs to be a string, Uint8Array or Buffer.', plugin: 'test-plugin', pluginCode: 'VALIDATION_ERROR' } diff --git a/test/function/samples/emit-file/asset-source-invalid4/_config.js b/test/function/samples/emit-file/asset-source-invalid4/_config.js index e1b66fa77..1f13ddf8c 100644 --- a/test/function/samples/emit-file/asset-source-invalid4/_config.js +++ b/test/function/samples/emit-file/asset-source-invalid4/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws when setting an empty asset source', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ type: 'asset', source: null }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ type: 'asset', source: null }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/asset-source-missing/_config.js b/test/function/samples/emit-file/asset-source-missing/_config.js index 5989d82a6..544d0a299 100644 --- a/test/function/samples/emit-file/asset-source-missing/_config.js +++ b/test/function/samples/emit-file/asset-source-missing/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws when not setting the asset source', options: { - plugins: { - name: 'test-plugin', - load() { - this.emitFile({ type: 'asset', name: 'test.ext' }); + plugins: [ + { + name: 'test-plugin', + load() { + this.emitFile({ type: 'asset', name: 'test.ext' }); + } } - } + ] }, generateError: { code: 'ASSET_SOURCE_MISSING', diff --git a/test/function/samples/emit-file/asset-source-missing2/_config.js b/test/function/samples/emit-file/asset-source-missing2/_config.js index b2ec171c5..bfda3f628 100644 --- a/test/function/samples/emit-file/asset-source-missing2/_config.js +++ b/test/function/samples/emit-file/asset-source-missing2/_config.js @@ -1,15 +1,17 @@ module.exports = defineTest({ description: 'throws when not setting the asset source', options: { - plugins: { - name: 'test-plugin', - load() { - this.emitFile({ type: 'asset' }); + plugins: [ + { + name: 'test-plugin', + load() { + this.emitFile({ type: 'asset' }); + } } - } + ] }, generateError: { code: 'ASSET_SOURCE_MISSING', - message: 'Plugin error creating asset "6b86b273" - no asset source set.' + message: 'Plugin error creating asset "WPGYjwIl" - no asset source set.' } }); diff --git a/test/function/samples/emit-file/asset-source-missing3/_config.js b/test/function/samples/emit-file/asset-source-missing3/_config.js index f924cf85b..09537c85b 100644 --- a/test/function/samples/emit-file/asset-source-missing3/_config.js +++ b/test/function/samples/emit-file/asset-source-missing3/_config.js @@ -1,13 +1,15 @@ module.exports = defineTest({ description: 'throws when accessing the file name before the asset source is set', options: { - plugins: { - name: 'test-plugin', - buildStart() { - const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); - this.getFileName(assetId); + plugins: [ + { + name: 'test-plugin', + buildStart() { + const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); + this.getFileName(assetId); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/asset-source-missing4/_config.js b/test/function/samples/emit-file/asset-source-missing4/_config.js index 9e1b27eb3..34efe1c65 100644 --- a/test/function/samples/emit-file/asset-source-missing4/_config.js +++ b/test/function/samples/emit-file/asset-source-missing4/_config.js @@ -1,19 +1,21 @@ module.exports = defineTest({ description: 'throws when accessing the file name before the asset source is set', options: { - plugins: { - name: 'test-plugin', - buildStart() { - const assetId = this.emitFile({ type: 'asset' }); - this.getFileName(assetId); + plugins: [ + { + name: 'test-plugin', + buildStart() { + const assetId = this.emitFile({ type: 'asset' }); + this.getFileName(assetId); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', hook: 'buildStart', message: - 'Plugin error - Unable to get file name for asset "6b86b273". Ensure that the source is set and that generate is called first. If you reference assets via import.meta.ROLLUP_FILE_URL_, you need to either have set their source after "renderStart" or need to provide an explicit "fileName" when emitting them.', + 'Plugin error - Unable to get file name for asset "WPGYjwIl". Ensure that the source is set and that generate is called first. If you reference assets via import.meta.ROLLUP_FILE_URL_, you need to either have set their source after "renderStart" or need to provide an explicit "fileName" when emitting them.', plugin: 'test-plugin', pluginCode: 'ASSET_NOT_FINALISED' } diff --git a/test/function/samples/emit-file/asset-source-missing5/_config.js b/test/function/samples/emit-file/asset-source-missing5/_config.js index 346496edb..eb24df981 100644 --- a/test/function/samples/emit-file/asset-source-missing5/_config.js +++ b/test/function/samples/emit-file/asset-source-missing5/_config.js @@ -1,15 +1,17 @@ module.exports = defineTest({ description: 'throws when not setting the asset source and accessing the asset URL', options: { - plugins: { - name: 'test-plugin', - load() { - return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ - type: 'asset', - name: 'test.ext' - })};`; + plugins: [ + { + name: 'test-plugin', + load() { + return `export default import.meta.ROLLUP_FILE_URL_${this.emitFile({ + type: 'asset', + name: 'test.ext' + })};`; + } } - } + ] }, generateError: { code: 'ASSET_NOT_FINALISED', diff --git a/test/function/samples/emit-file/chunk-filename-not-available-buildEnd/_config.js b/test/function/samples/emit-file/chunk-filename-not-available-buildEnd/_config.js index 065cde79c..38735eaa0 100644 --- a/test/function/samples/emit-file/chunk-filename-not-available-buildEnd/_config.js +++ b/test/function/samples/emit-file/chunk-filename-not-available-buildEnd/_config.js @@ -4,15 +4,17 @@ module.exports = defineTest({ description: 'Throws when accessing the filename before it has been generated in buildEnd', options: { input: 'main.js', - plugins: { - name: 'test-plugin', - buildStart() { - chunkId = this.emitFile({ type: 'chunk', id: 'chunk.js' }); - }, - buildEnd() { - this.getFileName(chunkId); + plugins: [ + { + name: 'test-plugin', + buildStart() { + chunkId = this.emitFile({ type: 'chunk', id: 'chunk.js' }); + }, + buildEnd() { + this.getFileName(chunkId); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/chunk-filename-not-available-renderStart/_config.js b/test/function/samples/emit-file/chunk-filename-not-available-renderStart/_config.js index 8879dc2cb..ce3bb7634 100644 --- a/test/function/samples/emit-file/chunk-filename-not-available-renderStart/_config.js +++ b/test/function/samples/emit-file/chunk-filename-not-available-renderStart/_config.js @@ -4,15 +4,17 @@ module.exports = defineTest({ description: 'Throws when accessing the filename before it has been generated in renderStart', options: { input: 'main.js', - plugins: { - name: 'test-plugin', - buildStart() { - chunkId = this.emitFile({ type: 'chunk', id: 'chunk.js' }); - }, - renderStart() { - this.getFileName(chunkId); + plugins: [ + { + name: 'test-plugin', + buildStart() { + chunkId = this.emitFile({ type: 'chunk', id: 'chunk.js' }); + }, + renderStart() { + this.getFileName(chunkId); + } } - } + ] }, generateError: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/chunk-filename-not-available/_config.js b/test/function/samples/emit-file/chunk-filename-not-available/_config.js index 9eaa429e4..0d7d45e91 100644 --- a/test/function/samples/emit-file/chunk-filename-not-available/_config.js +++ b/test/function/samples/emit-file/chunk-filename-not-available/_config.js @@ -2,13 +2,15 @@ module.exports = defineTest({ description: 'Throws when accessing the filename before it has been generated', options: { input: 'main.js', - plugins: { - name: 'test-plugin', - buildStart() { - const chunkId = this.emitFile({ type: 'chunk', id: 'chunk.js' }); - this.getFileName(chunkId); + plugins: [ + { + name: 'test-plugin', + buildStart() { + const chunkId = this.emitFile({ type: 'chunk', id: 'chunk.js' }); + this.getFileName(chunkId); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/chunk-not-found/_config.js b/test/function/samples/emit-file/chunk-not-found/_config.js index ebfa97a6b..458540b30 100644 --- a/test/function/samples/emit-file/chunk-not-found/_config.js +++ b/test/function/samples/emit-file/chunk-not-found/_config.js @@ -5,11 +5,13 @@ module.exports = defineTest({ description: 'Throws if an emitted entry chunk cannot be resolved', options: { input: 'main.js', - plugins: { - buildStart() { - this.emitFile({ type: 'chunk', id: 'not-found.js' }); + plugins: [ + { + buildStart() { + this.emitFile({ type: 'chunk', id: 'not-found.js' }); + } } - } + ] }, error: { code: 'UNRESOLVED_ENTRY', diff --git a/test/function/samples/emit-file/emit-from-output-options/_config.js b/test/function/samples/emit-file/emit-from-output-options/_config.js index ddbf0a832..67c990065 100644 --- a/test/function/samples/emit-file/emit-from-output-options/_config.js +++ b/test/function/samples/emit-file/emit-from-output-options/_config.js @@ -2,14 +2,16 @@ module.exports = defineTest({ description: 'throws when trying to emit files from the outputOptions hook', options: { input: 'main', - plugins: { - outputOptions() { - this.emitFile({ - type: 'asset', - source: 'asset' - }); + plugins: [ + { + outputOptions() { + this.emitFile({ + type: 'asset', + source: 'asset' + }); + } } - } + ] }, generateError: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/file-references-in-bundle/_config.js b/test/function/samples/emit-file/file-references-in-bundle/_config.js index 3f676dc34..815c35b56 100644 --- a/test/function/samples/emit-file/file-references-in-bundle/_config.js +++ b/test/function/samples/emit-file/file-references-in-bundle/_config.js @@ -5,28 +5,30 @@ module.exports = defineTest({ description: 'lists referenced files in the bundle', options: { input: 'main', - plugins: { - transform() { - return `export const asset = import.meta.ROLLUP_FILE_URL_${this.emitFile({ - type: 'asset', - name: 'asset.txt', - source: 'asset' - })};\nexport const chunk = import.meta.ROLLUP_FILE_URL_${this.emitFile({ - type: 'chunk', - id: 'ref.js' - })};\nexport const urlEncoding = import.meta.ROLLUP_FILE_URL_${this.emitFile({ - type: 'chunk', - id: 'My%2FFile.js' - })}`; - }, - generateBundle(options, bundle) { - assert.deepStrictEqual(bundle['main.js'].referencedFiles, [ - 'assets/asset.txt', - 'chunks/ref.js', - 'chunks/My%2FFile.js' - ]); + plugins: [ + { + transform() { + return `export const asset = import.meta.ROLLUP_FILE_URL_${this.emitFile({ + type: 'asset', + name: 'asset.txt', + source: 'asset' + })};\nexport const chunk = import.meta.ROLLUP_FILE_URL_${this.emitFile({ + type: 'chunk', + id: 'ref.js' + })};\nexport const urlEncoding = import.meta.ROLLUP_FILE_URL_${this.emitFile({ + type: 'chunk', + id: 'My%2FFile.js' + })}`; + }, + generateBundle(options, bundle) { + assert.deepStrictEqual(bundle['main.js'].referencedFiles, [ + 'assets/asset.txt', + 'chunks/ref.js', + 'chunks/My%2FFile.js' + ]); + } } - }, + ], output: { assetFileNames: 'assets/[name][extname]', chunkFileNames: 'chunks/[name].js' diff --git a/test/function/samples/emit-file/invalid-asset-name/_config.js b/test/function/samples/emit-file/invalid-asset-name/_config.js index acaa2f0f8..27e2dd184 100644 --- a/test/function/samples/emit-file/invalid-asset-name/_config.js +++ b/test/function/samples/emit-file/invalid-asset-name/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws for invalid asset names', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ type: 'asset', name: '/test.ext', source: 'content' }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ type: 'asset', name: '/test.ext', source: 'content' }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/invalid-asset-name3/_config.js b/test/function/samples/emit-file/invalid-asset-name3/_config.js index bd071edc7..a882176e1 100644 --- a/test/function/samples/emit-file/invalid-asset-name3/_config.js +++ b/test/function/samples/emit-file/invalid-asset-name3/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws for invalid asset names with absolute path on Windows OS', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ type: 'asset', name: 'F:\\test.ext', source: 'content' }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ type: 'asset', name: 'F:\\test.ext', source: 'content' }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/invalid-chunk-id/_config.js b/test/function/samples/emit-file/invalid-chunk-id/_config.js index d72840d73..9b168b7fb 100644 --- a/test/function/samples/emit-file/invalid-chunk-id/_config.js +++ b/test/function/samples/emit-file/invalid-chunk-id/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws for invalid chunk ids', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ type: 'chunk', id: null }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ type: 'chunk', id: null }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/invalid-file-type/_config.js b/test/function/samples/emit-file/invalid-file-type/_config.js index a34d42ee7..32d7ffaf4 100644 --- a/test/function/samples/emit-file/invalid-file-type/_config.js +++ b/test/function/samples/emit-file/invalid-file-type/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws for invalid file types', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ type: 'unknown' }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ type: 'unknown' }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/invalid-prebuilt-chunk-filename/_config.js b/test/function/samples/emit-file/invalid-prebuilt-chunk-filename/_config.js index dd4e8d9ad..36035d57c 100644 --- a/test/function/samples/emit-file/invalid-prebuilt-chunk-filename/_config.js +++ b/test/function/samples/emit-file/invalid-prebuilt-chunk-filename/_config.js @@ -1,15 +1,17 @@ module.exports = defineTest({ description: 'throws for invalid prebuilt chunks filename', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ - type: 'prebuilt-chunk', - code: 'console.log("my-chunk")' - }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ + type: 'prebuilt-chunk', + code: 'console.log("my-chunk")' + }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/invalid-prebuit-chunk-code/_config.js b/test/function/samples/emit-file/invalid-prebuit-chunk-code/_config.js index f93d6727f..5b02a32bf 100644 --- a/test/function/samples/emit-file/invalid-prebuit-chunk-code/_config.js +++ b/test/function/samples/emit-file/invalid-prebuit-chunk-code/_config.js @@ -1,15 +1,17 @@ module.exports = defineTest({ description: 'throws for invalid prebuilt chunks code', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ - type: 'prebuilt-chunk', - fileName: 'my-chunk.js' - }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ + type: 'prebuilt-chunk', + fileName: 'my-chunk.js' + }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/invalid-reference-id/_config.js b/test/function/samples/emit-file/invalid-reference-id/_config.js index e12a5463e..b7589ef7e 100644 --- a/test/function/samples/emit-file/invalid-reference-id/_config.js +++ b/test/function/samples/emit-file/invalid-reference-id/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws for invalid reference ids', options: { - plugins: { - name: 'test-plugin', - load() { - return `export default import.meta.ROLLUP_FILE_URL_invalid;`; + plugins: [ + { + name: 'test-plugin', + load() { + return `export default import.meta.ROLLUP_FILE_URL_invalid;`; + } } - } + ] }, generateError: { code: 'FILE_NOT_FOUND', diff --git a/test/function/samples/emit-file/invalid-set-asset-source-id/_config.js b/test/function/samples/emit-file/invalid-set-asset-source-id/_config.js index ea28ec801..a47185b38 100644 --- a/test/function/samples/emit-file/invalid-set-asset-source-id/_config.js +++ b/test/function/samples/emit-file/invalid-set-asset-source-id/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'throws for invalid asset ids', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.setAssetSource('invalid', 'content'); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.setAssetSource('invalid', 'content'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/modules-loaded/_config.js b/test/function/samples/emit-file/modules-loaded/_config.js index 9e76edeff..c6b726214 100644 --- a/test/function/samples/emit-file/modules-loaded/_config.js +++ b/test/function/samples/emit-file/modules-loaded/_config.js @@ -2,12 +2,14 @@ module.exports = defineTest({ description: 'Throws when adding a chunk after the modules have finished loading', options: { input: 'main.js', - plugins: { - name: 'test-plugin', - buildEnd() { - this.emitFile({ type: 'chunk', id: 'chunk.js' }); + plugins: [ + { + name: 'test-plugin', + buildEnd() { + this.emitFile({ type: 'chunk', id: 'chunk.js' }); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/no-input/_config.js b/test/function/samples/emit-file/no-input/_config.js index 0665e74b5..e6eaaf3ee 100644 --- a/test/function/samples/emit-file/no-input/_config.js +++ b/test/function/samples/emit-file/no-input/_config.js @@ -2,11 +2,13 @@ module.exports = defineTest({ description: 'It is not necessary to provide an input if a dynamic entry is emitted', options: { input: undefined, - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ type: 'chunk', id: 'chunk.js' }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ type: 'chunk', id: 'chunk.js' }); + } } - } + ] } }); diff --git a/test/function/samples/emit-file/set-asset-source-chunk/_config.js b/test/function/samples/emit-file/set-asset-source-chunk/_config.js index ede439795..83182333c 100644 --- a/test/function/samples/emit-file/set-asset-source-chunk/_config.js +++ b/test/function/samples/emit-file/set-asset-source-chunk/_config.js @@ -1,18 +1,20 @@ module.exports = defineTest({ description: 'throws when trying to set the asset source of a chunk', options: { - plugins: { - name: 'test-plugin', - buildStart() { - const referenceId = this.emitFile({ type: 'chunk', id: 'chunk' }); - this.setAssetSource(referenceId, 'hello world'); + plugins: [ + { + name: 'test-plugin', + buildStart() { + const referenceId = this.emitFile({ type: 'chunk', id: 'chunk' }); + this.setAssetSource(referenceId, 'hello world'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', hook: 'buildStart', - message: 'Asset sources can only be set for emitted assets but "6c87f683" is an emitted chunk.', + message: 'Asset sources can only be set for emitted assets but "Vbibt3QL" is an emitted chunk.', plugin: 'test-plugin', pluginCode: 'VALIDATION_ERROR' } diff --git a/test/function/samples/emit-file/set-asset-source-transform/_config.js b/test/function/samples/emit-file/set-asset-source-transform/_config.js index 667055fdb..246c294ed 100644 --- a/test/function/samples/emit-file/set-asset-source-transform/_config.js +++ b/test/function/samples/emit-file/set-asset-source-transform/_config.js @@ -3,14 +3,16 @@ const path = require('node:path'); module.exports = defineTest({ description: 'throws when setting the asset source in the transform hook', options: { - plugins: { - name: 'test-plugin', - transform(code) { - const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); - this.setAssetSource(assetId, 'asdf'); - return code; + plugins: [ + { + name: 'test-plugin', + transform(code) { + const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); + this.setAssetSource(assetId, 'asdf'); + return code; + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/set-asset-source-twice/_config.js b/test/function/samples/emit-file/set-asset-source-twice/_config.js index 695ed5de0..fd06baa2b 100644 --- a/test/function/samples/emit-file/set-asset-source-twice/_config.js +++ b/test/function/samples/emit-file/set-asset-source-twice/_config.js @@ -1,14 +1,16 @@ module.exports = defineTest({ description: 'throws when setting the asset source twice', options: { - plugins: { - name: 'test-plugin', - buildEnd() { - const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); - this.setAssetSource(assetId, 'hello world'); - this.setAssetSource(assetId, 'another'); + plugins: [ + { + name: 'test-plugin', + buildEnd() { + const assetId = this.emitFile({ type: 'asset', name: 'test.ext' }); + this.setAssetSource(assetId, 'hello world'); + this.setAssetSource(assetId, 'another'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/emit-file/set-asset-source-twice2/_config.js b/test/function/samples/emit-file/set-asset-source-twice2/_config.js index 45bcbb9fb..4a962fcf7 100644 --- a/test/function/samples/emit-file/set-asset-source-twice2/_config.js +++ b/test/function/samples/emit-file/set-asset-source-twice2/_config.js @@ -1,19 +1,21 @@ module.exports = defineTest({ description: 'throws when setting the asset source twice', options: { - plugins: { - name: 'test-plugin', - buildEnd() { - const assetId = this.emitFile({ type: 'asset' }); - this.setAssetSource(assetId, 'hello world'); - this.setAssetSource(assetId, 'another'); + plugins: [ + { + name: 'test-plugin', + buildEnd() { + const assetId = this.emitFile({ type: 'asset' }); + this.setAssetSource(assetId, 'hello world'); + this.setAssetSource(assetId, 'another'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', hook: 'buildEnd', - message: 'Unable to set the source for asset "6b86b273", source already set.', + message: 'Unable to set the source for asset "WPGYjwIl", source already set.', plugin: 'test-plugin', pluginCode: 'ASSET_SOURCE_ALREADY_SET' } diff --git a/test/function/samples/emit-file/set-source-in-output-options/_config.js b/test/function/samples/emit-file/set-source-in-output-options/_config.js index 1f19e4a67..0db140834 100644 --- a/test/function/samples/emit-file/set-source-in-output-options/_config.js +++ b/test/function/samples/emit-file/set-source-in-output-options/_config.js @@ -4,14 +4,16 @@ module.exports = defineTest({ description: 'throws when trying to set file sources in the outputOptions hook', options: { input: 'main', - plugins: { - buildStart() { - referenceId = this.emitFile({ type: 'asset' }); - }, - outputOptions() { - this.setAssetSource(referenceId, 'not allowed'); + plugins: [ + { + buildStart() { + referenceId = this.emitFile({ type: 'asset' }); + }, + outputOptions() { + this.setAssetSource(referenceId, 'not allowed'); + } } - } + ] }, generateError: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/error-parse-json/_config.js b/test/function/samples/error-parse-json/_config.js index d3a36449a..494ac4c26 100644 --- a/test/function/samples/error-parse-json/_config.js +++ b/test/function/samples/error-parse-json/_config.js @@ -7,13 +7,9 @@ module.exports = defineTest({ 'throws with an extended error message when failing to parse a file with ".json" extension', error: { cause: { + code: 'PARSE_ERROR', pos: 10, - loc: { - line: 2, - column: 8 - }, - raisedAt: 11, - message: 'Unexpected token (2:8)' + message: "Expected ';', '}' or " }, code: 'PARSE_ERROR', id: ID_JSON, @@ -30,6 +26,7 @@ module.exports = defineTest({ 3: } `, watchFiles: [ID_JSON, ID_MAIN], - message: 'Unexpected token (Note that you need @rollup/plugin-json to import JSON files)' + message: + "Expected ';', '}' or (Note that you need @rollup/plugin-json to import JSON files)" } }); diff --git a/test/function/samples/error-parse-unknown-extension/_config.js b/test/function/samples/error-parse-unknown-extension/_config.js index ca130f979..45a72f9ff 100644 --- a/test/function/samples/error-parse-unknown-extension/_config.js +++ b/test/function/samples/error-parse-unknown-extension/_config.js @@ -7,13 +7,9 @@ module.exports = defineTest({ 'throws with an extended error message when failing to parse a file without .(m)js extension', error: { cause: { + code: 'PARSE_ERROR', pos: 0, - loc: { - line: 1, - column: 0 - }, - raisedAt: 1, - message: 'Unexpected token (1:0)' + message: 'Expression expected' }, code: 'PARSE_ERROR', id: ID_CSS, @@ -30,6 +26,7 @@ module.exports = defineTest({ 3: } `, watchFiles: [ID_CSS, ID_MAIN], - message: 'Unexpected token (Note that you need plugins to import files that are not JavaScript)' + message: + 'Expression expected (Note that you need plugins to import files that are not JavaScript)' } }); diff --git a/test/function/samples/export-global/_config.js b/test/function/samples/export-global/_config.js index 888caf9ae..88af9fd8b 100644 --- a/test/function/samples/export-global/_config.js +++ b/test/function/samples/export-global/_config.js @@ -1,12 +1,7 @@ const assert = require('node:assert'); -// This used to be "any global variables in scope can be re-exported" -// This, however, is actually not allowed by the spec and acorn, -// see https://github.com/acornjs/acorn/issues/806 -// Consider reverting this change should this become an acorn option - module.exports = defineTest({ - description: '"variables corresponding to globals can be exported"', + description: 'variables corresponding to globals can be exported', exports(exports) { assert.equal(exports.Buffer, Buffer); diff --git a/test/function/samples/export-global/main.js b/test/function/samples/export-global/main.js index aea02862f..66c7efc94 100644 --- a/test/function/samples/export-global/main.js +++ b/test/function/samples/export-global/main.js @@ -1,2 +1,2 @@ const MyBuffer = Buffer; -export { MyBuffer as Buffer }; +export { MyBuffer as Buffer }; diff --git a/test/function/samples/export-not-at-top-level-fails/_config.js b/test/function/samples/export-not-at-top-level-fails/_config.js index 74eca72d4..0940179df 100644 --- a/test/function/samples/export-not-at-top-level-fails/_config.js +++ b/test/function/samples/export-not-at-top-level-fails/_config.js @@ -5,13 +5,9 @@ module.exports = defineTest({ description: 'disallows non-top-level exports', error: { cause: { + code: 'PARSE_ERROR', pos: 19, - loc: { - line: 2, - column: 2 - }, - raisedAt: 25, - message: "'import' and 'export' may only appear at the top level (2:2)" + message: "'import', and 'export' cannot be used outside of module code" }, code: 'PARSE_ERROR', id: ID_MAIN, @@ -28,6 +24,6 @@ module.exports = defineTest({ 3: } `, watchFiles: [ID_MAIN], - message: "'import' and 'export' may only appear at the top level" + message: "'import', and 'export' cannot be used outside of module code" } }); diff --git a/test/function/samples/external-conflict/_config.js b/test/function/samples/external-conflict/_config.js index 372c4c7c5..47837de32 100644 --- a/test/function/samples/external-conflict/_config.js +++ b/test/function/samples/external-conflict/_config.js @@ -18,7 +18,7 @@ module.exports = defineTest({ }, error: { code: 'INVALID_EXTERNAL_ID', - watchFiles: [ID_MAIN, 'dep'], + watchFiles: [ID_MAIN], message: '"dep" is imported as an external by "dep", but is already an existing non-external module id.' } diff --git a/test/function/samples/external-entry-point-object/_config.js b/test/function/samples/external-entry-point-object/_config.js index 4618a0f27..d406ffa25 100644 --- a/test/function/samples/external-entry-point-object/_config.js +++ b/test/function/samples/external-entry-point-object/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'throws for entry points that are resolved as an external object by plugins', options: { - plugins: { - resolveId(id) { - return { id, external: true }; + plugins: [ + { + resolveId(id) { + return { id, external: true }; + } } - } + ] }, error: { code: 'UNRESOLVED_ENTRY', diff --git a/test/function/samples/external-entry-point/_config.js b/test/function/samples/external-entry-point/_config.js index bfaa5d822..e4aabd39e 100644 --- a/test/function/samples/external-entry-point/_config.js +++ b/test/function/samples/external-entry-point/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'throws for entry points that are resolved as false by plugins', options: { - plugins: { - resolveId() { - return false; + plugins: [ + { + resolveId() { + return false; + } } - } + ] }, error: { code: 'UNRESOLVED_ENTRY', diff --git a/test/function/samples/external-resolved/_config.js b/test/function/samples/external-resolved/_config.js index 9e00a9bac..9a1826619 100644 --- a/test/function/samples/external-resolved/_config.js +++ b/test/function/samples/external-resolved/_config.js @@ -30,27 +30,29 @@ module.exports = defineTest({ testedIds.push(id); return id.startsWith('resolved'); }, - plugins: { - name: 'test-plugin', - resolveId(source) { - switch (source) { - case 'resolve-string': { - return 'resolved-string'; - } - case 'resolve-external': { - return false; - } - case 'resolve-object': { - return { id: 'resolved-object', external: false }; - } - case 'resolve-object-external': { - return { id: 'resolved-object-external', external: true }; - } - default: { - return null; + plugins: [ + { + name: 'test-plugin', + resolveId(source) { + switch (source) { + case 'resolve-string': { + return 'resolved-string'; + } + case 'resolve-external': { + return false; + } + case 'resolve-object': { + return { id: 'resolved-object', external: false }; + } + case 'resolve-object-external': { + return { id: 'resolved-object-external', external: true }; + } + default: { + return null; + } } } } - } + ] } }); diff --git a/test/function/samples/function-asm-directive/main.js b/test/function/samples/function-asm-directive/main.js index 48744f957..252fa6ccb 100644 --- a/test/function/samples/function-asm-directive/main.js +++ b/test/function/samples/function-asm-directive/main.js @@ -2,4 +2,4 @@ export function a() { "use asm"; return 1; -} \ No newline at end of file +} diff --git a/test/function/samples/function-directive-not-first/main.js b/test/function/samples/function-directive-not-first/main.js index 55e83d932..b37630754 100644 --- a/test/function/samples/function-directive-not-first/main.js +++ b/test/function/samples/function-directive-not-first/main.js @@ -2,4 +2,4 @@ export function a() { const x = 1; "use asm"; return x; -} \ No newline at end of file +} diff --git a/test/function/samples/handle-missing-export-source/_config.js b/test/function/samples/handle-missing-export-source/_config.js index 80f965ccb..4e16bba9b 100644 --- a/test/function/samples/handle-missing-export-source/_config.js +++ b/test/function/samples/handle-missing-export-source/_config.js @@ -1,15 +1,18 @@ module.exports = defineTest({ description: 'does not fail if a pre-generated AST is omitting the source property of an unused named export (#3210)', + verifyAst: false, options: { - plugins: { - transform(code, id) { - if (id.endsWith('foo.js')) { - const ast = this.parse(code); - delete ast.body.find(node => node.type === 'ExportNamedDeclaration').source; - return { code, ast }; + plugins: [ + { + transform(code, id) { + if (id.endsWith('foo.js')) { + const ast = this.parse(code); + delete ast.body.find(node => node.type === 'ExportNamedDeclaration').source; + return { code, ast }; + } } } - } + ] } }); diff --git a/test/function/samples/hashing/maximum-hash-size/_config.js b/test/function/samples/hashing/maximum-hash-size/_config.js index fb8159901..1c4d82f79 100644 --- a/test/function/samples/hashing/maximum-hash-size/_config.js +++ b/test/function/samples/hashing/maximum-hash-size/_config.js @@ -1,9 +1,9 @@ module.exports = defineTest({ description: 'throws when the maximum hash size is exceeded', - options: { output: { chunkFileNames: '[hash:65].js' } }, + options: { output: { chunkFileNames: '[hash:23].js' } }, generateError: { code: 'VALIDATION_ERROR', message: - 'Hashes cannot be longer than 64 characters, received 65. Check the "output.chunkFileNames" option.' + 'Hashes cannot be longer than 22 characters, received 23. Check the "output.chunkFileNames" option.' } }); diff --git a/test/function/samples/implicit-dependencies/dependant-dynamic-import-no-effects/_config.js b/test/function/samples/implicit-dependencies/dependant-dynamic-import-no-effects/_config.js index e9ad92105..c5449ab26 100644 --- a/test/function/samples/implicit-dependencies/dependant-dynamic-import-no-effects/_config.js +++ b/test/function/samples/implicit-dependencies/dependant-dynamic-import-no-effects/_config.js @@ -3,16 +3,18 @@ const path = require('node:path'); module.exports = defineTest({ description: 'throws when a module that is loaded before an emitted chunk is fully tree-shaken', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ - type: 'chunk', - id: 'dep.js', - implicitlyLoadedAfterOneOf: ['dependant'] - }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ + type: 'chunk', + id: 'dep.js', + implicitlyLoadedAfterOneOf: ['dependant'] + }); + } } - } + ] }, error: { code: 'MISSING_IMPLICIT_DEPENDANT', diff --git a/test/function/samples/implicit-dependencies/dependant-dynamic-import-not-included/_config.js b/test/function/samples/implicit-dependencies/dependant-dynamic-import-not-included/_config.js index fbc85389e..8050503e3 100644 --- a/test/function/samples/implicit-dependencies/dependant-dynamic-import-not-included/_config.js +++ b/test/function/samples/implicit-dependencies/dependant-dynamic-import-not-included/_config.js @@ -4,21 +4,23 @@ module.exports = defineTest({ description: 'throws when a module that is loaded before an emitted chunk is only linked to the module graph via a tree-shaken dynamic import', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ - type: 'chunk', - id: 'dep1.js', - implicitlyLoadedAfterOneOf: ['dependant'] - }); - this.emitFile({ - type: 'chunk', - id: 'dep2.js', - implicitlyLoadedAfterOneOf: ['dependant'] - }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ + type: 'chunk', + id: 'dep1.js', + implicitlyLoadedAfterOneOf: ['dependant'] + }); + this.emitFile({ + type: 'chunk', + id: 'dep2.js', + implicitlyLoadedAfterOneOf: ['dependant'] + }); + } } - } + ] }, error: { code: 'MISSING_IMPLICIT_DEPENDANT', diff --git a/test/function/samples/implicit-dependencies/dependant-not-part-of-graph/_config.js b/test/function/samples/implicit-dependencies/dependant-not-part-of-graph/_config.js index 1239ea0e1..1f13bd683 100644 --- a/test/function/samples/implicit-dependencies/dependant-not-part-of-graph/_config.js +++ b/test/function/samples/implicit-dependencies/dependant-not-part-of-graph/_config.js @@ -4,26 +4,28 @@ module.exports = defineTest({ description: 'throws when a module that is loaded before an emitted chunk is not part of the module graph', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ - type: 'chunk', - id: 'dep1.js', - implicitlyLoadedAfterOneOf: ['dependant'] - }); - this.emitFile({ - type: 'chunk', - id: 'dep2.js', - implicitlyLoadedAfterOneOf: ['dependant'] - }); - this.emitFile({ - type: 'chunk', - id: 'dep3.js', - implicitlyLoadedAfterOneOf: ['dependant'] - }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ + type: 'chunk', + id: 'dep1.js', + implicitlyLoadedAfterOneOf: ['dependant'] + }); + this.emitFile({ + type: 'chunk', + id: 'dep2.js', + implicitlyLoadedAfterOneOf: ['dependant'] + }); + this.emitFile({ + type: 'chunk', + id: 'dep3.js', + implicitlyLoadedAfterOneOf: ['dependant'] + }); + } } - } + ] }, error: { code: 'MISSING_IMPLICIT_DEPENDANT', diff --git a/test/function/samples/implicit-dependencies/external-dependant/_config.js b/test/function/samples/implicit-dependencies/external-dependant/_config.js index 41d775740..3a44a3bc3 100644 --- a/test/function/samples/implicit-dependencies/external-dependant/_config.js +++ b/test/function/samples/implicit-dependencies/external-dependant/_config.js @@ -3,16 +3,18 @@ const path = require('node:path'); module.exports = defineTest({ description: 'throws when a module that is loaded before an emitted chunk does not exist', options: { - plugins: { - name: 'test-plugin', - buildStart() { - this.emitFile({ - type: 'chunk', - id: 'dep.js', - implicitlyLoadedAfterOneOf: ['does-not-exist'] - }); + plugins: [ + { + name: 'test-plugin', + buildStart() { + this.emitFile({ + type: 'chunk', + id: 'dep.js', + implicitlyLoadedAfterOneOf: ['does-not-exist'] + }); + } } - } + ] }, error: { code: 'MISSING_IMPLICIT_DEPENDANT', diff --git a/test/function/samples/implicit-dependencies/missing-dependant/_config.js b/test/function/samples/implicit-dependencies/missing-dependant/_config.js index 3b833ff05..5fbdd5d7e 100644 --- a/test/function/samples/implicit-dependencies/missing-dependant/_config.js +++ b/test/function/samples/implicit-dependencies/missing-dependant/_config.js @@ -3,21 +3,23 @@ const path = require('node:path'); module.exports = defineTest({ description: 'throws when a module that is loaded before an emitted chunk is external', options: { - plugins: { - name: 'test-plugin', - resolveId(id) { - if (id === 'external') { - return false; + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (id === 'external') { + return false; + } + }, + buildStart() { + this.emitFile({ + type: 'chunk', + id: 'dep.js', + implicitlyLoadedAfterOneOf: ['external'] + }); } - }, - buildStart() { - this.emitFile({ - type: 'chunk', - id: 'dep.js', - implicitlyLoadedAfterOneOf: ['external'] - }); } - } + ] }, error: { code: 'MISSING_IMPLICIT_DEPENDANT', diff --git a/test/function/samples/import-assertions/plugin-assertions-this-resolve/_config.js b/test/function/samples/import-assertions/plugin-assertions-this-resolve/_config.js index fa8f8b69e..1ded1d1b6 100644 --- a/test/function/samples/import-assertions/plugin-assertions-this-resolve/_config.js +++ b/test/function/samples/import-assertions/plugin-assertions-this-resolve/_config.js @@ -1,7 +1,7 @@ const assert = require('node:assert'); module.exports = defineTest({ - description: 'allows plugins to provide assertions for this.resolve', + description: 'allows plugins to provide attributes for this.resolve', options: { plugins: [ { @@ -9,11 +9,10 @@ module.exports = defineTest({ async resolveId() { assert.deepStrictEqual( await this.resolve('external', undefined, { - skipSelf: true, - assertions: { a: 'c', b: 'd' } + attributes: { a: 'c', b: 'd' } }), { - assertions: { a: 'changed', b: 'changed' }, + attributes: { a: 'changed', b: 'changed' }, external: true, id: 'external', meta: {}, @@ -26,20 +25,20 @@ module.exports = defineTest({ }, { name: 'second', - async resolveId(source, importer, { assertions }) { + async resolveId(source, importer, { attributes }) { if (source === 'external') { - return this.resolve(source, importer, { assertions, skipSelf: true }); + return this.resolve(source, importer, { attributes }); } } }, { name: 'third', - async resolveId(source, importer, { assertions }) { + async resolveId(source, importer, { attributes }) { if (source === 'external') { return { id: source, external: true, - assertions: Object.fromEntries(Object.keys(assertions).map(key => [key, 'changed'])) + attributes: Object.fromEntries(Object.keys(attributes).map(key => [key, 'changed'])) }; } } diff --git a/test/function/samples/import-assertions/warn-assertion-conflicts/_config.js b/test/function/samples/import-assertions/warn-assertion-conflicts/_config.js index 45bfe811d..2877a6665 100644 --- a/test/function/samples/import-assertions/warn-assertion-conflicts/_config.js +++ b/test/function/samples/import-assertions/warn-assertion-conflicts/_config.js @@ -2,20 +2,20 @@ const path = require('node:path'); const ID_MAIN = path.join(__dirname, 'main.js'); module.exports = defineTest({ - description: 'warns for conflicting import assertions', + description: 'warns for conflicting import attributes', options: { external: id => id.startsWith('external') }, warnings: [ { - code: 'INCONSISTENT_IMPORT_ASSERTIONS', + code: 'INCONSISTENT_IMPORT_ATTRIBUTES', frame: ` 1: import './other.js'; -2: import 'external' assert { type: 'foo' }; -3: import 'external' assert { type: 'bar' }; +2: import 'external' with { type: 'foo' }; +3: import 'external' with { type: 'bar' }; ^ 4: import 'external'; -5: import('external', { assert: { type: 'baz' } });`, +5: import('external', { with: { type: 'baz' } });`, id: ID_MAIN, loc: { column: 0, @@ -23,18 +23,18 @@ module.exports = defineTest({ line: 3 }, message: - 'Module "main.js" tried to import "external" with "type": "bar" assertions, but it was already imported elsewhere with "type": "foo" assertions. Please ensure that import assertions for the same module are always consistent.', - pos: 63 + 'Module "main.js" tried to import "external" with "type": "bar" attributes, but it was already imported elsewhere with "type": "foo" attributes. Please ensure that import attributes for the same module are always consistent.', + pos: 61 }, { - code: 'INCONSISTENT_IMPORT_ASSERTIONS', + code: 'INCONSISTENT_IMPORT_ATTRIBUTES', frame: ` -2: import 'external' assert { type: 'foo' }; -3: import 'external' assert { type: 'bar' }; +2: import 'external' with { type: 'foo' }; +3: import 'external' with { type: 'bar' }; 4: import 'external'; ^ -5: import('external', { assert: { type: 'baz' } }); -6: import './dep.js' assert { type: 'foo' };`, +5: import('external', { with: { type: 'baz' } }); +6: import './dep.js' with { type: 'foo' };`, id: ID_MAIN, loc: { column: 0, @@ -42,23 +42,23 @@ module.exports = defineTest({ line: 4 }, message: - 'Module "main.js" tried to import "external" with no assertions, but it was already imported elsewhere with "type": "foo" assertions. Please ensure that import assertions for the same module are always consistent.', - pos: 105 + 'Module "main.js" tried to import "external" with no attributes, but it was already imported elsewhere with "type": "foo" attributes. Please ensure that import attributes for the same module are always consistent.', + pos: 101 }, { - code: 'INCONSISTENT_IMPORT_ASSERTIONS', + code: 'INCONSISTENT_IMPORT_ATTRIBUTES', message: - 'Module "main.js" tried to import "external" with "type": "baz" assertions, but it was already imported elsewhere with "type": "foo" assertions. Please ensure that import assertions for the same module are always consistent.' + 'Module "main.js" tried to import "external" with "type": "baz" attributes, but it was already imported elsewhere with "type": "foo" attributes. Please ensure that import attributes for the same module are always consistent.' }, { - code: 'INCONSISTENT_IMPORT_ASSERTIONS', + code: 'INCONSISTENT_IMPORT_ATTRIBUTES', message: - 'Module "other.js" tried to import "external" with "type": "quuz" assertions, but it was already imported elsewhere with "type": "foo" assertions. Please ensure that import assertions for the same module are always consistent.' + 'Module "other.js" tried to import "external" with "type": "quuz" attributes, but it was already imported elsewhere with "type": "foo" attributes. Please ensure that import attributes for the same module are always consistent.' }, { - code: 'INCONSISTENT_IMPORT_ASSERTIONS', + code: 'INCONSISTENT_IMPORT_ATTRIBUTES', message: - 'Module "other.js" tried to import "dep.js" with "type": "bar" assertions, but it was already imported elsewhere with "type": "foo" assertions. Please ensure that import assertions for the same module are always consistent.' + 'Module "other.js" tried to import "dep.js" with "type": "bar" attributes, but it was already imported elsewhere with "type": "foo" attributes. Please ensure that import attributes for the same module are always consistent.' } ] }); diff --git a/test/function/samples/import-assertions/warn-assertion-conflicts/main.js b/test/function/samples/import-assertions/warn-assertion-conflicts/main.js index 50f9cdb8b..21a4d427b 100644 --- a/test/function/samples/import-assertions/warn-assertion-conflicts/main.js +++ b/test/function/samples/import-assertions/warn-assertion-conflicts/main.js @@ -1,6 +1,6 @@ import './other.js'; -import 'external' assert { type: 'foo' }; -import 'external' assert { type: 'bar' }; +import 'external' with { type: 'foo' }; +import 'external' with { type: 'bar' }; import 'external'; -import('external', { assert: { type: 'baz' } }); -import './dep.js' assert { type: 'foo' }; +import('external', { with: { type: 'baz' } }); +import './dep.js' with { type: 'foo' }; diff --git a/test/function/samples/import-assertions/warn-assertion-conflicts/other.js b/test/function/samples/import-assertions/warn-assertion-conflicts/other.js index 779091a91..24533e1eb 100644 --- a/test/function/samples/import-assertions/warn-assertion-conflicts/other.js +++ b/test/function/samples/import-assertions/warn-assertion-conflicts/other.js @@ -1,2 +1,2 @@ -import 'external' assert { type: 'quuz' }; -import './dep.js' assert { type: 'bar' }; +import 'external' with { type: 'quuz' }; +import './dep.js' with { type: 'bar' }; diff --git a/test/function/samples/import-assertions/warn-unresolvable-assertions/_config.js b/test/function/samples/import-assertions/warn-unresolvable-assertions/_config.js new file mode 100644 index 000000000..a5c68b355 --- /dev/null +++ b/test/function/samples/import-assertions/warn-unresolvable-assertions/_config.js @@ -0,0 +1,141 @@ +const path = require('node:path'); +const ID_MAIN = path.join(__dirname, 'main.js'); + +module.exports = defineTest({ + description: 'warns for dynamic import attributes that cannot be resolved', + verifyAst: false, + options: { + external: id => id.startsWith('external') + }, + warnings: [ + { + code: 'INVALID_IMPORT_ATTRIBUTE', + message: + 'Rollup could not statically analyze an import attribute of a dynamic import in "main.js". Import attributes need to have string keys and values. The attribute will be removed.', + id: ID_MAIN, + pos: 0, + loc: { + column: 0, + file: ID_MAIN, + line: 1 + }, + frame: ` + 1: import('external1', undefined); + ^ + 2: import('external2', global); + 3: import('external3', { with: 'invalid' });` + }, + { + code: 'INVALID_IMPORT_ATTRIBUTE', + message: + 'Rollup could not statically analyze an import attribute of a dynamic import in "main.js". Import attributes need to have string keys and values. The attribute will be removed.', + id: ID_MAIN, + pos: 32, + loc: { + column: 0, + file: ID_MAIN, + line: 2 + }, + frame: ` + 1: import('external1', undefined); + 2: import('external2', global); + ^ + 3: import('external3', { with: 'invalid' }); + 4: import('external4', { with: { foo } });` + }, + { + code: 'INVALID_IMPORT_ATTRIBUTE', + message: + 'Rollup could not statically analyze an import attribute of a dynamic import in "main.js". Import attributes need to have string keys and values. The attribute will be removed.', + id: ID_MAIN, + pos: 133, + loc: { + column: 30, + file: ID_MAIN, + line: 4 + }, + frame: ` + 2: import('external2', global); + 3: import('external3', { with: 'invalid' }); + 4: import('external4', { with: { foo } }); + ^ + 5: import('external5', { with: { foo: bar } }); + 6: import('external6', { with: { foo() {} } });` + }, + { + code: 'INVALID_IMPORT_ATTRIBUTE', + message: + 'Rollup could not statically analyze an import attribute of a dynamic import in "main.js". Import attributes need to have string keys and values. The attribute will be removed.', + id: ID_MAIN, + pos: 173, + loc: { + column: 30, + file: ID_MAIN, + line: 5 + }, + frame: ` + 3: import('external3', { with: 'invalid' }); + 4: import('external4', { with: { foo } }); + 5: import('external5', { with: { foo: bar } }); + ^ + 6: import('external6', { with: { foo() {} } }); + 7: import('external7', { with: { [invalid]: 'foo' } });` + }, + { + code: 'INVALID_IMPORT_ATTRIBUTE', + message: + 'Rollup could not statically analyze an import attribute of a dynamic import in "main.js". Import attributes need to have string keys and values. The attribute will be removed.', + id: ID_MAIN, + pos: 218, + loc: { + column: 30, + file: ID_MAIN, + line: 6 + }, + frame: ` + 4: import('external4', { with: { foo } }); + 5: import('external5', { with: { foo: bar } }); + 6: import('external6', { with: { foo() {} } }); + ^ + 7: import('external7', { with: { [invalid]: 'foo' } }); + 8: import('external8', { with: { foo: 'valid' } });` + }, + { + code: 'INVALID_IMPORT_ATTRIBUTE', + message: + 'Rollup could not statically analyze an import attribute of a dynamic import in "main.js". Import attributes need to have string keys and values. The attribute will be removed.', + id: ID_MAIN, + pos: 263, + loc: { + column: 30, + file: ID_MAIN, + line: 7 + }, + frame: ` + 5: import('external5', { with: { foo: bar } }); + 6: import('external6', { with: { foo() {} } }); + 7: import('external7', { with: { [invalid]: 'foo' } }); + ^ + 8: import('external8', { with: { foo: 'valid' } });` + }, + { + code: 'INVALID_IMPORT_ATTRIBUTE', + message: + 'Rollup could not statically analyze the options argument of a dynamic import in "main.js". Dynamic import options need to be an object with a nested attributes object.', + id: ID_MAIN, + pos: 61, + loc: { + column: 0, + file: ID_MAIN, + line: 3 + }, + frame: ` + 1: import('external1', undefined); + 2: import('external2', global); + 3: import('external3', { with: 'invalid' }); + ^ + 4: import('external4', { with: { foo } }); + 5: import('external5', { with: { foo: bar } });` + } + ] +}); diff --git a/test/function/samples/import-assertions/warn-unresolvable-assertions/main.js b/test/function/samples/import-assertions/warn-unresolvable-assertions/main.js new file mode 100644 index 000000000..fdc32760c --- /dev/null +++ b/test/function/samples/import-assertions/warn-unresolvable-assertions/main.js @@ -0,0 +1,8 @@ +import('external1', undefined); +import('external2', global); +import('external3', { with: 'invalid' }); +import('external4', { with: { foo } }); +import('external5', { with: { foo: bar } }); +import('external6', { with: { foo() {} } }); +import('external7', { with: { [invalid]: 'foo' } }); +import('external8', { with: { foo: 'valid' } }); diff --git a/test/function/samples/import-not-at-top-level-fails/_config.js b/test/function/samples/import-not-at-top-level-fails/_config.js index 9cf9999a0..3d270e449 100644 --- a/test/function/samples/import-not-at-top-level-fails/_config.js +++ b/test/function/samples/import-not-at-top-level-fails/_config.js @@ -5,13 +5,9 @@ module.exports = defineTest({ description: 'disallows non-top-level imports', error: { cause: { + code: 'PARSE_ERROR', pos: 19, - loc: { - line: 2, - column: 2 - }, - raisedAt: 25, - message: "'import' and 'export' may only appear at the top level (2:2)" + message: "'import', and 'export' cannot be used outside of module code" }, code: 'PARSE_ERROR', id: ID_MAIN, @@ -28,6 +24,6 @@ module.exports = defineTest({ 3: } `, watchFiles: [ID_MAIN], - message: "'import' and 'export' may only appear at the top level" + message: "'import', and 'export' cannot be used outside of module code" } }); diff --git a/test/function/samples/inline-dynamic-imports-bundle/_config.js b/test/function/samples/inline-dynamic-imports-bundle/_config.js index c5c4a99d7..a0e47b6a7 100644 --- a/test/function/samples/inline-dynamic-imports-bundle/_config.js +++ b/test/function/samples/inline-dynamic-imports-bundle/_config.js @@ -5,13 +5,15 @@ module.exports = defineTest({ description: 'ignores non-bundled modules when inlining dynamic imports', options: { output: { inlineDynamicImports: true }, - plugins: { - generateBundle(options, bundle) { - assert.deepStrictEqual(Object.keys(bundle['main.js'].modules), [ - path.join(__dirname, 'lib.js'), - path.join(__dirname, 'main.js') - ]); + plugins: [ + { + generateBundle(options, bundle) { + assert.deepStrictEqual(Object.keys(bundle['main.js'].modules), [ + path.join(__dirname, 'lib.js'), + path.join(__dirname, 'main.js') + ]); + } } - } + ] } }); diff --git a/test/function/samples/internal-reexports-from-external/_config.js b/test/function/samples/internal-reexports-from-external/_config.js index 88e1dcb3a..ba58c6ea6 100644 --- a/test/function/samples/internal-reexports-from-external/_config.js +++ b/test/function/samples/internal-reexports-from-external/_config.js @@ -6,17 +6,19 @@ module.exports = defineTest({ description: 'supports namespaces with external star reexports', options: { external: ['fs', 'path'], - plugins: { - transform(code, id) { - if (id.endsWith('override.js')) { - return { - code, - syntheticNamedExports: true - }; + plugins: [ + { + transform(code, id) { + if (id.endsWith('override.js')) { + return { + code, + syntheticNamedExports: true + }; + } + return null; } - return null; } - } + ] }, exports(exports) { assert.strictEqual(exports.fs.readFile, fs.readFile); diff --git a/test/function/samples/invalid-addon-hook/_config.js b/test/function/samples/invalid-addon-hook/_config.js index 685dd940e..af0868765 100644 --- a/test/function/samples/invalid-addon-hook/_config.js +++ b/test/function/samples/invalid-addon-hook/_config.js @@ -1,9 +1,7 @@ module.exports = defineTest({ description: 'throws when providing a non-string value for an addon hook', options: { - plugins: { - intro: 42 - } + plugins: [{ intro: 42 }] }, generateError: { code: 'ADDON_ERROR', diff --git a/test/function/samples/load-module-error/load/_config.js b/test/function/samples/load-module-error/load/_config.js index 298a54b9b..195843d54 100644 --- a/test/function/samples/load-module-error/load/_config.js +++ b/test/function/samples/load-module-error/load/_config.js @@ -24,6 +24,6 @@ module.exports = defineTest({ hook: 'load', message: `Could not load broken (imported by main.js): It's broken!`, plugin: 'test', - watchFiles: [path.join(__dirname, 'main.js'), 'broken'] + watchFiles: [path.join(__dirname, 'main.js')] } }); diff --git a/test/function/samples/load-returns-string-or-null/_config.js b/test/function/samples/load-returns-string-or-null/_config.js index fb5a74390..56315fcec 100644 --- a/test/function/samples/load-returns-string-or-null/_config.js +++ b/test/function/samples/load-returns-string-or-null/_config.js @@ -1,6 +1,3 @@ -const path = require('node:path'); -const ID_MAIN = path.join(__dirname, 'main.js'); - module.exports = defineTest({ description: 'throws error if load returns something wacky', options: { @@ -15,7 +12,6 @@ module.exports = defineTest({ }, error: { code: 'BAD_LOADER', - watchFiles: [ID_MAIN], message: 'Error loading "main.js": plugin load hook should return a string, a { code, map } object, or nothing/null.' } diff --git a/test/function/samples/logging/log-from-plugin-options-onlog-onwarn/_config.js b/test/function/samples/logging/log-from-plugin-options-onlog-onwarn/_config.js index d52c01164..7e1762a9a 100644 --- a/test/function/samples/logging/log-from-plugin-options-onlog-onwarn/_config.js +++ b/test/function/samples/logging/log-from-plugin-options-onlog-onwarn/_config.js @@ -36,18 +36,7 @@ module.exports = defineTest({ ['onLog', 'info', { message: 'infoLog' }], ['info', 'infoLog'], ['onLog', 'debug', { message: 'debugLog' }], - ['debug', 'debugLog'], - ['onLog', 'warn', { message: 'warnWarn' }], - ['onwarn', { message: 'warnWarn' }], - ['warn', 'warnWarn'], - ['onLog', 'warn', { message: 'warnWarn=' }], - ['onwarn', { message: 'warnWarn=' }], - ['onLog', 'warn', { message: 'warnWarn+=' }], - ['onwarn', { message: 'warnWarn+=' }], - ['warn', 'log was replaced'], - ['onLog', 'warn', { message: 'warnWarn-' }], - ['onLog', 'warn', { message: 'warnWarn+-' }], - ['info', 'log was replaced'] + ['debug', 'debugLog'] ]); assert.strictEqual(logs[0][2].toString(), 'warnLog'); assert.strictEqual(logs[1][1].toString(), 'warnLog'); @@ -88,11 +77,6 @@ module.exports = defineTest({ options.onLog('warn', { message: 'warnLog+-' }); options.onLog('info', { message: 'infoLog' }); options.onLog('debug', { message: 'debugLog' }); - options.onwarn({ message: 'warnWarn' }); - options.onwarn({ message: 'warnWarn=' }); - options.onwarn({ message: 'warnWarn+=' }); - options.onwarn({ message: 'warnWarn-' }); - options.onwarn({ message: 'warnWarn+-' }); } } ] diff --git a/test/function/samples/logging/log-from-plugin-options-onlog/_config.js b/test/function/samples/logging/log-from-plugin-options-onlog/_config.js index 5afdcc302..c133d5916 100644 --- a/test/function/samples/logging/log-from-plugin-options-onlog/_config.js +++ b/test/function/samples/logging/log-from-plugin-options-onlog/_config.js @@ -28,14 +28,7 @@ module.exports = defineTest({ ['onLog', 'info', { message: 'infoLog' }], ['info', 'infoLog'], ['onLog', 'debug', { message: 'debugLog' }], - ['debug', 'debugLog'], - ['onLog', 'warn', { message: 'warnWarn' }], - ['warn', 'warnWarn'], - ['onLog', 'warn', { message: 'warnWarn-' }], - ['onLog', 'warn', { message: 'warnWarn+-' }], - ['debug', 'log was replaced'], - ['onLog', 'warn', { message: 'warnWarn*-' }], - ['info', 'log was replaced with string'] + ['debug', 'debugLog'] ]); assert.strictEqual(logs[0][2].toString(), 'warnLog'); assert.strictEqual(logs[2][2].toString(), '(fooPlugin plugin) fooFile (1:2) warnLog'); @@ -68,10 +61,6 @@ module.exports = defineTest({ options.onLog('warn', { message: 'warnLog*-' }); options.onLog('info', { message: 'infoLog' }); options.onLog('debug', { message: 'debugLog' }); - options.onwarn({ message: 'warnWarn' }); - options.onwarn({ message: 'warnWarn-' }); - options.onwarn({ message: 'warnWarn+-' }); - options.onwarn({ message: 'warnWarn*-' }); } } ] diff --git a/test/function/samples/logging/log-from-plugin-options-onwarn/_config.js b/test/function/samples/logging/log-from-plugin-options-onwarn/_config.js index d06b2fc89..7e7c98bf7 100644 --- a/test/function/samples/logging/log-from-plugin-options-onwarn/_config.js +++ b/test/function/samples/logging/log-from-plugin-options-onwarn/_config.js @@ -25,14 +25,7 @@ module.exports = defineTest({ ['onwarn', { message: 'warnLog*-' }], ['warn', 'log was replaced with string'], ['info', 'infoLog'], - ['debug', 'debugLog'], - ['onwarn', { message: 'warnWarn' }], - ['warn', 'warnWarn'], - ['onwarn', { message: 'warnWarn-' }], - ['onwarn', { message: 'warnWarn+-' }], - ['warn', 'log was replaced'], - ['onwarn', { message: 'warnWarn*-' }], - ['warn', 'log was replaced with string'] + ['debug', 'debugLog'] ]); assert.strictEqual(logs[0][1].toString(), 'warnLog'); assert.strictEqual(logs[2][1].toString(), '(fooPlugin plugin) fooFile (1:2) warnLog'); @@ -65,10 +58,6 @@ module.exports = defineTest({ options.onLog('warn', { message: 'warnLog*-' }); options.onLog('info', { message: 'infoLog' }); options.onLog('debug', { message: 'debugLog' }); - options.onwarn({ message: 'warnWarn' }); - options.onwarn({ message: 'warnWarn-' }); - options.onwarn({ message: 'warnWarn+-' }); - options.onwarn({ message: 'warnWarn*-' }); } } ] diff --git a/test/function/samples/logging/log-from-plugin-options-simple/_config.js b/test/function/samples/logging/log-from-plugin-options-simple/_config.js index 434e571dc..607548a57 100644 --- a/test/function/samples/logging/log-from-plugin-options-simple/_config.js +++ b/test/function/samples/logging/log-from-plugin-options-simple/_config.js @@ -15,14 +15,12 @@ module.exports = defineTest({ assert.deepStrictEqual(logs, [ ['warn', 'warnLog'], ['info', 'infoLog'], - ['debug', 'debugLog'], - ['warn', 'warnWarn'] + ['debug', 'debugLog'] ]); assert.deepStrictEqual(pluginLogs, [ ['warn', { message: 'warnLog' }], ['info', { message: 'infoLog' }], - ['debug', { message: 'debugLog' }], - ['warn', { message: 'warnWarn' }] + ['debug', { message: 'debugLog' }] ]); }, options: { @@ -36,7 +34,6 @@ module.exports = defineTest({ options.onLog('warn', { message: 'warnLog' }); options.onLog('info', { message: 'infoLog' }); options.onLog('debug', { message: 'debugLog' }); - options.onwarn({ message: 'warnWarn' }); }, onLog(level, log) { pluginLogs.push([level, log]); diff --git a/test/function/samples/manual-chunks-info/_config.js b/test/function/samples/manual-chunks-info/_config.js index 6bcbf2c1c..93dac2272 100644 --- a/test/function/samples/manual-chunks-info/_config.js +++ b/test/function/samples/manual-chunks-info/_config.js @@ -21,7 +21,7 @@ module.exports = defineTest({ { [getId('dynamic')]: { id: getId('dynamic'), - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -82,7 +82,7 @@ module.exports = defineTest({ code: "export const promise = import('external');\nexport { default as internal } from './lib';\n", dynamicallyImportedIdResolutions: [ { - assertions: {}, + attributes: {}, external: true, id: 'external', meta: {}, @@ -101,7 +101,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: getId('lib'), meta: {}, @@ -120,7 +120,7 @@ module.exports = defineTest({ }, [getId('lib')]: { id: getId('lib'), - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -156,7 +156,7 @@ module.exports = defineTest({ }, [getId('main')]: { id: getId('main'), - assertions: {}, + attributes: {}, ast: { type: 'Program', start: 0, @@ -239,7 +239,7 @@ module.exports = defineTest({ code: "export const promise = import('./dynamic');\nexport { default as value } from './lib';\nexport { external } from 'external';\n", dynamicallyImportedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: getId('dynamic'), meta: {}, @@ -262,7 +262,7 @@ module.exports = defineTest({ implicitlyLoadedBefore: [], importedIdResolutions: [ { - assertions: {}, + attributes: {}, external: false, id: getId('lib'), meta: {}, @@ -271,7 +271,7 @@ module.exports = defineTest({ syntheticNamedExports: false }, { - assertions: {}, + attributes: {}, external: true, id: 'external', meta: {}, @@ -290,7 +290,7 @@ module.exports = defineTest({ }, external: { id: 'external', - assertions: {}, + attributes: {}, ast: null, code: null, dynamicallyImportedIdResolutions: [], diff --git a/test/function/samples/max-parallel-file-operations/error/_config.js b/test/function/samples/max-parallel-file-operations/error/_config.js index ad0dba875..0283412b7 100644 --- a/test/function/samples/max-parallel-file-operations/error/_config.js +++ b/test/function/samples/max-parallel-file-operations/error/_config.js @@ -26,6 +26,6 @@ module.exports = defineTest({ }, error: { message: `Could not load ${join(__dirname, 'dep.js')} (imported by main): broken`, - watchFiles: [join(__dirname, 'dep.js'), 'main'] + watchFiles: [join(__dirname, 'dep.js')] } }); diff --git a/test/function/samples/module-parsed-hook/_config.js b/test/function/samples/module-parsed-hook/_config.js index 3987d551c..2bc4027b4 100644 --- a/test/function/samples/module-parsed-hook/_config.js +++ b/test/function/samples/module-parsed-hook/_config.js @@ -9,129 +9,131 @@ const ID_DEP = path.join(__dirname, 'dep.js'); module.exports = defineTest({ description: 'calls the moduleParsedHook once a module is parsed', options: { - plugins: { - name: 'test-plugin', - moduleParsed(moduleInfo) { - parsedModules.push(moduleInfo); - }, - buildEnd() { - assert.deepStrictEqual(JSON.parse(JSON.stringify(parsedModules)), [ - { - id: ID_MAIN, - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 34, - body: [ - { - type: 'ExportNamedDeclaration', - start: 0, - end: 33, - declaration: null, - specifiers: [ - { - type: 'ExportSpecifier', - start: 9, - end: 14, - local: { type: 'Identifier', start: 9, end: 14, name: 'value' }, - exported: { type: 'Identifier', start: 9, end: 14, name: 'value' } - } - ], - source: { - type: 'Literal', - start: 22, - end: 32, - value: './dep.js', - raw: "'./dep.js'" - } - } - ], - sourceType: 'module' - }, - code: "export { value } from './dep.js';\n", - dynamicallyImportedIdResolutions: [], - dynamicallyImportedIds: [], - dynamicImporters: [], - exportedBindings: { '.': [], './dep.js': ['value'] }, - exports: ['value'], - hasDefaultExport: false, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [ - { - assertions: {}, - external: false, - id: ID_DEP, - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - importedIds: [ID_DEP], - importers: [], - isEntry: true, - isExternal: false, - isIncluded: false, - meta: {}, - syntheticNamedExports: false - }, - { - id: ID_DEP, - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 25, - body: [ - { - type: 'ExportNamedDeclaration', - start: 0, - end: 24, - declaration: { - type: 'VariableDeclaration', - start: 7, - end: 24, - declarations: [ + plugins: [ + { + name: 'test-plugin', + moduleParsed(moduleInfo) { + parsedModules.push(moduleInfo); + }, + buildEnd() { + assert.deepStrictEqual(JSON.parse(JSON.stringify(parsedModules)), [ + { + id: ID_MAIN, + attributes: {}, + ast: { + type: 'Program', + start: 0, + end: 34, + body: [ + { + type: 'ExportNamedDeclaration', + start: 0, + end: 33, + declaration: null, + specifiers: [ { - type: 'VariableDeclarator', - start: 13, - end: 23, - id: { type: 'Identifier', start: 13, end: 18, name: 'value' }, - init: { type: 'Literal', start: 21, end: 23, value: 42, raw: '42' } + type: 'ExportSpecifier', + start: 9, + end: 14, + local: { type: 'Identifier', start: 9, end: 14, name: 'value' }, + exported: { type: 'Identifier', start: 9, end: 14, name: 'value' } } ], - kind: 'const' - }, - specifiers: [], - source: null + source: { + type: 'Literal', + start: 22, + end: 32, + value: './dep.js', + raw: "'./dep.js'" + } + } + ], + sourceType: 'module' + }, + code: "export { value } from './dep.js';\n", + dynamicallyImportedIdResolutions: [], + dynamicallyImportedIds: [], + dynamicImporters: [], + exportedBindings: { '.': [], './dep.js': ['value'] }, + exports: ['value'], + hasDefaultExport: false, + moduleSideEffects: true, + implicitlyLoadedAfterOneOf: [], + implicitlyLoadedBefore: [], + importedIdResolutions: [ + { + attributes: {}, + external: false, + id: ID_DEP, + meta: {}, + moduleSideEffects: true, + resolvedBy: 'rollup', + syntheticNamedExports: false } ], - sourceType: 'module' + importedIds: [ID_DEP], + importers: [], + isEntry: true, + isExternal: false, + isIncluded: false, + meta: {}, + syntheticNamedExports: false }, - code: 'export const value = 42;\n', - dynamicallyImportedIdResolutions: [], - dynamicallyImportedIds: [], - dynamicImporters: [], - exportedBindings: { '.': ['value'] }, - exports: ['value'], - hasDefaultExport: false, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [], - importedIds: [], - importers: [ID_MAIN], - isEntry: false, - isExternal: false, - isIncluded: true, - meta: {}, - syntheticNamedExports: false - } - ]); + { + id: ID_DEP, + attributes: {}, + ast: { + type: 'Program', + start: 0, + end: 25, + body: [ + { + type: 'ExportNamedDeclaration', + start: 0, + end: 24, + declaration: { + type: 'VariableDeclaration', + start: 7, + end: 24, + declarations: [ + { + type: 'VariableDeclarator', + start: 13, + end: 23, + id: { type: 'Identifier', start: 13, end: 18, name: 'value' }, + init: { type: 'Literal', start: 21, end: 23, value: 42, raw: '42' } + } + ], + kind: 'const' + }, + specifiers: [], + source: null + } + ], + sourceType: 'module' + }, + code: 'export const value = 42;\n', + dynamicallyImportedIdResolutions: [], + dynamicallyImportedIds: [], + dynamicImporters: [], + exportedBindings: { '.': ['value'] }, + exports: ['value'], + hasDefaultExport: false, + moduleSideEffects: true, + implicitlyLoadedAfterOneOf: [], + implicitlyLoadedBefore: [], + importedIdResolutions: [], + importedIds: [], + importers: [ID_MAIN], + isEntry: false, + isExternal: false, + isIncluded: true, + meta: {}, + syntheticNamedExports: false + } + ]); + } } - } + ] } }); diff --git a/test/function/samples/module-side-effects/array/_config.js b/test/function/samples/module-side-effects/array/_config.js index 06eb5a435..0b64a85a9 100644 --- a/test/function/samples/module-side-effects/array/_config.js +++ b/test/function/samples/module-side-effects/array/_config.js @@ -35,22 +35,24 @@ module.exports = defineTest({ 'pluginsideeffects-true-external-listed' ] }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - const moduleSideEffects = JSON.parse(id.split('-')[1]); - if (moduleSideEffects) { - return { id, moduleSideEffects }; + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (!path.isAbsolute(id)) { + const moduleSideEffects = JSON.parse(id.split('-')[1]); + if (moduleSideEffects) { + return { id, moduleSideEffects }; + } + return id; + } + }, + load(id) { + if (!path.isAbsolute(id)) { + return `export const value = '${id}'; sideEffects.push(value);`; } - return id; - } - }, - load(id) { - if (!path.isAbsolute(id)) { - return `export const value = '${id}'; sideEffects.push(value);`; } } - } + ] } }); diff --git a/test/function/samples/module-side-effects/external-false/_config.js b/test/function/samples/module-side-effects/external-false/_config.js index 0b3c82f5f..c1854672f 100644 --- a/test/function/samples/module-side-effects/external-false/_config.js +++ b/test/function/samples/module-side-effects/external-false/_config.js @@ -20,29 +20,31 @@ module.exports = defineTest({ treeshake: { moduleSideEffects: 'no-external' }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - if (id === 'internal') { - return id; + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (!path.isAbsolute(id)) { + if (id === 'internal') { + return id; + } + if (id === 'implicit-external') { + return null; + } + const moduleSideEffects = JSON.parse(id.split('-')[1]); + if (moduleSideEffects) { + return { id, moduleSideEffects, external: true }; + } + return { id, external: true }; } - if (id === 'implicit-external') { - return null; + }, + load(id) { + if (!path.isAbsolute(id)) { + return `export const value = '${id}'; sideEffects.push(value);`; } - const moduleSideEffects = JSON.parse(id.split('-')[1]); - if (moduleSideEffects) { - return { id, moduleSideEffects, external: true }; - } - return { id, external: true }; - } - }, - load(id) { - if (!path.isAbsolute(id)) { - return `export const value = '${id}'; sideEffects.push(value);`; } } - } + ] }, warnings: [ { diff --git a/test/function/samples/module-side-effects/global-false/_config.js b/test/function/samples/module-side-effects/global-false/_config.js index 828d4ffe4..05f8d9f6e 100644 --- a/test/function/samples/module-side-effects/global-false/_config.js +++ b/test/function/samples/module-side-effects/global-false/_config.js @@ -19,22 +19,24 @@ module.exports = defineTest({ treeshake: { moduleSideEffects: false }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - const moduleSideEffects = JSON.parse(id.split('-')[1]); - if (moduleSideEffects) { - return { id, moduleSideEffects }; + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (!path.isAbsolute(id)) { + const moduleSideEffects = JSON.parse(id.split('-')[1]); + if (moduleSideEffects) { + return { id, moduleSideEffects }; + } + return id; + } + }, + load(id) { + if (!path.isAbsolute(id)) { + return `export const value = '${id}'; sideEffects.push(value);`; } - return id; - } - }, - load(id) { - if (!path.isAbsolute(id)) { - return `export const value = '${id}'; sideEffects.push(value);`; } } - } + ] } }); diff --git a/test/function/samples/module-side-effects/load/_config.js b/test/function/samples/module-side-effects/load/_config.js index b31dec74d..8937c4ac8 100644 --- a/test/function/samples/module-side-effects/load/_config.js +++ b/test/function/samples/module-side-effects/load/_config.js @@ -23,22 +23,24 @@ module.exports = defineTest({ return JSON.parse(id.split('-')[1]); } }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - return id; - } - }, - load(id) { - if (!path.isAbsolute(id)) { - const moduleSideEffects = JSON.parse(id.split('-')[3]); - return { - code: `export const value = '${id}'; sideEffects.push(value);`, - moduleSideEffects - }; + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (!path.isAbsolute(id)) { + return id; + } + }, + load(id) { + if (!path.isAbsolute(id)) { + const moduleSideEffects = JSON.parse(id.split('-')[3]); + return { + code: `export const value = '${id}'; sideEffects.push(value);`, + moduleSideEffects + }; + } } } - } + ] } }); diff --git a/test/function/samples/module-side-effects/resolve-id-external/_config.js b/test/function/samples/module-side-effects/resolve-id-external/_config.js index 2e0aa6c06..576cf8386 100644 --- a/test/function/samples/module-side-effects/resolve-id-external/_config.js +++ b/test/function/samples/module-side-effects/resolve-id-external/_config.js @@ -37,48 +37,50 @@ module.exports = defineTest({ return JSON.parse(id.split('-')[3]); } }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - return { - id, - external: true, - moduleSideEffects: JSON.parse(id.split('-')[1]) - }; - } - }, - buildEnd() { - assert.deepStrictEqual( - getObject( - [...this.getModuleIds()] - .filter(id => !path.isAbsolute(id)) - .sort() - .map(id => [id, this.getModuleInfo(id).moduleSideEffects]) - ), - { - 'sideeffects-false-usereffects-false': false, - 'sideeffects-false-usereffects-false-unused-import': false, - 'sideeffects-false-usereffects-false-used-import': false, - 'sideeffects-false-usereffects-true': false, - 'sideeffects-false-usereffects-true-unused-import': false, - 'sideeffects-false-usereffects-true-used-import': false, - 'sideeffects-null-usereffects-false': false, - 'sideeffects-null-usereffects-false-unused-import': false, - 'sideeffects-null-usereffects-false-used-import': false, - 'sideeffects-null-usereffects-true': true, - 'sideeffects-null-usereffects-true-unused-import': true, - 'sideeffects-null-usereffects-true-used-import': true, - 'sideeffects-true-usereffects-false': true, - 'sideeffects-true-usereffects-false-unused-import': true, - 'sideeffects-true-usereffects-false-used-import': true, - 'sideeffects-true-usereffects-true': true, - 'sideeffects-true-usereffects-true-unused-import': true, - 'sideeffects-true-usereffects-true-used-import': true + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (!path.isAbsolute(id)) { + return { + id, + external: true, + moduleSideEffects: JSON.parse(id.split('-')[1]) + }; } - ); + }, + buildEnd() { + assert.deepStrictEqual( + getObject( + [...this.getModuleIds()] + .filter(id => !path.isAbsolute(id)) + .sort() + .map(id => [id, this.getModuleInfo(id).moduleSideEffects]) + ), + { + 'sideeffects-false-usereffects-false': false, + 'sideeffects-false-usereffects-false-unused-import': false, + 'sideeffects-false-usereffects-false-used-import': false, + 'sideeffects-false-usereffects-true': false, + 'sideeffects-false-usereffects-true-unused-import': false, + 'sideeffects-false-usereffects-true-used-import': false, + 'sideeffects-null-usereffects-false': false, + 'sideeffects-null-usereffects-false-unused-import': false, + 'sideeffects-null-usereffects-false-used-import': false, + 'sideeffects-null-usereffects-true': true, + 'sideeffects-null-usereffects-true-unused-import': true, + 'sideeffects-null-usereffects-true-used-import': true, + 'sideeffects-true-usereffects-false': true, + 'sideeffects-true-usereffects-false-unused-import': true, + 'sideeffects-true-usereffects-false-used-import': true, + 'sideeffects-true-usereffects-true': true, + 'sideeffects-true-usereffects-true-unused-import': true, + 'sideeffects-true-usereffects-true-used-import': true + } + ); + } } - } + ] }, warnings(warnings) { for (const warning of warnings) { diff --git a/test/function/samples/module-side-effects/resolve-id/_config.js b/test/function/samples/module-side-effects/resolve-id/_config.js index 7ad65ab72..22fa2af86 100644 --- a/test/function/samples/module-side-effects/resolve-id/_config.js +++ b/test/function/samples/module-side-effects/resolve-id/_config.js @@ -32,58 +32,60 @@ module.exports = defineTest({ return JSON.parse(id.split('-')[3]); } }, - plugins: { - name: 'test-plugin', - resolveId(id) { - if (!path.isAbsolute(id)) { - return { - id, - external: false, - moduleSideEffects: JSON.parse(id.split('-')[1]) - }; - } - }, - load(id) { - if (!path.isAbsolute(id)) { - const sideEffects = JSON.parse(id.split('-')[1]); - const userEffects = JSON.parse(id.split('-')[3]); - assert.strictEqual( - this.getModuleInfo(id).moduleSideEffects, - typeof sideEffects === 'boolean' ? sideEffects : userEffects + plugins: [ + { + name: 'test-plugin', + resolveId(id) { + if (!path.isAbsolute(id)) { + return { + id, + external: false, + moduleSideEffects: JSON.parse(id.split('-')[1]) + }; + } + }, + load(id) { + if (!path.isAbsolute(id)) { + const sideEffects = JSON.parse(id.split('-')[1]); + const userEffects = JSON.parse(id.split('-')[3]); + assert.strictEqual( + this.getModuleInfo(id).moduleSideEffects, + typeof sideEffects === 'boolean' ? sideEffects : userEffects + ); + return `export const value = '${id}'; sideEffects.push(value);`; + } + }, + buildEnd() { + assert.deepStrictEqual( + getObject( + [...this.getModuleIds()] + .filter(id => !path.isAbsolute(id)) + .sort() + .map(id => [id, this.getModuleInfo(id).moduleSideEffects]) + ), + { + 'sideeffects-false-usereffects-false': false, + 'sideeffects-false-usereffects-false-unused-import': false, + 'sideeffects-false-usereffects-false-used-import': false, + 'sideeffects-false-usereffects-true': false, + 'sideeffects-false-usereffects-true-unused-import': false, + 'sideeffects-false-usereffects-true-used-import': false, + 'sideeffects-null-usereffects-false': false, + 'sideeffects-null-usereffects-false-unused-import': false, + 'sideeffects-null-usereffects-false-used-import': false, + 'sideeffects-null-usereffects-true': true, + 'sideeffects-null-usereffects-true-unused-import': true, + 'sideeffects-null-usereffects-true-used-import': true, + 'sideeffects-true-usereffects-false': true, + 'sideeffects-true-usereffects-false-unused-import': true, + 'sideeffects-true-usereffects-false-used-import': true, + 'sideeffects-true-usereffects-true': true, + 'sideeffects-true-usereffects-true-unused-import': true, + 'sideeffects-true-usereffects-true-used-import': true + } ); - return `export const value = '${id}'; sideEffects.push(value);`; } - }, - buildEnd() { - assert.deepStrictEqual( - getObject( - [...this.getModuleIds()] - .filter(id => !path.isAbsolute(id)) - .sort() - .map(id => [id, this.getModuleInfo(id).moduleSideEffects]) - ), - { - 'sideeffects-false-usereffects-false': false, - 'sideeffects-false-usereffects-false-unused-import': false, - 'sideeffects-false-usereffects-false-used-import': false, - 'sideeffects-false-usereffects-true': false, - 'sideeffects-false-usereffects-true-unused-import': false, - 'sideeffects-false-usereffects-true-used-import': false, - 'sideeffects-null-usereffects-false': false, - 'sideeffects-null-usereffects-false-unused-import': false, - 'sideeffects-null-usereffects-false-used-import': false, - 'sideeffects-null-usereffects-true': true, - 'sideeffects-null-usereffects-true-unused-import': true, - 'sideeffects-null-usereffects-true-used-import': true, - 'sideeffects-true-usereffects-false': true, - 'sideeffects-true-usereffects-false-unused-import': true, - 'sideeffects-true-usereffects-false-used-import': true, - 'sideeffects-true-usereffects-true': true, - 'sideeffects-true-usereffects-true-unused-import': true, - 'sideeffects-true-usereffects-true-used-import': true - } - ); } - } + ] } }); diff --git a/test/function/samples/module-side-effects/writable/_config.js b/test/function/samples/module-side-effects/writable/_config.js index 77d0982d9..4bbc2bfba 100644 --- a/test/function/samples/module-side-effects/writable/_config.js +++ b/test/function/samples/module-side-effects/writable/_config.js @@ -18,9 +18,8 @@ module.exports = defineTest({ return { id: POLYFILL_ID, moduleSideEffects: true }; } if (options.isEntry) { - // Determine what the actual entry would have been. We need - // "skipSelf" to avoid an infinite loop. - const resolution = await this.resolve(source, importer, { skipSelf: true, ...options }); + // Determine what the actual entry would have been. + const resolution = await this.resolve(source, importer, options); // If it cannot be resolved or is external, just return it so that // Rollup can display an error if (!resolution || resolution.external) return resolution; diff --git a/test/function/samples/non-function-hook-async/_config.js b/test/function/samples/non-function-hook-async/_config.js index fb9aabc78..615a143ee 100644 --- a/test/function/samples/non-function-hook-async/_config.js +++ b/test/function/samples/non-function-hook-async/_config.js @@ -1,9 +1,7 @@ module.exports = defineTest({ description: 'throws when providing a value for an async function hook', options: { - plugins: { - resolveId: 'value' - } + plugins: [{ resolveId: 'value' }] }, error: { code: 'INVALID_PLUGIN_HOOK', diff --git a/test/function/samples/non-function-hook-sync/_config.js b/test/function/samples/non-function-hook-sync/_config.js index f592d0883..3c7e75e4c 100644 --- a/test/function/samples/non-function-hook-sync/_config.js +++ b/test/function/samples/non-function-hook-sync/_config.js @@ -1,9 +1,11 @@ module.exports = defineTest({ description: 'throws when providing a value for a sync function hook', options: { - plugins: { - outputOptions: 'value' - } + plugins: [ + { + outputOptions: 'value' + } + ] }, generateError: { code: 'INVALID_PLUGIN_HOOK', diff --git a/test/function/samples/optional-catch-binding/_config.js b/test/function/samples/optional-catch-binding/_config.js index 5f8cc6162..5ecb6a927 100644 --- a/test/function/samples/optional-catch-binding/_config.js +++ b/test/function/samples/optional-catch-binding/_config.js @@ -1,7 +1,7 @@ const assert = require('node:assert'); module.exports = defineTest({ - description: 'allows optional catch binding with appropriate acorn settings', + description: 'allows optional catch binding', exports(exports) { assert.equal(exports.foo, true); } diff --git a/test/function/samples/options-async-hook/_config.js b/test/function/samples/options-async-hook/_config.js index 382cb0bac..c9d67b796 100644 --- a/test/function/samples/options-async-hook/_config.js +++ b/test/function/samples/options-async-hook/_config.js @@ -3,6 +3,7 @@ const { promises: fs } = require('node:fs'); module.exports = defineTest({ description: 'resolves promises between sequential options hooks', + verifyAst: false, options: { input: 'super-unused', treeshake: false, diff --git a/test/function/samples/options-hook/_config.js b/test/function/samples/options-hook/_config.js index 4eba7691f..72badede7 100644 --- a/test/function/samples/options-hook/_config.js +++ b/test/function/samples/options-hook/_config.js @@ -2,54 +2,49 @@ const assert = require('node:assert'); module.exports = defineTest({ description: 'allows to read and modify options in the options hook', + verifyAst: false, options: { input: 'unused', treeshake: false, - plugins: { - name: 'test-plugin', - buildStart(options) { - assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { - acorn: { - ecmaVersion: 'latest', - sourceType: 'module' - }, - acornInjectPlugins: [null], - context: 'undefined', - experimentalCacheExpiry: 10, - experimentalLogSideEffects: false, - input: ['used'], - logLevel: 'info', - makeAbsoluteExternalsRelative: 'ifRelativeSource', - maxParallelFileOps: 20, - maxParallelFileReads: 20, - perf: false, - plugins: [ - { - name: 'test-plugin' - } - ], - preserveEntrySignatures: 'exports-only', - preserveSymlinks: false, - shimMissingExports: false, - strictDeprecations: true, - treeshake: false - }); - assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); - assert.strictEqual(this.meta.watchMode, false); - }, - options(options) { - assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { - input: 'unused', - plugins: { - name: 'test-plugin' - }, - strictDeprecations: true, - treeshake: false - }); - assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); - assert.strictEqual(this.meta.watchMode, false); - return { ...options, input: 'used' }; + plugins: [ + { + name: 'test-plugin', + buildStart(options) { + assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { + context: 'undefined', + experimentalCacheExpiry: 10, + experimentalLogSideEffects: false, + input: ['used'], + logLevel: 'info', + makeAbsoluteExternalsRelative: 'ifRelativeSource', + maxParallelFileOps: 20, + perf: false, + plugins: [ + { + name: 'test-plugin' + } + ], + preserveEntrySignatures: 'exports-only', + preserveSymlinks: false, + shimMissingExports: false, + strictDeprecations: true, + treeshake: false + }); + assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); + assert.strictEqual(this.meta.watchMode, false); + }, + options(options) { + assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { + input: 'unused', + plugins: [{ name: 'test-plugin' }], + strictDeprecations: true, + treeshake: false + }); + assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); + assert.strictEqual(this.meta.watchMode, false); + return { ...options, input: 'used' }; + } } - } + ] } }); diff --git a/test/function/samples/options-in-renderstart/_config.js b/test/function/samples/options-in-renderstart/_config.js index 5ffe74bfa..1e4c7b38b 100644 --- a/test/function/samples/options-in-renderstart/_config.js +++ b/test/function/samples/options-in-renderstart/_config.js @@ -5,19 +5,23 @@ module.exports = defineTest({ description: 'makes input and output options available in renderStart', options: { context: 'global', - plugins: { - name: 'input-plugin', - renderStart(outputOptions, inputOptions) { - checkedOptions.push('input-plugin', outputOptions.format, inputOptions.context); - } - }, - output: { - plugins: { - name: 'output-plugin', + plugins: [ + { + name: 'input-plugin', renderStart(outputOptions, inputOptions) { - checkedOptions.push('output-plugin', outputOptions.format, inputOptions.context); + checkedOptions.push('input-plugin', outputOptions.format, inputOptions.context); } } + ], + output: { + plugins: [ + { + name: 'output-plugin', + renderStart(outputOptions, inputOptions) { + checkedOptions.push('output-plugin', outputOptions.format, inputOptions.context); + } + } + ] } }, exports: () => { diff --git a/test/function/samples/output-options-hook/_config.js b/test/function/samples/output-options-hook/_config.js index e967acfc4..2027c44a8 100644 --- a/test/function/samples/output-options-hook/_config.js +++ b/test/function/samples/output-options-hook/_config.js @@ -12,68 +12,68 @@ module.exports = defineTest({ output: { banner: "throw new Error('unused')" }, - plugins: { - name: 'test-plugin', - renderChunk(code, chunk, options) { - assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { - amd: { - define: 'define', - autoId: false, - forceJsExtensionForImports: false - }, - assetFileNames: 'assets/[name]-[hash][extname]', - chunkFileNames: '[name]-[hash].js', - compact: false, - dynamicImportInCjs: true, - entryFileNames: '[name].js', - esModule: 'if-default-prop', - experimentalDeepDynamicChunkOptimization: false, - experimentalMinChunkSize: 1, - exports: 'auto', - extend: false, - externalImportAssertions: true, - externalLiveBindings: true, - format: 'cjs', - freeze: true, - generatedCode: { - arrowFunctions: false, - constBindings: false, - objectShorthand: false, - reservedNamesAsProps: true, - symbols: false - }, - globals: {}, - hoistTransitiveImports: true, - indent: true, - inlineDynamicImports: false, - manualChunks: {}, - minifyInternalExports: false, - namespaceToStringTag: false, - noConflict: false, - paths: {}, - plugins: [], - preferConst: false, - preserveModules: false, - sourcemap: false, - sourcemapExcludeSources: false, - strict: true, - systemNullSetters: true, - validate: false - }); - assert.strictEqual(options.banner(), 'exports.bar = 43;'); - assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); - assert.strictEqual(this.meta.watchMode, false); - }, - outputOptions(options) { - assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { - banner: "throw new Error('unused')", - exports: 'auto', - format: 'cjs' - }); - assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); - assert.strictEqual(this.meta.watchMode, false); - return { ...options, banner: 'exports.bar = 43;' }; + plugins: [ + { + name: 'test-plugin', + renderChunk(code, chunk, options) { + assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { + amd: { + define: 'define', + autoId: false, + forceJsExtensionForImports: false + }, + assetFileNames: 'assets/[name]-[hash][extname]', + chunkFileNames: '[name]-[hash].js', + compact: false, + dynamicImportInCjs: true, + entryFileNames: '[name].js', + esModule: 'if-default-prop', + experimentalMinChunkSize: 1, + exports: 'auto', + extend: false, + externalImportAssertions: true, + externalImportAttributes: true, + externalLiveBindings: true, + format: 'cjs', + freeze: true, + generatedCode: { + arrowFunctions: false, + constBindings: false, + objectShorthand: false, + reservedNamesAsProps: true, + symbols: false + }, + globals: {}, + hoistTransitiveImports: true, + indent: true, + inlineDynamicImports: false, + manualChunks: {}, + minifyInternalExports: false, + noConflict: false, + paths: {}, + plugins: [], + preserveModules: false, + sourcemap: false, + sourcemapExcludeSources: false, + strict: true, + systemNullSetters: true, + validate: false + }); + assert.strictEqual(options.banner(), 'exports.bar = 43;'); + assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); + assert.strictEqual(this.meta.watchMode, false); + }, + outputOptions(options) { + assert.deepStrictEqual(JSON.parse(JSON.stringify(options)), { + banner: "throw new Error('unused')", + exports: 'auto', + format: 'cjs' + }); + assert.ok(/^\d+\.\d+\.\d+/.test(this.meta.rollupVersion)); + assert.strictEqual(this.meta.watchMode, false); + return { ...options, banner: 'exports.bar = 43;' }; + } } - } + ] } }); diff --git a/test/function/samples/parse-return-outside-function/_config.js b/test/function/samples/parse-return-outside-function/_config.js new file mode 100644 index 000000000..a698f1291 --- /dev/null +++ b/test/function/samples/parse-return-outside-function/_config.js @@ -0,0 +1,58 @@ +const assert = require('node:assert'); +const { compareError } = require('../../../utils'); + +module.exports = defineTest({ + description: 'supports parsing return statements outside functions via options', + options: { + plugins: [ + { + name: 'test', + buildStart() { + assert.deepStrictEqual( + this.parse('return foo', { + allowReturnOutsideFunction: true + }), + { + type: 'Program', + start: 0, + end: 10, + body: [ + { + type: 'ReturnStatement', + start: 0, + end: 10, + argument: { type: 'Identifier', start: 7, end: 10, name: 'foo' } + } + ], + sourceType: 'module' + } + ); + let expectedError = null; + try { + this.parse('return foo', { + allowReturnOutsideFunction: false + }); + } catch (error) { + expectedError = error; + } + compareError(expectedError, { + code: 'PARSE_ERROR', + message: 'Return statement is not allowed here', + pos: 0 + }); + expectedError = null; + try { + this.parse('return foo'); + } catch (error) { + expectedError = error; + } + compareError(expectedError, { + code: 'PARSE_ERROR', + message: 'Return statement is not allowed here', + pos: 0 + }); + } + } + ] + } +}); diff --git a/test/function/samples/parse-return-outside-function/main.js b/test/function/samples/parse-return-outside-function/main.js new file mode 100644 index 000000000..69b8f8f79 --- /dev/null +++ b/test/function/samples/parse-return-outside-function/main.js @@ -0,0 +1,13 @@ +let effect = false; + +var b = { + get a() { + effect = true; + } +}; + +function X() {} +X.prototype = b; +new X().a; + +assert.ok(effect); diff --git a/test/function/samples/plugin-cache/anonymous-delete/_config.js b/test/function/samples/plugin-cache/anonymous-delete/_config.js index ce7dbf233..c75a26f99 100644 --- a/test/function/samples/plugin-cache/anonymous-delete/_config.js +++ b/test/function/samples/plugin-cache/anonymous-delete/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'throws for anonymous plugins deleting from the cache', options: { - plugins: { - buildStart() { - this.cache.delete('asdf'); + plugins: [ + { + buildStart() { + this.cache.delete('asdf'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/plugin-cache/anonymous-get/_config.js b/test/function/samples/plugin-cache/anonymous-get/_config.js index 8dbacf0d3..462bb41ae 100644 --- a/test/function/samples/plugin-cache/anonymous-get/_config.js +++ b/test/function/samples/plugin-cache/anonymous-get/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'throws for anonymous plugins reading the cache', options: { - plugins: { - buildStart() { - this.cache.get('asdf'); + plugins: [ + { + buildStart() { + this.cache.get('asdf'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/plugin-cache/anonymous-has/_config.js b/test/function/samples/plugin-cache/anonymous-has/_config.js index ef142eda8..1822b951a 100644 --- a/test/function/samples/plugin-cache/anonymous-has/_config.js +++ b/test/function/samples/plugin-cache/anonymous-has/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'throws for anonymous plugins checking the cache', options: { - plugins: { - buildStart() { - this.cache.has('asdf'); + plugins: [ + { + buildStart() { + this.cache.has('asdf'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/plugin-cache/anonymous-set/_config.js b/test/function/samples/plugin-cache/anonymous-set/_config.js index 5349a5234..8aee27bf0 100644 --- a/test/function/samples/plugin-cache/anonymous-set/_config.js +++ b/test/function/samples/plugin-cache/anonymous-set/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'throws for anonymous plugins adding to the cache', options: { - plugins: { - buildStart() { - this.cache.set('asdf', 'asdf'); + plugins: [ + { + buildStart() { + this.cache.set('asdf', 'asdf'); + } } - } + ] }, error: { code: 'PLUGIN_ERROR', diff --git a/test/function/samples/plugin-error/load/_config.js b/test/function/samples/plugin-error/load/_config.js index 270ef537b..a5de941a7 100644 --- a/test/function/samples/plugin-error/load/_config.js +++ b/test/function/samples/plugin-error/load/_config.js @@ -16,7 +16,6 @@ module.exports = defineTest({ code: 'PLUGIN_ERROR', plugin: 'test', message: `Could not load ${path.join(__dirname, 'main.js')}: nope`, - hook: 'load', - watchFiles: [path.join(__dirname, 'main.js')] + hook: 'load' } }); diff --git a/test/function/samples/plugin-module-information-no-cache/_config.js b/test/function/samples/plugin-module-information-no-cache/_config.js index 3ea09c6a8..33d04f0da 100644 --- a/test/function/samples/plugin-module-information-no-cache/_config.js +++ b/test/function/samples/plugin-module-information-no-cache/_config.js @@ -32,7 +32,7 @@ module.exports = defineTest({ sourceType: 'module' }; assert.deepStrictEqual(JSON.parse(JSON.stringify(info)), { - assertions: {}, + attributes: {}, ast, code: 'export default 42;\n', dynamicallyImportedIdResolutions: [], diff --git a/test/function/samples/plugin-module-information/_config.js b/test/function/samples/plugin-module-information/_config.js index 9890061d0..4624d7348 100644 --- a/test/function/samples/plugin-module-information/_config.js +++ b/test/function/samples/plugin-module-information/_config.js @@ -13,437 +13,444 @@ module.exports = defineTest({ description: 'provides module information on the plugin context', options: { external: ['path'], - plugins: { - load(id) { - assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(id))), { - assertions: {}, - ast: null, - code: null, - dynamicImporters: [], - exportedBindings: { - '.': [] - }, - exports: [], - hasDefaultExport: null, - dynamicallyImportedIdResolutions: [], - dynamicallyImportedIds: [], - moduleSideEffects: true, - id, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [], - importedIds: [], - importers: [], - isEntry: id === ID_MAIN, - isExternal: false, - isIncluded: null, - meta: {}, - syntheticNamedExports: false - }); - }, - renderStart() { - rendered = true; - assert.deepStrictEqual( - getObject( - [...this.getModuleIds()].map(id => [ - id, - JSON.parse(JSON.stringify(this.getModuleInfo(id))) - ]) - ), - { - [ID_FOO]: { - id: ID_FOO, - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 66, - body: [ - { - type: 'ImportDeclaration', - start: 0, - end: 24, - specifiers: [ - { - type: 'ImportDefaultSpecifier', - start: 7, - end: 11, - local: { type: 'Identifier', start: 7, end: 11, name: 'path' } - } - ], - source: { type: 'Literal', start: 17, end: 23, value: 'path', raw: "'path'" } - }, - { - type: 'ExportNamedDeclaration', - start: 26, - end: 65, - declaration: { - type: 'VariableDeclaration', - start: 33, - end: 65, - declarations: [ + plugins: [ + { + load(id) { + assert.deepStrictEqual(JSON.parse(JSON.stringify(this.getModuleInfo(id))), { + attributes: {}, + ast: null, + code: null, + dynamicImporters: [], + exportedBindings: { + '.': [] + }, + exports: [], + hasDefaultExport: null, + dynamicallyImportedIdResolutions: [], + dynamicallyImportedIds: [], + moduleSideEffects: true, + id, + implicitlyLoadedAfterOneOf: [], + implicitlyLoadedBefore: [], + importedIdResolutions: [], + importedIds: [], + importers: [], + isEntry: id === ID_MAIN, + isExternal: false, + isIncluded: null, + meta: {}, + syntheticNamedExports: false + }); + }, + renderStart() { + rendered = true; + assert.deepStrictEqual( + getObject( + [...this.getModuleIds()].map(id => [ + id, + JSON.parse(JSON.stringify(this.getModuleInfo(id))) + ]) + ), + { + [ID_FOO]: { + id: ID_FOO, + attributes: {}, + ast: { + type: 'Program', + start: 0, + end: 66, + body: [ + { + type: 'ImportDeclaration', + start: 0, + end: 24, + specifiers: [ { - type: 'VariableDeclarator', - start: 39, - end: 64, - id: { type: 'Identifier', start: 39, end: 42, name: 'foo' }, - init: { - type: 'CallExpression', - start: 45, + type: 'ImportDefaultSpecifier', + start: 7, + end: 11, + local: { type: 'Identifier', start: 7, end: 11, name: 'path' } + } + ], + source: { type: 'Literal', start: 17, end: 23, value: 'path', raw: "'path'" } + }, + { + type: 'ExportNamedDeclaration', + start: 26, + end: 65, + declaration: { + type: 'VariableDeclaration', + start: 33, + end: 65, + declarations: [ + { + type: 'VariableDeclarator', + start: 39, end: 64, - callee: { - type: 'MemberExpression', + id: { type: 'Identifier', start: 39, end: 42, name: 'foo' }, + init: { + type: 'CallExpression', start: 45, - end: 57, - object: { type: 'Identifier', start: 45, end: 49, name: 'path' }, - property: { type: 'Identifier', start: 50, end: 57, name: 'resolve' }, - computed: false, + end: 64, + callee: { + type: 'MemberExpression', + start: 45, + end: 57, + object: { type: 'Identifier', start: 45, end: 49, name: 'path' }, + property: { + type: 'Identifier', + start: 50, + end: 57, + name: 'resolve' + }, + computed: false, + optional: false + }, + arguments: [ + { type: 'Literal', start: 58, end: 63, value: 'foo', raw: "'foo'" } + ], optional: false - }, - arguments: [ - { type: 'Literal', start: 58, end: 63, value: 'foo', raw: "'foo'" } - ], - optional: false + } } - } - ], - kind: 'const' - }, - specifiers: [], - source: null + ], + kind: 'const' + }, + specifiers: [], + source: null + } + ], + sourceType: 'module' + }, + code: "import path from 'path';\n\nexport const foo = path.resolve('foo');\n", + dynamicallyImportedIdResolutions: [], + exportedBindings: { '.': ['foo'] }, + exports: ['foo'], + dynamicallyImportedIds: [], + dynamicImporters: [], + hasDefaultExport: false, + moduleSideEffects: true, + implicitlyLoadedAfterOneOf: [], + implicitlyLoadedBefore: [], + importedIdResolutions: [ + { + attributes: {}, + external: true, + id: ID_PATH, + meta: {}, + moduleSideEffects: true, + resolvedBy: 'rollup', + syntheticNamedExports: false } ], - sourceType: 'module' + importedIds: [ID_PATH], + importers: [ID_MAIN, ID_NESTED], + isEntry: false, + isExternal: false, + isIncluded: true, + meta: {}, + syntheticNamedExports: false }, - code: "import path from 'path';\n\nexport const foo = path.resolve('foo');\n", - dynamicallyImportedIdResolutions: [], - exportedBindings: { '.': ['foo'] }, - exports: ['foo'], - dynamicallyImportedIds: [], - dynamicImporters: [], - hasDefaultExport: false, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [ - { - assertions: {}, - external: true, - id: ID_PATH, - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - importedIds: [ID_PATH], - importers: [ID_MAIN, ID_NESTED], - isEntry: false, - isExternal: false, - isIncluded: true, - meta: {}, - syntheticNamedExports: false - }, - [ID_MAIN]: { - id: ID_MAIN, - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 159, - body: [ - { - type: 'ExportNamedDeclaration', - start: 0, - end: 31, - declaration: null, - specifiers: [ - { - type: 'ExportSpecifier', - start: 9, - end: 12, - local: { type: 'Identifier', start: 9, end: 12, name: 'foo' }, - exported: { type: 'Identifier', start: 9, end: 12, name: 'foo' } + [ID_MAIN]: { + id: ID_MAIN, + attributes: {}, + ast: { + type: 'Program', + start: 0, + end: 159, + body: [ + { + type: 'ExportNamedDeclaration', + start: 0, + end: 31, + declaration: null, + specifiers: [ + { + type: 'ExportSpecifier', + start: 9, + end: 12, + local: { type: 'Identifier', start: 9, end: 12, name: 'foo' }, + exported: { type: 'Identifier', start: 9, end: 12, name: 'foo' } + } + ], + source: { + type: 'Literal', + start: 20, + end: 30, + value: './foo.js', + raw: "'./foo.js'" } - ], - source: { - type: 'Literal', - start: 20, - end: 30, - value: './foo.js', - raw: "'./foo.js'" - } - }, - { - type: 'ExportNamedDeclaration', - start: 32, - end: 80, - declaration: { - type: 'VariableDeclaration', - start: 39, + }, + { + type: 'ExportNamedDeclaration', + start: 32, end: 80, - declarations: [ - { - type: 'VariableDeclarator', - start: 45, - end: 79, - id: { type: 'Identifier', start: 45, end: 51, name: 'nested' }, - init: { - type: 'ImportExpression', - start: 54, + declaration: { + type: 'VariableDeclaration', + start: 39, + end: 80, + declarations: [ + { + type: 'VariableDeclarator', + start: 45, end: 79, - source: { - type: 'Literal', - start: 61, - end: 78, - value: './nested/nested', - raw: "'./nested/nested'" + id: { type: 'Identifier', start: 45, end: 51, name: 'nested' }, + init: { + type: 'ImportExpression', + start: 54, + end: 79, + source: { + type: 'Literal', + start: 61, + end: 78, + value: './nested/nested', + raw: "'./nested/nested'" + } } } - } - ], - kind: 'const' + ], + kind: 'const' + }, + specifiers: [], + source: null }, - specifiers: [], - source: null - }, - { - type: 'ExportNamedDeclaration', - start: 81, - end: 116, - declaration: { - type: 'VariableDeclaration', - start: 88, + { + type: 'ExportNamedDeclaration', + start: 81, end: 116, - declarations: [ - { - type: 'VariableDeclarator', - start: 94, - end: 115, - id: { type: 'Identifier', start: 94, end: 98, name: 'path' }, - init: { - type: 'ImportExpression', - start: 101, + declaration: { + type: 'VariableDeclaration', + start: 88, + end: 116, + declarations: [ + { + type: 'VariableDeclarator', + start: 94, end: 115, - source: { - type: 'Literal', - start: 108, - end: 114, - value: 'path', - raw: "'path'" + id: { type: 'Identifier', start: 94, end: 98, name: 'path' }, + init: { + type: 'ImportExpression', + start: 101, + end: 115, + source: { + type: 'Literal', + start: 108, + end: 114, + value: 'path', + raw: "'path'" + } } } - } - ], - kind: 'const' + ], + kind: 'const' + }, + specifiers: [], + source: null }, - specifiers: [], - source: null - }, - { - type: 'ExportNamedDeclaration', - start: 117, - end: 158, - declaration: { - type: 'VariableDeclaration', - start: 124, + { + type: 'ExportNamedDeclaration', + start: 117, end: 158, - declarations: [ - { - type: 'VariableDeclarator', - start: 130, - end: 157, - id: { type: 'Identifier', start: 130, end: 139, name: 'pathAgain' }, - init: { - type: 'ImportExpression', - start: 142, + declaration: { + type: 'VariableDeclaration', + start: 124, + end: 158, + declarations: [ + { + type: 'VariableDeclarator', + start: 130, end: 157, - source: { type: 'Identifier', start: 149, end: 156, name: 'thePath' } + id: { type: 'Identifier', start: 130, end: 139, name: 'pathAgain' }, + init: { + type: 'ImportExpression', + start: 142, + end: 157, + source: { type: 'Identifier', start: 149, end: 156, name: 'thePath' } + } } - } - ], - kind: 'const' - }, - specifiers: [], - source: null + ], + kind: 'const' + }, + specifiers: [], + source: null + } + ], + sourceType: 'module' + }, + code: "export { foo } from './foo.js';\nexport const nested = import('./nested/nested');\nexport const path = import('path');\nexport const pathAgain = import(thePath);\n", + dynamicallyImportedIdResolutions: [ + { + attributes: {}, + external: false, + id: ID_NESTED, + meta: {}, + moduleSideEffects: true, + resolvedBy: 'rollup', + syntheticNamedExports: false + }, + { + attributes: {}, + external: true, + id: ID_PATH, + meta: {}, + moduleSideEffects: true, + resolvedBy: 'rollup', + syntheticNamedExports: false } ], - sourceType: 'module' - }, - code: "export { foo } from './foo.js';\nexport const nested = import('./nested/nested');\nexport const path = import('path');\nexport const pathAgain = import(thePath);\n", - dynamicallyImportedIdResolutions: [ - { - assertions: {}, - external: false, - id: ID_NESTED, - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false + dynamicallyImportedIds: [ID_NESTED, ID_PATH], + dynamicImporters: [], + exportedBindings: { + '.': ['nested', 'path', 'pathAgain'], + './foo.js': ['foo'] }, - { - assertions: {}, - external: true, - id: ID_PATH, - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - dynamicallyImportedIds: [ID_NESTED, ID_PATH], - dynamicImporters: [], - exportedBindings: { - '.': ['nested', 'path', 'pathAgain'], - './foo.js': ['foo'] - }, - exports: ['nested', 'path', 'pathAgain', 'foo'], - hasDefaultExport: false, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [ - { - assertions: {}, - external: false, - id: ID_FOO, - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - importedIds: [ID_FOO], - importers: [], - isEntry: true, - isExternal: false, - isIncluded: true, - meta: {}, - syntheticNamedExports: false - }, - [ID_NESTED]: { - id: ID_NESTED, - assertions: {}, - ast: { - type: 'Program', - start: 0, - end: 72, - body: [ + exports: ['nested', 'path', 'pathAgain', 'foo'], + hasDefaultExport: false, + moduleSideEffects: true, + implicitlyLoadedAfterOneOf: [], + implicitlyLoadedBefore: [], + importedIdResolutions: [ { - type: 'ImportDeclaration', - start: 0, - end: 32, - specifiers: [ - { - type: 'ImportSpecifier', - start: 9, - end: 12, - imported: { type: 'Identifier', start: 9, end: 12, name: 'foo' }, - local: { type: 'Identifier', start: 9, end: 12, name: 'foo' } + attributes: {}, + external: false, + id: ID_FOO, + meta: {}, + moduleSideEffects: true, + resolvedBy: 'rollup', + syntheticNamedExports: false + } + ], + importedIds: [ID_FOO], + importers: [], + isEntry: true, + isExternal: false, + isIncluded: true, + meta: {}, + syntheticNamedExports: false + }, + [ID_NESTED]: { + id: ID_NESTED, + attributes: {}, + ast: { + type: 'Program', + start: 0, + end: 72, + body: [ + { + type: 'ImportDeclaration', + start: 0, + end: 32, + specifiers: [ + { + type: 'ImportSpecifier', + start: 9, + end: 12, + imported: { type: 'Identifier', start: 9, end: 12, name: 'foo' }, + local: { type: 'Identifier', start: 9, end: 12, name: 'foo' } + } + ], + source: { + type: 'Literal', + start: 20, + end: 31, + value: '../foo.js', + raw: "'../foo.js'" } - ], - source: { - type: 'Literal', - start: 20, - end: 31, - value: '../foo.js', - raw: "'../foo.js'" - } - }, - { - type: 'ExportNamedDeclaration', - start: 34, - end: 71, - declaration: { - type: 'VariableDeclaration', - start: 41, + }, + { + type: 'ExportNamedDeclaration', + start: 34, end: 71, - declarations: [ - { - type: 'VariableDeclarator', - start: 47, - end: 70, - id: { type: 'Identifier', start: 47, end: 53, name: 'nested' }, - init: { - type: 'BinaryExpression', - start: 56, + declaration: { + type: 'VariableDeclaration', + start: 41, + end: 71, + declarations: [ + { + type: 'VariableDeclarator', + start: 47, end: 70, - left: { - type: 'Literal', + id: { type: 'Identifier', start: 47, end: 53, name: 'nested' }, + init: { + type: 'BinaryExpression', start: 56, - end: 64, - value: 'nested', - raw: "'nested'" - }, - operator: '+', - right: { type: 'Identifier', start: 67, end: 70, name: 'foo' } + end: 70, + left: { + type: 'Literal', + start: 56, + end: 64, + value: 'nested', + raw: "'nested'" + }, + operator: '+', + right: { type: 'Identifier', start: 67, end: 70, name: 'foo' } + } } - } - ], - kind: 'const' - }, - specifiers: [], - source: null + ], + kind: 'const' + }, + specifiers: [], + source: null + } + ], + sourceType: 'module' + }, + code: "import { foo } from '../foo.js';\n\nexport const nested = 'nested' + foo;\n", + dynamicallyImportedIdResolutions: [], + dynamicallyImportedIds: [], + dynamicImporters: [ID_MAIN], + exports: ['nested'], + exportedBindings: { '.': ['nested'] }, + hasDefaultExport: false, + moduleSideEffects: true, + implicitlyLoadedAfterOneOf: [], + implicitlyLoadedBefore: [], + importedIdResolutions: [ + { + attributes: {}, + external: false, + id: ID_FOO, + meta: {}, + moduleSideEffects: true, + resolvedBy: 'rollup', + syntheticNamedExports: false } ], - sourceType: 'module' + importedIds: [ID_FOO], + importers: [], + isEntry: false, + isExternal: false, + isIncluded: true, + meta: {}, + syntheticNamedExports: false }, - code: "import { foo } from '../foo.js';\n\nexport const nested = 'nested' + foo;\n", - dynamicallyImportedIdResolutions: [], - dynamicallyImportedIds: [], - dynamicImporters: [ID_MAIN], - exports: ['nested'], - exportedBindings: { '.': ['nested'] }, - hasDefaultExport: false, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [ - { - assertions: {}, - external: false, - id: ID_FOO, - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - } - ], - importedIds: [ID_FOO], - importers: [], - isEntry: false, - isExternal: false, - isIncluded: true, - meta: {}, - syntheticNamedExports: false - }, - [ID_PATH]: { - id: ID_PATH, - assertions: {}, - ast: null, - code: null, - dynamicallyImportedIdResolutions: [], - dynamicallyImportedIds: [], - dynamicImporters: [ID_MAIN], - exportedBindings: null, - exports: null, - hasDefaultExport: null, - moduleSideEffects: true, - implicitlyLoadedAfterOneOf: [], - implicitlyLoadedBefore: [], - importedIdResolutions: [], - importedIds: [], - importers: [ID_FOO], - isEntry: false, - isExternal: true, - isIncluded: null, - meta: {}, - syntheticNamedExports: false + [ID_PATH]: { + id: ID_PATH, + attributes: {}, + ast: null, + code: null, + dynamicallyImportedIdResolutions: [], + dynamicallyImportedIds: [], + dynamicImporters: [ID_MAIN], + exportedBindings: null, + exports: null, + hasDefaultExport: null, + moduleSideEffects: true, + implicitlyLoadedAfterOneOf: [], + implicitlyLoadedBefore: [], + importedIdResolutions: [], + importedIds: [], + importers: [ID_FOO], + isEntry: false, + isExternal: true, + isIncluded: null, + meta: {}, + syntheticNamedExports: false + } } - } - ); + ); + } } - } + ] }, context: { thePath: 'path' diff --git a/test/function/samples/plugin-parse-ast-receives-comments/_config.js b/test/function/samples/plugin-parse-ast-receives-comments/_config.js deleted file mode 100644 index 2b25e4518..000000000 --- a/test/function/samples/plugin-parse-ast-receives-comments/_config.js +++ /dev/null @@ -1,24 +0,0 @@ -const assert = require('node:assert'); - -const comments = []; - -module.exports = defineTest({ - description: 'plugin parse ast receives comments', - options: { - plugins: [ - { - transform(code) { - const ast = this.parse(code, { - onComment(...parameters) { - comments.push(parameters); - } - }); - return { ast, code, map: null }; - } - } - ] - }, - after() { - assert.ok(comments.length > 0); - } -}); diff --git a/test/function/samples/plugin-parse-ast-receives-comments/main.js b/test/function/samples/plugin-parse-ast-receives-comments/main.js deleted file mode 100644 index fbc4f47c0..000000000 --- a/test/function/samples/plugin-parse-ast-receives-comments/main.js +++ /dev/null @@ -1,4 +0,0 @@ -/* this is a comment */ -export function main() { - // this is also a comment -} \ No newline at end of file diff --git a/test/function/samples/preload-cyclic-module/_config.js b/test/function/samples/preload-cyclic-module/_config.js index 9d666acce..c0e87e353 100644 --- a/test/function/samples/preload-cyclic-module/_config.js +++ b/test/function/samples/preload-cyclic-module/_config.js @@ -18,7 +18,7 @@ module.exports = defineTest({ if (!importer || importer.endsWith('?proxy')) { return null; } - const resolution = await this.resolve(source, importer, { skipSelf: true, ...options }); + const resolution = await this.resolve(source, importer, options); if (resolution && !resolution.external) { const moduleInfo = await this.load(resolution); if (moduleInfo.code.includes('/* use proxy */')) { diff --git a/test/function/samples/preload-module/_config.js b/test/function/samples/preload-module/_config.js index 9cc42cc09..262754e4e 100644 --- a/test/function/samples/preload-module/_config.js +++ b/test/function/samples/preload-module/_config.js @@ -25,14 +25,14 @@ module.exports = defineTest({ }, async resolveId(source, importer, options) { if (source.endsWith('main.js')) { - const resolvedId = await this.resolve(source, importer, { skipSelf: true, ...options }); + const resolvedId = await this.resolve(source, importer, options); const { ast, ...moduleInfo } = await this.load({ ...resolvedId, meta: { testPlugin: 'first' } }); assert.deepStrictEqual(moduleInfo, { id: ID_MAIN, - assertions: {}, + attributes: {}, code: "import './dep';\nassert.ok(true);\n", dynamicImporters: [], exportedBindings: { @@ -75,7 +75,7 @@ module.exports = defineTest({ }); assert.deepStrictEqual(moduleInfo, { id: ID_DEP, - assertions: {}, + attributes: {}, code: 'assert.ok(true);\n', dynamicImporters: [], exportedBindings: { diff --git a/test/function/samples/preserve-symlink/_config.js b/test/function/samples/preserve-symlink/_config.js index cdc08ad12..60c64eb5a 100644 --- a/test/function/samples/preserve-symlink/_config.js +++ b/test/function/samples/preserve-symlink/_config.js @@ -1,5 +1,5 @@ module.exports = defineTest({ - skip: process.platform === 'win32', + skipIfWindows: true, description: 'follows symlinks', options: { preserveSymlinks: true diff --git a/test/function/samples/prevent-context-resolve-loop/_config.js b/test/function/samples/prevent-context-resolve-loop/_config.js index 50259501c..9fad63d38 100644 --- a/test/function/samples/prevent-context-resolve-loop/_config.js +++ b/test/function/samples/prevent-context-resolve-loop/_config.js @@ -15,7 +15,7 @@ module.exports = defineTest({ { name: 'first', async resolveId(source, importer) { - const { id } = await this.resolve(source, importer, { skipSelf: true }); + const { id } = await this.resolve(source, importer); if (id === ID_OTHER_1) { return ID_OTHER_4; } @@ -24,19 +24,13 @@ module.exports = defineTest({ { name: 'second', async resolveId(source, importer) { - const { id } = await this.resolve(source, importer, { skipSelf: true }); + const { id } = await this.resolve(source, importer); if (id === ID_OTHER_2) { // To make this more interesting // The first plugin should resolve everything to 4 - assert.strictEqual( - (await this.resolve('./other1', importer, { skipSelf: true })).id, - ID_OTHER_4 - ); + assert.strictEqual((await this.resolve('./other1', importer)).id, ID_OTHER_4); // The second file should however be resolved by core as this plugin is out of the loop - assert.strictEqual( - (await this.resolve(source, ID_OTHER_1, { skipSelf: true })).id, - ID_OTHER_2 - ); + assert.strictEqual((await this.resolve(source, ID_OTHER_1)).id, ID_OTHER_2); return ID_OTHER_4; } } diff --git a/test/function/samples/reassign-import-fails/_config.js b/test/function/samples/reassign-import-fails/_config.js index 71ca9a3ee..88553b160 100644 --- a/test/function/samples/reassign-import-fails/_config.js +++ b/test/function/samples/reassign-import-fails/_config.js @@ -1,11 +1,15 @@ const path = require('node:path'); const ID_MAIN = path.join(__dirname, 'main.js'); -const ID_FOO = path.join(__dirname, 'foo.js'); module.exports = defineTest({ description: 'disallows assignments to imported bindings', error: { - code: 'ILLEGAL_REASSIGNMENT', + code: 'PARSE_ERROR', + cause: { + code: 'PARSE_ERROR', + message: 'cannot reassign to an imported binding', + pos: 113 + }, id: ID_MAIN, pos: 113, loc: { @@ -18,8 +22,8 @@ module.exports = defineTest({ 7: 8: x = 10; ^`, - watchFiles: [ID_FOO, ID_MAIN], - message: 'Illegal reassignment of import "x" in "main.js".' + watchFiles: [ID_MAIN], + message: 'cannot reassign to an imported binding' } }); diff --git a/test/function/samples/reassign-import-fails/foo.js b/test/function/samples/reassign-import-fails/foo.js deleted file mode 100644 index 35ba80666..000000000 --- a/test/function/samples/reassign-import-fails/foo.js +++ /dev/null @@ -1 +0,0 @@ -export var x = 1; diff --git a/test/function/samples/reassign-import-not-at-top-level-fails/_config.js b/test/function/samples/reassign-import-not-at-top-level-fails/_config.js index d26f7c87f..eff76cc8b 100644 --- a/test/function/samples/reassign-import-not-at-top-level-fails/_config.js +++ b/test/function/samples/reassign-import-not-at-top-level-fails/_config.js @@ -1,11 +1,15 @@ const path = require('node:path'); const ID_MAIN = path.join(__dirname, 'main.js'); -const ID_FOO = path.join(__dirname, 'foo.js'); module.exports = defineTest({ description: 'disallows assignments to imported bindings not at the top level', error: { - code: 'ILLEGAL_REASSIGNMENT', + code: 'PARSE_ERROR', + cause: { + code: 'PARSE_ERROR', + message: 'cannot reassign to an imported binding', + pos: 95 + }, id: ID_MAIN, pos: 95, loc: { @@ -19,8 +23,8 @@ module.exports = defineTest({ 7: x = 1; ^ 8: }`, - watchFiles: [ID_FOO, ID_MAIN], - message: 'Illegal reassignment of import "x" in "main.js".' + watchFiles: [ID_MAIN], + message: 'cannot reassign to an imported binding' } }); diff --git a/test/function/samples/reassign-import-not-at-top-level-fails/foo.js b/test/function/samples/reassign-import-not-at-top-level-fails/foo.js deleted file mode 100644 index 35ba80666..000000000 --- a/test/function/samples/reassign-import-not-at-top-level-fails/foo.js +++ /dev/null @@ -1 +0,0 @@ -export var x = 1; diff --git a/test/function/samples/resolve-id-object/_config.js b/test/function/samples/resolve-id-object/_config.js index 0b7d12261..ebb1f5b50 100644 --- a/test/function/samples/resolve-id-object/_config.js +++ b/test/function/samples/resolve-id-object/_config.js @@ -3,22 +3,24 @@ const path = require('node:path'); module.exports = defineTest({ description: 'allows resolving an id with an object', options: { - plugins: { - resolveId(importee) { - const fooId = path.join(__dirname, 'foo.js'); - switch (importee) { - case 'internal1': { - return { id: fooId }; - } - case 'internal2': { - return { id: fooId, external: false }; - } - case 'external': { - return { id: 'my-external', external: true }; + plugins: [ + { + resolveId(importee) { + const fooId = path.join(__dirname, 'foo.js'); + switch (importee) { + case 'internal1': { + return { id: fooId }; + } + case 'internal2': { + return { id: fooId, external: false }; + } + case 'external': { + return { id: 'my-external', external: true }; + } } } } - } + ] }, context: { require(id) { diff --git a/test/function/samples/resolve-relative-external-id/_config.js b/test/function/samples/resolve-relative-external-id/_config.js index c56c40537..07a900195 100644 --- a/test/function/samples/resolve-relative-external-id/_config.js +++ b/test/function/samples/resolve-relative-external-id/_config.js @@ -5,30 +5,32 @@ module.exports = defineTest({ description: 'resolves relative external ids', options: { external: [path.join(__dirname, 'external.js'), path.join(__dirname, 'nested', 'external.js')], - plugins: { - async buildStart() { - assert.deepStrictEqual(await this.resolve('./external.js'), { - assertions: {}, - external: true, - id: path.join(__dirname, 'external.js'), - meta: {}, - moduleSideEffects: true, - resolvedBy: 'rollup', - syntheticNamedExports: false - }); - assert.deepStrictEqual( - await this.resolve('./external.js', path.join(__dirname, 'nested', 'some-file.js')), - { - assertions: {}, + plugins: [ + { + async buildStart() { + assert.deepStrictEqual(await this.resolve('./external.js'), { + attributes: {}, external: true, - id: path.join(__dirname, 'nested', 'external.js'), + id: path.join(__dirname, 'external.js'), meta: {}, moduleSideEffects: true, resolvedBy: 'rollup', syntheticNamedExports: false - } - ); + }); + assert.deepStrictEqual( + await this.resolve('./external.js', path.join(__dirname, 'nested', 'some-file.js')), + { + attributes: {}, + external: true, + id: path.join(__dirname, 'nested', 'external.js'), + meta: {}, + moduleSideEffects: true, + resolvedBy: 'rollup', + syntheticNamedExports: false + } + ); + } } - } + ] } }); diff --git a/test/function/samples/reuse-resolve-meta/_config.js b/test/function/samples/reuse-resolve-meta/_config.js index 18abd3c77..f402fae46 100644 --- a/test/function/samples/reuse-resolve-meta/_config.js +++ b/test/function/samples/reuse-resolve-meta/_config.js @@ -10,7 +10,7 @@ module.exports = defineTest({ plugins: [ { async resolveId(source, importer) { - const { id } = await this.resolve(source, importer, { skipSelf: true }); + const { id } = await this.resolve(source, importer); return { id, meta }; }, transform(code) { diff --git a/test/function/samples/side-effect-free-module-function/_config.js b/test/function/samples/side-effect-free-module-function/_config.js index 827d480db..d354e3143 100644 --- a/test/function/samples/side-effect-free-module-function/_config.js +++ b/test/function/samples/side-effect-free-module-function/_config.js @@ -2,10 +2,12 @@ module.exports = defineTest({ description: 'correctly include functions with side effects from side-effect-free modules (#3942)', options: { - plugins: { - transform() { - return { moduleSideEffects: false }; + plugins: [ + { + transform() { + return { moduleSideEffects: false }; + } } - } + ] } }); diff --git a/test/function/samples/strip-bom/_config.js b/test/function/samples/strip-bom/_config.js new file mode 100644 index 000000000..9aaa60289 --- /dev/null +++ b/test/function/samples/strip-bom/_config.js @@ -0,0 +1,3 @@ +module.exports = defineTest({ + description: 'Works correctly with BOM files.' +}); diff --git a/test/function/samples/strip-bom/main.js b/test/function/samples/strip-bom/main.js new file mode 100644 index 000000000..15253645c --- /dev/null +++ b/test/function/samples/strip-bom/main.js @@ -0,0 +1 @@ +export const msg = 'foo'; diff --git a/test/function/samples/symlink/_config.js b/test/function/samples/symlink/_config.js index 39859d6f1..65f9bbbb2 100644 --- a/test/function/samples/symlink/_config.js +++ b/test/function/samples/symlink/_config.js @@ -1,4 +1,4 @@ module.exports = defineTest({ - skip: process.platform === 'win32', + skipIfWindows: true, description: 'follows symlinks' }); diff --git a/test/function/samples/synthetic-named-exports/synthetic-named-export-as-default/_config.js b/test/function/samples/synthetic-named-exports/synthetic-named-export-as-default/_config.js index 3bbcc0207..7de33d901 100644 --- a/test/function/samples/synthetic-named-exports/synthetic-named-export-as-default/_config.js +++ b/test/function/samples/synthetic-named-exports/synthetic-named-export-as-default/_config.js @@ -1,11 +1,13 @@ module.exports = defineTest({ description: 'makes sure default exports of synthetic named exports are snapshots', options: { - plugins: { - name: 'test-plugin', - transform() { - return { syntheticNamedExports: '__synthetic' }; + plugins: [ + { + name: 'test-plugin', + transform() { + return { syntheticNamedExports: '__synthetic' }; + } } - } + ] } }); diff --git a/test/function/samples/transform-empty-string/_config.js b/test/function/samples/transform-empty-string/_config.js index 77af26005..0af89d975 100644 --- a/test/function/samples/transform-empty-string/_config.js +++ b/test/function/samples/transform-empty-string/_config.js @@ -9,13 +9,15 @@ module.exports = defineTest({ assert.deepStrictEqual(sideEffects, ['this happens']); }, options: { - plugins: { - name: 'test-plugin', - transform(code, id) { - if (id.endsWith('transformed.js')) { - return ''; + plugins: [ + { + name: 'test-plugin', + transform(code, id) { + if (id.endsWith('transformed.js')) { + return ''; + } } } - } + ] } }); diff --git a/test/function/samples/transform-without-code-warn-ast/_config.js b/test/function/samples/transform-without-code-warn-ast/_config.js index 891825a0e..405b92e74 100644 --- a/test/function/samples/transform-without-code-warn-ast/_config.js +++ b/test/function/samples/transform-without-code-warn-ast/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'warns when returning a map but no code from a transform hook', options: { - plugins: { - name: 'test-plugin', - transform() { - return { ast: {} }; + plugins: [ + { + name: 'test-plugin', + transform() { + return { ast: {} }; + } } - } + ] }, warnings: [ { diff --git a/test/function/samples/transform-without-code-warn-map/_config.js b/test/function/samples/transform-without-code-warn-map/_config.js index 26221ba80..4b91262e6 100644 --- a/test/function/samples/transform-without-code-warn-map/_config.js +++ b/test/function/samples/transform-without-code-warn-map/_config.js @@ -1,12 +1,14 @@ module.exports = defineTest({ description: 'warns when returning a map but no code from a transform hook', options: { - plugins: { - name: 'test-plugin', - transform() { - return { map: { mappings: '' } }; + plugins: [ + { + name: 'test-plugin', + transform() { + return { map: { mappings: '' } }; + } } - } + ] }, warnings: [ { diff --git a/test/function/samples/transform-without-code/_config.js b/test/function/samples/transform-without-code/_config.js index 7f145702a..71e49ed2f 100644 --- a/test/function/samples/transform-without-code/_config.js +++ b/test/function/samples/transform-without-code/_config.js @@ -7,33 +7,35 @@ module.exports = defineTest({ description: 'allows using the transform hook for annotations only without returning a code property and breaking sourcemaps', options: { - plugins: { - name: 'test-plugin', - transform() { - return { meta: { test: true } }; - }, - async generateBundle(options, bundle) { - const { code, map } = bundle['main.js']; - const line = 3; - const column = 11; - assert.strictEqual(code.split('\n')[line - 1].slice(column, column + 2), '42'); + plugins: [ + { + name: 'test-plugin', + transform() { + return { meta: { test: true } }; + }, + async generateBundle(options, bundle) { + const { code, map } = bundle['main.js']; + const line = 3; + const column = 11; + assert.strictEqual(code.split('\n')[line - 1].slice(column, column + 2), '42'); - const smc = await new SourceMapConsumer(map); - const originalLoc = smc.originalPositionFor({ line, column }); - assert.notStrictEqual(originalLoc.line, null); - const originalCode = readFileSync(path.join(__dirname, 'main.js'), 'utf8'); - assert.strictEqual( - originalCode - .split('\n') - [originalLoc.line - 1].slice(originalLoc.column, originalLoc.column + 2), - '42' - ); + const smc = await new SourceMapConsumer(map); + const originalLoc = smc.originalPositionFor({ line, column }); + assert.notStrictEqual(originalLoc.line, null); + const originalCode = readFileSync(path.join(__dirname, 'main.js'), 'utf8'); + assert.strictEqual( + originalCode + .split('\n') + [originalLoc.line - 1].slice(originalLoc.column, originalLoc.column + 2), + '42' + ); - for (const id of this.getModuleIds()) { - assert.strictEqual(this.getModuleInfo(id).meta.test, true); + for (const id of this.getModuleIds()) { + assert.strictEqual(this.getModuleInfo(id).meta.test, true); + } } } - }, + ], output: { sourcemap: true } diff --git a/test/function/samples/update-expression-of-import-fails/_config.js b/test/function/samples/update-expression-of-import-fails/_config.js index c4a525ab4..06c97549e 100644 --- a/test/function/samples/update-expression-of-import-fails/_config.js +++ b/test/function/samples/update-expression-of-import-fails/_config.js @@ -1,11 +1,15 @@ const path = require('node:path'); const ID_MAIN = path.join(__dirname, 'main.js'); -const ID_FOO = path.join(__dirname, 'foo.js'); module.exports = defineTest({ description: 'disallows updates to imported bindings', error: { - code: 'ILLEGAL_REASSIGNMENT', + code: 'PARSE_ERROR', + cause: { + code: 'PARSE_ERROR', + message: 'cannot reassign to an imported binding', + pos: 28 + }, id: ID_MAIN, pos: 28, loc: { @@ -18,8 +22,8 @@ module.exports = defineTest({ 2: 3: a++; ^`, - watchFiles: [ID_FOO, ID_MAIN], - message: 'Illegal reassignment of import "a" in "main.js".' + watchFiles: [ID_MAIN], + message: 'cannot reassign to an imported binding' } }); diff --git a/test/function/samples/update-expression-of-import-fails/foo.js b/test/function/samples/update-expression-of-import-fails/foo.js deleted file mode 100644 index 7fad5c5de..000000000 --- a/test/function/samples/update-expression-of-import-fails/foo.js +++ /dev/null @@ -1 +0,0 @@ -export var a = 0; diff --git a/test/function/samples/uses-supplied-ast/_config.js b/test/function/samples/uses-supplied-ast/_config.js index 367086d73..6ac87f34c 100644 --- a/test/function/samples/uses-supplied-ast/_config.js +++ b/test/function/samples/uses-supplied-ast/_config.js @@ -22,6 +22,7 @@ modules.foo.ast._ignoredProp = {}; module.exports = defineTest({ description: 'uses supplied AST', + verifyAst: false, options: { plugins: [ { diff --git a/test/function/samples/validate-output/_config.js b/test/function/samples/validate-output/_config.js index 42b7cc5bf..4cb4989a4 100644 --- a/test/function/samples/validate-output/_config.js +++ b/test/function/samples/validate-output/_config.js @@ -11,7 +11,7 @@ module.exports = defineTest({ }, generateError: { code: 'CHUNK_INVALID', - message: 'Chunk "main.js" is not valid JavaScript: Unterminated comment (5:0).', + message: 'Chunk "main.js" is not valid JavaScript: Unterminated block comment.', frame: ` 3: throw new Error('Not executed'); 4: @@ -21,6 +21,7 @@ module.exports = defineTest({ column: 0, file: 'main.js', line: 5 - } + }, + pos: 49 } }); diff --git a/test/function/samples/warn-misplaced-annotations/_config.js b/test/function/samples/warn-misplaced-annotations/_config.js new file mode 100644 index 000000000..8a84d70a3 --- /dev/null +++ b/test/function/samples/warn-misplaced-annotations/_config.js @@ -0,0 +1,63 @@ +const { join } = require('node:path'); +const ID_MAIN = join(__dirname, 'main.js'); + +module.exports = defineTest({ + description: 'warns for misplaced annotations', + warnings: [ + { + code: 'INVALID_ANNOTATION', + id: ID_MAIN, + message: + 'A comment\n\n"/*@__NO_SIDE_EFFECTS__*/"\n\nin "main.js" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.', + url: 'https://rollupjs.org/configuration-options/#no-side-effects', + pos: 45, + loc: { + column: 0, + file: ID_MAIN, + line: 2 + }, + frame: ` + 1: /*@__PURE__*/ const x = () => console.log(); + 2: /*@__NO_SIDE_EFFECTS__*/ const foo = 1, + ^ + 3: bar = () => console.log(); + 4: /*@__NO_SIDE_EFFECTS__*/ assert.ok(true);` + }, + { + code: 'INVALID_ANNOTATION', + id: ID_MAIN, + message: + 'A comment\n\n"/*@__NO_SIDE_EFFECTS__*/"\n\nin "main.js" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.', + url: 'https://rollupjs.org/configuration-options/#no-side-effects', + pos: 113, + loc: { + column: 0, + file: ID_MAIN, + line: 4 + }, + frame: ` + 2: /*@__NO_SIDE_EFFECTS__*/ const foo = 1, + 3: bar = () => console.log(); + 4: /*@__NO_SIDE_EFFECTS__*/ assert.ok(true); + ^` + }, + { + code: 'INVALID_ANNOTATION', + id: ID_MAIN, + message: + 'A comment\n\n"/*@__PURE__*/"\n\nin "main.js" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.', + url: 'https://rollupjs.org/configuration-options/#pure', + pos: 0, + loc: { + column: 0, + file: ID_MAIN, + line: 1 + }, + frame: ` + 1: /*@__PURE__*/ const x = () => console.log(); + ^ + 2: /*@__NO_SIDE_EFFECTS__*/ const foo = 1, + 3: bar = () => console.log();` + } + ] +}); diff --git a/test/function/samples/warn-misplaced-annotations/main.js b/test/function/samples/warn-misplaced-annotations/main.js new file mode 100644 index 000000000..6ca367d28 --- /dev/null +++ b/test/function/samples/warn-misplaced-annotations/main.js @@ -0,0 +1,4 @@ +/*@__PURE__*/ const x = () => console.log(); +/*@__NO_SIDE_EFFECTS__*/ const foo = 1, + bar = () => console.log(); +/*@__NO_SIDE_EFFECTS__*/ assert.ok(true); diff --git a/test/function/samples/warning-low-resolution-location/_config.js b/test/function/samples/warning-low-resolution-location/_config.js index 3c6fc0f4c..885a9df7b 100644 --- a/test/function/samples/warning-low-resolution-location/_config.js +++ b/test/function/samples/warning-low-resolution-location/_config.js @@ -5,16 +5,21 @@ const ID_MAIN = path.join(__dirname, 'main.js'); module.exports = defineTest({ description: 'handles when a low resolution sourcemap is used to report an error', options: { - plugins: { - name: 'test-plugin', - transform() { - // each entry of each line consist of - // [generatedColumn, sourceIndex, sourceLine, sourceColumn]; - // this mapping only maps the first line to itself - const decodedMap = [[[0], [0, 0, 0, 0], [1]]]; - return { code: 'export default this', map: { mappings: encode(decodedMap), sources: [] } }; + plugins: [ + { + name: 'test-plugin', + transform() { + // each entry of each line consist of + // [generatedColumn, sourceIndex, sourceLine, sourceColumn]; + // this mapping only maps the first line to itself + const decodedMap = [[[0], [0, 0, 0, 0], [1]]]; + return { + code: 'export default this', + map: { mappings: encode(decodedMap), sources: [] } + }; + } } - } + ] }, warnings: [ { diff --git a/test/function/samples/warnings-to-string/_config.js b/test/function/samples/warnings-to-string/_config.js index afc8c0dd9..678c9739f 100644 --- a/test/function/samples/warnings-to-string/_config.js +++ b/test/function/samples/warnings-to-string/_config.js @@ -3,12 +3,14 @@ const assert = require('node:assert'); module.exports = defineTest({ description: 'provides a string conversion for warnings', options: { - plugins: { - name: 'test-plugin', - transform(code) { - this.warn('This might be removed', code.indexOf('removed')); + plugins: [ + { + name: 'test-plugin', + transform(code) { + this.warn('This might be removed', code.indexOf('removed')); + } } - } + ] }, warnings(warnings) { assert.deepStrictEqual(warnings.map(String), [ diff --git a/test/hooks/index.js b/test/hooks/index.js index 7c8a4107f..f88f351c2 100644 --- a/test/hooks/index.js +++ b/test/hooks/index.js @@ -173,9 +173,9 @@ describe('hooks', () => { .then(({ output }) => { assert.strictEqual( output[0].code, - `var input = new URL('chunk-f0e7d366.js', import.meta.url).href;\n\nexport { input as default };\n` + `var input = new URL('chunk-6DeDEJ3U.js', import.meta.url).href;\n\nexport { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'chunk-f0e7d366.js'); + assert.strictEqual(output[1].fileName, 'chunk-6DeDEJ3U.js'); assert.strictEqual(output[1].code, `console.log('chunk');\n`); return rollup.rollup({ @@ -198,9 +198,9 @@ describe('hooks', () => { .then(({ output }) => { assert.strictEqual( output[0].code, - `var input = new URL('chunk-f0e7d366.js', import.meta.url).href;\n\nexport { input as default };\n` + `var input = new URL('chunk-6DeDEJ3U.js', import.meta.url).href;\n\nexport { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'chunk-f0e7d366.js'); + assert.strictEqual(output[1].fileName, 'chunk-6DeDEJ3U.js'); assert.strictEqual(output[1].code, `console.log('chunk');\n`); return rollup.rollup({ @@ -220,9 +220,9 @@ describe('hooks', () => { .then(({ output }) => { assert.strictEqual( output[0].code, - `var input = new URL('chunk-f0e7d366.js', import.meta.url).href;\n\nexport { input as default };\n` + `var input = new URL('chunk-6DeDEJ3U.js', import.meta.url).href;\n\nexport { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'chunk-f0e7d366.js'); + assert.strictEqual(output[1].fileName, 'chunk-6DeDEJ3U.js'); assert.strictEqual(output[1].code, `console.log('chunk');\n`); }); }); @@ -280,9 +280,9 @@ describe('hooks', () => { .then(({ output }) => { assert.strictEqual( output[0].code, - `var input = new URL('assets/test-b94d27b9.ext', import.meta.url).href;\n\nexport { input as default };\n` + `var input = new URL('assets/test-x7YVzHWH.ext', import.meta.url).href;\n\nexport { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'assets/test-b94d27b9.ext'); + assert.strictEqual(output[1].fileName, 'assets/test-x7YVzHWH.ext'); assert.strictEqual(output[1].source, 'hello world'); return rollup.rollup({ @@ -305,9 +305,9 @@ describe('hooks', () => { .then(({ output }) => { assert.strictEqual( output[0].code, - `var input = new URL('assets/test-b94d27b9.ext', import.meta.url).href;\n\nexport { input as default };\n` + `var input = new URL('assets/test-x7YVzHWH.ext', import.meta.url).href;\n\nexport { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'assets/test-b94d27b9.ext'); + assert.strictEqual(output[1].fileName, 'assets/test-x7YVzHWH.ext'); assert.strictEqual(output[1].source, 'hello world'); return rollup.rollup({ @@ -327,9 +327,9 @@ describe('hooks', () => { .then(({ output }) => { assert.strictEqual( output[0].code, - `var input = new URL('assets/test-b94d27b9.ext', import.meta.url).href;\n\nexport { input as default };\n` + `var input = new URL('assets/test-x7YVzHWH.ext', import.meta.url).href;\n\nexport { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'assets/test-b94d27b9.ext'); + assert.strictEqual(output[1].fileName, 'assets/test-x7YVzHWH.ext'); assert.strictEqual(output[1].source, 'hello world'); }); }); @@ -375,10 +375,10 @@ describe('hooks', () => { assert.strictEqual( output[0].code, `console.log('imported');\n\n` + - `var input = new URL('assets/test-7d48a582.ext', import.meta.url).href;\n\n` + + `var input = new URL('assets/test--GjEfoLW.ext', import.meta.url).href;\n\n` + `export { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'assets/test-7d48a582.ext'); + assert.strictEqual(output[1].fileName, 'assets/test--GjEfoLW.ext'); assert.strictEqual(output[1].source, 'first run'); return rollup.rollup({ @@ -408,10 +408,10 @@ describe('hooks', () => { assert.strictEqual( output[0].code, `console.log('imported');\n\n` + - `var input = new URL('assets/test-791d43e2.ext', import.meta.url).href;\n\n` + + `var input = new URL('assets/test--NJ9-A8g.ext', import.meta.url).href;\n\n` + `export { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'assets/test-791d43e2.ext'); + assert.strictEqual(output[1].fileName, 'assets/test--NJ9-A8g.ext'); assert.strictEqual(output[1].source, 'second run'); }); }); @@ -446,11 +446,11 @@ describe('hooks', () => { .then(({ output }) => { assert.strictEqual( output[0].code, - `var input = new URL('assets/test-b94d27b9.ext', import.meta.url).href;\n\nexport { input as default };\n` + `var input = new URL('assets/test-x7YVzHWH.ext', import.meta.url).href;\n\nexport { input as default };\n` ); - assert.strictEqual(output[1].fileName, 'assets/test-b94d27b9.ext'); + assert.strictEqual(output[1].fileName, 'assets/test-x7YVzHWH.ext'); assert.strictEqual(output[1].source, 'hello world'); - assert.strictEqual(output[1].fileName, 'assets/test-b94d27b9.ext'); + assert.strictEqual(output[1].fileName, 'assets/test-x7YVzHWH.ext'); assert.strictEqual(output[1].source, 'hello world'); return rollup.rollup({ diff --git a/test/incremental/index.js b/test/incremental/index.js index 304b73e48..fc949c30f 100644 --- a/test/incremental/index.js +++ b/test/incremental/index.js @@ -1,5 +1,4 @@ const assert = require('node:assert'); -const acorn = require('acorn'); /** * @type {import('../../src/rollup/types')} Rollup */ @@ -188,28 +187,6 @@ describe('incremental', () => { }); }); - it('keeps ASTs between runs', () => - rollup - .rollup({ - input: 'entry', - plugins: [plugin] - }) - .then(bundle => { - const asts = {}; - for (const module of bundle.cache.modules) { - asts[module.id] = module.ast; - } - - assert.deepEqual( - asts.entry, - acorn.parse(modules.entry, { sourceType: 'module', ecmaVersion: 2020 }) - ); - assert.deepEqual( - asts.foo, - acorn.parse(modules.foo, { sourceType: 'module', ecmaVersion: 2020 }) - ); - })); - it('recovers from errors', () => { modules.entry = `import foo from 'foo'; import bar from 'bar'; export default foo + bar;`; @@ -264,7 +241,7 @@ describe('incremental', () => { assert.deepEqual(bundle.cache.modules[1].resolvedIds, { foo: { id: 'foo', - assertions: {}, + attributes: {}, external: false, meta: {}, moduleSideEffects: true, @@ -273,7 +250,7 @@ describe('incremental', () => { }, external: { id: 'external', - assertions: {}, + attributes: {}, external: true, meta: {}, moduleSideEffects: true, @@ -361,7 +338,7 @@ describe('incremental', () => { assert.deepStrictEqual(resolvedSources, { __proto__: null, bar: { - assertions: {}, + attributes: {}, external: false, id: 'bar', meta: {}, @@ -383,7 +360,7 @@ describe('incremental', () => { assert.deepStrictEqual(resolvedSources, { __proto__: null, foo: { - assertions: {}, + attributes: {}, external: false, id: 'foo', meta: {}, diff --git a/test/misc/acorn-plugins.js b/test/misc/acorn-plugins.js deleted file mode 100644 index 618c6b3c3..000000000 --- a/test/misc/acorn-plugins.js +++ /dev/null @@ -1,45 +0,0 @@ -const assert = require('node:assert'); -const rollup = require('../../dist/rollup'); -const { executeBundle, loader } = require('../utils.js'); - -describe('acorn plugins', () => { - it('injects plugins passed in acornInjectPlugins', async () => { - let pluginAInjected = false; - let pluginBInjected = false; - - const bundle = await rollup.rollup({ - input: 'x.js', - plugins: [loader({ 'x.js': `export const foo = 42` })], - acornInjectPlugins: [ - function pluginA(Parser) { - assert.equal(typeof Parser.parse, 'function'); - return class extends Parser { - readToken(code) { - pluginAInjected = true; - super.readToken(code); - } - }; - }, - function pluginB(Parser) { - assert.equal(typeof Parser.parse, 'function'); - return class extends Parser { - readToken(code) { - pluginBInjected = true; - super.readToken(code); - } - }; - } - ] - }); - const result = await executeBundle(bundle); - assert.equal(result.foo, 42); - assert( - pluginAInjected, - 'A plugin passed via acornInjectPlugins should inject itself into Acorn.' - ); - assert( - pluginBInjected, - 'A plugin passed via acornInjectPlugins should inject itself into Acorn.' - ); - }); -}); diff --git a/test/misc/bundle-information.js b/test/misc/bundle-information.js index 1b9ae79ff..a30dfd0a6 100644 --- a/test/misc/bundle-information.js +++ b/test/misc/bundle-information.js @@ -28,14 +28,14 @@ describe('The bundle object', () => { .then(({ output }) => { assert.deepEqual( output.map(chunk => chunk.fileName), - ['input1-fffbf648.js', 'input2-ee435193.js', 'generated-shared-4eca6591.js'], + ['input1-e1JxsyY1.js', 'input2-82mPINil.js', 'generated-shared-8B_aVNG6.js'], 'fileName' ); assert.deepEqual( output.map(chunk => chunk.code), [ - `import { u as used, s as shared } from './generated-shared-4eca6591.js';\n\nconsole.log("input1", used, shared);const out = true;\n\nexport { out };\n`, - `import './generated-shared-4eca6591.js';\n\nconsole.log("input2");var input2 = 42;\n\nexport { input2 as default };\n`, + `import { u as used, s as shared } from './generated-shared-8B_aVNG6.js';\n\nconsole.log("input1", used, shared);const out = true;\n\nexport { out };\n`, + `import './generated-shared-8B_aVNG6.js';\n\nconsole.log("input2");var input2 = 42;\n\nexport { input2 as default };\n`, `console.log("shared");const used = "used"; var shared = "stuff";\n\nexport { shared as s, used as u };\n` ], 'code' @@ -62,14 +62,14 @@ describe('The bundle object', () => { ); assert.deepEqual( output.map(chunk => chunk.imports), - [['generated-shared-4eca6591.js'], ['generated-shared-4eca6591.js'], []], + [['generated-shared-8B_aVNG6.js'], ['generated-shared-8B_aVNG6.js'], []], 'imports' ); assert.deepEqual( output.map(chunk => chunk.importedBindings), [ - { 'generated-shared-4eca6591.js': ['u', 's'] }, - { 'generated-shared-4eca6591.js': [] }, + { 'generated-shared-8B_aVNG6.js': ['u', 's'] }, + { 'generated-shared-8B_aVNG6.js': [] }, {} ], 'importedBindings' diff --git a/test/misc/index.js b/test/misc/index.js index 39d3f8846..8950e1f05 100644 --- a/test/misc/index.js +++ b/test/misc/index.js @@ -1,6 +1,6 @@ -require('./acorn-plugins'); require('./bundle-information'); require('./get-log-filter'); +require('./parse-ast'); require('./iife'); require('./in-memory-sourcemaps'); require('./misc'); diff --git a/test/misc/misc.js b/test/misc/misc.js index 76e4d68af..11b22d244 100644 --- a/test/misc/misc.js +++ b/test/misc/misc.js @@ -16,8 +16,6 @@ describe('misc', () => { load: freeze(() => `export default 0;`) } ]), - acornInjectPlugins: freeze([]), - acorn: freeze({}), treeshake: freeze({}) }) ); @@ -111,7 +109,7 @@ describe('misc', () => { assert.equal(warnings.length, 0); assert.deepEqual( output.map(({ fileName }) => fileName), - ['main1.js', 'main2.js', 'dep-9394ae8f.js', 'dyndep-d5d54b59.js'] + ['main1.js', 'main2.js', 'dep-OBdYcLqx.js', 'dyndep-t4Fvao3e.js'] ); }); }); @@ -249,32 +247,6 @@ console.log(x); assert.ok(subsubfeature.code.startsWith("import { fn } from '../../../main'")); }); - it('throws the proper error on max call stack exception', async () => { - const count = 10_000; - let source = ''; - for (let index = 0; index < count; index++) { - source += `if (foo) {`; - } - for (let index = 0; index < count; index++) { - source += '}'; - } - try { - await rollup.rollup({ - input: { - input: 'input' - }, - plugins: [ - loader({ - input: source - }) - ] - }); - } catch (error) { - assert.notDeepStrictEqual(error.message, 'Maximum call stack size exceeded'); - assert.strictEqual(error.name, 'RollupError'); - } - }); - it('supports rendering es after rendering iife with inlined dynamic imports', async () => { const bundle = await rollup.rollup({ input: 'main.js', diff --git a/test/misc/optionList.js b/test/misc/optionList.js index e34a54586..2c507465f 100644 --- a/test/misc/optionList.js +++ b/test/misc/optionList.js @@ -1,6 +1,6 @@ exports.input = - 'acorn, acornInjectPlugins, cache, context, experimentalCacheExpiry, experimentalLogSideEffects, external, inlineDynamicImports, input, logLevel, makeAbsoluteExternalsRelative, manualChunks, maxParallelFileOps, maxParallelFileReads, moduleContext, onLog, onwarn, perf, plugins, preserveEntrySignatures, preserveModules, preserveSymlinks, shimMissingExports, strictDeprecations, treeshake, watch'; + 'cache, context, experimentalCacheExpiry, experimentalLogSideEffects, external, input, logLevel, makeAbsoluteExternalsRelative, maxParallelFileOps, moduleContext, onLog, onwarn, perf, plugins, preserveEntrySignatures, preserveSymlinks, shimMissingExports, strictDeprecations, treeshake, watch'; exports.flags = - 'acorn, acornInjectPlugins, amd, assetFileNames, banner, bundleConfigAsCjs, c, cache, chunkFileNames, compact, config, configPlugin, context, d, dir, dynamicImportFunction, dynamicImportInCjs, e, entryFileNames, environment, esModule, experimentalCacheExpiry, experimentalDeepDynamicChunkOptimization, experimentalLogSideEffects, experimentalMinChunkSize, exports, extend, external, externalImportAssertions, externalLiveBindings, f, failAfterWarnings, file, filterLogs, footer, format, freeze, g, generatedCode, globals, h, hoistTransitiveImports, i, indent, inlineDynamicImports, input, interop, intro, logLevel, m, makeAbsoluteExternalsRelative, manualChunks, maxParallelFileOps, maxParallelFileReads, minifyInternalExports, moduleContext, n, name, namespaceToStringTag, noConflict, o, onLog, onwarn, outro, p, paths, perf, plugin, plugins, preferConst, preserveEntrySignatures, preserveModules, preserveModulesRoot, preserveSymlinks, sanitizeFileName, shimMissingExports, silent, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, sourcemapFileNames, stdin, strict, strictDeprecations, systemNullSetters, treeshake, v, validate, w, waitForBundleInput, watch'; + 'amd, assetFileNames, banner, bundleConfigAsCjs, c, cache, chunkFileNames, compact, config, configPlugin, context, d, dir, dynamicImportInCjs, e, entryFileNames, environment, esModule, experimentalCacheExpiry, experimentalLogSideEffects, experimentalMinChunkSize, exports, extend, external, externalImportAssertions, externalImportAttributes, externalLiveBindings, f, failAfterWarnings, file, filterLogs, footer, format, freeze, g, generatedCode, globals, h, hoistTransitiveImports, i, indent, inlineDynamicImports, input, interop, intro, logLevel, m, makeAbsoluteExternalsRelative, manualChunks, maxParallelFileOps, minifyInternalExports, moduleContext, n, name, noConflict, o, onLog, onwarn, outro, p, paths, perf, plugin, plugins, preserveEntrySignatures, preserveModules, preserveModulesRoot, preserveSymlinks, sanitizeFileName, shimMissingExports, silent, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, sourcemapFileNames, stdin, strict, strictDeprecations, systemNullSetters, treeshake, v, validate, w, waitForBundleInput, watch'; exports.output = - 'amd, assetFileNames, banner, chunkFileNames, compact, dir, dynamicImportFunction, dynamicImportInCjs, entryFileNames, esModule, experimentalDeepDynamicChunkOptimization, experimentalMinChunkSize, exports, extend, externalImportAssertions, externalLiveBindings, file, footer, format, freeze, generatedCode, globals, hoistTransitiveImports, indent, inlineDynamicImports, interop, intro, manualChunks, minifyInternalExports, name, namespaceToStringTag, noConflict, outro, paths, plugins, preferConst, preserveModules, preserveModulesRoot, sanitizeFileName, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, sourcemapFileNames, sourcemapIgnoreList, sourcemapPathTransform, strict, systemNullSetters, validate'; + 'amd, assetFileNames, banner, chunkFileNames, compact, dir, dynamicImportInCjs, entryFileNames, esModule, experimentalMinChunkSize, exports, extend, externalImportAssertions, externalImportAttributes, externalLiveBindings, file, footer, format, freeze, generatedCode, globals, hoistTransitiveImports, indent, inlineDynamicImports, interop, intro, manualChunks, minifyInternalExports, name, noConflict, outro, paths, plugins, preserveModules, preserveModulesRoot, sanitizeFileName, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, sourcemapFileNames, sourcemapIgnoreList, sourcemapPathTransform, strict, systemNullSetters, validate'; diff --git a/test/misc/parse-ast.js b/test/misc/parse-ast.js new file mode 100644 index 000000000..705506017 --- /dev/null +++ b/test/misc/parse-ast.js @@ -0,0 +1,111 @@ +const assert = require('node:assert'); +const { parseAst } = require('../../dist/parseAst'); + +describe('parseAst', () => { + it('parses an AST', async () => { + assert.deepStrictEqual(parseAst('console.log("ok")'), { + type: 'Program', + start: 0, + end: 17, + body: [ + { + type: 'ExpressionStatement', + start: 0, + end: 17, + expression: { + type: 'CallExpression', + start: 0, + end: 17, + arguments: [{ type: 'Literal', start: 12, end: 16, raw: '"ok"', value: 'ok' }], + callee: { + type: 'MemberExpression', + start: 0, + end: 11, + computed: false, + object: { type: 'Identifier', start: 0, end: 7, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 8, end: 11, name: 'log' } + }, + optional: false + } + } + ], + sourceType: 'module' + }); + }); + + it('works as an ES module', async () => { + // eslint-disable-next-line import/no-unresolved + const { parseAst: parseEsm } = await import('../../dist/es/parseAst.js'); + assert.deepStrictEqual(parseEsm('console.log("ok")'), { + type: 'Program', + start: 0, + end: 17, + body: [ + { + type: 'ExpressionStatement', + start: 0, + end: 17, + expression: { + type: 'CallExpression', + start: 0, + end: 17, + arguments: [{ type: 'Literal', start: 12, end: 16, raw: '"ok"', value: 'ok' }], + callee: { + type: 'MemberExpression', + start: 0, + end: 11, + computed: false, + object: { type: 'Identifier', start: 0, end: 7, name: 'console' }, + optional: false, + property: { type: 'Identifier', start: 8, end: 11, name: 'log' } + }, + optional: false + } + } + ], + sourceType: 'module' + }); + }); + + it('throws on parse errors', async () => { + assert.throws(() => parseAst('<=>'), { + name: 'RollupError', + message: 'Expression expected', + code: 'PARSE_ERROR', + pos: 0 + }); + }); + + it('throws on return outside function by default', async () => { + assert.throws(() => parseAst('return 42;'), { + name: 'RollupError', + message: 'Return statement is not allowed here', + code: 'PARSE_ERROR', + pos: 0 + }); + }); + + it('can handle return outside function if enabled', async () => { + assert.deepStrictEqual(parseAst('return 42;', { allowReturnOutsideFunction: true }), { + type: 'Program', + start: 0, + end: 10, + body: [ + { + type: 'ReturnStatement', + start: 0, + end: 10, + argument: { type: 'Literal', start: 7, end: 9, raw: '42', value: 42 } + } + ], + sourceType: 'module' + }); + }); + + it('uses different references for key and value of a shorthand property', async () => { + const { key, value } = parseAst('({ foo });').body[0].expression.properties[0]; + assert.deepStrictEqual(key, value); + assert.ok(key !== value); + }); +}); diff --git a/test/types.d.ts b/test/types.d.ts index f99a15b45..ff98ca6fa 100644 --- a/test/types.d.ts +++ b/test/types.d.ts @@ -169,6 +169,11 @@ export interface TestConfigForm extends TestConfigBase { * Rollup options for bundling. */ options?: RollupOptions; + /** + * Verify that the AST returned by SWC is the same as the one returned by Acorn. + * The default behavior is to verify. + */ + verifyAst?: boolean; } export interface TestConfigFunction extends TestConfigBase { @@ -224,6 +229,11 @@ export interface TestConfigFunction extends TestConfigBase { * Make assertions on the expected warnings. */ warnings?: RollupError[] | ((warnings: RollupError[]) => boolean | void); + /** + * Verify that the AST returned by SWC is the same as the one returned by Acorn. + * The default behavior is to verify. + */ + verifyAst?: boolean; } export interface TestConfigSourcemap extends TestConfigBase { diff --git a/test/utils.js b/test/utils.js index f2fae99d1..d44e2e677 100644 --- a/test/utils.js +++ b/test/utils.js @@ -20,6 +20,8 @@ const { } = require('node:fs'); const { basename, join } = require('node:path'); const { platform, version } = require('node:process'); +const { Parser } = require('acorn'); +const { importAssertions } = require('acorn-import-assertions'); const fixturify = require('fixturify'); if (!globalThis.defineTest) { @@ -37,6 +39,9 @@ exports.wait = function wait(ms) { }; function normaliseError(error) { + if (!error) { + throw new Error(`Expected an error but got ${JSON.stringify(error)}`); + } const clone = { ...error, message: error.message }; delete clone.stack; delete clone.toString; @@ -418,3 +423,57 @@ exports.replaceDirectoryInStringifiedObject = function replaceDirectoryInStringi '**/' ); }; + +const acornParser = Parser.extend(importAssertions); + +exports.verifyAstPlugin = { + name: 'verify-ast', + moduleParsed: ({ ast, code }) => { + const acornAst = acornParser.parse(code, { ecmaVersion: 'latest', sourceType: 'module' }); + assert.deepStrictEqual( + JSON.parse(JSON.stringify(ast, replaceStringifyValues), reviveStringifyValues), + JSON.parse(JSON.stringify(acornAst, replaceStringifyValues), reviveStringifyValues) + ); + } +}; + +const replaceStringifyValues = (key, value) => { + switch (value?.type) { + case 'ImportDeclaration': + case 'ExportNamedDeclaration': + case 'ExportAllDeclaration': { + const { attributes } = value; + if (attributes) { + delete value.attributes; + if (attributes.length > 0) { + value.assertions = attributes; + } + } + break; + } + case 'ImportExpression': { + const { options } = value; + delete value.options; + if (options) { + value.arguments = [options]; + } + } + } + + return key.startsWith('_') + ? undefined + : typeof value == 'bigint' + ? `~BigInt${value.toString()}` + : value instanceof RegExp + ? `~RegExp${JSON.stringify({ flags: value.flags, source: value.source })}` + : value; +}; + +const reviveStringifyValues = (_, value) => + typeof value === 'string' + ? value.startsWith('~BigInt') + ? BigInt(value.slice(7)) + : value.startsWith('~RegExp') + ? new RegExp(JSON.parse(value.slice(7)).source, JSON.parse(value.slice(7)).flags) + : value + : value; diff --git a/test/watch/index.js b/test/watch/index.js index e7b8cf973..10f2516fb 100644 --- a/test/watch/index.js +++ b/test/watch/index.js @@ -524,7 +524,7 @@ describe('rollup.watch', () => { }, 'START', 'BUNDLE_START', - 'ERROR:Unexpected token', + "ERROR:Expected '{', got 'nope'", 'END', () => { atomicWriteFileSync('test/_tmp/input/main.js', 'export default 43;'); @@ -552,7 +552,7 @@ describe('rollup.watch', () => { return sequence(watcher, [ 'START', 'BUNDLE_START', - 'ERROR:Unexpected token', + 'ERROR:Expression expected', 'END', () => { assert.strictEqual(existsSync('../_tmp/output/bundle.js'), false); @@ -671,7 +671,7 @@ describe('rollup.watch', () => { }, 'START', 'BUNDLE_START', - 'ERROR:Unexpected token', + "ERROR:Expected '{', got 'nope'", 'END', () => { unlinkSync('test/_tmp/input/main.js'); @@ -709,7 +709,7 @@ describe('rollup.watch', () => { }, 'START', 'BUNDLE_START', - 'ERROR:Unexpected token', + "ERROR:Expected '{', got 'nope'", 'END', () => { unlinkSync('test/_tmp/input/dep.js'); diff --git a/tsconfig.json b/tsconfig.json index 5a205be52..c9b28c97f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,6 @@ "compilerOptions": { "allowSyntheticDefaultImports": true, "forceConsistentCasingInFileNames": true, - "isolatedModules": true, "module": "ESNext", "moduleResolution": "Node", "noEmitOnError": true, @@ -11,9 +10,9 @@ "resolveJsonModule": true, "skipLibCheck": true, "strict": true, - "target": "ES2020", + "target": "ES2022", "useDefineForClassFields": false }, - "include": ["typings/**/*.d.ts", "src", "cli", "browser", "rollup.config.ts"], + "include": ["typings/**/*.d.ts", "src", "cli", "browser", "rollup.config.ts", "native", "wasm.d.ts"], "exclude": ["dist", "node_modules", "test/typescript", "browser/dist"] } diff --git a/wasm.d.ts b/wasm.d.ts new file mode 100644 index 000000000..cbd5efcac --- /dev/null +++ b/wasm.d.ts @@ -0,0 +1,6 @@ +// eslint-disable-next-line import/no-unresolved +import './wasm/bindings_wasm_bg.wasm'; + +declare module './wasm/bindings_wasm_bg.wasm' { + export default function wasm(): Promise; +} diff --git a/wasm/bindings_wasm.d.ts b/wasm/bindings_wasm.d.ts new file mode 100644 index 000000000..9f50667b5 --- /dev/null +++ b/wasm/bindings_wasm.d.ts @@ -0,0 +1,47 @@ +/* tslint:disable */ +/* eslint-disable */ +/** +* @param {string} code +* @param {boolean} allow_return_outside_function +* @returns {Uint8Array} +*/ +export function parse(code: string, allow_return_outside_function: boolean): Uint8Array; +/** +* @param {Uint8Array} input +* @returns {string} +*/ +export function xxhashBase64Url(input: Uint8Array): string; + +export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; + +export interface InitOutput { + readonly memory: WebAssembly.Memory; + readonly parse: (a: number, b: number, c: number, d: number) => void; + readonly xxhashBase64Url: (a: number, b: number) => void; + readonly __wbindgen_add_to_stack_pointer: (a: number) => number; + readonly __wbindgen_malloc: (a: number, b: number) => number; + readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; + readonly __wbindgen_free: (a: number, b: number, c: number) => void; + readonly __wbindgen_exn_store: (a: number) => void; +} + +export type SyncInitInput = BufferSource | WebAssembly.Module; +/** +* Instantiates the given `module`, which can either be bytes or +* a precompiled `WebAssembly.Module`. +* +* @param {SyncInitInput} module +* +* @returns {InitOutput} +*/ +export function initSync(module: SyncInitInput): InitOutput; + +/** +* If `module_or_path` is {RequestInfo} or {URL}, makes a request and +* for everything else, calls `WebAssembly.instantiate` directly. +* +* @param {InitInput | Promise} module_or_path +* +* @returns {Promise} +*/ +export default function __wbg_init (module_or_path?: InitInput | Promise): Promise; diff --git a/wasm/bindings_wasm_bg.wasm.d.ts b/wasm/bindings_wasm_bg.wasm.d.ts new file mode 100644 index 000000000..7bcafe200 --- /dev/null +++ b/wasm/bindings_wasm_bg.wasm.d.ts @@ -0,0 +1,10 @@ +/* tslint:disable */ +/* eslint-disable */ +export const memory: WebAssembly.Memory; +export function parse(a: number, b: number, c: number, d: number): void; +export function xxhashBase64Url(a: number, b: number): void; +export function __wbindgen_add_to_stack_pointer(a: number): number; +export function __wbindgen_malloc(a: number, b: number): number; +export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number; +export function __wbindgen_free(a: number, b: number, c: number): void; +export function __wbindgen_exn_store(a: number): void;