@ibyar/expressions 0.8.6 → 1.0.0

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 (243) hide show
  1. package/api/abstract.d.ts +1 -0
  2. package/api/abstract.d.ts.map +1 -0
  3. package/api/abstract.js +12 -0
  4. package/api/abstract.js.map +1 -1
  5. package/api/class/class.d.ts +1 -0
  6. package/api/class/class.d.ts.map +1 -0
  7. package/api/class/class.js +563 -482
  8. package/api/class/class.js.map +1 -1
  9. package/api/class/decorator.d.ts +1 -0
  10. package/api/class/decorator.d.ts.map +1 -0
  11. package/api/class/decorator.js +49 -42
  12. package/api/class/decorator.js.map +1 -1
  13. package/api/computing/call.d.ts +1 -0
  14. package/api/computing/call.d.ts.map +1 -0
  15. package/api/computing/call.js +79 -70
  16. package/api/computing/call.js.map +1 -1
  17. package/api/computing/debugger.d.ts +1 -0
  18. package/api/computing/debugger.d.ts.map +1 -0
  19. package/api/computing/debugger.js +36 -29
  20. package/api/computing/debugger.js.map +1 -1
  21. package/api/computing/new.d.ts +1 -0
  22. package/api/computing/new.d.ts.map +1 -0
  23. package/api/computing/new.js +77 -69
  24. package/api/computing/new.js.map +1 -1
  25. package/api/computing/rest.d.ts +1 -0
  26. package/api/computing/rest.d.ts.map +1 -0
  27. package/api/computing/rest.js +50 -43
  28. package/api/computing/rest.js.map +1 -1
  29. package/api/computing/return.d.ts +1 -0
  30. package/api/computing/return.d.ts.map +1 -0
  31. package/api/computing/return.js +48 -41
  32. package/api/computing/return.js.map +1 -1
  33. package/api/computing/spread.d.ts +1 -0
  34. package/api/computing/spread.d.ts.map +1 -0
  35. package/api/computing/spread.js +66 -59
  36. package/api/computing/spread.js.map +1 -1
  37. package/api/computing/throw.d.ts +1 -0
  38. package/api/computing/throw.d.ts.map +1 -0
  39. package/api/computing/throw.js +204 -178
  40. package/api/computing/throw.js.map +1 -1
  41. package/api/computing/yield.d.ts +1 -0
  42. package/api/computing/yield.d.ts.map +1 -0
  43. package/api/computing/yield.js +56 -48
  44. package/api/computing/yield.js.map +1 -1
  45. package/api/definition/array.d.ts +1 -0
  46. package/api/definition/array.d.ts.map +1 -0
  47. package/api/definition/array.js +139 -124
  48. package/api/definition/array.js.map +1 -1
  49. package/api/definition/bind.d.ts +1 -0
  50. package/api/definition/bind.d.ts.map +1 -0
  51. package/api/definition/bind.js +81 -71
  52. package/api/definition/bind.js.map +1 -1
  53. package/api/definition/comment.d.ts +1 -0
  54. package/api/definition/comment.d.ts.map +1 -0
  55. package/api/definition/comment.js +40 -33
  56. package/api/definition/comment.js.map +1 -1
  57. package/api/definition/function.d.ts +1 -0
  58. package/api/definition/function.d.ts.map +1 -0
  59. package/api/definition/function.js +484 -447
  60. package/api/definition/function.js.map +1 -1
  61. package/api/definition/member.d.ts +1 -0
  62. package/api/definition/member.d.ts.map +1 -0
  63. package/api/definition/member.js +100 -90
  64. package/api/definition/member.js.map +1 -1
  65. package/api/definition/object.d.ts +1 -0
  66. package/api/definition/object.d.ts.map +1 -0
  67. package/api/definition/object.js +230 -202
  68. package/api/definition/object.js.map +1 -1
  69. package/api/definition/statement.d.ts +1 -0
  70. package/api/definition/statement.d.ts.map +1 -0
  71. package/api/definition/statement.js +52 -45
  72. package/api/definition/statement.js.map +1 -1
  73. package/api/definition/values.d.ts +1 -0
  74. package/api/definition/values.d.ts.map +1 -0
  75. package/api/definition/values.js +210 -167
  76. package/api/definition/values.js.map +1 -1
  77. package/api/deserialize/deserialize.d.ts +2 -1
  78. package/api/deserialize/deserialize.d.ts.map +1 -0
  79. package/api/deserialize/deserialize.js +5 -7
  80. package/api/deserialize/deserialize.js.map +1 -1
  81. package/api/deserialize/type-store.d.ts +1 -0
  82. package/api/deserialize/type-store.d.ts.map +1 -0
  83. package/api/expression.d.ts +1 -0
  84. package/api/expression.d.ts.map +1 -0
  85. package/api/index.d.ts +1 -0
  86. package/api/index.d.ts.map +1 -0
  87. package/api/module/common.d.ts +1 -0
  88. package/api/module/common.d.ts.map +1 -0
  89. package/api/module/common.js +59 -51
  90. package/api/module/common.js.map +1 -1
  91. package/api/module/export.d.ts +1 -0
  92. package/api/module/export.d.ts.map +1 -0
  93. package/api/module/export.js +327 -294
  94. package/api/module/export.js.map +1 -1
  95. package/api/module/import.d.ts +1 -0
  96. package/api/module/import.d.ts.map +1 -0
  97. package/api/module/import.js +298 -258
  98. package/api/module/import.js.map +1 -1
  99. package/api/operators/assignment.d.ts +1 -0
  100. package/api/operators/assignment.d.ts.map +1 -0
  101. package/api/operators/assignment.js +84 -75
  102. package/api/operators/assignment.js.map +1 -1
  103. package/api/operators/await.d.ts +1 -0
  104. package/api/operators/await.d.ts.map +1 -0
  105. package/api/operators/await.js +50 -43
  106. package/api/operators/await.js.map +1 -1
  107. package/api/operators/binary.d.ts +1 -0
  108. package/api/operators/binary.d.ts.map +1 -0
  109. package/api/operators/binary.js +74 -64
  110. package/api/operators/binary.js.map +1 -1
  111. package/api/operators/chaining.d.ts +1 -0
  112. package/api/operators/chaining.d.ts.map +1 -0
  113. package/api/operators/chaining.js +52 -45
  114. package/api/operators/chaining.js.map +1 -1
  115. package/api/operators/comma.d.ts +1 -0
  116. package/api/operators/comma.d.ts.map +1 -0
  117. package/api/operators/comma.js +49 -42
  118. package/api/operators/comma.js.map +1 -1
  119. package/api/operators/grouping.d.ts +1 -0
  120. package/api/operators/grouping.d.ts.map +1 -0
  121. package/api/operators/grouping.js +47 -40
  122. package/api/operators/grouping.js.map +1 -1
  123. package/api/operators/logical.d.ts +1 -0
  124. package/api/operators/logical.d.ts.map +1 -0
  125. package/api/operators/logical.js +47 -37
  126. package/api/operators/logical.js.map +1 -1
  127. package/api/operators/pipeline.d.ts +1 -0
  128. package/api/operators/pipeline.d.ts.map +1 -0
  129. package/api/operators/pipeline.js +91 -82
  130. package/api/operators/pipeline.js.map +1 -1
  131. package/api/operators/ternary.d.ts +1 -0
  132. package/api/operators/ternary.d.ts.map +1 -0
  133. package/api/operators/ternary.js +65 -56
  134. package/api/operators/ternary.js.map +1 -1
  135. package/api/operators/types.d.ts +1 -0
  136. package/api/operators/types.d.ts.map +1 -0
  137. package/api/operators/unary.d.ts +1 -0
  138. package/api/operators/unary.d.ts.map +1 -0
  139. package/api/operators/unary.js +93 -82
  140. package/api/operators/unary.js.map +1 -1
  141. package/api/operators/update.d.ts +1 -0
  142. package/api/operators/update.d.ts.map +1 -0
  143. package/api/operators/update.js +74 -62
  144. package/api/operators/update.js.map +1 -1
  145. package/api/program.d.ts +1 -0
  146. package/api/program.d.ts.map +1 -0
  147. package/api/program.js +49 -41
  148. package/api/program.js.map +1 -1
  149. package/api/statement/control/block.d.ts +1 -0
  150. package/api/statement/control/block.d.ts.map +1 -0
  151. package/api/statement/control/block.js +61 -54
  152. package/api/statement/control/block.js.map +1 -1
  153. package/api/statement/control/empty.d.ts +1 -1
  154. package/api/statement/control/empty.d.ts.map +1 -0
  155. package/api/statement/control/empty.js +39 -34
  156. package/api/statement/control/empty.js.map +1 -1
  157. package/api/statement/control/if.d.ts +1 -0
  158. package/api/statement/control/if.d.ts.map +1 -0
  159. package/api/statement/control/if.js +75 -66
  160. package/api/statement/control/if.js.map +1 -1
  161. package/api/statement/control/switch.d.ts +1 -0
  162. package/api/statement/control/switch.d.ts.map +1 -0
  163. package/api/statement/control/switch.js +168 -144
  164. package/api/statement/control/switch.js.map +1 -1
  165. package/api/statement/control/terminate.d.ts +1 -2
  166. package/api/statement/control/terminate.d.ts.map +1 -0
  167. package/api/statement/control/terminate.js +105 -81
  168. package/api/statement/control/terminate.js.map +1 -1
  169. package/api/statement/control/with.d.ts +1 -0
  170. package/api/statement/control/with.d.ts.map +1 -0
  171. package/api/statement/control/with.js +68 -60
  172. package/api/statement/control/with.js.map +1 -1
  173. package/api/statement/declarations/declares.d.ts +1 -0
  174. package/api/statement/declarations/declares.d.ts.map +1 -0
  175. package/api/statement/declarations/declares.js +140 -123
  176. package/api/statement/declarations/declares.js.map +1 -1
  177. package/api/statement/iterations/for.d.ts +1 -0
  178. package/api/statement/iterations/for.d.ts.map +1 -0
  179. package/api/statement/iterations/for.js +320 -280
  180. package/api/statement/iterations/for.js.map +1 -1
  181. package/api/statement/iterations/while.d.ts +1 -0
  182. package/api/statement/iterations/while.d.ts.map +1 -0
  183. package/api/statement/iterations/while.js +144 -127
  184. package/api/statement/iterations/while.js.map +1 -1
  185. package/api/utils.d.ts +1 -0
  186. package/api/utils.d.ts.map +1 -0
  187. package/index.d.ts +1 -0
  188. package/index.d.ts.map +1 -0
  189. package/package.json +4 -4
  190. package/scope/event.d.ts +1 -0
  191. package/scope/event.d.ts.map +1 -0
  192. package/scope/finalizer.d.ts +1 -0
  193. package/scope/finalizer.d.ts.map +1 -0
  194. package/scope/index.d.ts +1 -0
  195. package/scope/index.d.ts.map +1 -0
  196. package/scope/pool.d.ts +1 -0
  197. package/scope/pool.d.ts.map +1 -0
  198. package/scope/proxy.d.ts +1 -0
  199. package/scope/proxy.d.ts.map +1 -0
  200. package/scope/proxy.js +1 -0
  201. package/scope/proxy.js.map +1 -1
  202. package/scope/scope.d.ts +1 -0
  203. package/scope/scope.d.ts.map +1 -0
  204. package/scope/scope.js +17 -11
  205. package/scope/scope.js.map +1 -1
  206. package/scope/stack.d.ts +1 -0
  207. package/scope/stack.d.ts.map +1 -0
  208. package/scope/stack.js +21 -13
  209. package/scope/stack.js.map +1 -1
  210. package/v8/enums.d.ts +1 -0
  211. package/v8/enums.d.ts.map +1 -0
  212. package/v8/enums.js +15 -13
  213. package/v8/enums.js.map +1 -1
  214. package/v8/factory.d.ts +1 -0
  215. package/v8/factory.d.ts.map +1 -0
  216. package/v8/factory.js +3 -1
  217. package/v8/factory.js.map +1 -1
  218. package/v8/index.d.ts +1 -0
  219. package/v8/index.d.ts.map +1 -0
  220. package/v8/inline.d.ts +1 -0
  221. package/v8/inline.d.ts.map +1 -0
  222. package/v8/inline.js +9 -5
  223. package/v8/inline.js.map +1 -1
  224. package/v8/language.d.ts +1 -0
  225. package/v8/language.d.ts.map +1 -0
  226. package/v8/node.d.ts +1 -0
  227. package/v8/node.d.ts.map +1 -0
  228. package/v8/parser.d.ts +1 -0
  229. package/v8/parser.d.ts.map +1 -0
  230. package/v8/parser.js +5 -5
  231. package/v8/parser.js.map +1 -1
  232. package/v8/stream.d.ts +1 -0
  233. package/v8/stream.d.ts.map +1 -0
  234. package/v8/stream.js +19 -8
  235. package/v8/stream.js.map +1 -1
  236. package/v8/token.d.ts +1 -0
  237. package/v8/token.d.ts.map +1 -0
  238. package/v8/token.js +365 -359
  239. package/v8/token.js.map +1 -1
  240. package/visit/index.d.ts +1 -0
  241. package/visit/index.d.ts.map +1 -0
  242. package/visit/visitor.d.ts +1 -0
  243. package/visit/visitor.d.ts.map +1 -0
@@ -89,3 +89,4 @@ export declare class TaggedTemplateExpression extends TemplateLiteralExpressionN
89
89
  constructor(tag: ExpressionNode, quasis: string[], expressions: ExpressionNode[], range?: [number, number], loc?: SourceLocation);
90
90
  getTag(): ExpressionNode;
91
91
  }
92
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/definition/values.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- var Identifier_1, ThisExpression_1, Literal_1, TemplateLiteral_1, TaggedTemplateExpression_1;
2
- import { __decorate, __metadata } from "tslib";
1
+ import { __esDecorate, __runInitializers } from "tslib";
3
2
  import { Deserializer } from '../deserialize/deserialize.js';
4
3
  import { AbstractExpressionNode } from '../abstract.js';
5
4
  /**
@@ -11,156 +10,186 @@ import { AbstractExpressionNode } from '../abstract.js';
11
10
  * there is no way to convert identifiers to strings,
12
11
  * but sometimes it is possible to parse strings into identifiers.
13
12
  */
14
- let Identifier = Identifier_1 = class Identifier extends AbstractExpressionNode {
15
- static fromJSON(node) {
16
- return new Identifier_1(node.name, node.range, node.loc);
17
- }
18
- constructor(name, range, loc) {
19
- super(range, loc);
20
- this.name = name;
21
- }
22
- getName() {
23
- return this.name;
24
- }
25
- set(stack, value) {
26
- return stack.set(this.name, value) ? value : void 0;
27
- }
28
- get(stack, thisContext) {
29
- if (thisContext) {
30
- return thisContext[this.name];
13
+ export let Identifier = (() => {
14
+ let _classDecorators = [Deserializer('Identifier')];
15
+ let _classDescriptor;
16
+ let _classExtraInitializers = [];
17
+ let _classThis;
18
+ var Identifier = class extends AbstractExpressionNode {
19
+ static {
20
+ __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
21
+ Identifier = _classThis = _classDescriptor.value;
22
+ __runInitializers(_classThis, _classExtraInitializers);
31
23
  }
32
- return stack.get(this.name);
33
- }
34
- findScope(stack, scope) {
35
- if (scope) {
24
+ name;
25
+ static fromJSON(node) {
26
+ return new Identifier(node.name, node.range, node.loc);
27
+ }
28
+ constructor(name, range, loc) {
29
+ super(range, loc);
30
+ this.name = name;
31
+ }
32
+ getName() {
33
+ return this.name;
34
+ }
35
+ set(stack, value) {
36
+ return stack.set(this.name, value) ? value : void 0;
37
+ }
38
+ get(stack, thisContext) {
39
+ if (thisContext) {
40
+ return thisContext[this.name];
41
+ }
42
+ return stack.get(this.name);
43
+ }
44
+ findScope(stack, scope) {
45
+ if (scope) {
46
+ return scope.getInnerScope(this.name);
47
+ }
48
+ scope = stack.findScope(this.name);
36
49
  return scope.getInnerScope(this.name);
37
50
  }
38
- scope = stack.findScope(this.name);
39
- return scope.getInnerScope(this.name);
40
- }
41
- declareVariable(stack, propertyValue) {
42
- return stack.declareVariable(this.name, propertyValue);
43
- }
44
- getDeclarationName() {
45
- return this.toString();
46
- }
47
- dependency(computed) {
48
- return [this];
49
- }
50
- dependencyPath(computed) {
51
- const path = [{ computed: false, path: this.toString() }];
52
- return computed ? [{ computed, path: this.toString(), computedPath: [path] }] : path;
53
- }
54
- toString() {
55
- return String(this.name);
56
- }
57
- toJson() {
58
- return { name: this.name };
59
- }
60
- };
61
- Identifier = Identifier_1 = __decorate([
62
- Deserializer('Identifier'),
63
- __metadata("design:paramtypes", [Object, Array, Object])
64
- ], Identifier);
65
- export { Identifier };
66
- let ThisExpression = ThisExpression_1 = class ThisExpression extends Identifier {
67
- static fromJSON(node) {
68
- return new ThisExpression_1(node.range, node.loc);
69
- }
70
- constructor(range, loc) {
71
- super('this', range, loc);
72
- }
73
- toJson() {
74
- return {};
75
- }
76
- };
77
- ThisExpression = ThisExpression_1 = __decorate([
78
- Deserializer('ThisExpression'),
79
- __metadata("design:paramtypes", [Array, Object])
80
- ], ThisExpression);
81
- export { ThisExpression };
82
- let Literal = Literal_1 = class Literal extends AbstractExpressionNode {
83
- static fromJSON(node) {
84
- if (node.bigint) {
85
- return new Literal_1(BigInt(node.bigint), node.raw, undefined, node.bigint, node.range, node.loc);
86
- }
87
- else if (node.regex) {
88
- return new Literal_1(RegExp(node.regex.pattern, node.regex.flags), node.raw, node.regex, undefined, node.range, node.loc);
89
- }
90
- return new Literal_1(node.value, node.raw, undefined, undefined, node.range, node.loc);
91
- }
92
- constructor(value, raw, regex, bigint, range, loc) {
93
- super(range, loc);
94
- this.value = value;
95
- raw && (this.raw = raw);
96
- regex && (this.regex = regex);
97
- bigint && (this.bigint = bigint);
98
- }
99
- getValue() {
100
- return this.value;
101
- }
102
- getRegex() {
103
- return this.regex;
104
- }
105
- getBigint() {
106
- return this.bigint;
107
- }
108
- geRaw() {
109
- return this.raw;
110
- }
111
- set() {
112
- throw new Error(`${this.constructor.name}#set() has no implementation.`);
113
- }
114
- get() {
115
- return this.value;
116
- }
117
- findScope(stack, scope) {
118
- if (scope) {
51
+ declareVariable(stack, propertyValue) {
52
+ return stack.declareVariable(this.name, propertyValue);
53
+ }
54
+ getDeclarationName() {
55
+ return this.toString();
56
+ }
57
+ dependency(computed) {
58
+ return [this];
59
+ }
60
+ dependencyPath(computed) {
61
+ const path = [{ computed: false, path: this.toString() }];
62
+ return computed ? [{ computed, path: this.toString(), computedPath: [path] }] : path;
63
+ }
64
+ toString() {
65
+ return String(this.name);
66
+ }
67
+ toJson() {
68
+ return { name: this.name };
69
+ }
70
+ };
71
+ return Identifier = _classThis;
72
+ })();
73
+ export let ThisExpression = (() => {
74
+ let _classDecorators_1 = [Deserializer('ThisExpression')];
75
+ let _classDescriptor_1;
76
+ let _classExtraInitializers_1 = [];
77
+ let _classThis_1;
78
+ var ThisExpression = class extends Identifier {
79
+ static {
80
+ __esDecorate(null, _classDescriptor_1 = { value: this }, _classDecorators_1, { kind: "class", name: this.name }, null, _classExtraInitializers_1);
81
+ ThisExpression = _classThis_1 = _classDescriptor_1.value;
82
+ __runInitializers(_classThis_1, _classExtraInitializers_1);
83
+ }
84
+ static fromJSON(node) {
85
+ return new ThisExpression(node.range, node.loc);
86
+ }
87
+ constructor(range, loc) {
88
+ super('this', range, loc);
89
+ }
90
+ toJson() {
91
+ return {};
92
+ }
93
+ };
94
+ return ThisExpression = _classThis_1;
95
+ })();
96
+ export let Literal = (() => {
97
+ let _classDecorators_2 = [Deserializer('Literal')];
98
+ let _classDescriptor_2;
99
+ let _classExtraInitializers_2 = [];
100
+ let _classThis_2;
101
+ var Literal = class extends AbstractExpressionNode {
102
+ static {
103
+ __esDecorate(null, _classDescriptor_2 = { value: this }, _classDecorators_2, { kind: "class", name: this.name }, null, _classExtraInitializers_2);
104
+ Literal = _classThis_2 = _classDescriptor_2.value;
105
+ __runInitializers(_classThis_2, _classExtraInitializers_2);
106
+ }
107
+ value;
108
+ static fromJSON(node) {
109
+ if (node.bigint) {
110
+ return new Literal(BigInt(node.bigint), node.raw, undefined, node.bigint, node.range, node.loc);
111
+ }
112
+ else if (node.regex) {
113
+ return new Literal(RegExp(node.regex.pattern, node.regex.flags), node.raw, node.regex, undefined, node.range, node.loc);
114
+ }
115
+ return new Literal(node.value, node.raw, undefined, undefined, node.range, node.loc);
116
+ }
117
+ regex;
118
+ bigint;
119
+ raw;
120
+ constructor(value, raw, regex, bigint, range, loc) {
121
+ super(range, loc);
122
+ this.value = value;
123
+ raw && (this.raw = raw);
124
+ regex && (this.regex = regex);
125
+ bigint && (this.bigint = bigint);
126
+ }
127
+ getValue() {
128
+ return this.value;
129
+ }
130
+ getRegex() {
131
+ return this.regex;
132
+ }
133
+ getBigint() {
134
+ return this.bigint;
135
+ }
136
+ geRaw() {
137
+ return this.raw;
138
+ }
139
+ set() {
140
+ throw new Error(`${this.constructor.name}#set() has no implementation.`);
141
+ }
142
+ get() {
143
+ return this.value;
144
+ }
145
+ findScope(stack, scope) {
146
+ if (scope) {
147
+ return scope.getInnerScope(this.value);
148
+ }
149
+ scope = stack.findScope(this.value);
119
150
  return scope.getInnerScope(this.value);
120
151
  }
121
- scope = stack.findScope(this.value);
122
- return scope.getInnerScope(this.value);
123
- }
124
- dependency(computed) {
125
- return computed ? [this] : [];
126
- }
127
- dependencyPath(computed) {
128
- return computed ? [{ computed: false, path: this.toString() }] : [];
129
- }
130
- toString() {
131
- return this.raw ?? String(this.value);
132
- }
133
- toJson() {
134
- if (this.bigint) {
135
- return {
136
- bigint: this.bigint,
137
- raw: this.raw,
138
- };
152
+ dependency(computed) {
153
+ return computed ? [this] : [];
139
154
  }
140
- else if (this.regex) {
155
+ dependencyPath(computed) {
156
+ return computed ? [{ computed: false, path: this.toString() }] : [];
157
+ }
158
+ toString() {
159
+ return this.raw ?? String(this.value);
160
+ }
161
+ toJson() {
162
+ if (this.bigint) {
163
+ return {
164
+ bigint: this.bigint,
165
+ raw: this.raw,
166
+ };
167
+ }
168
+ else if (this.regex) {
169
+ return {
170
+ regex: { pattern: this.regex?.pattern, flags: this.regex?.flags },
171
+ raw: this.raw,
172
+ };
173
+ }
141
174
  return {
142
- regex: { pattern: this.regex?.pattern, flags: this.regex?.flags },
175
+ value: this.value,
143
176
  raw: this.raw,
144
177
  };
145
178
  }
146
- return {
147
- value: this.value,
148
- raw: this.raw,
149
- };
150
- }
151
- };
152
- Literal = Literal_1 = __decorate([
153
- Deserializer('Literal'),
154
- __metadata("design:paramtypes", [Object, String, Object, String, Array, Object])
155
- ], Literal);
156
- export { Literal };
179
+ };
180
+ return Literal = _classThis_2;
181
+ })();
157
182
  class TemplateArray extends Array {
183
+ raw;
158
184
  constructor(strings) {
159
185
  super(...strings);
160
186
  this.raw = strings;
161
187
  }
162
188
  }
163
189
  export class TemplateLiteralExpressionNode extends AbstractExpressionNode {
190
+ quasis;
191
+ expressions;
192
+ tag;
164
193
  static visit(node, visitNode) {
165
194
  node.tag && visitNode(node.tag);
166
195
  node.expressions.forEach(visitNode);
@@ -215,36 +244,50 @@ export class TemplateLiteralExpressionNode extends AbstractExpressionNode {
215
244
  };
216
245
  }
217
246
  }
218
- let TemplateLiteral = TemplateLiteral_1 = class TemplateLiteral extends TemplateLiteralExpressionNode {
219
- static fromJSON(node, deserializer) {
220
- return new TemplateLiteral_1(node.quasis, node.expressions.map(deserializer), node.range, node.loc);
221
- }
222
- constructor(quasis, expressions, range, loc) {
223
- super(quasis, expressions, undefined, range, loc);
224
- }
225
- getTag() {
226
- return undefined;
227
- }
228
- };
229
- TemplateLiteral = TemplateLiteral_1 = __decorate([
230
- Deserializer('TemplateLiteral'),
231
- __metadata("design:paramtypes", [Array, Array, Array, Object])
232
- ], TemplateLiteral);
233
- export { TemplateLiteral };
234
- let TaggedTemplateExpression = TaggedTemplateExpression_1 = class TaggedTemplateExpression extends TemplateLiteralExpressionNode {
235
- static fromJSON(node, deserializer) {
236
- return new TaggedTemplateExpression_1(deserializer(node.tag), node.quasis, node.expressions.map(deserializer), node.range, node.loc);
237
- }
238
- constructor(tag, quasis, expressions, range, loc) {
239
- super(quasis, expressions, tag, range, loc);
240
- }
241
- getTag() {
242
- return super.getTag();
243
- }
244
- };
245
- TaggedTemplateExpression = TaggedTemplateExpression_1 = __decorate([
246
- Deserializer('TaggedTemplateExpression'),
247
- __metadata("design:paramtypes", [Object, Array, Array, Array, Object])
248
- ], TaggedTemplateExpression);
249
- export { TaggedTemplateExpression };
247
+ export let TemplateLiteral = (() => {
248
+ let _classDecorators_3 = [Deserializer('TemplateLiteral')];
249
+ let _classDescriptor_3;
250
+ let _classExtraInitializers_3 = [];
251
+ let _classThis_3;
252
+ var TemplateLiteral = class extends TemplateLiteralExpressionNode {
253
+ static {
254
+ __esDecorate(null, _classDescriptor_3 = { value: this }, _classDecorators_3, { kind: "class", name: this.name }, null, _classExtraInitializers_3);
255
+ TemplateLiteral = _classThis_3 = _classDescriptor_3.value;
256
+ __runInitializers(_classThis_3, _classExtraInitializers_3);
257
+ }
258
+ static fromJSON(node, deserializer) {
259
+ return new TemplateLiteral(node.quasis, node.expressions.map(deserializer), node.range, node.loc);
260
+ }
261
+ constructor(quasis, expressions, range, loc) {
262
+ super(quasis, expressions, undefined, range, loc);
263
+ }
264
+ getTag() {
265
+ return undefined;
266
+ }
267
+ };
268
+ return TemplateLiteral = _classThis_3;
269
+ })();
270
+ export let TaggedTemplateExpression = (() => {
271
+ let _classDecorators_4 = [Deserializer('TaggedTemplateExpression')];
272
+ let _classDescriptor_4;
273
+ let _classExtraInitializers_4 = [];
274
+ let _classThis_4;
275
+ var TaggedTemplateExpression = class extends TemplateLiteralExpressionNode {
276
+ static {
277
+ __esDecorate(null, _classDescriptor_4 = { value: this }, _classDecorators_4, { kind: "class", name: this.name }, null, _classExtraInitializers_4);
278
+ TaggedTemplateExpression = _classThis_4 = _classDescriptor_4.value;
279
+ __runInitializers(_classThis_4, _classExtraInitializers_4);
280
+ }
281
+ static fromJSON(node, deserializer) {
282
+ return new TaggedTemplateExpression(deserializer(node.tag), node.quasis, node.expressions.map(deserializer), node.range, node.loc);
283
+ }
284
+ constructor(tag, quasis, expressions, range, loc) {
285
+ super(quasis, expressions, tag, range, loc);
286
+ }
287
+ getTag() {
288
+ return super.getTag();
289
+ }
290
+ };
291
+ return TaggedTemplateExpression = _classThis_4;
292
+ })();
250
293
  //# sourceMappingURL=values.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/expressions/api/definition/values.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tDeclarationExpression, ExpressionNode, NodeDeserializer,\n\tCanFindScope, ExpressionEventPath, VisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Context, Scope } from '../../scope/scope.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { AbstractExpressionNode } from '../abstract.js';\n\n/**\n * An identifier is a sequence of characters in the code that identifies a variable, function, or property.\n * In JavaScript, identifiers are case-sensitive and can contain Unicode letters, $, _, and digits (0-9),\n * but may not start with a digit.\n * An identifier differs from a string in that a string is data,\n * while an identifier is part of the code. In JavaScript,\n * there is no way to convert identifiers to strings,\n * but sometimes it is possible to parse strings into identifiers.\n */\n@Deserializer('Identifier')\nexport class Identifier extends AbstractExpressionNode implements DeclarationExpression, CanFindScope {\n\tstatic fromJSON(node: Identifier): Identifier {\n\t\treturn new Identifier(node.name, node.range, node.loc);\n\t}\n\tconstructor(protected name: string | number, range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetName() {\n\t\treturn this.name;\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn stack.set(this.name, value) ? value : void 0;\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tif (thisContext) {\n\t\t\treturn thisContext[this.name];\n\t\t}\n\t\treturn stack.get(this.name);\n\t}\n\tfindScope<T extends object>(stack: Stack): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope: Scope<any>): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope?: Scope<any>): Scope<T> | undefined {\n\t\tif (scope) {\n\t\t\treturn scope.getInnerScope(this.name);\n\t\t}\n\t\tscope = stack.findScope(this.name);\n\t\treturn scope.getInnerScope(this.name);\n\t}\n\tdeclareVariable(stack: Stack, propertyValue: any): any {\n\t\treturn stack.declareVariable(this.name, propertyValue);\n\t}\n\tgetDeclarationName(): string {\n\t\treturn this.toString();\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn [this];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tconst path: ExpressionEventPath[] = [{ computed: false, path: this.toString() }];\n\t\treturn computed ? [{ computed, path: this.toString(), computedPath: [path] }] : path;\n\t}\n\ttoString(): string {\n\t\treturn String(this.name);\n\t}\n\ttoJson(): object {\n\t\treturn { name: this.name };\n\t}\n}\n\n@Deserializer('ThisExpression')\nexport class ThisExpression extends Identifier {\n\tstatic fromJSON(node: ThisExpression): ThisExpression {\n\t\treturn new ThisExpression(node.range, node.loc);\n\t}\n\tconstructor(\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper('this', range, loc);\n\t}\n\ttoJson(): object {\n\t\treturn {};\n\t}\n}\n\n@Deserializer('Literal')\nexport class Literal<T> extends AbstractExpressionNode implements CanFindScope {\n\tstatic fromJSON(node: Literal<any>):\n\t\tLiteral<string>\n\t\t| Literal<number>\n\t\t| Literal<boolean>\n\t\t| Literal<RegExp>\n\t\t| Literal<bigint>\n\t\t| Literal<null>\n\t\t| Literal<undefined> {\n\t\tif (node.bigint) {\n\t\t\treturn new Literal(BigInt(node.bigint), node.raw, undefined, node.bigint, node.range, node.loc);\n\t\t} else if (node.regex) {\n\t\t\treturn new Literal(RegExp(node.regex.pattern, node.regex.flags), node.raw, node.regex, undefined, node.range, node.loc);\n\t\t}\n\t\treturn new Literal(node.value, node.raw, undefined, undefined, node.range, node.loc);\n\t}\n\ttype: 'Literal';\n\tregex?: { pattern: string, flags: string };\n\tbigint?: string;\n\traw?: string\n\tconstructor(\n\t\tpublic value: T,\n\t\traw?: string,\n\t\tregex?: { pattern: string, flags: string },\n\t\tbigint?: string,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\traw && (this.raw = raw);\n\t\tregex && (this.regex = regex);\n\t\tbigint && (this.bigint = bigint);\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tgetRegex() {\n\t\treturn this.regex;\n\t}\n\tgetBigint() {\n\t\treturn this.bigint;\n\t}\n\tgeRaw() {\n\t\treturn this.raw;\n\t}\n\tset() {\n\t\tthrow new Error(`${this.constructor.name}#set() has no implementation.`);\n\t}\n\tget(): T {\n\t\treturn this.value;\n\t}\n\tfindScope<V extends Context>(stack: Stack): Scope<V>;\n\tfindScope<V extends Context>(stack: Stack, scope: Scope<Record<PropertyKey, V>>): Scope<V>;\n\tfindScope<V extends Context>(stack: Stack, scope?: Scope<Record<PropertyKey, V>>): Scope<V> | undefined {\n\t\tif (scope) {\n\t\t\treturn scope.getInnerScope(this.value as any);\n\t\t}\n\t\tscope = stack.findScope(this.value as any);\n\t\treturn scope.getInnerScope(this.value as any);\n\t}\n\tdependency(computed: true): ExpressionNode[] {\n\t\treturn computed ? [this] : [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn computed ? [{ computed: false, path: this.toString() }] : [];\n\t}\n\ttoString(): string {\n\t\treturn this.raw ?? String(this.value);\n\t}\n\ttoJson(): object {\n\t\tif (this.bigint) {\n\t\t\treturn {\n\t\t\t\tbigint: this.bigint,\n\t\t\t\traw: this.raw,\n\t\t\t};\n\t\t} else if (this.regex) {\n\t\t\treturn {\n\t\t\t\tregex: { pattern: this.regex?.pattern, flags: this.regex?.flags },\n\t\t\t\traw: this.raw,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tvalue: this.value,\n\t\t\traw: this.raw,\n\t\t};\n\t}\n}\n\nclass TemplateArray extends Array<string> implements TemplateStringsArray {\n\traw: readonly string[];\n\tconstructor(strings: string[]) {\n\t\tsuper(...strings);\n\t\tthis.raw = strings;\n\t}\n}\n\nexport class TemplateLiteralExpressionNode extends AbstractExpressionNode {\n\tstatic visit(node: TemplateLiteralExpressionNode, visitNode: VisitNodeType): void {\n\t\tnode.tag && visitNode(node.tag);\n\t\tnode.expressions.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tprotected quasis: string[],\n\t\tprotected expressions: ExpressionNode[],\n\t\tprotected tag?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetTag() {\n\t\treturn this.tag;\n\t}\n\tgetExpressions() {\n\t\treturn this.expressions;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`TemplateLiteralExpressionNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst tagged: Function = this.tag?.get(stack) || String.raw;\n\t\tconst templateStringsArray = new TemplateArray(this.quasis);\n\t\ttemplateStringsArray.raw = templateStringsArray;\n\t\tconst values = this.expressions.map(expr => expr.get(stack));\n\t\treturn tagged(templateStringsArray, ...values);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.expressions.flatMap(exp => exp.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.expressions.flatMap(exp => exp.dependencyPath(computed));\n\t}\n\ttoString(): string {\n\t\tlet str = this.tag?.toString() || '';\n\t\tstr += '`';\n\t\tlet i = 0;\n\t\tfor (; i < this.quasis.length - 1; i++) {\n\t\t\tstr += this.quasis[i];\n\t\t\tstr += '${';\n\t\t\tstr += this.expressions[i].toString();\n\t\t\tstr += '}';\n\t\t}\n\t\tstr += this.quasis[i];\n\t\tstr += '`';\n\t\treturn str;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tquasis: this.quasis,\n\t\t\texpressions: this.expressions.map(expr => expr.toJSON()),\n\t\t\ttag: this.tag?.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('TemplateLiteral')\nexport class TemplateLiteral extends TemplateLiteralExpressionNode {\n\tstatic fromJSON(node: TemplateLiteral, deserializer: NodeDeserializer): TemplateLiteralExpressionNode {\n\t\treturn new TemplateLiteral(\n\t\t\tnode.quasis,\n\t\t\tnode.expressions.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tdeclare protected tag: undefined;\n\tconstructor(\n\t\tquasis: string[],\n\t\texpressions: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(quasis, expressions, undefined, range, loc);\n\t}\n\toverride getTag(): undefined {\n\t\treturn undefined;\n\t}\n}\n\n@Deserializer('TaggedTemplateExpression')\nexport class TaggedTemplateExpression extends TemplateLiteralExpressionNode {\n\tstatic fromJSON(node: TaggedTemplateExpression, deserializer: NodeDeserializer): TemplateLiteralExpressionNode {\n\t\treturn new TaggedTemplateExpression(\n\t\t\tdeserializer(node.tag),\n\t\t\tnode.quasis,\n\t\t\tnode.expressions.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tdeclare protected tag: ExpressionNode;\n\tconstructor(\n\t\ttag: ExpressionNode,\n\t\tquasis: string[],\n\t\texpressions: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(quasis, expressions, tag, range, loc);\n\t}\n\toverride getTag(): ExpressionNode {\n\t\treturn super.getTag()!;\n\t}\n}\n"]}
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/expressions/api/definition/values.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tDeclarationExpression, ExpressionNode, NodeDeserializer,\n\tCanFindScope, ExpressionEventPath, VisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Context, Scope } from '../../scope/scope.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { AbstractExpressionNode } from '../abstract.js';\n\n/**\n * An identifier is a sequence of characters in the code that identifies a variable, function, or property.\n * In JavaScript, identifiers are case-sensitive and can contain Unicode letters, $, _, and digits (0-9),\n * but may not start with a digit.\n * An identifier differs from a string in that a string is data,\n * while an identifier is part of the code. In JavaScript,\n * there is no way to convert identifiers to strings,\n * but sometimes it is possible to parse strings into identifiers.\n */\n@Deserializer('Identifier')\nexport class Identifier extends AbstractExpressionNode implements DeclarationExpression, CanFindScope {\n\tstatic fromJSON(node: Identifier): Identifier {\n\t\treturn new Identifier(node.name, node.range, node.loc);\n\t}\n\tconstructor(protected name: string | number, range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetName() {\n\t\treturn this.name;\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn stack.set(this.name, value) ? value : void 0;\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tif (thisContext) {\n\t\t\treturn thisContext[this.name];\n\t\t}\n\t\treturn stack.get(this.name);\n\t}\n\tfindScope<T extends object>(stack: Stack): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope: Scope<any>): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope?: Scope<any>): Scope<T> | undefined {\n\t\tif (scope) {\n\t\t\treturn scope.getInnerScope(this.name);\n\t\t}\n\t\tscope = stack.findScope(this.name);\n\t\treturn scope.getInnerScope(this.name);\n\t}\n\tdeclareVariable(stack: Stack, propertyValue: any): any {\n\t\treturn stack.declareVariable(this.name, propertyValue);\n\t}\n\tgetDeclarationName(): string {\n\t\treturn this.toString();\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn [this];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tconst path: ExpressionEventPath[] = [{ computed: false, path: this.toString() }];\n\t\treturn computed ? [{ computed, path: this.toString(), computedPath: [path] }] : path;\n\t}\n\ttoString(): string {\n\t\treturn String(this.name);\n\t}\n\ttoJson(): object {\n\t\treturn { name: this.name };\n\t}\n}\n\n@Deserializer('ThisExpression')\nexport class ThisExpression extends Identifier {\n\tstatic fromJSON(node: ThisExpression): ThisExpression {\n\t\treturn new ThisExpression(node.range, node.loc);\n\t}\n\tconstructor(\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper('this', range, loc);\n\t}\n\ttoJson(): object {\n\t\treturn {};\n\t}\n}\n\n@Deserializer('Literal')\nexport class Literal<T> extends AbstractExpressionNode implements CanFindScope {\n\tstatic fromJSON(node: Literal<any>):\n\t\tLiteral<string>\n\t\t| Literal<number>\n\t\t| Literal<boolean>\n\t\t| Literal<RegExp>\n\t\t| Literal<bigint>\n\t\t| Literal<null>\n\t\t| Literal<undefined> {\n\t\tif (node.bigint) {\n\t\t\treturn new Literal(BigInt(node.bigint), node.raw, undefined, node.bigint, node.range, node.loc);\n\t\t} else if (node.regex) {\n\t\t\treturn new Literal(RegExp(node.regex.pattern, node.regex.flags), node.raw, node.regex, undefined, node.range, node.loc);\n\t\t}\n\t\treturn new Literal(node.value, node.raw, undefined, undefined, node.range, node.loc);\n\t}\n\tdeclare type: 'Literal';\n\tregex?: { pattern: string, flags: string };\n\tbigint?: string;\n\traw?: string\n\tconstructor(\n\t\tpublic value: T,\n\t\traw?: string,\n\t\tregex?: { pattern: string, flags: string },\n\t\tbigint?: string,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\traw && (this.raw = raw);\n\t\tregex && (this.regex = regex);\n\t\tbigint && (this.bigint = bigint);\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tgetRegex() {\n\t\treturn this.regex;\n\t}\n\tgetBigint() {\n\t\treturn this.bigint;\n\t}\n\tgeRaw() {\n\t\treturn this.raw;\n\t}\n\tset() {\n\t\tthrow new Error(`${this.constructor.name}#set() has no implementation.`);\n\t}\n\tget(): T {\n\t\treturn this.value;\n\t}\n\tfindScope<V extends Context>(stack: Stack): Scope<V>;\n\tfindScope<V extends Context>(stack: Stack, scope: Scope<Record<PropertyKey, V>>): Scope<V>;\n\tfindScope<V extends Context>(stack: Stack, scope?: Scope<Record<PropertyKey, V>>): Scope<V> | undefined {\n\t\tif (scope) {\n\t\t\treturn scope.getInnerScope(this.value as any);\n\t\t}\n\t\tscope = stack.findScope(this.value as any);\n\t\treturn scope.getInnerScope(this.value as any);\n\t}\n\tdependency(computed: true): ExpressionNode[] {\n\t\treturn computed ? [this] : [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn computed ? [{ computed: false, path: this.toString() }] : [];\n\t}\n\ttoString(): string {\n\t\treturn this.raw ?? String(this.value);\n\t}\n\ttoJson(): object {\n\t\tif (this.bigint) {\n\t\t\treturn {\n\t\t\t\tbigint: this.bigint,\n\t\t\t\traw: this.raw,\n\t\t\t};\n\t\t} else if (this.regex) {\n\t\t\treturn {\n\t\t\t\tregex: { pattern: this.regex?.pattern, flags: this.regex?.flags },\n\t\t\t\traw: this.raw,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tvalue: this.value,\n\t\t\traw: this.raw,\n\t\t};\n\t}\n}\n\nclass TemplateArray extends Array<string> implements TemplateStringsArray {\n\traw: readonly string[];\n\tconstructor(strings: string[]) {\n\t\tsuper(...strings);\n\t\tthis.raw = strings;\n\t}\n}\n\nexport class TemplateLiteralExpressionNode extends AbstractExpressionNode {\n\tstatic visit(node: TemplateLiteralExpressionNode, visitNode: VisitNodeType): void {\n\t\tnode.tag && visitNode(node.tag);\n\t\tnode.expressions.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tprotected quasis: string[],\n\t\tprotected expressions: ExpressionNode[],\n\t\tprotected tag?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetTag() {\n\t\treturn this.tag;\n\t}\n\tgetExpressions() {\n\t\treturn this.expressions;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`TemplateLiteralExpressionNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst tagged: Function = this.tag?.get(stack) || String.raw;\n\t\tconst templateStringsArray = new TemplateArray(this.quasis);\n\t\ttemplateStringsArray.raw = templateStringsArray;\n\t\tconst values = this.expressions.map(expr => expr.get(stack));\n\t\treturn tagged(templateStringsArray, ...values);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.expressions.flatMap(exp => exp.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.expressions.flatMap(exp => exp.dependencyPath(computed));\n\t}\n\ttoString(): string {\n\t\tlet str = this.tag?.toString() || '';\n\t\tstr += '`';\n\t\tlet i = 0;\n\t\tfor (; i < this.quasis.length - 1; i++) {\n\t\t\tstr += this.quasis[i];\n\t\t\tstr += '${';\n\t\t\tstr += this.expressions[i].toString();\n\t\t\tstr += '}';\n\t\t}\n\t\tstr += this.quasis[i];\n\t\tstr += '`';\n\t\treturn str;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tquasis: this.quasis,\n\t\t\texpressions: this.expressions.map(expr => expr.toJSON()),\n\t\t\ttag: this.tag?.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('TemplateLiteral')\nexport class TemplateLiteral extends TemplateLiteralExpressionNode {\n\tstatic fromJSON(node: TemplateLiteral, deserializer: NodeDeserializer): TemplateLiteralExpressionNode {\n\t\treturn new TemplateLiteral(\n\t\t\tnode.quasis,\n\t\t\tnode.expressions.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tdeclare protected tag: undefined;\n\tconstructor(\n\t\tquasis: string[],\n\t\texpressions: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(quasis, expressions, undefined, range, loc);\n\t}\n\toverride getTag(): undefined {\n\t\treturn undefined;\n\t}\n}\n\n@Deserializer('TaggedTemplateExpression')\nexport class TaggedTemplateExpression extends TemplateLiteralExpressionNode {\n\tstatic fromJSON(node: TaggedTemplateExpression, deserializer: NodeDeserializer): TemplateLiteralExpressionNode {\n\t\treturn new TaggedTemplateExpression(\n\t\t\tdeserializer(node.tag),\n\t\t\tnode.quasis,\n\t\t\tnode.expressions.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tdeclare protected tag: ExpressionNode;\n\tconstructor(\n\t\ttag: ExpressionNode,\n\t\tquasis: string[],\n\t\texpressions: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(quasis, expressions, tag, range, loc);\n\t}\n\toverride getTag(): ExpressionNode {\n\t\treturn super.getTag()!;\n\t}\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { ExpressionNode, ExpressionNodConstructor } from '../expression.js';
2
- export declare function Deserializer(type: string): Function;
2
+ export declare const Deserializer: (param: string) => (constructor: any, context: ClassDecoratorContext<new (...args: any) => any>) => any;
3
3
  export declare function getDeserializerType(target: ExpressionNodConstructor<ExpressionNode>): string;
4
4
  export declare function serializeNode(node: ExpressionNode): string;
5
5
  /**
@@ -9,3 +9,4 @@ export declare function serializeNode(node: ExpressionNode): string;
9
9
  */
10
10
  export declare function deserialize(node: ExpressionNode): ExpressionNode;
11
11
  export declare function deserializeNode(node: string): ExpressionNode;
12
+ //# sourceMappingURL=deserialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/deserialize/deserialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAIjF,eAAO,MAAM,YAAY,yGAKxB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,CAAC,cAAc,CAAC,UAEnF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,UAEjD;AAGD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,kBAO/C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,kBAG3C"}
@@ -1,11 +1,9 @@
1
+ import { makeClassDecorator } from '@ibyar/decorators';
1
2
  import { expressionTypes } from './type-store.js';
2
- export function Deserializer(type) {
3
- return (target) => {
4
- target.type = type;
5
- expressionTypes.set(type, target);
6
- return target;
7
- };
8
- }
3
+ export const Deserializer = makeClassDecorator((type, target) => {
4
+ target.type = type;
5
+ expressionTypes.set(type, target);
6
+ });
9
7
  export function getDeserializerType(target) {
10
8
  return target.type;
11
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../../../src/expressions/api/deserialize/deserialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,OAAO,CAAC,MAAgD,EAAE,EAAE;QAC3D,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAgD;IACnF,OAAO,MAAM,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAoB;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAoB;IAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAO,IAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACjE,IAAI,QAAQ,EAAE;QACb,OAAO,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KACnC;SAAM;QACN,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACrF;AACF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC","sourcesContent":["import type { ExpressionNode, ExpressionNodConstructor } from '../expression.js';\nimport { expressionTypes } from './type-store.js';\n\n\n\nexport function Deserializer(type: string): Function {\n\treturn (target: ExpressionNodConstructor<ExpressionNode>) => {\n\t\ttarget.type = type;\n\t\texpressionTypes.set(type, target);\n\t\treturn target;\n\t};\n}\n\nexport function getDeserializerType(target: ExpressionNodConstructor<ExpressionNode>) {\n\treturn target.type;\n}\n\nexport function serializeNode(node: ExpressionNode) {\n\treturn JSON.stringify(node);\n}\n\n\n/**\n * convert from json expression `JSON.stringify(node)` or `serializeNode` to `ExpressionNode`\n * @param node as type `NodeJsonType`\n * @returns ExpressionNode\n */\nexport function deserialize(node: ExpressionNode) {\n\tconst fromJSON = expressionTypes.get((<any>node).type)?.fromJSON;\n\tif (fromJSON) {\n\t\treturn fromJSON(node, deserialize);\n\t} else {\n\t\tthrow new Error(`Couldn't find Expression class for name: ${JSON.stringify(node)}.`);\n\t}\n}\n\nexport function deserializeNode(node: string) {\n\tconst exp = JSON.parse(node);\n\treturn deserialize(exp);\n}\n"]}
1
+ {"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../../../src/expressions/api/deserialize/deserialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAC7C,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;IAChB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC,CACD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAgD;IACnF,OAAO,MAAM,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAoB;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAoB;IAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAO,IAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACjE,IAAI,QAAQ,EAAE;QACb,OAAO,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KACnC;SAAM;QACN,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACrF;AACF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC","sourcesContent":["import type { ExpressionNode, ExpressionNodConstructor } from '../expression.js';\nimport { makeClassDecorator } from '@ibyar/decorators';\nimport { expressionTypes } from './type-store.js';\n\nexport const Deserializer = makeClassDecorator<string, ExpressionNodConstructor<ExpressionNode>>(\n\t(type, target) => {\n\t\ttarget.type = type;\n\t\texpressionTypes.set(type, target);\n\t}\n);\n\nexport function getDeserializerType(target: ExpressionNodConstructor<ExpressionNode>) {\n\treturn target.type;\n}\n\nexport function serializeNode(node: ExpressionNode) {\n\treturn JSON.stringify(node);\n}\n\n\n/**\n * convert from json expression `JSON.stringify(node)` or `serializeNode` to `ExpressionNode`\n * @param node as type `NodeJsonType`\n * @returns ExpressionNode\n */\nexport function deserialize(node: ExpressionNode) {\n\tconst fromJSON = expressionTypes.get((<any>node).type)?.fromJSON;\n\tif (fromJSON) {\n\t\treturn fromJSON(node, deserialize);\n\t} else {\n\t\tthrow new Error(`Couldn't find Expression class for name: ${JSON.stringify(node)}.`);\n\t}\n}\n\nexport function deserializeNode(node: string) {\n\tconst exp = JSON.parse(node);\n\treturn deserialize(exp);\n}\n"]}
@@ -1,2 +1,3 @@
1
1
  import type { ExpressionNode, ExpressionNodConstructor } from '../expression.js';
2
2
  export declare const expressionTypes: Map<string, ExpressionNodConstructor<ExpressionNode>>;
3
+ //# sourceMappingURL=type-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-store.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/deserialize/type-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAGjF,eAAO,MAAM,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAa,CAAC"}
@@ -207,3 +207,4 @@ export interface CanFindScope {
207
207
  findScope<V extends Context>(stack: Stack, scope: Scope<Record<PropertyKey, V>>): Scope<V>;
208
208
  findScope<V extends Context>(stack: Stack, scope?: Scope<Record<PropertyKey, V>>): Scope<V> | undefined;
209
209
  }
210
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/expressions/api/expression.ts"],"names":[],"mappings":"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"}
package/api/index.d.ts CHANGED
@@ -39,3 +39,4 @@ export * from './statement/control/with.js';
39
39
  export * from './statement/declarations/declares.js';
40
40
  export * from './statement/iterations/for.js';
41
41
  export * from './statement/iterations/while.js';
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/expressions/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,cAAc,8BAA8B,CAAC;AAE7C,cAAc,cAAc,CAAC;AAE7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,sCAAsC,CAAC;AAErD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC"}
@@ -26,3 +26,4 @@ export declare class ImportAttribute extends AbstractExpressionNode {
26
26
  toString(): string;
27
27
  toJson(): object;
28
28
  }
29
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/module/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EACrD,cAAc,EAAE,aAAa,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG9D,8BAAsB,eAAgB,SAAQ,sBAAsB;IACvD,SAAS,CAAC,KAAK,EAAE,UAAU;gBAAjB,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,cAAc;IAGvF,QAAQ;IAGR,YAAY;IAGZ,MAAM,IAAI,MAAM;CAKhB;AAID,qBACa,eAAgB,SAAQ,sBAAsB;IAezD,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,KAAK;IAfd,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,GAAG,eAAe;IAQvF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;gBAM1D,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,EACjC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAC9B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,GAAG,CAAC,EAAE,cAAc;IAGrB,MAAM;IAGN,QAAQ;IAGR,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;IAG5B,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAK/D,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE;IAG7C,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE;IAGtD,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,MAAM;CAMhB"}