vite-intlayer 8.6.0 → 8.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@
9
9
  */
10
10
  const intlayerEditorPlugin = (intlayerConfig) => ({
11
11
  name: "vite-intlayer-editor-plugin",
12
- config: () => ({ define: { "process.env.INTLAYER_EDITOR_ENABLED": JSON.stringify(intlayerConfig.editor?.enabled === false ? "false" : "true") } })
12
+ config: () => ({ define: intlayerConfig.editor?.enabled ? {} : { "process.env.INTLAYER_EDITOR_ENABLED": "\"false\"" } })
13
13
  });
14
14
 
15
15
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"intlayerEditorPlugin.mjs","names":[],"sources":["../../src/intlayerEditorPlugin.ts"],"sourcesContent":["import type { IntlayerConfig } from '@intlayer/types/config';\n// @ts-ignore - Fix error Module '\"vite\"' has no exported member\nimport type { Plugin } from 'vite';\n\n/**\n * Vite plugin that injects `process.env.INTLAYER_EDITOR_ENABLED` as a\n * compile-time constant so bundlers can dead-code-eliminate all\n * `import('@intlayer/editor')` calls when the editor is disabled.\n *\n * Returning a partial config object from the `config` hook is the idiomatic\n * Vite approach — Vite deep-merges it automatically via `mergeConfig`.\n */\nexport const intlayerEditorPlugin = (\n intlayerConfig: IntlayerConfig\n): Plugin => ({\n name: 'vite-intlayer-editor-plugin',\n config: () => ({\n define: {\n 'process.env.INTLAYER_EDITOR_ENABLED': JSON.stringify(\n intlayerConfig.editor?.enabled === false ? 'false' : 'true'\n ),\n },\n }),\n});\n"],"mappings":";;;;;;;;;AAYA,MAAa,wBACX,oBACY;CACZ,MAAM;CACN,eAAe,EACb,QAAQ,EACN,uCAAuC,KAAK,UAC1C,eAAe,QAAQ,YAAY,QAAQ,UAAU,OACtD,EACF,EACF;CACF"}
1
+ {"version":3,"file":"intlayerEditorPlugin.mjs","names":[],"sources":["../../src/intlayerEditorPlugin.ts"],"sourcesContent":["import type { IntlayerConfig } from '@intlayer/types/config';\n// @ts-ignore - Fix error Module '\"vite\"' has no exported member\nimport type { Plugin } from 'vite';\n\n/**\n * Vite plugin that injects `process.env.INTLAYER_EDITOR_ENABLED` as a\n * compile-time constant so bundlers can dead-code-eliminate all\n * `import('@intlayer/editor')` calls when the editor is disabled.\n *\n * Returning a partial config object from the `config` hook is the idiomatic\n * Vite approach — Vite deep-merges it automatically via `mergeConfig`.\n */\nexport const intlayerEditorPlugin = (\n intlayerConfig: IntlayerConfig\n): Plugin => ({\n name: 'vite-intlayer-editor-plugin',\n config: () => ({\n define: intlayerConfig.editor?.enabled\n ? {}\n : {\n 'process.env.INTLAYER_EDITOR_ENABLED': '\"false\"',\n },\n }),\n});\n"],"mappings":";;;;;;;;;AAYA,MAAa,wBACX,oBACY;CACZ,MAAM;CACN,eAAe,EACb,QAAQ,eAAe,QAAQ,UAC3B,EAAE,GACF,EACE,uCAAuC,aACxC,EACN;CACF"}
@@ -1,10 +1,12 @@
1
1
  import { intlayerEditorPlugin } from "./intlayerEditorPlugin.mjs";
2
2
  import { intlayerOptimize } from "./intlayerOptimizePlugin.mjs";
3
3
  import { resolve } from "node:path";
4
+ import { BLUE } from "@intlayer/config/colors";
5
+ import { colorize, getAppLogger } from "@intlayer/config/logger";
4
6
  import { getConfiguration } from "@intlayer/config/node";
5
7
  import { prepareIntlayer } from "@intlayer/chokidar/build";
6
8
  import { logConfigDetails } from "@intlayer/chokidar/cli";
7
- import { getNodeTypeDefineVars, getUsedNodeTypes } from "@intlayer/chokidar/utils";
9
+ import { formatNodeTypeToEnvVar, getUnusedNodeTypesAsync } from "@intlayer/chokidar/utils";
8
10
  import { watch } from "@intlayer/chokidar/watcher";
9
11
  import { getAlias } from "@intlayer/config/utils";
10
12
  import { getDictionaries } from "@intlayer/dictionaries-entry";
@@ -36,6 +38,7 @@ import { getDictionaries } from "@intlayer/dictionaries-entry";
36
38
  const intlayerPlugin = (configOptions) => {
37
39
  const intlayerConfig = getConfiguration(configOptions);
38
40
  logConfigDetails(configOptions);
41
+ const appLogger = getAppLogger(intlayerConfig);
39
42
  const alias = getAlias({
40
43
  configuration: intlayerConfig,
41
44
  formatter: (value) => resolve(value)
@@ -43,7 +46,7 @@ const intlayerPlugin = (configOptions) => {
43
46
  const aliasPackages = Object.keys(alias);
44
47
  const plugins = [{
45
48
  name: "vite-intlayer-plugin",
46
- config: async (config, env) => {
49
+ config: async (_config, env) => {
47
50
  const { mode } = intlayerConfig.build;
48
51
  const isDevCommand = env.command === "serve" && env.mode === "development";
49
52
  const isBuildCommand = env.command === "build";
@@ -52,8 +55,17 @@ const intlayerPlugin = (configOptions) => {
52
55
  cacheTimeoutMs: isBuildCommand ? 1e3 * 30 : 1e3 * 60 * 60,
53
56
  env: isBuildCommand ? "prod" : "dev"
54
57
  });
58
+ let define = {};
59
+ if (isBuildCommand) {
60
+ const unusedNodeTypes = await getUnusedNodeTypesAsync(getDictionaries(intlayerConfig));
61
+ if (unusedNodeTypes.length > 0) appLogger(["Filtering out unused plugins:", unusedNodeTypes.map((key) => colorize(key, BLUE)).join(", ")], { isVerbose: true });
62
+ define = {
63
+ ...define,
64
+ ...formatNodeTypeToEnvVar(unusedNodeTypes, true)
65
+ };
66
+ }
55
67
  return {
56
- define: isBuildCommand ? Object.fromEntries(Object.entries(getNodeTypeDefineVars(getUsedNodeTypes(getDictionaries(intlayerConfig)))).map(([k, v]) => [`process.env.${k}`, JSON.stringify(v)])) : {},
68
+ define,
57
69
  resolve: { alias },
58
70
  optimizeDeps: { exclude: aliasPackages },
59
71
  ssr: { noExternal: [/(^@intlayer\/|intlayer$)/] }
@@ -1 +1 @@
1
- {"version":3,"file":"intlayerPlugin.mjs","names":[],"sources":["../../src/intlayerPlugin.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport { prepareIntlayer } from '@intlayer/chokidar/build';\nimport { logConfigDetails } from '@intlayer/chokidar/cli';\nimport {\n getNodeTypeDefineVars,\n getUsedNodeTypes,\n} from '@intlayer/chokidar/utils';\nimport { watch } from '@intlayer/chokidar/watcher';\nimport {\n type GetConfigurationOptions,\n getConfiguration,\n} from '@intlayer/config/node';\nimport { getAlias } from '@intlayer/config/utils';\nimport { getDictionaries } from '@intlayer/dictionaries-entry';\n// @ts-ignore - Fix error Module '\"vite\"' has no exported member\nimport type { PluginOption } from 'vite';\nimport { intlayerEditorPlugin } from './intlayerEditorPlugin';\nimport { intlayerOptimize } from './intlayerOptimizePlugin';\n\n/**\n * Vite plugin that integrates Intlayer into the Vite build process.\n *\n * It handles:\n * 1. Preparing Intlayer resources (dictionaries) before build.\n * 2. Configuring Vite aliases for dictionary access.\n * 3. Setting up dev-server watchers for content changes.\n * 4. Applying build optimizations (tree-shaking dictionaries).\n *\n * @param configOptions - Optional configuration to override default Intlayer settings.\n * @returns A Vite plugin option.\n *\n * @example\n * ```ts\n * import { intlayer } from 'vite-intlayer';\n *\n * export default defineConfig({\n * plugins: [intlayer()],\n * });\n *\n * ```\n * @deprecated Rename to intlayer instead\n */\nexport const intlayerPlugin = (\n configOptions?: GetConfigurationOptions\n): PluginOption => {\n const intlayerConfig = getConfiguration(configOptions);\n logConfigDetails(configOptions);\n\n const alias = getAlias({\n configuration: intlayerConfig,\n formatter: (value: string) => resolve(value),\n });\n\n const aliasPackages = Object.keys(alias);\n\n const plugins: PluginOption[] = [\n {\n name: 'vite-intlayer-plugin',\n\n config: async (config, env) => {\n const { mode } = intlayerConfig.build;\n\n const isDevCommand =\n env.command === 'serve' && env.mode === 'development';\n const isBuildCommand = env.command === 'build';\n\n // Only call prepareIntlayer during `dev` or `build` (not during `start`)\n // If prod: clean and rebuild once\n // If dev: rebuild only once if it's more than 1 hour since last rebuild\n if (isDevCommand || isBuildCommand || mode === 'auto') {\n // prepareIntlayer use runOnce to ensure to run only once because will run twice on client and server side otherwise\n await prepareIntlayer(intlayerConfig, {\n clean: isBuildCommand,\n cacheTimeoutMs: isBuildCommand\n ? 1000 * 30 // 30 seconds for build (to ensure to rebuild all dictionaries)\n : 1000 * 60 * 60, // 1 hour for dev (default cache timeout)\n env: isBuildCommand ? 'prod' : 'dev',\n });\n }\n\n const nodeTypeDefineVars = isBuildCommand\n ? Object.fromEntries(\n Object.entries(\n getNodeTypeDefineVars(\n getUsedNodeTypes(getDictionaries(intlayerConfig))\n )\n ).map(([k, v]) => [`process.env.${k}`, JSON.stringify(v)])\n )\n : {};\n\n // mergeConfig handles both array and record alias formats,\n // and correctly appends to optimizeDeps.exclude / ssr.noExternal\n return {\n define: nodeTypeDefineVars,\n resolve: {\n alias,\n },\n optimizeDeps: {\n // Exclude alias entry points since they're local files, not npm packages\n exclude: aliasPackages,\n },\n ssr: {\n // Ensure intlayer packages are bundled so aliases are applied\n noExternal: [/(^@intlayer\\/|intlayer$)/],\n },\n };\n },\n\n configureServer: async (server) => {\n if (server.config.mode === 'development') {\n // Start watching (assuming watch is also async)\n watch({ configuration: intlayerConfig });\n }\n },\n },\n ];\n\n plugins.push(intlayerEditorPlugin(intlayerConfig));\n\n // Add Babel transform plugin if enabled\n plugins.push(intlayerOptimize(intlayerConfig));\n\n return plugins;\n};\n\n/**\n * A Vite plugin that integrates Intlayer configuration into the build process\n *\n * ```ts\n * // Example usage of the plugin in a Vite configuration\n * export default defineConfig({\n * plugins: [ intlayer() ],\n * });\n * ```\n */\nexport const intlayer = intlayerPlugin;\n/**\n * @deprecated Rename to intlayer instead\n *\n * A Vite plugin that integrates Intlayer configuration into the build process\n *\n * ```ts\n * // Example usage of the plugin in a Vite configuration\n * export default defineConfig({\n * plugins: [ intlayer() ],\n * });\n * ```\n */\nexport const intLayerPlugin = intlayerPlugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAa,kBACX,kBACiB;CACjB,MAAM,iBAAiB,iBAAiB,cAAc;AACtD,kBAAiB,cAAc;CAE/B,MAAM,QAAQ,SAAS;EACrB,eAAe;EACf,YAAY,UAAkB,QAAQ,MAAM;EAC7C,CAAC;CAEF,MAAM,gBAAgB,OAAO,KAAK,MAAM;CAExC,MAAM,UAA0B,CAC9B;EACE,MAAM;EAEN,QAAQ,OAAO,QAAQ,QAAQ;GAC7B,MAAM,EAAE,SAAS,eAAe;GAEhC,MAAM,eACJ,IAAI,YAAY,WAAW,IAAI,SAAS;GAC1C,MAAM,iBAAiB,IAAI,YAAY;AAKvC,OAAI,gBAAgB,kBAAkB,SAAS,OAE7C,OAAM,gBAAgB,gBAAgB;IACpC,OAAO;IACP,gBAAgB,iBACZ,MAAO,KACP,MAAO,KAAK;IAChB,KAAK,iBAAiB,SAAS;IAChC,CAAC;AAeJ,UAAO;IACL,QAbyB,iBACvB,OAAO,YACL,OAAO,QACL,sBACE,iBAAiB,gBAAgB,eAAe,CAAC,CAClD,CACF,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK,UAAU,EAAE,CAAC,CAAC,CAC3D,GACD,EAAE;IAMJ,SAAS,EACP,OACD;IACD,cAAc,EAEZ,SAAS,eACV;IACD,KAAK,EAEH,YAAY,CAAC,2BAA2B,EACzC;IACF;;EAGH,iBAAiB,OAAO,WAAW;AACjC,OAAI,OAAO,OAAO,SAAS,cAEzB,OAAM,EAAE,eAAe,gBAAgB,CAAC;;EAG7C,CACF;AAED,SAAQ,KAAK,qBAAqB,eAAe,CAAC;AAGlD,SAAQ,KAAK,iBAAiB,eAAe,CAAC;AAE9C,QAAO;;;;;;;;;;;;AAaT,MAAa,WAAW;;;;;;;;;;;;;AAaxB,MAAa,iBAAiB"}
1
+ {"version":3,"file":"intlayerPlugin.mjs","names":[],"sources":["../../src/intlayerPlugin.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport { prepareIntlayer } from '@intlayer/chokidar/build';\nimport { logConfigDetails } from '@intlayer/chokidar/cli';\nimport {\n formatNodeTypeToEnvVar,\n getUnusedNodeTypesAsync,\n} from '@intlayer/chokidar/utils';\nimport { watch } from '@intlayer/chokidar/watcher';\nimport { BLUE } from '@intlayer/config/colors';\nimport { colorize, getAppLogger } from '@intlayer/config/logger';\nimport {\n type GetConfigurationOptions,\n getConfiguration,\n} from '@intlayer/config/node';\nimport { getAlias } from '@intlayer/config/utils';\nimport { getDictionaries } from '@intlayer/dictionaries-entry';\n// @ts-ignore - Fix error Module '\"vite\"' has no exported member\nimport type { PluginOption } from 'vite';\nimport { intlayerEditorPlugin } from './intlayerEditorPlugin';\nimport { intlayerOptimize } from './intlayerOptimizePlugin';\n\n/**\n * Vite plugin that integrates Intlayer into the Vite build process.\n *\n * It handles:\n * 1. Preparing Intlayer resources (dictionaries) before build.\n * 2. Configuring Vite aliases for dictionary access.\n * 3. Setting up dev-server watchers for content changes.\n * 4. Applying build optimizations (tree-shaking dictionaries).\n *\n * @param configOptions - Optional configuration to override default Intlayer settings.\n * @returns A Vite plugin option.\n *\n * @example\n * ```ts\n * import { intlayer } from 'vite-intlayer';\n *\n * export default defineConfig({\n * plugins: [intlayer()],\n * });\n *\n * ```\n * @deprecated Rename to intlayer instead\n */\nexport const intlayerPlugin = (\n configOptions?: GetConfigurationOptions\n): PluginOption => {\n const intlayerConfig = getConfiguration(configOptions);\n logConfigDetails(configOptions);\n const appLogger = getAppLogger(intlayerConfig);\n\n const alias = getAlias({\n configuration: intlayerConfig,\n formatter: (value: string) => resolve(value),\n });\n\n const aliasPackages = Object.keys(alias);\n\n const plugins: PluginOption[] = [\n {\n name: 'vite-intlayer-plugin',\n\n config: async (_config, env) => {\n const { mode } = intlayerConfig.build;\n\n const isDevCommand =\n env.command === 'serve' && env.mode === 'development';\n const isBuildCommand = env.command === 'build';\n\n // Only call prepareIntlayer during `dev` or `build` (not during `start`)\n // If prod: clean and rebuild once\n // If dev: rebuild only once if it's more than 1 hour since last rebuild\n if (isDevCommand || isBuildCommand || mode === 'auto') {\n // prepareIntlayer use runOnce to ensure to run only once because will run twice on client and server side otherwise\n await prepareIntlayer(intlayerConfig, {\n clean: isBuildCommand,\n cacheTimeoutMs: isBuildCommand\n ? 1000 * 30 // 30 seconds for build (to ensure to rebuild all dictionaries)\n : 1000 * 60 * 60, // 1 hour for dev (default cache timeout)\n env: isBuildCommand ? 'prod' : 'dev',\n });\n }\n\n let define = {};\n\n if (isBuildCommand) {\n const dictionaries = getDictionaries(intlayerConfig);\n const unusedNodeTypes = await getUnusedNodeTypesAsync(dictionaries);\n\n if (unusedNodeTypes.length > 0) {\n appLogger(\n [\n 'Filtering out unused plugins:',\n unusedNodeTypes.map((key) => colorize(key, BLUE)).join(', '),\n ],\n {\n isVerbose: true,\n }\n );\n }\n\n define = {\n ...define,\n ...formatNodeTypeToEnvVar(unusedNodeTypes, true),\n };\n }\n\n // mergeConfig handles both array and record alias formats,\n // and correctly appends to optimizeDeps.exclude / ssr.noExternal\n return {\n define,\n resolve: {\n alias,\n },\n optimizeDeps: {\n // Exclude alias entry points since they're local files, not npm packages\n exclude: aliasPackages,\n },\n ssr: {\n // Ensure intlayer packages are bundled so aliases are applied\n noExternal: [/(^@intlayer\\/|intlayer$)/],\n },\n };\n },\n\n configureServer: async (server) => {\n if (server.config.mode === 'development') {\n // Start watching (assuming watch is also async)\n watch({ configuration: intlayerConfig });\n }\n },\n },\n ];\n\n plugins.push(intlayerEditorPlugin(intlayerConfig));\n\n // Add Babel transform plugin if enabled\n plugins.push(intlayerOptimize(intlayerConfig));\n\n return plugins;\n};\n\n/**\n * A Vite plugin that integrates Intlayer configuration into the build process\n *\n * ```ts\n * // Example usage of the plugin in a Vite configuration\n * export default defineConfig({\n * plugins: [ intlayer() ],\n * });\n * ```\n */\nexport const intlayer = intlayerPlugin;\n/**\n * @deprecated Rename to intlayer instead\n *\n * A Vite plugin that integrates Intlayer configuration into the build process\n *\n * ```ts\n * // Example usage of the plugin in a Vite configuration\n * export default defineConfig({\n * plugins: [ intlayer() ],\n * });\n * ```\n */\nexport const intLayerPlugin = intlayerPlugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,MAAa,kBACX,kBACiB;CACjB,MAAM,iBAAiB,iBAAiB,cAAc;AACtD,kBAAiB,cAAc;CAC/B,MAAM,YAAY,aAAa,eAAe;CAE9C,MAAM,QAAQ,SAAS;EACrB,eAAe;EACf,YAAY,UAAkB,QAAQ,MAAM;EAC7C,CAAC;CAEF,MAAM,gBAAgB,OAAO,KAAK,MAAM;CAExC,MAAM,UAA0B,CAC9B;EACE,MAAM;EAEN,QAAQ,OAAO,SAAS,QAAQ;GAC9B,MAAM,EAAE,SAAS,eAAe;GAEhC,MAAM,eACJ,IAAI,YAAY,WAAW,IAAI,SAAS;GAC1C,MAAM,iBAAiB,IAAI,YAAY;AAKvC,OAAI,gBAAgB,kBAAkB,SAAS,OAE7C,OAAM,gBAAgB,gBAAgB;IACpC,OAAO;IACP,gBAAgB,iBACZ,MAAO,KACP,MAAO,KAAK;IAChB,KAAK,iBAAiB,SAAS;IAChC,CAAC;GAGJ,IAAI,SAAS,EAAE;AAEf,OAAI,gBAAgB;IAElB,MAAM,kBAAkB,MAAM,wBADT,gBAAgB,eAAe,CACe;AAEnE,QAAI,gBAAgB,SAAS,EAC3B,WACE,CACE,iCACA,gBAAgB,KAAK,QAAQ,SAAS,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,CAC7D,EACD,EACE,WAAW,MACZ,CACF;AAGH,aAAS;KACP,GAAG;KACH,GAAG,uBAAuB,iBAAiB,KAAK;KACjD;;AAKH,UAAO;IACL;IACA,SAAS,EACP,OACD;IACD,cAAc,EAEZ,SAAS,eACV;IACD,KAAK,EAEH,YAAY,CAAC,2BAA2B,EACzC;IACF;;EAGH,iBAAiB,OAAO,WAAW;AACjC,OAAI,OAAO,OAAO,SAAS,cAEzB,OAAM,EAAE,eAAe,gBAAgB,CAAC;;EAG7C,CACF;AAED,SAAQ,KAAK,qBAAqB,eAAe,CAAC;AAGlD,SAAQ,KAAK,iBAAiB,eAAe,CAAC;AAE9C,QAAO;;;;;;;;;;;;AAaT,MAAa,WAAW;;;;;;;;;;;;;AAaxB,MAAa,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"intlayerPlugin.d.ts","names":[],"sources":["../../src/intlayerPlugin.ts"],"mappings":";;;;;;AA0CA;;;;;;;;;AA6FA;;;;;;;;;AAaA;;;cA1Ga,cAAA,GACX,aAAA,GAAgB,uBAAA,KACf,YAAA;;;;;;;;;;;cA2FU,QAAA,GAAQ,aAAA,GA5FH,uBAAA,KACf,YAAA;;;;;;;;;;;;;cAwGU,cAAA,GAAc,aAAA,GAzGT,uBAAA,KACf,YAAA"}
1
+ {"version":3,"file":"intlayerPlugin.d.ts","names":[],"sources":["../../src/intlayerPlugin.ts"],"mappings":";;;;;;AA4CA;;;;;;;;;AA4GA;;;;;;;;;AAaA;;;cAzHa,cAAA,GACX,aAAA,GAAgB,uBAAA,KACf,YAAA;;;;;;;;;;;cA0GU,QAAA,GAAQ,aAAA,GA3GH,uBAAA,KACf,YAAA;;;;;;;;;;;;;cAuHU,cAAA,GAAc,aAAA,GAxHT,uBAAA,KACf,YAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-intlayer",
3
- "version": "8.6.0",
3
+ "version": "8.6.1",
4
4
  "private": false,
5
5
  "description": "A Vite plugin for seamless internationalization (i18n), providing locale detection, redirection, and environment-based configuration",
6
6
  "keywords": [
@@ -77,13 +77,13 @@
77
77
  },
78
78
  "dependencies": {
79
79
  "@babel/core": "7.29.0",
80
- "@intlayer/babel": "8.6.0",
81
- "@intlayer/chokidar": "8.6.0",
82
- "@intlayer/config": "8.6.0",
83
- "@intlayer/core": "8.6.0",
84
- "@intlayer/dictionaries-entry": "8.6.0",
85
- "@intlayer/types": "8.6.0",
86
- "intlayer": "8.6.0"
80
+ "@intlayer/babel": "8.6.1",
81
+ "@intlayer/chokidar": "8.6.1",
82
+ "@intlayer/config": "8.6.1",
83
+ "@intlayer/core": "8.6.1",
84
+ "@intlayer/dictionaries-entry": "8.6.1",
85
+ "@intlayer/types": "8.6.1",
86
+ "intlayer": "8.6.1"
87
87
  },
88
88
  "devDependencies": {
89
89
  "@types/babel__core": "7.20.5",