@mirascript/mirascript 0.1.60 → 0.1.62-alpha.7

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 (176) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +4 -4
  3. package/dist/chunk-6CAGNGY6.js +0 -3980
  4. package/dist/chunk-6CAGNGY6.js.map +0 -6
  5. package/dist/chunk-VRGQ23AK.js +0 -1815
  6. package/dist/chunk-VRGQ23AK.js.map +0 -6
  7. package/dist/compiler/compile-fast.d.ts +0 -7
  8. package/dist/compiler/compile-fast.d.ts.map +0 -1
  9. package/dist/compiler/create-script.d.ts +0 -20
  10. package/dist/compiler/create-script.d.ts.map +0 -1
  11. package/dist/compiler/diagnostic.d.ts +0 -71
  12. package/dist/compiler/diagnostic.d.ts.map +0 -1
  13. package/dist/compiler/emit/constants.d.ts +0 -5
  14. package/dist/compiler/emit/constants.d.ts.map +0 -1
  15. package/dist/compiler/emit/consts.d.ts +0 -6
  16. package/dist/compiler/emit/consts.d.ts.map +0 -1
  17. package/dist/compiler/emit/index.d.ts +0 -62
  18. package/dist/compiler/emit/index.d.ts.map +0 -1
  19. package/dist/compiler/emit/sourcemap.d.ts +0 -6
  20. package/dist/compiler/emit/sourcemap.d.ts.map +0 -1
  21. package/dist/compiler/emit-script.d.ts +0 -10
  22. package/dist/compiler/emit-script.d.ts.map +0 -1
  23. package/dist/compiler/generate-bytecode.d.ts +0 -12
  24. package/dist/compiler/generate-bytecode.d.ts.map +0 -1
  25. package/dist/compiler/index.d.ts +0 -14
  26. package/dist/compiler/index.d.ts.map +0 -1
  27. package/dist/compiler/load-module.d.ts +0 -2
  28. package/dist/compiler/load-module.d.ts.map +0 -1
  29. package/dist/compiler/types.d.ts +0 -16
  30. package/dist/compiler/types.d.ts.map +0 -1
  31. package/dist/compiler/worker-manager.d.ts +0 -11
  32. package/dist/compiler/worker-manager.d.ts.map +0 -1
  33. package/dist/compiler/worker.d.ts +0 -10
  34. package/dist/compiler/worker.d.ts.map +0 -1
  35. package/dist/compiler/worker.js +0 -31
  36. package/dist/compiler/worker.js.map +0 -6
  37. package/dist/helpers/analyze.d.ts +0 -8
  38. package/dist/helpers/analyze.d.ts.map +0 -1
  39. package/dist/helpers/constants.d.ts +0 -20
  40. package/dist/helpers/constants.d.ts.map +0 -1
  41. package/dist/helpers/convert/index.d.ts +0 -5
  42. package/dist/helpers/convert/index.d.ts.map +0 -1
  43. package/dist/helpers/convert/to-boolean.d.ts +0 -4
  44. package/dist/helpers/convert/to-boolean.d.ts.map +0 -1
  45. package/dist/helpers/convert/to-format.d.ts +0 -4
  46. package/dist/helpers/convert/to-format.d.ts.map +0 -1
  47. package/dist/helpers/convert/to-number.d.ts +0 -4
  48. package/dist/helpers/convert/to-number.d.ts.map +0 -1
  49. package/dist/helpers/convert/to-string.d.ts +0 -6
  50. package/dist/helpers/convert/to-string.d.ts.map +0 -1
  51. package/dist/helpers/error.d.ts +0 -11
  52. package/dist/helpers/error.d.ts.map +0 -1
  53. package/dist/helpers/serialize.d.ts +0 -63
  54. package/dist/helpers/serialize.d.ts.map +0 -1
  55. package/dist/helpers/types.d.ts +0 -54
  56. package/dist/helpers/types.d.ts.map +0 -1
  57. package/dist/helpers/utils.d.ts +0 -37
  58. package/dist/helpers/utils.d.ts.map +0 -1
  59. package/dist/index.d.ts +0 -5
  60. package/dist/index.d.ts.map +0 -1
  61. package/dist/index.js +0 -243
  62. package/dist/index.js.map +0 -6
  63. package/dist/subtle.d.ts +0 -14
  64. package/dist/subtle.d.ts.map +0 -1
  65. package/dist/subtle.js +0 -122
  66. package/dist/subtle.js.map +0 -6
  67. package/dist/vm/checkpoint.d.ts +0 -9
  68. package/dist/vm/checkpoint.d.ts.map +0 -1
  69. package/dist/vm/index.d.ts +0 -5
  70. package/dist/vm/index.d.ts.map +0 -1
  71. package/dist/vm/lib/global/bit.d.ts +0 -8
  72. package/dist/vm/lib/global/bit.d.ts.map +0 -1
  73. package/dist/vm/lib/global/debug.d.ts +0 -38
  74. package/dist/vm/lib/global/debug.d.ts.map +0 -1
  75. package/dist/vm/lib/global/index.d.ts +0 -9
  76. package/dist/vm/lib/global/index.d.ts.map +0 -1
  77. package/dist/vm/lib/global/json.d.ts +0 -3
  78. package/dist/vm/lib/global/json.d.ts.map +0 -1
  79. package/dist/vm/lib/global/math/arr.d.ts +0 -7
  80. package/dist/vm/lib/global/math/arr.d.ts.map +0 -1
  81. package/dist/vm/lib/global/math/const.d.ts +0 -31
  82. package/dist/vm/lib/global/math/const.d.ts.map +0 -1
  83. package/dist/vm/lib/global/math/gamma.d.ts +0 -3
  84. package/dist/vm/lib/global/math/gamma.d.ts.map +0 -1
  85. package/dist/vm/lib/global/math/index.d.ts +0 -9
  86. package/dist/vm/lib/global/math/index.d.ts.map +0 -1
  87. package/dist/vm/lib/global/math/round.d.ts +0 -6
  88. package/dist/vm/lib/global/math/round.d.ts.map +0 -1
  89. package/dist/vm/lib/global/math/unary.d.ts +0 -24
  90. package/dist/vm/lib/global/math/unary.d.ts.map +0 -1
  91. package/dist/vm/lib/global/sequence/all-any.d.ts +0 -3
  92. package/dist/vm/lib/global/sequence/all-any.d.ts.map +0 -1
  93. package/dist/vm/lib/global/sequence/entries.d.ts +0 -11
  94. package/dist/vm/lib/global/sequence/entries.d.ts.map +0 -1
  95. package/dist/vm/lib/global/sequence/find.d.ts +0 -9
  96. package/dist/vm/lib/global/sequence/find.d.ts.map +0 -1
  97. package/dist/vm/lib/global/sequence/flatten.d.ts +0 -2
  98. package/dist/vm/lib/global/sequence/flatten.d.ts.map +0 -1
  99. package/dist/vm/lib/global/sequence/index.d.ts +0 -14
  100. package/dist/vm/lib/global/sequence/index.d.ts.map +0 -1
  101. package/dist/vm/lib/global/sequence/len.d.ts +0 -2
  102. package/dist/vm/lib/global/sequence/len.d.ts.map +0 -1
  103. package/dist/vm/lib/global/sequence/map-filter.d.ts +0 -8
  104. package/dist/vm/lib/global/sequence/map-filter.d.ts.map +0 -1
  105. package/dist/vm/lib/global/sequence/new.d.ts +0 -4
  106. package/dist/vm/lib/global/sequence/new.d.ts.map +0 -1
  107. package/dist/vm/lib/global/sequence/repeat.d.ts +0 -3
  108. package/dist/vm/lib/global/sequence/repeat.d.ts.map +0 -1
  109. package/dist/vm/lib/global/sequence/reverse.d.ts +0 -2
  110. package/dist/vm/lib/global/sequence/reverse.d.ts.map +0 -1
  111. package/dist/vm/lib/global/sequence/sort.d.ts +0 -4
  112. package/dist/vm/lib/global/sequence/sort.d.ts.map +0 -1
  113. package/dist/vm/lib/global/sequence/unique.d.ts +0 -4
  114. package/dist/vm/lib/global/sequence/unique.d.ts.map +0 -1
  115. package/dist/vm/lib/global/sequence/with.d.ts +0 -4
  116. package/dist/vm/lib/global/sequence/with.d.ts.map +0 -1
  117. package/dist/vm/lib/global/sequence/zip.d.ts +0 -3
  118. package/dist/vm/lib/global/sequence/zip.d.ts.map +0 -1
  119. package/dist/vm/lib/global/string/case.d.ts +0 -3
  120. package/dist/vm/lib/global/string/case.d.ts.map +0 -1
  121. package/dist/vm/lib/global/string/index.d.ts +0 -8
  122. package/dist/vm/lib/global/string/index.d.ts.map +0 -1
  123. package/dist/vm/lib/global/string/search.d.ts +0 -4
  124. package/dist/vm/lib/global/string/search.d.ts.map +0 -1
  125. package/dist/vm/lib/global/string/trim.d.ts +0 -4
  126. package/dist/vm/lib/global/string/trim.d.ts.map +0 -1
  127. package/dist/vm/lib/global/time.d.ts +0 -4
  128. package/dist/vm/lib/global/time.d.ts.map +0 -1
  129. package/dist/vm/lib/global/to-primitive.d.ts +0 -4
  130. package/dist/vm/lib/global/to-primitive.d.ts.map +0 -1
  131. package/dist/vm/lib/helpers.d.ts +0 -57
  132. package/dist/vm/lib/helpers.d.ts.map +0 -1
  133. package/dist/vm/lib/index.d.ts +0 -4
  134. package/dist/vm/lib/index.d.ts.map +0 -1
  135. package/dist/vm/lib/loader.d.ts +0 -23
  136. package/dist/vm/lib/loader.d.ts.map +0 -1
  137. package/dist/vm/lib/mod/index.d.ts +0 -2
  138. package/dist/vm/lib/mod/index.d.ts.map +0 -1
  139. package/dist/vm/lib/mod/matrix.d.ts +0 -15
  140. package/dist/vm/lib/mod/matrix.d.ts.map +0 -1
  141. package/dist/vm/operations/call.d.ts +0 -9
  142. package/dist/vm/operations/call.d.ts.map +0 -1
  143. package/dist/vm/operations/common.d.ts +0 -4
  144. package/dist/vm/operations/common.d.ts.map +0 -1
  145. package/dist/vm/operations/compound.d.ts +0 -22
  146. package/dist/vm/operations/compound.d.ts.map +0 -1
  147. package/dist/vm/operations/convert.d.ts +0 -10
  148. package/dist/vm/operations/convert.d.ts.map +0 -1
  149. package/dist/vm/operations/cp.d.ts +0 -2
  150. package/dist/vm/operations/cp.d.ts.map +0 -1
  151. package/dist/vm/operations/helpers.d.ts +0 -24
  152. package/dist/vm/operations/helpers.d.ts.map +0 -1
  153. package/dist/vm/operations/index.d.ts +0 -10
  154. package/dist/vm/operations/index.d.ts.map +0 -1
  155. package/dist/vm/operations/operator.d.ts +0 -46
  156. package/dist/vm/operations/operator.d.ts.map +0 -1
  157. package/dist/vm/operations/slice.d.ts +0 -6
  158. package/dist/vm/operations/slice.d.ts.map +0 -1
  159. package/dist/vm/operations/type-check.d.ts +0 -16
  160. package/dist/vm/operations/type-check.d.ts.map +0 -1
  161. package/dist/vm/operations/utils.d.ts +0 -11
  162. package/dist/vm/operations/utils.d.ts.map +0 -1
  163. package/dist/vm/types/boundary.d.ts +0 -13
  164. package/dist/vm/types/boundary.d.ts.map +0 -1
  165. package/dist/vm/types/context.d.ts +0 -33
  166. package/dist/vm/types/context.d.ts.map +0 -1
  167. package/dist/vm/types/extern.d.ts +0 -44
  168. package/dist/vm/types/extern.d.ts.map +0 -1
  169. package/dist/vm/types/function.d.ts +0 -50
  170. package/dist/vm/types/function.d.ts.map +0 -1
  171. package/dist/vm/types/index.d.ts +0 -58
  172. package/dist/vm/types/index.d.ts.map +0 -1
  173. package/dist/vm/types/module.d.ts +0 -25
  174. package/dist/vm/types/module.d.ts.map +0 -1
  175. package/dist/vm/types/wrapper.d.ts +0 -25
  176. package/dist/vm/types/wrapper.d.ts.map +0 -1
@@ -1,63 +0,0 @@
1
- import type { VmArray, VmExtern, VmFunction, VmModule, VmAny, VmRecord } from '../vm/index.js';
2
- /** 序列化设置 */
3
- export interface SerializeOptions {
4
- /** 最大递归深度,超过该深度的值将被序列化为 `nil`,默认值为 128 */
5
- maxDepth: number;
6
- /** 序列化 nil 值 */
7
- serializeNil: (options: SerializeOptions) => string;
8
- /** 序列化布尔值 */
9
- serializeBoolean: (value: boolean, options: SerializeOptions) => string;
10
- /** 序列化数字 */
11
- serializeNumber: (value: number, options: SerializeOptions) => string;
12
- /** 序列化字符串 */
13
- serializeString: (value: string, options: SerializeOptions) => string;
14
- /** 序列化字符串引号 */
15
- serializeStringQuote: (value: string, open: boolean, options: SerializeOptions) => string;
16
- /** 序列化字符串转义序列 */
17
- serializeStringEscape: (value: string, options: SerializeOptions) => string;
18
- /** 序列化字符串常规内容 */
19
- serializeStringContent: (value: string, options: SerializeOptions) => string;
20
- /** 序列化函数 */
21
- serializeFunction: (value: VmFunction, options: SerializeOptions) => string;
22
- /** 序列化数组 */
23
- serializeArray: (value: VmArray, depth: number, options: SerializeOptions) => string;
24
- /** 序列化记录 */
25
- serializeRecord: (value: VmRecord, depth: number, options: SerializeOptions) => string;
26
- /** 序列化属性名 */
27
- serializePropName: (value: number | string, options: SerializeOptions) => string;
28
- /** 序列化模块 */
29
- serializeModule: (value: VmModule, depth: number, options: SerializeOptions) => string;
30
- /** 序列化外部值 */
31
- serializeExtern: (value: VmExtern, depth: number, options: SerializeOptions) => string;
32
- }
33
- /**
34
- * 将 MiraScript 字符串序列化为 MiraScript 字面量。
35
- */
36
- export declare function serializeString(value: string, options?: Partial<SerializeOptions>): string;
37
- /** 序列化属性名 */
38
- export declare function serializeRecordKey(key: string, options?: Partial<SerializeOptions>): string;
39
- /** 序列化 nil 值 */
40
- export declare function serializeNil(): string;
41
- /** 序列化布尔值 */
42
- export declare function serializeBoolean(value: boolean): string;
43
- /** 序列化数字 */
44
- export declare function serializeNumber(value: number): string;
45
- /** 序列化数组 */
46
- export declare function serializeArray(value: VmArray, depth: number, options: Readonly<SerializeOptions>): string;
47
- /** 序列化记录 */
48
- export declare function serializeRecord(value: VmRecord, depth: number, options: Readonly<SerializeOptions>): string;
49
- /**
50
- * 将 MiraScript 值序列化为 MiraScript 字面量字符串,非常量值默认转换为 `nil`。
51
- */
52
- export declare function serialize(value: VmAny, options?: Partial<SerializeOptions>): string;
53
- /** 将 MiraScript 函数转化为 MiraScript 字符串 */
54
- export declare function displayFunction(value: VmFunction): string;
55
- /** 将 MiraScript 模块转化为 MiraScript 字符串 */
56
- export declare function displayModule(value: VmModule): string;
57
- /** 将 MiraScript 外部值转化为 MiraScript 字符串 */
58
- export declare function displayExtern(value: VmExtern): string;
59
- /**
60
- * 将 MiraScript 值转化为 MiraScript 字符串。
61
- */
62
- export declare function display(value: VmAny, options?: Partial<SerializeOptions>): string;
63
- //# sourceMappingURL=serialize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/helpers/serialize.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- import type { VmScript } from '../compiler/index.js';
2
- import type { VmAny, VmArray, VmConst, VmContext, VmExtern, VmFunction, VmFunctionInfo, VmFunctionLike, VmImmutable, VmModule, VmPrimitive, VmRecord, VmValue } from '../vm/types/index.js';
3
- import type { VmWrapper } from '../vm/types/wrapper.js';
4
- /** 检查是否为 Mirascript 脚本 */
5
- export declare function isVmScript(value: unknown): value is VmScript;
6
- /** 检查是否为执行上下文 */
7
- export declare function isVmContext(context: unknown): context is VmContext;
8
- /** 检查是否为 Mirascript 函数 */
9
- export declare function isVmFunction<T extends VmFunctionLike>(value: unknown): value is VmFunction<T>;
10
- /** 检查是否为 Mirascript 函数,并获取其信息 */
11
- export declare function getVmFunctionInfo(value: unknown): VmFunctionInfo | undefined;
12
- /** 检查值是否为 MiraScript 包装器 */
13
- export declare function isVmWrapper<T extends object>(value: unknown): value is VmWrapper<T>;
14
- /** 检查值是否为 Mirascript 模块 */
15
- export declare function isVmModule<T extends Record<string, VmImmutable>>(value: unknown): value is VmModule<T>;
16
- /** 检查值是否为 Mirascript 外部值 */
17
- export declare function isVmExtern<T extends object>(value: unknown): value is VmExtern<T>;
18
- /** 检查值是否为 Mirascript 可调用值 */
19
- export declare function isVmCallable<E extends Function, F extends VmFunctionLike>(value: unknown): value is VmFunction<F> | VmExtern<E>;
20
- /** 检查值是否为 Mirascript 原始值 */
21
- export declare function isVmPrimitive(value: unknown): value is VmPrimitive;
22
- /** 检查值是否为 Mirascript 数组 */
23
- export declare function isVmArray(value: VmAny): value is VmArray;
24
- /** 检查值是否为 Mirascript 记录 */
25
- export declare function isVmRecord(value: VmAny): value is VmRecord;
26
- /** 检查是否为仅包含从 0 开始的连续数字键的 MiraScript 记录 */
27
- export declare function isVmArrayLikeRecordByEntires(entries: ReadonlyArray<readonly [string, unknown]>): boolean;
28
- /** 检查是否为仅包含从 0 开始的连续数字键的 MiraScript 记录 */
29
- export declare function isVmArrayLikeRecordByKeys(keys: readonly string[]): boolean;
30
- /** 检查是否为仅包含从 0 开始的连续数字键的 MiraScript 记录 */
31
- export declare function isVmArrayLikeRecord(value: VmRecord): boolean;
32
- /**
33
- * 检查是否为 Mirascript 值语义值
34
- */
35
- export declare function isVmConst(value: VmAny): value is VmConst;
36
- /**
37
- * 检查是否为 Mirascript 值语义值
38
- */
39
- export declare function isVmConst(value: unknown, checkDeep: boolean): value is VmConst;
40
- /**
41
- * 检查是否为 Mirascript 不可变值
42
- */
43
- export declare function isVmImmutable(value: VmAny): value is VmImmutable;
44
- /**
45
- * 检查是否为 Mirascript 不可变值
46
- */
47
- export declare function isVmImmutable(value: unknown, checkDeep: boolean): value is VmImmutable;
48
- /** 检查是否为 Mirascript 值 */
49
- export declare function isVmAny(value: unknown, checkDeep: boolean): value is VmAny;
50
- /** 检查是否为 Mirascript 合法值 */
51
- export declare function isVmValue(value: VmAny): value is VmValue;
52
- /** 检查是否为 Mirascript 合法值 */
53
- export declare function isVmValue(value: unknown, checkDeep: boolean): value is VmValue;
54
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/helpers/types.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- export declare const isArray: (arg: any) => arg is unknown[];
2
- export declare const isFinite: (number: unknown) => boolean, isNaN: (number: unknown) => boolean, isInteger: (number: unknown) => boolean, isSafeInteger: (number: unknown) => boolean, NotNumber: number, PositiveInfinity: number, NegativeInfinity: number;
3
- export declare const hasOwn: <Obj extends object, Key extends PropertyKey>(o: Obj, v: Key) => o is Obj & (string extends Key ? {} : number extends Key ? {} : symbol extends Key ? {} : Key extends PropertyKey ? { [key in Key]: unknown; } : {}), keys: {
4
- (o: object): string[];
5
- (o: {}): string[];
6
- }, values: {
7
- <T>(o: ArrayLike<T>): T[];
8
- <K extends PropertyKey, V>(o: Record<K, V>): (string extends K ? V : number extends K ? V : unknown)[];
9
- (o: {}): unknown[];
10
- }, entries: {
11
- <T>(o: ArrayLike<T>): [string, T][];
12
- <K extends PropertyKey, V>(o: Record<K, V>): [string, string extends K ? V : number extends K ? V : unknown][];
13
- (o: {}): [string, unknown][];
14
- }, create: {
15
- <O extends object>(o: O): O;
16
- (o: null): {};
17
- <O extends object, P extends Record<PropertyKey, PropertyDescriptor>>(o: O, properties: P & ThisType<any>): { [K in keyof (O & P)]: P[K] extends {
18
- value: infer V;
19
- } ? V : P[K] extends {
20
- get: () => infer V;
21
- } ? V : K extends keyof O ? O[K] : unknown; };
22
- <P extends Record<string, PropertyDescriptor>>(o: null, properties: P & ThisType<any>): { [K in keyof P]: P[K] extends {
23
- value: infer V;
24
- } ? V : P[K] extends {
25
- get: () => infer V;
26
- } ? V : unknown; };
27
- }, fromEntries: <T extends readonly [PropertyKey, unknown]>(entries: Iterable<T>) => Record<T[0], T[1]>, defineProperty: <O extends object, P extends PropertyKey, D extends PropertyDescriptor>(o: O, p: P, attributes: D & ThisType<any>) => O & (P extends PropertyKey ? { [K in P]: D extends {
28
- value: infer V;
29
- } ? V : D extends {
30
- get: () => infer V;
31
- } ? V : unknown; } : unknown), getOwnPropertyNames: (o: {}) => string[];
32
- export declare const apply: typeof Reflect.apply, getPrototypeOf: typeof Reflect.getPrototypeOf;
33
- /**
34
- * Determines whether an object has an enumerable property with the specified name.
35
- */
36
- export declare const hasOwnEnumerable: (o: object, v: PropertyKey) => boolean;
37
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAQ,OAAO,gCAAU,CAAC;AACjC,eAAO,MACH,QAAQ,gCACR,KAAK,gCACL,SAAS,gCACT,aAAa,gCACR,SAAS,UACK,gBAAgB,UAChB,gBAAgB,QAC7B,CAAC;AACX,eAAO,MAAQ,MAAM,yNAAE,IAAI;;;GAAE,MAAM;;;;GAAE,OAAO;;;;GAAE,MAAM;;;;;;;;;;;;;GAAE,WAAW,2FAAE,cAAc;;;;+BAAE,mBAAmB,qBAAW,CAAC;AAClH,eAAO,MAAQ,KAAK,wBAAE,cAAc,+BAAY,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAGxB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import './compiler/load-module.js';
2
- export { serialize } from './helpers/serialize.js';
3
- export * from './compiler/index.js';
4
- export * from './vm/index.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
package/dist/index.js DELETED
@@ -1,243 +0,0 @@
1
- import {
2
- $GlobalFallback,
3
- VmExtern,
4
- VmFunction,
5
- VmModule,
6
- configCheckpoint,
7
- createScript,
8
- createVmContext,
9
- defineVmContextValue,
10
- emitScript,
11
- reportDiagnostic,
12
- unwrapFromVmValue,
13
- wrapScript,
14
- wrapToVmValue
15
- } from "./chunk-6CAGNGY6.js";
16
- import {
17
- VmError,
18
- defineProperty,
19
- generateBytecode,
20
- generateBytecodeSync,
21
- getVmFunctionInfo,
22
- isFinite,
23
- isVmAny,
24
- isVmArray,
25
- isVmArrayLikeRecord,
26
- isVmArrayLikeRecordByEntires,
27
- isVmArrayLikeRecordByKeys,
28
- isVmCallable,
29
- isVmConst,
30
- isVmContext,
31
- isVmExtern,
32
- isVmFunction,
33
- isVmImmutable,
34
- isVmModule,
35
- isVmPrimitive,
36
- isVmRecord,
37
- isVmScript,
38
- isVmValue,
39
- isVmWrapper,
40
- serialize
41
- } from "./chunk-VRGQ23AK.js";
42
-
43
- // src/compiler/compile-fast.ts
44
- import { isKeyword } from "@mirascript/constants";
45
- var REG_NUMBER_FULL = /^(?:[+-])?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
46
- var REG_IDENTIFIER_FAST = /^(?:\$+|@+|[A-Za-z])[a-zA-Z0-9_]*$/;
47
- var FAST_SCRIPT_MAX_LEN = 32;
48
- function constantFiniteNumber(value) {
49
- if (value === 0) {
50
- if (Object.is(value, -0)) {
51
- return () => -0;
52
- } else {
53
- return () => 0;
54
- }
55
- }
56
- const f = () => value;
57
- defineProperty(f, "toString", {
58
- value: () => {
59
- return `() => ${value};`;
60
- },
61
- writable: false,
62
- enumerable: false,
63
- configurable: false
64
- });
65
- return f;
66
- }
67
- function constantString(value) {
68
- const f = () => value;
69
- defineProperty(f, "toString", {
70
- value: () => {
71
- return `() => ${JSON.stringify(value)};`;
72
- },
73
- writable: false,
74
- enumerable: false,
75
- configurable: false
76
- });
77
- return f;
78
- }
79
- function nan() {
80
- return () => 0 / 0;
81
- }
82
- function posInf() {
83
- return () => 1 / 0;
84
- }
85
- function negInf() {
86
- return () => -1 / 0;
87
- }
88
- function constantBoolean(value) {
89
- if (value) {
90
- return () => true;
91
- } else {
92
- return () => false;
93
- }
94
- }
95
- function nil() {
96
- return () => null;
97
- }
98
- function globalVariable(id) {
99
- const f = (global) => (global ?? $GlobalFallback()).get(id);
100
- defineProperty(f, "toString", {
101
- value: () => {
102
- return `(global) => (global ?? $GlobalFallback()).get(${JSON.stringify(id)});`;
103
- },
104
- writable: false,
105
- enumerable: false,
106
- configurable: false
107
- });
108
- return f;
109
- }
110
- function compileScriptFast(code) {
111
- if (code.length > FAST_SCRIPT_MAX_LEN) return void 0;
112
- const trimmedCode = code.trim();
113
- if (!trimmedCode) {
114
- return wrapScript(code, "Script", nil());
115
- }
116
- switch (trimmedCode) {
117
- case "nil":
118
- return wrapScript(code, "Script", nil());
119
- case "true":
120
- return wrapScript(code, "Script", constantBoolean(true));
121
- case "false":
122
- return wrapScript(code, "Script", constantBoolean(false));
123
- case "nan":
124
- return wrapScript(code, "Script", nan());
125
- case "inf":
126
- case "+inf":
127
- return wrapScript(code, "Script", posInf());
128
- case "-inf":
129
- return wrapScript(code, "Script", negInf());
130
- }
131
- if (REG_IDENTIFIER_FAST.test(trimmedCode)) {
132
- const id = trimmedCode;
133
- if (isKeyword(id)) {
134
- return void 0;
135
- }
136
- return wrapScript(code, "Script", globalVariable(id));
137
- }
138
- if (REG_NUMBER_FULL.test(trimmedCode)) {
139
- const num = Number(trimmedCode);
140
- if (!isFinite(num)) return void 0;
141
- return wrapScript(code, "Script", constantFiniteNumber(num));
142
- }
143
- return void 0;
144
- }
145
- var FAST_TEMPLATE_MAX_LEN = 1024;
146
- function compileTemplateFast(code) {
147
- if (code.length > FAST_TEMPLATE_MAX_LEN) return void 0;
148
- if (!code.includes("$")) {
149
- return wrapScript(code, "Template", constantString(code));
150
- }
151
- return void 0;
152
- }
153
- function compileFast(code, options) {
154
- if (options.sourceMap) return void 0;
155
- return (options.input_mode === "Template" ? compileTemplateFast : compileScriptFast)(code);
156
- }
157
-
158
- // src/compiler/worker-manager.ts
159
- import { WorkerPool } from "@cloudpss/worker/pool";
160
- var pool = /* @__PURE__ */ new WorkerPool(
161
- () => {
162
- return new Worker(new URL("#compiler/worker", import.meta.url), {
163
- type: "module",
164
- name: "@mirascript/compiler"
165
- });
166
- },
167
- {
168
- name: "@mirascript/compiler"
169
- }
170
- );
171
- async function compileWorker(...args) {
172
- return await pool.call("compile", args);
173
- }
174
-
175
- // src/compiler/index.ts
176
- var WORKER_MIN_LEN = typeof Worker != "function" ? Number.MAX_VALUE : 1024;
177
- function getOptions(options) {
178
- options ??= {};
179
- if (options.sourceMap) {
180
- options.diagnostic_sourcemap = true;
181
- options.diagnostic_position_encoding ??= "Utf16";
182
- }
183
- options.input_mode ??= "Script";
184
- return options;
185
- }
186
- async function compile(source, options) {
187
- options = getOptions(options);
188
- if (typeof source == "string") {
189
- const result = compileFast(source, options);
190
- if (result) return result;
191
- }
192
- if (source.length < WORKER_MIN_LEN) {
193
- const bc = await generateBytecode(source, options);
194
- return emitScript(source, bc, options);
195
- }
196
- const [target, diagnostics] = await compileWorker(source, options);
197
- if (target == null) {
198
- reportDiagnostic(source, diagnostics, options.fileName);
199
- }
200
- return createScript(source, options.input_mode ?? "Script", target);
201
- }
202
- function compileSync(source, options) {
203
- options = getOptions(options);
204
- if (typeof source == "string") {
205
- const result = compileFast(source, options);
206
- if (result) return result;
207
- }
208
- const bc = generateBytecodeSync(source, options);
209
- return emitScript(source, bc, options);
210
- }
211
- export {
212
- VmError,
213
- VmExtern,
214
- VmFunction,
215
- VmModule,
216
- compile,
217
- compileSync,
218
- configCheckpoint,
219
- createVmContext,
220
- defineVmContextValue,
221
- getVmFunctionInfo,
222
- isVmAny,
223
- isVmArray,
224
- isVmArrayLikeRecord,
225
- isVmArrayLikeRecordByEntires,
226
- isVmArrayLikeRecordByKeys,
227
- isVmCallable,
228
- isVmConst,
229
- isVmContext,
230
- isVmExtern,
231
- isVmFunction,
232
- isVmImmutable,
233
- isVmModule,
234
- isVmPrimitive,
235
- isVmRecord,
236
- isVmScript,
237
- isVmValue,
238
- isVmWrapper,
239
- serialize,
240
- unwrapFromVmValue,
241
- wrapToVmValue
242
- };
243
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/compiler/compile-fast.ts", "../src/compiler/worker-manager.ts", "../src/compiler/index.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
package/dist/subtle.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import './compiler/load-module.js';
2
- export { OpCode, isKeyword } from '@mirascript/constants';
3
- export * as constants from './helpers/constants.js';
4
- export * as convert from './helpers/convert/index.js';
5
- export { DefaultVmContext } from './vm/types/context.js';
6
- export * as operations from './vm/operations/index.js';
7
- export { display as serializeForDisplay, serialize, serializeNil, serializeBoolean, serializeNumber, serializeString, serializeRecordKey, serializeArray, serializeRecord, type SerializeOptions, } from './helpers/serialize.js';
8
- export { lib } from './vm/lib/index.js';
9
- export * from './compiler/diagnostic.js';
10
- export { emitScript } from './compiler/emit-script.js';
11
- export { createScript, wrapScript } from './compiler/create-script.js';
12
- export { generateBytecode, generateBytecodeSync, type VmBytecodeResult } from './compiler/generate-bytecode.js';
13
- export { type GlobalReferenceChain, analyzeGlobalReferences } from './helpers/analyze.js';
14
- //# sourceMappingURL=subtle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subtle.d.ts","sourceRoot":"","sources":["../src/subtle.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACH,OAAO,IAAI,mBAAmB,EAC9B,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,KAAK,gBAAgB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAChH,OAAO,EAAE,KAAK,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/subtle.js DELETED
@@ -1,122 +0,0 @@
1
- import {
2
- DefaultVmContext,
3
- convert_exports,
4
- createScript,
5
- emitScript,
6
- lib,
7
- operations_exports,
8
- wrapScript
9
- } from "./chunk-6CAGNGY6.js";
10
- import {
11
- DiagnosticCode,
12
- REG_IDENTIFIER,
13
- constants_exports,
14
- display,
15
- formatDiagnosticMessage,
16
- formatDiagnostics,
17
- generateBytecode,
18
- generateBytecodeSync,
19
- getDiagnosticMessage,
20
- getDiagnosticSeverity,
21
- parseDiagnostics,
22
- serialize,
23
- serializeArray,
24
- serializeBoolean,
25
- serializeNil,
26
- serializeNumber,
27
- serializeRecord,
28
- serializeRecordKey,
29
- serializeString
30
- } from "./chunk-VRGQ23AK.js";
31
-
32
- // src/subtle.ts
33
- import { OpCode, isKeyword } from "@mirascript/constants";
34
-
35
- // src/helpers/analyze.ts
36
- var REG_SPILT = /\s*!?\s*\.\s*/u;
37
- var REG_CHAIN = new RegExp(
38
- String.raw`^(${REG_IDENTIFIER.source})(?:${REG_SPILT.source}(?:\d+|${REG_IDENTIFIER.source}))*`,
39
- "u"
40
- );
41
- var { parseInt } = Number;
42
- function analyzeGlobalReferences(expression, mode) {
43
- if (expression.trim() === "") {
44
- return [];
45
- }
46
- const [code, diagnostics] = generateBytecodeSync(expression, {
47
- input_mode: mode || "Script",
48
- diagnostic_position_encoding: "Utf16",
49
- // 需要设为 true 以便在编译失败时返回空的 bytecode
50
- diagnostic_error: true,
51
- diagnostic_warning: false,
52
- diagnostic_info: false,
53
- diagnostic_hint: false,
54
- diagnostic_reference: false,
55
- diagnostic_tag: true,
56
- diagnostic_sourcemap: false,
57
- trivia: false
58
- });
59
- if (code == null || diagnostics.length === 0) {
60
- return [];
61
- }
62
- const parsedDiagnostics = parseDiagnostics(expression, diagnostics);
63
- const globals = parsedDiagnostics.tags.filter((t) => t.code === DiagnosticCode.GlobalVariable);
64
- if (globals.length === 0) {
65
- return [];
66
- }
67
- const lines = expression.split(/\r?\n/);
68
- const result = /* @__PURE__ */ new Set();
69
- for (const global of globals) {
70
- const line = lines[global.range.startLineNumber - 1];
71
- if (!line) continue;
72
- const access = line.slice(global.range.startColumn - 1);
73
- const chain = REG_CHAIN.exec(access);
74
- if (chain == null) continue;
75
- const globalName = chain[1];
76
- if (globalName?.length !== global.range.endColumn - global.range.startColumn) continue;
77
- const chainStr = chain[0].split(REG_SPILT).join(".");
78
- result.add(chainStr);
79
- }
80
- const accessChains = [];
81
- for (const chainStr of result) {
82
- const parts = chainStr.split(".").map((part) => {
83
- if (/^\d/.test(part)) {
84
- return parseInt(part, 10);
85
- }
86
- return part;
87
- });
88
- accessChains.push(parts);
89
- }
90
- return accessChains;
91
- }
92
- export {
93
- DefaultVmContext,
94
- DiagnosticCode,
95
- OpCode,
96
- analyzeGlobalReferences,
97
- constants_exports as constants,
98
- convert_exports as convert,
99
- createScript,
100
- emitScript,
101
- formatDiagnosticMessage,
102
- formatDiagnostics,
103
- generateBytecode,
104
- generateBytecodeSync,
105
- getDiagnosticMessage,
106
- getDiagnosticSeverity,
107
- isKeyword,
108
- lib,
109
- operations_exports as operations,
110
- parseDiagnostics,
111
- serialize,
112
- serializeArray,
113
- serializeBoolean,
114
- display as serializeForDisplay,
115
- serializeNil,
116
- serializeNumber,
117
- serializeRecord,
118
- serializeRecordKey,
119
- serializeString,
120
- wrapScript
121
- };
122
- //# sourceMappingURL=subtle.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/subtle.ts", "../src/helpers/analyze.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,QAAQ,iBAAiB;;;ACMlC,IAAM,YAAY;AAClB,IAAM,YAAY,IAAI;AAAA,EAClB,OAAO,QAAQ,eAAe,MAAM,OAAO,UAAU,MAAM,UAAU,eAAe,MAAM;AAAA,EAC1F;AACJ;AAEA,IAAM,EAAE,SAAS,IAAI;AAId,SAAS,wBAAwB,YAAoB,MAA0C;AAClG,MAAI,WAAW,KAAK,MAAM,IAAI;AAC1B,WAAO,CAAC;AAAA,EACZ;AACA,QAAM,CAAC,MAAM,WAAW,IAAI,qBAAqB,YAAY;AAAA,IACzD,YAAY,QAAQ;AAAA,IACpB,8BAA8B;AAAA;AAAA,IAE9B,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,QAAQ;AAAA,EACZ,CAAC;AACD,MAAI,QAAQ,QAAQ,YAAY,WAAW,GAAG;AAC1C,WAAO,CAAC;AAAA,EACZ;AACA,QAAM,oBAAoB,iBAAiB,YAAY,WAAW;AAClE,QAAM,UAAU,kBAAkB,KAAK,OAAO,CAAC,MAAM,EAAE,SAAS,eAAe,cAAc;AAC7F,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO,CAAC;AAAA,EACZ;AACA,QAAM,QAAQ,WAAW,MAAM,OAAO;AACtC,QAAM,SAAS,oBAAI,IAAY;AAC/B,aAAW,UAAU,SAAS;AAE1B,UAAM,OAAO,MAAM,OAAO,MAAM,kBAAkB,CAAC;AACnD,QAAI,CAAC,KAAM;AACX,UAAM,SAAS,KAAK,MAAM,OAAO,MAAM,cAAc,CAAC;AACtD,UAAM,QAAQ,UAAU,KAAK,MAAM;AACnC,QAAI,SAAS,KAAM;AACnB,UAAM,aAAa,MAAM,CAAC;AAC1B,QAAI,YAAY,WAAW,OAAO,MAAM,YAAY,OAAO,MAAM,YAAa;AAC9E,UAAM,WAAW,MAAM,CAAC,EAAE,MAAM,SAAS,EAAE,KAAK,GAAG;AACnD,WAAO,IAAI,QAAQ;AAAA,EACvB;AACA,QAAM,eAAuC,CAAC;AAC9C,aAAW,YAAY,QAAQ;AAC3B,UAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS;AAC5C,UAAI,MAAM,KAAK,IAAI,GAAG;AAElB,eAAO,SAAS,MAAM,EAAE;AAAA,MAC5B;AACA,aAAO;AAAA,IACX,CAAC;AACD,iBAAa,KAAK,KAAwC;AAAA,EAC9D;AACA,SAAO;AACX;",
5
- "names": []
6
- }
@@ -1,9 +0,0 @@
1
- /** 检查点 */
2
- export declare function Cp(): void;
3
- /** 检查点 */
4
- export declare function CpEnter(): void;
5
- /** 检查点 */
6
- export declare function CpExit(): void;
7
- /** 设置检查点超时时间 */
8
- export declare function configCheckpoint(timeout?: number, checkInterval?: number): void;
9
- //# sourceMappingURL=checkpoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/vm/checkpoint.ts"],"names":[],"mappings":"AAmBA,UAAU;AACV,wBAAgB,EAAE,IAAI,IAAI,CAWzB;AACD,UAAU;AACV,wBAAgB,OAAO,IAAI,IAAI,CAW9B;AACD,UAAU;AACV,wBAAgB,MAAM,IAAI,IAAI,CAS7B;AAGD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAC5B,OAAO,GAAE,MAA2B,EACpC,aAAa,GAAE,MAA4B,GAC5C,IAAI,CAaN"}
@@ -1,5 +0,0 @@
1
- import './lib/index.js';
2
- export { VmError } from '../helpers/error.js';
3
- export * from './types/index.js';
4
- export { configCheckpoint } from './checkpoint.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vm/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,8 +0,0 @@
1
- export declare const b_and: ((x: import("../../index.js").VmValue | undefined, y: import("../../index.js").VmValue | undefined) => number) & import("../helpers.js").VmLibOption & Record<never, never>;
2
- export declare const b_or: ((x: import("../../index.js").VmValue | undefined, y: import("../../index.js").VmValue | undefined) => number) & import("../helpers.js").VmLibOption & Record<never, never>;
3
- export declare const b_not: ((x: import("../../index.js").VmValue | undefined) => number) & import("../helpers.js").VmLibOption & Record<never, never>;
4
- export declare const b_xor: ((x: import("../../index.js").VmValue | undefined, y: import("../../index.js").VmValue | undefined) => number) & import("../helpers.js").VmLibOption & Record<never, never>;
5
- export declare const shl: ((x: import("../../index.js").VmValue | undefined, y: import("../../index.js").VmValue | undefined) => number) & import("../helpers.js").VmLibOption & Record<never, never>;
6
- export declare const sar: ((x: import("../../index.js").VmValue | undefined, y: import("../../index.js").VmValue | undefined) => number) & import("../helpers.js").VmLibOption & Record<never, never>;
7
- export declare const shr: ((x: import("../../index.js").VmValue | undefined, y: import("../../index.js").VmValue | undefined) => number) & import("../helpers.js").VmLibOption & Record<never, never>;
8
- //# sourceMappingURL=bit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bit.d.ts","sourceRoot":"","sources":["../../../../src/vm/lib/global/bit.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,6KAWjB,CAAC;AAEF,eAAO,MAAM,IAAI,6KAWhB,CAAC;AAEF,eAAO,MAAM,KAAK,4HAWjB,CAAC;AAEF,eAAO,MAAM,KAAK,6KAWjB,CAAC;AAEF,eAAO,MAAM,GAAG,6KAWf,CAAC;AAEF,eAAO,MAAM,GAAG,6KAWf,CAAC;AAEF,eAAO,MAAM,GAAG,6KAWf,CAAC"}