zyzz 0.0.28 → 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 (302) 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 -1267
  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 -961
  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/Literal.d.ts +4 -1
  51. package/dist/internal/Literal.d.ts.map +1 -1
  52. package/dist/internal/Literal.js +4 -2
  53. package/dist/internal/Literal.js.map +1 -1
  54. package/dist/internal/Token.d.ts +2 -1
  55. package/dist/internal/Token.d.ts.map +1 -1
  56. package/dist/internal/Token.js +2 -2
  57. package/dist/internal/Token.js.map +1 -1
  58. package/dist/internal/Vlq.d.ts +14 -0
  59. package/dist/internal/Vlq.d.ts.map +1 -0
  60. package/dist/internal/Vlq.js +47 -0
  61. package/dist/internal/Vlq.js.map +1 -0
  62. package/dist/internal/Wasm.d.ts +22 -0
  63. package/dist/internal/Wasm.d.ts.map +1 -0
  64. package/dist/internal/Wasm.js +83 -0
  65. package/dist/internal/Wasm.js.map +1 -0
  66. package/dist/metro/Graph.d.ts +0 -1
  67. package/dist/metro/Graph.d.ts.map +1 -1
  68. package/dist/metro/transformer.d.ts.map +1 -1
  69. package/dist/metro/transformer.js +0 -1
  70. package/dist/metro/transformer.js.map +1 -1
  71. package/dist/next/internal/Project.d.ts.map +1 -1
  72. package/dist/next/internal/Project.js +2 -5
  73. package/dist/next/internal/Project.js.map +1 -1
  74. package/dist/node/Host.d.ts.map +1 -1
  75. package/dist/node/Host.js +0 -2
  76. package/dist/node/Host.js.map +1 -1
  77. package/dist/node/internal/Contracts.d.ts.map +1 -1
  78. package/dist/node/internal/Contracts.js +3 -7
  79. package/dist/node/internal/Contracts.js.map +1 -1
  80. package/dist/node/internal/Snapshot.d.ts +0 -1
  81. package/dist/node/internal/Snapshot.d.ts.map +1 -1
  82. package/dist/node/internal/Snapshot.js +0 -6
  83. package/dist/node/internal/Snapshot.js.map +1 -1
  84. package/dist/runtime/Composition.d.ts +2 -3
  85. package/dist/runtime/Composition.d.ts.map +1 -1
  86. package/dist/runtime/Composition.js +51 -30
  87. package/dist/runtime/Composition.js.map +1 -1
  88. package/dist/runtime/Recipe.d.ts.map +1 -1
  89. package/dist/runtime/Recipe.js +16 -12
  90. package/dist/runtime/Recipe.js.map +1 -1
  91. package/dist/unplugin/index.d.ts.map +1 -1
  92. package/dist/unplugin/index.js +3 -6
  93. package/dist/unplugin/index.js.map +1 -1
  94. package/dist/vite/index.d.ts.map +1 -1
  95. package/dist/vite/index.js +696 -201
  96. package/dist/vite/index.js.map +1 -1
  97. package/dist/web/Css.d.ts +8 -3
  98. package/dist/web/Css.d.ts.map +1 -1
  99. package/dist/web/Css.js +5 -721
  100. package/dist/web/Css.js.map +1 -1
  101. package/dist/web/internal/Block.d.ts +0 -2
  102. package/dist/web/internal/Block.d.ts.map +1 -1
  103. package/dist/web/internal/Block.js +1 -12
  104. package/dist/web/internal/Block.js.map +1 -1
  105. package/dist/web/internal/ClassName.d.ts +23 -18
  106. package/dist/web/internal/ClassName.d.ts.map +1 -1
  107. package/dist/web/internal/ClassName.js +26 -55
  108. package/dist/web/internal/ClassName.js.map +1 -1
  109. package/dist/web/internal/Contributions.d.ts +3 -5
  110. package/dist/web/internal/Contributions.d.ts.map +1 -1
  111. package/dist/web/internal/Contributions.js +0 -45
  112. package/dist/web/internal/Contributions.js.map +1 -1
  113. package/dist/web/internal/Engine.browser.d.ts +8 -0
  114. package/dist/web/internal/Engine.browser.d.ts.map +1 -0
  115. package/dist/web/internal/Engine.browser.js +42 -0
  116. package/dist/web/internal/Engine.browser.js.map +1 -0
  117. package/dist/web/internal/Engine.d.ts +9 -0
  118. package/dist/web/internal/Engine.d.ts.map +1 -0
  119. package/dist/web/internal/Engine.js +14 -0
  120. package/dist/web/internal/Engine.js.map +1 -0
  121. package/dist/web/internal/Themes.d.ts +1 -9
  122. package/dist/web/internal/Themes.d.ts.map +1 -1
  123. package/dist/web/internal/Themes.js +3 -221
  124. package/dist/web/internal/Themes.js.map +1 -1
  125. package/dist/web/internal/Wasm.generated.d.ts +4 -0
  126. package/dist/web/internal/Wasm.generated.d.ts.map +1 -0
  127. package/dist/web/internal/Wasm.generated.js +4 -0
  128. package/dist/web/internal/Wasm.generated.js.map +1 -0
  129. package/dist/web/internal/Wire.d.ts +19 -0
  130. package/dist/web/internal/Wire.d.ts.map +1 -0
  131. package/dist/web/internal/Wire.js +387 -0
  132. package/dist/web/internal/Wire.js.map +1 -0
  133. package/package.json +20 -1
  134. package/src/babel/index.ts +2 -5
  135. package/src/babel/internal/Compilation.ts +0 -1
  136. package/src/compiler/Graph.ts +89 -1930
  137. package/src/compiler/Native.ts +18 -871
  138. package/src/compiler/Source.ts +144 -1803
  139. package/src/compiler/Transform.ts +16 -1315
  140. package/src/compiler/internal/AtRules.ts +27 -115
  141. package/src/compiler/internal/Context.ts +11 -0
  142. package/src/compiler/internal/Results.ts +406 -0
  143. package/src/compiler/internal/Syntax.ts +0 -3
  144. package/src/compiler/internal/Wire.ts +1045 -0
  145. package/src/internal/Addon.ts +118 -0
  146. package/src/internal/Literal.ts +4 -2
  147. package/src/internal/Token.ts +2 -2
  148. package/src/internal/Vlq.ts +59 -0
  149. package/src/internal/Wasm.ts +111 -0
  150. package/src/metro/transformer.ts +0 -1
  151. package/src/next/internal/Project.ts +2 -9
  152. package/src/node/Host.ts +0 -2
  153. package/src/node/internal/Contracts.ts +3 -7
  154. package/src/node/internal/Snapshot.ts +0 -8
  155. package/src/runtime/Composition.ts +48 -25
  156. package/src/runtime/Recipe.ts +21 -14
  157. package/src/unplugin/index.ts +6 -6
  158. package/src/vite/index.ts +922 -221
  159. package/src/web/Css.ts +12 -908
  160. package/src/web/internal/Block.ts +0 -14
  161. package/src/web/internal/ClassName.ts +52 -85
  162. package/src/web/internal/Contributions.ts +3 -59
  163. package/src/web/internal/Engine.browser.ts +51 -0
  164. package/src/web/internal/Engine.ts +17 -0
  165. package/src/web/internal/Themes.ts +3 -279
  166. package/src/web/internal/Wasm.generated.ts +3 -0
  167. package/src/web/internal/Wire.ts +466 -0
  168. package/src/web/internal/wasm.d.ts +9 -0
  169. package/dist/compiler/internal/Applications.d.ts +0 -55
  170. package/dist/compiler/internal/Applications.d.ts.map +0 -1
  171. package/dist/compiler/internal/Applications.js +0 -393
  172. package/dist/compiler/internal/Applications.js.map +0 -1
  173. package/dist/compiler/internal/ColorProfiles.d.ts +0 -3
  174. package/dist/compiler/internal/ColorProfiles.d.ts.map +0 -1
  175. package/dist/compiler/internal/ColorProfiles.js +0 -84
  176. package/dist/compiler/internal/ColorProfiles.js.map +0 -1
  177. package/dist/compiler/internal/CompositionBindings.d.ts +0 -16
  178. package/dist/compiler/internal/CompositionBindings.d.ts.map +0 -1
  179. package/dist/compiler/internal/CompositionBindings.js +0 -89
  180. package/dist/compiler/internal/CompositionBindings.js.map +0 -1
  181. package/dist/compiler/internal/Compositions.d.ts +0 -37
  182. package/dist/compiler/internal/Compositions.d.ts.map +0 -1
  183. package/dist/compiler/internal/Compositions.js +0 -494
  184. package/dist/compiler/internal/Compositions.js.map +0 -1
  185. package/dist/compiler/internal/Configurations.d.ts +0 -26
  186. package/dist/compiler/internal/Configurations.d.ts.map +0 -1
  187. package/dist/compiler/internal/Configurations.js +0 -259
  188. package/dist/compiler/internal/Configurations.js.map +0 -1
  189. package/dist/compiler/internal/Contract.d.ts +0 -30
  190. package/dist/compiler/internal/Contract.d.ts.map +0 -1
  191. package/dist/compiler/internal/Contract.js +0 -753
  192. package/dist/compiler/internal/Contract.js.map +0 -1
  193. package/dist/compiler/internal/Contributions.d.ts +0 -54
  194. package/dist/compiler/internal/Contributions.d.ts.map +0 -1
  195. package/dist/compiler/internal/Contributions.js +0 -1151
  196. package/dist/compiler/internal/Contributions.js.map +0 -1
  197. package/dist/compiler/internal/Descriptors.d.ts +0 -15
  198. package/dist/compiler/internal/Descriptors.d.ts.map +0 -1
  199. package/dist/compiler/internal/Descriptors.js +0 -192
  200. package/dist/compiler/internal/Descriptors.js.map +0 -1
  201. package/dist/compiler/internal/Dynamic.d.ts +0 -14
  202. package/dist/compiler/internal/Dynamic.d.ts.map +0 -1
  203. package/dist/compiler/internal/Dynamic.js +0 -175
  204. package/dist/compiler/internal/Dynamic.js.map +0 -1
  205. package/dist/compiler/internal/Expression.d.ts +0 -19
  206. package/dist/compiler/internal/Expression.d.ts.map +0 -1
  207. package/dist/compiler/internal/Expression.js +0 -164
  208. package/dist/compiler/internal/Expression.js.map +0 -1
  209. package/dist/compiler/internal/Functions.d.ts +0 -5
  210. package/dist/compiler/internal/Functions.d.ts.map +0 -1
  211. package/dist/compiler/internal/Functions.js +0 -191
  212. package/dist/compiler/internal/Functions.js.map +0 -1
  213. package/dist/compiler/internal/Keyframes.d.ts +0 -5
  214. package/dist/compiler/internal/Keyframes.d.ts.map +0 -1
  215. package/dist/compiler/internal/Keyframes.js +0 -51
  216. package/dist/compiler/internal/Keyframes.js.map +0 -1
  217. package/dist/compiler/internal/Names.d.ts +0 -5
  218. package/dist/compiler/internal/Names.d.ts.map +0 -1
  219. package/dist/compiler/internal/Names.js +0 -37
  220. package/dist/compiler/internal/Names.js.map +0 -1
  221. package/dist/compiler/internal/NativeBindings.d.ts +0 -72
  222. package/dist/compiler/internal/NativeBindings.d.ts.map +0 -1
  223. package/dist/compiler/internal/NativeBindings.js +0 -171
  224. package/dist/compiler/internal/NativeBindings.js.map +0 -1
  225. package/dist/compiler/internal/NativeMedia.d.ts +0 -14
  226. package/dist/compiler/internal/NativeMedia.d.ts.map +0 -1
  227. package/dist/compiler/internal/NativeMedia.js +0 -287
  228. package/dist/compiler/internal/NativeMedia.js.map +0 -1
  229. package/dist/compiler/internal/NativeVars.d.ts +0 -28
  230. package/dist/compiler/internal/NativeVars.d.ts.map +0 -1
  231. package/dist/compiler/internal/NativeVars.js +0 -160
  232. package/dist/compiler/internal/NativeVars.js.map +0 -1
  233. package/dist/compiler/internal/PackedStyles.d.ts +0 -37
  234. package/dist/compiler/internal/PackedStyles.d.ts.map +0 -1
  235. package/dist/compiler/internal/PackedStyles.js +0 -344
  236. package/dist/compiler/internal/PackedStyles.js.map +0 -1
  237. package/dist/compiler/internal/Properties.d.ts +0 -5
  238. package/dist/compiler/internal/Properties.d.ts.map +0 -1
  239. package/dist/compiler/internal/Properties.js +0 -82
  240. package/dist/compiler/internal/Properties.js.map +0 -1
  241. package/dist/compiler/internal/RecipeConditions.d.ts +0 -41
  242. package/dist/compiler/internal/RecipeConditions.d.ts.map +0 -1
  243. package/dist/compiler/internal/RecipeConditions.js +0 -82
  244. package/dist/compiler/internal/RecipeConditions.js.map +0 -1
  245. package/dist/compiler/internal/RecipePayloads.d.ts +0 -31
  246. package/dist/compiler/internal/RecipePayloads.d.ts.map +0 -1
  247. package/dist/compiler/internal/RecipePayloads.js +0 -99
  248. package/dist/compiler/internal/RecipePayloads.js.map +0 -1
  249. package/dist/compiler/internal/Recipes.d.ts +0 -32
  250. package/dist/compiler/internal/Recipes.d.ts.map +0 -1
  251. package/dist/compiler/internal/Recipes.js +0 -339
  252. package/dist/compiler/internal/Recipes.js.map +0 -1
  253. package/dist/compiler/internal/Selectors.d.ts +0 -13
  254. package/dist/compiler/internal/Selectors.d.ts.map +0 -1
  255. package/dist/compiler/internal/Selectors.js +0 -280
  256. package/dist/compiler/internal/Selectors.js.map +0 -1
  257. package/dist/compiler/internal/Static.d.ts +0 -39
  258. package/dist/compiler/internal/Static.d.ts.map +0 -1
  259. package/dist/compiler/internal/Static.js +0 -534
  260. package/dist/compiler/internal/Static.js.map +0 -1
  261. package/dist/compiler/internal/Themes.d.ts +0 -190
  262. package/dist/compiler/internal/Themes.d.ts.map +0 -1
  263. package/dist/compiler/internal/Themes.js +0 -1577
  264. package/dist/compiler/internal/Themes.js.map +0 -1
  265. package/dist/compiler/internal/Vars.d.ts +0 -33
  266. package/dist/compiler/internal/Vars.d.ts.map +0 -1
  267. package/dist/compiler/internal/Vars.js +0 -387
  268. package/dist/compiler/internal/Vars.js.map +0 -1
  269. package/dist/compiler/internal/ViewTransitions.d.ts +0 -3
  270. package/dist/compiler/internal/ViewTransitions.d.ts.map +0 -1
  271. package/dist/compiler/internal/ViewTransitions.js +0 -68
  272. package/dist/compiler/internal/ViewTransitions.js.map +0 -1
  273. package/dist/internal/Cascade.d.ts +0 -74
  274. package/dist/internal/Cascade.d.ts.map +0 -1
  275. package/dist/internal/Cascade.js +0 -210
  276. package/dist/internal/Cascade.js.map +0 -1
  277. package/src/compiler/internal/Applications.ts +0 -610
  278. package/src/compiler/internal/ColorProfiles.ts +0 -93
  279. package/src/compiler/internal/CompositionBindings.ts +0 -120
  280. package/src/compiler/internal/Compositions.ts +0 -678
  281. package/src/compiler/internal/Configurations.ts +0 -349
  282. package/src/compiler/internal/Contract.ts +0 -1028
  283. package/src/compiler/internal/Contributions.ts +0 -1561
  284. package/src/compiler/internal/Descriptors.ts +0 -242
  285. package/src/compiler/internal/Dynamic.ts +0 -275
  286. package/src/compiler/internal/Expression.ts +0 -218
  287. package/src/compiler/internal/Functions.ts +0 -206
  288. package/src/compiler/internal/Keyframes.ts +0 -62
  289. package/src/compiler/internal/Names.ts +0 -48
  290. package/src/compiler/internal/NativeBindings.ts +0 -235
  291. package/src/compiler/internal/NativeMedia.ts +0 -342
  292. package/src/compiler/internal/NativeVars.ts +0 -231
  293. package/src/compiler/internal/PackedStyles.ts +0 -473
  294. package/src/compiler/internal/Properties.ts +0 -121
  295. package/src/compiler/internal/RecipeConditions.ts +0 -139
  296. package/src/compiler/internal/RecipePayloads.ts +0 -132
  297. package/src/compiler/internal/Recipes.ts +0 -531
  298. package/src/compiler/internal/Selectors.ts +0 -353
  299. package/src/compiler/internal/Static.ts +0 -784
  300. package/src/compiler/internal/Themes.ts +0 -2398
  301. package/src/compiler/internal/Vars.ts +0 -516
  302. package/src/compiler/internal/ViewTransitions.ts +0 -82
@@ -1,393 +0,0 @@
1
- import * as Walker from 'oxc-walker';
2
- import * as Expression from './Expression.js';
3
- import * as Scope from './Scope.js';
4
- /** Conservatively proves direct applications without changing binding reads. */
5
- export function create(program, calls, options = {}) {
6
- const definitions = new Map(calls.map((call) => [call.start, call]));
7
- const memberBindings = new Map();
8
- const referencedDefinitions = new Set();
9
- const namespaceCounts = new Map();
10
- for (const statement of program.body) {
11
- const node = statement.type === 'ExportNamedDeclaration'
12
- ? statement.declaration
13
- : statement;
14
- if (node?.type === 'TSModuleDeclaration' && node.id.type === 'Identifier')
15
- namespaceCounts.set(node.id.name, (namespaceCounts.get(node.id.name) ?? 0) + 1);
16
- }
17
- const candidates = [];
18
- for (const statement of program.body) {
19
- if (statement.type === 'TSModuleDeclaration' &&
20
- statement.id.type === 'Identifier' &&
21
- statement.body?.type === 'TSModuleBlock') {
22
- const members = new Map();
23
- const ends = new Map();
24
- let valid = true;
25
- for (const member of statement.body.body) {
26
- const node = member.type === 'ExportNamedDeclaration'
27
- ? member.declaration
28
- : undefined;
29
- if (node?.type !== 'VariableDeclaration' || node.kind !== 'const') {
30
- valid = false;
31
- break;
32
- }
33
- for (const declaration of node.declarations) {
34
- const call = declaration.init && definitions.get(declaration.init.start);
35
- if (declaration.id.type !== 'Identifier' ||
36
- declaration.init?.type !== 'CallExpression' ||
37
- declaration.init.end !== call?.end ||
38
- members.has(declaration.id.name)) {
39
- valid = false;
40
- break;
41
- }
42
- members.set(declaration.id.name, call);
43
- ends.set(call.name, declaration.id.end);
44
- memberBindings.set(declaration.id.start, call.name);
45
- }
46
- }
47
- if (valid && members.size)
48
- candidates.push({
49
- declaration: { id: statement.id },
50
- direct: undefined,
51
- members,
52
- namespace: { ends, start: statement.start },
53
- ready: statement.end,
54
- });
55
- continue;
56
- }
57
- // Exported values can escape and object members can subsequently be replaced.
58
- if (statement.type !== 'VariableDeclaration' || statement.kind !== 'const')
59
- continue;
60
- for (const declaration of statement.declarations) {
61
- if (declaration.id.type !== 'Identifier' || !declaration.init)
62
- continue;
63
- const members = new Map();
64
- const candidate = definitions.get(declaration.init.start);
65
- const direct = declaration.init.type === 'CallExpression' &&
66
- declaration.init.end === candidate?.end
67
- ? candidate
68
- : undefined;
69
- if (!direct) {
70
- if (declaration.init.type !== 'ObjectExpression')
71
- continue;
72
- let valid = true;
73
- for (const property of declaration.init.properties) {
74
- if (property.type !== 'Property' ||
75
- property.computed ||
76
- property.method ||
77
- property.kind !== 'init') {
78
- valid = false;
79
- break;
80
- }
81
- const key = property.key.type === 'Identifier' ? property.key.name : undefined;
82
- const candidate = definitions.get(property.value.start);
83
- const call = property.value.type === 'CallExpression' &&
84
- property.value.end === candidate?.end
85
- ? candidate
86
- : undefined;
87
- if (!key || key === '__proto__' || !call || members.has(key)) {
88
- valid = false;
89
- break;
90
- }
91
- members.set(key, call);
92
- }
93
- if (!valid || !members.size)
94
- continue;
95
- }
96
- candidates.push({
97
- declaration: { ...declaration, id: declaration.id },
98
- direct,
99
- members,
100
- ready: declaration.end,
101
- });
102
- }
103
- }
104
- if (!candidates.length)
105
- return undefined;
106
- const lexical = new Set();
107
- // Extraction resolves these reads and rewrites their definitions, so none run.
108
- const resolved = new Set();
109
- // Reads inside functions, classes, or namespaces may run before initialization.
110
- const deferred = new Set();
111
- const terminals = new Set();
112
- const scope = new Scope.Tracker({ preserveExitedScopes: true });
113
- Walker.walk(program, { scopeTracker: scope });
114
- scope.freeze();
115
- const ancestors = [];
116
- Walker.walk(program, {
117
- scopeTracker: scope,
118
- enter(node, parent) {
119
- ancestors.push(node);
120
- if (node.type !== 'Identifier' ||
121
- !parent ||
122
- !Walker.isReferenceIdentifier(node, parent))
123
- return;
124
- if (ancestors.some((node) => [
125
- 'TSTypeQuery',
126
- 'TSTypeAnnotation',
127
- 'TSTypeAliasDeclaration',
128
- 'TSInterfaceDeclaration',
129
- 'TSTypeParameterInstantiation',
130
- 'TSTypeParameterDeclaration',
131
- ].includes(node.type)))
132
- return;
133
- const binding = scope.getDeclaration(node.name, { mode: 'value' });
134
- const id = binding?.node;
135
- const member = id && memberBindings.get(id.start);
136
- if (member)
137
- referencedDefinitions.add(member);
138
- if (id &&
139
- candidates.some((candidate) => candidate.declaration.id.start === id.start)) {
140
- lexical.add(node);
141
- if (terminal(ancestors))
142
- terminals.add(node);
143
- if (extracted(ancestors, definitions))
144
- resolved.add(node);
145
- if (ancestors.some((node) => [
146
- 'ArrowFunctionExpression',
147
- 'ClassDeclaration',
148
- 'ClassExpression',
149
- 'FunctionDeclaration',
150
- 'FunctionExpression',
151
- 'TSModuleDeclaration',
152
- ].includes(node.type)))
153
- deferred.add(node);
154
- }
155
- },
156
- leave() {
157
- ancestors.pop();
158
- },
159
- });
160
- const parents = new Map();
161
- const references = new Map(candidates.map(({ declaration }) => [declaration.id.name, []]));
162
- let evaluation = false;
163
- // Returns undefined when any read escapes. Recipes, dynamic styles, and
164
- // applications with overrides keep their runtime calls.
165
- function collect(candidate) {
166
- const { declaration, direct, members } = candidate;
167
- const applications = [];
168
- const called = new Set();
169
- for (const reference of references.get(declaration.id.name) ?? []) {
170
- if (reference === declaration.id || resolved.has(reference))
171
- continue;
172
- let callee = reference;
173
- let call = direct;
174
- if (!direct) {
175
- const member = parents.get(reference);
176
- if (member?.type !== 'MemberExpression' ||
177
- member.object !== reference ||
178
- member.computed ||
179
- member.optional ||
180
- member.property.type !== 'Identifier')
181
- return undefined;
182
- call = members.get(member.property.name);
183
- callee = member;
184
- }
185
- if (call?.composition ||
186
- call?.runtimeComposition ||
187
- (!options.dynamic && (call?.slots || call?.recipe)))
188
- continue;
189
- const application = parents.get(callee);
190
- if (!call ||
191
- application?.type !== 'CallExpression' ||
192
- application.callee !== callee ||
193
- application.optional)
194
- return undefined;
195
- // An override needs the runtime callable, but exposes no other definition.
196
- if (!options.dynamic && application.arguments.length) {
197
- called.add(call.name);
198
- continue;
199
- }
200
- applications.push({
201
- calleeEnd: callee.end,
202
- end: application.end,
203
- initialized: !deferred.has(reference) &&
204
- reference.start >= candidate.ready &&
205
- (!candidate.namespace ||
206
- namespaceCounts.get(declaration.id.name) === 1),
207
- name: call.name,
208
- start: application.start,
209
- terminal: terminals.has(reference),
210
- });
211
- }
212
- return { applications, called };
213
- }
214
- return {
215
- dead() {
216
- if (evaluation)
217
- return new Set();
218
- const result = new Set();
219
- const counts = new Map();
220
- for (const { declaration } of candidates)
221
- counts.set(declaration.id.name, (counts.get(declaration.id.name) ?? 0) + 1);
222
- for (const { declaration, direct, members } of candidates) {
223
- if (counts.get(declaration.id.name) > 1 ||
224
- (namespaceCounts.get(declaration.id.name) ?? 0) > 1)
225
- continue;
226
- const reads = references.get(declaration.id.name) ?? [];
227
- if (direct) {
228
- if (!reads.length)
229
- result.add(direct.name);
230
- continue;
231
- }
232
- const used = new Set();
233
- let escapes = false;
234
- for (const reference of reads) {
235
- const member = parents.get(reference);
236
- if (member?.type !== 'MemberExpression' ||
237
- member.object !== reference ||
238
- member.computed ||
239
- member.optional ||
240
- member.property.type !== 'Identifier') {
241
- escapes = true;
242
- break;
243
- }
244
- used.add(member.property.name);
245
- }
246
- if (!escapes)
247
- for (const [name, call] of members)
248
- if (!used.has(name) && !referencedDefinitions.has(call.name))
249
- result.add(call.name);
250
- }
251
- return result;
252
- },
253
- definitions() {
254
- const namespaces = [];
255
- const values = new Map();
256
- if (evaluation)
257
- return { namespaces, values };
258
- const counts = new Map();
259
- for (const { declaration } of candidates)
260
- counts.set(declaration.id.name, (counts.get(declaration.id.name) ?? 0) + 1);
261
- for (const candidate of candidates) {
262
- const name = candidate.declaration.id.name;
263
- if (counts.get(name) > 1 || (namespaceCounts.get(name) ?? 0) > 1)
264
- continue;
265
- const result = collect(candidate);
266
- if (!result)
267
- continue;
268
- let erased = !!candidate.namespace;
269
- for (const call of candidate.direct
270
- ? [candidate.direct]
271
- : candidate.members.values()) {
272
- if (call.composition ||
273
- call.runtimeComposition ||
274
- call.slots ||
275
- call.recipe ||
276
- result.called.has(call.name)) {
277
- erased = false;
278
- continue;
279
- }
280
- const initialized = result.applications.every((application) => application.name !== call.name || application.initialized);
281
- values.set(call.name, initialized);
282
- erased &&= initialized;
283
- }
284
- if (erased)
285
- namespaces.push(candidate.namespace);
286
- }
287
- return { namespaces, values };
288
- },
289
- enter(node, parent) {
290
- if (node.type === 'MemberExpression' &&
291
- node.object.type === 'Identifier' &&
292
- references.has(node.object.name) &&
293
- parent)
294
- parents.set(node, parent);
295
- if (node.type !== 'Identifier')
296
- return;
297
- if (node.name === 'eval')
298
- evaluation = true;
299
- if (!lexical.has(node))
300
- return;
301
- const nodes = references.get(node.name);
302
- if (!nodes)
303
- return;
304
- nodes.push(node);
305
- if (parent)
306
- parents.set(node, parent);
307
- },
308
- find() {
309
- if (evaluation)
310
- return [];
311
- return candidates.flatMap((candidate) => collect(candidate)?.applications ?? []);
312
- },
313
- };
314
- }
315
- // Matches a selector interpolation or composition entry inside a definition, which
316
- // extraction resolves statically. Computed keys elsewhere in a definition fail extraction.
317
- function extracted(path, definitions) {
318
- let index = path.length - 1;
319
- const member = path[index - 1];
320
- if (member?.type === 'MemberExpression' &&
321
- member.object === path[index] &&
322
- !member.computed)
323
- index--;
324
- // Type assertions around a node keep the same read.
325
- function parent() {
326
- const node = path[index];
327
- while (index > 0 && Expression.unwrap(path[index - 1]) === node)
328
- index--;
329
- return path[--index];
330
- }
331
- function definition(node) {
332
- return (node?.type === 'CallExpression' &&
333
- definitions.get(node.start)?.end === node.end);
334
- }
335
- const container = parent();
336
- if (container?.type === 'ArrayExpression') {
337
- const call = parent();
338
- return (call?.type === 'CallExpression' &&
339
- definition(call) &&
340
- !!call.arguments[0] &&
341
- Expression.unwrap(call.arguments[0]) === container);
342
- }
343
- if (container?.type !== 'TemplateLiteral')
344
- return false;
345
- const property = parent();
346
- return (property?.type === 'Property' &&
347
- property.computed &&
348
- Expression.unwrap(property.key) === container &&
349
- path.slice(0, index).some(definition));
350
- }
351
- // Matches a no-argument application spread onto, or read as the class of, a DOM element.
352
- function terminal(path) {
353
- let index = path.length - 1;
354
- let node = path[index];
355
- const member = path[index - 1];
356
- if (member?.type === 'MemberExpression' && member.object === node)
357
- node = path[--index];
358
- const call = path[--index];
359
- if (call?.type !== 'CallExpression' ||
360
- call.callee !== node ||
361
- call.arguments.length)
362
- return false;
363
- const parent = path[--index];
364
- if (parent?.type === 'JSXSpreadAttribute')
365
- return parent.argument === call && alone(path[index - 1], parent);
366
- if (parent?.type !== 'MemberExpression' ||
367
- parent.object !== call ||
368
- parent.computed ||
369
- parent.property.type !== 'Identifier' ||
370
- !/^class(?:Name)?$/.test(parent.property.name))
371
- return false;
372
- const container = path[--index];
373
- const attribute = path[--index];
374
- return (container?.type === 'JSXExpressionContainer' &&
375
- container.expression === parent &&
376
- attribute?.type === 'JSXAttribute' &&
377
- attribute.value === container &&
378
- attribute.name.type === 'JSXIdentifier' &&
379
- /^class(?:Name)?$/.test(attribute.name.name) &&
380
- alone(path[index - 1], attribute));
381
- }
382
- // Other spreads or class attributes could add another style's classes.
383
- function alone(element, own) {
384
- return (element?.type === 'JSXOpeningElement' &&
385
- element.name.type === 'JSXIdentifier' &&
386
- /^[a-z]/.test(element.name.name) &&
387
- element.attributes.every((attribute) => attribute === own ||
388
- (attribute.type === 'JSXAttribute' &&
389
- !(attribute.name.type === 'JSXIdentifier'
390
- ? attribute.name.name
391
- : attribute.name.namespace.name).startsWith('class'))));
392
- }
393
- //# 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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"}