vsn 0.1.148 → 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 (587) hide show
  1. package/README.md +7 -6
  2. package/dist/index.cjs +5011 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +630 -0
  5. package/dist/index.d.ts +630 -0
  6. package/dist/index.js +4942 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/index.min.js +9 -0
  9. package/dist/index.min.js.map +1 -0
  10. package/package.json +30 -48
  11. package/.gitattributes +0 -2
  12. package/.travis.yml +0 -28
  13. package/demo/demo.html +0 -237
  14. package/demo/examples/cascading-function-sheets.html +0 -39
  15. package/demo/examples/component-slots.html +0 -29
  16. package/demo/examples/events.html +0 -21
  17. package/demo/examples/item-filtering.html +0 -45
  18. package/demo/examples/loop.html +0 -21
  19. package/demo/examples/persist.html +0 -17
  20. package/demo/examples/replace-html.html +0 -19
  21. package/demo/markup-default.html +0 -2
  22. package/demo/markup.html +0 -2
  23. package/demo/memory-leak-test.html +0 -82
  24. package/demo/named-stack.html +0 -34
  25. package/demo/resources/xhr-animations.html +0 -24
  26. package/demo/resources/xhr-cfs.html +0 -1
  27. package/demo/resources/xhr-html.html +0 -1
  28. package/demo/resources/xhr-lazy.html +0 -60
  29. package/demo/resources/xhr-memory-leak-test.html +0 -14
  30. package/demo/resources/xhr-persist.html +0 -40
  31. package/demo/resources/xhr-test-component.html +0 -4
  32. package/demo/service.html +0 -22
  33. package/demo/silly-animations.html +0 -27
  34. package/demo/vsn.js +0 -3
  35. package/demo/xhr-response.html +0 -1
  36. package/demo/xhr-test.html +0 -32
  37. package/dist/AST/ArithmeticNode.d.ts +0 -15
  38. package/dist/AST/ArithmeticNode.js +0 -114
  39. package/dist/AST/ArithmeticNode.js.map +0 -1
  40. package/dist/AST/ArrayNode.d.ts +0 -14
  41. package/dist/AST/ArrayNode.js +0 -166
  42. package/dist/AST/ArrayNode.js.map +0 -1
  43. package/dist/AST/AsNode.d.ts +0 -13
  44. package/dist/AST/AsNode.js +0 -92
  45. package/dist/AST/AsNode.js.map +0 -1
  46. package/dist/AST/AssignmentNode.d.ts +0 -24
  47. package/dist/AST/AssignmentNode.js +0 -392
  48. package/dist/AST/AssignmentNode.js.map +0 -1
  49. package/dist/AST/BlockNode.d.ts +0 -11
  50. package/dist/AST/BlockNode.js +0 -114
  51. package/dist/AST/BlockNode.js.map +0 -1
  52. package/dist/AST/BooleanLiteralNode.d.ts +0 -5
  53. package/dist/AST/BooleanLiteralNode.js +0 -31
  54. package/dist/AST/BooleanLiteralNode.js.map +0 -1
  55. package/dist/AST/ClassNode.d.ts +0 -47
  56. package/dist/AST/ClassNode.js +0 -593
  57. package/dist/AST/ClassNode.js.map +0 -1
  58. package/dist/AST/ComparisonNode.d.ts +0 -15
  59. package/dist/AST/ComparisonNode.js +0 -120
  60. package/dist/AST/ComparisonNode.js.map +0 -1
  61. package/dist/AST/ConditionalNode.d.ts +0 -13
  62. package/dist/AST/ConditionalNode.js +0 -95
  63. package/dist/AST/ConditionalNode.js.map +0 -1
  64. package/dist/AST/DispatchEventNode.d.ts +0 -17
  65. package/dist/AST/DispatchEventNode.js +0 -152
  66. package/dist/AST/DispatchEventNode.js.map +0 -1
  67. package/dist/AST/ElementAttributeNode.d.ts +0 -20
  68. package/dist/AST/ElementAttributeNode.js +0 -242
  69. package/dist/AST/ElementAttributeNode.js.map +0 -1
  70. package/dist/AST/ElementQueryNode.d.ts +0 -17
  71. package/dist/AST/ElementQueryNode.js +0 -148
  72. package/dist/AST/ElementQueryNode.js.map +0 -1
  73. package/dist/AST/ElementStyleNode.d.ts +0 -20
  74. package/dist/AST/ElementStyleNode.js +0 -205
  75. package/dist/AST/ElementStyleNode.js.map +0 -1
  76. package/dist/AST/ForStatementNode.d.ts +0 -17
  77. package/dist/AST/ForStatementNode.js +0 -121
  78. package/dist/AST/ForStatementNode.js.map +0 -1
  79. package/dist/AST/FunctionArgumentNode.d.ts +0 -11
  80. package/dist/AST/FunctionArgumentNode.js +0 -142
  81. package/dist/AST/FunctionArgumentNode.js.map +0 -1
  82. package/dist/AST/FunctionCallNode.d.ts +0 -14
  83. package/dist/AST/FunctionCallNode.js +0 -241
  84. package/dist/AST/FunctionCallNode.js.map +0 -1
  85. package/dist/AST/FunctionNode.d.ts +0 -20
  86. package/dist/AST/FunctionNode.js +0 -220
  87. package/dist/AST/FunctionNode.js.map +0 -1
  88. package/dist/AST/IfStatementNode.d.ts +0 -14
  89. package/dist/AST/IfStatementNode.js +0 -168
  90. package/dist/AST/IfStatementNode.js.map +0 -1
  91. package/dist/AST/InNode.d.ts +0 -15
  92. package/dist/AST/InNode.js +0 -107
  93. package/dist/AST/InNode.js.map +0 -1
  94. package/dist/AST/IndexNode.d.ts +0 -16
  95. package/dist/AST/IndexNode.js +0 -152
  96. package/dist/AST/IndexNode.js.map +0 -1
  97. package/dist/AST/LiteralNode.d.ts +0 -10
  98. package/dist/AST/LiteralNode.js +0 -74
  99. package/dist/AST/LiteralNode.js.map +0 -1
  100. package/dist/AST/LoopNode.d.ts +0 -12
  101. package/dist/AST/LoopNode.js +0 -121
  102. package/dist/AST/LoopNode.js.map +0 -1
  103. package/dist/AST/ModifierNode.d.ts +0 -14
  104. package/dist/AST/ModifierNode.js +0 -90
  105. package/dist/AST/ModifierNode.js.map +0 -1
  106. package/dist/AST/NamedStackNode.d.ts +0 -28
  107. package/dist/AST/NamedStackNode.js +0 -142
  108. package/dist/AST/NamedStackNode.js.map +0 -1
  109. package/dist/AST/Node.d.ts +0 -28
  110. package/dist/AST/Node.js +0 -263
  111. package/dist/AST/Node.js.map +0 -1
  112. package/dist/AST/NotNode.d.ts +0 -12
  113. package/dist/AST/NotNode.js +0 -103
  114. package/dist/AST/NotNode.js.map +0 -1
  115. package/dist/AST/NumberLiteralNode.d.ts +0 -5
  116. package/dist/AST/NumberLiteralNode.js +0 -36
  117. package/dist/AST/NumberLiteralNode.js.map +0 -1
  118. package/dist/AST/ObjectNode.d.ts +0 -14
  119. package/dist/AST/ObjectNode.js +0 -147
  120. package/dist/AST/ObjectNode.js.map +0 -1
  121. package/dist/AST/OnNode.d.ts +0 -9
  122. package/dist/AST/OnNode.js +0 -129
  123. package/dist/AST/OnNode.js.map +0 -1
  124. package/dist/AST/RootScopeMemberNode.d.ts +0 -12
  125. package/dist/AST/RootScopeMemberNode.js +0 -90
  126. package/dist/AST/RootScopeMemberNode.js.map +0 -1
  127. package/dist/AST/ScopeMemberNode.d.ts +0 -13
  128. package/dist/AST/ScopeMemberNode.js +0 -165
  129. package/dist/AST/ScopeMemberNode.js.map +0 -1
  130. package/dist/AST/ScopeNodeAbstract.d.ts +0 -8
  131. package/dist/AST/ScopeNodeAbstract.js +0 -105
  132. package/dist/AST/ScopeNodeAbstract.js.map +0 -1
  133. package/dist/AST/StringFormatNode.d.ts +0 -18
  134. package/dist/AST/StringFormatNode.js +0 -151
  135. package/dist/AST/StringFormatNode.js.map +0 -1
  136. package/dist/AST/UnitLiteralNode.d.ts +0 -15
  137. package/dist/AST/UnitLiteralNode.js +0 -72
  138. package/dist/AST/UnitLiteralNode.js.map +0 -1
  139. package/dist/AST/WASM/Context.d.ts +0 -4
  140. package/dist/AST/WASM/Context.js +0 -18
  141. package/dist/AST/WASM/Context.js.map +0 -1
  142. package/dist/AST/WASM/Function.d.ts +0 -22
  143. package/dist/AST/WASM/Function.js +0 -126
  144. package/dist/AST/WASM/Function.js.map +0 -1
  145. package/dist/AST/WASM/Memory.d.ts +0 -12
  146. package/dist/AST/WASM/Memory.js +0 -22
  147. package/dist/AST/WASM/Memory.js.map +0 -1
  148. package/dist/AST/WASM/Section.d.ts +0 -5
  149. package/dist/AST/WASM/Section.js +0 -11
  150. package/dist/AST/WASM/Section.js.map +0 -1
  151. package/dist/AST/WASM.d.ts +0 -58
  152. package/dist/AST/WASM.js +0 -293
  153. package/dist/AST/WASM.js.map +0 -1
  154. package/dist/AST/WithNode.d.ts +0 -15
  155. package/dist/AST/WithNode.js +0 -197
  156. package/dist/AST/WithNode.js.map +0 -1
  157. package/dist/AST/XHRNode.d.ts +0 -15
  158. package/dist/AST/XHRNode.js +0 -151
  159. package/dist/AST/XHRNode.js.map +0 -1
  160. package/dist/AST.d.ts +0 -160
  161. package/dist/AST.js +0 -1156
  162. package/dist/AST.js.map +0 -1
  163. package/dist/Attribute.d.ts +0 -46
  164. package/dist/Attribute.js +0 -262
  165. package/dist/Attribute.js.map +0 -1
  166. package/dist/Bencmark.d.ts +0 -14
  167. package/dist/Bencmark.js +0 -236
  168. package/dist/Bencmark.js.map +0 -1
  169. package/dist/Component.d.ts +0 -7
  170. package/dist/Component.js +0 -179
  171. package/dist/Component.js.map +0 -1
  172. package/dist/Configuration.d.ts +0 -12
  173. package/dist/Configuration.js +0 -64
  174. package/dist/Configuration.js.map +0 -1
  175. package/dist/Controller.d.ts +0 -13
  176. package/dist/Controller.js +0 -60
  177. package/dist/Controller.js.map +0 -1
  178. package/dist/DOM/AbstractDOM.d.ts +0 -56
  179. package/dist/DOM/AbstractDOM.js +0 -1038
  180. package/dist/DOM/AbstractDOM.js.map +0 -1
  181. package/dist/DOM/DOMObject.d.ts +0 -33
  182. package/dist/DOM/DOMObject.js +0 -152
  183. package/dist/DOM/DOMObject.js.map +0 -1
  184. package/dist/DOM/ShadowDOM.d.ts +0 -5
  185. package/dist/DOM/ShadowDOM.js +0 -32
  186. package/dist/DOM/ShadowDOM.js.map +0 -1
  187. package/dist/DOM/WrappedDocument.d.ts +0 -5
  188. package/dist/DOM/WrappedDocument.js +0 -34
  189. package/dist/DOM/WrappedDocument.js.map +0 -1
  190. package/dist/DOM/WrappedWindow.d.ts +0 -6
  191. package/dist/DOM/WrappedWindow.js +0 -45
  192. package/dist/DOM/WrappedWindow.js.map +0 -1
  193. package/dist/DOM.d.ts +0 -5
  194. package/dist/DOM.js +0 -37
  195. package/dist/DOM.js.map +0 -1
  196. package/dist/EventDispatcher.d.ts +0 -36
  197. package/dist/EventDispatcher.js +0 -393
  198. package/dist/EventDispatcher.js.map +0 -1
  199. package/dist/Formats.d.ts +0 -5
  200. package/dist/Formats.js +0 -47
  201. package/dist/Formats.js.map +0 -1
  202. package/dist/MessageList.d.ts +0 -15
  203. package/dist/MessageList.js +0 -127
  204. package/dist/MessageList.js.map +0 -1
  205. package/dist/Model.d.ts +0 -12
  206. package/dist/Model.js +0 -92
  207. package/dist/Model.js.map +0 -1
  208. package/dist/Modifiers.d.ts +0 -17
  209. package/dist/Modifiers.js +0 -100
  210. package/dist/Modifiers.js.map +0 -1
  211. package/dist/Query.d.ts +0 -4
  212. package/dist/Query.js +0 -66
  213. package/dist/Query.js.map +0 -1
  214. package/dist/Registry.d.ts +0 -41
  215. package/dist/Registry.js +0 -165
  216. package/dist/Registry.js.map +0 -1
  217. package/dist/Scope/DynamicScopeData.d.ts +0 -6
  218. package/dist/Scope/DynamicScopeData.js +0 -83
  219. package/dist/Scope/DynamicScopeData.js.map +0 -1
  220. package/dist/Scope/ObjectAccessor.d.ts +0 -7
  221. package/dist/Scope/ObjectAccessor.js +0 -40
  222. package/dist/Scope/ObjectAccessor.js.map +0 -1
  223. package/dist/Scope/QueryReference.d.ts +0 -10
  224. package/dist/Scope/QueryReference.js +0 -103
  225. package/dist/Scope/QueryReference.js.map +0 -1
  226. package/dist/Scope/ScopeAbstract.d.ts +0 -9
  227. package/dist/Scope/ScopeAbstract.js +0 -28
  228. package/dist/Scope/ScopeAbstract.js.map +0 -1
  229. package/dist/Scope/ScopeData.d.ts +0 -4
  230. package/dist/Scope/ScopeData.js +0 -60
  231. package/dist/Scope/ScopeData.js.map +0 -1
  232. package/dist/Scope/ScopeDataAbstract.d.ts +0 -30
  233. package/dist/Scope/ScopeDataAbstract.js +0 -303
  234. package/dist/Scope/ScopeDataAbstract.js.map +0 -1
  235. package/dist/Scope/ScopeObject.d.ts +0 -3
  236. package/dist/Scope/ScopeObject.js +0 -28
  237. package/dist/Scope/ScopeObject.js.map +0 -1
  238. package/dist/Scope/ScopeReference.d.ts +0 -10
  239. package/dist/Scope/ScopeReference.js +0 -73
  240. package/dist/Scope/ScopeReference.js.map +0 -1
  241. package/dist/Scope/ScopedVariableType.d.ts +0 -6
  242. package/dist/Scope/ScopedVariableType.js +0 -14
  243. package/dist/Scope/ScopedVariableType.js.map +0 -1
  244. package/dist/Scope/WrappedArray.d.ts +0 -21
  245. package/dist/Scope/WrappedArray.js +0 -252
  246. package/dist/Scope/WrappedArray.js.map +0 -1
  247. package/dist/Scope/properties/ArrayProperty.d.ts +0 -12
  248. package/dist/Scope/properties/ArrayProperty.js +0 -88
  249. package/dist/Scope/properties/ArrayProperty.js.map +0 -1
  250. package/dist/Scope/properties/FloatProperty.d.ts +0 -4
  251. package/dist/Scope/properties/FloatProperty.js +0 -30
  252. package/dist/Scope/properties/FloatProperty.js.map +0 -1
  253. package/dist/Scope/properties/IntegerProperty.d.ts +0 -4
  254. package/dist/Scope/properties/IntegerProperty.js +0 -30
  255. package/dist/Scope/properties/IntegerProperty.js.map +0 -1
  256. package/dist/Scope/properties/Property.d.ts +0 -30
  257. package/dist/Scope/properties/Property.js +0 -205
  258. package/dist/Scope/properties/Property.js.map +0 -1
  259. package/dist/Scope/properties/_imports.d.ts +0 -4
  260. package/dist/Scope/properties/_imports.js +0 -13
  261. package/dist/Scope/properties/_imports.js.map +0 -1
  262. package/dist/Scope.d.ts +0 -39
  263. package/dist/Scope.js +0 -434
  264. package/dist/Scope.js.map +0 -1
  265. package/dist/Service.d.ts +0 -9
  266. package/dist/Service.js +0 -49
  267. package/dist/Service.js.map +0 -1
  268. package/dist/Tag/ShadowRootTag.d.ts +0 -3
  269. package/dist/Tag/ShadowRootTag.js +0 -28
  270. package/dist/Tag/ShadowRootTag.js.map +0 -1
  271. package/dist/Tag/SlotTag.d.ts +0 -3
  272. package/dist/Tag/SlotTag.js +0 -28
  273. package/dist/Tag/SlotTag.js.map +0 -1
  274. package/dist/Tag/SlottedTag.d.ts +0 -7
  275. package/dist/Tag/SlottedTag.js +0 -78
  276. package/dist/Tag/SlottedTag.js.map +0 -1
  277. package/dist/Tag/TagList.d.ts +0 -13
  278. package/dist/Tag/TagList.js +0 -104
  279. package/dist/Tag/TagList.js.map +0 -1
  280. package/dist/Tag.d.ts +0 -117
  281. package/dist/Tag.js +0 -1471
  282. package/dist/Tag.js.map +0 -1
  283. package/dist/Types.d.ts +0 -8
  284. package/dist/Types.js +0 -54
  285. package/dist/Types.js.map +0 -1
  286. package/dist/Validators.d.ts +0 -7
  287. package/dist/Validators.js +0 -54
  288. package/dist/Validators.js.map +0 -1
  289. package/dist/attributes/AddClassIf.d.ts +0 -4
  290. package/dist/attributes/AddClassIf.js +0 -93
  291. package/dist/attributes/AddClassIf.js.map +0 -1
  292. package/dist/attributes/Bind.d.ts +0 -24
  293. package/dist/attributes/Bind.js +0 -273
  294. package/dist/attributes/Bind.js.map +0 -1
  295. package/dist/attributes/ComponentAttribute.d.ts +0 -5
  296. package/dist/attributes/ComponentAttribute.js +0 -110
  297. package/dist/attributes/ComponentAttribute.js.map +0 -1
  298. package/dist/attributes/ControllerAttribute.d.ts +0 -11
  299. package/dist/attributes/ControllerAttribute.js +0 -127
  300. package/dist/attributes/ControllerAttribute.js.map +0 -1
  301. package/dist/attributes/DisableIf.d.ts +0 -5
  302. package/dist/attributes/DisableIf.js +0 -94
  303. package/dist/attributes/DisableIf.js.map +0 -1
  304. package/dist/attributes/Exec.d.ts +0 -10
  305. package/dist/attributes/Exec.js +0 -133
  306. package/dist/attributes/Exec.js.map +0 -1
  307. package/dist/attributes/Format.d.ts +0 -5
  308. package/dist/attributes/Format.js +0 -99
  309. package/dist/attributes/Format.js.map +0 -1
  310. package/dist/attributes/If.d.ts +0 -11
  311. package/dist/attributes/If.js +0 -159
  312. package/dist/attributes/If.js.map +0 -1
  313. package/dist/attributes/JSONAttribute.d.ts +0 -5
  314. package/dist/attributes/JSONAttribute.js +0 -119
  315. package/dist/attributes/JSONAttribute.js.map +0 -1
  316. package/dist/attributes/KeyAbstract.d.ts +0 -7
  317. package/dist/attributes/KeyAbstract.js +0 -117
  318. package/dist/attributes/KeyAbstract.js.map +0 -1
  319. package/dist/attributes/KeyDown.d.ts +0 -4
  320. package/dist/attributes/KeyDown.js +0 -88
  321. package/dist/attributes/KeyDown.js.map +0 -1
  322. package/dist/attributes/KeyUp.d.ts +0 -4
  323. package/dist/attributes/KeyUp.js +0 -88
  324. package/dist/attributes/KeyUp.js.map +0 -1
  325. package/dist/attributes/LazyAttribute.d.ts +0 -8
  326. package/dist/attributes/LazyAttribute.js +0 -122
  327. package/dist/attributes/LazyAttribute.js.map +0 -1
  328. package/dist/attributes/List.d.ts +0 -18
  329. package/dist/attributes/List.js +0 -396
  330. package/dist/attributes/List.js.map +0 -1
  331. package/dist/attributes/ListItem.d.ts +0 -12
  332. package/dist/attributes/ListItem.js +0 -119
  333. package/dist/attributes/ListItem.js.map +0 -1
  334. package/dist/attributes/ListItemModel.d.ts +0 -4
  335. package/dist/attributes/ListItemModel.js +0 -39
  336. package/dist/attributes/ListItemModel.js.map +0 -1
  337. package/dist/attributes/ModelAttribute.d.ts +0 -5
  338. package/dist/attributes/ModelAttribute.js +0 -41
  339. package/dist/attributes/ModelAttribute.js.map +0 -1
  340. package/dist/attributes/Name.d.ts +0 -6
  341. package/dist/attributes/Name.js +0 -88
  342. package/dist/attributes/Name.js.map +0 -1
  343. package/dist/attributes/On.d.ts +0 -9
  344. package/dist/attributes/On.js +0 -135
  345. package/dist/attributes/On.js.map +0 -1
  346. package/dist/attributes/PersistAttribute.d.ts +0 -15
  347. package/dist/attributes/PersistAttribute.js +0 -215
  348. package/dist/attributes/PersistAttribute.js.map +0 -1
  349. package/dist/attributes/Referenced.d.ts +0 -3
  350. package/dist/attributes/Referenced.js +0 -38
  351. package/dist/attributes/Referenced.js.map +0 -1
  352. package/dist/attributes/RootAttribute.d.ts +0 -7
  353. package/dist/attributes/RootAttribute.js +0 -141
  354. package/dist/attributes/RootAttribute.js.map +0 -1
  355. package/dist/attributes/ScopeAttribute.d.ts +0 -9
  356. package/dist/attributes/ScopeAttribute.js +0 -152
  357. package/dist/attributes/ScopeAttribute.js.map +0 -1
  358. package/dist/attributes/ScopeChange.d.ts +0 -10
  359. package/dist/attributes/ScopeChange.js +0 -153
  360. package/dist/attributes/ScopeChange.js.map +0 -1
  361. package/dist/attributes/ScriptAttribute.d.ts +0 -4
  362. package/dist/attributes/ScriptAttribute.js +0 -45
  363. package/dist/attributes/ScriptAttribute.js.map +0 -1
  364. package/dist/attributes/ServiceAttribute.d.ts +0 -7
  365. package/dist/attributes/ServiceAttribute.js +0 -45
  366. package/dist/attributes/ServiceAttribute.js.map +0 -1
  367. package/dist/attributes/SetAttribute.d.ts +0 -11
  368. package/dist/attributes/SetAttribute.js +0 -146
  369. package/dist/attributes/SetAttribute.js.map +0 -1
  370. package/dist/attributes/StandardAttribute.d.ts +0 -15
  371. package/dist/attributes/StandardAttribute.js +0 -170
  372. package/dist/attributes/StandardAttribute.js.map +0 -1
  373. package/dist/attributes/StyleAttribute.d.ts +0 -14
  374. package/dist/attributes/StyleAttribute.js +0 -218
  375. package/dist/attributes/StyleAttribute.js.map +0 -1
  376. package/dist/attributes/StyleVarAttribute.d.ts +0 -11
  377. package/dist/attributes/StyleVarAttribute.js +0 -124
  378. package/dist/attributes/StyleVarAttribute.js.map +0 -1
  379. package/dist/attributes/TemplateAttribute.d.ts +0 -5
  380. package/dist/attributes/TemplateAttribute.js +0 -89
  381. package/dist/attributes/TemplateAttribute.js.map +0 -1
  382. package/dist/attributes/TypeAttribute.d.ts +0 -5
  383. package/dist/attributes/TypeAttribute.js +0 -104
  384. package/dist/attributes/TypeAttribute.js.map +0 -1
  385. package/dist/attributes/XHRAttribute.d.ts +0 -14
  386. package/dist/attributes/XHRAttribute.js +0 -242
  387. package/dist/attributes/XHRAttribute.js.map +0 -1
  388. package/dist/attributes/_imports.d.ts +0 -32
  389. package/dist/attributes/_imports.js +0 -68
  390. package/dist/attributes/_imports.js.map +0 -1
  391. package/dist/contrib/XHR.d.ts +0 -21
  392. package/dist/contrib/XHR.js +0 -78
  393. package/dist/contrib/XHR.js.map +0 -1
  394. package/dist/contrib/_imports.d.ts +0 -1
  395. package/dist/contrib/_imports.js +0 -6
  396. package/dist/contrib/_imports.js.map +0 -1
  397. package/dist/custom-elements.d.ts +0 -9
  398. package/dist/custom-elements.js +0 -44
  399. package/dist/custom-elements.js.map +0 -1
  400. package/dist/demo/ServiceDemo.d.ts +0 -5
  401. package/dist/demo/ServiceDemo.js +0 -87
  402. package/dist/demo/ServiceDemo.js.map +0 -1
  403. package/dist/demo.d.ts +0 -2
  404. package/dist/demo.js +0 -17
  405. package/dist/demo.js.map +0 -1
  406. package/dist/helpers/DOMHelper.d.ts +0 -3
  407. package/dist/helpers/DOMHelper.js +0 -81
  408. package/dist/helpers/DOMHelper.js.map +0 -1
  409. package/dist/helpers/ElementHelper.d.ts +0 -4
  410. package/dist/helpers/ElementHelper.js +0 -53
  411. package/dist/helpers/ElementHelper.js.map +0 -1
  412. package/dist/helpers/VisionHelper.d.ts +0 -13
  413. package/dist/helpers/VisionHelper.js +0 -148
  414. package/dist/helpers/VisionHelper.js.map +0 -1
  415. package/dist/helpers/decorators.d.ts +0 -5
  416. package/dist/helpers/decorators.js +0 -59
  417. package/dist/helpers/decorators.js.map +0 -1
  418. package/dist/version.d.ts +0 -1
  419. package/dist/version.js +0 -5
  420. package/dist/version.js.map +0 -1
  421. package/dist/vsn.d.ts +0 -36
  422. package/dist/vsn.js +0 -201
  423. package/dist/vsn.js.map +0 -1
  424. package/karma.conf.js +0 -34
  425. package/src/AST/ArithmeticNode.ts +0 -52
  426. package/src/AST/ArrayNode.ts +0 -39
  427. package/src/AST/AsNode.ts +0 -32
  428. package/src/AST/AssignmentNode.ts +0 -256
  429. package/src/AST/BlockNode.ts +0 -25
  430. package/src/AST/BooleanLiteralNode.ts +0 -10
  431. package/src/AST/ClassNode.ts +0 -267
  432. package/src/AST/ComparisonNode.ts +0 -57
  433. package/src/AST/ConditionalNode.ts +0 -36
  434. package/src/AST/DispatchEventNode.ts +0 -58
  435. package/src/AST/ElementAttributeNode.ts +0 -97
  436. package/src/AST/ElementQueryNode.ts +0 -48
  437. package/src/AST/ElementStyleNode.ts +0 -74
  438. package/src/AST/ForStatementNode.ts +0 -59
  439. package/src/AST/FunctionArgumentNode.ts +0 -27
  440. package/src/AST/FunctionCallNode.ts +0 -93
  441. package/src/AST/FunctionNode.ts +0 -82
  442. package/src/AST/IfStatementNode.ts +0 -67
  443. package/src/AST/InNode.ts +0 -46
  444. package/src/AST/IndexNode.ts +0 -64
  445. package/src/AST/LiteralNode.ts +0 -17
  446. package/src/AST/LoopNode.ts +0 -35
  447. package/src/AST/ModifierNode.ts +0 -32
  448. package/src/AST/NamedStackNode.ts +0 -83
  449. package/src/AST/Node.ts +0 -104
  450. package/src/AST/NotNode.ts +0 -41
  451. package/src/AST/NumberLiteralNode.ts +0 -14
  452. package/src/AST/ObjectNode.ts +0 -55
  453. package/src/AST/OnNode.ts +0 -23
  454. package/src/AST/RootScopeMemberNode.ts +0 -27
  455. package/src/AST/ScopeMemberNode.ts +0 -63
  456. package/src/AST/ScopeNodeAbstract.ts +0 -21
  457. package/src/AST/StringFormatNode.ts +0 -43
  458. package/src/AST/UnitLiteralNode.ts +0 -51
  459. package/src/AST/WASM/Context.ts +0 -12
  460. package/src/AST/WASM/Function.ts +0 -67
  461. package/src/AST/WASM/Memory.ts +0 -21
  462. package/src/AST/WASM/Section.ts +0 -6
  463. package/src/AST/WASM.ts +0 -244
  464. package/src/AST/WithNode.ts +0 -68
  465. package/src/AST/XHRNode.ts +0 -85
  466. package/src/AST.ts +0 -969
  467. package/src/Attribute.ts +0 -130
  468. package/src/Bencmark.ts +0 -184
  469. package/src/Component.ts +0 -63
  470. package/src/Configuration.ts +0 -47
  471. package/src/Controller.ts +0 -36
  472. package/src/DOM/AbstractDOM.ts +0 -462
  473. package/src/DOM/DOMObject.ts +0 -77
  474. package/src/DOM/ShadowDOM.ts +0 -15
  475. package/src/DOM/WrappedDocument.ts +0 -9
  476. package/src/DOM/WrappedWindow.ts +0 -21
  477. package/src/DOM.ts +0 -13
  478. package/src/EventDispatcher.ts +0 -234
  479. package/src/Formats.ts +0 -33
  480. package/src/MessageList.ts +0 -85
  481. package/src/Model.ts +0 -44
  482. package/src/Modifiers.ts +0 -54
  483. package/src/Query.ts +0 -17
  484. package/src/Registry.ts +0 -141
  485. package/src/Scope/DynamicScopeData.ts +0 -27
  486. package/src/Scope/ObjectAccessor.ts +0 -21
  487. package/src/Scope/QueryReference.ts +0 -29
  488. package/src/Scope/ScopeAbstract.ts +0 -11
  489. package/src/Scope/ScopeData.ts +0 -20
  490. package/src/Scope/ScopeDataAbstract.ts +0 -200
  491. package/src/Scope/ScopeObject.ts +0 -3
  492. package/src/Scope/ScopeReference.ts +0 -30
  493. package/src/Scope/ScopedVariableType.ts +0 -7
  494. package/src/Scope/WrappedArray.ts +0 -134
  495. package/src/Scope/properties/ArrayProperty.ts +0 -46
  496. package/src/Scope/properties/FloatProperty.ts +0 -5
  497. package/src/Scope/properties/IntegerProperty.ts +0 -5
  498. package/src/Scope/properties/Property.ts +0 -173
  499. package/src/Scope/properties/_imports.ts +0 -4
  500. package/src/Scope.ts +0 -333
  501. package/src/Service.ts +0 -24
  502. package/src/Tag/ShadowRootTag.ts +0 -5
  503. package/src/Tag/SlotTag.ts +0 -5
  504. package/src/Tag/SlottedTag.ts +0 -17
  505. package/src/Tag/TagList.ts +0 -52
  506. package/src/Tag.ts +0 -838
  507. package/src/Types.ts +0 -34
  508. package/src/Validators.ts +0 -45
  509. package/src/attributes/AddClassIf.ts +0 -14
  510. package/src/attributes/Bind.ts +0 -144
  511. package/src/attributes/ComponentAttribute.ts +0 -23
  512. package/src/attributes/ControllerAttribute.ts +0 -50
  513. package/src/attributes/DisableIf.ts +0 -16
  514. package/src/attributes/Exec.ts +0 -32
  515. package/src/attributes/Format.ts +0 -18
  516. package/src/attributes/If.ts +0 -40
  517. package/src/attributes/JSONAttribute.ts +0 -40
  518. package/src/attributes/KeyAbstract.ts +0 -28
  519. package/src/attributes/KeyDown.ts +0 -10
  520. package/src/attributes/KeyUp.ts +0 -10
  521. package/src/attributes/LazyAttribute.ts +0 -30
  522. package/src/attributes/List.ts +0 -210
  523. package/src/attributes/ListItem.ts +0 -30
  524. package/src/attributes/ListItemModel.ts +0 -7
  525. package/src/attributes/ModelAttribute.ts +0 -8
  526. package/src/attributes/Name.ts +0 -16
  527. package/src/attributes/On.ts +0 -39
  528. package/src/attributes/PersistAttribute.ts +0 -83
  529. package/src/attributes/Referenced.ts +0 -5
  530. package/src/attributes/RootAttribute.ts +0 -24
  531. package/src/attributes/ScopeAttribute.ts +0 -40
  532. package/src/attributes/ScopeChange.ts +0 -35
  533. package/src/attributes/ScriptAttribute.ts +0 -9
  534. package/src/attributes/ServiceAttribute.ts +0 -13
  535. package/src/attributes/SetAttribute.ts +0 -44
  536. package/src/attributes/StandardAttribute.ts +0 -72
  537. package/src/attributes/StyleAttribute.ts +0 -90
  538. package/src/attributes/StyleVarAttribute.ts +0 -40
  539. package/src/attributes/TemplateAttribute.ts +0 -12
  540. package/src/attributes/TypeAttribute.ts +0 -23
  541. package/src/attributes/XHRAttribute.ts +0 -109
  542. package/src/attributes/_imports.ts +0 -32
  543. package/src/contrib/XHR.ts +0 -46
  544. package/src/contrib/_imports.ts +0 -1
  545. package/src/custom-elements.ts +0 -46
  546. package/src/demo/ServiceDemo.ts +0 -12
  547. package/src/demo.ts +0 -2
  548. package/src/helpers/DOMHelper.ts +0 -17
  549. package/src/helpers/ElementHelper.ts +0 -26
  550. package/src/helpers/VisionHelper.ts +0 -88
  551. package/src/helpers/decorators.ts +0 -11
  552. package/src/version.ts +0 -2
  553. package/src/vsn.ts +0 -106
  554. package/test/AST/ArithmeticAssignmentNode.spec.ts +0 -45
  555. package/test/AST/ClassNode.spec.ts +0 -175
  556. package/test/AST/FunctionNode.spec.ts +0 -51
  557. package/test/AST/StringFormatNode.spec.ts +0 -12
  558. package/test/AST/WASM.spec.ts +0 -63
  559. package/test/AST/XHRNode.spec.ts +0 -10
  560. package/test/AST.spec.ts +0 -353
  561. package/test/Controller.spec.ts +0 -42
  562. package/test/DOM.spec.ts +0 -63
  563. package/test/EventDispatcher.spec.ts +0 -191
  564. package/test/MessageList.spec.ts +0 -101
  565. package/test/Model/DataModel.spec.ts +0 -0
  566. package/test/Scope/DynamicScopeData.spec.ts +0 -141
  567. package/test/Scope/ScopeData.spec.ts +0 -58
  568. package/test/Scope/WrappedArray.spec.ts +0 -11
  569. package/test/Scope/properties/ArrayProperty.spec.ts +0 -23
  570. package/test/Scope.spec.ts +0 -69
  571. package/test/Tag/TagList.spec.ts +0 -21
  572. package/test/Tag.spec.ts +0 -4
  573. package/test/attributes/Bind.spec.ts +0 -174
  574. package/test/attributes/JSONAttribute.spec.ts +0 -91
  575. package/test/attributes/ListItem.spec.ts +0 -118
  576. package/test/attributes/ScopeAttribute.spec.ts +0 -35
  577. package/test/attributes/ServiceAttribute.spec.ts +0 -41
  578. package/test/attributes/SetAttribute.spec.ts +0 -55
  579. package/test/attributes/Styles.spec.ts +0 -43
  580. package/test/globals.js +0 -2
  581. package/tsconfig.base.json +0 -17
  582. package/tsconfig.json +0 -6
  583. package/tsconfig.test.json +0 -7
  584. package/types/vsn-component.d.ts +0 -5
  585. package/webpack.config.js +0 -48
  586. package/webpack.development.js +0 -6
  587. package/webpack.production.js +0 -5
package/src/AST/Node.ts DELETED
@@ -1,104 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {DOM} from "../DOM";
3
- import {Tag, TagState} from "../Tag";
4
- import {Token, TokenType, TreeNode} from "../AST";
5
- import {Modifiers} from "../Modifiers";
6
-
7
- export interface INodeMeta {
8
- [key: string]: string | number | boolean | null;
9
- }
10
-
11
- export abstract class Node implements TreeNode {
12
- protected requiresPrep: boolean = false;
13
- protected _isPreparationRequired: boolean;
14
- protected childNodes: Node[];
15
- protected nodeCache: {[key: string]: Node[]} = {};
16
- public readonly modifiers: Modifiers = new Modifiers();
17
-
18
- async evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any> {
19
- if (scope.isGarbage || (tag && tag.state === TagState.Deconstructed))
20
- return;
21
- return await this._evaluate(scope, dom, tag);
22
- }
23
-
24
- protected async _evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any> {}
25
-
26
- isPreparationRequired(): boolean {
27
- if (this.requiresPrep)
28
- return true;
29
-
30
- if (this._isPreparationRequired !== undefined)
31
- return this._isPreparationRequired;
32
-
33
- for (const node of this.getChildNodes()) {
34
- if (node.isPreparationRequired()) {
35
- this._isPreparationRequired = true;
36
- return true;
37
- }
38
- }
39
-
40
- return false;
41
- }
42
-
43
- async prepare(scope: Scope, dom: DOM, tag: Tag = null, meta: INodeMeta = null): Promise<void> {
44
- for (const node of this.getChildNodes()) {
45
- await node.prepare(scope, dom, tag, meta);
46
- }
47
- }
48
-
49
- async cleanup(scope: Scope, dom: DOM, tag: Tag) {
50
- for (const node of this.getChildNodes()) {
51
- await node.cleanup(scope, dom, tag);
52
- }
53
- }
54
-
55
- protected _getChildNodes(): Node[] {
56
- return [];
57
- }
58
-
59
- getChildNodes(): Node[] {
60
- if (this.childNodes === undefined) {
61
- this.childNodes = this._getChildNodes();
62
- }
63
- return this.childNodes;
64
- }
65
-
66
- findChildrenByType<T = Node>(t: any): T[] {
67
- return this.findChildrenByTypes([t]);
68
- }
69
-
70
- findChildrenByTypes<T = Node>(types: any[], cacheKey: string = null): T[] {
71
- if (cacheKey !== null && this.nodeCache[cacheKey])
72
- return this.nodeCache[cacheKey] as any;
73
-
74
- const nodes: T[] = [];
75
- for (const child of this.getChildNodes()) {
76
- for (const t of types) {
77
- if (child instanceof t)
78
- nodes.push(child as any as T);
79
- const childNodes: T[] = child.findChildrenByType<T>(t);
80
- nodes.push(...childNodes);
81
- }
82
- }
83
-
84
- if (cacheKey !== null)
85
- this.nodeCache[cacheKey] = nodes as any;
86
-
87
- return nodes;
88
- }
89
-
90
- hasModifier(modifier: string): boolean {
91
- return this.modifiers.has(modifier);
92
- }
93
-
94
- public static moveModifiers(from: Token[], to: Token[] = null): Token[] {
95
- to = to || [];
96
- if (from && from.length) {
97
- while (from[0] && from[0].type == TokenType.MODIFIER) {
98
- to.unshift(from.shift());
99
- }
100
- }
101
- return to;
102
- }
103
- }
104
-
@@ -1,41 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {DOM} from "../DOM";
3
- import {Tag} from "../Tag";
4
- import {Token, TokenType, Tree, TreeNode} from "../AST";
5
- import {Node} from "./Node";
6
-
7
- export class NotNode extends Node implements TreeNode {
8
- constructor(
9
- public readonly toFlip: Node
10
- ) {
11
- super();
12
- }
13
-
14
- protected async _evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
15
- const flipping = await this.toFlip.evaluate(scope, dom, tag);
16
- return !flipping;
17
- }
18
-
19
- protected _getChildNodes(): Node[] {
20
- return [
21
- this.toFlip
22
- ];
23
- }
24
-
25
- public static parse(lastNode, token, tokens: Token[]) {
26
- tokens.splice(0, 1); // Remove not operator
27
- let containedTokens;
28
- if (tokens[0].type === TokenType.L_PAREN) {
29
- containedTokens = Tree.getNextStatementTokens(tokens);
30
- } else {
31
- containedTokens = Tree.consumeTypes(tokens, [
32
- TokenType.BOOLEAN_LITERAL,
33
- TokenType.NUMBER_LITERAL,
34
- TokenType.STRING_LITERAL,
35
- TokenType.NAME,
36
- TokenType.PERIOD
37
- ]);
38
- }
39
- return new NotNode(Tree.processTokens(containedTokens));
40
- }
41
- }
@@ -1,14 +0,0 @@
1
- import {LiteralNode} from "./LiteralNode";
2
-
3
- export class NumberLiteralNode extends LiteralNode<number> {
4
- constructor(
5
- public readonly value: any
6
- ) {
7
- super(value);
8
- if (this.value.indexOf('.') > -1) {
9
- this.value = parseFloat(this.value)
10
- } else {
11
- this.value = parseInt(this.value);
12
- }
13
- }
14
- }
@@ -1,55 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {DOM} from "../DOM";
3
- import {Tag} from "../Tag";
4
- import {BlockType, Token, TokenType, Tree, TreeNode} from "../AST";
5
- import {Node} from "./Node";
6
-
7
- export class ObjectNode extends Node implements TreeNode {
8
- constructor(
9
- public readonly keys: Node[],
10
- public readonly values: Node[]
11
- ) {
12
- super();
13
- }
14
-
15
- protected _getChildNodes(): Node[] {
16
- return new Array(...this.values);
17
- }
18
-
19
- protected async _evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
20
- const obj: Scope = new Scope();
21
- for (let i = 0; i < this.values.length; i++) {
22
- const key = this.keys[i];
23
- const val = this.values[i];
24
- obj.set(await key.evaluate(scope, dom, tag), await val.evaluate(scope, dom, tag), true);
25
- }
26
- return obj;
27
- }
28
-
29
- public static match(tokens: Token[]): boolean {
30
- return tokens[0].type === TokenType.L_BRACE;
31
- }
32
-
33
- public static parse(lastNode, token, tokens: Token[]): ObjectNode {
34
- const valueTokens: Token[] = Tree.getNextStatementTokens(tokens);
35
- const keys: Node[] = [];
36
- const values: Node[] = [];
37
-
38
- while (valueTokens.length > 0) {
39
- const key: Token[] = Tree.getTokensUntil(valueTokens, TokenType.COLON, false);
40
- if (valueTokens[0].type !== TokenType.COLON)
41
- throw Error('Invalid object literal syntax. Expecting :');
42
- valueTokens.splice(0, 1); // Consume :
43
- const val: Token[] = Tree.getTokensUntil(valueTokens, TokenType.COMMA, true, false, true, {
44
- type: BlockType.STATEMENT,
45
- open: null,
46
- close: null,
47
- openCharacter: null,
48
- closeCharacter: null
49
- });
50
- keys.push(Tree.processTokens(key));
51
- values.push(Tree.processTokens(val));
52
- }
53
- return new ObjectNode(keys, values);
54
- }
55
- }
package/src/AST/OnNode.ts DELETED
@@ -1,23 +0,0 @@
1
- import {Token, TreeNode} from "../AST";
2
- import {FunctionNode} from "./FunctionNode";
3
- import {Scope} from "../Scope";
4
- import {DOM} from "../DOM";
5
- import {Tag} from "../Tag";
6
-
7
- export class OnNode extends FunctionNode implements TreeNode {
8
- public async prepare(scope: Scope, dom: DOM, tag: Tag = null, meta): Promise<void> {
9
- const classPrep = meta?.ClassNodePrepare; // Don't add event handler if we're in class prep
10
- if (tag && !classPrep) {
11
- const func = await this.getFunction(scope, dom, tag);
12
- tag.addEventHandler(this.name, this.modifiers, async (...args) => {
13
- await func(...args);
14
- await this.collectGarbage();
15
- }, this);
16
- }
17
- await super.prepare(scope, dom, tag, meta);
18
- }
19
-
20
- public static parse<T = OnNode>(lastNode, token, tokens: Token[]): T {
21
- return super.parse<T>(lastNode, token, tokens, OnNode);
22
- }
23
- }
@@ -1,27 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {DOM} from "../DOM";
3
- import {Tag} from "../Tag";
4
- import {TreeNode} from "../AST";
5
- import {Node} from "./Node";
6
- import {ScopeNodeAbstract} from "./ScopeNodeAbstract";
7
-
8
- export class RootScopeMemberNode<T = any> extends ScopeNodeAbstract implements TreeNode {
9
- constructor(
10
- public readonly name: TreeNode<string>
11
- ) {
12
- super();
13
- }
14
-
15
- protected _getChildNodes(): Node[] {
16
- return [
17
- this.name as Node
18
- ]
19
- }
20
-
21
- protected async _evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
22
- const name = await this.name.evaluate(scope, dom, tag);
23
- await this.applyModifiers(name, scope, dom, tag);
24
- const value = scope.get(name);
25
- return value instanceof Scope && value.wrapped || value;
26
- }
27
- }
@@ -1,63 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {DOM} from "../DOM";
3
- import {Tag} from "../Tag";
4
- import {TagList} from "../Tag/TagList";
5
- import {DOMObject} from "../DOM/DOMObject";
6
- import {TreeNode} from "../AST";
7
- import {Node} from "./Node";
8
- import {ElementQueryNode} from "./ElementQueryNode";
9
- import {ScopeNodeAbstract} from "./ScopeNodeAbstract";
10
- import {ObjectAccessor} from "../Scope/ObjectAccessor";
11
- import {ScopeAbstract} from "../Scope/ScopeAbstract";
12
-
13
- export class ScopeMemberNode extends ScopeNodeAbstract implements TreeNode {
14
- constructor(
15
- public readonly scope: TreeNode<Scope>,
16
- public readonly name: TreeNode<string>
17
- ) {
18
- super();
19
- }
20
-
21
- protected _getChildNodes(): Node[] {
22
- return [
23
- this.scope as Node,
24
- this.name as Node
25
- ]
26
- }
27
-
28
- protected async _evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
29
- let scopes = [];
30
- const values = [];
31
- if (this.scope instanceof ElementQueryNode) {
32
- const elements = await this.scope.evaluate(scope, dom, tag);
33
- if (this.scope.first) {
34
- scopes.push(elements);
35
- } else {
36
- scopes = elements;
37
- }
38
- } else {
39
- const evalScope = await this.scope.evaluate(scope, dom, tag);
40
- if (evalScope instanceof TagList) {
41
- scopes = evalScope;
42
- } else {
43
- scopes.push(evalScope);
44
- }
45
- }
46
-
47
- for (let parent of scopes) {
48
- if (parent instanceof DOMObject)
49
- parent = parent.scope;
50
- else if (parent && !(parent instanceof ScopeAbstract))
51
- parent = new ObjectAccessor(parent);
52
-
53
- if (!parent) {
54
- throw Error(`Cannot access "${await this.name.evaluate(scope, dom, tag)}" of undefined.`);
55
- }
56
- const name = await this.name.evaluate(scope, dom, tag);
57
- await this.applyModifiers(name, parent, dom, tag);
58
- const value: any = parent.get(name, false);
59
- values.push(value instanceof Scope && value.wrapped || value);
60
- }
61
- return values.length === 1 ? values[0] : values;
62
- }
63
- }
@@ -1,21 +0,0 @@
1
- import {Node} from "./Node";
2
- import {TreeNode} from "../AST";
3
- import {Scope} from "../Scope";
4
- import {DOM} from "../DOM";
5
- import {Tag} from "../Tag";
6
- import {Registry} from "../Registry";
7
-
8
- export abstract class ScopeNodeAbstract extends Node implements TreeNode {
9
- async applyModifiers(name: string, scope: Scope, dom: DOM, tag: Tag) {
10
- let type: string;
11
- for (const modifier of this.modifiers.iter) {
12
- // Check for type cast modifier
13
- if (Registry.instance.types.has(modifier.name)) {
14
- type = modifier.name;
15
- break;
16
- }
17
- }
18
- if (type && scope instanceof Scope)
19
- scope.setType(name, type);
20
- }
21
- }
@@ -1,43 +0,0 @@
1
- import {Node} from "./Node";
2
- import {Token, TokenType, Tree, TreeNode} from "../AST";
3
- import {Scope} from "../Scope";
4
- import {DOM} from "../DOM";
5
- import {Tag} from "../Tag";
6
-
7
- export class StringFormatNode extends Node implements TreeNode {
8
- constructor(
9
- public readonly segments: {[key:string]: Node},
10
- public readonly value: string
11
- ) {
12
- super();
13
- }
14
-
15
- public getChildNodes(): Node[] {
16
- return this.segments && Object.values(this.segments) || [];
17
- }
18
-
19
- protected async _evaluate(scope: Scope, dom: DOM, tag?: Tag) {
20
- let value = this.value;
21
- for (const key in this.segments) {
22
- const segment = this.segments[key];
23
- const segmentValue = await segment.evaluate(scope, dom, tag);
24
- value = value.replace(`\${${key}}`, segmentValue);
25
- }
26
- return value;
27
- }
28
-
29
- public static parse(node: Node, token: Token, tokens: Token[]): StringFormatNode {
30
- const segments = {};
31
- for (const segment of Array.from(new Set(token.value.match(/\$\{([^}]+)}/g)))) {
32
- const [, code] = segment.split(/\$\{|}/);
33
- const tree = new Tree(code);
34
- segments[code] = tree.root;
35
- }
36
- tokens.shift();
37
- return new StringFormatNode(segments, token.value);
38
- }
39
-
40
- public static match(tokens: Token[]) {
41
- return tokens[0].type === TokenType.STRING_FORMAT;
42
- }
43
- }
@@ -1,51 +0,0 @@
1
- import {LiteralNode} from "./LiteralNode";
2
-
3
- export class UnitLiteral {
4
- protected _amount: number;
5
- protected _unit: string;
6
-
7
- constructor(
8
- protected _value: any
9
- ) {
10
- this.value = this._value;
11
- }
12
-
13
- get amount(): number {
14
- return this._amount;
15
- }
16
-
17
- get unit(): string {
18
- return this._unit;
19
- }
20
-
21
- get value(): string {
22
- return `${this._amount}${this._unit}`;
23
- }
24
-
25
- set value(value: string) {
26
- if (value.indexOf('.') > -1) {
27
- this._amount = parseFloat(value)
28
- } else {
29
- this._amount = parseInt(value);
30
- }
31
-
32
- if (isNaN(this._amount))
33
- this._amount = 0;
34
-
35
- const unit = /[^\d.]+$/.exec(value);
36
- this._unit = unit && unit[0] || '';
37
- }
38
-
39
- public toString() {
40
- return this.value;
41
- }
42
- }
43
-
44
-
45
- export class UnitLiteralNode extends LiteralNode<UnitLiteral> {
46
- constructor(
47
- _value: any
48
- ) {
49
- super(new UnitLiteral(_value));
50
- }
51
- }
@@ -1,12 +0,0 @@
1
-
2
- export class WASMContext {
3
- public readonly names: string[];
4
- public addName(name: string): number {
5
- let index: number = this.names.indexOf(name);
6
- if (index == -1) {
7
- index = this.names.length;
8
- this.names.push(name);
9
- }
10
- return index;
11
- }
12
- }
@@ -1,67 +0,0 @@
1
- import {EExportType, encodeString, encodeVector, EValueType, functionType} from "../WASM";
2
- import {Section} from "./Section";
3
-
4
- export class FunctionSection extends Section {
5
- protected readonly variables: {[key: string]: number} = {};
6
- protected readonly params: EValueType[] = [];
7
- protected readonly results: EValueType[] = [];
8
- protected readonly code: number[] = [];
9
-
10
- constructor(
11
- protected readonly name: string
12
- ) {
13
- super();
14
- }
15
-
16
- public addParam(paramType: EValueType, name: string = null) {
17
- const index: number = this.params.length;
18
- name = name || `$param${index}`;
19
- this.variables[name] = index;
20
- this.params.push(paramType);
21
- }
22
-
23
- public addResult(paramType: EValueType) {
24
- this.results.push(paramType);
25
- }
26
-
27
- public addCode(code: number[]) {
28
- this.code.push(...code);
29
- }
30
-
31
- get sectionTypes(): number[] {
32
- return [
33
- functionType,
34
- this.paramCount, // Number of params
35
- ...this.paramTypes, // Param type(s)
36
- this.resultCount, // Number of results
37
- ...this.resultTypes, // result type(s)
38
- ];
39
- }
40
-
41
- get sectionExport(): number[] {
42
- return [
43
- ...encodeString(this.name),
44
- EExportType.func,
45
- ]
46
- }
47
-
48
- get sectionCode(): number[] {
49
- return encodeVector(this.code);
50
- }
51
-
52
- get paramCount(): number {
53
- return this.params.length;
54
- }
55
-
56
- get paramTypes(): number[] {
57
- return this.params;
58
- }
59
-
60
- get resultCount(): number {
61
- return this.results.length;
62
- }
63
-
64
- get resultTypes(): number[] {
65
- return this.results;
66
- }
67
- }
@@ -1,21 +0,0 @@
1
- import {EValueType} from "../WASM";
2
- import {FunctionSection} from "./Function";
3
-
4
- export enum EMemoryType {
5
- i32,
6
- i64,
7
- f32,
8
- f64,
9
- i32Array,
10
- i64Array,
11
- f32Array,
12
- f64Array
13
- }
14
-
15
- export const memoryVariableIndex = new FunctionSection("memoryVariableIndex");
16
- memoryVariableIndex.addParam(EValueType.i32);
17
- memoryVariableIndex.addParam(EValueType.i32);
18
- memoryVariableIndex.addResult(EValueType.i32);
19
- memoryVariableIndex.addCode([
20
-
21
- ]);
@@ -1,6 +0,0 @@
1
-
2
- export abstract class Section {
3
- public readonly fYeah = true;
4
- abstract get sectionTypes(): number[];
5
- abstract get sectionExport(): number[];
6
- }