@velarscript/web 0.31.0 → 0.33.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 (393) 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 +16 -0
  19. package/dist/analysis/calls/intrinsics/storage.d.ts.map +1 -0
  20. package/dist/analysis/calls/intrinsics/storage.js +91 -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 +75 -0
  55. package/dist/analysis/inference.d.ts.map +1 -0
  56. package/dist/analysis/inference.js +257 -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 +174 -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 +36 -0
  99. package/dist/analysis/look/edits.d.ts.map +1 -0
  100. package/dist/analysis/look/edits.js +80 -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 +156 -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 +62 -0
  123. package/dist/analysis/look-sites.d.ts.map +1 -0
  124. package/dist/analysis/look-sites.js +121 -0
  125. package/dist/analysis/look-sites.js.map +1 -0
  126. package/dist/analysis/look-values.d.ts +19 -0
  127. package/dist/analysis/look-values.d.ts.map +1 -1
  128. package/dist/analysis/look-values.js +38 -0
  129. package/dist/analysis/look-values.js.map +1 -1
  130. package/dist/analysis/look-vocabulary-guidance.d.ts +76 -0
  131. package/dist/analysis/look-vocabulary-guidance.d.ts.map +1 -0
  132. package/dist/analysis/look-vocabulary-guidance.js +338 -0
  133. package/dist/analysis/look-vocabulary-guidance.js.map +1 -0
  134. package/dist/analysis/media-conditions.d.ts +33 -0
  135. package/dist/analysis/media-conditions.d.ts.map +1 -0
  136. package/dist/analysis/media-conditions.js +92 -0
  137. package/dist/analysis/media-conditions.js.map +1 -0
  138. package/dist/analysis/program-passes.d.ts +106 -0
  139. package/dist/analysis/program-passes.d.ts.map +1 -0
  140. package/dist/analysis/program-passes.js +149 -0
  141. package/dist/analysis/program-passes.js.map +1 -0
  142. package/dist/analysis/reactivity/bindings.d.ts +37 -0
  143. package/dist/analysis/reactivity/bindings.d.ts.map +1 -0
  144. package/dist/analysis/reactivity/bindings.js +88 -0
  145. package/dist/analysis/reactivity/bindings.js.map +1 -0
  146. package/dist/analysis/reactivity/derived.d.ts +39 -0
  147. package/dist/analysis/reactivity/derived.d.ts.map +1 -0
  148. package/dist/analysis/reactivity/derived.js +80 -0
  149. package/dist/analysis/reactivity/derived.js.map +1 -0
  150. package/dist/analysis/reactivity/host.d.ts +38 -0
  151. package/dist/analysis/reactivity/host.d.ts.map +1 -0
  152. package/dist/analysis/reactivity/host.js +14 -0
  153. package/dist/analysis/reactivity/host.js.map +1 -0
  154. package/dist/analysis/reactivity/retired-accessors.d.ts +82 -0
  155. package/dist/analysis/reactivity/retired-accessors.d.ts.map +1 -0
  156. package/dist/analysis/reactivity/retired-accessors.js +118 -0
  157. package/dist/analysis/reactivity/retired-accessors.js.map +1 -0
  158. package/dist/analysis/renderable.d.ts +47 -0
  159. package/dist/analysis/renderable.d.ts.map +1 -0
  160. package/dist/analysis/renderable.js +105 -0
  161. package/dist/analysis/renderable.js.map +1 -0
  162. package/dist/analysis/routes.d.ts +64 -0
  163. package/dist/analysis/routes.d.ts.map +1 -0
  164. package/dist/analysis/routes.js +182 -0
  165. package/dist/analysis/routes.js.map +1 -0
  166. package/dist/analysis/url-attributes.d.ts +12 -0
  167. package/dist/analysis/url-attributes.d.ts.map +1 -0
  168. package/dist/analysis/url-attributes.js +48 -0
  169. package/dist/analysis/url-attributes.js.map +1 -0
  170. package/dist/analysis/watch-cycles.d.ts +102 -0
  171. package/dist/analysis/watch-cycles.d.ts.map +1 -1
  172. package/dist/analysis/watch-cycles.js +240 -1
  173. package/dist/analysis/watch-cycles.js.map +1 -1
  174. package/dist/analysis/watch-subject.d.ts +45 -0
  175. package/dist/analysis/watch-subject.d.ts.map +1 -0
  176. package/dist/analysis/watch-subject.js +272 -0
  177. package/dist/analysis/watch-subject.js.map +1 -0
  178. package/dist/analysis/web-types.d.ts +27 -0
  179. package/dist/analysis/web-types.d.ts.map +1 -0
  180. package/dist/analysis/web-types.js +170 -0
  181. package/dist/analysis/web-types.js.map +1 -0
  182. package/dist/analyzer.d.ts +18 -617
  183. package/dist/analyzer.d.ts.map +1 -1
  184. package/dist/analyzer.js +211 -4853
  185. package/dist/analyzer.js.map +1 -1
  186. package/dist/compiler.d.ts +20 -0
  187. package/dist/compiler.d.ts.map +1 -1
  188. package/dist/compiler.js +31 -864
  189. package/dist/compiler.js.map +1 -1
  190. package/dist/documentation.d.ts +28 -0
  191. package/dist/documentation.d.ts.map +1 -0
  192. package/dist/documentation.js +67 -0
  193. package/dist/documentation.js.map +1 -0
  194. package/dist/editor/completions.d.ts +12 -0
  195. package/dist/editor/completions.d.ts.map +1 -0
  196. package/dist/editor/completions.js +6 -0
  197. package/dist/editor/completions.js.map +1 -0
  198. package/dist/editor/jsx-completion.d.ts +12 -0
  199. package/dist/editor/jsx-completion.d.ts.map +1 -0
  200. package/dist/editor/jsx-completion.js +137 -0
  201. package/dist/editor/jsx-completion.js.map +1 -0
  202. package/dist/editor/look-completion.d.ts +29 -0
  203. package/dist/editor/look-completion.d.ts.map +1 -0
  204. package/dist/editor/look-completion.js +159 -0
  205. package/dist/editor/look-completion.js.map +1 -0
  206. package/dist/editor.d.ts.map +1 -1
  207. package/dist/editor.js +12 -288
  208. package/dist/editor.js.map +1 -1
  209. package/dist/emit/components.d.ts +33 -0
  210. package/dist/emit/components.d.ts.map +1 -0
  211. package/dist/emit/components.js +135 -0
  212. package/dist/emit/components.js.map +1 -0
  213. package/dist/emit/jsx.d.ts +57 -0
  214. package/dist/emit/jsx.d.ts.map +1 -0
  215. package/dist/emit/jsx.js +384 -0
  216. package/dist/emit/jsx.js.map +1 -0
  217. package/dist/emit/look-css.d.ts +44 -0
  218. package/dist/emit/look-css.d.ts.map +1 -0
  219. package/dist/emit/look-css.js +177 -0
  220. package/dist/emit/look-css.js.map +1 -0
  221. package/dist/emit/look.d.ts +39 -0
  222. package/dist/emit/look.d.ts.map +1 -0
  223. package/dist/emit/look.js +218 -0
  224. package/dist/emit/look.js.map +1 -0
  225. package/dist/emit/runtime-imports.d.ts +40 -0
  226. package/dist/emit/runtime-imports.d.ts.map +1 -0
  227. package/dist/emit/runtime-imports.js +188 -0
  228. package/dist/emit/runtime-imports.js.map +1 -0
  229. package/dist/emitter.d.ts +15 -68
  230. package/dist/emitter.d.ts.map +1 -1
  231. package/dist/emitter.js +79 -1008
  232. package/dist/emitter.js.map +1 -1
  233. package/dist/look/animation.d.ts +7 -0
  234. package/dist/look/animation.d.ts.map +1 -0
  235. package/dist/look/animation.js +13 -0
  236. package/dist/look/animation.js.map +1 -0
  237. package/dist/look/builders.d.ts +35 -0
  238. package/dist/look/builders.d.ts.map +1 -0
  239. package/dist/look/builders.js +74 -0
  240. package/dist/look/builders.js.map +1 -0
  241. package/dist/look/css-functions.d.ts +28 -0
  242. package/dist/look/css-functions.d.ts.map +1 -0
  243. package/dist/look/css-functions.js +54 -0
  244. package/dist/look/css-functions.js.map +1 -0
  245. package/dist/look/keyword-sets.d.ts +41 -0
  246. package/dist/look/keyword-sets.d.ts.map +1 -0
  247. package/dist/look/keyword-sets.js +117 -0
  248. package/dist/look/keyword-sets.js.map +1 -0
  249. package/dist/look/keywords.d.ts +55 -0
  250. package/dist/look/keywords.d.ts.map +1 -0
  251. package/dist/look/keywords.js +387 -0
  252. package/dist/look/keywords.js.map +1 -0
  253. package/dist/look/media.d.ts +19 -0
  254. package/dist/look/media.d.ts.map +1 -0
  255. package/dist/look/media.js +27 -0
  256. package/dist/look/media.js.map +1 -0
  257. package/dist/look/naming.d.ts +9 -0
  258. package/dist/look/naming.d.ts.map +1 -0
  259. package/dist/look/naming.js +45 -0
  260. package/dist/look/naming.js.map +1 -0
  261. package/dist/look/properties.d.ts +16 -0
  262. package/dist/look/properties.d.ts.map +1 -0
  263. package/dist/look/properties.js +52 -0
  264. package/dist/look/properties.js.map +1 -0
  265. package/dist/look/shorthands.d.ts +25 -0
  266. package/dist/look/shorthands.d.ts.map +1 -0
  267. package/dist/look/shorthands.js +130 -0
  268. package/dist/look/shorthands.js.map +1 -0
  269. package/dist/look/tokens.d.ts +38 -0
  270. package/dist/look/tokens.d.ts.map +1 -0
  271. package/dist/look/tokens.js +59 -0
  272. package/dist/look/tokens.js.map +1 -0
  273. package/dist/look/units.d.ts +24 -0
  274. package/dist/look/units.d.ts.map +1 -0
  275. package/dist/look/units.js +33 -0
  276. package/dist/look/units.js.map +1 -0
  277. package/dist/look.d.ts +32 -227
  278. package/dist/look.d.ts.map +1 -1
  279. package/dist/look.js +28 -933
  280. package/dist/look.js.map +1 -1
  281. package/dist/module-roster.d.ts +16 -0
  282. package/dist/module-roster.d.ts.map +1 -0
  283. package/dist/module-roster.js +28 -0
  284. package/dist/module-roster.js.map +1 -0
  285. package/dist/modules/app.d.ts +9 -0
  286. package/dist/modules/app.d.ts.map +1 -0
  287. package/dist/modules/app.js +20 -0
  288. package/dist/modules/app.js.map +1 -0
  289. package/dist/modules/browser-test.d.ts +9 -0
  290. package/dist/modules/browser-test.d.ts.map +1 -0
  291. package/dist/modules/browser-test.js +67 -0
  292. package/dist/modules/browser-test.js.map +1 -0
  293. package/dist/modules/browser.d.ts +10 -0
  294. package/dist/modules/browser.d.ts.map +1 -0
  295. package/dist/modules/browser.js +89 -0
  296. package/dist/modules/browser.js.map +1 -0
  297. package/dist/modules/config.d.ts +9 -0
  298. package/dist/modules/config.d.ts.map +1 -0
  299. package/dist/modules/config.js +14 -0
  300. package/dist/modules/config.js.map +1 -0
  301. package/dist/modules/files.d.ts +9 -0
  302. package/dist/modules/files.d.ts.map +1 -0
  303. package/dist/modules/files.js +16 -0
  304. package/dist/modules/files.js.map +1 -0
  305. package/dist/modules/forms.d.ts +9 -0
  306. package/dist/modules/forms.d.ts.map +1 -0
  307. package/dist/modules/forms.js +26 -0
  308. package/dist/modules/forms.js.map +1 -0
  309. package/dist/modules/http.d.ts +9 -0
  310. package/dist/modules/http.d.ts.map +1 -0
  311. package/dist/modules/http.js +127 -0
  312. package/dist/modules/http.js.map +1 -0
  313. package/dist/modules/look.d.ts +9 -0
  314. package/dist/modules/look.d.ts.map +1 -0
  315. package/dist/modules/look.js +58 -0
  316. package/dist/modules/look.js.map +1 -0
  317. package/dist/modules/realtime.d.ts +9 -0
  318. package/dist/modules/realtime.d.ts.map +1 -0
  319. package/dist/modules/realtime.js +163 -0
  320. package/dist/modules/realtime.js.map +1 -0
  321. package/dist/modules/storage.d.ts +9 -0
  322. package/dist/modules/storage.d.ts.map +1 -0
  323. package/dist/modules/storage.js +59 -0
  324. package/dist/modules/storage.js.map +1 -0
  325. package/dist/modules/types.d.ts +78 -0
  326. package/dist/modules/types.d.ts.map +1 -0
  327. package/dist/modules/types.js +154 -0
  328. package/dist/modules/types.js.map +1 -0
  329. package/dist/modules/web.d.ts +9 -0
  330. package/dist/modules/web.d.ts.map +1 -0
  331. package/dist/modules/web.js +63 -0
  332. package/dist/modules/web.js.map +1 -0
  333. package/dist/modules/websocket.d.ts +11 -0
  334. package/dist/modules/websocket.d.ts.map +1 -0
  335. package/dist/modules/websocket.js +75 -0
  336. package/dist/modules/websocket.js.map +1 -0
  337. package/dist/parser/expressions/jsx.d.ts +17 -0
  338. package/dist/parser/expressions/jsx.d.ts.map +1 -0
  339. package/dist/parser/expressions/jsx.js +43 -0
  340. package/dist/parser/expressions/jsx.js.map +1 -0
  341. package/dist/parser/expressions/keyframes.d.ts +15 -0
  342. package/dist/parser/expressions/keyframes.d.ts.map +1 -0
  343. package/dist/parser/expressions/keyframes.js +33 -0
  344. package/dist/parser/expressions/keyframes.js.map +1 -0
  345. package/dist/parser/expressions/look.d.ts +16 -0
  346. package/dist/parser/expressions/look.d.ts.map +1 -0
  347. package/dist/parser/expressions/look.js +37 -0
  348. package/dist/parser/expressions/look.js.map +1 -0
  349. package/dist/parser/expressions/visual-block.d.ts +17 -0
  350. package/dist/parser/expressions/visual-block.d.ts.map +1 -0
  351. package/dist/parser/expressions/visual-block.js +21 -0
  352. package/dist/parser/expressions/visual-block.js.map +1 -0
  353. package/dist/parser/keyframes-source.d.ts +24 -0
  354. package/dist/parser/keyframes-source.d.ts.map +1 -0
  355. package/dist/parser/keyframes-source.js +133 -0
  356. package/dist/parser/keyframes-source.js.map +1 -0
  357. package/dist/parser/look-source.d.ts +25 -0
  358. package/dist/parser/look-source.d.ts.map +1 -0
  359. package/dist/parser/look-source.js +189 -0
  360. package/dist/parser/look-source.js.map +1 -0
  361. package/dist/parser/spans.d.ts +24 -0
  362. package/dist/parser/spans.d.ts.map +1 -0
  363. package/dist/parser/spans.js +113 -0
  364. package/dist/parser/spans.js.map +1 -0
  365. package/dist/parser/statements/components.d.ts +37 -0
  366. package/dist/parser/statements/components.d.ts.map +1 -0
  367. package/dist/parser/statements/components.js +185 -0
  368. package/dist/parser/statements/components.js.map +1 -0
  369. package/dist/parser/statements/heads.d.ts +38 -0
  370. package/dist/parser/statements/heads.d.ts.map +1 -0
  371. package/dist/parser/statements/heads.js +55 -0
  372. package/dist/parser/statements/heads.js.map +1 -0
  373. package/dist/parser/statements/imports.d.ts +9 -0
  374. package/dist/parser/statements/imports.d.ts.map +1 -0
  375. package/dist/parser/statements/imports.js +31 -0
  376. package/dist/parser/statements/imports.js.map +1 -0
  377. package/dist/parser/statements/reactive.d.ts +31 -0
  378. package/dist/parser/statements/reactive.d.ts.map +1 -0
  379. package/dist/parser/statements/reactive.js +68 -0
  380. package/dist/parser/statements/reactive.js.map +1 -0
  381. package/dist/parser/statements/unsafe-css.d.ts +21 -0
  382. package/dist/parser/statements/unsafe-css.d.ts.map +1 -0
  383. package/dist/parser/statements/unsafe-css.js +42 -0
  384. package/dist/parser/statements/unsafe-css.js.map +1 -0
  385. package/dist/parser.d.ts +37 -50
  386. package/dist/parser.d.ts.map +1 -1
  387. package/dist/parser.js +98 -882
  388. package/dist/parser.js.map +1 -1
  389. package/dist/runtime-sources.generated.d.ts +1 -1
  390. package/dist/runtime-sources.generated.d.ts.map +1 -1
  391. package/dist/runtime-sources.generated.js +4 -4
  392. package/dist/runtime-sources.generated.js.map +1 -1
  393. package/package.json +2 -2
@@ -0,0 +1,338 @@
1
+ /**
2
+ * What a Look value may be written as, and the sentence that says so when it is
3
+ * written as something else: the multi-token shorthand strings that have a
4
+ * checked builder equivalent, the CSS filter functions that rewrite into filter
5
+ * builders, and the keyword vocabulary a property publishes once a written
6
+ * value falls outside it.
7
+ *
8
+ * D115 P4 R3a: this is the Look *vocabulary* half of the analyzer's Look work —
9
+ * a value and a property name in, a rewrite or a sentence out — and it reads
10
+ * nothing the analyzer is carrying, so it reads as a module.
11
+ */
12
+ import {} from "@velarscript/compiler/extension";
13
+ import { LOOK_BORDER_STYLE_NAMES, LOOK_BUILDER_NUMERIC_RANGES, LOOK_COLOR_KEYWORDS, LOOK_CSS_WIDE_KEYWORDS, LOOK_LARGE_KEYWORD_SETS, LOOK_SHARED_METRIC_KEYWORDS, lookShorthandParts, nearestLookName, } from "../look.js";
14
+ // Multi-token shorthand strings on properties with a checked builder
15
+ // equivalent bypass the builder system, so they are rejected with directive
16
+ // guidance that computes the builder call whenever the string decomposes
17
+ // cleanly. Single-token keyword strings and hex color strings stay accepted.
18
+ const lookSpacingFamily = /^(?:margin|padding|inset)/u;
19
+ const lookSpacingProperties = new Set(["borderRadius", "borderWidth"]);
20
+ const lookBorderProperties = new Set(["border", "borderTop", "borderRight", "borderBottom", "borderLeft", "outline"]);
21
+ // The border() builder's guard, the five border-style properties and this
22
+ // shorthand reader are one vocabulary, so they read one table (D57 rule 134).
23
+ const lookBorderStyles = LOOK_BORDER_STYLE_NAMES;
24
+ function lookBuilderToken(token) {
25
+ if (/^[+-]?\d+(?:\.\d+)?$/u.test(token))
26
+ return `${token}px`;
27
+ if (/^[+-]?\d+(?:\.\d+)?[a-z%]+$/iu.test(token))
28
+ return token;
29
+ return `"${token}"`;
30
+ }
31
+ export function numericLiteral(expression) {
32
+ if (expression?.kind === "LiteralExpression" && typeof expression.value === "number")
33
+ return expression.value;
34
+ if (expression?.kind === "UnaryExpression" && expression.operator === "-"
35
+ && expression.operand.kind === "LiteralExpression" && typeof expression.operand.value === "number") {
36
+ return -expression.operand.value;
37
+ }
38
+ return null;
39
+ }
40
+ function coreDurationLiteral(expression) {
41
+ if (expression?.kind !== "ExtensionExpression:core:duration")
42
+ return null;
43
+ return expression;
44
+ }
45
+ export function lookDurationLiteral(expression) {
46
+ const direct = coreDurationLiteral(expression);
47
+ if (direct) {
48
+ return direct.value * (direct.unit === "s" ? 1000 : 1);
49
+ }
50
+ const operand = expression?.kind === "UnaryExpression" ? coreDurationLiteral(expression.operand) : null;
51
+ if (expression?.kind === "UnaryExpression" && (expression.operator === "+" || expression.operator === "-") && operand) {
52
+ const value = operand.value * (operand.unit === "s" ? 1000 : 1);
53
+ return expression.operator === "-" ? -value : value;
54
+ }
55
+ return null;
56
+ }
57
+ function lookBorderCall(tokens) {
58
+ let width = null;
59
+ let style = null;
60
+ let color = null;
61
+ for (const token of tokens) {
62
+ if (/^[+-]?\d/u.test(token) && width === null)
63
+ width = lookBuilderToken(token);
64
+ else if (lookBorderStyles.has(token) && style === null)
65
+ style = token;
66
+ else if (color === null && /^#[0-9a-f]{3,8}$/iu.test(token))
67
+ color = `color("${token}")`;
68
+ else if (color === null && /^[a-z]+$/iu.test(token))
69
+ color = `color("${token}")`;
70
+ else
71
+ return null;
72
+ }
73
+ if (width === null || color === null)
74
+ return null;
75
+ const buildArguments = style !== null && style !== "solid" ? `${width}, ${color}, "${style}"` : `${width}, ${color}`;
76
+ return `border(${buildArguments})`;
77
+ }
78
+ export function lookShorthandStringGuidance(name, value) {
79
+ if (value.kind !== "LiteralExpression" || typeof value.value !== "string")
80
+ return null;
81
+ const text = value.value.trim();
82
+ if ((name === "gridTemplateColumns" || name === "gridTemplateRows") && text !== "none") {
83
+ return "Use the tracks(...) builder for grid templates; for example, write tracks(240px, minmax(0px, 1fr)) instead of CSS track-list text";
84
+ }
85
+ if (name === "backgroundImage" && /^linear-gradient\s*\(/iu.test(text)) {
86
+ return "Use linearGradient(angle, start, end); for example linearGradient(90deg, color(\"red\"), color(\"blue\")) instead of gradient text";
87
+ }
88
+ if (!/\s/u.test(text))
89
+ return null;
90
+ const tokens = text.split(/\s+/u);
91
+ if (lookSpacingFamily.test(name) || lookSpacingProperties.has(name)) {
92
+ return `Use 'spacing(${tokens.map(lookBuilderToken).join(", ")})'; Look multi-value shorthand is written with the spacing builder`;
93
+ }
94
+ if (lookBorderProperties.has(name)) {
95
+ const call = lookBorderCall(tokens);
96
+ return call
97
+ ? `Use '${call}'; Look border shorthand is written with the border builder`
98
+ : "Use the 'border(width, color, style)' builder; multi-part border strings bypass the checked Look system";
99
+ }
100
+ if (name === "boxShadow") {
101
+ return "Use the 'shadow(x, y, blur, color)' builder; multi-part shadow strings bypass the checked Look system";
102
+ }
103
+ if (name === "transition") {
104
+ const [property, duration, easing, delay] = tokens;
105
+ const durations = /^[+-]?\d+(?:\.\d+)?(?:ms|s)$/u;
106
+ if (property && duration && durations.test(duration) && tokens.length <= 4
107
+ && (easing === undefined || /^[a-z-]+$/iu.test(easing))
108
+ && (delay === undefined || durations.test(delay))) {
109
+ const buildArguments = [`"${property}"`, duration, ...easing ? [`"${easing}"`] : [], ...delay ? [delay] : []];
110
+ return `Use 'transition(${buildArguments.join(", ")})'; Look transition shorthand is written with the transition builder`;
111
+ }
112
+ return "Use the 'transition(property, duration, easing, delay)' builder; multi-part transition strings bypass the checked Look system";
113
+ }
114
+ return null;
115
+ }
116
+ const lookSimpleFilterBuilders = new Map([
117
+ ["blur", { builder: "blur", argument: "length" }],
118
+ ["brightness", { builder: "brightness", argument: "number" }],
119
+ ["contrast", { builder: "contrast", argument: "number" }],
120
+ ["grayscale", { builder: "grayscale", argument: "number" }],
121
+ ["hue-rotate", { builder: "hueRotate", argument: "angle" }],
122
+ ["invert", { builder: "invert", argument: "number" }],
123
+ ["opacity", { builder: "filterOpacity", argument: "number" }],
124
+ ["saturate", { builder: "saturate", argument: "number" }],
125
+ ["sepia", { builder: "sepia", argument: "number" }],
126
+ ]);
127
+ function cssFunctionValues(text) {
128
+ const values = [];
129
+ let cursor = 0;
130
+ while (cursor < text.length) {
131
+ while (cursor < text.length && /\s/u.test(text[cursor]))
132
+ cursor += 1;
133
+ if (cursor === text.length)
134
+ break;
135
+ const matched = /^([a-z-]+)\(/iu.exec(text.slice(cursor));
136
+ if (!matched)
137
+ return null;
138
+ const name = matched[1].toLowerCase();
139
+ const start = cursor + matched[0].length;
140
+ let depth = 1;
141
+ let quote = null;
142
+ let escaped = false;
143
+ cursor = start;
144
+ while (cursor < text.length && depth > 0) {
145
+ const character = text[cursor];
146
+ if (escaped)
147
+ escaped = false;
148
+ else if (quote && character === "\\")
149
+ escaped = true;
150
+ else if (quote && character === quote)
151
+ quote = null;
152
+ else if (!quote && (character === "\"" || character === "'"))
153
+ quote = character;
154
+ else if (!quote && character === "(")
155
+ depth += 1;
156
+ else if (!quote && character === ")")
157
+ depth -= 1;
158
+ cursor += 1;
159
+ }
160
+ if (depth !== 0 || quote)
161
+ return null;
162
+ values.push({ name, arguments: text.slice(start, cursor - 1).trim() });
163
+ if (cursor < text.length && !/\s/u.test(text[cursor]))
164
+ return null;
165
+ }
166
+ return values.length > 0 ? values : null;
167
+ }
168
+ function topLevelWords(text) {
169
+ const words = [];
170
+ let start = 0;
171
+ let depth = 0;
172
+ for (let cursor = 0; cursor <= text.length; cursor += 1) {
173
+ const character = text[cursor];
174
+ if (character === "(")
175
+ depth += 1;
176
+ else if (character === ")") {
177
+ depth -= 1;
178
+ if (depth < 0)
179
+ return null;
180
+ }
181
+ if ((character === undefined || /\s/u.test(character)) && depth === 0) {
182
+ const word = text.slice(start, cursor).trim();
183
+ if (word)
184
+ words.push(word);
185
+ start = cursor + 1;
186
+ }
187
+ }
188
+ return depth === 0 ? words : null;
189
+ }
190
+ function filterLength(text) {
191
+ return /^(?:0|\+?(?:\d+(?:\.\d+)?|\.\d+)(?:px|rem|em|vw|vh|vmin|vmax))$/u.test(text)
192
+ ? lookBuilderToken(text)
193
+ : null;
194
+ }
195
+ function filterNumericArgumentsHold(builder, values) {
196
+ const ranges = LOOK_BUILDER_NUMERIC_RANGES.get(builder);
197
+ return values.every((value, index) => {
198
+ const range = ranges?.[index];
199
+ const numeric = Number(value);
200
+ return Number.isFinite(numeric) && (!range || (numeric >= range[1] && numeric <= range[2]));
201
+ });
202
+ }
203
+ function filterColor(text) {
204
+ if (/^#[0-9a-f]{3,8}$/iu.test(text) || /^[a-z]+$/iu.test(text)) {
205
+ return { call: `color(${JSON.stringify(text)})`, builders: ["color"] };
206
+ }
207
+ const functional = /^(rgb|rgba)\((.*)\)$/iu.exec(text);
208
+ if (!functional)
209
+ return null;
210
+ const channels = functional[2].split(",").map((channel) => channel.trim());
211
+ const expected = functional[1].toLowerCase() === "rgb" ? 3 : 4;
212
+ if (channels.length !== expected || channels.some((channel) => !/^\+?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(channel)))
213
+ return null;
214
+ const builder = functional[1].toLowerCase();
215
+ if (!filterNumericArgumentsHold(builder, channels))
216
+ return null;
217
+ return { call: `${builder}(${channels.join(", ")})`, builders: [builder] };
218
+ }
219
+ function filterFunctionRewrite(value) {
220
+ const simple = lookSimpleFilterBuilders.get(value.name);
221
+ if (simple) {
222
+ const argument = simple.argument === "length"
223
+ ? filterLength(value.arguments)
224
+ : simple.argument === "angle"
225
+ ? (/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:deg|turn)$/u.test(value.arguments) ? value.arguments : null)
226
+ : (/^\+?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(value.arguments)
227
+ && filterNumericArgumentsHold(simple.builder, [value.arguments]) ? value.arguments : null);
228
+ return argument === null ? null : { call: `${simple.builder}(${argument})`, builders: [simple.builder] };
229
+ }
230
+ if (value.name !== "drop-shadow")
231
+ return null;
232
+ const words = topLevelWords(value.arguments);
233
+ if (!words || words.length !== 4)
234
+ return null;
235
+ const lengths = words.slice(0, 3).map(filterLength);
236
+ const color = filterColor(words[3]);
237
+ if (lengths.some((length) => length === null) || !color)
238
+ return null;
239
+ return {
240
+ call: `dropShadow(${lengths.join(", ")}, ${color.call})`,
241
+ builders: ["dropShadow", ...color.builders],
242
+ };
243
+ }
244
+ export function lookFilterRewrite(text) {
245
+ const functions = cssFunctionValues(text.trim());
246
+ if (!functions)
247
+ return null;
248
+ const rewritten = functions.map(filterFunctionRewrite);
249
+ if (rewritten.some((item) => item === null))
250
+ return null;
251
+ const calls = rewritten;
252
+ const builders = [...new Set(calls.flatMap((item) => item.builders))];
253
+ if (calls.length === 1)
254
+ return { call: calls[0].call, builders };
255
+ return { call: `filters(${calls.map((item) => item.call).join(", ")})`, builders: ["filters", ...builders] };
256
+ }
257
+ /**
258
+ * D104 rule 2 — what a refusal says when two entries in one scope write the
259
+ * same CSS declaration. Written once because two positions raise it: a Look
260
+ * block's entries and an element's `look:` directives lower to the same
261
+ * one-rule-per-property stylesheet, so they have the same defect and deserve
262
+ * the same sentence (D57 rule 134).
263
+ *
264
+ * The message leads with the mechanism, because the pair is legal CSS and the
265
+ * author has every reason to expect source order to settle it. It does not
266
+ * here: see LOOK_SHORTHAND_LONGHANDS for why the winner is decided module-wide.
267
+ */
268
+ export function lookShorthandOverlapMessage(shorthand, longhand, subject) {
269
+ const parts = lookShorthandParts(shorthand);
270
+ return `${subject} sets '${shorthand}' and '${longhand}', and the shorthand writes the longhand. Look lowers every entry to its own CSS rule and orders those rules by where each property first appears in the module rather than by this block, so which of the two wins is not this code's to choose — an unrelated look elsewhere in the module decides it. Write ${parts.join(", ")} in place of '${shorthand}', or drop '${longhand}'`;
271
+ }
272
+ export const lookCssWideKeywords = new Set(LOOK_CSS_WIDE_KEYWORDS);
273
+ export const lookMetricKeywords = new Set([...lookCssWideKeywords, ...LOOK_SHARED_METRIC_KEYWORDS]);
274
+ /**
275
+ * D73 rule 187: what a refusal says the property's *other* half is, so the
276
+ * keyword list it goes on to print reads as the keyword half of a real value
277
+ * space rather than as the whole of it.
278
+ */
279
+ export function lookVocabularyLead(kind) {
280
+ switch (kind) {
281
+ case "border": return "use the border(width, color, style) builder, or one of";
282
+ case "shadow": return "use the shadow(x, y, blur, color) builder, or one of";
283
+ case "angle": return "write an angle such as 45deg or 0.25turn, or one of";
284
+ case "duration": return "write a duration such as 200ms or 0.3s, or one of";
285
+ case "line-height": return "write a number or a length such as 1.5 or 24px, or one of";
286
+ case "number": return "write a number, or one of";
287
+ case "number-keyword": return "write a number, or one of";
288
+ case "track": return "use the tracks(...) builder, or one of";
289
+ case "transition": return "use the transition(property, duration, easing, delay) builder, or one of";
290
+ default: return "write one of";
291
+ }
292
+ }
293
+ export const lookColorKeywords = new Set(LOOK_COLOR_KEYWORDS);
294
+ /**
295
+ * D67 rule 174 — what a rejected Look string could have been.
296
+ *
297
+ * The message this replaces said "use one of the closed `name` keywords" and
298
+ * stopped there, so the answer to "which ones?" lived only in the source of the
299
+ * table. The evidence that this is not a hypothetical reader problem is that
300
+ * the usage tour — written by someone who knew the design intent — shipped
301
+ * twelve values no property had, and this diagnostic could not have told him.
302
+ *
303
+ * A near miss gets the one spelling meant, because naming the single correct
304
+ * word is the strongest form of the promise. Otherwise a set small enough to
305
+ * read is written out whole, and a larger one says what it holds. The CSS-wide
306
+ * keywords join the search either way, so a misspelled `inherit` is caught the
307
+ * same as a misspelled `groove`.
308
+ */
309
+ export function lookVocabularyGuidance(property, written, own, lead) {
310
+ const vocabulary = [...new Set([...own, ...LOOK_CSS_WIDE_KEYWORDS])];
311
+ const nearest = nearestLookName(written, vocabulary);
312
+ if (nearest !== null)
313
+ return { text: `did you mean '${nearest}'?`, named: true };
314
+ const shape = LOOK_LARGE_KEYWORD_SETS.get(property);
315
+ return {
316
+ text: shape === undefined
317
+ ? `${lead} ${vocabulary.join(", ")}`
318
+ : `${lead} ${shape}, and none of them is spelled close to '${written}'`,
319
+ named: false,
320
+ };
321
+ }
322
+ /**
323
+ * Every string this expression can be when it is written out of literals alone
324
+ * — one literal, or a ternary whose branches are literals all the way down.
325
+ * Answers null when a value is decided anywhere else, which is the signal that
326
+ * a check reading it has nothing static to look at.
327
+ */
328
+ export function literalStringValues(expression) {
329
+ if (expression.kind === "LiteralExpression")
330
+ return typeof expression.value === "string" ? [expression.value] : [];
331
+ if (expression.kind === "ConditionalExpression") {
332
+ const thenValues = literalStringValues(expression.thenValue);
333
+ const elseValues = literalStringValues(expression.elseValue);
334
+ return thenValues && elseValues ? [...thenValues, ...elseValues] : null;
335
+ }
336
+ return null;
337
+ }
338
+ //# sourceMappingURL=look-vocabulary-guidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"look-vocabulary-guidance.js","sourceRoot":"","sources":["../../src/analysis/look-vocabulary-guidance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The Look condition atoms that lower to a media query — 'viewport.width',
3
+ * 'scheme.dark', 'motion.reduced' — read as shapes over the written expression,
4
+ * plus the renderings a refusal about one quotes back.
5
+ *
6
+ * D115 P4 R3a: 'is this expression a viewport comparison' is a question about a
7
+ * node, not about the analyzer, so it reads as a module.
8
+ */
9
+ import { type Expression } from "@velarscript/compiler/extension";
10
+ export declare function isViewportComparison(expression: Expression): boolean;
11
+ export declare function flippedViewportComparison(expression: Expression): {
12
+ readonly property: string;
13
+ readonly operator: string;
14
+ readonly threshold: Expression;
15
+ } | null;
16
+ export declare function isSchemeCondition(expression: Expression): boolean;
17
+ /** The subject name of a `subject.feature` shape, whether or not it is a Look subject. */
18
+ export declare function mediaSubjectShape(expression: Expression): {
19
+ readonly subject: string;
20
+ readonly feature: string;
21
+ } | null;
22
+ export declare function lookMediaVocabulary(): string;
23
+ /** A readable rendering of a breakpoint threshold for diagnostic guidance. */
24
+ export declare function lookSourceOf(expression: Expression): string;
25
+ /**
26
+ * A syntactic rendering of one condition operand, used for the part of a Look
27
+ * condition that does not lower to a selector or a media query: a runtime term
28
+ * keeps its own scope, because two different runtime conditions really are two
29
+ * different scopes.
30
+ */
31
+ export declare function lookRuntimeSignature(expression: Expression): string;
32
+ export declare function lookKebab(value: string): string;
33
+ //# sourceMappingURL=media-conditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-conditions.d.ts","sourceRoot":"","sources":["../../src/analysis/media-conditions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIlE,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAKpE;AAQD,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAKjK;AAKD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAKjE;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGvH;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAM3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CASnE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * The Look condition atoms that lower to a media query — 'viewport.width',
3
+ * 'scheme.dark', 'motion.reduced' — read as shapes over the written expression,
4
+ * plus the renderings a refusal about one quotes back.
5
+ *
6
+ * D115 P4 R3a: 'is this expression a viewport comparison' is a question about a
7
+ * node, not about the analyzer, so it reads as a module.
8
+ */
9
+ import {} from "@velarscript/compiler/extension";
10
+ import { isWebExpression, isWebUnit } from "../ast.js";
11
+ import { LOOK_MEDIA_SUBJECTS } from "../look.js";
12
+ export function isViewportComparison(expression) {
13
+ if (expression.kind !== "BinaryExpression" || !["<", "<=", ">", ">="].includes(expression.operator))
14
+ return false;
15
+ if (expression.left.kind !== "MemberExpression" || expression.left.object.kind !== "IdentifierExpression" || expression.left.object.name !== "viewport")
16
+ return false;
17
+ if (expression.left.property !== "width" && expression.left.property !== "height")
18
+ return false;
19
+ return true;
20
+ }
21
+ // LOK-I2: '720px >= viewport.width' means the same breakpoint as
22
+ // 'viewport.width <= 720px', but only the viewport-on-the-left spelling lowers
23
+ // to a media query. The flipped spelling is recognized so it teaches the
24
+ // supported order instead of reporting the subject as an unknown name.
25
+ const flippedComparisons = new Map([["<", ">"], ["<=", ">="], [">", "<"], [">=", "<="]]);
26
+ export function flippedViewportComparison(expression) {
27
+ if (expression.kind !== "BinaryExpression" || !flippedComparisons.has(expression.operator))
28
+ return null;
29
+ const subject = mediaSubjectShape(expression.right);
30
+ if (subject?.subject !== "viewport" || (subject.feature !== "width" && subject.feature !== "height"))
31
+ return null;
32
+ return { property: subject.feature, operator: flippedComparisons.get(expression.operator), threshold: expression.left };
33
+ }
34
+ // 'scheme.dark'/'scheme.light' and 'motion.reduced' are Look condition subjects
35
+ // that lower to prefers-color-scheme and prefers-reduced-motion media queries,
36
+ // mirroring the viewport.* media atoms.
37
+ export function isSchemeCondition(expression) {
38
+ if (expression.kind !== "MemberExpression" || expression.object.kind !== "IdentifierExpression")
39
+ return false;
40
+ const subject = expression.object.name;
41
+ if (subject === "viewport")
42
+ return false;
43
+ return (LOOK_MEDIA_SUBJECTS.get(subject)?.has(expression.property)) ?? false;
44
+ }
45
+ /** The subject name of a `subject.feature` shape, whether or not it is a Look subject. */
46
+ export function mediaSubjectShape(expression) {
47
+ if (expression.kind !== "MemberExpression" || expression.optional || expression.object.kind !== "IdentifierExpression")
48
+ return null;
49
+ return { subject: expression.object.name, feature: expression.property };
50
+ }
51
+ export function lookMediaVocabulary() {
52
+ return [...LOOK_MEDIA_SUBJECTS].flatMap(([subject, features]) => [...features].map((feature) => `${subject}.${feature}`)).join(", ");
53
+ }
54
+ /** A readable rendering of a breakpoint threshold for diagnostic guidance. */
55
+ export function lookSourceOf(expression) {
56
+ if (isWebUnit(expression))
57
+ return expression.raw;
58
+ if (expression.kind === "IdentifierExpression")
59
+ return expression.name;
60
+ if (expression.kind === "LiteralExpression")
61
+ return expression.raw;
62
+ if (expression.kind === "MemberExpression")
63
+ return `${lookSourceOf(expression.object)}.${expression.property}`;
64
+ return "breakpoint";
65
+ }
66
+ /**
67
+ * A syntactic rendering of one condition operand, used for the part of a Look
68
+ * condition that does not lower to a selector or a media query: a runtime term
69
+ * keeps its own scope, because two different runtime conditions really are two
70
+ * different scopes.
71
+ */
72
+ export function lookRuntimeSignature(expression) {
73
+ if (isWebExpression(expression) && expression.kind === "ExtensionExpression:web:look-hook")
74
+ return `@${expression.name}`;
75
+ if (expression.kind === "UnaryExpression" && expression.operator === "not")
76
+ return `!(${lookRuntimeSignature(expression.operand)})`;
77
+ if (expression.kind === "BinaryExpression")
78
+ return `(${lookRuntimeSignature(expression.left)}${expression.operator}${lookRuntimeSignature(expression.right)})`;
79
+ if (expression.kind === "MemberExpression")
80
+ return `${lookRuntimeSignature(expression.object)}.${expression.property}`;
81
+ if (expression.kind === "IdentifierExpression")
82
+ return `id:${expression.name}`;
83
+ if (isWebUnit(expression))
84
+ return `${expression.value}${expression.unit}`;
85
+ if (expression.kind === "LiteralExpression")
86
+ return `lit:${expression.raw}`;
87
+ return `span:${expression.span.start}`;
88
+ }
89
+ export function lookKebab(value) {
90
+ return value.replace(/[A-Z]/gu, (character) => `-${character.toLowerCase()}`);
91
+ }
92
+ //# sourceMappingURL=media-conditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-conditions.js","sourceRoot":"","sources":["../../src/analysis/media-conditions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * One Web module analyzed end to end: the tables the whole-program rules are
3
+ * read out of, the two refusals that are decided before the core walk starts,
4
+ * and the three reports that can only be written once it has ended.
5
+ *
6
+ * D115 P4 R3c. The sequence is one function because the *order* is the rule —
7
+ * the Look and reactive tables have to exist before any statement is walked, the
8
+ * two module-level refusals land at their declarations rather than at a later
9
+ * use, and each closing report needs the whole module's evidence. The core walk
10
+ * itself stays on the analyzer, which is the only thing that can reach it, and
11
+ * arrives here as `analyzeCore`.
12
+ */
13
+ import { type Diagnostic } from "@velarscript/compiler";
14
+ import { type Program } from "@velarscript/compiler/extension";
15
+ import { type LookStaticScope, type LookStaticValue } from "../look-static.ts";
16
+ import { type WebJsxAttribute as JSXAttribute, type WebJsxElementExpression as JSXElementExpression, type WebLookExpression } from "../ast.ts";
17
+ import { type FunctionDeclarationStatement, type KeyedRebuildHost } from "./keyed-rebuild.ts";
18
+ import { type LookImportSite } from "./look-sites.ts";
19
+ import { type RetiredAccessorHost } from "./reactivity/retired-accessors.ts";
20
+ import { type ReactiveWriterDeclaration } from "./watch-cycles.ts";
21
+ /**
22
+ * The module-wide tables this pass fills, and the two module readings the
23
+ * before-and-after refusals need. Every table is written here and read by a
24
+ * collaborator that declares it `readonly`, which is why they are accessor
25
+ * pairs on the analyzer rather than plain fields on the host.
26
+ */
27
+ export interface ProgramTableHost {
28
+ /** Every name in this module whose read is reactive without the binding being a state/prop reference. */
29
+ readonly derivedReactiveNames: Set<string>;
30
+ /** The `velar/look` values this module imported, which seed the compile-time Look scope. */
31
+ readonly importedLookStaticValues: ReadonlyMap<string, LookStaticValue>;
32
+ /** D89 A4: the binding identity of every list a keyed `.map(...)` interpolation renders. */
33
+ readonly keyedListSources: Set<string>;
34
+ /** D57 rule 138: `velar/web-test` is legal only where the browser runner looks. */
35
+ readonly webModulePath: string | null;
36
+ /** The elements whose `key` the keyed fast path will actually read. */
37
+ readonly honoredJsxKeys: ReadonlySet<JSXElementExpression>;
38
+ /** Elements already answered for an ineffective key, so this pass does not repeat one. */
39
+ readonly reportedJsxKeys: ReadonlySet<JSXElementExpression>;
40
+ /** Every `key` written on a statically placed element, judged once the walk has ended. */
41
+ readonly staticJsxKeys: readonly {
42
+ readonly element: JSXElementExpression;
43
+ readonly attribute: JSXAttribute;
44
+ }[];
45
+ lookBuilderNames: ReadonlyMap<string, string>;
46
+ lookDeclarations: ReadonlyMap<string, WebLookExpression | null>;
47
+ lookImport: LookImportSite | null;
48
+ lookStatic: LookStaticScope;
49
+ moduleFunctions: ReadonlyMap<string, FunctionDeclarationStatement | null>;
50
+ publicConfigNames: ReadonlySet<string>;
51
+ reactiveDerivations: ReadonlyMap<string, ReadonlySet<string> | null>;
52
+ reactiveStateNames: ReadonlyMap<string, boolean>;
53
+ reactiveWriters: ReadonlyMap<string, ReactiveWriterDeclaration | null>;
54
+ readonly diagnostics: Diagnostic[];
55
+ markTypeNameRefused(name: string): void;
56
+ }
57
+ /**
58
+ * What the program passes ask of the analyzer that hosts them: the tables above,
59
+ * plus everything the two closing reports need — the keyed-rebuild advisory and
60
+ * the retired-accessor migration are the last two passes, so this face really
61
+ * does contain theirs.
62
+ */
63
+ export type ProgramPassHost = ProgramTableHost & KeyedRebuildHost & RetiredAccessorHost;
64
+ export declare function analyzeWebProgram(host: ProgramPassHost, program: Program, analyzeCore: (program: Program) => void): readonly Diagnostic[];
65
+ /**
66
+ * D57 rule 138: `velar/web-test` only has a runtime under `velar test
67
+ * --browser`, so an import of it anywhere else compiles a call that cannot
68
+ * succeed. D51 rule 109 puts the refusal at the declaration rather than at the
69
+ * eventual use, so the error lands on the `import` line — including the
70
+ * JavaScript-bridge and re-export spellings, which reach the same runtime.
71
+ */
72
+ export declare function reportBrowserTestImports(host: ProgramPassHost, program: Program): void;
73
+ /**
74
+ * D72 rule 186: a Web module publishes its own type names, and a user
75
+ * declaration of one used to be accepted at the declaration and then lose at
76
+ * every use — `type Event:` compiled, and `describe({kind: "charge"})` was
77
+ * told it could not assign to `Event`, naming a type the author had just
78
+ * written. D51 rule 109 already settled where that refusal belongs: at the
79
+ * declaration, which is the only place a rename is cheap.
80
+ *
81
+ * The names come from the extension's own published table, so adding a type
82
+ * to `WEB_OWNED_TYPE_NAMES` extends this protection with it. The last time
83
+ * this family was repaired by listing names instead of deriving them, the
84
+ * list drifted; D57 rule 135 is the same repair on the Core roster.
85
+ *
86
+ * Core now says the same sentence about its own built-in type names —
87
+ * `builtinTypeNameDeclarationMessage` in packages/compiler/src/analyzer.ts,
88
+ * reported as VEL3007. The rosters differ; the wording is meant to read
89
+ * alike, so a change to either sentence belongs in both.
90
+ *
91
+ * `Duration` is on both rosters — Core owns it as a primitive and
92
+ * `velar/look` republishes it — so a Web module used to report it twice. This
93
+ * refusal is the more specific of the two, because it names the surface the
94
+ * author is writing against, so it marks the name refused and Core's stays
95
+ * unsaid. The mark is Core's own hook, which is what lets this pass take
96
+ * precedence without either side learning the other's roster.
97
+ */
98
+ export declare function rejectWebOwnedTypeNames(host: ProgramPassHost, program: Program): void;
99
+ /**
100
+ * WEB-C1: charter §14 promises that a key outside a keyed shape is a
101
+ * diagnostic rather than a silent no-op. Interpolated positions report while
102
+ * their interpolation is walked; static positions are collected during JSX
103
+ * inference and reported once every keyed interpolation is known.
104
+ */
105
+ export declare function reportStaticJsxKeys(host: ProgramPassHost): void;
106
+ //# sourceMappingURL=program-passes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-passes.d.ts","sourceRoot":"","sources":["../../src/analysis/program-passes.ts"],"names":[],"mappings":"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"}