@rolldown/browser 1.0.0-beta.32 → 1.0.0-beta.34

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.
Files changed (41) hide show
  1. package/dist/cli.cjs +5 -5
  2. package/dist/cli.mjs +5 -5
  3. package/dist/config.cjs +3 -3
  4. package/dist/config.d.cts +2 -2
  5. package/dist/config.d.mts +2 -2
  6. package/dist/config.mjs +3 -3
  7. package/dist/experimental-index.browser.mjs +34 -3
  8. package/dist/experimental-index.cjs +36 -2
  9. package/dist/experimental-index.d.cts +36 -4
  10. package/dist/experimental-index.d.mts +36 -4
  11. package/dist/experimental-index.mjs +35 -4
  12. package/dist/filter-index.d.cts +2 -2
  13. package/dist/filter-index.d.mts +2 -2
  14. package/dist/index.browser.mjs +1 -1
  15. package/dist/index.cjs +2 -2
  16. package/dist/index.d.cts +2 -2
  17. package/dist/index.d.mts +2 -2
  18. package/dist/index.mjs +2 -2
  19. package/dist/parallel-plugin-worker.cjs +2 -2
  20. package/dist/parallel-plugin-worker.mjs +2 -2
  21. package/dist/parallel-plugin.d.cts +2 -2
  22. package/dist/parallel-plugin.d.mts +2 -2
  23. package/dist/parse-ast-index.cjs +1 -1
  24. package/dist/parse-ast-index.d.cts +1 -1
  25. package/dist/parse-ast-index.d.mts +1 -1
  26. package/dist/parse-ast-index.mjs +1 -1
  27. package/dist/rolldown-binding.wasi-browser.js +3 -0
  28. package/dist/rolldown-binding.wasi.cjs +3 -0
  29. package/dist/rolldown-binding.wasm32-wasi.wasm +0 -0
  30. package/dist/shared/{binding-BEeJNtY4.d.mts → binding-9k0egz6L.d.mts} +110 -10
  31. package/dist/shared/{binding-CRMJJtol.d.cts → binding-D13M6Llu.d.cts} +110 -10
  32. package/dist/shared/{define-config-Dw9PP95x.d.cts → define-config-D5AluabE.d.cts} +69 -24
  33. package/dist/shared/{define-config-rQzrgjTj.d.mts → define-config-DzIQxNqU.d.mts} +69 -24
  34. package/dist/shared/{load-config-Dv1HB87g.mjs → load-config--VYNOtUY.mjs} +1 -1
  35. package/dist/shared/{load-config-Df5heSrD.cjs → load-config-DfHD1OI9.cjs} +1 -1
  36. package/dist/shared/{parse-ast-index-CqHkFxPM.mjs → parse-ast-index-C_CZT4St.mjs} +1 -1
  37. package/dist/shared/{parse-ast-index-DAsDnaa1.cjs → parse-ast-index-ChWj_C49.cjs} +1 -1
  38. package/dist/shared/{src-ZwxjvPpL.mjs → src-B4V64IkU.mjs} +114 -95
  39. package/dist/shared/{src-BDMOiU9t.cjs → src-McCMqGpa.cjs} +125 -94
  40. package/dist/{src-ZTshMqyf.js → src-Bl12Y5ab.js} +111 -92
  41. package/package.json +19 -11
@@ -27,18 +27,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
 
28
28
  //#endregion
29
29
  //#region package.json
30
- var version = "1.0.0-beta.32";
31
-
32
- //#endregion
33
- //#region src/utils/normalize-string-or-regex.ts
34
- function normalizedStringOrRegex(pattern) {
35
- if (!pattern) return void 0;
36
- if (!isReadonlyArray(pattern)) return [pattern];
37
- return pattern;
38
- }
39
- function isReadonlyArray(input) {
40
- return Array.isArray(input);
41
- }
30
+ var version = "1.0.0-beta.34";
42
31
 
43
32
  //#endregion
44
33
  //#region src/utils/code-frame.ts
@@ -234,6 +223,12 @@ function augmentCodeLocation(properties, pos, source, id$1) {
234
223
 
235
224
  //#endregion
236
225
  //#region src/builtin-plugin/utils.ts
226
+ var BuiltinPlugin = class {
227
+ constructor(name, _options) {
228
+ this.name = name;
229
+ this._options = _options;
230
+ }
231
+ };
237
232
  function makeBuiltinPluginCallable(plugin) {
238
233
  let callablePlugin = new BindingCallableBuiltinPlugin(bindingifyBuiltInPlugin(plugin));
239
234
  const wrappedPlugin = plugin;
@@ -257,64 +252,6 @@ function bindingifyBuiltInPlugin(plugin) {
257
252
  };
258
253
  }
259
254
 
260
- //#endregion
261
- //#region src/builtin-plugin/constructors.ts
262
- var BuiltinPlugin = class {
263
- constructor(name, _options) {
264
- this.name = name;
265
- this._options = _options;
266
- }
267
- };
268
- function modulePreloadPolyfillPlugin(config) {
269
- return new BuiltinPlugin("builtin:module-preload-polyfill", config);
270
- }
271
- function dynamicImportVarsPlugin(config) {
272
- if (config) {
273
- config.include = normalizedStringOrRegex(config.include);
274
- config.exclude = normalizedStringOrRegex(config.exclude);
275
- }
276
- return new BuiltinPlugin("builtin:dynamic-import-vars", config);
277
- }
278
- function importGlobPlugin(config) {
279
- return new BuiltinPlugin("builtin:import-glob", config);
280
- }
281
- function reporterPlugin(config) {
282
- return new BuiltinPlugin("builtin:reporter", config);
283
- }
284
- function manifestPlugin(config) {
285
- return new BuiltinPlugin("builtin:manifest", config);
286
- }
287
- function wasmHelperPlugin(config) {
288
- return new BuiltinPlugin("builtin:wasm-helper", config);
289
- }
290
- function wasmFallbackPlugin() {
291
- const builtinPlugin = new BuiltinPlugin("builtin:wasm-fallback");
292
- return makeBuiltinPluginCallable(builtinPlugin);
293
- }
294
- function loadFallbackPlugin() {
295
- return new BuiltinPlugin("builtin:load-fallback");
296
- }
297
- function jsonPlugin(config) {
298
- const builtinPlugin = new BuiltinPlugin("builtin:json", config);
299
- return makeBuiltinPluginCallable(builtinPlugin);
300
- }
301
- function buildImportAnalysisPlugin(config) {
302
- return new BuiltinPlugin("builtin:build-import-analysis", config);
303
- }
304
- function viteResolvePlugin(config) {
305
- const builtinPlugin = new BuiltinPlugin("builtin:vite-resolve", config);
306
- return makeBuiltinPluginCallable(builtinPlugin);
307
- }
308
- function isolatedDeclarationPlugin(config) {
309
- return new BuiltinPlugin("builtin:isolated-declaration", config);
310
- }
311
- function assetPlugin(config) {
312
- return new BuiltinPlugin("builtin:asset", config);
313
- }
314
- function webWorkerPostPlugin() {
315
- return new BuiltinPlugin("builtin:web-worker-post");
316
- }
317
-
318
255
  //#endregion
319
256
  //#region ../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs
320
257
  let _lazyMatch = () => {
@@ -911,6 +848,72 @@ function normalizeHook(hook) {
911
848
  unreachable("Invalid hook type");
912
849
  }
913
850
 
851
+ //#endregion
852
+ //#region src/utils/normalize-string-or-regex.ts
853
+ function normalizedStringOrRegex(pattern) {
854
+ if (!pattern) return void 0;
855
+ if (!isReadonlyArray(pattern)) return [pattern];
856
+ return pattern;
857
+ }
858
+ function isReadonlyArray(input) {
859
+ return Array.isArray(input);
860
+ }
861
+
862
+ //#endregion
863
+ //#region src/builtin-plugin/constructors.ts
864
+ function modulePreloadPolyfillPlugin(config) {
865
+ return new BuiltinPlugin("builtin:module-preload-polyfill", config);
866
+ }
867
+ function dynamicImportVarsPlugin(config) {
868
+ if (config) {
869
+ config.include = normalizedStringOrRegex(config.include);
870
+ config.exclude = normalizedStringOrRegex(config.exclude);
871
+ }
872
+ return new BuiltinPlugin("builtin:dynamic-import-vars", config);
873
+ }
874
+ function importGlobPlugin(config) {
875
+ return new BuiltinPlugin("builtin:import-glob", config);
876
+ }
877
+ function reporterPlugin(config) {
878
+ return new BuiltinPlugin("builtin:reporter", config);
879
+ }
880
+ function manifestPlugin(config) {
881
+ return new BuiltinPlugin("builtin:manifest", config);
882
+ }
883
+ function wasmHelperPlugin(config) {
884
+ return new BuiltinPlugin("builtin:wasm-helper", config);
885
+ }
886
+ function wasmFallbackPlugin() {
887
+ const builtinPlugin = new BuiltinPlugin("builtin:wasm-fallback");
888
+ return makeBuiltinPluginCallable(builtinPlugin);
889
+ }
890
+ function loadFallbackPlugin() {
891
+ return new BuiltinPlugin("builtin:load-fallback");
892
+ }
893
+ function jsonPlugin(config) {
894
+ const builtinPlugin = new BuiltinPlugin("builtin:json", config);
895
+ return makeBuiltinPluginCallable(builtinPlugin);
896
+ }
897
+ function buildImportAnalysisPlugin(config) {
898
+ return new BuiltinPlugin("builtin:build-import-analysis", config);
899
+ }
900
+ function viteResolvePlugin(config) {
901
+ const builtinPlugin = new BuiltinPlugin("builtin:vite-resolve", config);
902
+ return makeBuiltinPluginCallable(builtinPlugin);
903
+ }
904
+ function isolatedDeclarationPlugin(config) {
905
+ return new BuiltinPlugin("builtin:isolated-declaration", config);
906
+ }
907
+ function assetPlugin(config) {
908
+ return new BuiltinPlugin("builtin:asset", config);
909
+ }
910
+ function webWorkerPostPlugin() {
911
+ return new BuiltinPlugin("builtin:web-worker-post");
912
+ }
913
+ function esmExternalRequirePlugin(config) {
914
+ return new BuiltinPlugin("builtin:esm-external-require", config);
915
+ }
916
+
914
917
  //#endregion
915
918
  //#region src/constants/plugin.ts
916
919
  const ENUMERATED_INPUT_PLUGIN_HOOK_NAMES = [
@@ -2273,7 +2276,7 @@ const TransformOptionsSchema = object({
2273
2276
  typescript: optional(TypescriptSchema),
2274
2277
  helpers: optional(HelpersSchema),
2275
2278
  decorators: optional(DecoratorOptionSchema),
2276
- jsx: optional(JsxOptionsSchema),
2279
+ jsx: optional(union([literal("preserve"), JsxOptionsSchema])),
2277
2280
  target: pipe(optional(union([string(), array(string())])), description("The JavaScript target environment"))
2278
2281
  });
2279
2282
  const WatchOptionsSchema = strictObject({
@@ -2301,7 +2304,8 @@ const ChecksOptionsSchema = strictObject({
2301
2304
  commonJsVariableInEsm: pipe(optional(boolean()), description("Whether to emit warning when detecting common js variable in esm")),
2302
2305
  importIsUndefined: pipe(optional(boolean()), description("Whether to emit warning when detecting import is undefined")),
2303
2306
  emptyImportMeta: pipe(optional(boolean()), description("Whether to emit warning when detecting empty import meta")),
2304
- configurationFieldConflict: pipe(optional(boolean()), description("Whether to emit warning when detecting configuration field conflict"))
2307
+ configurationFieldConflict: pipe(optional(boolean()), description("Whether to emit warning when detecting configuration field conflict")),
2308
+ preferBuiltinFeature: pipe(optional(boolean()), description("Whether to emit warning when detecting prefer builtin feature"))
2305
2309
  });
2306
2310
  const MinifyOptionsSchema = strictObject({
2307
2311
  mangle: optional(boolean()),
@@ -2319,7 +2323,6 @@ const ResolveOptionsSchema = strictObject({
2319
2323
  mainFiles: optional(array(string())),
2320
2324
  modules: optional(array(string())),
2321
2325
  symlinks: optional(boolean()),
2322
- tsconfigFilename: optional(string()),
2323
2326
  yarnPnp: optional(boolean())
2324
2327
  });
2325
2328
  const TreeshakingOptionsSchema = union([boolean(), looseObject({
@@ -2403,7 +2406,8 @@ const InputOptionsSchema = strictObject({
2403
2406
  literal("allow-extension"),
2404
2407
  literal("exports-only"),
2405
2408
  literal(false)
2406
- ])))
2409
+ ]))),
2410
+ tsconfig: pipe(optional(string()), description("Path to the tsconfig.json file."))
2407
2411
  });
2408
2412
  const InputCliOverrideSchema = strictObject({
2409
2413
  input: pipe(optional(array(string())), description("Entry file")),
@@ -2525,7 +2529,8 @@ const OutputOptionsSchema = strictObject({
2525
2529
  preserveModules: pipe(optional(boolean()), description("Preserve module structure")),
2526
2530
  preserveModulesRoot: pipe(optional(string()), description("Put preserved modules under this path at root level")),
2527
2531
  virtualDirname: optional(string()),
2528
- minifyInternalExports: pipe(optional(boolean()), description("Minify internal exports"))
2532
+ minifyInternalExports: pipe(optional(boolean()), description("Minify internal exports")),
2533
+ topLevelVar: pipe(optional(boolean()), description("Rewrite top-level declarations to use `var`."))
2529
2534
  });
2530
2535
  const getAddonDescription = (placement, wrapper) => {
2531
2536
  return `Code to insert the ${ansis_default.bold(placement)} of the bundled file (${ansis_default.bold(wrapper)} the wrapper function)`;
@@ -2957,7 +2962,7 @@ function bindingPluginOrder(order) {
2957
2962
  }
2958
2963
 
2959
2964
  //#endregion
2960
- //#region ../../node_modules/.pnpm/oxc-parser@0.81.0/node_modules/oxc-parser/wrap.mjs
2965
+ //#region ../../node_modules/.pnpm/oxc-parser@0.82.3/node_modules/oxc-parser/wrap.mjs
2961
2966
  function wrap$1(result) {
2962
2967
  let program, module$1, comments, errors;
2963
2968
  return {
@@ -3123,7 +3128,8 @@ var PluginContextImpl = class extends MinimalPluginContextImpl {
3123
3128
  ...res,
3124
3129
  external: res.external === "relative" ? unreachable(`The PluginContext resolve result external couldn't be 'relative'`) : res.external,
3125
3130
  ...info,
3126
- moduleSideEffects: info.moduleSideEffects ?? res.moduleSideEffects ?? null
3131
+ moduleSideEffects: info.moduleSideEffects ?? res.moduleSideEffects ?? null,
3132
+ packageJsonPath: res.packageJsonPath
3127
3133
  };
3128
3134
  }
3129
3135
  emitFile = (file) => {
@@ -3249,7 +3255,8 @@ function bindingifyResolveId(args$1) {
3249
3255
  id: ret.id,
3250
3256
  external: ret.external,
3251
3257
  normalizeExternalId: false,
3252
- moduleSideEffects: exist.moduleSideEffects ?? void 0
3258
+ moduleSideEffects: exist.moduleSideEffects ?? void 0,
3259
+ packageJsonPath: ret.packageJsonPath
3253
3260
  };
3254
3261
  },
3255
3262
  meta: bindingifyPluginHookMeta(meta),
@@ -3956,6 +3963,9 @@ var NormalizedInputOptionsImpl = class {
3956
3963
  get platform() {
3957
3964
  return this.inner.platform;
3958
3965
  }
3966
+ get context() {
3967
+ return this.inner.context;
3968
+ }
3959
3969
  };
3960
3970
 
3961
3971
  //#endregion
@@ -4172,7 +4182,13 @@ var NormalizedOutputOptionsImpl = class {
4172
4182
  return this.outputOptions.sourcemapPathTransform;
4173
4183
  }
4174
4184
  get minify() {
4175
- return this.inner.minify;
4185
+ let ret = this.inner.minify;
4186
+ if (typeof ret === "object" && ret !== null) {
4187
+ delete ret["codegen"];
4188
+ delete ret["module"];
4189
+ delete ret["sourcemap"];
4190
+ }
4191
+ return ret;
4176
4192
  }
4177
4193
  get legalComments() {
4178
4194
  return this.inner.legalComments;
@@ -4356,7 +4372,8 @@ function bindingifyInputOptions(rawPlugins, inputOptions, outputOptions, normali
4356
4372
  markModuleLoaded: pluginContextData.markModuleLoaded.bind(pluginContextData),
4357
4373
  preserveEntrySignatures: bindingifyPreserveEntrySignatures(inputOptions.preserveEntrySignatures),
4358
4374
  optimization: inputOptions.optimization,
4359
- context: inputOptions.context
4375
+ context: inputOptions.context,
4376
+ tsconfig: inputOptions.tsconfig
4360
4377
  };
4361
4378
  }
4362
4379
  function bindingifyHmr(hmr) {
@@ -4563,12 +4580,12 @@ function bindingifyPreserveEntrySignatures(preserveEntrySignatures) {
4563
4580
 
4564
4581
  //#endregion
4565
4582
  //#region src/utils/create-bundler-option.ts
4566
- async function createBundlerOptions(inputOptions, outputOptions, watchMode, isClose) {
4583
+ async function createBundlerOptions(inputOptions, outputOptions, watchMode) {
4567
4584
  const inputPlugins = await normalizePluginOption(inputOptions.plugins);
4568
4585
  const outputPlugins = await normalizePluginOption(outputOptions.plugins);
4569
4586
  const logLevel = inputOptions.logLevel || LOG_LEVEL_INFO;
4570
4587
  const onLog = getLogger(getObjectPlugins(inputPlugins), getOnLog(inputOptions, logLevel), logLevel, watchMode);
4571
- if (!isClose) outputOptions = PluginDriver.callOutputOptionsHook([...inputPlugins, ...outputPlugins], outputOptions, onLog, logLevel, watchMode);
4588
+ outputOptions = PluginDriver.callOutputOptionsHook([...inputPlugins, ...outputPlugins], outputOptions, onLog, logLevel, watchMode);
4572
4589
  const normalizedOutputPlugins = await normalizePluginOption(outputOptions.plugins);
4573
4590
  let plugins = [
4574
4591
  ...BUILTIN_PLUGINS,
@@ -4598,8 +4615,8 @@ async function createBundlerOptions(inputOptions, outputOptions, watchMode, isCl
4598
4615
  //#endregion
4599
4616
  //#region src/utils/create-bundler.ts
4600
4617
  let asyncRuntimeShutdown = false;
4601
- async function createBundlerImpl(bundler, inputOptions, outputOptions, isClose) {
4602
- const option = await createBundlerOptions(inputOptions, outputOptions, false, isClose);
4618
+ async function createBundlerImpl(bundler, inputOptions, outputOptions) {
4619
+ const option = await createBundlerOptions(inputOptions, outputOptions, false);
4603
4620
  if (asyncRuntimeShutdown) startAsyncRuntime();
4604
4621
  try {
4605
4622
  return {
@@ -4640,11 +4657,11 @@ var RolldownBuild = class {
4640
4657
  this.#bundler = new BindingBundler();
4641
4658
  }
4642
4659
  get closed() {
4643
- return this.#bundlerImpl?.impl.closed ?? false;
4660
+ return this.#bundlerImpl?.impl.closed ?? true;
4644
4661
  }
4645
- async #getBundlerWithStopWorker(outputOptions, isClose) {
4662
+ async #getBundlerWithStopWorker(outputOptions) {
4646
4663
  if (this.#bundlerImpl) await this.#bundlerImpl.stopWorkers?.();
4647
- return this.#bundlerImpl = await createBundlerImpl(this.#bundler, this.#inputOptions, outputOptions, isClose);
4664
+ return this.#bundlerImpl = await createBundlerImpl(this.#bundler, this.#inputOptions, outputOptions);
4648
4665
  }
4649
4666
  async generate(outputOptions = {}) {
4650
4667
  validateOption("output", outputOptions);
@@ -4659,10 +4676,12 @@ var RolldownBuild = class {
4659
4676
  return transformToRollupOutput(output);
4660
4677
  }
4661
4678
  async close() {
4662
- const { impl, stopWorkers, shutdown } = await this.#getBundlerWithStopWorker({}, true);
4663
- await stopWorkers?.();
4664
- await impl.close();
4665
- shutdown();
4679
+ if (this.#bundlerImpl) {
4680
+ await this.#bundlerImpl.stopWorkers?.();
4681
+ await this.#bundlerImpl.impl.close();
4682
+ this.#bundlerImpl.shutdown();
4683
+ this.#bundlerImpl = void 0;
4684
+ }
4666
4685
  }
4667
4686
  async [Symbol.asyncDispose]() {
4668
4687
  await this.close();
@@ -4851,4 +4870,4 @@ function defineConfig(config) {
4851
4870
  const VERSION = version;
4852
4871
 
4853
4872
  //#endregion
4854
- export { BuiltinPlugin, PluginDriver, VERSION, assetPlugin, build, buildImportAnalysisPlugin, createBundlerImpl, defineConfig, dynamicImportVarsPlugin, handleOutputErrors, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, modulePreloadPolyfillPlugin, normalizedStringOrRegex, reporterPlugin, rolldown, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, watch, webWorkerPostPlugin };
4873
+ export { BuiltinPlugin, PluginDriver, VERSION, assetPlugin, build, buildImportAnalysisPlugin, createBundlerImpl, createBundlerOptions, defineConfig, dynamicImportVarsPlugin, esmExternalRequirePlugin, handleOutputErrors, importGlobPlugin, isolatedDeclarationPlugin, jsonPlugin, loadFallbackPlugin, manifestPlugin, modulePreloadPolyfillPlugin, normalizedStringOrRegex, reporterPlugin, rolldown, viteResolvePlugin, wasmFallbackPlugin, wasmHelperPlugin, watch, webWorkerPostPlugin };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolldown/browser",
3
- "version": "1.0.0-beta.32",
3
+ "version": "1.0.0-beta.34",
4
4
  "description": "Fast JavaScript/TypeScript bundler in Rust with Rollup-compatible API.",
5
5
  "homepage": "https://rolldown.rs/",
6
6
  "type": "module",
@@ -32,21 +32,29 @@
32
32
  "exports": {
33
33
  ".": {
34
34
  "browser": "./dist/index.browser.mjs",
35
- "require": "./dist/index.cjs",
36
- "import": "./dist/index.mjs"
35
+ "import": "./dist/index.mjs",
36
+ "require": "./dist/index.cjs"
37
+ },
38
+ "./config": {
39
+ "import": "./dist/config.mjs",
40
+ "require": "./dist/config.cjs"
37
41
  },
38
42
  "./experimental": {
39
43
  "browser": "./dist/experimental-index.browser.mjs",
40
- "require": "./dist/experimental-index.cjs",
41
- "import": "./dist/experimental-index.mjs"
44
+ "import": "./dist/experimental-index.mjs",
45
+ "require": "./dist/experimental-index.cjs"
46
+ },
47
+ "./filter": {
48
+ "import": "./dist/filter-index.mjs",
49
+ "require": "./dist/filter-index.cjs"
42
50
  },
43
- "./parallel-plugin": {
44
- "require": "./dist/parallel-plugin.cjs",
45
- "import": "./dist/parallel-plugin.mjs"
51
+ "./parallelPlugin": {
52
+ "import": "./dist/parallel-plugin.mjs",
53
+ "require": "./dist/parallel-plugin.cjs"
46
54
  },
47
55
  "./parseAst": {
48
- "require": "./dist/parse-ast-index.cjs",
49
- "import": "./dist/parse-ast-index.mjs"
56
+ "import": "./dist/parse-ast-index.mjs",
57
+ "require": "./dist/parse-ast-index.cjs"
50
58
  },
51
59
  "./package.json": "./package.json"
52
60
  },
@@ -56,7 +64,7 @@
56
64
  },
57
65
  "dependencies": {
58
66
  "@napi-rs/wasm-runtime": "^1.0.0",
59
- "@oxc-project/runtime": "=0.81.0"
67
+ "@oxc-project/runtime": "=0.82.3"
60
68
  },
61
69
  "scripts": {
62
70
  "build": "pnpm run build:debug",