vsn 0.1.43 → 0.1.46

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 (98) hide show
  1. package/demo/demo.html +7 -2
  2. package/demo/markup.html +2 -0
  3. package/demo/vsn.js +1 -1
  4. package/demo/xhr.vsn +4 -0
  5. package/dist/AST/ArithmeticAssignmentNode.js +8 -1
  6. package/dist/AST/ArithmeticAssignmentNode.js.map +1 -1
  7. package/dist/AST/FunctionNode.d.ts +0 -0
  8. package/dist/AST/FunctionNode.js +1 -0
  9. package/dist/AST/FunctionNode.js.map +1 -0
  10. package/dist/AST/StringFormatNode.d.ts +18 -0
  11. package/dist/{attributes/ClickToggleClass.js → AST/StringFormatNode.js} +49 -49
  12. package/dist/AST/StringFormatNode.js.map +1 -0
  13. package/dist/AST/WASM/Context.d.ts +4 -0
  14. package/dist/AST/WASM/Context.js +18 -0
  15. package/dist/AST/WASM/Context.js.map +1 -0
  16. package/dist/AST/WASM/Function.d.ts +22 -0
  17. package/dist/AST/WASM/Function.js +110 -0
  18. package/dist/AST/WASM/Function.js.map +1 -0
  19. package/dist/AST/WASM/Memory.d.ts +12 -0
  20. package/dist/AST/WASM/Memory.js +22 -0
  21. package/dist/AST/WASM/Memory.js.map +1 -0
  22. package/dist/AST/WASM/Section.d.ts +5 -0
  23. package/dist/AST/WASM/Section.js +11 -0
  24. package/dist/AST/WASM/Section.js.map +1 -0
  25. package/dist/AST/WASM.d.ts +58 -0
  26. package/dist/AST/WASM.js +277 -0
  27. package/dist/AST/WASM.js.map +1 -0
  28. package/dist/AST/XHRNode.d.ts +15 -0
  29. package/dist/AST/XHRNode.js +146 -0
  30. package/dist/AST/XHRNode.js.map +1 -0
  31. package/dist/AST.d.ts +62 -55
  32. package/dist/AST.js +123 -83
  33. package/dist/AST.js.map +1 -1
  34. package/dist/DOM/DOMObject.d.ts +1 -0
  35. package/dist/DOM/DOMObject.js +6 -0
  36. package/dist/DOM/DOMObject.js.map +1 -1
  37. package/dist/DOM.js +61 -90
  38. package/dist/DOM.js.map +1 -1
  39. package/dist/Registry.d.ts +2 -0
  40. package/dist/Registry.js +13 -9
  41. package/dist/Registry.js.map +1 -1
  42. package/dist/Scope/ScopeDataAbstract.js +2 -2
  43. package/dist/Scope/ScopeDataAbstract.js.map +1 -1
  44. package/dist/Scope/properties/Property.d.ts +5 -6
  45. package/dist/Scope/properties/Property.js +17 -25
  46. package/dist/Scope/properties/Property.js.map +1 -1
  47. package/dist/Scope/properties/_imports.d.ts +1 -1
  48. package/dist/Scope/properties/_imports.js.map +1 -1
  49. package/dist/Tag.d.ts +1 -0
  50. package/dist/Tag.js +9 -11
  51. package/dist/Tag.js.map +1 -1
  52. package/dist/attributes/StandardAttribute.js +4 -1
  53. package/dist/attributes/StandardAttribute.js.map +1 -1
  54. package/dist/attributes/_imports.d.ts +0 -2
  55. package/dist/attributes/_imports.js +1 -5
  56. package/dist/attributes/_imports.js.map +1 -1
  57. package/dist/helpers/VisionHelper.d.ts +1 -0
  58. package/dist/helpers/VisionHelper.js +17 -0
  59. package/dist/helpers/VisionHelper.js.map +1 -1
  60. package/dist/vsn.d.ts +3 -2
  61. package/dist/vsn.js +7 -3
  62. package/dist/vsn.js.map +1 -1
  63. package/package.json +1 -1
  64. package/src/AST/ArithmeticAssignmentNode.ts +9 -2
  65. package/src/AST/FunctionNode.ts +0 -0
  66. package/src/AST/StringFormatNode.ts +43 -0
  67. package/src/AST/WASM/Context.ts +12 -0
  68. package/src/AST/WASM/Function.ts +67 -0
  69. package/src/AST/WASM/Memory.ts +21 -0
  70. package/src/AST/WASM/Section.ts +6 -0
  71. package/src/AST/WASM.ts +244 -0
  72. package/src/AST/XHRNode.ts +81 -0
  73. package/src/AST.ts +66 -31
  74. package/src/DOM/DOMObject.ts +6 -0
  75. package/src/DOM.ts +11 -25
  76. package/src/Registry.ts +12 -9
  77. package/src/Scope/ScopeDataAbstract.ts +2 -2
  78. package/src/Scope/properties/Property.ts +17 -28
  79. package/src/Scope/properties/_imports.ts +1 -1
  80. package/src/Tag.ts +10 -9
  81. package/src/attributes/AddClassIf.ts +1 -1
  82. package/src/attributes/StandardAttribute.ts +4 -2
  83. package/src/attributes/_imports.ts +0 -2
  84. package/src/helpers/VisionHelper.ts +13 -0
  85. package/src/vsn.ts +3 -2
  86. package/test/AST/ArithmeticAssignmentNode.spec.ts +0 -2
  87. package/test/AST/StringFormatNode.spec.ts +12 -0
  88. package/test/AST/WASM.spec.ts +63 -0
  89. package/test/AST/XHRNode.spec.ts +10 -0
  90. package/test/Scope/ScopeData.spec.ts +5 -5
  91. package/types/vsn-component.d.ts +5 -0
  92. package/dist/attributes/ClickRemoveClass.d.ts +0 -8
  93. package/dist/attributes/ClickRemoveClass.js +0 -114
  94. package/dist/attributes/ClickRemoveClass.js.map +0 -1
  95. package/dist/attributes/ClickToggleClass.d.ts +0 -8
  96. package/dist/attributes/ClickToggleClass.js.map +0 -1
  97. package/src/attributes/ClickRemoveClass.ts +0 -30
  98. package/src/attributes/ClickToggleClass.ts +0 -30
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
39
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
40
+ to[j] = from[i];
41
+ return to;
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.run = exports.compile = exports.emitter = exports.encodeLocal = exports.encodeVector = exports.emptyArray = exports.functionType = exports.EExportType = exports.EOpCode = exports.EBlockType = exports.EValueType = exports.flatten = exports.unsignedLEB128 = exports.signedLEB128 = exports.encodeString = exports.ieee754 = void 0;
45
+ var VisionHelper_1 = require("../helpers/VisionHelper");
46
+ var Function_1 = require("./WASM/Function");
47
+ var dummyFunc = function () {
48
+ var args = [];
49
+ for (var _i = 0; _i < arguments.length; _i++) {
50
+ args[_i] = arguments[_i];
51
+ }
52
+ return null;
53
+ };
54
+ var dummyVal = null;
55
+ var _ieee754 = dummyFunc;
56
+ var _encodeString = dummyFunc;
57
+ var _signedLEB128 = dummyFunc;
58
+ var _unsignedLEB128 = dummyFunc;
59
+ _ieee754 = function (n) {
60
+ var buf = Buffer.allocUnsafe(4);
61
+ buf.writeFloatLE(n, 0);
62
+ return Uint8Array.from(buf);
63
+ };
64
+ _encodeString = function (str) { return __spreadArray([
65
+ str.length
66
+ ], str.split("").map(function (s) { return s.charCodeAt(0); })); };
67
+ _signedLEB128 = function (n) {
68
+ var buffer = [];
69
+ var more = true;
70
+ var isNegative = n < 0;
71
+ var bitCount = Math.ceil(Math.log2(Math.abs(n))) + 1;
72
+ while (more) {
73
+ var byte = n & 0x7f;
74
+ n >>= 7;
75
+ if (isNegative) {
76
+ n = n | -(1 << (bitCount - 8));
77
+ }
78
+ if ((n === 0 && (byte & 0x40) === 0) || (n === -1 && (byte & 0x40) !== 0x40)) {
79
+ more = false;
80
+ }
81
+ else {
82
+ byte |= 0x80;
83
+ }
84
+ buffer.push(byte);
85
+ }
86
+ return buffer;
87
+ };
88
+ _unsignedLEB128 = function (n) {
89
+ var buffer = [];
90
+ do {
91
+ var byte = n & 0x7f;
92
+ n >>>= 7;
93
+ if (n !== 0) {
94
+ byte |= 0x80;
95
+ }
96
+ buffer.push(byte);
97
+ } while (n !== 0);
98
+ return buffer;
99
+ };
100
+ exports.ieee754 = _ieee754;
101
+ exports.encodeString = _encodeString;
102
+ exports.signedLEB128 = _signedLEB128;
103
+ exports.unsignedLEB128 = _unsignedLEB128;
104
+ var flatten = function (arr) {
105
+ return [].concat.apply([], arr);
106
+ };
107
+ exports.flatten = flatten;
108
+ var ESectionType;
109
+ (function (ESectionType) {
110
+ ESectionType[ESectionType["custom"] = 0] = "custom";
111
+ ESectionType[ESectionType["type"] = 1] = "type";
112
+ ESectionType[ESectionType["import"] = 2] = "import";
113
+ ESectionType[ESectionType["func"] = 3] = "func";
114
+ ESectionType[ESectionType["table"] = 4] = "table";
115
+ ESectionType[ESectionType["memory"] = 5] = "memory";
116
+ ESectionType[ESectionType["global"] = 6] = "global";
117
+ ESectionType[ESectionType["export"] = 7] = "export";
118
+ ESectionType[ESectionType["start"] = 8] = "start";
119
+ ESectionType[ESectionType["element"] = 9] = "element";
120
+ ESectionType[ESectionType["code"] = 10] = "code";
121
+ ESectionType[ESectionType["data"] = 11] = "data";
122
+ })(ESectionType || (ESectionType = {}));
123
+ // https://webassembly.github.io/spec/core/binary/types.html
124
+ var EValueType;
125
+ (function (EValueType) {
126
+ EValueType[EValueType["i32"] = 127] = "i32";
127
+ EValueType[EValueType["f32"] = 125] = "f32";
128
+ })(EValueType = exports.EValueType || (exports.EValueType = {}));
129
+ // https://webassembly.github.io/spec/core/binary/types.html#binary-blocktype
130
+ var EBlockType;
131
+ (function (EBlockType) {
132
+ EBlockType[EBlockType["void"] = 64] = "void";
133
+ })(EBlockType = exports.EBlockType || (exports.EBlockType = {}));
134
+ // https://webassembly.github.io/spec/core/binary/instructions.html
135
+ var EOpCode;
136
+ (function (EOpCode) {
137
+ EOpCode[EOpCode["block"] = 2] = "block";
138
+ EOpCode[EOpCode["loop"] = 3] = "loop";
139
+ EOpCode[EOpCode["br"] = 12] = "br";
140
+ EOpCode[EOpCode["br_if"] = 13] = "br_if";
141
+ EOpCode[EOpCode["end"] = 11] = "end";
142
+ EOpCode[EOpCode["call"] = 16] = "call";
143
+ EOpCode[EOpCode["get_local"] = 32] = "get_local";
144
+ EOpCode[EOpCode["set_local"] = 33] = "set_local";
145
+ EOpCode[EOpCode["i32_store_8"] = 58] = "i32_store_8";
146
+ EOpCode[EOpCode["i32_const"] = 65] = "i32_const";
147
+ EOpCode[EOpCode["f32_const"] = 67] = "f32_const";
148
+ EOpCode[EOpCode["i32_add"] = 106] = "i32_add";
149
+ EOpCode[EOpCode["i32_sub"] = 107] = "i32_sub";
150
+ EOpCode[EOpCode["i32_mul"] = 108] = "i32_mul";
151
+ EOpCode[EOpCode["i32_div"] = 109] = "i32_div";
152
+ EOpCode[EOpCode["i32_eqz"] = 69] = "i32_eqz";
153
+ EOpCode[EOpCode["i32_eq"] = 70] = "i32_eq";
154
+ EOpCode[EOpCode["f32_eq"] = 91] = "f32_eq";
155
+ EOpCode[EOpCode["f32_lt"] = 93] = "f32_lt";
156
+ EOpCode[EOpCode["f32_gt"] = 94] = "f32_gt";
157
+ EOpCode[EOpCode["i32_and"] = 113] = "i32_and";
158
+ EOpCode[EOpCode["f32_add"] = 146] = "f32_add";
159
+ EOpCode[EOpCode["f32_sub"] = 147] = "f32_sub";
160
+ EOpCode[EOpCode["f32_mul"] = 148] = "f32_mul";
161
+ EOpCode[EOpCode["f32_div"] = 149] = "f32_div";
162
+ EOpCode[EOpCode["i32_trunc_f32_s"] = 168] = "i32_trunc_f32_s";
163
+ EOpCode[EOpCode["memory_size"] = 63] = "memory_size";
164
+ EOpCode[EOpCode["memory_grow"] = 64] = "memory_grow";
165
+ // Vision op codes
166
+ EOpCode[EOpCode["scope_get"] = 1024] = "scope_get";
167
+ EOpCode[EOpCode["scope_set"] = 1025] = "scope_set";
168
+ })(EOpCode = exports.EOpCode || (exports.EOpCode = {}));
169
+ var binaryOpcode = {
170
+ "+": EOpCode.f32_add,
171
+ "-": EOpCode.f32_sub,
172
+ "*": EOpCode.f32_mul,
173
+ "/": EOpCode.f32_div,
174
+ "==": EOpCode.f32_eq,
175
+ ">": EOpCode.f32_gt,
176
+ "<": EOpCode.f32_lt,
177
+ "&&": EOpCode.i32_and
178
+ };
179
+ // http://webassembly.github.io/spec/core/binary/modules.html#export-section
180
+ var EExportType;
181
+ (function (EExportType) {
182
+ EExportType[EExportType["func"] = 0] = "func";
183
+ EExportType[EExportType["table"] = 1] = "table";
184
+ EExportType[EExportType["mem"] = 2] = "mem";
185
+ EExportType[EExportType["global"] = 3] = "global";
186
+ })(EExportType = exports.EExportType || (exports.EExportType = {}));
187
+ // http://webassembly.github.io/spec/core/binary/types.html#function-types
188
+ exports.functionType = 0x60;
189
+ exports.emptyArray = 0x0;
190
+ // https://webassembly.github.io/spec/core/binary/modules.html#binary-module
191
+ var magicModuleHeader = [0x00, 0x61, 0x73, 0x6d];
192
+ var moduleVersion = [0x01, 0x00, 0x00, 0x00];
193
+ // https://webassembly.github.io/spec/core/binary/conventions.html#binary-vec
194
+ // Vectors are encoded with their length followed by their element sequence
195
+ var encodeVector = function (data) { return __spreadArray(__spreadArray([], exports.unsignedLEB128(data.length)), exports.flatten(data)); };
196
+ exports.encodeVector = encodeVector;
197
+ // https://webassembly.github.io/spec/core/binary/modules.html#code-section
198
+ var encodeLocal = function (count, type) { return __spreadArray(__spreadArray([], exports.unsignedLEB128(count)), [
199
+ type
200
+ ]); };
201
+ exports.encodeLocal = encodeLocal;
202
+ // https://webassembly.github.io/spec/core/binary/modules.html#sections
203
+ // sections are encoded by their type followed by their vector contents
204
+ var createSection = function (sectionType, data) { return __spreadArray([
205
+ sectionType
206
+ ], exports.encodeVector(data)); };
207
+ /*
208
+ Building a WASM program...
209
+ Based off of Chasm:
210
+ https://github.com/ColinEberhardt/chasm/blob/master/src/emitter.ts
211
+ https://webassembly.github.io/wabt/demo/wat2wasm/
212
+ */
213
+ var emitter = function (functions) {
214
+ // Types section
215
+ var typesSection = createSection(ESectionType.type, __spreadArray([
216
+ functions.length
217
+ ], exports.flatten(functions.map(function (func) { return func.sectionTypes; }))));
218
+ // Functions section
219
+ var functionsSection = createSection(ESectionType.func, __spreadArray([
220
+ functions.length
221
+ ], functions.map(function (func, i) { return i; })));
222
+ // Export section
223
+ var exportSection = createSection(ESectionType.export, exports.encodeVector(functions.map(function (func, i) { return __spreadArray(__spreadArray([], func.sectionExport), [i]); })));
224
+ var codeSection = createSection(ESectionType.code, __spreadArray([
225
+ functions.length
226
+ ], exports.flatten(functions.map(function (func) { return func.sectionCode; }))));
227
+ return Uint8Array.from(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], magicModuleHeader), moduleVersion), typesSection), functionsSection), exportSection), codeSection));
228
+ };
229
+ exports.emitter = emitter;
230
+ var defaultMemory = new WebAssembly.Memory({ initial: 10, maximum: 100, shared: true });
231
+ function compile(functions, memory) {
232
+ return __awaiter(this, void 0, void 0, function () {
233
+ var wasm;
234
+ return __generator(this, function (_a) {
235
+ switch (_a.label) {
236
+ case 0:
237
+ memory = memory || defaultMemory;
238
+ wasm = exports.emitter(functions);
239
+ return [4 /*yield*/, WebAssembly.instantiate(wasm, {
240
+ js: {
241
+ memory: memory
242
+ }
243
+ })];
244
+ case 1: return [2 /*return*/, _a.sent()];
245
+ }
246
+ });
247
+ });
248
+ }
249
+ exports.compile = compile;
250
+ function run(functions) {
251
+ var args = [];
252
+ for (var _i = 1; _i < arguments.length; _i++) {
253
+ args[_i - 1] = arguments[_i];
254
+ }
255
+ return __awaiter(this, void 0, void 0, function () {
256
+ var memory, wasm;
257
+ var _a;
258
+ return __generator(this, function (_b) {
259
+ switch (_b.label) {
260
+ case 0:
261
+ memory = args[0] instanceof WebAssembly.Memory && args[0] || defaultMemory;
262
+ if (functions instanceof Function_1.FunctionSection)
263
+ functions = [functions];
264
+ return [4 /*yield*/, compile(functions, memory)];
265
+ case 1:
266
+ wasm = _b.sent();
267
+ return [2 /*return*/, 'main' in wasm.instance.exports ? (_a = wasm.instance.exports).main.apply(_a, args) : wasm];
268
+ }
269
+ });
270
+ });
271
+ }
272
+ exports.run = run;
273
+ if (VisionHelper_1.VisionHelper.window)
274
+ window['wasm'] = {
275
+ compile: compile
276
+ };
277
+ //# sourceMappingURL=WASM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WASM.js","sourceRoot":"","sources":["../../src/AST/WASM.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Node } from "./Node";
2
+ import { Token, TokenType, TreeNode } from "../AST";
3
+ import { Scope } from "../Scope";
4
+ import { DOM } from "../DOM";
5
+ import { Tag } from "../Tag";
6
+ export declare class XHRNode extends Node implements TreeNode {
7
+ readonly left: Node | null;
8
+ readonly requestType: TokenType;
9
+ readonly url: Node;
10
+ constructor(left: Node | null, requestType: TokenType, url: Node);
11
+ getChildNodes(): Node[];
12
+ evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any>;
13
+ static parse(node: Node, token: Token, tokens: Token[]): XHRNode;
14
+ static match(tokens: Token[]): boolean;
15
+ }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.XHRNode = void 0;
55
+ var Node_1 = require("./Node");
56
+ var AST_1 = require("../AST");
57
+ var Scope_1 = require("../Scope");
58
+ var ScopeDataAbstract_1 = require("../Scope/ScopeDataAbstract");
59
+ var XHRNode = /** @class */ (function (_super) {
60
+ __extends(XHRNode, _super);
61
+ function XHRNode(left, requestType, url) {
62
+ var _this = _super.call(this) || this;
63
+ _this.left = left;
64
+ _this.requestType = requestType;
65
+ _this.url = url;
66
+ return _this;
67
+ }
68
+ XHRNode.prototype.getChildNodes = function () {
69
+ var nodes = [this.url];
70
+ if (this.left)
71
+ nodes.push(this.left);
72
+ return nodes;
73
+ };
74
+ XHRNode.prototype.evaluate = function (scope, dom, tag) {
75
+ return __awaiter(this, void 0, void 0, function () {
76
+ var url, method, data, _a, request, response, contentType;
77
+ return __generator(this, function (_b) {
78
+ switch (_b.label) {
79
+ case 0: return [4 /*yield*/, this.url.evaluate(scope, dom, tag)];
80
+ case 1:
81
+ url = _b.sent();
82
+ if (!this.left) return [3 /*break*/, 3];
83
+ return [4 /*yield*/, this.left.evaluate(scope, dom, tag)];
84
+ case 2:
85
+ _a = _b.sent();
86
+ return [3 /*break*/, 4];
87
+ case 3:
88
+ _a = {};
89
+ _b.label = 4;
90
+ case 4:
91
+ data = _a;
92
+ if (data instanceof Scope_1.Scope)
93
+ data = data.data;
94
+ if (data instanceof ScopeDataAbstract_1.ScopeDataAbstract)
95
+ data = data.getData();
96
+ switch (this.requestType) {
97
+ case AST_1.TokenType.XHR_POST:
98
+ method = "POST";
99
+ break;
100
+ case AST_1.TokenType.XHR_PUT:
101
+ method = "PUT";
102
+ break;
103
+ case AST_1.TokenType.XHR_DELETE:
104
+ method = "DELETE";
105
+ break;
106
+ default:
107
+ method = "GET";
108
+ }
109
+ request = {
110
+ method: method
111
+ };
112
+ if (request.method === 'GET') {
113
+ }
114
+ else {
115
+ request['body'] = (typeof data === "string") ? data : JSON.stringify(data);
116
+ }
117
+ return [4 /*yield*/, fetch(url, request)];
118
+ case 5:
119
+ response = _b.sent();
120
+ contentType = response.headers.get('content-type');
121
+ if (!(contentType && contentType.includes('application/json'))) return [3 /*break*/, 7];
122
+ return [4 /*yield*/, response.json()];
123
+ case 6: return [2 /*return*/, _b.sent()];
124
+ case 7: return [4 /*yield*/, response.text()];
125
+ case 8: return [2 /*return*/, _b.sent()];
126
+ }
127
+ });
128
+ });
129
+ };
130
+ XHRNode.parse = function (node, token, tokens) {
131
+ tokens.splice(0, 1); // Consume request type
132
+ var url = AST_1.Tree.processTokens(AST_1.Tree.getNextStatementTokens(tokens, false, false, false));
133
+ return new XHRNode(node, token.type, url);
134
+ };
135
+ XHRNode.match = function (tokens) {
136
+ return [
137
+ AST_1.TokenType.XHR_POST,
138
+ AST_1.TokenType.XHR_PUT,
139
+ AST_1.TokenType.XHR_GET,
140
+ AST_1.TokenType.XHR_DELETE,
141
+ ].indexOf(tokens[0].type) > -1;
142
+ };
143
+ return XHRNode;
144
+ }(Node_1.Node));
145
+ exports.XHRNode = XHRNode;
146
+ //# sourceMappingURL=XHRNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XHRNode.js","sourceRoot":"","sources":["../../src/AST/XHRNode.ts"],"names":[],"mappings":"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"}
package/dist/AST.d.ts CHANGED
@@ -17,60 +17,66 @@ export declare enum BlockType {
17
17
  STATEMENT = 3
18
18
  }
19
19
  export declare enum TokenType {
20
- WHITESPACE = 0,
21
- TYPE_INT = 1,
22
- TYPE_UINT = 2,
23
- TYPE_FLOAT = 3,
24
- TYPE_STRING = 4,
25
- RETURN = 5,
26
- NOT = 6,
27
- OF = 7,
28
- IN = 8,
29
- FOR = 9,
30
- IF = 10,
31
- ELSE_IF = 11,
32
- ELSE = 12,
33
- NAME = 13,
34
- L_BRACE = 14,
35
- R_BRACE = 15,
36
- L_BRACKET = 16,
37
- R_BRACKET = 17,
38
- L_PAREN = 18,
39
- R_PAREN = 19,
40
- TILDE = 20,
41
- PERIOD = 21,
42
- COMMA = 22,
43
- COLON = 23,
44
- SEMI_COLON = 24,
45
- STRING_LITERAL = 25,
46
- NUMBER_LITERAL = 26,
47
- BOOLEAN_LITERAL = 27,
48
- NULL_LITERAL = 28,
49
- STRICT_EQUALS = 29,
50
- STRICT_NOT_EQUALS = 30,
51
- EQUALS = 31,
52
- NOT_EQUALS = 32,
53
- GREATER_THAN_EQUAL = 33,
54
- LESS_THAN_EQUAL = 34,
55
- GREATER_THAN = 35,
56
- LESS_THAN = 36,
57
- ASSIGN = 37,
58
- AND = 38,
59
- OR = 39,
60
- ADD = 40,
61
- SUBTRACT = 41,
62
- MULTIPLY = 42,
63
- DIVIDE = 43,
64
- ADD_ASSIGN = 44,
65
- SUBTRACT_ASSIGN = 45,
66
- MULTIPLY_ASSIGN = 46,
67
- DIVIDE_ASSIGN = 47,
68
- EXCLAMATION_POINT = 48,
69
- ELEMENT_REFERENCE = 49,
70
- ELEMENT_ATTRIBUTE = 50,
71
- ELEMENT_STYLE = 51,
72
- ELEMENT_QUERY = 52,
73
- UNIT = 53
20
+ NULL = 0,
21
+ WHITESPACE = 1,
22
+ TYPE_INT = 2,
23
+ TYPE_UINT = 3,
24
+ TYPE_FLOAT = 4,
25
+ TYPE_STRING = 5,
26
+ RETURN = 6,
27
+ NOT = 7,
28
+ OF = 8,
29
+ IN = 9,
30
+ FOR = 10,
31
+ IF = 11,
32
+ ELSE_IF = 12,
33
+ ELSE = 13,
34
+ NAME = 14,
35
+ L_BRACE = 15,
36
+ R_BRACE = 16,
37
+ L_BRACKET = 17,
38
+ R_BRACKET = 18,
39
+ L_PAREN = 19,
40
+ R_PAREN = 20,
41
+ TILDE = 21,
42
+ PERIOD = 22,
43
+ COMMA = 23,
44
+ COLON = 24,
45
+ SEMICOLON = 25,
46
+ STRING_FORMAT = 26,
47
+ STRING_LITERAL = 27,
48
+ NUMBER_LITERAL = 28,
49
+ BOOLEAN_LITERAL = 29,
50
+ NULL_LITERAL = 30,
51
+ STRICT_EQUALS = 31,
52
+ STRICT_NOT_EQUALS = 32,
53
+ EQUALS = 33,
54
+ NOT_EQUALS = 34,
55
+ GREATER_THAN_EQUAL = 35,
56
+ LESS_THAN_EQUAL = 36,
57
+ GREATER_THAN = 37,
58
+ LESS_THAN = 38,
59
+ ASSIGN = 39,
60
+ AND = 40,
61
+ OR = 41,
62
+ ADD = 42,
63
+ SUBTRACT = 43,
64
+ MULTIPLY = 44,
65
+ DIVIDE = 45,
66
+ ADD_ASSIGN = 46,
67
+ SUBTRACT_ASSIGN = 47,
68
+ MULTIPLY_ASSIGN = 48,
69
+ DIVIDE_ASSIGN = 49,
70
+ EXCLAMATION_POINT = 50,
71
+ ELEMENT_REFERENCE = 51,
72
+ ELEMENT_ATTRIBUTE = 52,
73
+ ELEMENT_STYLE = 53,
74
+ ELEMENT_QUERY = 54,
75
+ UNIT = 55,
76
+ XHR_GET = 56,
77
+ XHR_POST = 57,
78
+ XHR_PUT = 58,
79
+ XHR_DELETE = 59
74
80
  }
75
81
  export interface TreeNode<T = any> {
76
82
  evaluate(scope: Scope, dom: DOM, tag?: Tag): any;
@@ -89,8 +95,9 @@ export declare class Tree {
89
95
  protected static cache: {
90
96
  [key: string]: Node;
91
97
  };
92
- protected rootNode: Node;
98
+ protected _root: Node;
93
99
  constructor(code: string);
100
+ get root(): Node;
94
101
  parse(): void;
95
102
  evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any>;
96
103
  prepare(scope: Scope, dom: DOM, tag?: Tag): Promise<void>;