@velarscript/web 0.31.0 → 0.32.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 (385) hide show
  1. package/README.md +1 -1
  2. package/dist/analysis/calls/intrinsics/config.d.ts +10 -0
  3. package/dist/analysis/calls/intrinsics/config.d.ts.map +1 -0
  4. package/dist/analysis/calls/intrinsics/config.js +19 -0
  5. package/dist/analysis/calls/intrinsics/config.js.map +1 -0
  6. package/dist/analysis/calls/intrinsics/forms.d.ts +10 -0
  7. package/dist/analysis/calls/intrinsics/forms.d.ts.map +1 -0
  8. package/dist/analysis/calls/intrinsics/forms.js +38 -0
  9. package/dist/analysis/calls/intrinsics/forms.js.map +1 -0
  10. package/dist/analysis/calls/intrinsics/http.d.ts +10 -0
  11. package/dist/analysis/calls/intrinsics/http.d.ts.map +1 -0
  12. package/dist/analysis/calls/intrinsics/http.js +37 -0
  13. package/dist/analysis/calls/intrinsics/http.js.map +1 -0
  14. package/dist/analysis/calls/intrinsics/reactive.d.ts +10 -0
  15. package/dist/analysis/calls/intrinsics/reactive.d.ts.map +1 -0
  16. package/dist/analysis/calls/intrinsics/reactive.js +30 -0
  17. package/dist/analysis/calls/intrinsics/reactive.js.map +1 -0
  18. package/dist/analysis/calls/intrinsics/storage.d.ts +12 -0
  19. package/dist/analysis/calls/intrinsics/storage.d.ts.map +1 -0
  20. package/dist/analysis/calls/intrinsics/storage.js +86 -0
  21. package/dist/analysis/calls/intrinsics/storage.js.map +1 -0
  22. package/dist/analysis/calls/intrinsics/web.d.ts +10 -0
  23. package/dist/analysis/calls/intrinsics/web.d.ts.map +1 -0
  24. package/dist/analysis/calls/intrinsics/web.js +100 -0
  25. package/dist/analysis/calls/intrinsics/web.js.map +1 -0
  26. package/dist/analysis/calls/intrinsics.d.ts +13 -0
  27. package/dist/analysis/calls/intrinsics.d.ts.map +1 -0
  28. package/dist/analysis/calls/intrinsics.js +31 -0
  29. package/dist/analysis/calls/intrinsics.js.map +1 -0
  30. package/dist/analysis/components/contracts.d.ts +19 -0
  31. package/dist/analysis/components/contracts.d.ts.map +1 -0
  32. package/dist/analysis/components/contracts.js +83 -0
  33. package/dist/analysis/components/contracts.js.map +1 -0
  34. package/dist/analysis/components/declaration.d.ts +4 -0
  35. package/dist/analysis/components/declaration.d.ts.map +1 -0
  36. package/dist/analysis/components/declaration.js +163 -0
  37. package/dist/analysis/components/declaration.js.map +1 -0
  38. package/dist/analysis/components/host.d.ts +61 -0
  39. package/dist/analysis/components/host.d.ts.map +1 -0
  40. package/dist/analysis/components/host.js +22 -0
  41. package/dist/analysis/components/host.js.map +1 -0
  42. package/dist/analysis/components/lifecycle.d.ts +22 -0
  43. package/dist/analysis/components/lifecycle.d.ts.map +1 -0
  44. package/dist/analysis/components/lifecycle.js +33 -0
  45. package/dist/analysis/components/lifecycle.js.map +1 -0
  46. package/dist/analysis/components/ownership.d.ts +74 -0
  47. package/dist/analysis/components/ownership.d.ts.map +1 -0
  48. package/dist/analysis/components/ownership.js +106 -0
  49. package/dist/analysis/components/ownership.js.map +1 -0
  50. package/dist/analysis/declarations.d.ts +99 -0
  51. package/dist/analysis/declarations.d.ts.map +1 -0
  52. package/dist/analysis/declarations.js +176 -0
  53. package/dist/analysis/declarations.js.map +1 -0
  54. package/dist/analysis/inference.d.ts +67 -0
  55. package/dist/analysis/inference.d.ts.map +1 -0
  56. package/dist/analysis/inference.js +236 -0
  57. package/dist/analysis/inference.js.map +1 -0
  58. package/dist/analysis/jsx/attributes.d.ts +103 -0
  59. package/dist/analysis/jsx/attributes.d.ts.map +1 -0
  60. package/dist/analysis/jsx/attributes.js +601 -0
  61. package/dist/analysis/jsx/attributes.js.map +1 -0
  62. package/dist/analysis/jsx/elements.d.ts +17 -0
  63. package/dist/analysis/jsx/elements.d.ts.map +1 -0
  64. package/dist/analysis/jsx/elements.js +213 -0
  65. package/dist/analysis/jsx/elements.js.map +1 -0
  66. package/dist/analysis/jsx/host.d.ts +61 -0
  67. package/dist/analysis/jsx/host.d.ts.map +1 -0
  68. package/dist/analysis/jsx/host.js +15 -0
  69. package/dist/analysis/jsx/host.js.map +1 -0
  70. package/dist/analysis/jsx/keys.d.ts +15 -0
  71. package/dist/analysis/jsx/keys.d.ts.map +1 -0
  72. package/dist/analysis/jsx/keys.js +67 -0
  73. package/dist/analysis/jsx/keys.js.map +1 -0
  74. package/dist/analysis/jsx/security.d.ts +29 -0
  75. package/dist/analysis/jsx/security.d.ts.map +1 -0
  76. package/dist/analysis/jsx/security.js +61 -0
  77. package/dist/analysis/jsx/security.js.map +1 -0
  78. package/dist/analysis/jsx-detection.d.ts +49 -0
  79. package/dist/analysis/jsx-detection.d.ts.map +1 -0
  80. package/dist/analysis/jsx-detection.js +196 -0
  81. package/dist/analysis/jsx-detection.js.map +1 -0
  82. package/dist/analysis/keyed-rebuild.d.ts +148 -0
  83. package/dist/analysis/keyed-rebuild.d.ts.map +1 -0
  84. package/dist/analysis/keyed-rebuild.js +299 -0
  85. package/dist/analysis/keyed-rebuild.js.map +1 -0
  86. package/dist/analysis/keyframes-analysis.d.ts +6 -0
  87. package/dist/analysis/keyframes-analysis.d.ts.map +1 -0
  88. package/dist/analysis/keyframes-analysis.js +79 -0
  89. package/dist/analysis/keyframes-analysis.js.map +1 -0
  90. package/dist/analysis/look/builders.d.ts +29 -0
  91. package/dist/analysis/look/builders.d.ts.map +1 -0
  92. package/dist/analysis/look/builders.js +168 -0
  93. package/dist/analysis/look/builders.js.map +1 -0
  94. package/dist/analysis/look/conditions.d.ts +13 -0
  95. package/dist/analysis/look/conditions.d.ts.map +1 -0
  96. package/dist/analysis/look/conditions.js +84 -0
  97. package/dist/analysis/look/conditions.js.map +1 -0
  98. package/dist/analysis/look/edits.d.ts +25 -0
  99. package/dist/analysis/look/edits.d.ts.map +1 -0
  100. package/dist/analysis/look/edits.js +57 -0
  101. package/dist/analysis/look/edits.js.map +1 -0
  102. package/dist/analysis/look/entries.d.ts +56 -0
  103. package/dist/analysis/look/entries.d.ts.map +1 -0
  104. package/dist/analysis/look/entries.js +223 -0
  105. package/dist/analysis/look/entries.js.map +1 -0
  106. package/dist/analysis/look/host.d.ts +47 -0
  107. package/dist/analysis/look/host.d.ts.map +1 -0
  108. package/dist/analysis/look/host.js +16 -0
  109. package/dist/analysis/look/host.js.map +1 -0
  110. package/dist/analysis/look/tokens.d.ts +75 -0
  111. package/dist/analysis/look/tokens.d.ts.map +1 -0
  112. package/dist/analysis/look/tokens.js +151 -0
  113. package/dist/analysis/look/tokens.js.map +1 -0
  114. package/dist/analysis/look/values.d.ts +45 -0
  115. package/dist/analysis/look/values.d.ts.map +1 -0
  116. package/dist/analysis/look/values.js +148 -0
  117. package/dist/analysis/look/values.js.map +1 -0
  118. package/dist/analysis/look-conditions.d.ts +47 -0
  119. package/dist/analysis/look-conditions.d.ts.map +1 -0
  120. package/dist/analysis/look-conditions.js +157 -0
  121. package/dist/analysis/look-conditions.js.map +1 -0
  122. package/dist/analysis/look-sites.d.ts +54 -0
  123. package/dist/analysis/look-sites.d.ts.map +1 -0
  124. package/dist/analysis/look-sites.js +104 -0
  125. package/dist/analysis/look-sites.js.map +1 -0
  126. package/dist/analysis/look-vocabulary-guidance.d.ts +76 -0
  127. package/dist/analysis/look-vocabulary-guidance.d.ts.map +1 -0
  128. package/dist/analysis/look-vocabulary-guidance.js +338 -0
  129. package/dist/analysis/look-vocabulary-guidance.js.map +1 -0
  130. package/dist/analysis/media-conditions.d.ts +33 -0
  131. package/dist/analysis/media-conditions.d.ts.map +1 -0
  132. package/dist/analysis/media-conditions.js +92 -0
  133. package/dist/analysis/media-conditions.js.map +1 -0
  134. package/dist/analysis/program-passes.d.ts +106 -0
  135. package/dist/analysis/program-passes.d.ts.map +1 -0
  136. package/dist/analysis/program-passes.js +149 -0
  137. package/dist/analysis/program-passes.js.map +1 -0
  138. package/dist/analysis/reactivity/bindings.d.ts +37 -0
  139. package/dist/analysis/reactivity/bindings.d.ts.map +1 -0
  140. package/dist/analysis/reactivity/bindings.js +88 -0
  141. package/dist/analysis/reactivity/bindings.js.map +1 -0
  142. package/dist/analysis/reactivity/derived.d.ts +39 -0
  143. package/dist/analysis/reactivity/derived.d.ts.map +1 -0
  144. package/dist/analysis/reactivity/derived.js +80 -0
  145. package/dist/analysis/reactivity/derived.js.map +1 -0
  146. package/dist/analysis/reactivity/host.d.ts +38 -0
  147. package/dist/analysis/reactivity/host.d.ts.map +1 -0
  148. package/dist/analysis/reactivity/host.js +14 -0
  149. package/dist/analysis/reactivity/host.js.map +1 -0
  150. package/dist/analysis/reactivity/retired-accessors.d.ts +82 -0
  151. package/dist/analysis/reactivity/retired-accessors.d.ts.map +1 -0
  152. package/dist/analysis/reactivity/retired-accessors.js +118 -0
  153. package/dist/analysis/reactivity/retired-accessors.js.map +1 -0
  154. package/dist/analysis/renderable.d.ts +47 -0
  155. package/dist/analysis/renderable.d.ts.map +1 -0
  156. package/dist/analysis/renderable.js +105 -0
  157. package/dist/analysis/renderable.js.map +1 -0
  158. package/dist/analysis/routes.d.ts +64 -0
  159. package/dist/analysis/routes.d.ts.map +1 -0
  160. package/dist/analysis/routes.js +182 -0
  161. package/dist/analysis/routes.js.map +1 -0
  162. package/dist/analysis/url-attributes.d.ts +12 -0
  163. package/dist/analysis/url-attributes.d.ts.map +1 -0
  164. package/dist/analysis/url-attributes.js +48 -0
  165. package/dist/analysis/url-attributes.js.map +1 -0
  166. package/dist/analysis/watch-cycles.d.ts +102 -0
  167. package/dist/analysis/watch-cycles.d.ts.map +1 -1
  168. package/dist/analysis/watch-cycles.js +240 -1
  169. package/dist/analysis/watch-cycles.js.map +1 -1
  170. package/dist/analysis/watch-subject.d.ts +45 -0
  171. package/dist/analysis/watch-subject.d.ts.map +1 -0
  172. package/dist/analysis/watch-subject.js +272 -0
  173. package/dist/analysis/watch-subject.js.map +1 -0
  174. package/dist/analysis/web-types.d.ts +27 -0
  175. package/dist/analysis/web-types.d.ts.map +1 -0
  176. package/dist/analysis/web-types.js +170 -0
  177. package/dist/analysis/web-types.js.map +1 -0
  178. package/dist/analyzer.d.ts +18 -617
  179. package/dist/analyzer.d.ts.map +1 -1
  180. package/dist/analyzer.js +208 -4853
  181. package/dist/analyzer.js.map +1 -1
  182. package/dist/compiler.d.ts +20 -0
  183. package/dist/compiler.d.ts.map +1 -1
  184. package/dist/compiler.js +29 -864
  185. package/dist/compiler.js.map +1 -1
  186. package/dist/documentation.d.ts +28 -0
  187. package/dist/documentation.d.ts.map +1 -0
  188. package/dist/documentation.js +67 -0
  189. package/dist/documentation.js.map +1 -0
  190. package/dist/editor/completions.d.ts +12 -0
  191. package/dist/editor/completions.d.ts.map +1 -0
  192. package/dist/editor/completions.js +6 -0
  193. package/dist/editor/completions.js.map +1 -0
  194. package/dist/editor/jsx-completion.d.ts +12 -0
  195. package/dist/editor/jsx-completion.d.ts.map +1 -0
  196. package/dist/editor/jsx-completion.js +137 -0
  197. package/dist/editor/jsx-completion.js.map +1 -0
  198. package/dist/editor/look-completion.d.ts +29 -0
  199. package/dist/editor/look-completion.d.ts.map +1 -0
  200. package/dist/editor/look-completion.js +159 -0
  201. package/dist/editor/look-completion.js.map +1 -0
  202. package/dist/editor.d.ts.map +1 -1
  203. package/dist/editor.js +12 -288
  204. package/dist/editor.js.map +1 -1
  205. package/dist/emit/components.d.ts +33 -0
  206. package/dist/emit/components.d.ts.map +1 -0
  207. package/dist/emit/components.js +135 -0
  208. package/dist/emit/components.js.map +1 -0
  209. package/dist/emit/jsx.d.ts +57 -0
  210. package/dist/emit/jsx.d.ts.map +1 -0
  211. package/dist/emit/jsx.js +384 -0
  212. package/dist/emit/jsx.js.map +1 -0
  213. package/dist/emit/look-css.d.ts +44 -0
  214. package/dist/emit/look-css.d.ts.map +1 -0
  215. package/dist/emit/look-css.js +177 -0
  216. package/dist/emit/look-css.js.map +1 -0
  217. package/dist/emit/look.d.ts +39 -0
  218. package/dist/emit/look.d.ts.map +1 -0
  219. package/dist/emit/look.js +218 -0
  220. package/dist/emit/look.js.map +1 -0
  221. package/dist/emit/runtime-imports.d.ts +40 -0
  222. package/dist/emit/runtime-imports.d.ts.map +1 -0
  223. package/dist/emit/runtime-imports.js +184 -0
  224. package/dist/emit/runtime-imports.js.map +1 -0
  225. package/dist/emitter.d.ts +15 -68
  226. package/dist/emitter.d.ts.map +1 -1
  227. package/dist/emitter.js +79 -1008
  228. package/dist/emitter.js.map +1 -1
  229. package/dist/look/animation.d.ts +7 -0
  230. package/dist/look/animation.d.ts.map +1 -0
  231. package/dist/look/animation.js +13 -0
  232. package/dist/look/animation.js.map +1 -0
  233. package/dist/look/builders.d.ts +35 -0
  234. package/dist/look/builders.d.ts.map +1 -0
  235. package/dist/look/builders.js +74 -0
  236. package/dist/look/builders.js.map +1 -0
  237. package/dist/look/css-functions.d.ts +28 -0
  238. package/dist/look/css-functions.d.ts.map +1 -0
  239. package/dist/look/css-functions.js +54 -0
  240. package/dist/look/css-functions.js.map +1 -0
  241. package/dist/look/keyword-sets.d.ts +41 -0
  242. package/dist/look/keyword-sets.d.ts.map +1 -0
  243. package/dist/look/keyword-sets.js +117 -0
  244. package/dist/look/keyword-sets.js.map +1 -0
  245. package/dist/look/keywords.d.ts +55 -0
  246. package/dist/look/keywords.d.ts.map +1 -0
  247. package/dist/look/keywords.js +387 -0
  248. package/dist/look/keywords.js.map +1 -0
  249. package/dist/look/media.d.ts +19 -0
  250. package/dist/look/media.d.ts.map +1 -0
  251. package/dist/look/media.js +27 -0
  252. package/dist/look/media.js.map +1 -0
  253. package/dist/look/naming.d.ts +9 -0
  254. package/dist/look/naming.d.ts.map +1 -0
  255. package/dist/look/naming.js +45 -0
  256. package/dist/look/naming.js.map +1 -0
  257. package/dist/look/properties.d.ts +16 -0
  258. package/dist/look/properties.d.ts.map +1 -0
  259. package/dist/look/properties.js +52 -0
  260. package/dist/look/properties.js.map +1 -0
  261. package/dist/look/shorthands.d.ts +25 -0
  262. package/dist/look/shorthands.d.ts.map +1 -0
  263. package/dist/look/shorthands.js +130 -0
  264. package/dist/look/shorthands.js.map +1 -0
  265. package/dist/look/tokens.d.ts +38 -0
  266. package/dist/look/tokens.d.ts.map +1 -0
  267. package/dist/look/tokens.js +59 -0
  268. package/dist/look/tokens.js.map +1 -0
  269. package/dist/look/units.d.ts +24 -0
  270. package/dist/look/units.d.ts.map +1 -0
  271. package/dist/look/units.js +33 -0
  272. package/dist/look/units.js.map +1 -0
  273. package/dist/look.d.ts +32 -227
  274. package/dist/look.d.ts.map +1 -1
  275. package/dist/look.js +28 -933
  276. package/dist/look.js.map +1 -1
  277. package/dist/module-roster.d.ts +16 -0
  278. package/dist/module-roster.d.ts.map +1 -0
  279. package/dist/module-roster.js +28 -0
  280. package/dist/module-roster.js.map +1 -0
  281. package/dist/modules/app.d.ts +9 -0
  282. package/dist/modules/app.d.ts.map +1 -0
  283. package/dist/modules/app.js +20 -0
  284. package/dist/modules/app.js.map +1 -0
  285. package/dist/modules/browser-test.d.ts +9 -0
  286. package/dist/modules/browser-test.d.ts.map +1 -0
  287. package/dist/modules/browser-test.js +67 -0
  288. package/dist/modules/browser-test.js.map +1 -0
  289. package/dist/modules/browser.d.ts +10 -0
  290. package/dist/modules/browser.d.ts.map +1 -0
  291. package/dist/modules/browser.js +89 -0
  292. package/dist/modules/browser.js.map +1 -0
  293. package/dist/modules/config.d.ts +9 -0
  294. package/dist/modules/config.d.ts.map +1 -0
  295. package/dist/modules/config.js +14 -0
  296. package/dist/modules/config.js.map +1 -0
  297. package/dist/modules/files.d.ts +9 -0
  298. package/dist/modules/files.d.ts.map +1 -0
  299. package/dist/modules/files.js +16 -0
  300. package/dist/modules/files.js.map +1 -0
  301. package/dist/modules/forms.d.ts +9 -0
  302. package/dist/modules/forms.d.ts.map +1 -0
  303. package/dist/modules/forms.js +26 -0
  304. package/dist/modules/forms.js.map +1 -0
  305. package/dist/modules/http.d.ts +9 -0
  306. package/dist/modules/http.d.ts.map +1 -0
  307. package/dist/modules/http.js +127 -0
  308. package/dist/modules/http.js.map +1 -0
  309. package/dist/modules/look.d.ts +9 -0
  310. package/dist/modules/look.d.ts.map +1 -0
  311. package/dist/modules/look.js +58 -0
  312. package/dist/modules/look.js.map +1 -0
  313. package/dist/modules/realtime.d.ts +9 -0
  314. package/dist/modules/realtime.d.ts.map +1 -0
  315. package/dist/modules/realtime.js +163 -0
  316. package/dist/modules/realtime.js.map +1 -0
  317. package/dist/modules/storage.d.ts +9 -0
  318. package/dist/modules/storage.d.ts.map +1 -0
  319. package/dist/modules/storage.js +59 -0
  320. package/dist/modules/storage.js.map +1 -0
  321. package/dist/modules/types.d.ts +78 -0
  322. package/dist/modules/types.d.ts.map +1 -0
  323. package/dist/modules/types.js +154 -0
  324. package/dist/modules/types.js.map +1 -0
  325. package/dist/modules/web.d.ts +9 -0
  326. package/dist/modules/web.d.ts.map +1 -0
  327. package/dist/modules/web.js +63 -0
  328. package/dist/modules/web.js.map +1 -0
  329. package/dist/modules/websocket.d.ts +11 -0
  330. package/dist/modules/websocket.d.ts.map +1 -0
  331. package/dist/modules/websocket.js +75 -0
  332. package/dist/modules/websocket.js.map +1 -0
  333. package/dist/parser/expressions/jsx.d.ts +17 -0
  334. package/dist/parser/expressions/jsx.d.ts.map +1 -0
  335. package/dist/parser/expressions/jsx.js +43 -0
  336. package/dist/parser/expressions/jsx.js.map +1 -0
  337. package/dist/parser/expressions/keyframes.d.ts +15 -0
  338. package/dist/parser/expressions/keyframes.d.ts.map +1 -0
  339. package/dist/parser/expressions/keyframes.js +33 -0
  340. package/dist/parser/expressions/keyframes.js.map +1 -0
  341. package/dist/parser/expressions/look.d.ts +16 -0
  342. package/dist/parser/expressions/look.d.ts.map +1 -0
  343. package/dist/parser/expressions/look.js +37 -0
  344. package/dist/parser/expressions/look.js.map +1 -0
  345. package/dist/parser/expressions/visual-block.d.ts +17 -0
  346. package/dist/parser/expressions/visual-block.d.ts.map +1 -0
  347. package/dist/parser/expressions/visual-block.js +21 -0
  348. package/dist/parser/expressions/visual-block.js.map +1 -0
  349. package/dist/parser/keyframes-source.d.ts +24 -0
  350. package/dist/parser/keyframes-source.d.ts.map +1 -0
  351. package/dist/parser/keyframes-source.js +133 -0
  352. package/dist/parser/keyframes-source.js.map +1 -0
  353. package/dist/parser/look-source.d.ts +25 -0
  354. package/dist/parser/look-source.d.ts.map +1 -0
  355. package/dist/parser/look-source.js +189 -0
  356. package/dist/parser/look-source.js.map +1 -0
  357. package/dist/parser/spans.d.ts +24 -0
  358. package/dist/parser/spans.d.ts.map +1 -0
  359. package/dist/parser/spans.js +113 -0
  360. package/dist/parser/spans.js.map +1 -0
  361. package/dist/parser/statements/components.d.ts +37 -0
  362. package/dist/parser/statements/components.d.ts.map +1 -0
  363. package/dist/parser/statements/components.js +185 -0
  364. package/dist/parser/statements/components.js.map +1 -0
  365. package/dist/parser/statements/heads.d.ts +38 -0
  366. package/dist/parser/statements/heads.d.ts.map +1 -0
  367. package/dist/parser/statements/heads.js +55 -0
  368. package/dist/parser/statements/heads.js.map +1 -0
  369. package/dist/parser/statements/imports.d.ts +9 -0
  370. package/dist/parser/statements/imports.d.ts.map +1 -0
  371. package/dist/parser/statements/imports.js +31 -0
  372. package/dist/parser/statements/imports.js.map +1 -0
  373. package/dist/parser/statements/reactive.d.ts +31 -0
  374. package/dist/parser/statements/reactive.d.ts.map +1 -0
  375. package/dist/parser/statements/reactive.js +68 -0
  376. package/dist/parser/statements/reactive.js.map +1 -0
  377. package/dist/parser/statements/unsafe-css.d.ts +21 -0
  378. package/dist/parser/statements/unsafe-css.d.ts.map +1 -0
  379. package/dist/parser/statements/unsafe-css.js +42 -0
  380. package/dist/parser/statements/unsafe-css.js.map +1 -0
  381. package/dist/parser.d.ts +37 -50
  382. package/dist/parser.d.ts.map +1 -1
  383. package/dist/parser.js +98 -882
  384. package/dist/parser.js.map +1 -1
  385. package/package.json +2 -2
@@ -0,0 +1,184 @@
1
+ import { VELAR_ERROR_NORMALIZATION_MODULE, VELAR_RUNTIME_REGISTRY_KEY } from "@velarscript/compiler/extension";
2
+ import {} from "../ast.js";
3
+ import { cssPropertyName, LOOK_PROPERTY_KEYWORDS } from "../look.js";
4
+ import { CSS_STRING_RUNTIME_BODY, LOOK_ARITHMETIC_RUNTIME, WEB_FILE_TYPE_RUNTIME, WEB_LOCAL_REACTIVE_BRIDGE_RUNTIME, WEB_LOCAL_REACTIVE_COLLECTION_BRIDGE_RUNTIME, WEB_RUNTIME_BODY, WEB_RUNTIME_FOUNDATION, WEB_RUNTIME_FOUNDATION_SHARED_ERROR, } from "../runtime-sources.generated.js";
5
+ export function emitTypeCheck(host, type, value, state) {
6
+ if (type.kind === "named") {
7
+ if (type.name === "Event" || type.name === "KeyboardEvent" || type.name === "PointerEvent" || type.name === "InputEvent" || type.name === "CompositionEvent" || type.name === "ClipboardEvent") {
8
+ return `(typeof ${type.name} !== "undefined" && ${value} instanceof ${type.name})`;
9
+ }
10
+ if (type.name === "Element")
11
+ return `(typeof Element !== "undefined" && ${value} instanceof Element)`;
12
+ if (type.name === "CanvasElement")
13
+ return `(typeof HTMLCanvasElement !== "undefined" && ${value} instanceof HTMLCanvasElement)`;
14
+ if (type.name === "DialogElement")
15
+ return `(typeof HTMLDialogElement !== "undefined" && ${value} instanceof HTMLDialogElement)`;
16
+ if (type.name === "InputElement") {
17
+ return `((typeof HTMLInputElement !== "undefined" && ${value} instanceof HTMLInputElement) || (typeof HTMLSelectElement !== "undefined" && ${value} instanceof HTMLSelectElement) || (typeof HTMLTextAreaElement !== "undefined" && ${value} instanceof HTMLTextAreaElement))`;
18
+ }
19
+ if (type.name === "TextAreaElement")
20
+ return `(typeof HTMLTextAreaElement !== "undefined" && ${value} instanceof HTMLTextAreaElement)`;
21
+ if (type.name === "Blob")
22
+ return `(typeof Blob !== "undefined" && ${value} instanceof Blob)`;
23
+ if (type.name === "File") {
24
+ host.needsFileTypeHelper = true;
25
+ return `__velarFileTypeIs(${value})`;
26
+ }
27
+ }
28
+ return host.baseTypeCheck(type, value, state);
29
+ }
30
+ export function emitIsCheck(host, type, value) {
31
+ if (type.kind === "named" && (type.name === "Event"
32
+ || type.name === "KeyboardEvent"
33
+ || type.name === "PointerEvent"
34
+ || type.name === "InputEvent"
35
+ || type.name === "CompositionEvent"
36
+ || type.name === "ClipboardEvent"
37
+ || type.name === "Element"
38
+ || type.name === "CanvasElement"
39
+ || type.name === "DialogElement"
40
+ || type.name === "InputElement"
41
+ || type.name === "TextAreaElement"
42
+ || type.name === "Blob"
43
+ || type.name === "File"))
44
+ return emitTypeCheck(host, type, value, "undefined");
45
+ return host.baseIsCheck(type, value);
46
+ }
47
+ export function additionalHelpers(host) {
48
+ return [
49
+ ...(host.needsLookArithmeticRuntime ? [LOOK_ARITHMETIC_RUNTIME] : []),
50
+ ...(host.webOutput ? webRuntimeHelpers(host) : []),
51
+ ...(host.needsFileTypeHelper ? [WEB_FILE_TYPE_RUNTIME] : []),
52
+ ];
53
+ }
54
+ function webRuntimeHelpers(host) {
55
+ if (!host.usesSharedRuntimeModules())
56
+ return [webRuntime(WEB_RUNTIME_FOUNDATION, lookKeywordTable(host))];
57
+ host.requireRuntimeModule(VELAR_ERROR_NORMALIZATION_MODULE);
58
+ return [
59
+ `import { errorApply as __velarErrorApply, errorCode as __velarErrorCode, isError as __velarIsError, normalizeError as __velarNormalizeError } from ${JSON.stringify(VELAR_ERROR_NORMALIZATION_MODULE)};`,
60
+ webRuntime(WEB_RUNTIME_FOUNDATION_SHARED_ERROR, lookKeywordTable(host)),
61
+ ];
62
+ }
63
+ /**
64
+ * The closed keyword sets of the properties this module styles, so a value
65
+ * the compiler could not read is still checked before it reaches the DOM.
66
+ * Only the properties written here ship: the whole table is 17 KiB, and a
67
+ * module pays for the properties it uses.
68
+ */
69
+ function lookKeywordTable(host) {
70
+ const entries = [...host.lookKeywordProperties].sort()
71
+ .map((name) => ` ${JSON.stringify(cssPropertyName(name))}: ${JSON.stringify([...LOOK_PROPERTY_KEYWORDS.get(name) ?? []])},`);
72
+ return entries.length === 0
73
+ ? "const __velarLookKeywords = { __proto__: null };"
74
+ : `const __velarLookKeywords = {\n __proto__: null,\n${entries.join("\n")}\n};`;
75
+ }
76
+ export function reactiveBridgeHelpers(host, needsJavaScriptCallBoundary, needsCollections, usedIdentifiers) {
77
+ if (host.usesSharedRuntimeModules())
78
+ return host.baseReactiveBridgeHelpers(needsJavaScriptCallBoundary, needsCollections, usedIdentifiers);
79
+ if (!host.webOutput)
80
+ return host.baseReactiveBridgeHelpers(needsJavaScriptCallBoundary, needsCollections, usedIdentifiers);
81
+ if (!needsJavaScriptCallBoundary && !needsCollections)
82
+ return [];
83
+ return [WEB_LOCAL_REACTIVE_BRIDGE_RUNTIME, ...(needsCollections ? [WEB_LOCAL_REACTIVE_COLLECTION_BRIDGE_RUNTIME] : [])];
84
+ }
85
+ export function includesErrorNormalizationRuntime(host) {
86
+ return host.webOutput;
87
+ }
88
+ // Web detached tasks report through the velar/app error chain with the
89
+ // distinct "detached" phase. The runtime registry is looked up at report
90
+ // time (module-level tasks can finish before or after the application
91
+ // runtime installs); the captured microtask throw keeps a failure loud when
92
+ // no runtime exists yet, and 'unhandled: true' keeps it loud when no
93
+ // onError handler is installed. Host operations are captured at module
94
+ // initialization, matching the owned-callback discipline.
95
+ export function detachedTaskHelpers(host) {
96
+ // A module with no Web syntax emits no Web runtime, so it must keep Core's
97
+ // host reporting: the browser path would route a detached failure through a
98
+ // runtime registry that never gets installed and end in a microtask throw,
99
+ // which under `velar test` kills the whole Node test process.
100
+ if (!host.webOutput)
101
+ return host.baseDetachedTaskHelpers();
102
+ return [[
103
+ `const __velarDetachedRegistryKey = Symbol.for(${JSON.stringify(VELAR_RUNTIME_REGISTRY_KEY)});`,
104
+ "const __velarDetachedPromiseThen = globalThis.Promise.prototype.then;",
105
+ "const __velarDetachedApply = Reflect.apply;",
106
+ "const __velarDetachedEnqueue = queueMicrotask;",
107
+ "function __velarDetachedReport(failure) {",
108
+ " const error = __velarNormalizeError(failure);",
109
+ " const runtime = globalThis[__velarDetachedRegistryKey];",
110
+ " if (runtime && typeof runtime.report === \"function\") {",
111
+ " // An action reports its own failure once, in the action phase with",
112
+ " // the action's name as detail. The detached observer of that same",
113
+ " // rejection must not report it a second time.",
114
+ " try {",
115
+ " if (__velarIsError(failure) && __velarGraphWeakSetRemove(runtime.actionFailures, failure)) return;",
116
+ " } catch {}",
117
+ " runtime.report(error, { phase: \"detached\", detail: \"\", unhandled: true });",
118
+ " return;",
119
+ " }",
120
+ " __velarDetachedApply(__velarDetachedEnqueue, globalThis, [() => { throw error; }]);",
121
+ "}",
122
+ "function __velarDetachedTask(task) {",
123
+ // D114 W2: the one place a detached Promise enters the Web runtime, and
124
+ // so the one place the reactive window can be told that an observer run
125
+ // started asynchronous work. The runtime foundation decides whether a run
126
+ // is in progress; this site only reports the fact.
127
+ " __velarNoteAsyncWork();",
128
+ " __velarDetachedApply(__velarDetachedPromiseThen, task, [null, __velarDetachedReport]);",
129
+ " return null;",
130
+ "}",
131
+ ].join("\n")];
132
+ }
133
+ export function visitLookExpressions(entries, visit) {
134
+ for (const entry of entries) {
135
+ if (entry.kind === "LookProperty" || entry.kind === "LookSpread")
136
+ visit(entry.value);
137
+ else if (entry.kind === "LookIf") {
138
+ visit(entry.condition);
139
+ visitLookExpressions(entry.thenEntries, visit);
140
+ visitLookExpressions(entry.elseEntries, visit);
141
+ }
142
+ else
143
+ visitLookExpressions(entry.entries, visit);
144
+ }
145
+ }
146
+ export function containsUnitLiteral(value) {
147
+ if (!value || typeof value !== "object")
148
+ return false;
149
+ const record = value;
150
+ if (record.kind === "ExtensionExpression:web:unit")
151
+ return true;
152
+ for (const child of Object.values(record)) {
153
+ if (Array.isArray(child)) {
154
+ if (child.some(containsUnitLiteral))
155
+ return true;
156
+ }
157
+ else if (containsUnitLiteral(child))
158
+ return true;
159
+ }
160
+ return false;
161
+ }
162
+ export function containsWebSyntax(value) {
163
+ if (!value || typeof value !== "object")
164
+ return false;
165
+ const record = value;
166
+ if (record.kind === "ExtensionStatement:web:component" || record.kind === "ExtensionStatement:web:expose" || record.kind === "ExtensionStatement:web:unsafe-css" || record.kind === "ExtensionExpression:web:look" || record.kind === "ExtensionExpression:web:keyframes" || record.kind === "ExtensionExpression:web:jsx"
167
+ || record.kind === "ExtensionStatement:web:state" || record.kind === "ExtensionStatement:web:computed" || record.kind === "ExtensionStatement:web:resource" || record.kind === "ExtensionStatement:web:action" || record.kind === "ExtensionStatement:web:watch")
168
+ return true;
169
+ if (record.kind === "IdentifierExpression" && (record.name === "mount" || record.name === "tick"))
170
+ return true;
171
+ return Object.values(record).some((child) => Array.isArray(child) ? child.some(containsWebSyntax) : containsWebSyntax(child));
172
+ }
173
+ /**
174
+ * The runtime an emitted Web program carries inside itself: the foundation it
175
+ * installs, the CSS string serializer, the closed keyword sets of the Look
176
+ * properties *this* module styles, and the runtime body. Only the keyword table
177
+ * differs per compilation, which is why it is the one hole
178
+ * `runtime/manifest.json` records as an assembly (LOK-U13 keeps the serializer
179
+ * the one css-string.ts publishes rather than a second spelling of it).
180
+ */
181
+ function webRuntime(foundation, lookKeywords) {
182
+ return `${foundation}\n${CSS_STRING_RUNTIME_BODY}${lookKeywords}\n${WEB_RUNTIME_BODY}`;
183
+ }
184
+ //# sourceMappingURL=runtime-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-imports.js","sourceRoot":"","sources":["../../src/emit/runtime-imports.ts"],"names":[],"mappings":"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"}
package/dist/emitter.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { CompilerStyleSegments, CompilerEmitterOptions, Expression, Program, Statement, LoweringHints, ValueType } from "@velarscript/compiler/extension";
2
2
  import { JavaScriptEmitter } from "@velarscript/compiler/extension";
3
- import { type WebJsxAttribute as JSXAttribute, type WebJsxElementExpression as JSXElementExpression } from "./ast.ts";
3
+ export { dynamicChildLeaves, jsxKeyedList, JSX_SCALAR_TEXT_HINT, type DynamicChildGuard, type DynamicChildLeaf, type JsxKeyedList, } from "./emit/jsx.ts";
4
4
  export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
5
5
  private currentScope;
6
6
  /**
@@ -30,9 +30,16 @@ export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
30
30
  private readonly lookKeywordProperties;
31
31
  private jsxId;
32
32
  private readonly keyframeNames;
33
+ /**
34
+ * D115 P4 R3d: the four emission families this emitter owns as collaborators
35
+ * rather than as more of itself, and the one host object they reach it
36
+ * through. Every `protected` seam is still declared on this class, forwarding
37
+ * to the family that owns its body, so the base emitter reaches the same seam
38
+ * it always did.
39
+ */
40
+ private readonly host;
33
41
  constructor(hints: LoweringHints, forcedFunctionExports?: ReadonlySet<string>, resourceContents?: ReadonlyMap<string, string>, extensionImports?: ReadonlyMap<string, ReadonlyMap<string, unknown>>, options?: CompilerEmitterOptions);
34
42
  emit(program: Program): string;
35
- /** Emits `render` with module evaluation switched off, for a body that runs under an owner of its own. */
36
43
  private outsideModuleEvaluation;
37
44
  css(): string;
38
45
  styleSegments(): CompilerStyleSegments;
@@ -40,14 +47,6 @@ export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
40
47
  protected emitTypeCheck(type: ValueType, value: string, state?: string): string;
41
48
  protected emitIsCheck(type: ValueType, value: string): string;
42
49
  protected additionalHelpers(_program: Program): readonly string[];
43
- private webRuntimeHelpers;
44
- /**
45
- * The closed keyword sets of the properties this module styles, so a value
46
- * the compiler could not read is still checked before it reaches the DOM.
47
- * Only the properties written here ship: the whole table is 17 KiB, and a
48
- * module pays for the properties it uses.
49
- */
50
- private lookKeywordTable;
51
50
  protected reactiveBridgeHelpers(needsJavaScriptCallBoundary: boolean, needsCollections: boolean, usedIdentifiers?: ReadonlySet<string>): readonly string[];
52
51
  protected includesErrorNormalizationRuntime(): boolean;
53
52
  protected detachedTaskHelpers(): readonly string[];
@@ -57,65 +56,13 @@ export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
57
56
  protected extensionStatementContainsDirectAwait(statement: Statement, containsExpression: (expression: Expression) => boolean, containsBlock: (statements: readonly Statement[]) => boolean): boolean | undefined;
58
57
  protected emitStatement(statement: Statement, depth: number): string;
59
58
  protected emitExpression(expression: Expression): string;
60
- private emitLook;
61
- private emitLookEntries;
62
- private emitLookValue;
63
- private emitLookArithmetic;
64
- private emitComponent;
65
- private emitReactiveAssignment;
66
- private emitJsx;
67
- private emitJsxCode;
68
- private emitJsxChildren;
69
- private emitJsxChildrenCode;
70
- private emitDynamicChild;
71
59
  /**
72
- * The two conditions for the scalar-text fast path, both of which must hold:
73
- * the analyzer proved the checked type renders as exactly one text node, and
74
- * the expression builds no JSX of its own. Everything else keeps the full
75
- * dynamic region, so a widening of the type rule can only ever be a
76
- * deliberate edit to `VelarWebAnalyzer.isScalarTextType`.
60
+ * The one object every family is handed. Its properties are live reads and
61
+ * writes of this emitter: a family that records "this module needs the
62
+ * file-type helper" or assigns the stylesheet must set the emitter's own
63
+ * field, because `emit()`, `css()` and `styleSegments()` read them after
64
+ * every family has run.
77
65
  */
78
- private isScalarTextChild;
79
- private emitDynamicChildLeaf;
80
- private emitGuardedExpression;
81
- /**
82
- * D47 rule 84(A): a bind target is a state cell, or a writable reactive
83
- * location inside one. A member/index path lowers to the get/set pair the
84
- * binding helpers already expect, so a field of state reads and writes through
85
- * exactly the same statements the author would have written by hand.
86
- */
87
- private emitBindTarget;
88
- private emitJsxAttributeValue;
89
- private emitJsxLookValue;
90
- private emitJsxStyleValue;
91
- private prepareLooks;
92
- }
93
- export interface JsxKeyedList {
94
- readonly source: Expression;
95
- readonly arrow: Extract<Expression, {
96
- kind: "ArrowFunctionExpression";
97
- }> & {
98
- readonly body: JSXElementExpression;
99
- };
100
- readonly key: JSXAttribute | null;
101
- }
102
- export interface DynamicChildGuard {
103
- readonly condition: Expression;
104
- readonly thenBranch: boolean;
105
- }
106
- export interface DynamicChildLeaf {
107
- readonly expression: Expression;
108
- readonly list: JsxKeyedList | null;
109
- readonly guards: readonly DynamicChildGuard[];
66
+ private emitHost;
110
67
  }
111
- export declare function jsxKeyedList(expression: Expression): JsxKeyedList | null;
112
- /**
113
- * F1: the analyzer's verdict that an interpolation's checked type renders as
114
- * exactly one text node. The emitter cannot re-derive it — the checked type is
115
- * gone by lowering time — so the analyzer stamps the child expression's span
116
- * and the emitter reads it back through the extension-hint channel that
117
- * `LOOK_ARITHMETIC_HINT` already uses.
118
- */
119
- export declare const JSX_SCALAR_TEXT_HINT = "@velarscript/web:jsx-scalar-text";
120
- export declare function dynamicChildLeaves(expression: Expression, guards?: readonly DynamicChildGuard[]): readonly DynamicChildLeaf[];
121
68
  //# sourceMappingURL=emitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"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"}