From 689587d738d6e388a90f2f8272a1cc25e779948b Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sat, 13 Jul 2024 06:40:19 +0200 Subject: [PATCH 1/9] Improve chunk and asset type information in docs (#5572) --- docs/configuration-options/index.md | 89 +++++++++++++++++++---------- docs/plugin-development/index.md | 42 +++++++++++--- 2 files changed, 91 insertions(+), 40 deletions(-) diff --git a/docs/configuration-options/index.md b/docs/configuration-options/index.md index 5742644d6..1004fb65f 100755 --- a/docs/configuration-options/index.md +++ b/docs/configuration-options/index.md @@ -566,11 +566,19 @@ See [`onLog`](#onlog) for more information. ### output.assetFileNames -| | | -| -------: | :-------------------------------------------- | -| Type: | `string\| ((assetInfo: AssetInfo) => string)` | -| CLI: | `--assetFileNames ` | -| Default: | `"assets/[name]-[hash][extname]"` | +| | | +| -------: | :--------------------------------------------------- | +| Type: | `string\| ((assetInfo: PreRenderedAsset) => string)` | +| CLI: | `--assetFileNames ` | +| Default: | `"assets/[name]-[hash][extname]"` | + +```typescript +interface PreRenderedAsset { + name?: string; + source: string | Uint8Array; + type: 'asset'; +} +``` The pattern to use for naming custom emitted assets to include in the build output, or a function that is called per asset to return such a pattern. Patterns support the following placeholders: @@ -579,18 +587,20 @@ The pattern to use for naming custom emitted assets to include in the build outp - `[hash]`: A hash based on the content of the asset. You can also set a specific hash length via e.g. `[hash:10]`. By default, it will create a base-64 hash. If you need a reduced character sets, see [`output.hashCharacters`](#output-hashcharacters) - `[name]`: The file name of the asset excluding any extension. -Forward slashes `/` can be used to place files in sub-directories. When using a function, `assetInfo` is a reduced version of the one in [`generateBundle`](../plugin-development/index.md#generatebundle) without the `fileName`. See also [`output.chunkFileNames`](#output-chunkfilenames), [`output.entryFileNames`](#output-entryfilenames). +Forward slashes `/` can be used to place files in sub-directories. When using a function, `PreRenderedAsset` is a reduced version of the `OutputAsset` type in [`generateBundle`](../plugin-development/index.md#generatebundle) without the `fileName`. See also [`output.chunkFileNames`](#output-chunkfilenames), [`output.entryFileNames`](#output-entryfilenames). ### output.banner/output.footer -| | | -| ----: | :----------------------------------------------------------- | -| Type: | `string \| ((chunk: ChunkInfo) => string\| Promise)` | -| CLI: | `--banner`/`--footer ` | +| | | +| ----: | :--------------------------------------------------------------- | +| Type: | `string \| ((chunk: RenderedChunk) => string\| Promise)` | +| CLI: | `--banner`/`--footer ` | + +See the [`renderChunk`](../plugin-development/index.md#renderchunk) hook for the `RenderedChunk` type. A string to prepend/append to the bundle. You can also supply a function that returns a `Promise` that resolves to a `string` to generate it asynchronously (Note: `banner` and `footer` options will not break sourcemaps). -If you supply a function, `chunk` contains additional information about the chunk using the same `ChunkInfo` type as the [`generateBundle`](../plugin-development/index.md#generatebundle) hook with the following differences: +If you supply a function, `chunk` contains additional information about the chunk using a `RenderedChunk` type that is a reduced version of the `OutputChunk` type used in [`generateBundle`](../plugin-development/index.md#generatebundle) hook with the following differences: - `code` and `map` are not set as the chunk has not been rendered yet. - all referenced chunk file names that would contain hashes will contain hash placeholders instead. This includes `fileName`, `imports`, `importedBindings`, `dynamicImports` and `implicitlyLoadedBefore`. When you use such a placeholder file name or part of it in the code returned from this option, Rollup will replace the placeholder with the actual hash before `generateBundle`, making sure the hash reflects the actual content of the final generated chunk including all referenced file hashes. @@ -616,11 +626,24 @@ See also [`output.intro/output.outro`](#output-intro-output-outro). ### output.chunkFileNames -| | | -| -------: | :--------------------------------------------- | -| Type: | `string \| ((chunkInfo: ChunkInfo) => string)` | -| CLI: | `--chunkFileNames ` | -| Default: | `"[name]-[hash].js"` | +| | | +| -------: | :---------------------------------------------------- | +| Type: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | +| CLI: | `--chunkFileNames ` | +| Default: | `"[name]-[hash].js"` | + +```typescript +interface PreRenderedChunk { + exports: string[]; + facadeModuleId: string | null; + isDynamicEntry: boolean; + isEntry: boolean; + isImplicitEntry: boolean; + moduleIds: string[]; + name: string; + type: 'chunk'; +} +``` The pattern to use for naming shared chunks created when code-splitting, or a function that is called per chunk to return such a pattern. Patterns support the following placeholders: @@ -628,7 +651,7 @@ The pattern to use for naming shared chunks created when code-splitting, or a fu - `[hash]`: A hash based only on the content of the final generated chunk, including transformations in [`renderChunk`](../plugin-development/index.md#renderchunk) and any referenced file hashes. You can also set a specific hash length via e.g. `[hash:10]`. By default, it will create a base-64 hash. If you need a reduced character sets, see [`output.hashCharacters`](#output-hashcharacters) - `[name]`: The name of the chunk. This can be explicitly set via the [`output.manualChunks`](#output-manualchunks) option or when the chunk is created by a plugin via [`this.emitFile`](../plugin-development/index.md#this-emitfile). Otherwise, it will be derived from the chunk contents. -Forward slashes `/` can be used to place files in sub-directories. When using a function, `chunkInfo` is a reduced version of the one in [`generateBundle`](../plugin-development/index.md#generatebundle) without properties that depend on file names and no information about the rendered modules as rendering only happens after file names have been generated. You can however access a list of included `moduleIds`. See also [`output.assetFileNames`](#output-assetfilenames), [`output.entryFileNames`](#output-entryfilenames). +Forward slashes `/` can be used to place files in sub-directories. When using a function, `PreRenderedChunk` is a reduced version of the `OutputChunk` type in [`generateBundle`](../plugin-development/index.md#generatebundle) without properties that depend on file names and no information about the rendered modules as rendering only happens after file names have been generated. You can however access a list of included `moduleIds`. See also [`output.assetFileNames`](#output-assetfilenames), [`output.entryFileNames`](#output-entryfilenames). ### output.compact @@ -692,11 +715,13 @@ Promise.resolve() ### output.entryFileNames -| | | -| -------: | :--------------------------------------------- | -| Type: | `string \| ((chunkInfo: ChunkInfo) => string)` | -| CLI: | `--entryFileNames ` | -| Default: | `"[name].js"` | +| | | +| -------: | :---------------------------------------------------- | +| Type: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | +| CLI: | `--entryFileNames ` | +| Default: | `"[name].js"` | + +See [`output.chunkFileNames`](#output-chunkfilenames) for the `PreRenderedChunk` type. The pattern to use for chunks created from entry points, or a function that is called per entry chunk to return such a pattern. Patterns support the following placeholders: @@ -704,7 +729,7 @@ The pattern to use for chunks created from entry points, or a function that is c - `[hash]`: A hash based only on the content of the final generated entry chunk, including transformations in [`renderChunk`](../plugin-development/index.md#renderchunk) and any referenced file hashes. You can also set a specific hash length via e.g. `[hash:10]`. By default, it will create a base-64 hash. If you need a reduced character sets, see [`output.hashCharacters`](#output-hashcharacters) - `[name]`: The file name (without extension) of the entry point, unless the object form of input was used to define a different name. -Forward slashes `/` can be used to place files in sub-directories. When using a function, `chunkInfo` is a reduced version of the one in [`generateBundle`](../plugin-development/index.md#generatebundle) without properties that depend on file names and no information about the rendered modules as rendering only happens after file names have been generated. You can however access a list of included `moduleIds`. See also [`output.assetFileNames`](#output-assetfilenames), [`output.chunkFileNames`](#output-chunkfilenames). +Forward slashes `/` can be used to place files in sub-directories. When using a function, `PreRenderedChunk` is a reduced version of the `OutputChunk` type in [`generateBundle`](../plugin-development/index.md#generatebundle) without properties that depend on file names and no information about the rendered modules as rendering only happens after file names have been generated. You can however access a list of included `moduleIds`. See also [`output.assetFileNames`](#output-assetfilenames), [`output.chunkFileNames`](#output-chunkfilenames). This pattern will also be used for every file when setting the [`output.preserveModules`](#output-preservemodules) option. Note that in this case, `[name]` will include the relative path from the output root and possibly the original file extension if it was not one of `.js`, `.jsx`, `.mjs`, `.cjs`, `.ts`, `.tsx`, `.mts`, or `.cts`. @@ -1213,10 +1238,10 @@ There are some additional options that have an effect on the generated interop c ### output.intro/output.outro -| | | -| ----: | :----------------------------------------------------------- | -| Type: | `string \| ((chunk: ChunkInfo) => string\| Promise)` | -| CLI: | `--intro`/`--outro ` | +| | | +| ----: | :--------------------------------------------------------------- | +| Type: | `string \| ((chunk: RenderedChunk) => string\| Promise)` | +| CLI: | `--intro`/`--outro ` | Similar to [`output.banner/output.footer`](#output-banner-output-footer), except that the code goes _inside_ any format-specific wrapper. @@ -1565,10 +1590,12 @@ The location of the generated bundle. If this is an absolute path, all the `sour ### output.sourcemapFileNames -| | | -| ----: | :--------------------------------------------- | -| Type: | `string \| ((chunkInfo: ChunkInfo) => string)` | -| CLI: | `--sourcemapFileNames ` | +| | | +| ----: | :---------------------------------------------------- | +| Type: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | +| CLI: | `--sourcemapFileNames ` | + +See [`output.chunkFileNames`](#output-chunkfilenames) for the `PreRenderedChunk` type. The pattern to use for sourcemaps, or a function that is called per sourcemap to return such a pattern. Patterns support the following placeholders: diff --git a/docs/plugin-development/index.md b/docs/plugin-development/index.md index 5831d4d6f..fa4b58219 100644 --- a/docs/plugin-development/index.md +++ b/docs/plugin-development/index.md @@ -835,12 +835,14 @@ Additionally, [`closeBundle`](#closebundle) can be called as the very last hook, | | | | --: | :-- | -| Type: | `(chunkInfo: ChunkInfo) => string` | +| Type: | `(chunkInfo: RenderedChunk) => string` | | Kind: | sync, sequential | | Previous: | [`renderChunk`](#renderchunk) | | Next: | [`renderChunk`](#renderchunk) if there are other chunks that still need to be processed, otherwise [`generateBundle`](#generatebundle) | -Can be used to augment the hash of individual chunks. Called for each Rollup output chunk. Returning a falsy value will not modify the hash. Truthy values will be passed to [`hash.update`](https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_hash_update_data_inputencoding). The `chunkInfo` is a reduced version of the one in [`generateBundle`](#generatebundle) without `code` and `map` and using placeholders for hashes in file names. +See the [`renderChunk`](../plugin-development/index.md#renderchunk) hook for the `RenderedChunk` type. + +Can be used to augment the hash of individual chunks. Called for each Rollup output chunk. Returning a falsy value will not modify the hash. Truthy values will be passed to [`hash.update`](https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_hash_update_data_inputencoding). The `RenderedChunk` type is a reduced version of the `OutputChunk` type in [`generateBundle`](#generatebundle) without `code` and `map` and using placeholders for hashes in file names. The following plugin will invalidate the hash of chunk `foo` with the current timestamp: @@ -864,7 +866,7 @@ function augmentWithDatePlugin() { | | | | --: | :-- | -| Type: | `string \| ((chunk: ChunkInfo) => string)` | +| Type: | `string \| ((chunk: RenderedChunk) => string)` | | Kind: | async, sequential | | Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | | Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | @@ -887,7 +889,7 @@ If a plugin wants to retain resources across builds in watch mode, they can chec | | | | --: | :-- | -| Type: | `string \| ((chunk: ChunkInfo) => string)` | +| Type: | `string \| ((chunk: RenderedChunk) => string)` | | Kind: | async, sequential | | Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | | Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | @@ -959,7 +961,7 @@ Instead, always use [`this.emitFile`](#this-emitfile). | | | | --: | :-- | -| Type: | `string \| ((chunk: ChunkInfo) => string)` | +| Type: | `string \| ((chunk: RenderedChunk) => string)` | | Kind: | async, sequential | | Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | | Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | @@ -981,7 +983,7 @@ Replaces or manipulates the output options object passed to `bundle.generate()` | | | | --: | :-- | -| Type: | `string \| ((chunk: ChunkInfo) => string)` | +| Type: | `string \| ((chunk: RenderedChunk) => string)` | | Kind: | async, sequential | | Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | | Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | @@ -1004,18 +1006,40 @@ type RenderChunkHook = ( options: NormalizedOutputOptions, meta: { chunks: Record } ) => { code: string; map?: SourceMapInput } | string | null; + +interface RenderedChunk { + dynamicImports: string[]; + exports: string[]; + facadeModuleId: string | null; + fileName: string; + implicitlyLoadedBefore: string[]; + importedBindings: { + [imported: string]: string[]; + }; + imports: string[]; + isDynamicEntry: boolean; + isEntry: boolean; + isImplicitEntry: boolean; + moduleIds: string[]; + modules: { + [id: string]: RenderedModule; + }; + name: string; + referencedFiles: string[]; + type: 'chunk'; +} ``` Can be used to transform individual chunks. Called for each Rollup output chunk file. Returning `null` will apply no transformations. If you change code in this hook and want to support source maps, you need to return a `map` describing your changes, see [the section on source code transformations](#source-code-transformations). -`chunk` contains additional information about the chunk using the same `ChunkInfo` type as the [`generateBundle`](#generatebundle) hook with the following differences: +`chunk` contains additional information about the chunk using the same `OutputChunk` type as the [`generateBundle`](#generatebundle) hook with the following differences: - `code` and `map` are not set. Instead, use the `code` parameter of this hook. - all referenced chunk file names that would contain hashes will contain hash placeholders instead. This includes `fileName`, `imports`, `importedBindings`, `dynamicImports` and `implicitlyLoadedBefore`. When you use such a placeholder file name or part of it in the code returned from this hook, Rollup will replace the placeholder with the actual hash before `generateBundle`, making sure the hash reflects the actual content of the final generated chunk including all referenced file hashes. `chunk` is mutable and changes applied in this hook will propagate to other plugins and to the generated bundle. That means if you add or remove imports or exports in this hook, you should update `imports`, `importedBindings` and/or `exports`. -`meta.chunks` contains information about all the chunks Rollup is generating and gives you access to their `ChunkInfo`, again using placeholders for hashes. That means you can explore the entire chunk graph in this hook. +`meta.chunks` contains information about all the chunks Rollup is generating and gives you access to their `RenderedChunk` information, again using placeholders for hashes. That means you can explore the entire chunk graph in this hook. ### renderDynamicImport @@ -1201,7 +1225,7 @@ If the `chunkId` would contain a hash, it will contain a placeholder instead. If | | | | --: | :-- | -| Type: | `(options: OutputOptions, bundle: { [fileName: string]: AssetInfo \| ChunkInfo }) => void` | +| Type: | `(options: OutputOptions, bundle: { [fileName: string]: OutputAsset \| OutputChunk }) => void` | | Kind: | async, parallel | | Previous: | [`generateBundle`](#generatebundle) | | Next: | If it is called, this is the last hook of the output generation phase and may again be followed by [`outputOptions`](#outputoptions) if another output is generated | From db4ecdfbb6001bba6972b286b685af1161b8e7fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 04:54:03 +0000 Subject: [PATCH 2/9] chore(deps): update dependency inquirer to v10 (#5575) * chore(deps): update dependency inquirer to v10 * Fix test and update --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Lukas Taegert-Atkinson --- native.d.ts | 10 +- package-lock.json | 438 +++++++++++++++++++------------------ package.json | 2 +- scripts/prepare-release.js | 1 + 4 files changed, 238 insertions(+), 213 deletions(-) diff --git a/native.d.ts b/native.d.ts index f7ba71468..0085313ac 100644 --- a/native.d.ts +++ b/native.d.ts @@ -3,8 +3,8 @@ /* auto-generated by NAPI-RS */ -export function parse(code: string, allowReturnOutsideFunction: boolean): Buffer -export function parseAsync(code: string, allowReturnOutsideFunction: boolean, signal?: AbortSignal | undefined | null): Promise -export function xxhashBase64Url(input: Uint8Array): string -export function xxhashBase36(input: Uint8Array): string -export function xxhashBase16(input: Uint8Array): string +export declare function parse(code: string, allowReturnOutsideFunction: boolean): Buffer +export declare function parseAsync(code: string, allowReturnOutsideFunction: boolean, signal?: AbortSignal | undefined | null): Promise +export declare function xxhashBase64Url(input: Uint8Array): string +export declare function xxhashBase36(input: Uint8Array): string +export declare function xxhashBase16(input: Uint8Array): string diff --git a/package-lock.json b/package-lock.json index 52a9e8c1e..0e4754c40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,7 @@ "fs-extra": "^11.2.0", "github-api": "^3.4.0", "husky": "^9.0.11", - "inquirer": "^9.3.2", + "inquirer": "^10.0.1", "is-reference": "^3.0.2", "lint-staged": "^15.2.7", "locate-character": "^3.0.0", @@ -1479,6 +1479,102 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@inquirer/checkbox": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.3.10.tgz", + "integrity": "sha512-CTc864M2/523rKc9AglIzAcUCuPXDZENgc5S2KZFVRbnMzpXcYTsUWmbqSeL0XLvtlvEtNevkkVbfVhJpruOyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/figures": "^1.0.3", + "@inquirer/type": "^1.4.0", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.14.tgz", + "integrity": "sha512-nbLSX37b2dGPtKWL3rPuR/5hOuD30S+pqJ/MuFiUEgN6GiMs8UMxiurKAMDzKt6C95ltjupa8zH6+3csXNHWpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/type": "^1.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", + "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.3", + "@inquirer/type": "^1.4.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.14.9", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@types/node": { + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@inquirer/editor": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.14.tgz", + "integrity": "sha512-6nWpoJyVAKwAcv67bkbBmmi3f32xua79fP7TRmNUoR4K+B1GiOBsHO1YdvET/jvC+nTlBZL7puKAKyM7G+Lkzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/type": "^1.4.0", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.14.tgz", + "integrity": "sha512-JcxsLajwPykF2kq6biIUdoOzTQ3LXqb8XMVrWkCprG/pFeU1SsxcSSFbF1T5jJGvvlTVcsE+JdGjbQ8ZRZ82RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/type": "^1.4.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@inquirer/figures": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.3.tgz", @@ -1489,6 +1585,115 @@ "node": ">=18" } }, + "node_modules/@inquirer/input": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.1.tgz", + "integrity": "sha512-Yl1G6h7qWydzrJwqN777geeJVaAFL5Ly83aZlw4xHf8Z/BoTMfKRheyuMaQwOG7LQ4e5nQP7PxXdEg4SzQ+OKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/type": "^1.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.2.tgz", + "integrity": "sha512-GcoK+Phxcln0Qw9e73S5a8B2Ejg3HgSTvNfDegIcS5/BKwUm8t5rejja1l09WXjZM9vrVbRDf9RzWtSUiWVYRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/type": "^1.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.14.tgz", + "integrity": "sha512-sPzOkXLhWJQ96K6nPZFnF8XB8tsDrcCRobd1d3EDz81F+4hp8BbdmsnsQcqZ7oYDIOVM/mWJyIUtJ35TrssJxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/type": "^1.4.0", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.1.2.tgz", + "integrity": "sha512-E+ndnfwtVQtcmPt888Hc/HAxJUHSaA6OIvyvLAQ5BLQv+t20GbYdFSjXeLgb47OpMU+aRsKA/ys+Zoylw3kTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^2.3.10", + "@inquirer/confirm": "^3.1.14", + "@inquirer/editor": "^2.1.14", + "@inquirer/expand": "^2.1.14", + "@inquirer/input": "^2.2.1", + "@inquirer/number": "^1.0.2", + "@inquirer/password": "^2.1.14", + "@inquirer/rawlist": "^2.1.14", + "@inquirer/select": "^2.3.10" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.1.14.tgz", + "integrity": "sha512-pLpEzhKNQ/ugFAFfgCNaXljB+dcCwmXwR1jOxAbVeFIdB3l02E5gjI+h1rb136tq0T8JO6P5KFR1oTeld/wdrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/type": "^1.4.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.3.10.tgz", + "integrity": "sha512-rr7iR0Zj1YFfgM8IUGimPD9Yukd+n/U63CnYT9kdum6DbRXtMxR45rrreP+EA9ixCnShr+W4xj7suRxC1+8t9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.2", + "@inquirer/figures": "^1.0.3", + "@inquirer/type": "^1.4.0", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.4.0.tgz", + "integrity": "sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2664,6 +2869,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "18.18.14", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.14.tgz", @@ -2730,6 +2945,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", @@ -4489,16 +4711,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -5551,19 +5763,6 @@ "node": ">=4" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -7665,24 +7864,19 @@ "license": "ISC" }, "node_modules/inquirer": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.4.tgz", - "integrity": "sha512-Hp6meNSDzp+Oc9JNUUlYsK81dxaPrrBRa7H/s3+yebCDRJe4UNKYSkEUZoIcuKJjNipBLPKsuc7BvO6tLzo/KA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-10.0.1.tgz", + "integrity": "sha512-XgthhRIn0Ci9JdGJpUo2EtpPfaczbooZbGTN+FTzSCyUb7YHJcPPnuSXfeG5903bJMy3OyEoVTQMnvO4Ly5tFg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.3", + "@inquirer/prompts": "^5.1.2", + "@inquirer/type": "^1.3.3", + "@types/mute-stream": "^0.0.4", "ansi-escapes": "^4.3.2", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "mute-stream": "1.0.0", - "ora": "^5.4.1", + "mute-stream": "^1.0.0", "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "rxjs": "^7.8.1" }, "engines": { "node": ">=18" @@ -7916,16 +8110,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -11377,156 +11561,6 @@ "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -14784,16 +14818,6 @@ "wasm-pack": "run.js" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/web-worker": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", diff --git a/package.json b/package.json index 8d2b3074a..3838b4c8e 100644 --- a/package.json +++ b/package.json @@ -168,7 +168,7 @@ "fs-extra": "^11.2.0", "github-api": "^3.4.0", "husky": "^9.0.11", - "inquirer": "^9.3.2", + "inquirer": "^10.0.1", "is-reference": "^3.0.2", "lint-staged": "^15.2.7", "locate-character": "^3.0.0", diff --git a/scripts/prepare-release.js b/scripts/prepare-release.js index 8ea89c0ef..a3d2c573d 100755 --- a/scripts/prepare-release.js +++ b/scripts/prepare-release.js @@ -222,6 +222,7 @@ async function waitForChangelogUpdate(version) { console.log(cyan('You generated the following changelog entry:\n') + changelogEntry); await inquirer.prompt([ { + /** @type {any[]} */ choices: ['ok'], message: `Please edit the changelog or confirm the changelog is acceptable to continue to release "${version}".`, name: 'ok', From 4f37dacecab889d4652e483cf565935b68352633 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 08:28:14 +0200 Subject: [PATCH 3/9] chore(deps): lock file maintenance minor/patch updates (#5576) * chore(deps): lock file maintenance minor/patch updates * Adapt code --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Lukas Taegert-Atkinson --- package-lock.json | 586 +++++++++--------- package.json | 26 +- rust/Cargo.lock | 81 +-- rust/parse_ast/Cargo.toml | 8 +- rust/parse_ast/src/ast_nodes/identifier.rs | 9 +- .../src/ast_nodes/member_expression.rs | 6 +- .../src/ast_nodes/method_definition.rs | 2 +- .../src/ast_nodes/private_identifier.rs | 2 +- rust/parse_ast/src/convert_ast/converter.rs | 4 +- rust/parse_ast/src/lib.rs | 2 +- 10 files changed, 362 insertions(+), 364 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0e4754c40..a833c9b0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,8 +20,8 @@ "@codemirror/language": "^6.10.2", "@codemirror/search": "^6.5.6", "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.28.3", - "@jridgewell/sourcemap-codec": "^1.4.15", + "@codemirror/view": "^6.28.4", + "@jridgewell/sourcemap-codec": "^1.5.0", "@mermaid-js/mermaid-cli": "^10.9.1", "@napi-rs/cli": "^2.18.4", "@rollup/plugin-alias": "^5.1.0", @@ -33,18 +33,18 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@rollup/pluginutils": "^5.1.0", - "@shikijs/vitepress-twoslash": "^1.10.0", + "@shikijs/vitepress-twoslash": "^1.10.3", "@types/eslint": "^8.56.10", "@types/inquirer": "^9.0.7", "@types/mocha": "^10.0.7", "@types/node": "~18.18.14", "@types/semver": "^7.5.8", "@types/yargs-parser": "^21.0.3", - "@typescript-eslint/eslint-plugin": "^7.15.0", - "@typescript-eslint/parser": "^7.15.0", + "@typescript-eslint/eslint-plugin": "^7.16.0", + "@typescript-eslint/parser": "^7.16.0", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", - "acorn": "^8.12.0", + "acorn": "^8.12.1", "acorn-import-assertions": "^1.9.0", "buble": "^0.20.0", "builtin-modules": "^4.0.0", @@ -61,7 +61,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-unicorn": "^54.0.0", - "eslint-plugin-vue": "^9.26.0", + "eslint-plugin-vue": "^9.27.0", "fixturify": "^3.0.0", "flru": "^1.0.2", "fs-extra": "^11.2.0", @@ -72,7 +72,7 @@ "lint-staged": "^15.2.7", "locate-character": "^3.0.0", "magic-string": "^0.30.10", - "mocha": "^10.5.2", + "mocha": "^10.6.0", "nodemon": "^3.1.4", "npm-audit-resolver": "^3.0.0-RC.0", "nyc": "^17.0.0", @@ -81,8 +81,8 @@ "pretty-bytes": "^6.1.1", "pretty-ms": "^9.0.0", "requirejs": "^2.3.6", - "rollup": "^4.18.0", - "rollup-plugin-license": "^3.5.1", + "rollup": "^4.18.1", + "rollup-plugin-license": "^3.5.2", "rollup-plugin-string": "^3.0.0", "semver": "^7.6.2", "shx": "^0.3.4", @@ -93,8 +93,8 @@ "terser": "^5.31.1", "tslib": "^2.6.3", "typescript": "^5.5.3", - "vite": "^5.3.2", - "vitepress": "^1.2.3", + "vite": "^5.3.3", + "vitepress": "^1.3.0", "vue": "^3.4.31", "wasm-pack": "^0.13.0", "yargs-parser": "^21.1.1" @@ -348,9 +348,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.8.tgz", + "integrity": "sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==", "dev": true, "license": "MIT", "engines": { @@ -358,22 +358,22 @@ } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.8.tgz", + "integrity": "sha512-6AWcmZC/MZCO0yKys4uhg5NlxL0ESF3K6IAaoQ+xSXvPyPyxNWRafP+GDbI88Oh68O7QkJgmEtedWPM9U0pZNg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -396,13 +396,13 @@ "license": "MIT" }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.8.tgz", + "integrity": "sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.24.8", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -425,15 +425,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -496,9 +496,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.8.tgz", + "integrity": "sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==", "dev": true, "license": "MIT", "dependencies": { @@ -543,9 +543,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, "license": "MIT", "engines": { @@ -563,9 +563,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "license": "MIT", "engines": { @@ -573,14 +573,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -664,9 +664,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", "dev": true, "license": "MIT", "bin": { @@ -677,9 +677,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", "dev": true, "license": "MIT", "dependencies": { @@ -705,20 +705,20 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", + "@babel/generator": "^7.24.8", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", "@babel/helper-hoist-variables": "^7.24.7", "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -737,13 +737,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.8.tgz", + "integrity": "sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -1484,7 +1484,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.3.10.tgz", "integrity": "sha512-CTc864M2/523rKc9AglIzAcUCuPXDZENgc5S2KZFVRbnMzpXcYTsUWmbqSeL0XLvtlvEtNevkkVbfVhJpruOyQ==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/figures": "^1.0.3", @@ -1501,7 +1500,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.14.tgz", "integrity": "sha512-nbLSX37b2dGPtKWL3rPuR/5hOuD30S+pqJ/MuFiUEgN6GiMs8UMxiurKAMDzKt6C95ltjupa8zH6+3csXNHWpA==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/type": "^1.4.0" @@ -1515,7 +1513,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/figures": "^1.0.3", "@inquirer/type": "^1.4.0", @@ -1540,7 +1537,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } @@ -1550,7 +1546,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.14.tgz", "integrity": "sha512-6nWpoJyVAKwAcv67bkbBmmi3f32xua79fP7TRmNUoR4K+B1GiOBsHO1YdvET/jvC+nTlBZL7puKAKyM7G+Lkzw==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/type": "^1.4.0", @@ -1565,7 +1560,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.14.tgz", "integrity": "sha512-JcxsLajwPykF2kq6biIUdoOzTQ3LXqb8XMVrWkCprG/pFeU1SsxcSSFbF1T5jJGvvlTVcsE+JdGjbQ8ZRZ82RA==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/type": "^1.4.0", @@ -1580,7 +1574,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.3.tgz", "integrity": "sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" } @@ -1590,7 +1583,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.1.tgz", "integrity": "sha512-Yl1G6h7qWydzrJwqN777geeJVaAFL5Ly83aZlw4xHf8Z/BoTMfKRheyuMaQwOG7LQ4e5nQP7PxXdEg4SzQ+OKw==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/type": "^1.4.0" @@ -1604,7 +1596,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.2.tgz", "integrity": "sha512-GcoK+Phxcln0Qw9e73S5a8B2Ejg3HgSTvNfDegIcS5/BKwUm8t5rejja1l09WXjZM9vrVbRDf9RzWtSUiWVYRQ==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/type": "^1.4.0" @@ -1618,7 +1609,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.14.tgz", "integrity": "sha512-sPzOkXLhWJQ96K6nPZFnF8XB8tsDrcCRobd1d3EDz81F+4hp8BbdmsnsQcqZ7oYDIOVM/mWJyIUtJ35TrssJxQ==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/type": "^1.4.0", @@ -1633,7 +1623,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.1.2.tgz", "integrity": "sha512-E+ndnfwtVQtcmPt888Hc/HAxJUHSaA6OIvyvLAQ5BLQv+t20GbYdFSjXeLgb47OpMU+aRsKA/ys+Zoylw3kTVg==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/checkbox": "^2.3.10", "@inquirer/confirm": "^3.1.14", @@ -1654,7 +1643,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.1.14.tgz", "integrity": "sha512-pLpEzhKNQ/ugFAFfgCNaXljB+dcCwmXwR1jOxAbVeFIdB3l02E5gjI+h1rb136tq0T8JO6P5KFR1oTeld/wdrA==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/type": "^1.4.0", @@ -1669,7 +1657,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.3.10.tgz", "integrity": "sha512-rr7iR0Zj1YFfgM8IUGimPD9Yukd+n/U63CnYT9kdum6DbRXtMxR45rrreP+EA9ixCnShr+W4xj7suRxC1+8t9g==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.2", "@inquirer/figures": "^1.0.3", @@ -1686,7 +1673,6 @@ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.4.0.tgz", "integrity": "sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw==", "dev": true, - "license": "MIT", "dependencies": { "mute-stream": "^1.0.0" }, @@ -1948,9 +1934,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, "license": "MIT" }, @@ -1970,6 +1956,7 @@ "resolved": "https://registry.npmjs.org/@korzio/djv-draft-04/-/djv-draft-04-2.0.1.tgz", "integrity": "sha512-MeTVcNsfCIYxK6T7jW1sroC7dBAb4IfLmQe6RoCqlxHN5NFkzNpgdnBPR+/0D2wJDUJHM9s9NQv+ouhxKjvUjg==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/@lezer/common": { @@ -2091,6 +2078,7 @@ "integrity": "sha512-P7nZG0skRVa9lH0OQmFG62CrzOySUiuPbKopjVAj3sXP0m1om9XfIvTp46h+NvlpTyd121JekiXFZj+1pnbm9g==", "deprecated": "this package has been deprecated, use `ci-info` instead", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -2410,9 +2398,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", + "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", "cpu": [ "arm" ], @@ -2424,9 +2412,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", + "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", "cpu": [ "arm64" ], @@ -2438,9 +2426,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", + "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", "cpu": [ "arm64" ], @@ -2452,9 +2440,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", + "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", "cpu": [ "x64" ], @@ -2466,9 +2454,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", + "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", "cpu": [ "arm" ], @@ -2480,9 +2468,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", + "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", "cpu": [ "arm" ], @@ -2494,9 +2482,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", + "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", "cpu": [ "arm64" ], @@ -2508,9 +2496,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", + "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", "cpu": [ "arm64" ], @@ -2522,9 +2510,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", + "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", "cpu": [ "ppc64" ], @@ -2536,9 +2524,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", + "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", "cpu": [ "riscv64" ], @@ -2550,9 +2538,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", + "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", "cpu": [ "s390x" ], @@ -2564,9 +2552,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", + "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", "cpu": [ "x64" ], @@ -2578,9 +2566,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", + "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", "cpu": [ "x64" ], @@ -2592,9 +2580,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", + "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", "cpu": [ "arm64" ], @@ -2606,9 +2594,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", + "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", "cpu": [ "ia32" ], @@ -2620,9 +2608,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", + "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", "cpu": [ "x64" ], @@ -2634,46 +2622,49 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.10.1.tgz", - "integrity": "sha512-qdiJS5a/QGCff7VUFIqd0hDdWly9rDp8lhVmXVrS11aazX8LOTRLHAXkkEeONNsS43EcCd7gax9LLoOz4vlFQA==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.10.3.tgz", + "integrity": "sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4" + } }, "node_modules/@shikijs/transformers": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.10.1.tgz", - "integrity": "sha512-0gLtcFyi6R6zcUkFajUEp1Qiv7lHBSFgOz4tQvS8nFsYCQSLI1/9pM+Me8jEIPXv7XLKAoUjw6InL+Sv+BHw/A==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.10.3.tgz", + "integrity": "sha512-MNjsyye2WHVdxfZUSr5frS97sLGe6G1T+1P41QjyBFJehZphMcr4aBlRLmq6OSPBslYe9byQPVvt/LJCOfxw8Q==", "dev": true, "license": "MIT", "dependencies": { - "shiki": "1.10.1" + "shiki": "1.10.3" } }, "node_modules/@shikijs/twoslash": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.10.1.tgz", - "integrity": "sha512-BtB7TnpZEHFAVhVU9yPLOhWznJ5NFtHX1b8AEr4UXxYBGAqsM2b0VkjAlfJ32gQxVyr121G8q4g0ZT5eV5bi9w==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.10.3.tgz", + "integrity": "sha512-9HlQgvy51jnO46Tcr87A7v6gxlzdKzcpYk15/CQfO48svAslOf+6QYXf0Gao3HWPywOwVj2alMAe0zQhT59y9w==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.10.1", + "@shikijs/core": "1.10.3", "twoslash": "^0.2.9" } }, "node_modules/@shikijs/vitepress-twoslash": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@shikijs/vitepress-twoslash/-/vitepress-twoslash-1.10.1.tgz", - "integrity": "sha512-bBFHGKMGW0ACa8jFjDK2V9sWSh6wh1R1/U5VbVUr0HBm7kLR/H0bbr9RZeD91wKZb9JI3zJRwiNrTCueLuBw8A==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@shikijs/vitepress-twoslash/-/vitepress-twoslash-1.10.3.tgz", + "integrity": "sha512-rTfayHA8J4B0z9J9XspwQRg40m0xYLzBgNRhjBWGVGgfymh3OdM0CpEsqwGEFxGgRmDRYCEpf3jqdBejWMekgQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/twoslash": "1.10.1", + "@shikijs/twoslash": "1.10.3", "floating-vue": "^5.2.2", "mdast-util-from-markdown": "^2.0.1", "mdast-util-gfm": "^3.0.0", "mdast-util-to-hast": "^13.2.0", - "shiki": "1.10.1", + "shiki": "1.10.3", "twoslash": "^0.2.9", "twoslash-vue": "^0.2.9", "vue": "^3.4.31" @@ -2874,7 +2865,6 @@ "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2949,8 +2939,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/yargs-parser": { "version": "21.0.3", @@ -2971,17 +2960,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", - "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", + "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/type-utils": "7.15.0", - "@typescript-eslint/utils": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/type-utils": "7.16.0", + "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3005,16 +2994,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", - "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.0.tgz", + "integrity": "sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4" }, "engines": { @@ -3034,14 +3023,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", + "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0" + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3052,14 +3041,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", - "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", + "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/utils": "7.16.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3080,9 +3069,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", + "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", "dev": true, "license": "MIT", "engines": { @@ -3094,14 +3083,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", + "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3123,16 +3112,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", - "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", + "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0" + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3146,13 +3135,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", + "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/types": "7.16.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -3968,6 +3957,7 @@ "resolved": "https://registry.npmjs.org/audit-resolve-core/-/audit-resolve-core-3.0.0-3.tgz", "integrity": "sha512-37Qkk1EerVIzSF824BytESWeEtUcbAmdWyTGA/MqnHgVzO+PnU9oNqOpZTMst54xLpJci70Jszq/sLogqfvHmQ==", "dev": true, + "license": "Apache 2.0", "dependencies": { "debug": "^4.3.1", "djv": "^2.1.4", @@ -4118,9 +4108,9 @@ "license": "ISC" }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "dev": true, "funding": [ { @@ -4138,10 +4128,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4376,9 +4366,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001640", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", - "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", + "version": "1.0.30001641", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001641.tgz", + "integrity": "sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==", "dev": true, "funding": [ { @@ -4435,8 +4425,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/chokidar": { "version": "3.6.0", @@ -4553,7 +4542,6 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -4637,7 +4625,6 @@ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, - "license": "ISC", "engines": { "node": ">= 12" } @@ -4794,6 +4781,7 @@ "engines": [ "node >= 6.0" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -5759,6 +5747,7 @@ "resolved": "https://registry.npmjs.org/default-shell/-/default-shell-1.0.1.tgz", "integrity": "sha512-/Os8tTMPSriNHCsVj3VLjMZblIl1sIg8EXz3qg7C5K+y9calfTA/qzlfPvCQ+LEgLWmtZ9wCnzE1w+S6TPPFyQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -5878,6 +5867,7 @@ "resolved": "https://registry.npmjs.org/djv/-/djv-2.1.4.tgz", "integrity": "sha512-giDn+BVbtLlwtkvtcsZjbjzpALHB77skiv3FIu6Wp8b5j8BunDcVJYH0cGUaexp6s0Sb7IkquXXjsLBJhXwQpA==", "dev": true, + "license": "MIT", "optionalDependencies": { "@korzio/djv-draft-04": "^2.0.1" } @@ -5896,9 +5886,9 @@ } }, "node_modules/dompurify": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz", - "integrity": "sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", + "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)" }, @@ -5910,9 +5900,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", + "version": "1.4.827", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.827.tgz", + "integrity": "sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==", "dev": true, "license": "ISC" }, @@ -6740,9 +6730,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -6828,7 +6818,6 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -7430,9 +7419,9 @@ "license": "MIT" }, "node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { @@ -7446,9 +7435,6 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -7761,7 +7747,6 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -7868,7 +7853,6 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-10.0.1.tgz", "integrity": "sha512-XgthhRIn0Ci9JdGJpUo2EtpPfaczbooZbGTN+FTzSCyUb7YHJcPPnuSXfeG5903bJMy3OyEoVTQMnvO4Ly5tFg==", "dev": true, - "license": "MIT", "dependencies": { "@inquirer/prompts": "^5.1.2", "@inquirer/type": "^1.3.3", @@ -8167,13 +8151,13 @@ } }, "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-reference": { @@ -8502,17 +8486,14 @@ } }, "node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -8618,7 +8599,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsonlines/-/jsonlines-0.1.1.tgz", "integrity": "sha512-ekDrAGso79Cvf+dtm+mL8OBI2bmAOt3gssYs833De/C9NmIpWDWyUO4zPgB5x2/OhY366dkhgfPMYfwZF7yOZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/katex": { "version": "0.16.11", @@ -9456,6 +9438,7 @@ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.1" }, @@ -9463,15 +9446,6 @@ "node": ">=4" } }, - "node_modules/merge-options/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -11072,6 +11046,7 @@ "resolved": "https://registry.npmjs.org/npm-audit-resolver/-/npm-audit-resolver-3.0.0-RC.0.tgz", "integrity": "sha512-UuVC7HIxGMhkGfj6IcilBO0cbAz/Y1OhRHA49g3ccpyHDy6Bpd4nkPnLe+xuyZmTgUjiac509IIN3YPVdJZ0Hw==", "dev": true, + "license": "Apache 2.0", "dependencies": { "@npmcli/ci-detect": "^3.0.2", "audit-resolve-core": "^3.0.0-3", @@ -11094,6 +11069,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -11109,6 +11085,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11125,6 +11102,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -11136,13 +11114,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/npm-audit-resolver/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11566,7 +11546,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11769,14 +11748,11 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", - "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", @@ -12008,9 +11984,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, "license": "MIT", "dependencies": { @@ -12260,6 +12236,7 @@ "resolved": "https://registry.npmjs.org/read/-/read-2.1.0.tgz", "integrity": "sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==", "dev": true, + "license": "ISC", "dependencies": { "mute-stream": "~1.0.0" }, @@ -12753,9 +12730,9 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", "dev": true, "license": "MIT", "dependencies": { @@ -12769,22 +12746,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", "fsevents": "~2.3.2" } }, @@ -12998,9 +12975,9 @@ "license": "MIT" }, "node_modules/search-insights": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz", - "integrity": "sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.15.0.tgz", + "integrity": "sha512-ch2sPCUDD4sbPQdknVl9ALSi9H7VyoeVbsxznYz6QV55jJ8CI3EtwpO1i84keN4+hF5IeHWIeGvc08530JkVXQ==", "dev": true, "license": "MIT", "peer": true @@ -13167,13 +13144,14 @@ } }, "node_modules/shiki": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.10.1.tgz", - "integrity": "sha512-uafV7WCgN4YYrccH6yxpnps6k38sSTlFRrwc4jycWmhWxJIm9dPrk+XkY1hZ2t0I7jmacMNb15Lf2fspa/Y3lg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.10.3.tgz", + "integrity": "sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.10.1" + "@shikijs/core": "1.10.3", + "@types/hast": "^3.0.4" } }, "node_modules/shx": { @@ -13335,6 +13313,7 @@ "resolved": "https://registry.npmjs.org/spawn-shell/-/spawn-shell-2.1.0.tgz", "integrity": "sha512-mjlYAQbZPHd4YsoHEe+i0Xbp9sJefMKN09JPp80TqrjC5NSuo+y1RG3NBireJlzl1dDV2NIkIfgS6coXtyqN/A==", "dev": true, + "license": "MIT", "dependencies": { "default-shell": "^1.0.1", "merge-options": "~1.0.1", @@ -13349,6 +13328,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^2.0.0" }, @@ -13361,6 +13341,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -13860,9 +13841,9 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.31.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", - "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", + "version": "5.31.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.2.tgz", + "integrity": "sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13978,7 +13959,6 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -14259,7 +14239,8 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", @@ -14640,28 +14621,28 @@ } }, "node_modules/vitepress": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.2.3.tgz", - "integrity": "sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.3.0.tgz", + "integrity": "sha512-Cbm2AgXcCrukUeV+/24g1ZDSvw8blamh/1uf2pz3ApFpaYb9T7mo4imWDZ6APn2uPo4bJ6sgOzvsJ4aH+oLbBA==", "dev": true, "license": "MIT", "dependencies": { "@docsearch/css": "^3.6.0", "@docsearch/js": "^3.6.0", - "@shikijs/core": "^1.6.2", - "@shikijs/transformers": "^1.6.2", + "@shikijs/core": "^1.10.3", + "@shikijs/transformers": "^1.10.3", "@types/markdown-it": "^14.1.1", "@vitejs/plugin-vue": "^5.0.5", - "@vue/devtools-api": "^7.2.1", - "@vue/shared": "^3.4.27", - "@vueuse/core": "^10.10.0", - "@vueuse/integrations": "^10.10.0", + "@vue/devtools-api": "^7.3.5", + "@vue/shared": "^3.4.31", + "@vueuse/core": "^10.11.0", + "@vueuse/integrations": "^10.11.0", "focus-trap": "^7.5.4", "mark.js": "8.11.1", "minisearch": "^6.3.0", - "shiki": "^1.6.2", - "vite": "^5.2.12", - "vue": "^3.4.27" + "shiki": "^1.10.3", + "vite": "^5.3.3", + "vue": "^3.4.31" }, "bin": { "vitepress": "bin/vitepress.js" @@ -15186,6 +15167,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", @@ -15215,7 +15206,6 @@ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, diff --git a/package.json b/package.json index 3838b4c8e..dfc632f48 100644 --- a/package.json +++ b/package.json @@ -121,8 +121,8 @@ "@codemirror/language": "^6.10.2", "@codemirror/search": "^6.5.6", "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.28.3", - "@jridgewell/sourcemap-codec": "^1.4.15", + "@codemirror/view": "^6.28.4", + "@jridgewell/sourcemap-codec": "^1.5.0", "@mermaid-js/mermaid-cli": "^10.9.1", "@napi-rs/cli": "^2.18.4", "@rollup/plugin-alias": "^5.1.0", @@ -134,18 +134,18 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@rollup/pluginutils": "^5.1.0", - "@shikijs/vitepress-twoslash": "^1.10.0", + "@shikijs/vitepress-twoslash": "^1.10.3", "@types/eslint": "^8.56.10", "@types/inquirer": "^9.0.7", "@types/mocha": "^10.0.7", "@types/node": "~18.18.14", "@types/semver": "^7.5.8", "@types/yargs-parser": "^21.0.3", - "@typescript-eslint/eslint-plugin": "^7.15.0", - "@typescript-eslint/parser": "^7.15.0", + "@typescript-eslint/eslint-plugin": "^7.16.0", + "@typescript-eslint/parser": "^7.16.0", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", - "acorn": "^8.12.0", + "acorn": "^8.12.1", "acorn-import-assertions": "^1.9.0", "buble": "^0.20.0", "builtin-modules": "^4.0.0", @@ -162,7 +162,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-unicorn": "^54.0.0", - "eslint-plugin-vue": "^9.26.0", + "eslint-plugin-vue": "^9.27.0", "fixturify": "^3.0.0", "flru": "^1.0.2", "fs-extra": "^11.2.0", @@ -173,7 +173,7 @@ "lint-staged": "^15.2.7", "locate-character": "^3.0.0", "magic-string": "^0.30.10", - "mocha": "^10.5.2", + "mocha": "^10.6.0", "nodemon": "^3.1.4", "npm-audit-resolver": "^3.0.0-RC.0", "nyc": "^17.0.0", @@ -182,8 +182,8 @@ "pretty-bytes": "^6.1.1", "pretty-ms": "^9.0.0", "requirejs": "^2.3.6", - "rollup": "^4.18.0", - "rollup-plugin-license": "^3.5.1", + "rollup": "^4.18.1", + "rollup-plugin-license": "^3.5.2", "rollup-plugin-string": "^3.0.0", "semver": "^7.6.2", "shx": "^0.3.4", @@ -194,8 +194,8 @@ "terser": "^5.31.1", "tslib": "^2.6.3", "typescript": "^5.5.3", - "vite": "^5.3.2", - "vitepress": "^1.2.3", + "vite": "^5.3.3", + "vitepress": "^1.3.0", "vue": "^3.4.31", "wasm-pack": "^0.13.0", "yargs-parser": "^21.1.1" @@ -203,7 +203,7 @@ "overrides": { "axios": "^1.7.2", "semver": "^7.6.2", - "ws": "^8.17.1" + "ws": "^8.18.0" }, "overrides_comments": { "ws": "mermaid requires an older 8.13.0 version via puppeteer with vulnerabilities" diff --git a/rust/Cargo.lock b/rust/Cargo.lock index c50e92e0b..c0ea15dbb 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -143,9 +143,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "cc" -version = "1.0.104" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490" +checksum = "47de7e88bbbd467951ae7f5a6f34f70d1b4d9cfce53d5fd70f74ebe118b3db56" [[package]] name = "cfg-if" @@ -781,18 +781,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", @@ -926,9 +926,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.34.3" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7bcbd9faf61cec1a552cbdaec57faefbb10be7cc5f959613c6f91b5a9254" +checksum = "dcad76737c09d8cafdd6cc0bcb5d57a49340fde34cf9357b9bd30e3e25976fbb" dependencies = [ "ahash", "ast_node", @@ -954,9 +954,9 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37fcb78ee79d792ba97b63f58869b9995b7248b46676503e0d0328d19dba2c5" +checksum = "318b5d461f1535238bd1a40c2a78efdad7a9045edd34dd46f2de71da634cc984" dependencies = [ "anyhow", "base64", @@ -1006,9 +1006,9 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "0.115.1" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be1306930c235435a892104c00c2b5e16231043c085d5a10bd3e7537b15659b" +checksum = "55ea1ec136cc269287c32be8edc06080e8e6cca86f0592a23ba99eed0ecf3ffd" dependencies = [ "bitflags", "is-macro", @@ -1024,9 +1024,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.151.1" +version = "0.152.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5141a8cb4eb69e090e6aea5d49061b46919be5210f3d084f9d9ad63d30f5cff" +checksum = "84bbb1ae51db45adf2e24c6417e16ffbe4332023155f4ca055ece227d1798a72" dependencies = [ "memchr", "num-bigint", @@ -1055,9 +1055,9 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "0.197.2" +version = "0.198.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9852fc8849b5e0d442bd59b6054f908d03b1af4229a9adcf6aae9db2d366b7" +checksum = "86d4f1bba758a7c715488b228b7de032fd270bec020921596005da70cac3268a" dependencies = [ "arrayvec", "indexmap", @@ -1089,9 +1089,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.146.8" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cb0661386d67b828093fe7e87381c0808298595ba38cd00101973e70ab66dd6" +checksum = "3f85ae931e009c314f88212bd53d84ee9244902e84afa5ede497cb8a763192de" dependencies = [ "either", "new_debug_unreachable", @@ -1111,9 +1111,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.140.1" +version = "0.141.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4341c6272c4feaaf22cc8104f65ebcadac8ad2098dfacb6eb62e8c053698a40d" +checksum = "6aa78df903a639ac03fbd2acd963e0d8b74a237f939699d5a7c9a12c0a92d755" dependencies = [ "better_scoped_tls", "bitflags", @@ -1146,9 +1146,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_optimization" -version = "0.201.2" +version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "724a8306e98c1b1f9640fc44c1acc0c971f6daa17651919e06b64f905d4a4564" +checksum = "9f4f9476335c736ad23ffb97b30e9fda8fd29c0b1e0229f89dc368d92e2de9fb" dependencies = [ "dashmap", "indexmap", @@ -1170,9 +1170,9 @@ dependencies = [ [[package]] name = "swc_ecma_usage_analyzer" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146562ac3515c8de0fa9d479c43ae673cf9df9ece814f8b8130686080a7251ac" +checksum = "68035eac5963d013e012c3c7ed0d755793eeeb058aeff62600ce2da64c09b7bb" dependencies = [ "indexmap", "rustc-hash", @@ -1187,9 +1187,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.130.2" +version = "0.131.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612fea1ef92ca438eebdd60c7969e6ee6191eb2e4306018584b9e82390c5e093" +checksum = "37cd4c3feffadeb7df66104eaa99a1cd283467976e17d640216d38a5094ca179" dependencies = [ "indexmap", "num_cpus", @@ -1206,10 +1206,11 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.101.0" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0d997f0c9b4e181225f603d161f6757c2a97022258170982cfe005ec69ec92" +checksum = "c2332919b1de15ca7d9648f95bad1f1b61947be4dfff58ee030dac95f89c2fa6" dependencies = [ + "new_debug_unreachable", "num-bigint", "swc_atoms", "swc_common", @@ -1231,9 +1232,9 @@ dependencies = [ [[package]] name = "swc_fast_graph" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf5c1687e9858fb9de1ffa90a3e21369095406e97ace870a389320d105b0a" +checksum = "df27a2f7a2855934c3446ee7caeacc54ae31220ba01b7a0c624eb408ee3f4eaf" dependencies = [ "indexmap", "petgraph", @@ -1254,9 +1255,9 @@ dependencies = [ [[package]] name = "swc_timer" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2460de9f00f2af53f65b787c771a6ba90c719d600adb3c71cbb87219646ab4" +checksum = "faf14e7ba23712e53a597f3c674c0946b7fda1460ebb3b664d04867e0fab499a" dependencies = [ "tracing", ] @@ -1286,9 +1287,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.68" +version = "2.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" dependencies = [ "proc-macro2", "quote", @@ -1303,9 +1304,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tinyvec" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -1377,9 +1378,9 @@ checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f" [[package]] name = "unicode-id-start" -version = "1.0.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02aebfa694eccbbbffdd92922c7de136b9fe764396d2f10e21bce1681477cfc1" +checksum = "bc3882f69607a2ac8cc4de3ee7993d8f68bb06f2974271195065b3bd07f2edea" [[package]] name = "unicode-ident" @@ -1421,9 +1422,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.9.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de17fd2f7da591098415cff336e12965a28061ddace43b59cb3c430179c9439" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" [[package]] name = "version_check" diff --git a/rust/parse_ast/Cargo.toml b/rust/parse_ast/Cargo.toml index 8fa3f8735..63f799b47 100644 --- a/rust/parse_ast/Cargo.toml +++ b/rust/parse_ast/Cargo.toml @@ -8,8 +8,8 @@ edition = "2021" [dependencies] anyhow = "1.0.86" swc_atoms = "0.6.7" -swc_compiler_base = "0.12.1" -swc_common = { version = "0.34.3", features = ["ahash", "parking_lot"] } -swc_ecma_ast = "0.115.1" -swc_ecma_parser = "0.146.8" +swc_compiler_base = "0.13.0" +swc_common = { version = "0.35.0", features = ["ahash", "parking_lot"] } +swc_ecma_ast = "0.116.0" +swc_ecma_parser = "0.147.0" parking_lot = "0.12.3" diff --git a/rust/parse_ast/src/ast_nodes/identifier.rs b/rust/parse_ast/src/ast_nodes/identifier.rs index 20cb81896..a92658dc1 100644 --- a/rust/parse_ast/src/ast_nodes/identifier.rs +++ b/rust/parse_ast/src/ast_nodes/identifier.rs @@ -1,4 +1,4 @@ -use swc_ecma_ast::{BindingIdent, Ident}; +use swc_ecma_ast::{BindingIdent, Ident, IdentName}; use crate::convert_ast::converter::ast_constants::{ IDENTIFIER_NAME_OFFSET, IDENTIFIER_RESERVED_BYTES, TYPE_IDENTIFIER, @@ -26,4 +26,11 @@ impl<'a> AstConverter<'a> { &identifier.sym, ); } + pub fn convert_identifier_name(&mut self, identifier: &IdentName) { + self.store_identifier( + identifier.span.lo.0 - 1, + identifier.span.hi.0 - 1, + &identifier.sym, + ); + } } diff --git a/rust/parse_ast/src/ast_nodes/member_expression.rs b/rust/parse_ast/src/ast_nodes/member_expression.rs index 7c660bf46..8f9ed9124 100644 --- a/rust/parse_ast/src/ast_nodes/member_expression.rs +++ b/rust/parse_ast/src/ast_nodes/member_expression.rs @@ -1,6 +1,6 @@ use swc_common::Span; use swc_ecma_ast::{ - ComputedPropName, Expr, Ident, MemberExpr, MemberProp, PrivateName, Super, SuperProp, + ComputedPropName, Expr, IdentName, MemberExpr, MemberProp, PrivateName, Super, SuperProp, SuperPropExpr, }; @@ -53,7 +53,7 @@ impl<'a> AstConverter<'a> { // property self.update_reference_position(end_position + MEMBER_EXPRESSION_PROPERTY_OFFSET); match property { - MemberOrSuperProp::Identifier(ident) => self.convert_identifier(ident), + MemberOrSuperProp::Identifier(ident) => self.convert_identifier_name(ident), MemberOrSuperProp::Computed(computed) => { self.convert_expression(&computed.expr); } @@ -99,7 +99,7 @@ impl<'a> AstConverter<'a> { } pub enum MemberOrSuperProp<'a> { - Identifier(&'a Ident), + Identifier(&'a IdentName), PrivateName(&'a PrivateName), Computed(&'a ComputedPropName), } diff --git a/rust/parse_ast/src/ast_nodes/method_definition.rs b/rust/parse_ast/src/ast_nodes/method_definition.rs index 0872b9146..942d1ca1f 100644 --- a/rust/parse_ast/src/ast_nodes/method_definition.rs +++ b/rust/parse_ast/src/ast_nodes/method_definition.rs @@ -49,7 +49,7 @@ impl<'a> AstConverter<'a> { } PropOrPrivateName::PrivateName(private_name) => { self.store_private_identifier(private_name); - private_name.id.span.hi.0 - 1 + private_name.span.hi.0 - 1 } }; // value diff --git a/rust/parse_ast/src/ast_nodes/private_identifier.rs b/rust/parse_ast/src/ast_nodes/private_identifier.rs index 0af703eb6..d1797c9a7 100644 --- a/rust/parse_ast/src/ast_nodes/private_identifier.rs +++ b/rust/parse_ast/src/ast_nodes/private_identifier.rs @@ -8,7 +8,7 @@ impl<'a> AstConverter<'a> { store_private_identifier!( self, span => &private_name.span, - name => &private_name.id.sym + name => &private_name.name ); } } diff --git a/rust/parse_ast/src/convert_ast/converter.rs b/rust/parse_ast/src/convert_ast/converter.rs index 64a5df6df..b5d55d155 100644 --- a/rust/parse_ast/src/convert_ast/converter.rs +++ b/rust/parse_ast/src/convert_ast/converter.rs @@ -595,8 +595,8 @@ impl<'a> AstConverter<'a> { PropName::Computed(computed_property_name) => { self.convert_expression(computed_property_name.expr.as_ref()) } - PropName::Ident(ident) => { - self.convert_identifier(ident); + PropName::Ident(identifier_name) => { + self.convert_identifier_name(identifier_name); } PropName::Str(string) => { self.store_literal_string(string); diff --git a/rust/parse_ast/src/lib.rs b/rust/parse_ast/src/lib.rs index 80541da4c..7cf07bd61 100644 --- a/rust/parse_ast/src/lib.rs +++ b/rust/parse_ast/src/lib.rs @@ -28,7 +28,7 @@ pub fn parse_ast(code: String, allow_return_outside_function: bool) -> Vec { }); let filename = FileName::Anon; - let file = cm.new_source_file(filename, code); + let file = cm.new_source_file(filename.into(), code); let code_reference = Lrc::clone(&file.src); let comments = SequentialComments::default(); GLOBALS.set(&Globals::default(), || { From a9a610864cc8e6cdbfd2d61792d1919d9f2824dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 12:25:50 +0000 Subject: [PATCH 4/9] chore(deps): lock file maintenance minor/patch updates (#5580) * chore(deps): lock file maintenance minor/patch updates * Fix types --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Lukas Taegert-Atkinson --- package-lock.json | 903 +++++++++++++------- package.json | 12 +- rust/Cargo.lock | 182 ++-- rust/bindings_napi/Cargo.toml | 2 +- rust/parse_ast/Cargo.toml | 8 +- scripts/prepare-release.js | 12 +- src/utils/options/normalizeOutputOptions.ts | 2 +- 7 files changed, 715 insertions(+), 406 deletions(-) diff --git a/package-lock.json b/package-lock.json index a833c9b0d..3697bc316 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,8 +40,8 @@ "@types/node": "~18.18.14", "@types/semver": "^7.5.8", "@types/yargs-parser": "^21.0.3", - "@typescript-eslint/eslint-plugin": "^7.16.0", - "@typescript-eslint/parser": "^7.16.0", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "acorn": "^8.12.1", @@ -77,7 +77,7 @@ "npm-audit-resolver": "^3.0.0-RC.0", "nyc": "^17.0.0", "pinia": "^2.1.7", - "prettier": "^3.3.2", + "prettier": "^3.3.3", "pretty-bytes": "^6.1.1", "pretty-ms": "^9.0.0", "requirejs": "^2.3.6", @@ -90,11 +90,11 @@ "source-map": "^0.7.4", "source-map-support": "^0.5.21", "systemjs": "^6.15.1", - "terser": "^5.31.1", + "terser": "^5.31.2", "tslib": "^2.6.3", "typescript": "^5.5.3", - "vite": "^5.3.3", - "vitepress": "^1.3.0", + "vite": "^5.3.4", + "vitepress": "^1.3.1", "vue": "^3.4.31", "wasm-pack": "^0.13.0", "yargs-parser": "^21.1.1" @@ -348,9 +348,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.8.tgz", - "integrity": "sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", "dev": true, "license": "MIT", "engines": { @@ -358,22 +358,22 @@ } }, "node_modules/@babel/core": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.8.tgz", - "integrity": "sha512-6AWcmZC/MZCO0yKys4uhg5NlxL0ESF3K6IAaoQ+xSXvPyPyxNWRafP+GDbI88Oh68O7QkJgmEtedWPM9U0pZNg==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.8", + "@babel/generator": "^7.24.9", "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", "@babel/helpers": "^7.24.8", "@babel/parser": "^7.24.8", "@babel/template": "^7.24.7", "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8", + "@babel/types": "^7.24.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -396,13 +396,13 @@ "license": "MIT" }, "node_modules/@babel/generator": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.8.tgz", - "integrity": "sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==", + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.8", + "@babel/types": "^7.24.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -496,9 +496,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.8.tgz", - "integrity": "sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", "dev": true, "license": "MIT", "dependencies": { @@ -737,9 +737,9 @@ } }, "node_modules/@babel/types": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.8.tgz", - "integrity": "sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -853,9 +853,9 @@ "license": "MIT" }, "node_modules/@codemirror/view": { - "version": "6.28.4", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.28.4.tgz", - "integrity": "sha512-QScv95fiviSQ/CaVGflxAvvvDy/9wi0RFyDl4LkHHWiMr/UPebyuTspmYSeN5Nx6eujcPYwsQzA6ZIZucKZVHQ==", + "version": "6.28.5", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.28.5.tgz", + "integrity": "sha512-NkUtfUa1lV7Jqg5DfHE/uLl7jKyoymDkaueMQXzePYuezL7FwX3ATANy74iAGlHCGe25hBGB0R+I5dC5EZ5JBg==", "dev": true, "license": "MIT", "dependencies": { @@ -865,33 +865,33 @@ } }, "node_modules/@docsearch/css": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", - "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.1.tgz", + "integrity": "sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==", "dev": true, "license": "MIT" }, "node_modules/@docsearch/js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.0.tgz", - "integrity": "sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.1.tgz", + "integrity": "sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg==", "dev": true, "license": "MIT", "dependencies": { - "@docsearch/react": "3.6.0", + "@docsearch/react": "3.6.1", "preact": "^10.0.0" } }, "node_modules/@docsearch/react": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", - "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.1.tgz", + "integrity": "sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==", "dev": true, "license": "MIT", "dependencies": { "@algolia/autocomplete-core": "1.9.3", "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.6.0", + "@docsearch/css": "3.6.1", "algoliasearch": "^4.19.1" }, "peerDependencies": { @@ -1480,14 +1480,15 @@ "license": "BSD-3-Clause" }, "node_modules/@inquirer/checkbox": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.3.10.tgz", - "integrity": "sha512-CTc864M2/523rKc9AglIzAcUCuPXDZENgc5S2KZFVRbnMzpXcYTsUWmbqSeL0XLvtlvEtNevkkVbfVhJpruOyQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.0.tgz", + "integrity": "sha512-XHOCmntitRBD8SJcrv+6X9YakxO1wfsvezOnU5MBIXeTlSBRCVk9DOIrx6Cgi9BS3qkcy7oQb+fUGEKrP6xecQ==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", + "@inquirer/core": "^9.0.3", + "@inquirer/figures": "^1.0.4", + "@inquirer/type": "^1.5.0", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -1496,28 +1497,30 @@ } }, "node_modules/@inquirer/confirm": { - "version": "3.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.14.tgz", - "integrity": "sha512-nbLSX37b2dGPtKWL3rPuR/5hOuD30S+pqJ/MuFiUEgN6GiMs8UMxiurKAMDzKt6C95ltjupa8zH6+3csXNHWpA==", + "version": "3.1.15", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.15.tgz", + "integrity": "sha512-CiLGi3JmKGEsia5kYJN62yG/njHydbYIkzSBril7tCaKbsnIqxa2h/QiON9NjfwiKck/2siosz4h7lVhLFocMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0" + "@inquirer/core": "^9.0.3", + "@inquirer/type": "^1.5.0" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.3.tgz", + "integrity": "sha512-p2BRZv/vMmpwlU4ZR966vKQzGVCi4VhLjVofwnFLziTQia541T7i1Ar8/LPh+LzjkXzocme+g5Io6MRtzlCcNA==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", + "@inquirer/figures": "^1.0.4", + "@inquirer/type": "^1.5.0", "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", + "@types/node": "^20.14.11", "@types/wrap-ansi": "^3.0.0", "ansi-escapes": "^4.3.2", "cli-spinners": "^2.9.2", @@ -1533,22 +1536,24 @@ } }, "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "20.14.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@inquirer/editor": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.14.tgz", - "integrity": "sha512-6nWpoJyVAKwAcv67bkbBmmi3f32xua79fP7TRmNUoR4K+B1GiOBsHO1YdvET/jvC+nTlBZL7puKAKyM7G+Lkzw==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.15.tgz", + "integrity": "sha512-UmtZnY36rGLS/4cCzvdRmk0xxsGgH2AsF0v1SSlBZ3C5JK/Bxm2gNW8fmUVzQ5vm8kpdWASXPapbUx4iV49ScA==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", + "@inquirer/core": "^9.0.3", + "@inquirer/type": "^1.5.0", "external-editor": "^3.1.0" }, "engines": { @@ -1556,13 +1561,14 @@ } }, "node_modules/@inquirer/expand": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.14.tgz", - "integrity": "sha512-JcxsLajwPykF2kq6biIUdoOzTQ3LXqb8XMVrWkCprG/pFeU1SsxcSSFbF1T5jJGvvlTVcsE+JdGjbQ8ZRZ82RA==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.15.tgz", + "integrity": "sha512-aBnnrBw9vbFJROUlDCsbq8H/plX6JHfPwLmSphxaVqOR+b1hgLdw+oRhZkpcJhG2AZOlc8IKzGdZhji93gQg4w==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", + "@inquirer/core": "^9.0.3", + "@inquirer/type": "^1.5.0", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -1570,48 +1576,52 @@ } }, "node_modules/@inquirer/figures": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.3.tgz", - "integrity": "sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.4.tgz", + "integrity": "sha512-R7Gsg6elpuqdn55fBH2y9oYzrU/yKrSmIsDX4ROT51vohrECFzTf2zw9BfUbOW8xjfmM2QbVoVYdTwhrtEKWSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@inquirer/input": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.1.tgz", - "integrity": "sha512-Yl1G6h7qWydzrJwqN777geeJVaAFL5Ly83aZlw4xHf8Z/BoTMfKRheyuMaQwOG7LQ4e5nQP7PxXdEg4SzQ+OKw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.2.tgz", + "integrity": "sha512-VjkzYSVH0606nLi9HHiSb4QYs2idwRgneiMoFoTAIwQ1Qwx6OIDugOYLtLta3gP8AWZx7qUvgDtj+/SJuiiKuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0" + "@inquirer/core": "^9.0.3", + "@inquirer/type": "^1.5.0" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/number": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.2.tgz", - "integrity": "sha512-GcoK+Phxcln0Qw9e73S5a8B2Ejg3HgSTvNfDegIcS5/BKwUm8t5rejja1l09WXjZM9vrVbRDf9RzWtSUiWVYRQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.3.tgz", + "integrity": "sha512-GLTuhuhzK/QtB7BhM2pLJGKsv366kv237iNF8hTEOx+EGmXsPNGTydAgZmcuVizEmgC9VSVh1S0memXnIUTYzQ==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0" + "@inquirer/core": "^9.0.3", + "@inquirer/type": "^1.5.0" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/password": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.14.tgz", - "integrity": "sha512-sPzOkXLhWJQ96K6nPZFnF8XB8tsDrcCRobd1d3EDz81F+4hp8BbdmsnsQcqZ7oYDIOVM/mWJyIUtJ35TrssJxQ==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.15.tgz", + "integrity": "sha512-/JmiTtIcSYbZdPucEW5q2rhC71vGKPivm3LFqNDQEI6lJyffq7hlfKKFC+R1Qp19dMqkaG+O5L1XmcHpmlAUUQ==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", + "@inquirer/core": "^9.0.3", + "@inquirer/type": "^1.5.0", "ansi-escapes": "^4.3.2" }, "engines": { @@ -1619,33 +1629,35 @@ } }, "node_modules/@inquirer/prompts": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.1.2.tgz", - "integrity": "sha512-E+ndnfwtVQtcmPt888Hc/HAxJUHSaA6OIvyvLAQ5BLQv+t20GbYdFSjXeLgb47OpMU+aRsKA/ys+Zoylw3kTVg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.2.0.tgz", + "integrity": "sha512-7jBWrlkvprEHEFw29zG/piw/M76c5/zYQWfi8ybHeyzcTuXkh1NjDQxLg2PiruvsIt36z1zvKM5yn7vbF0Yr/A==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^2.3.10", - "@inquirer/confirm": "^3.1.14", - "@inquirer/editor": "^2.1.14", - "@inquirer/expand": "^2.1.14", - "@inquirer/input": "^2.2.1", - "@inquirer/number": "^1.0.2", - "@inquirer/password": "^2.1.14", - "@inquirer/rawlist": "^2.1.14", - "@inquirer/select": "^2.3.10" + "@inquirer/checkbox": "^2.4.0", + "@inquirer/confirm": "^3.1.15", + "@inquirer/editor": "^2.1.15", + "@inquirer/expand": "^2.1.15", + "@inquirer/input": "^2.2.2", + "@inquirer/number": "^1.0.3", + "@inquirer/password": "^2.1.15", + "@inquirer/rawlist": "^2.1.15", + "@inquirer/select": "^2.4.0" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/rawlist": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.1.14.tgz", - "integrity": "sha512-pLpEzhKNQ/ugFAFfgCNaXljB+dcCwmXwR1jOxAbVeFIdB3l02E5gjI+h1rb136tq0T8JO6P5KFR1oTeld/wdrA==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.1.15.tgz", + "integrity": "sha512-zwU6aWDMyuQNiY5Z0iYXkxi7pliRFXqUmiS7vG6lAGxqcbOSptYgIxGJnd3AU4Y91N0Tbt57+koJL0S2p6vSkA==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", + "@inquirer/core": "^9.0.3", + "@inquirer/type": "^1.5.0", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -1653,14 +1665,15 @@ } }, "node_modules/@inquirer/select": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.3.10.tgz", - "integrity": "sha512-rr7iR0Zj1YFfgM8IUGimPD9Yukd+n/U63CnYT9kdum6DbRXtMxR45rrreP+EA9ixCnShr+W4xj7suRxC1+8t9g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.0.tgz", + "integrity": "sha512-iU1eRkHirVNs43zWk6anMIMKc7tCXlJ+I5DcpIV7JzMe+45TuPPOGGCgeGIkZ4xYJ3cXdFoh7GJpm84PNC8veg==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", + "@inquirer/core": "^9.0.3", + "@inquirer/figures": "^1.0.4", + "@inquirer/type": "^1.5.0", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -1669,10 +1682,11 @@ } }, "node_modules/@inquirer/type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.4.0.tgz", - "integrity": "sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.0.tgz", + "integrity": "sha512-L/UdayX9Z1lLN+itoTKqJ/X4DX5DaWu2Sruwt4XgZzMNv32x4qllbzMX4MbJlz0yxAQtU19UvABGOjmdq1u3qA==", "dev": true, + "license": "MIT", "dependencies": { "mute-stream": "^1.0.0" }, @@ -1711,31 +1725,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -2156,6 +2145,38 @@ } } }, + "node_modules/@puppeteer/browsers/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@puppeteer/browsers/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@puppeteer/browsers/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@puppeteer/browsers/node_modules/yargs": { "version": "17.7.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", @@ -2865,6 +2886,7 @@ "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2939,7 +2961,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/yargs-parser": { "version": "21.0.3", @@ -2960,17 +2983,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", - "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz", + "integrity": "sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/type-utils": "7.16.0", - "@typescript-eslint/utils": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/type-utils": "7.16.1", + "@typescript-eslint/utils": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -2994,16 +3017,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.0.tgz", - "integrity": "sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.1.tgz", + "integrity": "sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/typescript-estree": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4" }, "engines": { @@ -3023,14 +3046,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", - "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz", + "integrity": "sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0" + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3041,14 +3064,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", - "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz", + "integrity": "sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.1", + "@typescript-eslint/utils": "7.16.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3069,9 +3092,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", - "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz", + "integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==", "dev": true, "license": "MIT", "engines": { @@ -3083,14 +3106,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", - "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz", + "integrity": "sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3112,16 +3135,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", - "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz", + "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0" + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/typescript-estree": "7.16.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3135,13 +3158,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", - "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz", + "integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/types": "7.16.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -3184,74 +3207,74 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.0-alpha.15", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.15.tgz", - "integrity": "sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==", + "version": "2.4.0-alpha.16", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.16.tgz", + "integrity": "sha512-oOTnIZlx0P/idFwVw+W0NbzKDtZAQMzXSdIFfTePCKcXlb4Ys12GaGkx8NF9dsvPYV3nbv3ZsSxnkZWBmNKd7A==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.0-alpha.15" + "@volar/source-map": "2.4.0-alpha.16" } }, "node_modules/@volar/source-map": { - "version": "2.4.0-alpha.15", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.15.tgz", - "integrity": "sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==", + "version": "2.4.0-alpha.16", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.16.tgz", + "integrity": "sha512-sL9vNG7iR2hiKZor7UkD5Sufu3QCia4cbp2gX/nGRNSdaPbhOpdAoavwlBm0PrVkpiA19NZuavZoobD8krviFg==", "dev": true, "license": "MIT" }, "node_modules/@vue/compiler-core": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", - "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.33.tgz", + "integrity": "sha512-MoIREbkdPQlnGfSKDMgzTqzqx5nmEjIc0ydLVYlTACGBsfvOJ4tHSbZXKVF536n6fB+0eZaGEOqsGThPpdvF5A==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.31", + "@vue/shared": "3.4.33", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", - "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.33.tgz", + "integrity": "sha512-GzB8fxEHKw0gGet5BKlpfXEqoBnzSVWwMnT+dc25wE7pFEfrU/QsvjZMP9rD4iVXHBBoemTct8mN0GJEI6ZX5A==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-core": "3.4.33", + "@vue/shared": "3.4.33" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz", - "integrity": "sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.33.tgz", + "integrity": "sha512-7rk7Vbkn21xMwIUpHQR4hCVejwE6nvhBOiDgoBcR03qvGqRKA7dCBSsHZhwhYUsmjlbJ7OtD5UFIyhP6BY+c8A==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.31", - "@vue/compiler-dom": "3.4.31", - "@vue/compiler-ssr": "3.4.31", - "@vue/shared": "3.4.31", + "@vue/compiler-core": "3.4.33", + "@vue/compiler-dom": "3.4.33", + "@vue/compiler-ssr": "3.4.33", + "@vue/shared": "3.4.33", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz", - "integrity": "sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.33.tgz", + "integrity": "sha512-0WveC9Ai+eT/1b6LCV5IfsufBZ0HP7pSSTdDjcuW302tTEgoBw8rHVHKPbGUtzGReUFCRXbv6zQDDgucnV2WzQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-dom": "3.4.33", + "@vue/shared": "3.4.33" } }, "node_modules/@vue/devtools-api": { @@ -3262,13 +3285,13 @@ "license": "MIT" }, "node_modules/@vue/devtools-kit": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.5.tgz", - "integrity": "sha512-wwfi10gJ1HMtjzcd8aIOnzBHlIRqsYDgcDyrKvkeyc0Gbcoe7UrkXRVHZUOtcxxoplHA0PwpT6wFg0uUCmi8Ww==", + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.6.tgz", + "integrity": "sha512-5Ym9V3fkJenEoptqKoo+cgY5RTVwrSssFdzRsuyIgaeiskCT+rRJeQdwoo81tyrQ1mfS7Er1rYZlSzr3Y3L/ew==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^7.3.5", + "@vue/devtools-shared": "^7.3.6", "birpc": "^0.2.17", "hookable": "^5.5.3", "mitt": "^3.0.1", @@ -3285,9 +3308,9 @@ "license": "MIT" }, "node_modules/@vue/devtools-shared": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.5.tgz", - "integrity": "sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A==", + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.6.tgz", + "integrity": "sha512-R/FOmdJV+hhuwcNoxp6e87RRkEeDMVhWH+nOsnHUrwjjsyeXJ2W1475Ozmw+cbZhejWQzftkHVKO28Fuo1yqCw==", "dev": true, "license": "MIT", "dependencies": { @@ -3360,57 +3383,57 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.31.tgz", - "integrity": "sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.33.tgz", + "integrity": "sha512-B24QIelahDbyHipBgbUItQblbd4w5HpG3KccL+YkGyo3maXyS253FzcTR3pSz739OTphmzlxP7JxEMWBpewilA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/shared": "3.4.31" + "@vue/shared": "3.4.33" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.31.tgz", - "integrity": "sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.33.tgz", + "integrity": "sha512-6wavthExzT4iAxpe8q37/rDmf44nyOJGISJPxCi9YsQO+8w9v0gLCFLfH5TzD1V1AYrTAdiF4Y1cgUmP68jP6w==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/reactivity": "3.4.33", + "@vue/shared": "3.4.33" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.31.tgz", - "integrity": "sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.33.tgz", + "integrity": "sha512-iHsMCUSFJ+4z432Bn9kZzHX+zOXa6+iw36DaVRmKYZpPt9jW9riF32SxNwB124i61kp9+AZtheQ/mKoJLerAaQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.31", - "@vue/runtime-core": "3.4.31", - "@vue/shared": "3.4.31", + "@vue/reactivity": "3.4.33", + "@vue/runtime-core": "3.4.33", + "@vue/shared": "3.4.33", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.31.tgz", - "integrity": "sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.33.tgz", + "integrity": "sha512-jTH0d6gQcaYideFP/k0WdEu8PpRS9MF8d0b6SfZzNi+ap972pZ0TNIeTaESwdOtdY0XPVj54XEJ6K0wXxir4fw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-ssr": "3.4.33", + "@vue/shared": "3.4.33" }, "peerDependencies": { - "vue": "3.4.31" + "vue": "3.4.33" } }, "node_modules/@vue/shared": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", - "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.33.tgz", + "integrity": "sha512-aoRY0jQk3A/cuvdkodTrM4NMfxco8n55eG4H7ML/CRy7OryHfiqvug4xrCBBMbbN+dvXAetDDwZW9DXWWjBntA==", "dev": true, "license": "MIT" }, @@ -4366,9 +4389,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001641", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001641.tgz", - "integrity": "sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==", + "version": "1.0.30001642", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz", + "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==", "dev": true, "funding": [ { @@ -4425,7 +4448,8 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/chokidar": { "version": "3.6.0", @@ -4542,6 +4566,7 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -4625,6 +4650,7 @@ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 12" } @@ -4680,6 +4706,38 @@ "dev": true, "license": "MIT" }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -5033,9 +5091,9 @@ "license": "MIT" }, "node_modules/cytoscape": { - "version": "3.30.0", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.0.tgz", - "integrity": "sha512-l590mjTHT6/Cbxp13dGPC2Y7VXdgc+rUeF8AnF/JPzhjNevbDJfObnJgaSjlldOgBQZbue+X6IUZ7r5GAgvauQ==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.1.tgz", + "integrity": "sha512-TRJc3HbBPkHd50u9YfJh2FxD1lDLZ+JXnJoyBn5LkncoeuT7fapO/Hq/Ed8TdFclaKshzInge2i30bg7VKeoPQ==", "dev": true, "license": "MIT", "engines": { @@ -5654,9 +5712,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==", + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", "dev": true, "license": "MIT" }, @@ -5900,9 +5958,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.827", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.827.tgz", - "integrity": "sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==", + "version": "1.4.830", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.830.tgz", + "integrity": "sha512-TrPKKH20HeN0J1LHzsYLs2qwXrp8TF4nHdu4sq61ozGbzMpWhI7iIOPYPPkxeq1azMT9PZ8enPFcftbs/Npcjg==", "dev": true, "license": "ISC" }, @@ -5914,9 +5972,9 @@ "license": "EPL-2.0" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, @@ -6385,14 +6443,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" + "synckit": "^0.9.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -6818,6 +6876,7 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -7727,13 +7786,13 @@ } }, "node_modules/husky": { - "version": "9.0.11", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", - "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.1.tgz", + "integrity": "sha512-fCqlqLXcBnXa/TJXmT93/A36tJsjdJkibQ1MuIiFyCCYUlpYpIaj2mv1w+3KR6Rzu1IC3slFTje5f6DUp2A2rg==", "dev": true, "license": "MIT", "bin": { - "husky": "bin.mjs" + "husky": "bin.js" }, "engines": { "node": ">=18" @@ -7747,6 +7806,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -7849,13 +7909,14 @@ "license": "ISC" }, "node_modules/inquirer": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-10.0.1.tgz", - "integrity": "sha512-XgthhRIn0Ci9JdGJpUo2EtpPfaczbooZbGTN+FTzSCyUb7YHJcPPnuSXfeG5903bJMy3OyEoVTQMnvO4Ly5tFg==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-10.0.3.tgz", + "integrity": "sha512-/PxdZLy7YgrD5GFIBqUDy08jt73YVRzXrRJqv0Kfe4jJ2tPBhbr16r7OKkHEJ/Bd/0GgOLYSeqtQS/01YS5Pow==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/prompts": "^5.1.2", - "@inquirer/type": "^1.3.3", + "@inquirer/prompts": "^5.2.0", + "@inquirer/type": "^1.5.0", "@types/mute-stream": "^0.0.4", "ansi-escapes": "^4.3.2", "mute-stream": "^1.0.0", @@ -8011,9 +8072,9 @@ } }, "node_modules/is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "license": "MIT", "dependencies": { @@ -10585,9 +10646,9 @@ } }, "node_modules/minisearch": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz", - "integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.0.2.tgz", + "integrity": "sha512-Pf0sFXaCgRpOBDr4G8wTbVAEH9o9rvJzCMwj0TMe3L/NfUuG188xabfx6Vm3vD/Dv5L500n7JeiMB9Mq3sWMfQ==", "dev": true, "license": "MIT" }, @@ -10736,6 +10797,13 @@ "dev": true, "license": "MIT" }, + "node_modules/mocha/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -10757,6 +10825,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/mocha/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -10777,6 +10855,21 @@ "dev": true, "license": "MIT" }, + "node_modules/mocha/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/mocha/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -10929,9 +11022,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.17.tgz", + "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", "dev": true, "license": "MIT" }, @@ -11237,6 +11330,13 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/nyc/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/nyc/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -11287,6 +11387,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/nyc/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/nyc/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -11359,6 +11469,21 @@ "dev": true, "license": "ISC" }, + "node_modules/nyc/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nyc/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -11546,6 +11671,7 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12019,9 +12145,9 @@ } }, "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "license": "MIT", "bin": { @@ -12983,9 +13109,9 @@ "peer": true }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "bin": { @@ -13500,18 +13626,21 @@ } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -13530,6 +13659,13 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -13540,14 +13676,33 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/string.prototype.trim": { @@ -13735,9 +13890,9 @@ } }, "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, "license": "MIT", "dependencies": { @@ -13841,9 +13996,9 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.31.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.2.tgz", - "integrity": "sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==", + "version": "5.31.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13959,6 +14114,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -14534,9 +14690,9 @@ } }, "node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", + "integrity": "sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==", "dev": true, "license": "MIT", "dependencies": { @@ -14565,9 +14721,9 @@ } }, "node_modules/vite": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", - "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz", + "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", "dev": true, "license": "MIT", "dependencies": { @@ -14621,9 +14777,9 @@ } }, "node_modules/vitepress": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.3.0.tgz", - "integrity": "sha512-Cbm2AgXcCrukUeV+/24g1ZDSvw8blamh/1uf2pz3ApFpaYb9T7mo4imWDZ6APn2uPo4bJ6sgOzvsJ4aH+oLbBA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.3.1.tgz", + "integrity": "sha512-soZDpg2rRVJNIM/IYMNDPPr+zTHDA5RbLDHAxacRu+Q9iZ2GwSR0QSUlLs+aEZTkG0SOX1dc8RmUYwyuxK8dfQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14639,7 +14795,7 @@ "@vueuse/integrations": "^10.11.0", "focus-trap": "^7.5.4", "mark.js": "8.11.1", - "minisearch": "^6.3.0", + "minisearch": "^7.0.0", "shiki": "^1.10.3", "vite": "^5.3.3", "vue": "^3.4.31" @@ -14661,27 +14817,27 @@ } }, "node_modules/vitepress/node_modules/@vue/devtools-api": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.5.tgz", - "integrity": "sha512-BSdBBu5hOIv+gBJC9jzYMh5bC27FQwjWLSb8fVAniqlL9gvsqvK27xTgczMf+hgctlszMYQnRm3bpY/j8vhPqw==", + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.6.tgz", + "integrity": "sha512-z6cKyxdXrIGgA++eyGBfquj6dCplRdgjt+I18fJx8hjWTXDTIyeQvryyEBMchnfZVyvUTjK3QjGjDpLCnJxPjw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^7.3.5" + "@vue/devtools-kit": "^7.3.6" } }, "node_modules/vue": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.31.tgz", - "integrity": "sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==", + "version": "3.4.33", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.33.tgz", + "integrity": "sha512-VdMCWQOummbhctl4QFMcW6eNtXHsFyDlX60O/tsSQuCcuDOnJ1qPOhhVla65Niece7xq/P2zyZReIO5mP+LGTQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.31", - "@vue/compiler-sfc": "3.4.31", - "@vue/runtime-dom": "3.4.31", - "@vue/server-renderer": "3.4.31", - "@vue/shared": "3.4.31" + "@vue/compiler-dom": "3.4.33", + "@vue/compiler-sfc": "3.4.33", + "@vue/runtime-dom": "3.4.33", + "@vue/server-renderer": "3.4.33", + "@vue/shared": "3.4.33" }, "peerDependencies": { "typescript": "*" @@ -14971,6 +15127,38 @@ "dev": true, "license": "MIT" }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -15007,6 +15195,38 @@ "dev": true, "license": "MIT" }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -15177,6 +15397,38 @@ "node": ">=8" } }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", @@ -15206,6 +15458,7 @@ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, diff --git a/package.json b/package.json index dfc632f48..f29cf6015 100644 --- a/package.json +++ b/package.json @@ -141,8 +141,8 @@ "@types/node": "~18.18.14", "@types/semver": "^7.5.8", "@types/yargs-parser": "^21.0.3", - "@typescript-eslint/eslint-plugin": "^7.16.0", - "@typescript-eslint/parser": "^7.16.0", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "acorn": "^8.12.1", @@ -178,7 +178,7 @@ "npm-audit-resolver": "^3.0.0-RC.0", "nyc": "^17.0.0", "pinia": "^2.1.7", - "prettier": "^3.3.2", + "prettier": "^3.3.3", "pretty-bytes": "^6.1.1", "pretty-ms": "^9.0.0", "requirejs": "^2.3.6", @@ -191,11 +191,11 @@ "source-map": "^0.7.4", "source-map-support": "^0.5.21", "systemjs": "^6.15.1", - "terser": "^5.31.1", + "terser": "^5.31.2", "tslib": "^2.6.3", "typescript": "^5.5.3", - "vite": "^5.3.3", - "vitepress": "^1.3.0", + "vite": "^5.3.4", + "vitepress": "^1.3.1", "vue": "^3.4.31", "wasm-pack": "^0.13.0", "yargs-parser": "^21.1.1" diff --git a/rust/Cargo.lock b/rust/Cargo.lock index c0ea15dbb..fd9d81b4e 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -34,6 +34,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "anyhow" version = "1.0.86" @@ -48,14 +54,14 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ast_node" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab31376d309dd3bfc9cfb3c11c93ce0e0741bbe0354b20e7f8c60b044730b79" +checksum = "f9184f2b369b3e8625712493c89b785881f27eedc6cde480a81883cef78868b2" dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn", + "syn 2.0.71", ] [[package]] @@ -140,12 +146,15 @@ name = "bumpalo" version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +dependencies = [ + "allocator-api2", +] [[package]] name = "cc" -version = "1.1.2" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47de7e88bbbd467951ae7f5a6f34f70d1b4d9cfce53d5fd70f74ebe118b3db56" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" [[package]] name = "cfg-if" @@ -169,7 +178,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn", + "syn 2.0.71", ] [[package]] @@ -236,13 +245,13 @@ dependencies = [ [[package]] name = "from_variant" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc9cc75639b041067353b9bce2450d6847e547276c6fbe4487d7407980e07db" +checksum = "32016f1242eb82af5474752d00fd8ebcd9004bd69b462b1c91de833972d08ed4" dependencies = [ "proc-macro2", "swc_macros_common", - "syn", + "syn 2.0.71", ] [[package]] @@ -325,7 +334,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] [[package]] @@ -428,23 +437,23 @@ checksum = "e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a" [[package]] name = "napi-derive" -version = "2.16.8" +version = "2.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eafd2b920906ea5b1f5f1f9d1eff9cc74e4ff8124dca41b501c1413079589187" +checksum = "87c3b5d4ab13e20a4bb9d3a1e2f3d4e77eee4a205d0f810abfd226b971dc6ce5" dependencies = [ "cfg-if", "convert_case", "napi-derive-backend", "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] [[package]] name = "napi-derive-backend" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b370b784440c65eb9001d839012eb912ee43e3a2d0361e2c30c13052372c39fe" +checksum = "96de436a6ab93265beef838f8333c8345438f059df6081fe0ad0b8648ee0c524" dependencies = [ "convert_case", "once_cell", @@ -452,7 +461,7 @@ dependencies = [ "quote", "regex", "semver 1.0.23", - "syn", + "syn 2.0.71", ] [[package]] @@ -609,7 +618,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] [[package]] @@ -645,6 +654,26 @@ dependencies = [ "cc", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "quote" version = "1.0.36" @@ -683,9 +712,9 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] name = "redox_syscall" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ "bitflags", ] @@ -796,7 +825,7 @@ checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] [[package]] @@ -895,7 +924,18 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn", + "syn 2.0.71", +] + +[[package]] +name = "swc_allocator" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d080e1df9616d0371e154a5ac9640de97f9fa08486e2abf16482d97dc69017" +dependencies = [ + "bumpalo", + "ptr_meta", + "triomphe", ] [[package]] @@ -926,9 +966,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.35.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcad76737c09d8cafdd6cc0bcb5d57a49340fde34cf9357b9bd30e3e25976fbb" +checksum = "0df62b0d102ecd81cf9093ef48303289e9a7dae0311f8e64b5345e5fe3e48565" dependencies = [ "ahash", "ast_node", @@ -944,6 +984,7 @@ dependencies = [ "serde", "siphasher", "sourcemap", + "swc_allocator", "swc_atoms", "swc_eq_ignore_macros", "swc_visit", @@ -954,9 +995,9 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "0.13.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318b5d461f1535238bd1a40c2a78efdad7a9045edd34dd46f2de71da634cc984" +checksum = "8f50e5f1a62ab7f6cfde871252d7b35c9741de3cca01947d47f3ec4cacf4a144" dependencies = [ "anyhow", "base64", @@ -1001,14 +1042,14 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn", + "syn 2.0.71", ] [[package]] name = "swc_ecma_ast" -version = "0.116.0" +version = "0.117.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ea1ec136cc269287c32be8edc06080e8e6cca86f0592a23ba99eed0ecf3ffd" +checksum = "e38921b6626345e680ded83479980b74f9cebee0748dd9ffb8078375e637e5b0" dependencies = [ "bitflags", "is-macro", @@ -1024,9 +1065,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.152.0" +version = "0.154.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84bbb1ae51db45adf2e24c6417e16ffbe4332023155f4ca055ece227d1798a72" +checksum = "6ca6056bb7016fdeaee8e3d792e3242a8cfa6f2a81a2010e7f6c5cb961719a17" dependencies = [ "memchr", "num-bigint", @@ -1050,14 +1091,14 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn", + "syn 2.0.71", ] [[package]] name = "swc_ecma_minifier" -version = "0.198.0" +version = "0.200.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d4f1bba758a7c715488b228b7de032fd270bec020921596005da70cac3268a" +checksum = "a815397e95ed7b356b8ad22a8c37c234b7d75b629a36ed0d82271c9635642525" dependencies = [ "arrayvec", "indexmap", @@ -1089,9 +1130,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.147.0" +version = "0.148.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f85ae931e009c314f88212bd53d84ee9244902e84afa5ede497cb8a763192de" +checksum = "59627c3704453c1bcb283c51ee161a5acf9988c80f80ef0250743fede0406602" dependencies = [ "either", "new_debug_unreachable", @@ -1111,9 +1152,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.141.0" +version = "0.143.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aa78df903a639ac03fbd2acd963e0d8b74a237f939699d5a7c9a12c0a92d755" +checksum = "cfe85a837d11d62a9370cf0e06ac5d2afa417b1367c272930df038f29e22ff81" dependencies = [ "better_scoped_tls", "bitflags", @@ -1141,14 +1182,14 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn", + "syn 2.0.71", ] [[package]] name = "swc_ecma_transforms_optimization" -version = "0.202.0" +version = "0.204.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4f9476335c736ad23ffb97b30e9fda8fd29c0b1e0229f89dc368d92e2de9fb" +checksum = "aabd07c779dbad98f6b20529fd26375c69bcf1bd3c4d9bf8c897deea2b957108" dependencies = [ "dashmap", "indexmap", @@ -1170,9 +1211,9 @@ dependencies = [ [[package]] name = "swc_ecma_usage_analyzer" -version = "0.27.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68035eac5963d013e012c3c7ed0d755793eeeb058aeff62600ce2da64c09b7bb" +checksum = "1b3f3791d671c6b054f43e4b372bc77e6d2d559bdafd42dbe43294c7270d2cdb" dependencies = [ "indexmap", "rustc-hash", @@ -1187,9 +1228,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.131.0" +version = "0.133.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37cd4c3feffadeb7df66104eaa99a1cd283467976e17d640216d38a5094ca179" +checksum = "51b1346598210788a9dd16580a74cad627726bd166157e3ff4628d8324d125b9" dependencies = [ "indexmap", "num_cpus", @@ -1206,9 +1247,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.102.0" +version = "0.103.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2332919b1de15ca7d9648f95bad1f1b61947be4dfff58ee030dac95f89c2fa6" +checksum = "e0045d8013d71965b7c52b28e6888cfbf54b0c40af62df8baade792c10b5dfc1" dependencies = [ "new_debug_unreachable", "num-bigint", @@ -1221,20 +1262,20 @@ dependencies = [ [[package]] name = "swc_eq_ignore_macros" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695a1d8b461033d32429b5befbf0ad4d7a2c4d6ba9cd5ba4e0645c615839e8e4" +checksum = "63db0adcff29d220c3d151c5b25c0eabe7e32dd936212b84cdaa1392e3130497" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] [[package]] name = "swc_fast_graph" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df27a2f7a2855934c3446ee7caeacc54ae31220ba01b7a0c624eb408ee3f4eaf" +checksum = "d78cdaedc56703bb852a84434aae862ead825fbcfb65e83bc53d50b91d6405b5" dependencies = [ "indexmap", "petgraph", @@ -1244,29 +1285,29 @@ dependencies = [ [[package]] name = "swc_macros_common" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91745f3561057493d2da768437c427c0e979dff7396507ae02f16c981c4a8466" +checksum = "378577b6caa62da3a206e8f91ebba501ed03b3f719c493ccc28fca8b3f1f4b6b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] [[package]] name = "swc_timer" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf14e7ba23712e53a597f3c674c0946b7fda1460ebb3b664d04867e0fab499a" +checksum = "78cf01b1f8a318614f566145b0016b2a0e84ac66d78c1374cdc3438e06c27740" dependencies = [ "tracing", ] [[package]] name = "swc_visit" -version = "0.5.14" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043d11fe683dcb934583ead49405c0896a5af5face522e4682c16971ef7871b9" +checksum = "52e2acde04c355dc8ffd62c56f263ba61a94b5c6d21ce2cdeaf857b5d74451a6" dependencies = [ "either", "swc_visit_macros", @@ -1274,15 +1315,26 @@ dependencies = [ [[package]] name = "swc_visit_macros" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae9ef18ff8daffa999f729db056d2821cd2f790f3a11e46422d19f46bb193e7" +checksum = "92807d840959f39c60ce8a774a3f83e8193c658068e6d270dbe0a05e40e90b41" dependencies = [ "Inflector", "proc-macro2", "quote", "swc_macros_common", - "syn", + "syn 2.0.71", +] + +[[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]] @@ -1336,7 +1388,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] [[package]] @@ -1459,7 +1511,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 2.0.71", "wasm-bindgen-shared", ] @@ -1481,7 +1533,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.71", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1618,5 +1670,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.71", ] diff --git a/rust/bindings_napi/Cargo.toml b/rust/bindings_napi/Cargo.toml index 99ac93d37..e6811f356 100644 --- a/rust/bindings_napi/Cargo.toml +++ b/rust/bindings_napi/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["cdylib"] [dependencies] # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix napi = { version = "2.16.8", default-features = false, features = ["napi4"] } -napi-derive = "2.16.8" +napi-derive = "2.16.9" parse_ast = { path = "../parse_ast" } xxhash = { path = "../xxhash" } diff --git a/rust/parse_ast/Cargo.toml b/rust/parse_ast/Cargo.toml index 63f799b47..ec2830714 100644 --- a/rust/parse_ast/Cargo.toml +++ b/rust/parse_ast/Cargo.toml @@ -8,8 +8,8 @@ edition = "2021" [dependencies] anyhow = "1.0.86" swc_atoms = "0.6.7" -swc_compiler_base = "0.13.0" -swc_common = { version = "0.35.0", features = ["ahash", "parking_lot"] } -swc_ecma_ast = "0.116.0" -swc_ecma_parser = "0.147.0" +swc_compiler_base = "0.15.0" +swc_common = { version = "0.36.1", features = ["ahash", "parking_lot"] } +swc_ecma_ast = "0.117.1" +swc_ecma_parser = "0.148.0" parking_lot = "0.12.3" diff --git a/scripts/prepare-release.js b/scripts/prepare-release.js index a3d2c573d..108f22610 100755 --- a/scripts/prepare-release.js +++ b/scripts/prepare-release.js @@ -95,7 +95,8 @@ async function getNewVersion(mainPackage, isMainBranch) { ? ['prerelease'] : ['premajor', 'preminor', 'prepatch']; - const { newVersion } = await inquirer.prompt([ + /** @type {any} The inquirer types appear to be seriously broken */ + const questions = [ { choices: availableIncrements.map(increment => { const value = semverInc(version, increment); @@ -109,7 +110,8 @@ async function getNewVersion(mainPackage, isMainBranch) { name: 'newVersion', type: 'list' } - ]); + ]; + const { newVersion } = await inquirer.prompt(questions); return newVersion; } @@ -220,7 +222,8 @@ async function waitForChangelogUpdate(version) { } changelogEntry = newEntry; console.log(cyan('You generated the following changelog entry:\n') + changelogEntry); - await inquirer.prompt([ + /** @type {any} The inquirer types appear to be seriously broken */ + const questions = [ { /** @type {any[]} */ choices: ['ok'], @@ -228,7 +231,8 @@ async function waitForChangelogUpdate(version) { name: 'ok', type: 'list' } - ]); + ]; + await inquirer.prompt(questions); } } diff --git a/src/utils/options/normalizeOutputOptions.ts b/src/utils/options/normalizeOutputOptions.ts index 0ee418cde..e886f243b 100644 --- a/src/utils/options/normalizeOutputOptions.ts +++ b/src/utils/options/normalizeOutputOptions.ts @@ -374,7 +374,7 @@ const getIndent = (config: OutputOptions, compact: boolean): NormalizedOutputOpt return ''; } const configIndent = config.indent; - return configIndent === false ? '' : configIndent ?? true; + return configIndent === false ? '' : (configIndent ?? true); }; const ALLOWED_INTEROP_TYPES: ReadonlySet = new Set([ From 1d2c1e99cef1da71487380d04dbfe8a5e3f4b4b6 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sat, 20 Jul 2024 06:48:57 +0200 Subject: [PATCH 5/9] When tree-shaking logical expression, make sure to remove all trailing white-space. (#5581) This should hopefully also improve sourcemaps. --- src/ast/nodes/LogicalExpression.ts | 12 ++-- .../_expected/execute.mjs | 4 ++ .../_expected/foo.js | 5 ++ .../_expected/execute.mjs | 4 ++ .../_expected/foo.js | 5 ++ .../assets/logo_reverse'-DbGK2oiS.svg | 60 +++++++++++++++++++ .../deopzimize-while-included/_expected.js | 2 +- .../simplify-non-boolean/_expected.js | 4 +- .../samples/nullish-coalescing/_expected.js | 6 +- .../_expected/amd.js | 8 +-- .../_expected/cjs.js | 8 +-- .../_expected/es.js | 8 +-- .../_expected/iife.js | 8 +-- .../_expected/system.js | 8 +-- .../_expected/umd.js | 8 +-- .../recursion-literal/_expected.js | 2 +- .../reexport-function/_expected.js | 2 +- .../_expected/amd.js | 4 +- .../_expected/cjs.js | 4 +- .../_expected/es.js | 4 +- .../_expected/iife.js | 4 +- .../_expected/system.js | 4 +- .../_expected/umd.js | 4 +- 23 files changed, 128 insertions(+), 50 deletions(-) create mode 100644 test/form/samples/cjs-transpiler-re-exports-1/_expected/execute.mjs create mode 100644 test/form/samples/cjs-transpiler-re-exports-1/_expected/foo.js create mode 100644 test/form/samples/cjs-transpiler-re-exports/_expected/execute.mjs create mode 100644 test/form/samples/cjs-transpiler-re-exports/_expected/foo.js create mode 100644 test/form/samples/emit-asset-file/_expected/assets/logo_reverse'-DbGK2oiS.svg diff --git a/src/ast/nodes/LogicalExpression.ts b/src/ast/nodes/LogicalExpression.ts index 55de14861..62e9b8781 100644 --- a/src/ast/nodes/LogicalExpression.ts +++ b/src/ast/nodes/LogicalExpression.ts @@ -185,12 +185,12 @@ export default class LogicalExpression extends NodeBase implements Deoptimizable }: NodeRenderOptions = BLANK ): void { if (!this.left.included || !this.right.included) { - const operatorPos = findFirstOccurrenceOutsideComment( - code.original, - this.operator, - this.left.end - ); if (this.right.included) { + const operatorPos = findFirstOccurrenceOutsideComment( + code.original, + this.operator, + this.left.end + ); const removePos = findNonWhiteSpace(code.original, operatorPos + 2); code.remove(this.start, removePos); if (preventASI) { @@ -198,7 +198,7 @@ export default class LogicalExpression extends NodeBase implements Deoptimizable } this.left.removeAnnotations(code); } else { - code.remove(operatorPos, this.end); + code.remove(this.left.end, this.end); } this.getUsedBranch()!.render(code, options, { isCalleeOfRenderedParent, diff --git a/test/form/samples/cjs-transpiler-re-exports-1/_expected/execute.mjs b/test/form/samples/cjs-transpiler-re-exports-1/_expected/execute.mjs new file mode 100644 index 000000000..15b9a0c4f --- /dev/null +++ b/test/form/samples/cjs-transpiler-re-exports-1/_expected/execute.mjs @@ -0,0 +1,4 @@ +import assert from "node:assert"; +import { foo, __proto__ } from "./cjs.js"; +assert.strictEqual(foo, 1); +assert.strictEqual(__proto__, undefined); \ No newline at end of file diff --git a/test/form/samples/cjs-transpiler-re-exports-1/_expected/foo.js b/test/form/samples/cjs-transpiler-re-exports-1/_expected/foo.js new file mode 100644 index 000000000..a34e9e489 --- /dev/null +++ b/test/form/samples/cjs-transpiler-re-exports-1/_expected/foo.js @@ -0,0 +1,5 @@ +exports.foo = 1; +Object.defineProperty(exports, "__proto__", { + enumerable: true, + value: 2 +}); \ No newline at end of file diff --git a/test/form/samples/cjs-transpiler-re-exports/_expected/execute.mjs b/test/form/samples/cjs-transpiler-re-exports/_expected/execute.mjs new file mode 100644 index 000000000..fe4ca2d9d --- /dev/null +++ b/test/form/samples/cjs-transpiler-re-exports/_expected/execute.mjs @@ -0,0 +1,4 @@ +import assert from "node:assert"; +import { foo, __proto__ } from "./cjs.js"; +assert.strictEqual(foo, 1); +assert.strictEqual(__proto__, 2); \ No newline at end of file diff --git a/test/form/samples/cjs-transpiler-re-exports/_expected/foo.js b/test/form/samples/cjs-transpiler-re-exports/_expected/foo.js new file mode 100644 index 000000000..a34e9e489 --- /dev/null +++ b/test/form/samples/cjs-transpiler-re-exports/_expected/foo.js @@ -0,0 +1,5 @@ +exports.foo = 1; +Object.defineProperty(exports, "__proto__", { + enumerable: true, + value: 2 +}); \ No newline at end of file diff --git a/test/form/samples/emit-asset-file/_expected/assets/logo_reverse'-DbGK2oiS.svg b/test/form/samples/emit-asset-file/_expected/assets/logo_reverse'-DbGK2oiS.svg new file mode 100644 index 000000000..31bbbec27 --- /dev/null +++ b/test/form/samples/emit-asset-file/_expected/assets/logo_reverse'-DbGK2oiS.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/form/samples/logical-expression/deopzimize-while-included/_expected.js b/test/form/samples/logical-expression/deopzimize-while-included/_expected.js index 0bdbdb545..fb0bdf81f 100644 --- a/test/form/samples/logical-expression/deopzimize-while-included/_expected.js +++ b/test/form/samples/logical-expression/deopzimize-while-included/_expected.js @@ -1,6 +1,6 @@ let isFirstReassigned = false; -const result1 = (foo(), isFirstReassigned ); +const result1 = (foo(), isFirstReassigned); console.log(result1); let isSecondReassigned = false; diff --git a/test/form/samples/logical-expression/simplify-non-boolean/_expected.js b/test/form/samples/logical-expression/simplify-non-boolean/_expected.js index d887e0745..9aba650ea 100644 --- a/test/form/samples/logical-expression/simplify-non-boolean/_expected.js +++ b/test/form/samples/logical-expression/simplify-non-boolean/_expected.js @@ -1,6 +1,6 @@ -console.log('keep' ); +console.log('keep'); console.log('keep'); const x = 'keep'; -console.log(x ); +console.log(x); console.log(x); diff --git a/test/form/samples/nullish-coalescing/_expected.js b/test/form/samples/nullish-coalescing/_expected.js index 16ea2b260..e1465d60c 100644 --- a/test/form/samples/nullish-coalescing/_expected.js +++ b/test/form/samples/nullish-coalescing/_expected.js @@ -5,9 +5,9 @@ function getNullSideEffect() { console.log('null'); console.log('undefined'); -console.log(0 ); -console.log('' ); -console.log('Hello' ); +console.log(0); +console.log(''); +console.log('Hello'); console.log('null return'); console.log(getNullSideEffect() ?? 'null return with side-effect'); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/amd.js b/test/form/samples/side-effects-logical-expressions/_expected/amd.js index b682a2bf3..5cd0363fa 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/amd.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/amd.js @@ -22,14 +22,14 @@ define((function () { 'use strict'; (null).foo = 1; // effect - (true )(); - (false )(); + (true)(); + (false)(); ((() => console.log( 'effect' )))(); ((() => console.log( 'effect' )))(); // effect - (true )()(); - (false )()(); + (true)()(); + (false)()(); ((() => () => console.log( 'effect' )))()(); ((() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/cjs.js b/test/form/samples/side-effects-logical-expressions/_expected/cjs.js index f39a15cad..2efd87aac 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/cjs.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/cjs.js @@ -22,13 +22,13 @@ const foo = { (null).foo = 1; // effect -(true )(); -(false )(); +(true)(); +(false)(); ((() => console.log( 'effect' )))(); ((() => console.log( 'effect' )))(); // effect -(true )()(); -(false )()(); +(true)()(); +(false)()(); ((() => () => console.log( 'effect' )))()(); ((() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/es.js b/test/form/samples/side-effects-logical-expressions/_expected/es.js index 9de928c8d..0814df63c 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/es.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/es.js @@ -20,13 +20,13 @@ const foo = { (null).foo = 1; // effect -(true )(); -(false )(); +(true)(); +(false)(); ((() => console.log( 'effect' )))(); ((() => console.log( 'effect' )))(); // effect -(true )()(); -(false )()(); +(true)()(); +(false)()(); ((() => () => console.log( 'effect' )))()(); ((() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/iife.js b/test/form/samples/side-effects-logical-expressions/_expected/iife.js index e20911c96..fb4bea51a 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/iife.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/iife.js @@ -23,14 +23,14 @@ (null).foo = 1; // effect - (true )(); - (false )(); + (true)(); + (false)(); ((() => console.log( 'effect' )))(); ((() => console.log( 'effect' )))(); // effect - (true )()(); - (false )()(); + (true)()(); + (false)()(); ((() => () => console.log( 'effect' )))()(); ((() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/system.js b/test/form/samples/side-effects-logical-expressions/_expected/system.js index d8489dc70..8853d5df6 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/system.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/system.js @@ -25,14 +25,14 @@ System.register([], (function () { (null).foo = 1; // effect - (true )(); - (false )(); + (true)(); + (false)(); ((() => console.log( 'effect' )))(); ((() => console.log( 'effect' )))(); // effect - (true )()(); - (false )()(); + (true)()(); + (false)()(); ((() => () => console.log( 'effect' )))()(); ((() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/umd.js b/test/form/samples/side-effects-logical-expressions/_expected/umd.js index 34c4e745c..6ff0de937 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/umd.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/umd.js @@ -25,14 +25,14 @@ (null).foo = 1; // effect - (true )(); - (false )(); + (true)(); + (false)(); ((() => console.log( 'effect' )))(); ((() => console.log( 'effect' )))(); // effect - (true )()(); - (false )()(); + (true)()(); + (false)()(); ((() => () => console.log( 'effect' )))()(); ((() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/tree-shake-literal-parameter/recursion-literal/_expected.js b/test/form/samples/tree-shake-literal-parameter/recursion-literal/_expected.js index 2fcab0594..3886e024c 100644 --- a/test/form/samples/tree-shake-literal-parameter/recursion-literal/_expected.js +++ b/test/form/samples/tree-shake-literal-parameter/recursion-literal/_expected.js @@ -10,4 +10,4 @@ function fun2(enable) { } } -console.log(fun2()); \ No newline at end of file +console.log(fun2()); diff --git a/test/form/samples/tree-shake-literal-parameter/reexport-function/_expected.js b/test/form/samples/tree-shake-literal-parameter/reexport-function/_expected.js index fd105290a..fb14309f4 100644 --- a/test/form/samples/tree-shake-literal-parameter/reexport-function/_expected.js +++ b/test/form/samples/tree-shake-literal-parameter/reexport-function/_expected.js @@ -4,4 +4,4 @@ function module2 (enable) { } } -console.log(module2()); \ No newline at end of file +console.log(module2()); diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/amd.js b/test/form/samples/tree-shake-logical-expressions/_expected/amd.js index e7058ed79..0c14d126d 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/amd.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/amd.js @@ -6,9 +6,9 @@ define((function () { 'use strict'; console.log(getStringA()); - console.log(false ); + console.log(false); - console.log(true ); + console.log(true); function getStringD() { return 'D'; diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js b/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js index d36465fff..9792485a4 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js @@ -6,9 +6,9 @@ function getStringA() { console.log(getStringA()); -console.log(false ); +console.log(false); -console.log(true ); +console.log(true); function getStringD() { return 'D'; diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/es.js b/test/form/samples/tree-shake-logical-expressions/_expected/es.js index bc04584d0..0ccf0053a 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/es.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/es.js @@ -4,9 +4,9 @@ function getStringA() { console.log(getStringA()); -console.log(false ); +console.log(false); -console.log(true ); +console.log(true); function getStringD() { return 'D'; diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/iife.js b/test/form/samples/tree-shake-logical-expressions/_expected/iife.js index 665bd6743..180a99ca0 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/iife.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/iife.js @@ -7,9 +7,9 @@ console.log(getStringA()); - console.log(false ); + console.log(false); - console.log(true ); + console.log(true); function getStringD() { return 'D'; diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/system.js b/test/form/samples/tree-shake-logical-expressions/_expected/system.js index b9caa3d83..8891e125e 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/system.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/system.js @@ -9,9 +9,9 @@ System.register([], (function () { console.log(getStringA()); - console.log(false ); + console.log(false); - console.log(true ); + console.log(true); function getStringD() { return 'D'; diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/umd.js b/test/form/samples/tree-shake-logical-expressions/_expected/umd.js index 62dc3debf..07635dd05 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/umd.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/umd.js @@ -9,9 +9,9 @@ console.log(getStringA()); - console.log(false ); + console.log(false); - console.log(true ); + console.log(true); function getStringD() { return 'D'; From 64af3df651f41baa5c96f34fa5ec6588160a0e24 Mon Sep 17 00:00:00 2001 From: XiaoPi <530257315@qq.com> Date: Sat, 20 Jul 2024 13:21:11 +0800 Subject: [PATCH 6/9] feat: implementing decorator support (#5562) * feat: implementing decorator support * tweak test * downgrade macOS version in test * ci: the key of node modules cache include target * downgrade macOS version in build * Try to use ARM build for tests instead * tree-shaking * improve coverage * tweak and fix * Detect side effects of non-call decorators --------- Co-authored-by: Lukas Taegert-Atkinson --- .github/workflows/build-and-tests.yml | 2 +- .vscode/settings.json | 2 +- rust/parse_ast/src/ast_nodes/decorator.rs | 9 ++ .../src/ast_nodes/method_definition.rs | 14 ++- rust/parse_ast/src/ast_nodes/mod.rs | 1 + .../src/ast_nodes/property_definition.rs | 22 +++-- .../src/ast_nodes/shared/class_node.rs | 16 +++- .../convert_ast/converter/ast_constants.rs | 71 ++++++++-------- .../src/convert_ast/converter/ast_macros.rs | 85 +++++++++++-------- rust/parse_ast/src/lib.rs | 1 + scripts/ast-types.js | 6 +- src/ast/bufferParsers.ts | 33 ++++--- src/ast/childNodeKeys.ts | 9 +- src/ast/nodes/ClassDeclaration.ts | 1 + src/ast/nodes/Decorator.ts | 20 +++++ src/ast/nodes/MethodDefinition.ts | 8 +- src/ast/nodes/NodeType.ts | 2 + src/ast/nodes/PropertyDefinition.ts | 9 +- src/ast/nodes/index.ts | 2 + src/ast/nodes/shared/ClassNode.ts | 6 +- src/ast/utils/checkEffectForNodes.ts | 11 +++ src/rollup/types.d.ts | 17 ++++ src/utils/bufferToAst.ts | 35 +++++--- .../_config.js | 4 + .../_expected.js | 13 +++ .../decorator-identifiers-deconflict/first.js | 6 ++ .../decorator-identifiers-deconflict/main.js | 2 + .../second.js | 6 ++ .../decorator-tree-shaking-2/_config.js | 4 + .../decorator-tree-shaking-2/_expected.js | 6 ++ .../samples/decorator-tree-shaking-2/main.js | 6 ++ .../samples/decorator-tree-shaking/_config.js | 4 + .../decorator-tree-shaking/_expected.js | 52 ++++++++++++ .../samples/decorator-tree-shaking/main.js | 70 +++++++++++++++ test/form/samples/decorator/_config.js | 4 + test/form/samples/decorator/_expected.js | 10 +++ test/form/samples/decorator/main.js | 10 +++ test/utils.js | 7 ++ 38 files changed, 475 insertions(+), 111 deletions(-) create mode 100644 rust/parse_ast/src/ast_nodes/decorator.rs create mode 100644 src/ast/nodes/Decorator.ts create mode 100644 src/ast/utils/checkEffectForNodes.ts create mode 100644 test/form/samples/decorator-identifiers-deconflict/_config.js create mode 100644 test/form/samples/decorator-identifiers-deconflict/_expected.js create mode 100644 test/form/samples/decorator-identifiers-deconflict/first.js create mode 100644 test/form/samples/decorator-identifiers-deconflict/main.js create mode 100644 test/form/samples/decorator-identifiers-deconflict/second.js create mode 100644 test/form/samples/decorator-tree-shaking-2/_config.js create mode 100644 test/form/samples/decorator-tree-shaking-2/_expected.js create mode 100644 test/form/samples/decorator-tree-shaking-2/main.js create mode 100644 test/form/samples/decorator-tree-shaking/_config.js create mode 100644 test/form/samples/decorator-tree-shaking/_expected.js create mode 100644 test/form/samples/decorator-tree-shaking/main.js create mode 100644 test/form/samples/decorator/_config.js create mode 100644 test/form/samples/decorator/_expected.js create mode 100644 test/form/samples/decorator/main.js diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml index d4d78c736..8d5940671 100644 --- a/.github/workflows/build-and-tests.yml +++ b/.github/workflows/build-and-tests.yml @@ -377,7 +377,7 @@ jobs: - host: windows-latest target: x86_64-pc-windows-msvc - host: macos-latest - target: x86_64-apple-darwin + target: aarch64-apple-darwin node: - '18.0.0' - '20' diff --git a/.vscode/settings.json b/.vscode/settings.json index 971a04ed3..51e97b396 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,7 @@ "typescript.format.insertSpaceAfterConstructor": true, "typescript.format.enable": true, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "references.preferredLocation": "peek", "vue.features.codeActions.enable": false diff --git a/rust/parse_ast/src/ast_nodes/decorator.rs b/rust/parse_ast/src/ast_nodes/decorator.rs new file mode 100644 index 000000000..128fb730d --- /dev/null +++ b/rust/parse_ast/src/ast_nodes/decorator.rs @@ -0,0 +1,9 @@ +use crate::convert_ast::converter::AstConverter; +use crate::store_decorator; +use swc_ecma_ast::Decorator; + +impl<'a> AstConverter<'a> { + pub fn store_decorator(&mut self, decorator: &Decorator) { + store_decorator!(self, span => decorator.span, expression=>[decorator.expr, convert_expression]); + } +} diff --git a/rust/parse_ast/src/ast_nodes/method_definition.rs b/rust/parse_ast/src/ast_nodes/method_definition.rs index 942d1ca1f..e7fd91e2f 100644 --- a/rust/parse_ast/src/ast_nodes/method_definition.rs +++ b/rust/parse_ast/src/ast_nodes/method_definition.rs @@ -6,8 +6,9 @@ use swc_ecma_ast::{ use crate::convert_ast::converter::analyze_code::find_first_occurrence_outside_comment; use crate::convert_ast::converter::ast_constants::{ - METHOD_DEFINITION_KEY_OFFSET, METHOD_DEFINITION_KIND_OFFSET, METHOD_DEFINITION_RESERVED_BYTES, - METHOD_DEFINITION_VALUE_OFFSET, TYPE_FUNCTION_EXPRESSION, TYPE_METHOD_DEFINITION, + METHOD_DEFINITION_DECORATORS_OFFSET, METHOD_DEFINITION_KEY_OFFSET, METHOD_DEFINITION_KIND_OFFSET, + METHOD_DEFINITION_RESERVED_BYTES, METHOD_DEFINITION_VALUE_OFFSET, TYPE_FUNCTION_EXPRESSION, + TYPE_METHOD_DEFINITION, }; use crate::convert_ast::converter::string_constants::{ STRING_CONSTRUCTOR, STRING_GET, STRING_METHOD, STRING_SET, @@ -33,6 +34,15 @@ impl<'a> AstConverter<'a> { ); // flags store_method_definition_flags!(self, end_position, static => is_static, computed => is_computed); + // decorators + self.convert_item_list( + &function.decorators, + end_position + METHOD_DEFINITION_DECORATORS_OFFSET, + |ast_convertor, decorator| { + ast_convertor.store_decorator(decorator); + true + }, + ); // kind let kind_position = end_position + METHOD_DEFINITION_KIND_OFFSET; self.buffer[kind_position..kind_position + 4].copy_from_slice(match kind { diff --git a/rust/parse_ast/src/ast_nodes/mod.rs b/rust/parse_ast/src/ast_nodes/mod.rs index 95a81a6c6..2284cc3e0 100644 --- a/rust/parse_ast/src/ast_nodes/mod.rs +++ b/rust/parse_ast/src/ast_nodes/mod.rs @@ -16,6 +16,7 @@ pub mod class_expression; pub mod conditional_expression; pub mod continue_statement; pub mod debugger_statement; +pub mod decorator; pub mod directive; pub mod do_while_statement; pub mod empty_statement; diff --git a/rust/parse_ast/src/ast_nodes/property_definition.rs b/rust/parse_ast/src/ast_nodes/property_definition.rs index e98060cdf..24d8c89d3 100644 --- a/rust/parse_ast/src/ast_nodes/property_definition.rs +++ b/rust/parse_ast/src/ast_nodes/property_definition.rs @@ -1,10 +1,10 @@ use swc_common::Span; -use swc_ecma_ast::{ClassProp, Expr, PrivateProp, PropName}; +use swc_ecma_ast::{ClassProp, Decorator, Expr, PrivateProp, PropName}; use crate::ast_nodes::method_definition::PropOrPrivateName; use crate::convert_ast::converter::ast_constants::{ - PROPERTY_DEFINITION_KEY_OFFSET, PROPERTY_DEFINITION_RESERVED_BYTES, - PROPERTY_DEFINITION_VALUE_OFFSET, TYPE_PROPERTY_DEFINITION, + PROPERTY_DEFINITION_DECORATORS_OFFSET, PROPERTY_DEFINITION_KEY_OFFSET, + PROPERTY_DEFINITION_RESERVED_BYTES, PROPERTY_DEFINITION_VALUE_OFFSET, TYPE_PROPERTY_DEFINITION, }; use crate::convert_ast::converter::AstConverter; use crate::store_property_definition_flags; @@ -17,6 +17,7 @@ impl<'a> AstConverter<'a> { is_static: bool, key: PropOrPrivateName, value: &Option<&Expr>, + decorators: &[Decorator], ) { let end_position = self.add_type_and_start( &TYPE_PROPERTY_DEFINITION, @@ -24,6 +25,17 @@ impl<'a> AstConverter<'a> { PROPERTY_DEFINITION_RESERVED_BYTES, false, ); + // flags + store_property_definition_flags!(self, end_position, static => is_static, computed => is_computed); + // decorators + self.convert_item_list( + decorators, + end_position + PROPERTY_DEFINITION_DECORATORS_OFFSET, + |ast_converter, decorator| { + ast_converter.store_decorator(decorator); + true + }, + ); // key self.update_reference_position(end_position + PROPERTY_DEFINITION_KEY_OFFSET); match key { @@ -32,8 +44,6 @@ impl<'a> AstConverter<'a> { } PropOrPrivateName::PrivateName(private_name) => self.store_private_identifier(private_name), } - // flags - store_property_definition_flags!(self, end_position, static => is_static, computed => is_computed); // value if let Some(expression) = value { self.update_reference_position(end_position + PROPERTY_DEFINITION_VALUE_OFFSET); @@ -50,6 +60,7 @@ impl<'a> AstConverter<'a> { class_property.is_static, PropOrPrivateName::PropName(&class_property.key), &class_property.value.as_deref(), + &class_property.decorators, ); } @@ -60,6 +71,7 @@ impl<'a> AstConverter<'a> { private_property.is_static, PropOrPrivateName::PrivateName(&private_property.key), &private_property.value.as_deref(), + &private_property.decorators, ); } } diff --git a/rust/parse_ast/src/ast_nodes/shared/class_node.rs b/rust/parse_ast/src/ast_nodes/shared/class_node.rs index f32a039ec..67d6fa32b 100644 --- a/rust/parse_ast/src/ast_nodes/shared/class_node.rs +++ b/rust/parse_ast/src/ast_nodes/shared/class_node.rs @@ -3,8 +3,8 @@ use swc_ecma_ast::{Class, Ident}; use crate::convert_ast::converter::analyze_code::find_first_occurrence_outside_comment; use crate::convert_ast::converter::ast_constants::{ - CLASS_DECLARATION_BODY_OFFSET, CLASS_DECLARATION_ID_OFFSET, CLASS_DECLARATION_RESERVED_BYTES, - CLASS_DECLARATION_SUPER_CLASS_OFFSET, + CLASS_DECLARATION_BODY_OFFSET, CLASS_DECLARATION_DECORATORS_OFFSET, CLASS_DECLARATION_ID_OFFSET, + CLASS_DECLARATION_RESERVED_BYTES, CLASS_DECLARATION_SUPER_CLASS_OFFSET, }; use crate::convert_ast::converter::AstConverter; @@ -22,6 +22,18 @@ impl<'a> AstConverter<'a> { false, ); let mut body_start_search = class.span.lo.0 - 1; + // decorators + self.convert_item_list( + &class.decorators, + end_position + CLASS_DECLARATION_DECORATORS_OFFSET, + |ast_converter, decorator| { + ast_converter.store_decorator(decorator); + true + }, + ); + if !class.decorators.is_empty() { + body_start_search = class.decorators.last().unwrap().span.hi.0 - 1; + } // id if let Some(identifier) = identifier { self.update_reference_position(end_position + CLASS_DECLARATION_ID_OFFSET); diff --git a/rust/parse_ast/src/convert_ast/converter/ast_constants.rs b/rust/parse_ast/src/convert_ast/converter/ast_constants.rs index 2048f4721..72f6335f8 100644 --- a/rust/parse_ast/src/convert_ast/converter/ast_constants.rs +++ b/rust/parse_ast/src/convert_ast/converter/ast_constants.rs @@ -15,29 +15,29 @@ pub const TYPE_CHAIN_EXPRESSION: [u8; 4] = 13u32.to_ne_bytes(); pub const TYPE_CLASS_BODY: [u8; 4] = 14u32.to_ne_bytes(); pub const TYPE_CLASS_DECLARATION: [u8; 4] = 15u32.to_ne_bytes(); pub const TYPE_CLASS_EXPRESSION: [u8; 4] = 16u32.to_ne_bytes(); -pub const TYPE_EXPORT_ALL_DECLARATION: [u8; 4] = 23u32.to_ne_bytes(); -pub const TYPE_EXPORT_DEFAULT_DECLARATION: [u8; 4] = 24u32.to_ne_bytes(); -pub const TYPE_EXPORT_NAMED_DECLARATION: [u8; 4] = 25u32.to_ne_bytes(); -pub const TYPE_FUNCTION_DECLARATION: [u8; 4] = 31u32.to_ne_bytes(); -pub const TYPE_FUNCTION_EXPRESSION: [u8; 4] = 32u32.to_ne_bytes(); -pub const TYPE_IDENTIFIER: [u8; 4] = 33u32.to_ne_bytes(); -pub const TYPE_IMPORT_ATTRIBUTE: [u8; 4] = 35u32.to_ne_bytes(); -pub const TYPE_IMPORT_DECLARATION: [u8; 4] = 36u32.to_ne_bytes(); -pub const TYPE_IMPORT_EXPRESSION: [u8; 4] = 38u32.to_ne_bytes(); -pub const TYPE_LOGICAL_EXPRESSION: [u8; 4] = 48u32.to_ne_bytes(); -pub const TYPE_MEMBER_EXPRESSION: [u8; 4] = 49u32.to_ne_bytes(); -pub const TYPE_META_PROPERTY: [u8; 4] = 50u32.to_ne_bytes(); -pub const TYPE_METHOD_DEFINITION: [u8; 4] = 51u32.to_ne_bytes(); -pub const TYPE_NEW_EXPRESSION: [u8; 4] = 52u32.to_ne_bytes(); -pub const TYPE_PROGRAM: [u8; 4] = 56u32.to_ne_bytes(); -pub const TYPE_PROPERTY: [u8; 4] = 57u32.to_ne_bytes(); -pub const TYPE_PROPERTY_DEFINITION: [u8; 4] = 58u32.to_ne_bytes(); -pub const TYPE_REST_ELEMENT: [u8; 4] = 59u32.to_ne_bytes(); -pub const TYPE_SPREAD_ELEMENT: [u8; 4] = 62u32.to_ne_bytes(); -pub const TYPE_TEMPLATE_LITERAL: [u8; 4] = 69u32.to_ne_bytes(); -pub const TYPE_TRY_STATEMENT: [u8; 4] = 72u32.to_ne_bytes(); -pub const TYPE_VARIABLE_DECLARATION: [u8; 4] = 75u32.to_ne_bytes(); -pub const TYPE_VARIABLE_DECLARATOR: [u8; 4] = 76u32.to_ne_bytes(); +pub const TYPE_EXPORT_ALL_DECLARATION: [u8; 4] = 24u32.to_ne_bytes(); +pub const TYPE_EXPORT_DEFAULT_DECLARATION: [u8; 4] = 25u32.to_ne_bytes(); +pub const TYPE_EXPORT_NAMED_DECLARATION: [u8; 4] = 26u32.to_ne_bytes(); +pub const TYPE_FUNCTION_DECLARATION: [u8; 4] = 32u32.to_ne_bytes(); +pub const TYPE_FUNCTION_EXPRESSION: [u8; 4] = 33u32.to_ne_bytes(); +pub const TYPE_IDENTIFIER: [u8; 4] = 34u32.to_ne_bytes(); +pub const TYPE_IMPORT_ATTRIBUTE: [u8; 4] = 36u32.to_ne_bytes(); +pub const TYPE_IMPORT_DECLARATION: [u8; 4] = 37u32.to_ne_bytes(); +pub const TYPE_IMPORT_EXPRESSION: [u8; 4] = 39u32.to_ne_bytes(); +pub const TYPE_LOGICAL_EXPRESSION: [u8; 4] = 49u32.to_ne_bytes(); +pub const TYPE_MEMBER_EXPRESSION: [u8; 4] = 50u32.to_ne_bytes(); +pub const TYPE_META_PROPERTY: [u8; 4] = 51u32.to_ne_bytes(); +pub const TYPE_METHOD_DEFINITION: [u8; 4] = 52u32.to_ne_bytes(); +pub const TYPE_NEW_EXPRESSION: [u8; 4] = 53u32.to_ne_bytes(); +pub const TYPE_PROGRAM: [u8; 4] = 57u32.to_ne_bytes(); +pub const TYPE_PROPERTY: [u8; 4] = 58u32.to_ne_bytes(); +pub const TYPE_PROPERTY_DEFINITION: [u8; 4] = 59u32.to_ne_bytes(); +pub const TYPE_REST_ELEMENT: [u8; 4] = 60u32.to_ne_bytes(); +pub const TYPE_SPREAD_ELEMENT: [u8; 4] = 63u32.to_ne_bytes(); +pub const TYPE_TEMPLATE_LITERAL: [u8; 4] = 70u32.to_ne_bytes(); +pub const TYPE_TRY_STATEMENT: [u8; 4] = 73u32.to_ne_bytes(); +pub const TYPE_VARIABLE_DECLARATION: [u8; 4] = 76u32.to_ne_bytes(); +pub const TYPE_VARIABLE_DECLARATOR: [u8; 4] = 77u32.to_ne_bytes(); pub const PANIC_ERROR_RESERVED_BYTES: usize = 8; pub const PANIC_ERROR_MESSAGE_OFFSET: usize = 4; @@ -83,10 +83,11 @@ pub const CHAIN_EXPRESSION_EXPRESSION_OFFSET: usize = 4; pub const CLASS_BODY_RESERVED_BYTES: usize = 8; pub const CLASS_BODY_BODY_OFFSET: usize = 4; -pub const CLASS_DECLARATION_RESERVED_BYTES: usize = 16; -pub const CLASS_DECLARATION_ID_OFFSET: usize = 4; -pub const CLASS_DECLARATION_SUPER_CLASS_OFFSET: usize = 8; -pub const CLASS_DECLARATION_BODY_OFFSET: usize = 12; +pub const CLASS_DECLARATION_RESERVED_BYTES: usize = 20; +pub const CLASS_DECLARATION_DECORATORS_OFFSET: usize = 4; +pub const CLASS_DECLARATION_ID_OFFSET: usize = 8; +pub const CLASS_DECLARATION_SUPER_CLASS_OFFSET: usize = 12; +pub const CLASS_DECLARATION_BODY_OFFSET: usize = 16; pub const EXPORT_ALL_DECLARATION_RESERVED_BYTES: usize = 16; pub const EXPORT_ALL_DECLARATION_EXPORTED_OFFSET: usize = 4; @@ -132,10 +133,11 @@ pub const META_PROPERTY_RESERVED_BYTES: usize = 12; pub const META_PROPERTY_META_OFFSET: usize = 4; pub const META_PROPERTY_PROPERTY_OFFSET: usize = 8; -pub const METHOD_DEFINITION_RESERVED_BYTES: usize = 20; -pub const METHOD_DEFINITION_KEY_OFFSET: usize = 8; -pub const METHOD_DEFINITION_VALUE_OFFSET: usize = 12; -pub const METHOD_DEFINITION_KIND_OFFSET: usize = 16; +pub const METHOD_DEFINITION_RESERVED_BYTES: usize = 24; +pub const METHOD_DEFINITION_DECORATORS_OFFSET: usize = 8; +pub const METHOD_DEFINITION_KEY_OFFSET: usize = 12; +pub const METHOD_DEFINITION_VALUE_OFFSET: usize = 16; +pub const METHOD_DEFINITION_KIND_OFFSET: usize = 20; pub const NEW_EXPRESSION_RESERVED_BYTES: usize = 16; pub const NEW_EXPRESSION_ANNOTATIONS_OFFSET: usize = 4; @@ -151,9 +153,10 @@ pub const PROPERTY_KEY_OFFSET: usize = 8; pub const PROPERTY_VALUE_OFFSET: usize = 12; pub const PROPERTY_KIND_OFFSET: usize = 16; -pub const PROPERTY_DEFINITION_RESERVED_BYTES: usize = 16; -pub const PROPERTY_DEFINITION_KEY_OFFSET: usize = 8; -pub const PROPERTY_DEFINITION_VALUE_OFFSET: usize = 12; +pub const PROPERTY_DEFINITION_RESERVED_BYTES: usize = 20; +pub const PROPERTY_DEFINITION_DECORATORS_OFFSET: usize = 8; +pub const PROPERTY_DEFINITION_KEY_OFFSET: usize = 12; +pub const PROPERTY_DEFINITION_VALUE_OFFSET: usize = 16; pub const REST_ELEMENT_RESERVED_BYTES: usize = 8; pub const REST_ELEMENT_ARGUMENT_OFFSET: usize = 4; diff --git a/rust/parse_ast/src/convert_ast/converter/ast_macros.rs b/rust/parse_ast/src/convert_ast/converter/ast_macros.rs index dee54ed74..9270789b4 100644 --- a/rust/parse_ast/src/convert_ast/converter/ast_macros.rs +++ b/rust/parse_ast/src/convert_ast/converter/ast_macros.rs @@ -92,11 +92,24 @@ macro_rules! store_debugger_statement { }; } +#[macro_export] +macro_rules! store_decorator { + ($self:expr, span => $span:expr, expression => [$expression_value:expr, $expression_converter:ident]) => { + let _: &mut AstConverter = $self; + let end_position = $self.add_type_and_start(&20u32.to_ne_bytes(), &$span, 8, false); + // expression + $self.update_reference_position(end_position + 4); + $self.$expression_converter(&$expression_value); + // end + $self.add_end(end_position, &$span); + }; +} + #[macro_export] macro_rules! store_directive { ($self:expr, span => $span:expr, directive => $directive_value:expr, expression => [$expression_value:expr, $expression_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&20u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&21u32.to_ne_bytes(), &$span, 12, false); // directive $self.convert_string($directive_value, end_position + 4); // expression @@ -111,7 +124,7 @@ macro_rules! store_directive { macro_rules! store_do_while_statement { ($self:expr, span => $span:expr, body => [$body_value:expr, $body_converter:ident], test => [$test_value:expr, $test_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&21u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&22u32.to_ne_bytes(), &$span, 12, false); // body $self.update_reference_position(end_position + 4); $self.$body_converter(&$body_value); @@ -127,7 +140,7 @@ macro_rules! store_do_while_statement { macro_rules! store_empty_statement { ($self:expr, span => $span:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&22u32.to_ne_bytes(), &$span, 4, false); + let end_position = $self.add_type_and_start(&23u32.to_ne_bytes(), &$span, 4, false); // end $self.add_end(end_position, &$span); }; @@ -137,7 +150,7 @@ macro_rules! store_empty_statement { macro_rules! store_export_specifier { ($self:expr, span => $span:expr, local => [$local_value:expr, $local_converter:ident], exported => [$exported_value:expr, $exported_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&26u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&27u32.to_ne_bytes(), &$span, 12, false); // local $self.update_reference_position(end_position + 4); $self.$local_converter(&$local_value); @@ -155,7 +168,7 @@ macro_rules! store_export_specifier { macro_rules! store_expression_statement { ($self:expr, span => $span:expr, expression => [$expression_value:expr, $expression_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&27u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&28u32.to_ne_bytes(), &$span, 8, false); // expression $self.update_reference_position(end_position + 4); $self.$expression_converter(&$expression_value); @@ -168,7 +181,7 @@ macro_rules! store_expression_statement { macro_rules! store_for_in_statement { ($self:expr, span => $span:expr, left => [$left_value:expr, $left_converter:ident], right => [$right_value:expr, $right_converter:ident], body => [$body_value:expr, $body_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&28u32.to_ne_bytes(), &$span, 16, false); + let end_position = $self.add_type_and_start(&29u32.to_ne_bytes(), &$span, 16, false); // left $self.update_reference_position(end_position + 4); $self.$left_converter(&$left_value); @@ -188,7 +201,7 @@ macro_rules! store_for_of_statement { ($self:expr, span => $span:expr, await => $await_value:expr, left => [$left_value:expr, $left_converter:ident], right => [$right_value:expr, $right_converter:ident], body => [$body_value:expr, $body_converter:ident]) => { let _: &mut AstConverter = $self; let end_position = $self.add_type_and_start( - &29u32.to_ne_bytes(), + &30u32.to_ne_bytes(), &$span, 20, false, @@ -213,7 +226,7 @@ macro_rules! store_for_of_statement { macro_rules! store_for_statement { ($self:expr, span => $span:expr, init => [$init_value:expr, $init_converter:ident], test => [$test_value:expr, $test_converter:ident], update => [$update_value:expr, $update_converter:ident], body => [$body_value:expr, $body_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&30u32.to_ne_bytes(), &$span, 20, false); + let end_position = $self.add_type_and_start(&31u32.to_ne_bytes(), &$span, 20, false); // init if let Some(value) = $init_value.as_ref() { $self.update_reference_position(end_position + 4); @@ -241,7 +254,7 @@ macro_rules! store_for_statement { macro_rules! store_if_statement { ($self:expr, span => $span:expr, test => [$test_value:expr, $test_converter:ident], consequent => [$consequent_value:expr, $consequent_converter:ident], alternate => [$alternate_value:expr, $alternate_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&34u32.to_ne_bytes(), &$span, 16, false); + let end_position = $self.add_type_and_start(&35u32.to_ne_bytes(), &$span, 16, false); // test $self.update_reference_position(end_position + 4); $self.$test_converter(&$test_value); @@ -262,7 +275,7 @@ macro_rules! store_if_statement { macro_rules! store_import_default_specifier { ($self:expr, span => $span:expr, local => [$local_value:expr, $local_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&37u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&38u32.to_ne_bytes(), &$span, 8, false); // local $self.update_reference_position(end_position + 4); $self.$local_converter(&$local_value); @@ -275,7 +288,7 @@ macro_rules! store_import_default_specifier { macro_rules! store_import_namespace_specifier { ($self:expr, span => $span:expr, local => [$local_value:expr, $local_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&39u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&40u32.to_ne_bytes(), &$span, 8, false); // local $self.update_reference_position(end_position + 4); $self.$local_converter(&$local_value); @@ -288,7 +301,7 @@ macro_rules! store_import_namespace_specifier { macro_rules! store_import_specifier { ($self:expr, span => $span:expr, imported => [$imported_value:expr, $imported_converter:ident], local => [$local_value:expr, $local_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&40u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&41u32.to_ne_bytes(), &$span, 12, false); // imported if let Some(value) = $imported_value.as_ref() { $self.update_reference_position(end_position + 4); @@ -306,7 +319,7 @@ macro_rules! store_import_specifier { macro_rules! store_labeled_statement { ($self:expr, span => $span:expr, label => [$label_value:expr, $label_converter:ident], body => [$body_value:expr, $body_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&41u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&42u32.to_ne_bytes(), &$span, 12, false); // label $self.update_reference_position(end_position + 4); $self.$label_converter(&$label_value); @@ -322,7 +335,7 @@ macro_rules! store_labeled_statement { macro_rules! store_literal_big_int { ($self:expr, span => $span:expr, bigint => $bigint_value:expr, raw => $raw_value:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&42u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&43u32.to_ne_bytes(), &$span, 12, false); // bigint $self.convert_string($bigint_value, end_position + 4); // raw @@ -337,7 +350,7 @@ macro_rules! store_literal_boolean { ($self:expr, span => $span:expr, value => $value_value:expr) => { let _: &mut AstConverter = $self; let end_position = $self.add_type_and_start( - &43u32.to_ne_bytes(), + &44u32.to_ne_bytes(), &$span, 8, false, @@ -353,7 +366,7 @@ macro_rules! store_literal_boolean { macro_rules! store_literal_null { ($self:expr, span => $span:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&44u32.to_ne_bytes(), &$span, 4, false); + let end_position = $self.add_type_and_start(&45u32.to_ne_bytes(), &$span, 4, false); // end $self.add_end(end_position, &$span); }; @@ -363,7 +376,7 @@ macro_rules! store_literal_null { macro_rules! store_literal_number { ($self:expr, span => $span:expr, raw => $raw_value:expr, value => $value_value:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&45u32.to_ne_bytes(), &$span, 16, false); + let end_position = $self.add_type_and_start(&46u32.to_ne_bytes(), &$span, 16, false); // raw if let Some(value) = $raw_value.as_ref() { $self.convert_string(value, end_position + 4); @@ -380,7 +393,7 @@ macro_rules! store_literal_number { macro_rules! store_literal_reg_exp { ($self:expr, span => $span:expr, flags => $flags_value:expr, pattern => $pattern_value:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&46u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&47u32.to_ne_bytes(), &$span, 12, false); // flags $self.convert_string($flags_value, end_position + 4); // pattern @@ -394,7 +407,7 @@ macro_rules! store_literal_reg_exp { macro_rules! store_literal_string { ($self:expr, span => $span:expr, value => $value_value:expr, raw => $raw_value:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&47u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&48u32.to_ne_bytes(), &$span, 12, false); // value $self.convert_string($value_value, end_position + 4); // raw @@ -410,7 +423,7 @@ macro_rules! store_literal_string { macro_rules! store_object_expression { ($self:expr, span => $span:expr, properties => [$properties_value:expr, $properties_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&53u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&54u32.to_ne_bytes(), &$span, 8, false); // properties $self.convert_item_list( &$properties_value, @@ -429,7 +442,7 @@ macro_rules! store_object_expression { macro_rules! store_object_pattern { ($self:expr, span => $span:expr, properties => [$properties_value:expr, $properties_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&54u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&55u32.to_ne_bytes(), &$span, 8, false); // properties $self.convert_item_list( &$properties_value, @@ -448,7 +461,7 @@ macro_rules! store_object_pattern { macro_rules! store_private_identifier { ($self:expr, span => $span:expr, name => $name_value:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&55u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&56u32.to_ne_bytes(), &$span, 8, false); // name $self.convert_string($name_value, end_position + 4); // end @@ -460,7 +473,7 @@ macro_rules! store_private_identifier { macro_rules! store_return_statement { ($self:expr, span => $span:expr, argument => [$argument_value:expr, $argument_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&60u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&61u32.to_ne_bytes(), &$span, 8, false); // argument if let Some(value) = $argument_value.as_ref() { $self.update_reference_position(end_position + 4); @@ -475,7 +488,7 @@ macro_rules! store_return_statement { macro_rules! store_sequence_expression { ($self:expr, span => $span:expr, expressions => [$expressions_value:expr, $expressions_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&61u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&62u32.to_ne_bytes(), &$span, 8, false); // expressions $self.convert_item_list( &$expressions_value, @@ -494,7 +507,7 @@ macro_rules! store_sequence_expression { macro_rules! store_static_block { ($self:expr, span => $span:expr, body => [$body_value:expr, $body_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&63u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&64u32.to_ne_bytes(), &$span, 8, false); // body $self.convert_item_list(&$body_value, end_position + 4, |ast_converter, node| { ast_converter.$body_converter(node); @@ -509,7 +522,7 @@ macro_rules! store_static_block { macro_rules! store_super_element { ($self:expr, span => $span:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&64u32.to_ne_bytes(), &$span, 4, false); + let end_position = $self.add_type_and_start(&65u32.to_ne_bytes(), &$span, 4, false); // end $self.add_end(end_position, &$span); }; @@ -519,7 +532,7 @@ macro_rules! store_super_element { macro_rules! store_switch_case { ($self:expr, span => $span:expr, test => [$test_value:expr, $test_converter:ident], consequent => [$consequent_value:expr, $consequent_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&65u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&66u32.to_ne_bytes(), &$span, 12, false); // test if let Some(value) = $test_value.as_ref() { $self.update_reference_position(end_position + 4); @@ -543,7 +556,7 @@ macro_rules! store_switch_case { macro_rules! store_switch_statement { ($self:expr, span => $span:expr, discriminant => [$discriminant_value:expr, $discriminant_converter:ident], cases => [$cases_value:expr, $cases_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&66u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&67u32.to_ne_bytes(), &$span, 12, false); // discriminant $self.update_reference_position(end_position + 4); $self.$discriminant_converter(&$discriminant_value); @@ -561,7 +574,7 @@ macro_rules! store_switch_statement { macro_rules! store_tagged_template_expression { ($self:expr, span => $span:expr, tag => [$tag_value:expr, $tag_converter:ident], quasi => [$quasi_value:expr, $quasi_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&67u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&68u32.to_ne_bytes(), &$span, 12, false); // tag $self.update_reference_position(end_position + 4); $self.$tag_converter(&$tag_value); @@ -578,7 +591,7 @@ macro_rules! store_template_element { ($self:expr, span => $span:expr, tail => $tail_value:expr, cooked => $cooked_value:expr, raw => $raw_value:expr) => { let _: &mut AstConverter = $self; let end_position = $self.add_type_and_start( - &68u32.to_ne_bytes(), + &69u32.to_ne_bytes(), &$span, 16, false, @@ -600,7 +613,7 @@ macro_rules! store_template_element { macro_rules! store_this_expression { ($self:expr, span => $span:expr) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&70u32.to_ne_bytes(), &$span, 4, false); + let end_position = $self.add_type_and_start(&71u32.to_ne_bytes(), &$span, 4, false); // end $self.add_end(end_position, &$span); }; @@ -610,7 +623,7 @@ macro_rules! store_this_expression { macro_rules! store_throw_statement { ($self:expr, span => $span:expr, argument => [$argument_value:expr, $argument_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&71u32.to_ne_bytes(), &$span, 8, false); + let end_position = $self.add_type_and_start(&72u32.to_ne_bytes(), &$span, 8, false); // argument $self.update_reference_position(end_position + 4); $self.$argument_converter(&$argument_value); @@ -623,7 +636,7 @@ macro_rules! store_throw_statement { macro_rules! store_unary_expression { ($self:expr, span => $span:expr, operator => $operator_value:expr, argument => [$argument_value:expr, $argument_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&73u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&74u32.to_ne_bytes(), &$span, 12, false); // operator let operator_position = end_position + 4; $self.buffer[operator_position..operator_position + 4].copy_from_slice($operator_value); @@ -640,7 +653,7 @@ macro_rules! store_update_expression { ($self:expr, span => $span:expr, prefix => $prefix_value:expr, operator => $operator_value:expr, argument => [$argument_value:expr, $argument_converter:ident]) => { let _: &mut AstConverter = $self; let end_position = $self.add_type_and_start( - &74u32.to_ne_bytes(), + &75u32.to_ne_bytes(), &$span, 16, false, @@ -662,7 +675,7 @@ macro_rules! store_update_expression { macro_rules! store_while_statement { ($self:expr, span => $span:expr, test => [$test_value:expr, $test_converter:ident], body => [$body_value:expr, $body_converter:ident]) => { let _: &mut AstConverter = $self; - let end_position = $self.add_type_and_start(&77u32.to_ne_bytes(), &$span, 12, false); + let end_position = $self.add_type_and_start(&78u32.to_ne_bytes(), &$span, 12, false); // test $self.update_reference_position(end_position + 4); $self.$test_converter(&$test_value); @@ -679,7 +692,7 @@ macro_rules! store_yield_expression { ($self:expr, span => $span:expr, delegate => $delegate_value:expr, argument => [$argument_value:expr, $argument_converter:ident]) => { let _: &mut AstConverter = $self; let end_position = $self.add_type_and_start( - &78u32.to_ne_bytes(), + &79u32.to_ne_bytes(), &$span, 12, false, diff --git a/rust/parse_ast/src/lib.rs b/rust/parse_ast/src/lib.rs index 7cf07bd61..6ffe5074d 100644 --- a/rust/parse_ast/src/lib.rs +++ b/rust/parse_ast/src/lib.rs @@ -24,6 +24,7 @@ pub fn parse_ast(code: String, allow_return_outside_function: bool) -> Vec { allow_return_outside_function, import_attributes: true, explicit_resource_management: true, + decorators: true, ..Default::default() }); diff --git a/scripts/ast-types.js b/scripts/ast-types.js index e18ea27ed..fbfa8f807 100644 --- a/scripts/ast-types.js +++ b/scripts/ast-types.js @@ -1,6 +1,6 @@ /** * This file contains the AST node descriptions for the ESTree AST. - * From this file, "npm run build:ast:converters" will generate + * From this file, "npm run build:ast-converters" will generate * - /rust/parse_ast/src/convert_ast/converter/ast_constants.rs: * Constants that describe how the AST nodes are encoded in Rust. * - /src/utils/bufferToAst.ts: @@ -187,6 +187,7 @@ export const AST_NODES = { }, ClassDeclaration: { fields: [ + ['decorators', 'NodeList'], ['id', 'OptionalNode'], ['superClass', 'OptionalNode'], ['body', 'Node'] @@ -214,6 +215,7 @@ export const AST_NODES = { fields: [['label', 'OptionalNode']] }, DebuggerStatement: {}, + Decorator: { fields: [['expression', 'Node']] }, Directive: { astType: 'ExpressionStatement', estreeType: 'estree.Directive', @@ -478,6 +480,7 @@ export const AST_NODES = { }, MethodDefinition: { fields: [ + ['decorators', 'NodeList'], ['key', 'Node'], ['value', 'Node'], ['kind', 'FixedString'] @@ -531,6 +534,7 @@ export const AST_NODES = { }, PropertyDefinition: { fields: [ + ['decorators', 'NodeList'], ['key', 'Node'], ['value', 'OptionalNode'] ], diff --git a/src/ast/bufferParsers.ts b/src/ast/bufferParsers.ts index 3f7c90ec0..b197bd23e 100644 --- a/src/ast/bufferParsers.ts +++ b/src/ast/bufferParsers.ts @@ -27,6 +27,7 @@ import ClassExpression from './nodes/ClassExpression'; import ConditionalExpression from './nodes/ConditionalExpression'; import ContinueStatement from './nodes/ContinueStatement'; import DebuggerStatement from './nodes/DebuggerStatement'; +import Decorator from './nodes/Decorator'; import DoWhileStatement from './nodes/DoWhileStatement'; import EmptyStatement from './nodes/EmptyStatement'; import ExportAllDeclaration from './nodes/ExportAllDeclaration'; @@ -118,6 +119,7 @@ const nodeTypeStrings = [ 'ConditionalExpression', 'ContinueStatement', 'DebuggerStatement', + 'Decorator', 'ExpressionStatement', 'DoWhileStatement', 'EmptyStatement', @@ -200,6 +202,7 @@ const nodeConstructors: (typeof NodeBase)[] = [ ConditionalExpression, ContinueStatement, DebuggerStatement, + Decorator, ExpressionStatement, DoWhileStatement, EmptyStatement, @@ -364,22 +367,24 @@ const bufferParsers: ((node: any, position: number, buffer: AstBuffer) => void)[ }, function classDeclaration(node: ClassDeclaration, position, buffer) { const { scope } = node; - const idPosition = buffer[position]; + node.decorators = convertNodeList(node, scope, buffer[position], buffer); + const idPosition = buffer[position + 1]; node.id = idPosition === 0 ? null : convertNode(node, scope.parent as ChildScope, idPosition, buffer); - const superClassPosition = buffer[position + 1]; + const superClassPosition = buffer[position + 2]; node.superClass = superClassPosition === 0 ? null : convertNode(node, scope, superClassPosition, buffer); - node.body = convertNode(node, scope, buffer[position + 2], buffer); + node.body = convertNode(node, scope, buffer[position + 3], buffer); }, function classExpression(node: ClassExpression, position, buffer) { const { scope } = node; - const idPosition = buffer[position]; + node.decorators = convertNodeList(node, scope, buffer[position], buffer); + const idPosition = buffer[position + 1]; node.id = idPosition === 0 ? null : convertNode(node, scope, idPosition, buffer); - const superClassPosition = buffer[position + 1]; + const superClassPosition = buffer[position + 2]; node.superClass = superClassPosition === 0 ? null : convertNode(node, scope, superClassPosition, buffer); - node.body = convertNode(node, scope, buffer[position + 2], buffer); + node.body = convertNode(node, scope, buffer[position + 3], buffer); }, function conditionalExpression(node: ConditionalExpression, position, buffer) { const { scope } = node; @@ -393,6 +398,10 @@ const bufferParsers: ((node: any, position: number, buffer: AstBuffer) => void)[ node.label = labelPosition === 0 ? null : convertNode(node, scope, labelPosition, buffer); }, function debuggerStatement() {}, + function decorator(node: Decorator, position, buffer) { + const { scope } = node; + node.expression = convertNode(node, scope, buffer[position], buffer); + }, function directive(node: ExpressionStatement, position, buffer) { const { scope } = node; node.directive = buffer.convertString(buffer[position]); @@ -613,9 +622,10 @@ const bufferParsers: ((node: any, position: number, buffer: AstBuffer) => void)[ const flags = buffer[position]; node.static = (flags & 1) === 1; node.computed = (flags & 2) === 2; - node.key = convertNode(node, scope, buffer[position + 1], buffer); - node.value = convertNode(node, scope, buffer[position + 2], buffer); - node.kind = FIXED_STRINGS[buffer[position + 3]] as estree.MethodDefinition['kind']; + node.decorators = convertNodeList(node, scope, buffer[position + 1], buffer); + node.key = convertNode(node, scope, buffer[position + 2], buffer); + node.value = convertNode(node, scope, buffer[position + 3], buffer); + node.kind = FIXED_STRINGS[buffer[position + 4]] as estree.MethodDefinition['kind']; }, function newExpression(node: NewExpression, position, buffer) { const { scope } = node; @@ -655,8 +665,9 @@ const bufferParsers: ((node: any, position: number, buffer: AstBuffer) => void)[ const flags = buffer[position]; node.static = (flags & 1) === 1; node.computed = (flags & 2) === 2; - node.key = convertNode(node, scope, buffer[position + 1], buffer); - const valuePosition = buffer[position + 2]; + node.decorators = convertNodeList(node, scope, buffer[position + 1], buffer); + node.key = convertNode(node, scope, buffer[position + 2], buffer); + const valuePosition = buffer[position + 3]; node.value = valuePosition === 0 ? null : convertNode(node, scope, valuePosition, buffer); }, function restElement(node: RestElement, position, buffer) { diff --git a/src/ast/childNodeKeys.ts b/src/ast/childNodeKeys.ts index c1e6e433b..e6ab43b65 100644 --- a/src/ast/childNodeKeys.ts +++ b/src/ast/childNodeKeys.ts @@ -15,11 +15,12 @@ export const childNodeKeys: Record = { CatchClause: ['param', 'body'], ChainExpression: ['expression'], ClassBody: ['body'], - ClassDeclaration: ['id', 'superClass', 'body'], - ClassExpression: ['id', 'superClass', 'body'], + ClassDeclaration: ['decorators', 'id', 'superClass', 'body'], + ClassExpression: ['decorators', 'id', 'superClass', 'body'], ConditionalExpression: ['test', 'consequent', 'alternate'], ContinueStatement: ['label'], DebuggerStatement: [], + Decorator: ['expression'], DoWhileStatement: ['body', 'test'], EmptyStatement: [], ExportAllDeclaration: ['exported', 'source', 'attributes'], @@ -45,7 +46,7 @@ export const childNodeKeys: Record = { LogicalExpression: ['left', 'right'], MemberExpression: ['object', 'property'], MetaProperty: ['meta', 'property'], - MethodDefinition: ['key', 'value'], + MethodDefinition: ['decorators', 'key', 'value'], NewExpression: ['callee', 'arguments'], ObjectExpression: ['properties'], ObjectPattern: ['properties'], @@ -54,7 +55,7 @@ export const childNodeKeys: Record = { PrivateIdentifier: [], Program: ['body'], Property: ['key', 'value'], - PropertyDefinition: ['key', 'value'], + PropertyDefinition: ['decorators', 'key', 'value'], RestElement: ['argument'], ReturnStatement: ['argument'], SequenceExpression: ['expressions'], diff --git a/src/ast/nodes/ClassDeclaration.ts b/src/ast/nodes/ClassDeclaration.ts index 8ff2a0c53..76b1465cc 100644 --- a/src/ast/nodes/ClassDeclaration.ts +++ b/src/ast/nodes/ClassDeclaration.ts @@ -41,6 +41,7 @@ export default class ClassDeclaration extends ClassNode { } const renderedVariable = variable.getName(getPropertyAccess); if (renderedVariable !== name) { + this.decorators.map(decorator => decorator.render(code, options)); this.superClass?.render(code, options); this.body.render(code, { ...options, diff --git a/src/ast/nodes/Decorator.ts b/src/ast/nodes/Decorator.ts new file mode 100644 index 000000000..67dfe97c9 --- /dev/null +++ b/src/ast/nodes/Decorator.ts @@ -0,0 +1,20 @@ +import type { HasEffectsContext } from '../ExecutionContext'; +import { NODE_INTERACTION_UNKNOWN_CALL } from '../NodeInteractions'; +import { EMPTY_PATH } from '../utils/PathTracker'; +import type * as NodeType from './NodeType'; +import { type ExpressionNode, NodeBase } from './shared/Node'; + +export default class Decorator extends NodeBase { + declare type: NodeType.tDecorator; + declare expression: ExpressionNode; + hasEffects(context: HasEffectsContext): boolean { + return ( + this.expression.hasEffects(context) || + this.expression.hasEffectsOnInteractionAtPath( + EMPTY_PATH, + NODE_INTERACTION_UNKNOWN_CALL, + context + ) + ); + } +} diff --git a/src/ast/nodes/MethodDefinition.ts b/src/ast/nodes/MethodDefinition.ts index 9b84c7eef..d4d66b48c 100644 --- a/src/ast/nodes/MethodDefinition.ts +++ b/src/ast/nodes/MethodDefinition.ts @@ -1,3 +1,6 @@ +import type { HasEffectsContext } from '../ExecutionContext'; +import { checkEffectForNodes } from '../utils/checkEffectForNodes'; +import type Decorator from './Decorator'; import type FunctionExpression from './FunctionExpression'; import type * as NodeType from './NodeType'; import type PrivateIdentifier from './PrivateIdentifier'; @@ -10,6 +13,9 @@ export default class MethodDefinition extends MethodBase { declare static: boolean; declare type: NodeType.tMethodDefinition; declare value: FunctionExpression; - + declare decorators: Decorator[]; + hasEffects(context: HasEffectsContext): boolean { + return super.hasEffects(context) || checkEffectForNodes(this.decorators, context); + } protected applyDeoptimizations() {} } diff --git a/src/ast/nodes/NodeType.ts b/src/ast/nodes/NodeType.ts index db1224862..f3dfbb7d7 100644 --- a/src/ast/nodes/NodeType.ts +++ b/src/ast/nodes/NodeType.ts @@ -19,6 +19,7 @@ export type tClassExpression = 'ClassExpression'; export type tConditionalExpression = 'ConditionalExpression'; export type tContinueStatement = 'ContinueStatement'; export type tDebuggerStatement = 'DebuggerStatement'; +export type tDecorator = 'Decorator'; export type tDoWhileStatement = 'DoWhileStatement'; export type tEmptyStatement = 'EmptyStatement'; export type tExportAllDeclaration = 'ExportAllDeclaration'; @@ -93,6 +94,7 @@ export const ClassExpression: tClassExpression = 'ClassExpression'; export const ConditionalExpression: tConditionalExpression = 'ConditionalExpression'; export const ContinueStatement: tContinueStatement = 'ContinueStatement'; export const DebuggerStatement: tDebuggerStatement = 'DebuggerStatement'; +export const Decorator: tDecorator = 'Decorator'; export const DoWhileStatement: tDoWhileStatement = 'DoWhileStatement'; export const EmptyStatement: tEmptyStatement = 'EmptyStatement'; export const ExportAllDeclaration: tExportAllDeclaration = 'ExportAllDeclaration'; diff --git a/src/ast/nodes/PropertyDefinition.ts b/src/ast/nodes/PropertyDefinition.ts index 6f15cc7c1..bb1e9903d 100644 --- a/src/ast/nodes/PropertyDefinition.ts +++ b/src/ast/nodes/PropertyDefinition.ts @@ -2,6 +2,8 @@ import type { DeoptimizableEntity } from '../DeoptimizableEntity'; import type { HasEffectsContext } from '../ExecutionContext'; import type { NodeInteraction, NodeInteractionCalled } from '../NodeInteractions'; import type { ObjectPath, PathTracker } from '../utils/PathTracker'; +import { checkEffectForNodes } from '../utils/checkEffectForNodes'; +import type Decorator from './Decorator'; import type * as NodeType from './NodeType'; import type PrivateIdentifier from './PrivateIdentifier'; import { Flag, isFlagSet, setFlag } from './shared/BitFlags'; @@ -18,6 +20,7 @@ export default class PropertyDefinition extends NodeBase { declare static: boolean; declare type: NodeType.tPropertyDefinition; declare value: ExpressionNode | null; + declare decorators: Decorator[]; get computed(): boolean { return isFlagSet(this.flags, Flag.computed); @@ -60,7 +63,11 @@ export default class PropertyDefinition extends NodeBase { } hasEffects(context: HasEffectsContext): boolean { - return this.key.hasEffects(context) || (this.static && !!this.value?.hasEffects(context)); + return ( + this.key.hasEffects(context) || + (this.static && !!this.value?.hasEffects(context)) || + checkEffectForNodes(this.decorators, context) + ); } hasEffectsOnInteractionAtPath( diff --git a/src/ast/nodes/index.ts b/src/ast/nodes/index.ts index eb42ab564..b05b174da 100644 --- a/src/ast/nodes/index.ts +++ b/src/ast/nodes/index.ts @@ -19,6 +19,7 @@ import ClassExpression from './ClassExpression'; import ConditionalExpression from './ConditionalExpression'; import ContinueStatement from './ContinueStatement'; import DebuggerStatement from './DebuggerStatement'; +import Decorator from './Decorator'; import DoWhileStatement from './DoWhileStatement'; import EmptyStatement from './EmptyStatement'; import ExportAllDeclaration from './ExportAllDeclaration'; @@ -98,6 +99,7 @@ export const nodeConstructors: { ConditionalExpression, ContinueStatement, DebuggerStatement, + Decorator, DoWhileStatement, EmptyStatement, ExportAllDeclaration, diff --git a/src/ast/nodes/shared/ClassNode.ts b/src/ast/nodes/shared/ClassNode.ts index 6105bf319..43ca97814 100644 --- a/src/ast/nodes/shared/ClassNode.ts +++ b/src/ast/nodes/shared/ClassNode.ts @@ -11,7 +11,9 @@ import { UNKNOWN_PATH, UnknownKey } from '../../utils/PathTracker'; +import { checkEffectForNodes } from '../../utils/checkEffectForNodes'; import type ClassBody from '../ClassBody'; +import type Decorator from '../Decorator'; import Identifier from '../Identifier'; import type Literal from '../Literal'; import MethodDefinition from '../MethodDefinition'; @@ -26,6 +28,7 @@ export default class ClassNode extends NodeBase implements DeoptimizableEntity { declare body: ClassBody; declare id: Identifier | null; declare superClass: ExpressionNode | null; + declare decorators: Decorator[]; private declare classConstructor: MethodDefinition | null; private objectEntity: ObjectEntity | null = null; @@ -79,7 +82,7 @@ export default class ClassNode extends NodeBase implements DeoptimizableEntity { if (!this.deoptimized) this.applyDeoptimizations(); const initEffect = this.superClass?.hasEffects(context) || this.body.hasEffects(context); this.id?.markDeclarationReached(); - return initEffect || super.hasEffects(context); + return initEffect || super.hasEffects(context) || checkEffectForNodes(this.decorators, context); } hasEffectsOnInteractionAtPath( @@ -101,6 +104,7 @@ export default class ClassNode extends NodeBase implements DeoptimizableEntity { this.included = true; this.superClass?.include(context, includeChildrenRecursively); this.body.include(context, includeChildrenRecursively); + for (const decorator of this.decorators) decorator.include(context, includeChildrenRecursively); if (this.id) { this.id.markDeclarationReached(); this.id.include(); diff --git a/src/ast/utils/checkEffectForNodes.ts b/src/ast/utils/checkEffectForNodes.ts new file mode 100644 index 000000000..a4124b07e --- /dev/null +++ b/src/ast/utils/checkEffectForNodes.ts @@ -0,0 +1,11 @@ +import type { HasEffectsContext } from '../ExecutionContext'; +import type { NodeBase } from '../nodes/shared/Node'; + +export function checkEffectForNodes(nodes: Array, context: HasEffectsContext): boolean { + for (const node of nodes) { + if (node.hasEffects(context)) { + return true; + } + } + return false; +} diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index 0b44882a8..53af79153 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -1,4 +1,21 @@ import type { Node as EstreeNode, Program } from 'estree'; +import type * as estree from 'estree'; + +declare module 'estree' { + export interface Decorator extends estree.BaseNode { + type: 'Decorator'; + expression: estree.Expression; + } + interface PropertyDefinition { + decorators: estree.Decorator[]; + } + interface MethodDefinition { + decorators: estree.Decorator[]; + } + interface BaseClass { + decorators: estree.Decorator[]; + } +} export const VERSION: string; diff --git a/src/utils/bufferToAst.ts b/src/utils/bufferToAst.ts index a6a0976ce..bf870cc1d 100644 --- a/src/utils/bufferToAst.ts +++ b/src/utils/bufferToAst.ts @@ -170,27 +170,29 @@ const nodeConverters: ((position: number, buffer: AstBuffer) => any)[] = [ }; }, function classDeclaration(position, buffer): ClassDeclarationNode { - const idPosition = buffer[position + 2]; - const superClassPosition = buffer[position + 3]; + const idPosition = buffer[position + 3]; + const superClassPosition = buffer[position + 4]; return { type: 'ClassDeclaration', start: buffer[position], end: buffer[position + 1], + decorators: convertNodeList(buffer[position + 2], buffer), id: idPosition === 0 ? null : convertNode(idPosition, buffer), superClass: superClassPosition === 0 ? null : convertNode(superClassPosition, buffer), - body: convertNode(buffer[position + 4], buffer) + body: convertNode(buffer[position + 5], buffer) }; }, function classExpression(position, buffer): ClassExpressionNode { - const idPosition = buffer[position + 2]; - const superClassPosition = buffer[position + 3]; + const idPosition = buffer[position + 3]; + const superClassPosition = buffer[position + 4]; return { type: 'ClassExpression', start: buffer[position], end: buffer[position + 1], + decorators: convertNodeList(buffer[position + 2], buffer), id: idPosition === 0 ? null : convertNode(idPosition, buffer), superClass: superClassPosition === 0 ? null : convertNode(superClassPosition, buffer), - body: convertNode(buffer[position + 4], buffer) + body: convertNode(buffer[position + 5], buffer) }; }, function conditionalExpression(position, buffer): ConditionalExpressionNode { @@ -219,6 +221,14 @@ const nodeConverters: ((position: number, buffer: AstBuffer) => any)[] = [ end: buffer[position + 1] }; }, + function decorator(position, buffer): DecoratorNode { + return { + type: 'Decorator', + start: buffer[position], + end: buffer[position + 1], + expression: convertNode(buffer[position + 2], buffer) + }; + }, function directive(position, buffer): DirectiveNode { return { type: 'ExpressionStatement', @@ -551,9 +561,10 @@ const nodeConverters: ((position: number, buffer: AstBuffer) => any)[] = [ end: buffer[position + 1], static: (flags & 1) === 1, computed: (flags & 2) === 2, - key: convertNode(buffer[position + 3], buffer), - value: convertNode(buffer[position + 4], buffer), - kind: FIXED_STRINGS[buffer[position + 5]] as estree.MethodDefinition['kind'] + decorators: convertNodeList(buffer[position + 3], buffer), + key: convertNode(buffer[position + 4], buffer), + value: convertNode(buffer[position + 5], buffer), + kind: FIXED_STRINGS[buffer[position + 6]] as estree.MethodDefinition['kind'] }; }, function newExpression(position, buffer): NewExpressionNode { @@ -620,14 +631,15 @@ const nodeConverters: ((position: number, buffer: AstBuffer) => any)[] = [ }, function propertyDefinition(position, buffer): PropertyDefinitionNode { const flags = buffer[position + 2]; - const valuePosition = buffer[position + 4]; + const valuePosition = buffer[position + 5]; return { type: 'PropertyDefinition', start: buffer[position], end: buffer[position + 1], static: (flags & 1) === 1, computed: (flags & 2) === 2, - key: convertNode(buffer[position + 3], buffer), + decorators: convertNodeList(buffer[position + 3], buffer), + key: convertNode(buffer[position + 4], buffer), value: valuePosition === 0 ? null : convertNode(valuePosition, buffer) }; }, @@ -843,6 +855,7 @@ export type ClassExpressionNode = RollupAstNode; export type ConditionalExpressionNode = RollupAstNode; export type ContinueStatementNode = RollupAstNode; export type DebuggerStatementNode = RollupAstNode; +export type DecoratorNode = RollupAstNode; export type DirectiveNode = RollupAstNode; export type DoWhileStatementNode = RollupAstNode; export type EmptyStatementNode = RollupAstNode; diff --git a/test/form/samples/decorator-identifiers-deconflict/_config.js b/test/form/samples/decorator-identifiers-deconflict/_config.js new file mode 100644 index 000000000..1202dfce6 --- /dev/null +++ b/test/form/samples/decorator-identifiers-deconflict/_config.js @@ -0,0 +1,4 @@ +module.exports = defineTest({ + description: 'de-conflict identifiers of decorators', + verifyAst: false +}); diff --git a/test/form/samples/decorator-identifiers-deconflict/_expected.js b/test/form/samples/decorator-identifiers-deconflict/_expected.js new file mode 100644 index 000000000..f09535c56 --- /dev/null +++ b/test/form/samples/decorator-identifiers-deconflict/_expected.js @@ -0,0 +1,13 @@ +function fooDecorator$1() { + console.log('first effect'); +} + +let Foo$1 = @fooDecorator$1 +class Foo {}; + +function fooDecorator() { + console.log('second effect'); +} + +@fooDecorator +class Foo {} diff --git a/test/form/samples/decorator-identifiers-deconflict/first.js b/test/form/samples/decorator-identifiers-deconflict/first.js new file mode 100644 index 000000000..abab3322c --- /dev/null +++ b/test/form/samples/decorator-identifiers-deconflict/first.js @@ -0,0 +1,6 @@ +function fooDecorator() { + console.log('first effect'); +} + +@fooDecorator +class Foo {} diff --git a/test/form/samples/decorator-identifiers-deconflict/main.js b/test/form/samples/decorator-identifiers-deconflict/main.js new file mode 100644 index 000000000..0da9babd2 --- /dev/null +++ b/test/form/samples/decorator-identifiers-deconflict/main.js @@ -0,0 +1,2 @@ +import './first'; +import './second'; diff --git a/test/form/samples/decorator-identifiers-deconflict/second.js b/test/form/samples/decorator-identifiers-deconflict/second.js new file mode 100644 index 000000000..5278ed5de --- /dev/null +++ b/test/form/samples/decorator-identifiers-deconflict/second.js @@ -0,0 +1,6 @@ +function fooDecorator() { + console.log('second effect'); +} + +@fooDecorator +class Foo {} diff --git a/test/form/samples/decorator-tree-shaking-2/_config.js b/test/form/samples/decorator-tree-shaking-2/_config.js new file mode 100644 index 000000000..e964fc29c --- /dev/null +++ b/test/form/samples/decorator-tree-shaking-2/_config.js @@ -0,0 +1,4 @@ +module.exports = defineTest({ + description: 'retain the decorator function if the decorated class is retained', + verifyAst: false +}); diff --git a/test/form/samples/decorator-tree-shaking-2/_expected.js b/test/form/samples/decorator-tree-shaking-2/_expected.js new file mode 100644 index 000000000..1e4722ff3 --- /dev/null +++ b/test/form/samples/decorator-tree-shaking-2/_expected.js @@ -0,0 +1,6 @@ +function decorator() {} + +@decorator +class Main {} + +assert.ok(Main); diff --git a/test/form/samples/decorator-tree-shaking-2/main.js b/test/form/samples/decorator-tree-shaking-2/main.js new file mode 100644 index 000000000..1e4722ff3 --- /dev/null +++ b/test/form/samples/decorator-tree-shaking-2/main.js @@ -0,0 +1,6 @@ +function decorator() {} + +@decorator +class Main {} + +assert.ok(Main); diff --git a/test/form/samples/decorator-tree-shaking/_config.js b/test/form/samples/decorator-tree-shaking/_config.js new file mode 100644 index 000000000..bb849b653 --- /dev/null +++ b/test/form/samples/decorator-tree-shaking/_config.js @@ -0,0 +1,4 @@ +module.exports = defineTest({ + description: 'retain the class if the calling of decorator function has effects', + verifyAst: false +}); diff --git a/test/form/samples/decorator-tree-shaking/_expected.js b/test/form/samples/decorator-tree-shaking/_expected.js new file mode 100644 index 000000000..0c0332f7b --- /dev/null +++ b/test/form/samples/decorator-tree-shaking/_expected.js @@ -0,0 +1,52 @@ +// retained +function decorator() { + console.log('effect'); +} + +@decorator +class Main {} + +// retained +function decorator2() { + console.log('effect'); +} + +class Main2 { + @decorator2 + a = 1; +} + +// retained +function decorator3() { + console.log('effect'); +} +class Main3 { + @decorator3 + a() {} +} + +// retained +function decorator5() { + console.log('effect'); + return () => {}; +} +@decorator5() +class Main5 {} + +// retained +function decorator6() { + return () => { + console.log('effect'); + }; +} +@decorator6() +class Main6 {} + +// retained +function decorator8() { + console.log('effect'); + return () => {}; +} + +@(decorator8()) +class Main8 {} diff --git a/test/form/samples/decorator-tree-shaking/main.js b/test/form/samples/decorator-tree-shaking/main.js new file mode 100644 index 000000000..8e84011b5 --- /dev/null +++ b/test/form/samples/decorator-tree-shaking/main.js @@ -0,0 +1,70 @@ +// retained +function decorator() { + console.log('effect'); +} + +@decorator +class Main {} + +// retained +function decorator2() { + console.log('effect'); +} + +class Main2 { + @decorator2 + a = 1; +} + +// retained +function decorator3() { + console.log('effect'); +} +class Main3 { + @decorator3 + a() {} +} + +// removed +function decorator4() {} + +@decorator4 +class Main4 { + @decorator4 + a = 1; + @decorator4 + b() {} +} + +// retained +function decorator5() { + console.log('effect'); + return () => {}; +} +@decorator5() +class Main5 {} + +// retained +function decorator6() { + return () => { + console.log('effect'); + }; +} +@decorator6() +class Main6 {} + +// removed +function decorator7() { + return () => {}; +} +@decorator7() +class Main7 {} + +// retained +function decorator8() { + console.log('effect'); + return () => {}; +} + +@(false || decorator8()) +class Main8 {} diff --git a/test/form/samples/decorator/_config.js b/test/form/samples/decorator/_config.js new file mode 100644 index 000000000..b2ea582ac --- /dev/null +++ b/test/form/samples/decorator/_config.js @@ -0,0 +1,4 @@ +module.exports = defineTest({ + description: 'parsing decorators successfully', + verifyAst: false +}); diff --git a/test/form/samples/decorator/_expected.js b/test/form/samples/decorator/_expected.js new file mode 100644 index 000000000..6d007e7f7 --- /dev/null +++ b/test/form/samples/decorator/_expected.js @@ -0,0 +1,10 @@ +function decorator() {} + +@decorator +@decorator2 +class Test { + @decorator + a = 1; + @decorator + b() {} +} diff --git a/test/form/samples/decorator/main.js b/test/form/samples/decorator/main.js new file mode 100644 index 000000000..6d007e7f7 --- /dev/null +++ b/test/form/samples/decorator/main.js @@ -0,0 +1,10 @@ +function decorator() {} + +@decorator +@decorator2 +class Test { + @decorator + a = 1; + @decorator + b() {} +} diff --git a/test/utils.js b/test/utils.js index 12b5efb1e..4f566fda5 100644 --- a/test/utils.js +++ b/test/utils.js @@ -479,6 +479,13 @@ const replaceStringifyValues = (key, value) => { const { options, ...nonOptionsProperties } = value; return { ...nonOptionsProperties, ...(options ? { arguments: [options] } : {}) }; } + case 'ClassDeclaration': + case 'ClassExpression': + case 'PropertyDefinition': + case 'MethodDefinition': { + const { decorators, ...rest } = value; + return rest; + } } return key.startsWith('_') From f4831d93de44a5d077e254f14eb9a0bd0c39c131 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sat, 20 Jul 2024 07:34:47 +0200 Subject: [PATCH 7/9] Fix types --- src/rollup/types.d.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index 53af79153..9eec93e68 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -1,4 +1,3 @@ -import type { Node as EstreeNode, Program } from 'estree'; import type * as estree from 'estree'; declare module 'estree' { @@ -1013,8 +1012,8 @@ type OmittedEstreeKeys = | 'comments'; type RollupAstNode = Omit & AstNodeLocation; -type ProgramNode = RollupAstNode; -export type AstNode = RollupAstNode; +type ProgramNode = RollupAstNode; +export type AstNode = RollupAstNode; export function defineConfig(options: RollupOptions): RollupOptions; export function defineConfig(options: RollupOptions[]): RollupOptions[]; From 28546b5821efcb72c2eb05f422d986524647a0e3 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sat, 20 Jul 2024 07:36:17 +0200 Subject: [PATCH 8/9] 4.19.0 --- CHANGELOG.md | 23 +++++++++++++++++++++++ browser/package.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e58133338..d4590aede 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # rollup changelog +## 4.19.0 + +_2024-07-20_ + +### Features + +- Implement support for decorators (#5562) + +### Bug Fixes + +- Improve soucemap generation when tree-shaking logical expressions (#5581) + +### Pull Requests + +- [#5562](https://github.com/rollup/rollup/pull/5562): feat: implementing decorator support (@TrickyPi, @lukastaegert) +- [#5570](https://github.com/rollup/rollup/pull/5570): refactor(finalisers): condition branch (@Simon-He95, @zhangmo8) +- [#5572](https://github.com/rollup/rollup/pull/5572): Improve chunk and asset type information in docs (@lukastaegert) +- [#5573](https://github.com/rollup/rollup/pull/5573): Switch to audit resolver to ignore requirejs vulnerability (@lukastaegert) +- [#5575](https://github.com/rollup/rollup/pull/5575): chore(deps): update dependency inquirer to v10 (@renovate[bot], @lukastaegert) +- [#5576](https://github.com/rollup/rollup/pull/5576): chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert) +- [#5580](https://github.com/rollup/rollup/pull/5580): chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert) +- [#5581](https://github.com/rollup/rollup/pull/5581): When tree-shaking logical expression, make sure to remove all trailing white-space. (@lukastaegert) + ## 4.18.1 _2024-07-08_ diff --git a/browser/package.json b/browser/package.json index b7a27e9de..3aec63868 100644 --- a/browser/package.json +++ b/browser/package.json @@ -1,6 +1,6 @@ { "name": "@rollup/browser", - "version": "4.18.1", + "version": "4.19.0", "description": "Next-generation ES module bundler browser build", "main": "dist/rollup.browser.js", "module": "dist/es/rollup.browser.js", diff --git a/package-lock.json b/package-lock.json index 3697bc316..d5cbe81bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup", - "version": "4.18.1", + "version": "4.19.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup", - "version": "4.18.1", + "version": "4.19.0", "license": "MIT", "dependencies": { "@types/estree": "1.0.5" diff --git a/package.json b/package.json index f29cf6015..2e24cf6f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup", - "version": "4.18.1", + "version": "4.19.0", "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/es/rollup.js", From 2c9ef24fdf26bd2110e7c02e8ac40e606962c95a Mon Sep 17 00:00:00 2001 From: waynzh Date: Thu, 25 Jul 2024 17:56:53 +0800 Subject: [PATCH 9/9] docs(cn): resolve conflicts --- docs/configuration-options/index.md | 133 ++++++++-------------------- docs/plugin-development/index.md | 76 +++------------- 2 files changed, 48 insertions(+), 161 deletions(-) diff --git a/docs/configuration-options/index.md b/docs/configuration-options/index.md index 82b3b85b2..2be0e907f 100755 --- a/docs/configuration-options/index.md +++ b/docs/configuration-options/index.md @@ -566,18 +566,11 @@ export default { ### output.assetFileNames {#output-assetfilenames} -<<<<<<< HEAD -| | | -| -----: | :-------------------------------------------- | -| 类型: | `string\| ((assetInfo: AssetInfo) => string)` | -| CLI: | `--assetFileNames ` | -| 默认: | `"assets/[name]-[hash][extname]"` | -======= -| | | -| -------: | :--------------------------------------------------- | -| Type: | `string\| ((assetInfo: PreRenderedAsset) => string)` | -| CLI: | `--assetFileNames ` | -| Default: | `"assets/[name]-[hash][extname]"` | +| | | +| -----: | :--------------------------------------------------- | +| 类型: | `string\| ((assetInfo: PreRenderedAsset) => string)` | +| CLI: | `--assetFileNames ` | +| 默认: | `"assets/[name]-[hash][extname]"` | ```typescript interface PreRenderedAsset { @@ -586,7 +579,6 @@ interface PreRenderedAsset { type: 'asset'; } ``` ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 该选项的值是一个匹配模式,用于自定义构建结果中的静态资源名称,或者值为一个函数,对每个资源调用以返回匹配模式。这种模式支持以下的占位符: @@ -595,35 +587,20 @@ interface PreRenderedAsset { - `[hash]`:基于静态资源内容的哈希。也可以通过例如 `[hash:10]` 设置一个特定的哈希值长度。默认情况下,它会生成一个 base-64 的哈希值。如果你需要减少字符集的大小,可以查看 [`output.hashCharacters`](#output-hashcharacters)。 - `[name]`:静态资源的名称,不包含扩展名。 -<<<<<<< HEAD -正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`assetInfo` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中没有 `fileName` 的简化版本。另见[`output.chunkFileNames`](#output-chunkfilenames),[`output.entryFileNames`](#output-entryfilenames)。 -======= -Forward slashes `/` can be used to place files in sub-directories. When using a function, `PreRenderedAsset` is a reduced version of the `OutputAsset` type in [`generateBundle`](../plugin-development/index.md#generatebundle) without the `fileName`. See also [`output.chunkFileNames`](#output-chunkfilenames), [`output.entryFileNames`](#output-entryfilenames). ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`PreRenderedAsset` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中 `OutputAsset` 类型的简化版本,它没有 `fileName`。另见 [`output.chunkFileNames`](#output-chunkfilenames),[`output.entryFileNames`](#output-entryfilenames)。 ### output.banner/output.footer {#output-banner-output-footer} -<<<<<<< HEAD -| | | -| -----: | :----------------------------------------------------------- | -| 类型: | `string \| ((chunk: ChunkInfo) => string\| Promise)` | -| CLI: | `--banner`/`--footer ` | -======= -| | | -| ----: | :--------------------------------------------------------------- | -| Type: | `string \| ((chunk: RenderedChunk) => string\| Promise)` | -| CLI: | `--banner`/`--footer ` | +| | | +| --: | :-- | +| 类型: | `string \| ((chunk: RenderedChunk) => string\| Promise)` | +| CLI: | `--banner`/`--footer ` | -See the [`renderChunk`](../plugin-development/index.md#renderchunk) hook for the `RenderedChunk` type. ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +查看 [`renderChunk`](../plugin-development/index.md#renderchunk) 钩子以了解 `RenderedChunk` 类型。 该选项用于在 bundle 前或后添加一个字符串。其值也可以是一个返回 `string` 的 `Promise` 异步函数(注意:`banner` 和 `footer` 选项不会破坏 sourcemaps)。 -<<<<<<< HEAD -如果该选项值为函数,参数 `chunk` 包含了额外信息,使用了与 [`generateBundle`](../plugin-development/index.md#generatebundle) 钩子相同的 `ChunkInfo` 类型,但有以下区别: -======= -If you supply a function, `chunk` contains additional information about the chunk using a `RenderedChunk` type that is a reduced version of the `OutputChunk` type used in [`generateBundle`](../plugin-development/index.md#generatebundle) hook with the following differences: ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +如果该选项值为函数,那么 `chunk` 就会包含一些额外的信息,通过 `RenderedChunk` 类型来表示,它是 [`generateBundle`](../plugin-development/index.md#generatebundle) 钩子中使用的 `OutputChunk` 类型的简化版本,具有以下区别: - `code` 和 `map` 没有设置,因为该 chunk 还没有被渲染。 - 所有包含哈希值的引用 chunk 文件名将包含哈希占位符。包括 `fileName`、`imports`、`importedBindings`、`dynamicImports` 和 `implicitlyLoadedBefore`。当你在该选项返回的代码中使用这样的占位符文件名或部分文件名时,Rollup 将在 `generateBundle` 之前用实际的哈希值替换掉占位符,确保哈希值反映的是最终生成的 chunk 中的实际内容,包括所有引用的文件哈希值。 @@ -649,18 +626,11 @@ export default { ### output.chunkFileNames {#output-chunkfilenames} -<<<<<<< HEAD -| | | -| -----: | :--------------------------------------------- | -| 类型: | `string \| ((chunkInfo: ChunkInfo) => string)` | -| CLI: | `--chunkFileNames ` | -| 默认: | `"[name]-[hash].js"` | -======= -| | | -| -------: | :---------------------------------------------------- | -| Type: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | -| CLI: | `--chunkFileNames ` | -| Default: | `"[name]-[hash].js"` | +| | | +| -----: | :---------------------------------------------------- | +| 类型: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | +| CLI: | `--chunkFileNames ` | +| 默认: | `"[name]-[hash].js"` | ```typescript interface PreRenderedChunk { @@ -674,7 +644,6 @@ interface PreRenderedChunk { type: 'chunk'; } ``` ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 该选项用于对代码分割中产生的 chunk 自定义命名,其值也可以是一个函数,对每个 chunk 调用以返回匹配模式。这种模式支持以下的占位符: @@ -682,11 +651,7 @@ interface PreRenderedChunk { - `[hash]`:仅基于最终生成的 chunk 内容的哈希值,其中包括 [`renderChunk`](../plugin-development/index.md#renderchunk) 中的转换部分和其依赖文件哈希值。你也可以通过例如 `[hash:10]` 设置一个特定的哈希值长度。默认情况下,它会生成一个 base-64 的哈希值。如果你需要减少字符集的大小,可以查看 [`output.hashCharacters`](#output-hashcharacters)。 - `[name]`:chunk 的名称。它可以通过 [`output.manualChunks`](#output-manualchunks) 选项显示的设置,或者通过插件调用 [`this.emitFile`](../plugin-development/index.md#this-emitfile) 设置。否则,它将会根据 chunk 的内容确定。 -<<<<<<< HEAD -正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`chunkInfo` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 的简化版本,其中不包含依赖于文件名的属性,且没有关于所渲染模块的信息,因为只有在文件名生成之后才会渲染。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.entryFileNames`](#output-entryfilenames)。 -======= -Forward slashes `/` can be used to place files in sub-directories. When using a function, `PreRenderedChunk` is a reduced version of the `OutputChunk` type in [`generateBundle`](../plugin-development/index.md#generatebundle) without properties that depend on file names and no information about the rendered modules as rendering only happens after file names have been generated. You can however access a list of included `moduleIds`. See also [`output.assetFileNames`](#output-assetfilenames), [`output.entryFileNames`](#output-entryfilenames). ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`PreRenderedChunk` 就是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中 `OutputChunk` 类型的简化版本,它没有依赖于文件名的属性,也没有关于所渲染模块的信息,因为渲染只会在文件名生成之后进行。然而,你还是可以访问到 `moduleIds` 列表。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.entryFileNames`](#output-entryfilenames)。 ### output.compact {#output-compact} @@ -750,21 +715,13 @@ Promise.resolve() ### output.entryFileNames {#output-entryfilenames} -<<<<<<< HEAD -| | | -| -----: | :--------------------------------------------- | -| 类型: | `string \| ((chunkInfo: ChunkInfo) => string)` | -| CLI: | `--entryFileNames ` | -| 默认: | `"[name].js"` | -======= -| | | -| -------: | :---------------------------------------------------- | -| Type: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | -| CLI: | `--entryFileNames ` | -| Default: | `"[name].js"` | - -See [`output.chunkFileNames`](#output-chunkfilenames) for the `PreRenderedChunk` type. ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +| | | +| -----: | :---------------------------------------------------- | +| 类型: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | +| CLI: | `--entryFileNames ` | +| 默认: | `"[name].js"` | + +查看 [`output.chunkFileNames`](#output-chunkfilenames) 以了解 `PreRenderedChunk` 类型。 该选项用于指定 chunks 的入口文件模式,其值也可以是一个函数,对每个入口 chunk 调用以返回匹配模式。这种模式支持以下的占位符: @@ -772,11 +729,7 @@ See [`output.chunkFileNames`](#output-chunkfilenames) for the `PreRenderedChunk` - `[hash]`:仅基于最终生成的入口 chunk 内容的哈希值,其中包括 [`renderChunk`](../plugin-development/index.md#renderchunk) 中的转换部分和其依赖文件哈希值。你也可以通过例如 `[hash:10]` 设置一个特定的哈希值长度。默认情况下,它会生成一个 base-64 的哈希值。如果你需要减少字符集的大小,可以查看 [`output.hashCharacters`](#output-hashcharacters)。 - `[name]`:入口文件的文件名(不包含扩展名),除非当入口文件为对象时,才用来定义不同的名称。 -<<<<<<< HEAD -正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`chunkInfo` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 的简化版本,其中不包含依赖于文件名的属性,且没有关于所渲染模块的信息,因为只有在文件名生成之后才会渲染。但是,你可以访问包含 `moduleIds` 的列表。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.chunkFileNames`](#output-chunkfilenames)。 -======= -Forward slashes `/` can be used to place files in sub-directories. When using a function, `PreRenderedChunk` is a reduced version of the `OutputChunk` type in [`generateBundle`](../plugin-development/index.md#generatebundle) without properties that depend on file names and no information about the rendered modules as rendering only happens after file names have been generated. You can however access a list of included `moduleIds`. See also [`output.assetFileNames`](#output-assetfilenames), [`output.chunkFileNames`](#output-chunkfilenames). ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`PreRenderedChunk` 就是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中 `OutputChunk` 类型的简化版本,它没有依赖于文件名的属性,也没有关于所渲染模块的信息,因为渲染只会在文件名生成之后进行。然而,你还是可以访问到 `moduleIds` 列表。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.chunkFileNames`](#output-chunkfilenames)。 在设置 [`output.preserveModules`](#output-preservemodules) 选项时,该模式也会生效。需要注意在这种情况下,`[name]` 将包括来自输出根路径的相对路径以及可能有原始文件的扩展名,如果它不是 `.js`、`.jsx`、`.mjs`、`.cjs`、`.ts`、`.tsx`、`.mts` 或 `.cts` 的其中之一。 @@ -1285,17 +1238,10 @@ import('external2').then(console.log); ### output.intro/output.outro {#output-intro-output-outro} -<<<<<<< HEAD -| | | -| -----: | :----------------------------------------------------------- | -| 类型: | `string \| ((chunk: ChunkInfo) => string\| Promise)` | -| CLI: | `--intro`/`--outro ` | -======= -| | | -| ----: | :--------------------------------------------------------------- | -| Type: | `string \| ((chunk: RenderedChunk) => string\| Promise)` | -| CLI: | `--intro`/`--outro ` | ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +| | | +| --: | :-- | +| 类型: | `string \| ((chunk: RenderedChunk) => string\| Promise)` | +| CLI: | `--intro`/`--outro ` | 除了在特定格式中代码不同外,该选项功能和 [`output.banner/output.footer`](#output-banner-output-footer) 类似。 @@ -1644,19 +1590,12 @@ export default { ### output.sourcemapFileNames -<<<<<<< HEAD -| | | -| -----: | :--------------------------------------------- | -| 类型: | `string \| ((chunkInfo: ChunkInfo) => string)` | -| CLI: | `--sourcemapFileNames ` | -======= -| | | -| ----: | :---------------------------------------------------- | -| Type: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | -| CLI: | `--sourcemapFileNames ` | - -See [`output.chunkFileNames`](#output-chunkfilenames) for the `PreRenderedChunk` type. ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +| | | +| -----: | :---------------------------------------------------- | +| 类型: | `string \| ((chunkInfo: PreRenderedChunk) => string)` | +| CLI: | `--sourcemapFileNames ` | + +查看 [`output.chunkFileNames`](#output-chunkfilenames) 以了解 `PreRenderedChunk` 类型。 该选项指定 sourcemap 的模式,或者是一个根据每个 sourcemap 调用以返回此类模式的函数。该模式支持以下占位符: diff --git a/docs/plugin-development/index.md b/docs/plugin-development/index.md index 29365df09..19c650296 100644 --- a/docs/plugin-development/index.md +++ b/docs/plugin-development/index.md @@ -835,23 +835,14 @@ flowchart TB | | | | --: | :-- | -<<<<<<< HEAD -| 类型: | `(chunkInfo: ChunkInfo) => string` | +| 类型: | `(chunkInfo: RenderedChunk) => string` | | 类别: | sync, sequential | | 上一个钩子: | [`renderChunk`](#renderchunk) | | 下一个钩子: | 如果还有其他需要处理的块,则为 [`renderChunk`](#renderchunk),否则为 [`generateBundle`](#generatebundle) | -可用于增加单个块的哈希值。为每个 Rollup 输出块调用。返回 falsy 值不会修改哈希值。Truthy 值将传递给 [`hash.update`](https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_hash_update_data_inputencoding)。`chunkInfo` 是 [`generateBundle`](#generatebundle) 中的版本的简化版本,不包括 `code` 和 `map`,并在文件名中使用哈希的占位符。 -======= -| Type: | `(chunkInfo: RenderedChunk) => string` | -| Kind: | sync, sequential | -| Previous: | [`renderChunk`](#renderchunk) | -| Next: | [`renderChunk`](#renderchunk) if there are other chunks that still need to be processed, otherwise [`generateBundle`](#generatebundle) | +查看 [`renderChunk`](../plugin-development/index.md#renderchunk) 钩子以了解 `RenderedChunk` 类型。 -See the [`renderChunk`](../plugin-development/index.md#renderchunk) hook for the `RenderedChunk` type. - -Can be used to augment the hash of individual chunks. Called for each Rollup output chunk. Returning a falsy value will not modify the hash. Truthy values will be passed to [`hash.update`](https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_hash_update_data_inputencoding). The `RenderedChunk` type is a reduced version of the `OutputChunk` type in [`generateBundle`](#generatebundle) without `code` and `map` and using placeholders for hashes in file names. ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +可用于增加单个块的哈希值。为每个 Rollup 输出块调用。返回假值不会修改哈希值。如果返回真值,就会被传递给 [`hash.update`](https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_hash_update_data_inputencoding)。`RenderedChunk` 类型是 [`generateBundle`](#generatebundle) 中 `OutputChunk` 类型的简化版本,它不包括 `code` 和 `map`,并在文件名中使用哈希的占位符。 以下插件将使用当前时间戳使块 `foo` 的哈希无效: @@ -875,17 +866,10 @@ function augmentWithDatePlugin() { | | | | --: | :-- | -<<<<<<< HEAD -| 类型: | `string \| ((chunk: ChunkInfo) => string)` | +| 类型: | `string \| ((chunk: RenderedChunk) => string)` | | 类别: | async, sequential | | 上一个钩子: | [`resolveFileUrl`](#resolvefileurl) 用于每个 `import.meta.ROLLUP_FILE_URL_referenceId` 的使用和 [`resolveImportMeta`](#resolveimportmeta) 用于当前块中所有其他 `import.meta` 访问 | | 下一个钩子: | 如果有下一个块中的动态导入表达式,则为 [`renderDynamicImport`](#renderdynamicimport),否则为第一个块的 [`renderChunk`](#renderchunk) | -======= -| Type: | `string \| ((chunk: RenderedChunk) => string)` | -| Kind: | async, sequential | -| Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | -| Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 参见 [`output.banner/output.footer`](../configuration-options/index.md#output-banner-output-footer)。 @@ -905,17 +889,10 @@ function augmentWithDatePlugin() { | | | | --: | :-- | -<<<<<<< HEAD -| 类型: | `string \| ((chunk: ChunkInfo) => string)` | +| 类型: | `string \| ((chunk: RenderedChunk) => string)` | | 类别: | async, sequential | | 上一个钩子: | [`resolveFileUrl`](#resolvefileurl) 用于每个 `import.meta.ROLLUP_FILE_URL_referenceId` 的使用和 [`resolveImportMeta`](#resolveimportmeta) 用于当前块中所有其他 `import.meta` 访问 | | 下一个钩子: | 如果有下一个块中的动态导入表达式,则为 [`renderDynamicImport`](#renderdynamicimport),否则为第一个块的 [`renderChunk`](#renderchunk) | -======= -| Type: | `string \| ((chunk: RenderedChunk) => string)` | -| Kind: | async, sequential | -| Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | -| Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 参见 [`output.banner/output.footer`](../configuration-options/index.md#output-banner-output-footer)。 @@ -984,17 +961,10 @@ interface OutputChunk { | | | | --: | :-- | -<<<<<<< HEAD -| 类型: | `string \| ((chunk: ChunkInfo) => string)` | +| 类型: | `string \| ((chunk: RenderedChunk) => string)` | | 类别: | async, sequential | | 上一个钩子: | [`resolveFileUrl`](#resolvefileurl) 用于每个 `import.meta.ROLLUP_FILE_URL_referenceId` 的使用和 [`resolveImportMeta`](#resolveimportmeta) 用于当前块中所有其他 `import.meta` 访问 | | 下一个钩子: | 如果有下一个块中的动态导入表达式,则为 [`renderDynamicImport`](#renderdynamicimport),否则为第一个块的 [`renderChunk`](#renderchunk) | -======= -| Type: | `string \| ((chunk: RenderedChunk) => string)` | -| Kind: | async, sequential | -| Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | -| Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 参见 [`output.intro/output.outro`](../configuration-options/index.md#output-intro-output-outro)。 @@ -1013,17 +983,10 @@ interface OutputChunk { | | | | --: | :-- | -<<<<<<< HEAD -| 类型: | `string \| ((chunk: ChunkInfo) => string)` | +| 类型: | `string \| ((chunk: RenderedChunk) => string)` | | 类别: | async, sequential | | 上一个钩子: | [`resolveFileUrl`](#resolvefileurl) 用于每个 `import.meta.ROLLUP_FILE_URL_referenceId` 的使用和 [`resolveImportMeta`](#resolveimportmeta) 用于当前块中所有其他 `import.meta` 访问 | | 下一个钩子: | 如果有下一个块中的动态导入表达式,则为 [`renderDynamicImport`](#renderdynamicimport),否则为第一个块的 [`renderChunk`](#renderchunk) | -======= -| Type: | `string \| ((chunk: RenderedChunk) => string)` | -| Kind: | async, sequential | -| Previous: | [`resolveFileUrl`](#resolvefileurl) for each use of `import.meta.ROLLUP_FILE_URL_referenceId` and [`resolveImportMeta`](#resolveimportmeta) for all other accesses to `import.meta` in the current chunk | -| Next: | [`renderDynamicImport`](#renderdynamicimport) for each dynamic import expression in the next chunk if there is another one, otherwise [`renderChunk`](#renderchunk) for the first chunk | ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 参见 [`output.intro/output.outro`](../configuration-options/index.md#output-intro-output-outro)。 @@ -1069,22 +1032,14 @@ interface RenderedChunk { 可以用于转换单个块。对于每个 Rollup 输出块文件都会调用此函数。返回 `null` 将不应用任何转换。如果你在此钩子中更改了代码并希望支持源映射,则需要返回一个描述更改的`map`,请参见 [源代码转换](#source-code-transformations) 部分。 -<<<<<<< HEAD -`chunk` 包含有关块的其他信息,使用与 [`generateBundle`](#generatebundle) 钩子相同的 `ChunkInfo` 类型,但有以下区别: -======= -`chunk` contains additional information about the chunk using the same `OutputChunk` type as the [`generateBundle`](#generatebundle) hook with the following differences: ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +`chunk` 包含有关块的其他信息,使用与 [`generateBundle`](#generatebundle) 钩子相同的 `OutputChunk` 类型,但有以下区别: - `code` 和 `map` 未设置。而是使用此钩子的 `code` 参数。 -- 所有引用的块文件名将包含哈希占位符,而不是哈希。这包括 `fileName`,`imports`,`importedBindings`,`dynamicImports`和`implicitlyLoadedBefore` 。当你在此钩子返回的代码中使用此类占位符文件名或其一部分时,Rollup 将在`generateBundle`之前将占位符替换为实际哈希,确保哈希反映了最终生成的块的实际内容,包括所有引用的文件哈希。 +- 所有引用的块文件名将包含哈希占位符,而不是哈希。这包括 `fileName`,`imports`,`importedBindings`,`dynamicImports` 和 `implicitlyLoadedBefore`。当你在此钩子返回的代码中使用此类占位符文件名或其一部分时,Rollup 将在 `generateBundle` 之前将占位符替换为实际哈希,确保哈希反映了最终生成的块的实际内容,包括所有引用的文件哈希。 -`chunk` 是可变的,此钩子中应用的更改将传播到其他插件和生成的产物中。这意味着如果你在此钩子中添加或删除导入或导出,则应更新`imports`,`importedBindings`和/或`exports`。 +`chunk` 是可变的,此钩子中应用的更改将传播到其他插件和生成的产物中。这意味着如果你在此钩子中添加或删除导入或导出,则应更新 `imports`,`importedBindings` 和/或 `exports`。 -<<<<<<< HEAD -`meta.chunks` 包含有关 Rollup 正在生成的所有块的信息,并为哈希使用占位符。这意味着你可以在此钩子中探索整个块图。 -======= -`meta.chunks` contains information about all the chunks Rollup is generating and gives you access to their `RenderedChunk` information, again using placeholders for hashes. That means you can explore the entire chunk graph in this hook. ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 +`meta.chunks` 包含有关 Rollup 正在生成的所有块的信息,并允许你访问它们的 `RenderedChunk` 信息,这里同样用占位符替代了哈希值。这意味着你可以在此钩子中查看整个块图。 ### renderDynamicImport @@ -1270,17 +1225,10 @@ function importMetaUrlCurrentModulePlugin() { | | | | --: | :-- | -<<<<<<< HEAD -| 类型: | `(options: OutputOptions, bundle: { [fileName: string]: AssetInfo \| ChunkInfo }) => void` | +| 类型: | `(options: OutputOptions, bundle: { [fileName: string]: OutputAsset \| OutputChunk }) => void` | | 类别: | async, parallel | | 上一个钩子: | [`generateBundle`](#generatebundle) | | 下一个钩子: | 如果调用了它,则是输出生成阶段的最后一个钩子,并且如果生成了另一个输出,则可能再次跟随 [`outputOptions`](#outputoptions) | -======= -| Type: | `(options: OutputOptions, bundle: { [fileName: string]: OutputAsset \| OutputChunk }) => void` | -| Kind: | async, parallel | -| Previous: | [`generateBundle`](#generatebundle) | -| Next: | If it is called, this is the last hook of the output generation phase and may again be followed by [`outputOptions`](#outputoptions) if another output is generated | ->>>>>>> 28546b5821efcb72c2eb05f422d986524647a0e3 仅在 `bundle.write()` 结束时调用,一旦所有文件都已写入。与 [`generateBundle`](#generatebundle) 钩子类似,`bundle` 提供正在写入的所有文件的完整列表以及它们的详细信息。