zyzz 0.0.27 → 0.0.29

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 (320) hide show
  1. package/binding/wasi/wasi-worker.mjs +186 -0
  2. package/binding/wasi/zyzz.wasi.cjs +2302 -0
  3. package/binding/wasi/zyzz.wasm32-wasi.wasm +0 -0
  4. package/binding/zyzz.linux-x64-gnu.node +0 -0
  5. package/dist/babel/index.d.ts.map +1 -1
  6. package/dist/babel/index.js +2 -4
  7. package/dist/babel/index.js.map +1 -1
  8. package/dist/babel/internal/Compilation.d.ts +0 -1
  9. package/dist/babel/internal/Compilation.d.ts.map +1 -1
  10. package/dist/compiler/Graph.d.ts +14 -11
  11. package/dist/compiler/Graph.d.ts.map +1 -1
  12. package/dist/compiler/Graph.js +57 -1442
  13. package/dist/compiler/Graph.js.map +1 -1
  14. package/dist/compiler/Native.d.ts +7 -9
  15. package/dist/compiler/Native.d.ts.map +1 -1
  16. package/dist/compiler/Native.js +12 -716
  17. package/dist/compiler/Native.js.map +1 -1
  18. package/dist/compiler/Source.d.ts +122 -24
  19. package/dist/compiler/Source.d.ts.map +1 -1
  20. package/dist/compiler/Source.js +10 -1113
  21. package/dist/compiler/Source.js.map +1 -1
  22. package/dist/compiler/Transform.d.ts +4 -3
  23. package/dist/compiler/Transform.d.ts.map +1 -1
  24. package/dist/compiler/Transform.js +13 -958
  25. package/dist/compiler/Transform.js.map +1 -1
  26. package/dist/compiler/internal/AtRules.d.ts +5 -1
  27. package/dist/compiler/internal/AtRules.d.ts.map +1 -1
  28. package/dist/compiler/internal/AtRules.js +12 -106
  29. package/dist/compiler/internal/AtRules.js.map +1 -1
  30. package/dist/compiler/internal/Context.d.ts +11 -0
  31. package/dist/compiler/internal/Context.d.ts.map +1 -0
  32. package/dist/compiler/internal/Context.js +11 -0
  33. package/dist/compiler/internal/Context.js.map +1 -0
  34. package/dist/compiler/internal/Results.d.ts +148 -0
  35. package/dist/compiler/internal/Results.d.ts.map +1 -0
  36. package/dist/compiler/internal/Results.js +259 -0
  37. package/dist/compiler/internal/Results.js.map +1 -0
  38. package/dist/compiler/internal/Syntax.d.ts +0 -2
  39. package/dist/compiler/internal/Syntax.d.ts.map +1 -1
  40. package/dist/compiler/internal/Syntax.js +0 -2
  41. package/dist/compiler/internal/Syntax.js.map +1 -1
  42. package/dist/compiler/internal/Wire.d.ts +17 -0
  43. package/dist/compiler/internal/Wire.d.ts.map +1 -0
  44. package/dist/compiler/internal/Wire.js +795 -0
  45. package/dist/compiler/internal/Wire.js.map +1 -0
  46. package/dist/internal/Addon.d.ts +28 -0
  47. package/dist/internal/Addon.d.ts.map +1 -0
  48. package/dist/internal/Addon.js +87 -0
  49. package/dist/internal/Addon.js.map +1 -0
  50. package/dist/internal/Authoring.d.ts.map +1 -1
  51. package/dist/internal/Authoring.js +37 -7
  52. package/dist/internal/Authoring.js.map +1 -1
  53. package/dist/internal/Configuration.d.ts +6 -1
  54. package/dist/internal/Configuration.d.ts.map +1 -1
  55. package/dist/internal/Configuration.js.map +1 -1
  56. package/dist/internal/Literal.d.ts +5 -2
  57. package/dist/internal/Literal.d.ts.map +1 -1
  58. package/dist/internal/Literal.js +7 -2
  59. package/dist/internal/Literal.js.map +1 -1
  60. package/dist/internal/Theme.d.ts +4 -0
  61. package/dist/internal/Theme.d.ts.map +1 -1
  62. package/dist/internal/Theme.js.map +1 -1
  63. package/dist/internal/Token.d.ts +2 -1
  64. package/dist/internal/Token.d.ts.map +1 -1
  65. package/dist/internal/Token.js +2 -2
  66. package/dist/internal/Token.js.map +1 -1
  67. package/dist/internal/Vlq.d.ts +14 -0
  68. package/dist/internal/Vlq.d.ts.map +1 -0
  69. package/dist/internal/Vlq.js +47 -0
  70. package/dist/internal/Vlq.js.map +1 -0
  71. package/dist/internal/Wasm.d.ts +22 -0
  72. package/dist/internal/Wasm.d.ts.map +1 -0
  73. package/dist/internal/Wasm.js +83 -0
  74. package/dist/internal/Wasm.js.map +1 -0
  75. package/dist/metro/Graph.d.ts +0 -1
  76. package/dist/metro/Graph.d.ts.map +1 -1
  77. package/dist/metro/transformer.d.ts.map +1 -1
  78. package/dist/metro/transformer.js +0 -1
  79. package/dist/metro/transformer.js.map +1 -1
  80. package/dist/next/internal/Project.d.ts.map +1 -1
  81. package/dist/next/internal/Project.js +2 -5
  82. package/dist/next/internal/Project.js.map +1 -1
  83. package/dist/node/Host.d.ts.map +1 -1
  84. package/dist/node/Host.js +0 -2
  85. package/dist/node/Host.js.map +1 -1
  86. package/dist/node/internal/Contracts.d.ts.map +1 -1
  87. package/dist/node/internal/Contracts.js +3 -7
  88. package/dist/node/internal/Contracts.js.map +1 -1
  89. package/dist/node/internal/Snapshot.d.ts +0 -1
  90. package/dist/node/internal/Snapshot.d.ts.map +1 -1
  91. package/dist/node/internal/Snapshot.js +0 -6
  92. package/dist/node/internal/Snapshot.js.map +1 -1
  93. package/dist/runtime/Composition.d.ts +2 -3
  94. package/dist/runtime/Composition.d.ts.map +1 -1
  95. package/dist/runtime/Composition.js +51 -30
  96. package/dist/runtime/Composition.js.map +1 -1
  97. package/dist/runtime/Recipe.d.ts.map +1 -1
  98. package/dist/runtime/Recipe.js +16 -12
  99. package/dist/runtime/Recipe.js.map +1 -1
  100. package/dist/styleFunction.d.ts +11 -2
  101. package/dist/styleFunction.d.ts.map +1 -1
  102. package/dist/styleFunction.js +3 -1
  103. package/dist/styleFunction.js.map +1 -1
  104. package/dist/unplugin/index.d.ts.map +1 -1
  105. package/dist/unplugin/index.js +3 -6
  106. package/dist/unplugin/index.js.map +1 -1
  107. package/dist/vite/index.d.ts +7 -0
  108. package/dist/vite/index.d.ts.map +1 -1
  109. package/dist/vite/index.js +862 -216
  110. package/dist/vite/index.js.map +1 -1
  111. package/dist/web/Css.d.ts +8 -3
  112. package/dist/web/Css.d.ts.map +1 -1
  113. package/dist/web/Css.js +5 -721
  114. package/dist/web/Css.js.map +1 -1
  115. package/dist/web/internal/Block.d.ts +0 -2
  116. package/dist/web/internal/Block.d.ts.map +1 -1
  117. package/dist/web/internal/Block.js +1 -12
  118. package/dist/web/internal/Block.js.map +1 -1
  119. package/dist/web/internal/ClassName.d.ts +23 -18
  120. package/dist/web/internal/ClassName.d.ts.map +1 -1
  121. package/dist/web/internal/ClassName.js +26 -55
  122. package/dist/web/internal/ClassName.js.map +1 -1
  123. package/dist/web/internal/Contributions.d.ts +3 -5
  124. package/dist/web/internal/Contributions.d.ts.map +1 -1
  125. package/dist/web/internal/Contributions.js +0 -45
  126. package/dist/web/internal/Contributions.js.map +1 -1
  127. package/dist/web/internal/Engine.browser.d.ts +8 -0
  128. package/dist/web/internal/Engine.browser.d.ts.map +1 -0
  129. package/dist/web/internal/Engine.browser.js +42 -0
  130. package/dist/web/internal/Engine.browser.js.map +1 -0
  131. package/dist/web/internal/Engine.d.ts +9 -0
  132. package/dist/web/internal/Engine.d.ts.map +1 -0
  133. package/dist/web/internal/Engine.js +14 -0
  134. package/dist/web/internal/Engine.js.map +1 -0
  135. package/dist/web/internal/Themes.d.ts +1 -9
  136. package/dist/web/internal/Themes.d.ts.map +1 -1
  137. package/dist/web/internal/Themes.js +3 -221
  138. package/dist/web/internal/Themes.js.map +1 -1
  139. package/dist/web/internal/Wasm.generated.d.ts +4 -0
  140. package/dist/web/internal/Wasm.generated.d.ts.map +1 -0
  141. package/dist/web/internal/Wasm.generated.js +4 -0
  142. package/dist/web/internal/Wasm.generated.js.map +1 -0
  143. package/dist/web/internal/Wire.d.ts +19 -0
  144. package/dist/web/internal/Wire.d.ts.map +1 -0
  145. package/dist/web/internal/Wire.js +387 -0
  146. package/dist/web/internal/Wire.js.map +1 -0
  147. package/package.json +20 -1
  148. package/src/babel/index.ts +2 -5
  149. package/src/babel/internal/Compilation.ts +0 -1
  150. package/src/compiler/Graph.ts +89 -1930
  151. package/src/compiler/Native.ts +18 -871
  152. package/src/compiler/Source.ts +144 -1579
  153. package/src/compiler/Transform.ts +16 -1312
  154. package/src/compiler/internal/AtRules.ts +27 -115
  155. package/src/compiler/internal/Context.ts +11 -0
  156. package/src/compiler/internal/Results.ts +406 -0
  157. package/src/compiler/internal/Syntax.ts +0 -3
  158. package/src/compiler/internal/Wire.ts +1045 -0
  159. package/src/internal/Addon.ts +118 -0
  160. package/src/internal/Authoring.ts +53 -18
  161. package/src/internal/Configuration.ts +38 -1
  162. package/src/internal/Literal.ts +7 -2
  163. package/src/internal/Theme.ts +15 -0
  164. package/src/internal/Token.ts +2 -2
  165. package/src/internal/Vlq.ts +59 -0
  166. package/src/internal/Wasm.ts +111 -0
  167. package/src/metro/transformer.ts +0 -1
  168. package/src/next/internal/Project.ts +2 -9
  169. package/src/node/Host.ts +0 -2
  170. package/src/node/internal/Contracts.ts +3 -7
  171. package/src/node/internal/Snapshot.ts +0 -8
  172. package/src/runtime/Composition.ts +48 -25
  173. package/src/runtime/Recipe.ts +21 -14
  174. package/src/styleFunction.ts +31 -2
  175. package/src/unplugin/index.ts +6 -6
  176. package/src/vite/index.ts +1157 -241
  177. package/src/web/Css.ts +12 -908
  178. package/src/web/internal/Block.ts +0 -14
  179. package/src/web/internal/ClassName.ts +52 -85
  180. package/src/web/internal/Contributions.ts +3 -59
  181. package/src/web/internal/Engine.browser.ts +51 -0
  182. package/src/web/internal/Engine.ts +17 -0
  183. package/src/web/internal/Themes.ts +3 -279
  184. package/src/web/internal/Wasm.generated.ts +3 -0
  185. package/src/web/internal/Wire.ts +466 -0
  186. package/src/web/internal/wasm.d.ts +9 -0
  187. package/dist/compiler/internal/Applications.d.ts +0 -55
  188. package/dist/compiler/internal/Applications.d.ts.map +0 -1
  189. package/dist/compiler/internal/Applications.js +0 -352
  190. package/dist/compiler/internal/Applications.js.map +0 -1
  191. package/dist/compiler/internal/ColorProfiles.d.ts +0 -3
  192. package/dist/compiler/internal/ColorProfiles.d.ts.map +0 -1
  193. package/dist/compiler/internal/ColorProfiles.js +0 -84
  194. package/dist/compiler/internal/ColorProfiles.js.map +0 -1
  195. package/dist/compiler/internal/CompositionBindings.d.ts +0 -16
  196. package/dist/compiler/internal/CompositionBindings.d.ts.map +0 -1
  197. package/dist/compiler/internal/CompositionBindings.js +0 -89
  198. package/dist/compiler/internal/CompositionBindings.js.map +0 -1
  199. package/dist/compiler/internal/Compositions.d.ts +0 -37
  200. package/dist/compiler/internal/Compositions.d.ts.map +0 -1
  201. package/dist/compiler/internal/Compositions.js +0 -494
  202. package/dist/compiler/internal/Compositions.js.map +0 -1
  203. package/dist/compiler/internal/Configurations.d.ts +0 -26
  204. package/dist/compiler/internal/Configurations.d.ts.map +0 -1
  205. package/dist/compiler/internal/Configurations.js +0 -259
  206. package/dist/compiler/internal/Configurations.js.map +0 -1
  207. package/dist/compiler/internal/Contract.d.ts +0 -30
  208. package/dist/compiler/internal/Contract.d.ts.map +0 -1
  209. package/dist/compiler/internal/Contract.js +0 -753
  210. package/dist/compiler/internal/Contract.js.map +0 -1
  211. package/dist/compiler/internal/Contributions.d.ts +0 -54
  212. package/dist/compiler/internal/Contributions.d.ts.map +0 -1
  213. package/dist/compiler/internal/Contributions.js +0 -1151
  214. package/dist/compiler/internal/Contributions.js.map +0 -1
  215. package/dist/compiler/internal/Descriptors.d.ts +0 -15
  216. package/dist/compiler/internal/Descriptors.d.ts.map +0 -1
  217. package/dist/compiler/internal/Descriptors.js +0 -192
  218. package/dist/compiler/internal/Descriptors.js.map +0 -1
  219. package/dist/compiler/internal/Dynamic.d.ts +0 -14
  220. package/dist/compiler/internal/Dynamic.d.ts.map +0 -1
  221. package/dist/compiler/internal/Dynamic.js +0 -175
  222. package/dist/compiler/internal/Dynamic.js.map +0 -1
  223. package/dist/compiler/internal/Expression.d.ts +0 -19
  224. package/dist/compiler/internal/Expression.d.ts.map +0 -1
  225. package/dist/compiler/internal/Expression.js +0 -164
  226. package/dist/compiler/internal/Expression.js.map +0 -1
  227. package/dist/compiler/internal/Functions.d.ts +0 -5
  228. package/dist/compiler/internal/Functions.d.ts.map +0 -1
  229. package/dist/compiler/internal/Functions.js +0 -191
  230. package/dist/compiler/internal/Functions.js.map +0 -1
  231. package/dist/compiler/internal/Keyframes.d.ts +0 -5
  232. package/dist/compiler/internal/Keyframes.d.ts.map +0 -1
  233. package/dist/compiler/internal/Keyframes.js +0 -51
  234. package/dist/compiler/internal/Keyframes.js.map +0 -1
  235. package/dist/compiler/internal/Names.d.ts +0 -5
  236. package/dist/compiler/internal/Names.d.ts.map +0 -1
  237. package/dist/compiler/internal/Names.js +0 -37
  238. package/dist/compiler/internal/Names.js.map +0 -1
  239. package/dist/compiler/internal/NativeBindings.d.ts +0 -72
  240. package/dist/compiler/internal/NativeBindings.d.ts.map +0 -1
  241. package/dist/compiler/internal/NativeBindings.js +0 -171
  242. package/dist/compiler/internal/NativeBindings.js.map +0 -1
  243. package/dist/compiler/internal/NativeMedia.d.ts +0 -14
  244. package/dist/compiler/internal/NativeMedia.d.ts.map +0 -1
  245. package/dist/compiler/internal/NativeMedia.js +0 -287
  246. package/dist/compiler/internal/NativeMedia.js.map +0 -1
  247. package/dist/compiler/internal/NativeVars.d.ts +0 -28
  248. package/dist/compiler/internal/NativeVars.d.ts.map +0 -1
  249. package/dist/compiler/internal/NativeVars.js +0 -160
  250. package/dist/compiler/internal/NativeVars.js.map +0 -1
  251. package/dist/compiler/internal/PackedStyles.d.ts +0 -37
  252. package/dist/compiler/internal/PackedStyles.d.ts.map +0 -1
  253. package/dist/compiler/internal/PackedStyles.js +0 -344
  254. package/dist/compiler/internal/PackedStyles.js.map +0 -1
  255. package/dist/compiler/internal/Properties.d.ts +0 -5
  256. package/dist/compiler/internal/Properties.d.ts.map +0 -1
  257. package/dist/compiler/internal/Properties.js +0 -82
  258. package/dist/compiler/internal/Properties.js.map +0 -1
  259. package/dist/compiler/internal/RecipeConditions.d.ts +0 -41
  260. package/dist/compiler/internal/RecipeConditions.d.ts.map +0 -1
  261. package/dist/compiler/internal/RecipeConditions.js +0 -82
  262. package/dist/compiler/internal/RecipeConditions.js.map +0 -1
  263. package/dist/compiler/internal/RecipePayloads.d.ts +0 -31
  264. package/dist/compiler/internal/RecipePayloads.d.ts.map +0 -1
  265. package/dist/compiler/internal/RecipePayloads.js +0 -99
  266. package/dist/compiler/internal/RecipePayloads.js.map +0 -1
  267. package/dist/compiler/internal/Recipes.d.ts +0 -32
  268. package/dist/compiler/internal/Recipes.d.ts.map +0 -1
  269. package/dist/compiler/internal/Recipes.js +0 -339
  270. package/dist/compiler/internal/Recipes.js.map +0 -1
  271. package/dist/compiler/internal/Selectors.d.ts +0 -12
  272. package/dist/compiler/internal/Selectors.d.ts.map +0 -1
  273. package/dist/compiler/internal/Selectors.js +0 -268
  274. package/dist/compiler/internal/Selectors.js.map +0 -1
  275. package/dist/compiler/internal/Static.d.ts +0 -39
  276. package/dist/compiler/internal/Static.d.ts.map +0 -1
  277. package/dist/compiler/internal/Static.js +0 -534
  278. package/dist/compiler/internal/Static.js.map +0 -1
  279. package/dist/compiler/internal/Themes.d.ts +0 -190
  280. package/dist/compiler/internal/Themes.d.ts.map +0 -1
  281. package/dist/compiler/internal/Themes.js +0 -1577
  282. package/dist/compiler/internal/Themes.js.map +0 -1
  283. package/dist/compiler/internal/Vars.d.ts +0 -33
  284. package/dist/compiler/internal/Vars.d.ts.map +0 -1
  285. package/dist/compiler/internal/Vars.js +0 -387
  286. package/dist/compiler/internal/Vars.js.map +0 -1
  287. package/dist/compiler/internal/ViewTransitions.d.ts +0 -3
  288. package/dist/compiler/internal/ViewTransitions.d.ts.map +0 -1
  289. package/dist/compiler/internal/ViewTransitions.js +0 -68
  290. package/dist/compiler/internal/ViewTransitions.js.map +0 -1
  291. package/dist/internal/Cascade.d.ts +0 -74
  292. package/dist/internal/Cascade.d.ts.map +0 -1
  293. package/dist/internal/Cascade.js +0 -210
  294. package/dist/internal/Cascade.js.map +0 -1
  295. package/src/compiler/internal/Applications.ts +0 -554
  296. package/src/compiler/internal/ColorProfiles.ts +0 -93
  297. package/src/compiler/internal/CompositionBindings.ts +0 -120
  298. package/src/compiler/internal/Compositions.ts +0 -678
  299. package/src/compiler/internal/Configurations.ts +0 -349
  300. package/src/compiler/internal/Contract.ts +0 -1028
  301. package/src/compiler/internal/Contributions.ts +0 -1561
  302. package/src/compiler/internal/Descriptors.ts +0 -242
  303. package/src/compiler/internal/Dynamic.ts +0 -275
  304. package/src/compiler/internal/Expression.ts +0 -218
  305. package/src/compiler/internal/Functions.ts +0 -206
  306. package/src/compiler/internal/Keyframes.ts +0 -62
  307. package/src/compiler/internal/Names.ts +0 -48
  308. package/src/compiler/internal/NativeBindings.ts +0 -235
  309. package/src/compiler/internal/NativeMedia.ts +0 -342
  310. package/src/compiler/internal/NativeVars.ts +0 -231
  311. package/src/compiler/internal/PackedStyles.ts +0 -473
  312. package/src/compiler/internal/Properties.ts +0 -121
  313. package/src/compiler/internal/RecipeConditions.ts +0 -139
  314. package/src/compiler/internal/RecipePayloads.ts +0 -132
  315. package/src/compiler/internal/Recipes.ts +0 -531
  316. package/src/compiler/internal/Selectors.ts +0 -339
  317. package/src/compiler/internal/Static.ts +0 -784
  318. package/src/compiler/internal/Themes.ts +0 -2398
  319. package/src/compiler/internal/Vars.ts +0 -516
  320. package/src/compiler/internal/ViewTransitions.ts +0 -82
@@ -1,352 +0,0 @@
1
- import * as Walker from 'oxc-walker';
2
- import * as Scope from './Scope.js';
3
- /** Conservatively proves direct applications without changing binding reads. */
4
- export function create(program, calls, options = {}) {
5
- const definitions = new Map(calls.map((call) => [call.start, call]));
6
- const memberBindings = new Map();
7
- const referencedDefinitions = new Set();
8
- const namespaceCounts = new Map();
9
- for (const statement of program.body) {
10
- const node = statement.type === 'ExportNamedDeclaration'
11
- ? statement.declaration
12
- : statement;
13
- if (node?.type === 'TSModuleDeclaration' && node.id.type === 'Identifier')
14
- namespaceCounts.set(node.id.name, (namespaceCounts.get(node.id.name) ?? 0) + 1);
15
- }
16
- const candidates = [];
17
- for (const statement of program.body) {
18
- if (statement.type === 'TSModuleDeclaration' &&
19
- statement.id.type === 'Identifier' &&
20
- statement.body?.type === 'TSModuleBlock') {
21
- const members = new Map();
22
- const ends = new Map();
23
- let valid = true;
24
- for (const member of statement.body.body) {
25
- const node = member.type === 'ExportNamedDeclaration'
26
- ? member.declaration
27
- : undefined;
28
- if (node?.type !== 'VariableDeclaration' || node.kind !== 'const') {
29
- valid = false;
30
- break;
31
- }
32
- for (const declaration of node.declarations) {
33
- const call = declaration.init && definitions.get(declaration.init.start);
34
- if (declaration.id.type !== 'Identifier' ||
35
- declaration.init?.type !== 'CallExpression' ||
36
- declaration.init.end !== call?.end ||
37
- members.has(declaration.id.name)) {
38
- valid = false;
39
- break;
40
- }
41
- members.set(declaration.id.name, call);
42
- ends.set(call.name, declaration.id.end);
43
- memberBindings.set(declaration.id.start, call.name);
44
- }
45
- }
46
- if (valid && members.size)
47
- candidates.push({
48
- declaration: { id: statement.id },
49
- direct: undefined,
50
- members,
51
- namespace: { ends, start: statement.start },
52
- ready: statement.end,
53
- });
54
- continue;
55
- }
56
- // Exported values can escape and object members can subsequently be replaced.
57
- if (statement.type !== 'VariableDeclaration' || statement.kind !== 'const')
58
- continue;
59
- for (const declaration of statement.declarations) {
60
- if (declaration.id.type !== 'Identifier' || !declaration.init)
61
- continue;
62
- const members = new Map();
63
- const candidate = definitions.get(declaration.init.start);
64
- const direct = declaration.init.type === 'CallExpression' &&
65
- declaration.init.end === candidate?.end
66
- ? candidate
67
- : undefined;
68
- if (!direct) {
69
- if (declaration.init.type !== 'ObjectExpression')
70
- continue;
71
- let valid = true;
72
- for (const property of declaration.init.properties) {
73
- if (property.type !== 'Property' ||
74
- property.computed ||
75
- property.method ||
76
- property.kind !== 'init') {
77
- valid = false;
78
- break;
79
- }
80
- const key = property.key.type === 'Identifier' ? property.key.name : undefined;
81
- const candidate = definitions.get(property.value.start);
82
- const call = property.value.type === 'CallExpression' &&
83
- property.value.end === candidate?.end
84
- ? candidate
85
- : undefined;
86
- if (!key || key === '__proto__' || !call || members.has(key)) {
87
- valid = false;
88
- break;
89
- }
90
- members.set(key, call);
91
- }
92
- if (!valid || !members.size)
93
- continue;
94
- }
95
- candidates.push({
96
- declaration: { ...declaration, id: declaration.id },
97
- direct,
98
- members,
99
- ready: declaration.end,
100
- });
101
- }
102
- }
103
- if (!candidates.length)
104
- return undefined;
105
- const lexical = new Set();
106
- // Reads inside functions, classes, or namespaces may run before initialization.
107
- const deferred = new Set();
108
- const terminals = new Set();
109
- const scope = new Scope.Tracker({ preserveExitedScopes: true });
110
- Walker.walk(program, { scopeTracker: scope });
111
- scope.freeze();
112
- const ancestors = [];
113
- Walker.walk(program, {
114
- scopeTracker: scope,
115
- enter(node, parent) {
116
- ancestors.push(node);
117
- if (node.type !== 'Identifier' ||
118
- !parent ||
119
- !Walker.isReferenceIdentifier(node, parent))
120
- return;
121
- if (ancestors.some((node) => [
122
- 'TSTypeQuery',
123
- 'TSTypeAnnotation',
124
- 'TSTypeAliasDeclaration',
125
- 'TSInterfaceDeclaration',
126
- 'TSTypeParameterInstantiation',
127
- 'TSTypeParameterDeclaration',
128
- ].includes(node.type)))
129
- return;
130
- const binding = scope.getDeclaration(node.name, { mode: 'value' });
131
- const id = binding?.node;
132
- const member = id && memberBindings.get(id.start);
133
- if (member)
134
- referencedDefinitions.add(member);
135
- if (id &&
136
- candidates.some((candidate) => candidate.declaration.id.start === id.start)) {
137
- lexical.add(node);
138
- if (terminal(ancestors))
139
- terminals.add(node);
140
- if (ancestors.some((node) => [
141
- 'ArrowFunctionExpression',
142
- 'ClassDeclaration',
143
- 'ClassExpression',
144
- 'FunctionDeclaration',
145
- 'FunctionExpression',
146
- 'TSModuleDeclaration',
147
- ].includes(node.type)))
148
- deferred.add(node);
149
- }
150
- },
151
- leave() {
152
- ancestors.pop();
153
- },
154
- });
155
- const parents = new Map();
156
- const references = new Map(candidates.map(({ declaration }) => [declaration.id.name, []]));
157
- let evaluation = false;
158
- // Returns undefined when any read escapes. Recipes, dynamic styles, and
159
- // applications with overrides keep their runtime calls.
160
- function collect(candidate) {
161
- const { declaration, direct, members } = candidate;
162
- const applications = [];
163
- const called = new Set();
164
- for (const reference of references.get(declaration.id.name) ?? []) {
165
- if (reference === declaration.id)
166
- continue;
167
- let callee = reference;
168
- let call = direct;
169
- if (!direct) {
170
- const member = parents.get(reference);
171
- if (member?.type !== 'MemberExpression' ||
172
- member.object !== reference ||
173
- member.computed ||
174
- member.optional ||
175
- member.property.type !== 'Identifier')
176
- return undefined;
177
- call = members.get(member.property.name);
178
- callee = member;
179
- }
180
- if (call?.composition ||
181
- call?.runtimeComposition ||
182
- (!options.dynamic && (call?.slots || call?.recipe)))
183
- continue;
184
- const application = parents.get(callee);
185
- if (!call ||
186
- application?.type !== 'CallExpression' ||
187
- application.callee !== callee ||
188
- application.optional)
189
- return undefined;
190
- // An override needs the runtime callable, but exposes no other definition.
191
- if (!options.dynamic && application.arguments.length) {
192
- called.add(call.name);
193
- continue;
194
- }
195
- applications.push({
196
- calleeEnd: callee.end,
197
- end: application.end,
198
- initialized: !deferred.has(reference) &&
199
- reference.start >= candidate.ready &&
200
- (!candidate.namespace ||
201
- namespaceCounts.get(declaration.id.name) === 1),
202
- name: call.name,
203
- start: application.start,
204
- terminal: terminals.has(reference),
205
- });
206
- }
207
- return { applications, called };
208
- }
209
- return {
210
- dead() {
211
- if (evaluation)
212
- return new Set();
213
- const result = new Set();
214
- const counts = new Map();
215
- for (const { declaration } of candidates)
216
- counts.set(declaration.id.name, (counts.get(declaration.id.name) ?? 0) + 1);
217
- for (const { declaration, direct, members } of candidates) {
218
- if (counts.get(declaration.id.name) > 1 ||
219
- (namespaceCounts.get(declaration.id.name) ?? 0) > 1)
220
- continue;
221
- const reads = references.get(declaration.id.name) ?? [];
222
- if (direct) {
223
- if (!reads.length)
224
- result.add(direct.name);
225
- continue;
226
- }
227
- const used = new Set();
228
- let escapes = false;
229
- for (const reference of reads) {
230
- const member = parents.get(reference);
231
- if (member?.type !== 'MemberExpression' ||
232
- member.object !== reference ||
233
- member.computed ||
234
- member.optional ||
235
- member.property.type !== 'Identifier') {
236
- escapes = true;
237
- break;
238
- }
239
- used.add(member.property.name);
240
- }
241
- if (!escapes)
242
- for (const [name, call] of members)
243
- if (!used.has(name) && !referencedDefinitions.has(call.name))
244
- result.add(call.name);
245
- }
246
- return result;
247
- },
248
- definitions() {
249
- const namespaces = [];
250
- const values = new Map();
251
- if (evaluation)
252
- return { namespaces, values };
253
- const counts = new Map();
254
- for (const { declaration } of candidates)
255
- counts.set(declaration.id.name, (counts.get(declaration.id.name) ?? 0) + 1);
256
- for (const candidate of candidates) {
257
- const name = candidate.declaration.id.name;
258
- if (counts.get(name) > 1 || (namespaceCounts.get(name) ?? 0) > 1)
259
- continue;
260
- const result = collect(candidate);
261
- if (!result)
262
- continue;
263
- let erased = !!candidate.namespace;
264
- for (const call of candidate.direct
265
- ? [candidate.direct]
266
- : candidate.members.values()) {
267
- if (call.composition ||
268
- call.runtimeComposition ||
269
- call.slots ||
270
- call.recipe ||
271
- result.called.has(call.name)) {
272
- erased = false;
273
- continue;
274
- }
275
- const initialized = result.applications.every((application) => application.name !== call.name || application.initialized);
276
- values.set(call.name, initialized);
277
- erased &&= initialized;
278
- }
279
- if (erased)
280
- namespaces.push(candidate.namespace);
281
- }
282
- return { namespaces, values };
283
- },
284
- enter(node, parent) {
285
- if (node.type === 'MemberExpression' &&
286
- node.object.type === 'Identifier' &&
287
- references.has(node.object.name) &&
288
- parent)
289
- parents.set(node, parent);
290
- if (node.type !== 'Identifier')
291
- return;
292
- if (node.name === 'eval')
293
- evaluation = true;
294
- if (!lexical.has(node))
295
- return;
296
- const nodes = references.get(node.name);
297
- if (!nodes)
298
- return;
299
- nodes.push(node);
300
- if (parent)
301
- parents.set(node, parent);
302
- },
303
- find() {
304
- if (evaluation)
305
- return [];
306
- return candidates.flatMap((candidate) => collect(candidate)?.applications ?? []);
307
- },
308
- };
309
- }
310
- // Matches a no-argument application spread onto, or read as the class of, a DOM element.
311
- function terminal(path) {
312
- let index = path.length - 1;
313
- let node = path[index];
314
- const member = path[index - 1];
315
- if (member?.type === 'MemberExpression' && member.object === node)
316
- node = path[--index];
317
- const call = path[--index];
318
- if (call?.type !== 'CallExpression' ||
319
- call.callee !== node ||
320
- call.arguments.length)
321
- return false;
322
- const parent = path[--index];
323
- if (parent?.type === 'JSXSpreadAttribute')
324
- return parent.argument === call && alone(path[index - 1], parent);
325
- if (parent?.type !== 'MemberExpression' ||
326
- parent.object !== call ||
327
- parent.computed ||
328
- parent.property.type !== 'Identifier' ||
329
- !/^class(?:Name)?$/.test(parent.property.name))
330
- return false;
331
- const container = path[--index];
332
- const attribute = path[--index];
333
- return (container?.type === 'JSXExpressionContainer' &&
334
- container.expression === parent &&
335
- attribute?.type === 'JSXAttribute' &&
336
- attribute.value === container &&
337
- attribute.name.type === 'JSXIdentifier' &&
338
- /^class(?:Name)?$/.test(attribute.name.name) &&
339
- alone(path[index - 1], attribute));
340
- }
341
- // Other spreads or class attributes could add another style's classes.
342
- function alone(element, own) {
343
- return (element?.type === 'JSXOpeningElement' &&
344
- element.name.type === 'JSXIdentifier' &&
345
- /^[a-z]/.test(element.name.name) &&
346
- element.attributes.every((attribute) => attribute === own ||
347
- (attribute.type === 'JSXAttribute' &&
348
- !(attribute.name.type === 'JSXIdentifier'
349
- ? attribute.name.name
350
- : attribute.name.namespace.name).startsWith('class'))));
351
- }
352
- //# sourceMappingURL=Applications.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Applications.js","sourceRoot":"","sources":["../../../src/compiler/internal/Applications.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /** Validates complete profile blocks, including decoded component and intent tokens. */
2
- export declare function validate(source: string): void;
3
- //# sourceMappingURL=ColorProfiles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorProfiles.d.ts","sourceRoot":"","sources":["../../../src/compiler/internal/ColorProfiles.ts"],"names":[],"mappings":"AAGA,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAwF7C"}
@@ -1,84 +0,0 @@
1
- /** Checks custom color-profile descriptors before source or packed publication. @module */
2
- import * as Lightning from 'lightningcss';
3
- /** Validates complete profile blocks, including decoded component and intent tokens. */
4
- export function validate(source) {
5
- Lightning.transform({
6
- filename: 'color-profiles.css',
7
- code: new TextEncoder().encode(source),
8
- visitor: {
9
- Rule(rule) {
10
- if (rule.type !== 'unknown' || rule.value.name !== 'color-profile')
11
- return;
12
- const name = rule.value.prelude[0];
13
- if (rule.value.prelude.length !== 1 ||
14
- !rule.value.block ||
15
- !(name?.type === 'dashed-ident' ||
16
- (name?.type === 'token' &&
17
- name.value.type === 'ident' &&
18
- name.value.value.toLowerCase() === 'device-cmyk')))
19
- throw new Error('Expected a color-profile name and descriptor block.');
20
- let declaration = [];
21
- let src = false;
22
- const flush = () => {
23
- if (!declaration.length)
24
- return;
25
- const [name, colon, ...values] = declaration;
26
- if (name?.type !== 'token' ||
27
- name.value.type !== 'ident' ||
28
- colon?.type !== 'token' ||
29
- colon.value.type !== 'colon')
30
- throw new Error('Invalid color-profile descriptor.');
31
- const key = name.value.value.toLowerCase();
32
- if (key === 'src') {
33
- if (values.length !== 1 || values[0]?.type !== 'url')
34
- throw new Error('Color-profile src requires one URL.');
35
- src = true;
36
- }
37
- else if (key === 'rendering-intent') {
38
- const token = values[0];
39
- if (values.length !== 1 ||
40
- token?.type !== 'token' ||
41
- token.value.type !== 'ident' ||
42
- ![
43
- 'absolute-colorimetric',
44
- 'relative-colorimetric',
45
- 'perceptual',
46
- 'saturation',
47
- ].includes(token.value.value.toLowerCase()))
48
- throw new Error('Invalid color-profile rendering intent.');
49
- }
50
- else if (key === 'components') {
51
- if (values.length % 2 !== 1 ||
52
- values.some((token, index) => {
53
- if (index % 2)
54
- return token.type !== 'token' || token.value.type !== 'comma';
55
- const name = token.type === 'dashed-ident'
56
- ? token.value
57
- : token.type === 'token' && token.value.type === 'ident'
58
- ? token.value.value
59
- : undefined;
60
- return name === undefined || name.toLowerCase() === 'none';
61
- }))
62
- throw new Error('Color-profile components require comma-separated identifiers other than none.');
63
- }
64
- else
65
- throw new Error('Unknown color-profile descriptor.');
66
- declaration = [];
67
- };
68
- for (const token of rule.value.block) {
69
- if (token.type === 'token' &&
70
- ['white-space', 'comment'].includes(token.value.type))
71
- continue;
72
- if (token.type === 'token' && token.value.type === 'semicolon')
73
- flush();
74
- else
75
- declaration.push(token);
76
- }
77
- flush();
78
- if (!src)
79
- throw new Error('Color-profile requires a src descriptor.');
80
- },
81
- },
82
- });
83
- }
84
- //# sourceMappingURL=ColorProfiles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorProfiles.js","sourceRoot":"","sources":["../../../src/compiler/internal/ColorProfiles.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /** Resolves immutable applied-props aliases without reevaluating their initializers. @module */
2
- import type * as Ast from '@oxc-project/types';
3
- /** Collects immutable bindings during the composition scope walk. */
4
- export declare function create(options: create.Options): {
5
- enter(node: Ast.Node, parent: Ast.Node | null | undefined): void;
6
- resolve(input: Ast.Node, ranges: readonly Ast.CallExpression[]): Ast.Node;
7
- };
8
- /** Lexical lookup used by applied-props resolution. */
9
- export declare namespace create {
10
- /** The active scope walker owns declaration identity and shadowing. */
11
- type Options = {
12
- /** Resolves the value declaration visible at the current identifier. */
13
- readonly declaration: (name: string) => Ast.Node | undefined;
14
- };
15
- }
16
- //# sourceMappingURL=CompositionBindings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompositionBindings.d.ts","sourceRoot":"","sources":["../../../src/compiler/internal/CompositionBindings.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,KAAK,KAAK,GAAG,MAAM,oBAAoB,CAAA;AAK9C,qEAAqE;AACrE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAoD1C,KAAK,OAAO,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS;IA2BzD,OAAO,QAAQ,GAAG,CAAC,IAAI,UAAU,SAAS,GAAG,CAAC,cAAc,EAAE;EAwBjE;AAED,uDAAuD;AACvD,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,uEAAuE;IACvE,KAAK,OAAO,GAAG;QACb,wEAAwE;QACxE,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,SAAS,CAAA;KAC7D,CAAA;CACF"}
@@ -1,89 +0,0 @@
1
- import * as Walker from 'oxc-walker';
2
- import * as Expression from './Expression.js';
3
- import * as Themes from './Themes.js';
4
- /** Collects immutable bindings during the composition scope walk. */
5
- export function create(options) {
6
- const declarations = new Map();
7
- const references = new Map();
8
- const parents = new Map();
9
- const reads = new Map();
10
- const exported = new Set();
11
- let evaluation = false;
12
- function safe(binding, ranges, seen = new Set()) {
13
- if (evaluation || exported.has(binding))
14
- return false;
15
- if (seen.has(binding))
16
- return true;
17
- seen.add(binding);
18
- return (reads.get(binding) ?? []).every((node) => {
19
- let current = node;
20
- let container = parents.get(current);
21
- while (container?.type === 'TSAsExpression' ||
22
- container?.type === 'TSTypeAssertion' ||
23
- container?.type === 'TSSatisfiesExpression' ||
24
- container?.type === 'TSNonNullExpression' ||
25
- (container?.type === 'LogicalExpression' &&
26
- container.operator === '&&' &&
27
- container.right === current)) {
28
- current = container;
29
- container = parents.get(current);
30
- }
31
- if (container?.type === 'CallExpression' &&
32
- ranges.includes(container) &&
33
- container.arguments.includes(current))
34
- return true;
35
- const parent = container;
36
- if (parent?.type === 'JSXSpreadAttribute' ||
37
- parent?.type === 'TSTypeQuery')
38
- return true;
39
- return (parent?.type === 'VariableDeclarator' &&
40
- declarations.has(parent.start) &&
41
- safe(parent.start, ranges, seen));
42
- });
43
- }
44
- return {
45
- enter(node, parent) {
46
- if (parent)
47
- parents.set(node, parent);
48
- if (node.type === 'CallExpression' &&
49
- node.callee.type === 'Identifier' &&
50
- node.callee.name === 'eval' &&
51
- !options.declaration('eval'))
52
- evaluation = true;
53
- if (node.type === 'VariableDeclaration' && node.kind === 'const')
54
- for (const declaration of node.declarations)
55
- if (declaration.id.type === 'Identifier' && declaration.init) {
56
- declarations.set(declaration.start, declaration);
57
- if (parent?.type === 'ExportNamedDeclaration')
58
- exported.add(declaration.start);
59
- }
60
- if (node.type !== 'Identifier' ||
61
- !parent ||
62
- !Walker.isReferenceIdentifier(node, parent))
63
- return;
64
- const binding = options.declaration(node.name);
65
- if (!binding)
66
- return;
67
- references.set(node.start, binding.start);
68
- reads.set(binding.start, [...(reads.get(binding.start) ?? []), node]);
69
- },
70
- resolve(input, ranges) {
71
- let node = Expression.unwrap(input);
72
- const seen = new Set();
73
- while (node.type === 'Identifier') {
74
- const binding = references.get(node.start);
75
- const declaration = binding === undefined ? undefined : declarations.get(binding);
76
- if (!declaration?.init || binding === undefined)
77
- break;
78
- if (seen.has(binding) || node.start < declaration.init.end)
79
- throw new Themes.InvalidError('Applied props bindings must be acyclic and follow initialization.', node);
80
- if (!safe(binding, ranges))
81
- throw new Themes.InvalidError('Applied props bindings must not escape before composition.', node);
82
- seen.add(binding);
83
- node = Expression.unwrap(declaration.init);
84
- }
85
- return node;
86
- },
87
- };
88
- }
89
- //# sourceMappingURL=CompositionBindings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompositionBindings.js","sourceRoot":"","sources":["../../../src/compiler/internal/CompositionBindings.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import type * as Ast from '@oxc-project/types';
2
- import type * as Style from '../../Style.js';
3
- import type * as Source from '../Source.js';
4
- import * as Themes from './Themes.js';
5
- /** Collects ordered compositions without evaluating expressions or changing binding reads. */
6
- export declare function collect(options: collect.Options): {
7
- call: Source.Call;
8
- style: Style.NamedStyle;
9
- cases?: readonly {
10
- call: Source.Call;
11
- style: Style.NamedStyle;
12
- }[] | undefined;
13
- }[];
14
- /** Static composition extraction inputs. */
15
- export declare namespace collect {
16
- /** Parsed source and previously validated style applications. */
17
- type Options = {
18
- /** Extracted authoring calls. */
19
- readonly calls: readonly Source.Call[];
20
- /** Stable module identity. */
21
- readonly identity: string;
22
- /** Immutable imported style definitions supplied by the source or package graph. */
23
- readonly links?: Readonly<Record<string, Themes.Link>> | undefined;
24
- /** Parsed module with lexical binding scopes. */
25
- readonly program: Ast.Program;
26
- /** Validated variable scope applications preserved as runtime props. */
27
- readonly scopes?: ReadonlyMap<number, {
28
- readonly end: number;
29
- readonly output: 'html' | undefined;
30
- }> | undefined;
31
- /** Source used to preserve initialization-sensitive binding reads. */
32
- readonly source: string;
33
- /** Validated ordered style bodies. */
34
- readonly styles: readonly Style.NamedStyle[];
35
- };
36
- }
37
- //# sourceMappingURL=Compositions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Compositions.d.ts","sourceRoot":"","sources":["../../../src/compiler/internal/Compositions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,oBAAoB,CAAA;AAI9C,OAAO,KAAK,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAK3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,8FAA8F;AAC9F,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO;UAmKtC,MAAM,CAAC,IAAI;WACV,KAAK,CAAC,UAAU;YAEnB,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAA;KAAE,EAAE,GACzD,SAAS;IAochB;AAED,4CAA4C;AAC5C,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,iEAAiE;IACjE,KAAK,OAAO,GAAG;QACb,iCAAiC;QACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,CAAC,IAAI,EAAE,CAAA;QACtC,8BAA8B;QAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,oFAAoF;QACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;QAClE,iDAAiD;QACjD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAA;QAC7B,wEAAwE;QACxE,QAAQ,CAAC,MAAM,CAAC,EACZ,WAAW,CACT,MAAM,EACN;YAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAC9D,GACD,SAAS,CAAA;QACb,sEAAsE;QACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,sCAAsC;QACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,UAAU,EAAE,CAAA;KAC7C,CAAA;CACF"}