@mirascript/mirascript 0.1.3 → 0.1.4

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 (38) hide show
  1. package/dist/{chunk-3RUWGMBP.js → chunk-JB6LPPFJ.js} +190 -24
  2. package/dist/chunk-JB6LPPFJ.js.map +6 -0
  3. package/dist/{chunk-MVHCSH3E.js → chunk-RYSPVMVZ.js} +36 -127
  4. package/dist/chunk-RYSPVMVZ.js.map +6 -0
  5. package/dist/cli/execute.d.ts +1 -1
  6. package/dist/cli/execute.d.ts.map +1 -1
  7. package/dist/cli/index.js +41 -20
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/cli/print.d.ts.map +1 -1
  10. package/dist/compiler/diagnostic.d.ts +3 -1
  11. package/dist/compiler/diagnostic.d.ts.map +1 -1
  12. package/dist/compiler/emit.d.ts +2 -1
  13. package/dist/compiler/emit.d.ts.map +1 -1
  14. package/dist/compiler/index.d.ts.map +1 -1
  15. package/dist/compiler/worker.d.ts.map +1 -1
  16. package/dist/compiler/worker.js +6 -3
  17. package/dist/compiler/worker.js.map +1 -1
  18. package/dist/helpers/serialize.d.ts +10 -2
  19. package/dist/helpers/serialize.d.ts.map +1 -1
  20. package/dist/index.js +2 -2
  21. package/dist/subtle.d.ts +1 -1
  22. package/dist/subtle.d.ts.map +1 -1
  23. package/dist/subtle.js +17 -7
  24. package/dist/vm/types/wrapper.d.ts.map +1 -1
  25. package/package.json +6 -5
  26. package/src/cli/execute.ts +8 -3
  27. package/src/cli/index.ts +22 -5
  28. package/src/cli/print.ts +13 -9
  29. package/src/compiler/diagnostic.ts +19 -3
  30. package/src/compiler/emit.ts +45 -19
  31. package/src/compiler/index.ts +10 -2
  32. package/src/compiler/worker.ts +5 -1
  33. package/src/helpers/serialize.ts +6 -6
  34. package/src/subtle.ts +11 -1
  35. package/src/vm/lib/global/math-arr.ts +1 -1
  36. package/src/vm/types/wrapper.ts +3 -1
  37. package/dist/chunk-3RUWGMBP.js.map +0 -6
  38. package/dist/chunk-MVHCSH3E.js.map +0 -6
@@ -4,11 +4,139 @@ var __export = (target, all) => {
4
4
  __defProp(target, name, { get: all[name], enumerable: true });
5
5
  };
6
6
 
7
+ // src/compiler/diagnostic.ts
8
+ import { DiagnosticCode, wasm } from "@mirascript/wasm";
9
+
10
+ // src/helpers/utils.ts
11
+ var { isArray } = Array;
12
+ var { isFinite, isNaN, isInteger, isSafeInteger } = Number;
13
+ var { hasOwn, keys, values, entries, create, getPrototypeOf, fromEntries, defineProperty } = Object;
14
+ var { apply } = Reflect;
15
+ var hasOwnEnumerable = Function.call.bind(
16
+ // eslint-disable-next-line @typescript-eslint/unbound-method
17
+ Object.prototype.propertyIsEnumerable
18
+ );
19
+
20
+ // src/compiler/diagnostic.ts
21
+ var diagnosticMessages = /* @__PURE__ */ new Map();
22
+ function getDiagnosticMessage(code) {
23
+ if (!isSafeInteger(code) || code < 0 || code >= 65535) {
24
+ throw new RangeError(`Invalid DiagnosticCode: ${code}`);
25
+ }
26
+ if (diagnosticMessages.has(code)) {
27
+ return diagnosticMessages.get(code);
28
+ }
29
+ const msg = wasm.get_diagnostic_message(code);
30
+ diagnosticMessages.set(code, msg);
31
+ return msg;
32
+ }
33
+ function parseDiagnostics(source, diagnostics, filter) {
34
+ const parsed = [];
35
+ const bufLen = diagnostics.length;
36
+ for (let i = 0; i < bufLen; i += 5) {
37
+ const code = diagnostics[i + 4];
38
+ if (filter && !filter(code)) {
39
+ continue;
40
+ }
41
+ const startLineNumber = diagnostics[i];
42
+ const startColumn = diagnostics[i + 1];
43
+ const endLineNumber = diagnostics[i + 2];
44
+ const endColumn = diagnostics[i + 3];
45
+ parsed.push({
46
+ code,
47
+ range: {
48
+ startLineNumber,
49
+ startColumn,
50
+ endLineNumber,
51
+ endColumn
52
+ }
53
+ });
54
+ }
55
+ const _errors = [];
56
+ const _warnings = [];
57
+ const _infos = [];
58
+ const _hints = [];
59
+ const _tags = [];
60
+ const _references = [];
61
+ const _tagsReferences = [];
62
+ const _sourcemaps = [];
63
+ for (let i = 0; i < parsed.length; i++) {
64
+ const diagnostic = parsed[i];
65
+ const { code } = diagnostic;
66
+ if (code > DiagnosticCode.ErrorStart && code < DiagnosticCode.ErrorEnd) {
67
+ _errors.push(diagnostic);
68
+ } else if (code > DiagnosticCode.WarningStart && code < DiagnosticCode.WarningEnd) {
69
+ _warnings.push(diagnostic);
70
+ } else if (code > DiagnosticCode.InfoStart && code < DiagnosticCode.InfoEnd) {
71
+ _infos.push(diagnostic);
72
+ } else if (code > DiagnosticCode.HintStart && code < DiagnosticCode.HintEnd) {
73
+ _hints.push(diagnostic);
74
+ } else if (code > DiagnosticCode.TagStart && code < DiagnosticCode.TagEnd) {
75
+ _tags.push(diagnostic);
76
+ } else if (code === DiagnosticCode.SourceMap) {
77
+ _sourcemaps.push(diagnostic.range);
78
+ continue;
79
+ } else {
80
+ continue;
81
+ }
82
+ diagnostic.references = [];
83
+ while (i + 1 < parsed.length) {
84
+ const ref = parsed[i + 1];
85
+ let isRef = false;
86
+ if (ref.code > DiagnosticCode.TagRefStart && ref.code < DiagnosticCode.TagRefEnd) {
87
+ isRef = true;
88
+ _tagsReferences.push(ref);
89
+ }
90
+ if (ref.code > DiagnosticCode.ReferenceStart && ref.code < DiagnosticCode.ReferenceEnd) {
91
+ isRef = true;
92
+ _references.push(ref);
93
+ }
94
+ if (!isRef) {
95
+ break;
96
+ }
97
+ i++;
98
+ ref.diagnostic = diagnostic;
99
+ diagnostic.references.push(ref);
100
+ }
101
+ }
102
+ return {
103
+ errors: _errors,
104
+ warnings: _warnings,
105
+ infos: _infos,
106
+ hints: _hints,
107
+ tags: _tags,
108
+ references: _references,
109
+ tagsReferences: _tagsReferences,
110
+ sourcemaps: _sourcemaps
111
+ };
112
+ }
113
+ function formatRange(range) {
114
+ if (range.startLineNumber === range.endLineNumber) {
115
+ if (range.startColumn === range.endColumn) {
116
+ return `${range.startLineNumber}:${range.startColumn}`;
117
+ }
118
+ return `${range.startLineNumber}:${range.startColumn}-${range.endColumn}`;
119
+ }
120
+ return `${range.startLineNumber}:${range.startColumn}-${range.endLineNumber}:${range.endColumn}`;
121
+ }
122
+ function formatDiagnostic(diagnostic) {
123
+ const range = formatRange(diagnostic.range);
124
+ const codeName = DiagnosticCode[diagnostic.code] || `Unknown(${diagnostic.code})`;
125
+ let message = getDiagnosticMessage(diagnostic.code);
126
+ for (const ref of diagnostic.references) {
127
+ const refRange = formatRange(ref.range);
128
+ message += `
129
+ (${refRange}): ${getDiagnosticMessage(ref.code)}`;
130
+ }
131
+ return ` ${codeName}(${range}): ${message}`;
132
+ }
133
+
7
134
  // src/compiler/emit.ts
8
135
  import { OpCode } from "@mirascript/wasm/types";
9
- import { encodeURL } from "js-base64";
10
- function emit(source, chunk, options) {
11
- const gen = new Emitter(source, chunk, options);
136
+ import { toBase64 } from "js-base64";
137
+ import { SourceMapGenerator } from "source-map-js";
138
+ function emit(source, chunk, sourcemaps, options) {
139
+ const gen = new Emitter(source, chunk, sourcemaps, options);
12
140
  gen.read();
13
141
  const code = gen.codeLines.join("\n");
14
142
  return code;
@@ -53,7 +181,7 @@ function toJavascript(value) {
53
181
  }
54
182
  return String(value);
55
183
  }
56
- var ORIGIN = `mira://MiraScript`;
184
+ var ORIGIN = `mira://MiraScript/`;
57
185
  var sourceId = 1;
58
186
  function createArray(length, fn) {
59
187
  const result = [];
@@ -63,9 +191,10 @@ function createArray(length, fn) {
63
191
  return result;
64
192
  }
65
193
  var Emitter = class {
66
- constructor(source, chunk, options) {
194
+ constructor(source, chunk, sourcemaps, options) {
67
195
  this.source = source;
68
196
  this.chunk = chunk;
197
+ this.sourcemaps = sourcemaps;
69
198
  this.options = options;
70
199
  this.constants = [];
71
200
  this.codeOffset = 0;
@@ -324,9 +453,9 @@ var Emitter = class {
324
453
  );
325
454
  if (script) {
326
455
  args.unshift(`global = GlobalFallback()`);
327
- code = `'use strict'; return (function script(${args.join(", ")}) { try { CpEnter(); var ${regs};`;
456
+ code = `'use strict'; return ((${args.join(", ")}) => { try { CpEnter(); var ${regs};`;
328
457
  } else {
329
- code = `${this.wv(reg)} = Function(function (${args.join(", ")}) { try { CpEnter(); var ${regs};`;
458
+ code = `${this.wv(reg)} = Function((${args.join(", ")}) => { try { CpEnter(); var ${regs};`;
330
459
  }
331
460
  if (varg) {
332
461
  code += ` var ${this.wv(argn, -1)} = Vargs(vargs);`;
@@ -647,6 +776,9 @@ var Emitter = class {
647
776
  code = `continue;`;
648
777
  break;
649
778
  }
779
+ case OpCode.Noop: {
780
+ return;
781
+ }
650
782
  default: {
651
783
  code = `; // ${OpCode[opcode] ?? opcode}`;
652
784
  break;
@@ -700,33 +832,48 @@ var Emitter = class {
700
832
  const hasSchema = /^\w+:/.test(fileName);
701
833
  if (!hasSchema) {
702
834
  if (fileName.startsWith("/")) {
703
- fileName = fileName.replace(/^\\+\s*/, "");
835
+ fileName = fileName.replace(/^\/+\s*/, "");
704
836
  }
705
837
  if (!fileName) {
706
838
  fileName = `${sourceId++}.${this.options.input_mode === "Template" ? "miratpl" : "mira"}`;
707
839
  }
708
840
  }
709
- const data = {
710
- version: 3,
711
- file: fileName,
712
- sourceRoot: hasSchema ? "" : ORIGIN,
713
- sources: [fileName],
714
- sourcesContent: [ArrayBuffer.isView(this.source) ? null : this.source],
715
- names: [],
716
- mappings: ""
717
- };
841
+ const map = new SourceMapGenerator({
842
+ file: fileName + ".js"
843
+ });
844
+ if (typeof this.source === "string") {
845
+ map.setSourceContent(fileName, this.source);
846
+ }
847
+ for (let i = 0; i < this.sourcemaps.length; i++) {
848
+ const range = this.sourcemaps[i];
849
+ if (!range) break;
850
+ map.addMapping({
851
+ generated: {
852
+ // 前两行固定为:
853
+ // (function anonymous($Add,$Aeq, ...
854
+ // ) {
855
+ line: i + 3,
856
+ column: 0
857
+ },
858
+ original: {
859
+ line: range.startLineNumber,
860
+ column: range.startColumn - 1
861
+ },
862
+ source: fileName
863
+ });
864
+ }
718
865
  const prefix = "//# ";
719
- const sourceURL = hasSchema ? fileName : `${ORIGIN}/${fileName}.js`;
866
+ const sourceURL = hasSchema ? fileName : `${ORIGIN}${fileName}`;
720
867
  this.codeLines.push(
721
868
  // Prevent source map from being recognized as of this file
722
- `${prefix}sourceURL=${sourceURL}`,
723
- `${prefix}sourceMappingURL=data:application/json;base64,${encodeURL(JSON.stringify(data))}`
869
+ `${prefix}sourceURL=${sourceURL}.js`,
870
+ `${prefix}sourceMappingURL=data:application/json;base64,${toBase64(map.toString())}`
724
871
  );
725
872
  }
726
873
  };
727
874
 
728
875
  // src/compiler/generate-bytecode.ts
729
- import * as wasm from "@mirascript/wasm";
876
+ import * as wasm2 from "@mirascript/wasm";
730
877
  var module;
731
878
  var loading;
732
879
  async function loadModule() {
@@ -738,9 +885,9 @@ async function loadModule() {
738
885
  mod = await import("#compiler-bundle");
739
886
  } catch (ex) {
740
887
  console.warn("Failed to load compiler bundle, falling back to @mirascript/wasm");
741
- mod = wasm;
888
+ mod = wasm2;
742
889
  }
743
- await wasm.ready;
890
+ await wasm2.ready;
744
891
  module = mod;
745
892
  })();
746
893
  void p.finally(() => {
@@ -772,9 +919,28 @@ async function generateBytecode(script, options) {
772
919
 
773
920
  export {
774
921
  __export,
922
+ isArray,
923
+ isFinite,
924
+ isNaN,
925
+ isInteger,
926
+ isSafeInteger,
927
+ hasOwn,
928
+ keys,
929
+ values,
930
+ entries,
931
+ create,
932
+ getPrototypeOf,
933
+ fromEntries,
934
+ defineProperty,
935
+ apply,
936
+ hasOwnEnumerable,
937
+ DiagnosticCode,
938
+ getDiagnosticMessage,
939
+ parseDiagnostics,
940
+ formatDiagnostic,
775
941
  emit,
776
942
  loadModule,
777
943
  generateBytecodeSync,
778
944
  generateBytecode
779
945
  };
780
- //# sourceMappingURL=chunk-3RUWGMBP.js.map
946
+ //# sourceMappingURL=chunk-JB6LPPFJ.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/compiler/diagnostic.ts", "../src/helpers/utils.ts", "../src/compiler/emit.ts", "../src/compiler/generate-bytecode.ts"],
4
+ "mappings": "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",
5
+ "names": ["i", "wasm"]
6
+ }
@@ -1,10 +1,28 @@
1
1
  import {
2
+ DiagnosticCode,
2
3
  __export,
4
+ apply,
5
+ create,
6
+ defineProperty,
3
7
  emit,
8
+ entries,
9
+ formatDiagnostic,
10
+ fromEntries,
4
11
  generateBytecode,
5
12
  generateBytecodeSync,
6
- loadModule
7
- } from "./chunk-3RUWGMBP.js";
13
+ getPrototypeOf,
14
+ hasOwn,
15
+ hasOwnEnumerable,
16
+ isArray,
17
+ isFinite,
18
+ isInteger,
19
+ isNaN,
20
+ isSafeInteger,
21
+ keys,
22
+ loadModule,
23
+ parseDiagnostics,
24
+ values
25
+ } from "./chunk-JB6LPPFJ.js";
8
26
 
9
27
  // src/helpers/constants.ts
10
28
  var constants_exports = {};
@@ -15,16 +33,6 @@ __export(constants_exports, {
15
33
  var REG_IDENTIFIER = /(?:_+|@+|\$+|\p{XID_Start})\p{XID_Continue}*/u;
16
34
  var REG_ORDINAL = /(?:0|[1-9]\d{0,8}|1\d{9}|20\d{8}|21[0-3]\d{7}|214[0-6]\d{6}|2147[0-3]\d{5}|21474[0-7]\d{4}|214748[0-2]\d{3}|2147483[0-5]\d{2}|21474836[0-3]\d|214748364[0-7])/;
17
35
 
18
- // src/helpers/utils.ts
19
- var { isArray } = Array;
20
- var { isFinite, isNaN, isInteger, isSafeInteger } = Number;
21
- var { hasOwn, keys, values, entries, create, getPrototypeOf, fromEntries, defineProperty } = Object;
22
- var { apply } = Reflect;
23
- var hasOwnEnumerable = Function.call.bind(
24
- // eslint-disable-next-line @typescript-eslint/unbound-method
25
- Object.prototype.propertyIsEnumerable
26
- );
27
-
28
36
  // src/vm/error.ts
29
37
  var VmError = class _VmError extends Error {
30
38
  constructor(message, recovered) {
@@ -64,7 +72,9 @@ var VmWrapper = class {
64
72
  }
65
73
  /** 转为字符串 */
66
74
  toString() {
67
- return `<${this.type} ${this.describe}>`;
75
+ const { type, describe } = this;
76
+ if (!describe) return `<${type}>`;
77
+ return `<${type} ${describe}>`;
68
78
  }
69
79
  };
70
80
  var kVmWrapper = Symbol.for("mirascript.vm.wrapper");
@@ -1430,7 +1440,7 @@ var hypot = VmLib(build(Math.hypot), {
1430
1440
  var sum = VmLib(
1431
1441
  (...values4) => {
1432
1442
  const numbers = getNumbers(values4);
1433
- return numbers.reduce((a, b) => a + b, 0);
1443
+ return numbers.reduce((a, b) => a + b, -0);
1434
1444
  },
1435
1445
  {
1436
1446
  summary: "返回一组数的总和",
@@ -3395,113 +3405,6 @@ function serialize(value, options) {
3395
3405
  return serializeImpl(value, 0, getSerializeOptions(options));
3396
3406
  }
3397
3407
 
3398
- // src/compiler/diagnostic.ts
3399
- import { DiagnosticCode, wasm } from "@mirascript/wasm";
3400
- var diagnosticMessages = /* @__PURE__ */ new Map();
3401
- function getDiagnosticMessage(code) {
3402
- if (!isSafeInteger(code) || code < 0 || code >= 65535) {
3403
- throw new RangeError(`Invalid DiagnosticCode: ${code}`);
3404
- }
3405
- if (diagnosticMessages.has(code)) {
3406
- return diagnosticMessages.get(code);
3407
- }
3408
- const msg = wasm.get_diagnostic_message(code);
3409
- diagnosticMessages.set(code, msg);
3410
- return msg;
3411
- }
3412
- function parseDiagnostics(source, diagnostics) {
3413
- const parsed = [];
3414
- const bufLen = diagnostics.length;
3415
- for (let i = 0; i < bufLen; i += 5) {
3416
- const startLineNumber = diagnostics[i];
3417
- const startColumn = diagnostics[i + 1];
3418
- const endLineNumber = diagnostics[i + 2];
3419
- const endColumn = diagnostics[i + 3];
3420
- const error = diagnostics[i + 4];
3421
- parsed.push({
3422
- code: error,
3423
- range: {
3424
- startLineNumber,
3425
- startColumn,
3426
- endLineNumber,
3427
- endColumn
3428
- }
3429
- });
3430
- }
3431
- const _errors = [];
3432
- const _warnings = [];
3433
- const _infos = [];
3434
- const _hints = [];
3435
- const _tags = [];
3436
- const _references = [];
3437
- const _tagsReferences = [];
3438
- for (let i = 0; i < parsed.length; i++) {
3439
- const diagnostic = parsed[i];
3440
- const { code } = diagnostic;
3441
- if (code > DiagnosticCode.ErrorStart && code < DiagnosticCode.ErrorEnd) {
3442
- _errors.push(diagnostic);
3443
- } else if (code > DiagnosticCode.WarningStart && code < DiagnosticCode.WarningEnd) {
3444
- _warnings.push(diagnostic);
3445
- } else if (code > DiagnosticCode.InfoStart && code < DiagnosticCode.InfoEnd) {
3446
- _infos.push(diagnostic);
3447
- } else if (code > DiagnosticCode.HintStart && code < DiagnosticCode.HintEnd) {
3448
- _hints.push(diagnostic);
3449
- } else if (code > DiagnosticCode.TagStart && code < DiagnosticCode.TagEnd) {
3450
- _tags.push(diagnostic);
3451
- } else {
3452
- continue;
3453
- }
3454
- diagnostic.references = [];
3455
- while (i + 1 < parsed.length) {
3456
- const ref = parsed[i + 1];
3457
- let isRef = false;
3458
- if (ref.code > DiagnosticCode.TagRefStart && ref.code < DiagnosticCode.TagRefEnd) {
3459
- isRef = true;
3460
- _tagsReferences.push(ref);
3461
- }
3462
- if (ref.code > DiagnosticCode.ReferenceStart && ref.code < DiagnosticCode.ReferenceEnd) {
3463
- isRef = true;
3464
- _references.push(ref);
3465
- }
3466
- if (!isRef) {
3467
- break;
3468
- }
3469
- i++;
3470
- ref.diagnostic = diagnostic;
3471
- diagnostic.references.push(ref);
3472
- }
3473
- }
3474
- return {
3475
- errors: _errors,
3476
- warnings: _warnings,
3477
- infos: _infos,
3478
- hints: _hints,
3479
- tags: _tags,
3480
- references: _references,
3481
- tagsReferences: _tagsReferences
3482
- };
3483
- }
3484
- function formatRange(range) {
3485
- if (range.startLineNumber === range.endLineNumber) {
3486
- if (range.startColumn === range.endColumn) {
3487
- return `${range.startLineNumber}:${range.startColumn}`;
3488
- }
3489
- return `${range.startLineNumber}:${range.startColumn}-${range.endColumn}`;
3490
- }
3491
- return `${range.startLineNumber}:${range.startColumn}-${range.endLineNumber}:${range.endColumn}`;
3492
- }
3493
- function formatDiagnostic(diagnostic) {
3494
- const range = formatRange(diagnostic.range);
3495
- const codeName = DiagnosticCode[diagnostic.code] || `Unknown(${diagnostic.code})`;
3496
- let message = getDiagnosticMessage(diagnostic.code);
3497
- for (const ref of diagnostic.references) {
3498
- const refRange = formatRange(ref.range);
3499
- message += `
3500
- (${refRange}): ${getDiagnosticMessage(ref.code)}`;
3501
- }
3502
- return ` ${codeName}(${range}): ${message}`;
3503
- }
3504
-
3505
3408
  // src/vm/env.ts
3506
3409
  var keys3 = [];
3507
3410
  var values3 = [];
@@ -3655,10 +3558,15 @@ function emitScript(source, [code, diagnostics], options) {
3655
3558
  if (!code) {
3656
3559
  reportDiagnostic(source, diagnostics);
3657
3560
  }
3658
- const target = emit(source, code, options);
3561
+ const sourcemaps = options.sourceMap ? parseDiagnostics(source, diagnostics, (c) => c === DiagnosticCode.SourceMap).sourcemaps : [];
3562
+ const target = emit(source, code, sourcemaps, options);
3659
3563
  return createScript(source, target);
3660
3564
  }
3661
3565
  async function compile(source, options = {}) {
3566
+ if (options.sourceMap) {
3567
+ options.diagnostic_sourcemap = true;
3568
+ options.diagnostic_position_encoding ??= "Utf16";
3569
+ }
3662
3570
  if (typeof source == "string") {
3663
3571
  const result = compileFast(source, options);
3664
3572
  if (result) return result;
@@ -3714,10 +3622,6 @@ export {
3714
3622
  isVmCallable,
3715
3623
  VM_ARRAY_MAX_LENGTH,
3716
3624
  constants_exports,
3717
- DiagnosticCode,
3718
- getDiagnosticMessage,
3719
- parseDiagnostics,
3720
- formatDiagnostic,
3721
3625
  emitScript,
3722
3626
  compile,
3723
3627
  compileSync,
@@ -3725,6 +3629,11 @@ export {
3725
3629
  lib,
3726
3630
  serializeString,
3727
3631
  serializePropName,
3632
+ serializeNil,
3633
+ serializeBoolean,
3634
+ serializeNumber,
3635
+ serializeArray,
3636
+ serializeRecord,
3728
3637
  serialize
3729
3638
  };
3730
- //# sourceMappingURL=chunk-MVHCSH3E.js.map
3639
+ //# sourceMappingURL=chunk-RYSPVMVZ.js.map