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 +0,0 @@
1
- {"version":3,"file":"Selectors.js","sourceRoot":"","sources":["../../../src/compiler/internal/Selectors.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- /** Resolves immutable module data and finite local type bindings without executing source. @module */
2
- import type * as Ast from '@oxc-project/types';
3
- import type * as Scope from './Scope.js';
4
- import * as Walker from 'oxc-walker';
5
- /** Collects lexical immutable values and local scalar/object type declarations. */
6
- export declare function collect(program: Ast.Program, scope: Scope.Tracker, imports?: Readonly<Record<string, Ast.Node>>): {
7
- visitor: {
8
- enter(node: Ast.Node, parent: Ast.Node | null): Walker.ScopeTrackerNode | null | undefined;
9
- leave(): void;
10
- };
11
- /** Recognizes the unshadowed undefined value without evaluating expressions. */
12
- absent(input: Ast.Node): boolean;
13
- /** Resolves an exported immutable literal without evaluating module code. */
14
- exported(name: string): Ast.Node | undefined;
15
- resolve: (node: Ast.Node, allowed: ReadonlySet<number>, active?: Set<number>) => Ast.Node;
16
- properties: (node: Ast.ObjectExpression, allowed: ReadonlySet<number>) => readonly Ast.ObjectPropertyKind[];
17
- type: (node: Ast.Node, active?: Set<number>) => Ast.Node;
18
- used: Set<number>;
19
- normalize: (node: Ast.Node, allowed: ReadonlySet<number>, opaque?: ReadonlySet<number>, omitUndefined?: boolean) => Ast.Node;
20
- bindings: Set<number>;
21
- };
22
- /** Collects immutable references during a host-owned traversal of frozen scopes. */
23
- export declare function create(program: Ast.Program, scope: Scope.Tracker, imports?: Readonly<Record<string, Ast.Node>>): {
24
- visitor: {
25
- enter(node: Ast.Node, parent: Ast.Node | null): Walker.ScopeTrackerNode | null | undefined;
26
- leave(): void;
27
- };
28
- /** Recognizes the unshadowed undefined value without evaluating expressions. */
29
- absent(input: Ast.Node): boolean;
30
- /** Resolves an exported immutable literal without evaluating module code. */
31
- exported(name: string): Ast.Node | undefined;
32
- resolve: (node: Ast.Node, allowed: ReadonlySet<number>, active?: Set<number>) => Ast.Node;
33
- properties: (node: Ast.ObjectExpression, allowed: ReadonlySet<number>) => readonly Ast.ObjectPropertyKind[];
34
- type: (node: Ast.Node, active?: Set<number>) => Ast.Node;
35
- used: Set<number>;
36
- normalize: (node: Ast.Node, allowed: ReadonlySet<number>, opaque?: ReadonlySet<number>, omitUndefined?: boolean) => Ast.Node;
37
- bindings: Set<number>;
38
- };
39
- //# sourceMappingURL=Static.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Static.d.ts","sourceRoot":"","sources":["../../../src/compiler/internal/Static.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,KAAK,KAAK,GAAG,MAAM,oBAAoB,CAAA;AAE9C,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AAEpC,mFAAmF;AACnF,wBAAgB,OAAO,CACrB,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAM;;oBA2DlC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,GAAG,IAAI;;;IAqoB7C,gFAAgF;kBAClE,GAAG,CAAC,IAAI,GAAG,OAAO;IAQhC,6EAA6E;mBAC9D,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS;oBA5btC,GAAG,CAAC,IAAI,WACL,WAAW,CAAC,MAAM,CAAC,2BAE3B,GAAG,CAAC,IAAI;uBAgLH,GAAG,CAAC,gBAAgB,WACjB,WAAW,CAAC,MAAM,CAAC,KAC3B,SAAS,GAAG,CAAC,kBAAkB,EAAE;iBA+DhB,GAAG,CAAC,IAAI,2BAA+B,GAAG,CAAC,IAAI;;sBAmH3D,GAAG,CAAC,IAAI,WACL,WAAW,CAAC,MAAM,CAAC,WACpB,WAAW,CAAC,MAAM,CAAC,8BAE1B,GAAG,CAAC,IAAI;;EApnBZ;AAED,oFAAoF;AACpF,wBAAgB,MAAM,CACpB,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAM;;oBAgDlC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,GAAG,IAAI;;;IAqoB7C,gFAAgF;kBAClE,GAAG,CAAC,IAAI,GAAG,OAAO;IAQhC,6EAA6E;mBAC9D,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS;oBA5btC,GAAG,CAAC,IAAI,WACL,WAAW,CAAC,MAAM,CAAC,2BAE3B,GAAG,CAAC,IAAI;uBAgLH,GAAG,CAAC,gBAAgB,WACjB,WAAW,CAAC,MAAM,CAAC,KAC3B,SAAS,GAAG,CAAC,kBAAkB,EAAE;iBA+DhB,GAAG,CAAC,IAAI,2BAA+B,GAAG,CAAC,IAAI;;sBAmH3D,GAAG,CAAC,IAAI,WACL,WAAW,CAAC,MAAM,CAAC,WACpB,WAAW,CAAC,MAAM,CAAC,8BAE1B,GAAG,CAAC,IAAI;;EA2IZ"}
@@ -1,534 +0,0 @@
1
- import * as Expression from './Expression.js';
2
- import * as Themes from './Themes.js';
3
- import * as Walker from 'oxc-walker';
4
- /** Collects lexical immutable values and local scalar/object type declarations. */
5
- export function collect(program, scope, imports = {}) {
6
- const collector = create(program, scope, imports);
7
- Walker.walk(program, { ...collector.visitor, scopeTracker: scope });
8
- return collector;
9
- }
10
- /** Collects immutable references during a host-owned traversal of frozen scopes. */
11
- export function create(program, scope, imports = {}) {
12
- const values = new Map();
13
- const references = new Map();
14
- const usages = new Map();
15
- const types = new Map();
16
- const typeReferences = new Map();
17
- const used = new Set();
18
- const absent = new Set();
19
- function collectValues(statements) {
20
- for (const statement of statements) {
21
- const node = statement.type === 'ExportNamedDeclaration'
22
- ? statement.declaration
23
- : statement;
24
- if (node?.type === 'TSModuleDeclaration' &&
25
- node.body?.type === 'TSModuleBlock')
26
- collectValues(node.body.body);
27
- if (node?.type === 'VariableDeclaration' && node.kind === 'const')
28
- for (const declaration of node.declarations)
29
- if (declaration.id.type === 'Identifier' && declaration.init) {
30
- values.set(declaration.start, declaration.init);
31
- }
32
- }
33
- }
34
- collectValues(program.body);
35
- const imported = new Set();
36
- for (const statement of program.body)
37
- if (statement.type === 'ImportDeclaration' &&
38
- statement.importKind !== 'type')
39
- for (const specifier of statement.specifiers) {
40
- const value = imports[specifier.local.name];
41
- if (!value)
42
- continue;
43
- values.set(specifier.start, value);
44
- imported.add(specifier.start);
45
- }
46
- const ancestors = [];
47
- const visitor = {
48
- enter(node, parent) {
49
- ancestors.push(node);
50
- if (node.type === 'TSTypeAliasDeclaration' && !node.typeParameters)
51
- types.set(node.id.start, node.typeAnnotation);
52
- if (node.type === 'TSInterfaceDeclaration' &&
53
- !node.extends?.length &&
54
- !node.typeParameters) {
55
- const key = scope.getDeclaration(node.id.name, { mode: 'type' })?.node.start ??
56
- node.id.start;
57
- const previous = types.get(key);
58
- types.set(key, {
59
- ...node.body,
60
- type: 'TSTypeLiteral',
61
- members: [
62
- ...(previous?.type === 'TSTypeLiteral' ? previous.members : []),
63
- ...node.body.body,
64
- ],
65
- });
66
- }
67
- if (node.type === 'TSTypeReference' &&
68
- node.typeName.type === 'Identifier' &&
69
- !node.typeArguments) {
70
- const declaration = scope.getDeclaration(node.typeName.name, {
71
- mode: 'type',
72
- });
73
- if (declaration)
74
- typeReferences.set(node.start, declaration.node.start);
75
- }
76
- if (node.type !== 'Identifier' ||
77
- !parent ||
78
- !Walker.isReferenceIdentifier(node, parent))
79
- return undefined;
80
- // Distinguish unbound references from nodes that are not references.
81
- const binding = scope.getDeclaration(node.name) ?? null;
82
- if (!binding && node.name === 'undefined')
83
- absent.add(node.start);
84
- if (!binding || !values.has(binding.node.start))
85
- return binding;
86
- if (ancestors.some((node) => node.type === 'TSTypeQuery'))
87
- return binding;
88
- references.set(node.start, binding.node.start);
89
- const value = Expression.unwrap(values.get(binding.node.start));
90
- // Escape paths are only consulted for object and array resolutions.
91
- if (value.type === 'ArrowFunctionExpression' ||
92
- value.type === 'CallExpression' ||
93
- value.type === 'FunctionExpression' ||
94
- value.type === 'Literal' ||
95
- value.type === 'NewExpression')
96
- return binding;
97
- const previous = usages.get(binding.node.start);
98
- if (previous)
99
- previous.push([...ancestors]);
100
- else
101
- usages.set(binding.node.start, [[...ancestors]]);
102
- return binding;
103
- },
104
- leave() {
105
- ancestors.pop();
106
- },
107
- };
108
- let aliases;
109
- function root(node) {
110
- node = Expression.unwrap(node);
111
- while (node.type === 'MemberExpression')
112
- node = node.object;
113
- return node.type === 'Identifier' ? references.get(node.start) : undefined;
114
- }
115
- function initial(input, seen = new Set()) {
116
- const node = Expression.unwrap(input);
117
- if (node.type === 'Identifier') {
118
- const binding = references.get(node.start);
119
- if (binding === undefined || seen.has(binding))
120
- return undefined;
121
- const value = values.get(binding);
122
- if (!value)
123
- return undefined;
124
- seen.add(binding);
125
- return initial(value, seen);
126
- }
127
- if (node.type === 'MemberExpression' && !node.optional) {
128
- const object = initial(node.object, seen);
129
- const key = !node.computed && node.property.type === 'Identifier'
130
- ? node.property.name
131
- : node.property.type === 'Literal'
132
- ? String(node.property.value)
133
- : undefined;
134
- if (object?.type === 'ObjectExpression' && key !== undefined) {
135
- for (const property of [...object.properties].reverse()) {
136
- if (property.type === 'SpreadElement')
137
- return undefined;
138
- const name = property.key.type === 'Identifier' && !property.computed
139
- ? property.key.name
140
- : property.key.type === 'Literal'
141
- ? String(property.key.value)
142
- : undefined;
143
- if (name === key)
144
- return property.method || property.kind !== 'init'
145
- ? undefined
146
- : initial(property.value, seen);
147
- }
148
- }
149
- if (object?.type === 'ArrayExpression' &&
150
- key !== undefined &&
151
- /^(?:0|[1-9]\d*)$/.test(key)) {
152
- if (object.elements
153
- .slice(0, Number(key) + 1)
154
- .some((element) => element?.type === 'SpreadElement'))
155
- return undefined;
156
- const element = object.elements[Number(key)];
157
- return element && element.type !== 'SpreadElement'
158
- ? initial(element, seen)
159
- : undefined;
160
- }
161
- return undefined;
162
- }
163
- return node;
164
- }
165
- function scalar(node) {
166
- const value = initial(node);
167
- return (value?.type === 'Literal' ||
168
- value?.type === 'TemplateLiteral' ||
169
- (value?.type === 'UnaryExpression' && value.operator !== 'delete'));
170
- }
171
- function owners(input) {
172
- const node = Expression.unwrap(input);
173
- if (scalar(node))
174
- return [];
175
- const owner = root(node);
176
- if (owner !== undefined)
177
- return [owner];
178
- if (node.type === 'ObjectExpression')
179
- return node.properties.flatMap((property) => property.type === 'SpreadElement'
180
- ? owners(property.argument)
181
- : property.type === 'Property'
182
- ? owners(property.value)
183
- : []);
184
- if (node.type === 'ArrayExpression')
185
- return node.elements.flatMap((element) => element
186
- ? owners(element.type === 'SpreadElement' ? element.argument : element)
187
- : []);
188
- return [];
189
- }
190
- function paths(binding, seen = new Set()) {
191
- if (!aliases) {
192
- aliases = new Map();
193
- for (const [id, input] of values)
194
- for (const owner of owners(input))
195
- aliases.set(owner, [...(aliases.get(owner) ?? []), id]);
196
- }
197
- if (seen.has(binding))
198
- return [];
199
- seen.add(binding);
200
- return [
201
- ...(usages.get(binding) ?? []),
202
- ...(aliases.get(binding) ?? []).flatMap((alias) => paths(alias, seen)),
203
- ];
204
- }
205
- function resolve(node, allowed, active = new Set()) {
206
- node = Expression.unwrap(node);
207
- if (node.type === 'Identifier') {
208
- const binding = references.get(node.start);
209
- const value = binding === undefined ? undefined : values.get(binding);
210
- if (binding === undefined || !value)
211
- return node;
212
- if (active.has(binding) ||
213
- (!imported.has(binding) && node.start < value.end))
214
- throw new Themes.InvalidError('Static bindings must be acyclic and follow their declaration.', node);
215
- active.add(binding);
216
- const resolved = resolve(value, allowed, active);
217
- active.delete(binding);
218
- if (['CallExpression', 'NewExpression', 'Identifier'].includes(resolved.type))
219
- return node;
220
- if (resolved.type === 'ObjectExpression' ||
221
- resolved.type === 'ArrayExpression') {
222
- for (const path of paths(binding)) {
223
- if (path.some((node) => allowed.has(node.start)))
224
- continue;
225
- if (!path.some((node) => node.type === 'AssignmentExpression' ||
226
- node.type === 'UpdateExpression' ||
227
- ((node.type === 'ForInStatement' ||
228
- node.type === 'ForOfStatement') &&
229
- path.includes(node.left)) ||
230
- (node.type === 'UnaryExpression' && node.operator === 'delete')) &&
231
- path.some((node) => node.type === 'MemberExpression' && scalar(node)))
232
- continue;
233
- const unsupported = path.find((node) => ![
234
- 'Program',
235
- 'TSModuleDeclaration',
236
- 'TSModuleBlock',
237
- 'VariableDeclaration',
238
- 'VariableDeclarator',
239
- 'Identifier',
240
- 'MemberExpression',
241
- 'ObjectExpression',
242
- 'Property',
243
- 'ArrayExpression',
244
- 'SpreadElement',
245
- 'TSAsExpression',
246
- 'TSSatisfiesExpression',
247
- 'TSNonNullExpression',
248
- 'TSTypeAssertion',
249
- 'ExportNamedDeclaration',
250
- 'ExportDefaultDeclaration',
251
- 'ExportSpecifier',
252
- ].includes(node.type));
253
- if (unsupported)
254
- throw new Themes.InvalidError('Static data cannot be mutated or escape through unsupported expressions.', unsupported);
255
- const write = path.find((node) => (node.type === 'VariableDeclarator' &&
256
- (node.id.type !== 'Identifier' || !values.has(node.start))) ||
257
- node.type === 'AssignmentExpression' ||
258
- node.type === 'UpdateExpression' ||
259
- (node.type === 'UnaryExpression' && node.operator === 'delete') ||
260
- ((node.type === 'ForInStatement' ||
261
- node.type === 'ForOfStatement') &&
262
- path.some((value) => value === node.left)));
263
- const call = path.find((node) => node.type === 'CallExpression' || node.type === 'NewExpression');
264
- if (write || call)
265
- throw new Themes.InvalidError('Static data cannot be mutated or escape to runtime calls.', write ?? call);
266
- }
267
- }
268
- used.add(resolved.start);
269
- return resolved;
270
- }
271
- if (node.type === 'MemberExpression' && !node.optional) {
272
- const object = resolve(node.object, allowed, active);
273
- const key = node.property.type === 'Identifier' && !node.computed
274
- ? node.property.name
275
- : node.property.type === 'Literal'
276
- ? String(node.property.value)
277
- : undefined;
278
- if (key !== undefined && object.type === 'ObjectExpression') {
279
- const entries = properties(object, allowed);
280
- if (entries.some((property) => property.type === 'Property' &&
281
- property.computed &&
282
- property.key.type !== 'Literal'))
283
- throw new Themes.InvalidError('Static member reads cannot cross unresolved computed keys.', node);
284
- const property = entries.find((property) => property.type === 'Property' &&
285
- (property.key.type === 'Identifier'
286
- ? property.key.name
287
- : property.key.type === 'Literal'
288
- ? String(property.key.value)
289
- : undefined) === key);
290
- if (property?.type === 'Property')
291
- return resolve(property.value, allowed, active);
292
- }
293
- if (key !== undefined &&
294
- object.type === 'ArrayExpression' &&
295
- /^(?:0|[1-9]\d*)$/.test(key)) {
296
- if (object.elements
297
- .slice(0, Number(key) + 1)
298
- .some((element) => element?.type === 'SpreadElement'))
299
- throw new Themes.InvalidError('Static array indexes cannot cross spread elements.', node);
300
- const element = object.elements[Number(key)];
301
- if (element && element.type !== 'SpreadElement')
302
- return resolve(element, allowed, active);
303
- }
304
- }
305
- used.add(node.start);
306
- return node;
307
- }
308
- function properties(node, allowed) {
309
- const result = new Map();
310
- for (const property of node.properties) {
311
- const entries = property.type === 'SpreadElement'
312
- ? (() => {
313
- const value = resolve(property.argument, allowed);
314
- if (value.type !== 'ObjectExpression')
315
- throw new Themes.InvalidError('Static spreads require an immutable object literal.', property);
316
- return properties(value, allowed);
317
- })()
318
- : [property];
319
- for (const entry of entries) {
320
- if (entry.type !== 'Property')
321
- throw new Themes.InvalidError('Unsupported static object entry.', entry);
322
- if (!entry.computed &&
323
- ((entry.key.type === 'Identifier' &&
324
- entry.key.name === '__proto__') ||
325
- (entry.key.type === 'Literal' && entry.key.value === '__proto__')))
326
- throw new Themes.InvalidError('Static object prototypes are unsupported.', entry);
327
- if (entry.computed && entry.key.type !== 'Literal') {
328
- result.set(`computed:${entry.start}`, entry);
329
- continue;
330
- }
331
- const key = entry.key.type === 'Identifier'
332
- ? entry.key.name
333
- : entry.key.type === 'Literal'
334
- ? String(entry.key.value)
335
- : undefined;
336
- if (key === undefined || entry.method || entry.kind !== 'init')
337
- throw new Themes.InvalidError('Static data requires literal property keys without methods.', entry);
338
- result.set(key, entry.shorthand ? { ...entry, shorthand: false } : entry);
339
- }
340
- }
341
- return [...result.values()];
342
- }
343
- function type(node, active = new Set()) {
344
- if (node.type === 'TSTypeReference' &&
345
- node.typeName.type === 'Identifier') {
346
- const name = typeReferences.get(node.start);
347
- if (name === undefined)
348
- return node;
349
- const value = types.get(name);
350
- if (!value)
351
- return node;
352
- if (active.has(name))
353
- throw new Themes.InvalidError('Dynamic type aliases must be acyclic.', node);
354
- active.add(name);
355
- const result = type(value, active);
356
- active.delete(name);
357
- return result;
358
- }
359
- if (node.type === 'TSParenthesizedType')
360
- return type(node.typeAnnotation, active);
361
- if (node.type === 'TSIntersectionType') {
362
- const parts = node.types.map((value) => type(value, active));
363
- if (parts.every((part) => part.type === 'TSTypeLiteral'))
364
- return {
365
- ...node,
366
- type: 'TSTypeLiteral',
367
- members: parts
368
- .flatMap((part) => part.type === 'TSTypeLiteral' ? part.members : [])
369
- .reduce((members, member) => {
370
- if (member.type !== 'TSPropertySignature' ||
371
- member.computed ||
372
- !member.typeAnnotation)
373
- return [...members, member];
374
- const key = member.key.type === 'Identifier'
375
- ? member.key.name
376
- : member.key.type === 'Literal'
377
- ? member.key.value
378
- : undefined;
379
- const index = members.findIndex((value) => value.type === 'TSPropertySignature' &&
380
- !value.computed &&
381
- value.typeAnnotation &&
382
- key !== undefined &&
383
- key ===
384
- (value.key.type === 'Identifier'
385
- ? value.key.name
386
- : value.key.type === 'Literal'
387
- ? value.key.value
388
- : undefined));
389
- const previous = members[index];
390
- if (previous?.type !== 'TSPropertySignature' ||
391
- !previous.typeAnnotation)
392
- return [...members, member];
393
- members[index] = {
394
- ...previous,
395
- optional: previous.optional && member.optional,
396
- typeAnnotation: {
397
- ...previous.typeAnnotation,
398
- typeAnnotation: {
399
- type: 'TSIntersectionType',
400
- start: previous.start,
401
- end: member.end,
402
- types: [
403
- previous.typeAnnotation.typeAnnotation,
404
- member.typeAnnotation.typeAnnotation,
405
- ],
406
- },
407
- },
408
- };
409
- return members;
410
- }, []),
411
- };
412
- return { ...node, types: parts };
413
- }
414
- if (node.type === 'TSUnionType')
415
- return {
416
- ...node,
417
- types: node.types.map((value) => type(value, active)),
418
- };
419
- if (node.type === 'TSTemplateLiteralType')
420
- return {
421
- ...node,
422
- types: node.types.map((value) => type(value, active)),
423
- };
424
- return node;
425
- }
426
- function normalize(node, allowed, opaque = new Set(), omitUndefined = false) {
427
- if (opaque.has(node.start))
428
- return node;
429
- node = resolve(node, allowed);
430
- if (node.type === 'ObjectExpression') {
431
- const expanded = properties(node, allowed).filter((property) => {
432
- if (!omitUndefined || property.type !== 'Property')
433
- return true;
434
- const value = Expression.unwrap(property.value);
435
- return !(value.type === 'Identifier' &&
436
- value.name === 'undefined' &&
437
- absent.has(value.start));
438
- });
439
- const normalized = expanded.map((property) => property.type === 'Property'
440
- ? (() => {
441
- const value = normalize(property.value, allowed, opaque, omitUndefined);
442
- return value === property.value
443
- ? property
444
- : { ...property, value };
445
- })()
446
- : property);
447
- return normalized.length === node.properties.length &&
448
- normalized.every((property, index) => property === node.properties[index])
449
- ? node
450
- : { ...node, properties: normalized };
451
- }
452
- if (node.type === 'ArrayExpression') {
453
- const elements = node.elements.map((element) => element && element.type !== 'SpreadElement'
454
- ? normalize(element, allowed, opaque, omitUndefined)
455
- : element);
456
- return elements.every((element, index) => element === node.elements[index])
457
- ? node
458
- : { ...node, elements };
459
- }
460
- if (node.type === 'TemplateLiteral') {
461
- const expressions = node.expressions.map((expression) => normalize(expression, allowed, opaque, omitUndefined));
462
- return expressions.every((expression, index) => expression === node.expressions[index])
463
- ? node
464
- : { ...node, expressions };
465
- }
466
- return node;
467
- }
468
- return {
469
- visitor,
470
- /** Recognizes the unshadowed undefined value without evaluating expressions. */
471
- absent(input) {
472
- const node = Expression.unwrap(input);
473
- return (node.type === 'Identifier' &&
474
- node.name === 'undefined' &&
475
- absent.has(node.start));
476
- },
477
- /** Resolves an exported immutable literal without evaluating module code. */
478
- exported(name) {
479
- for (const statement of program.body) {
480
- const declaration = statement.type === 'ExportNamedDeclaration'
481
- ? statement.declaration
482
- : statement;
483
- if (declaration?.type !== 'VariableDeclaration' ||
484
- declaration.kind !== 'const')
485
- continue;
486
- for (const value of declaration.declarations) {
487
- if (value.id.type !== 'Identifier' ||
488
- value.id.name !== name ||
489
- !value.init)
490
- continue;
491
- const reference = {
492
- ...value.id,
493
- start: program.end + 1,
494
- end: program.end + 1,
495
- };
496
- references.set(reference.start, value.start);
497
- try {
498
- return normalize(reference, new Set(), new Set(), true);
499
- }
500
- finally {
501
- references.delete(reference.start);
502
- }
503
- }
504
- }
505
- for (const statement of program.body) {
506
- if (statement.type !== 'ImportDeclaration')
507
- continue;
508
- const specifier = statement.specifiers.find((specifier) => specifier.local.name === name);
509
- if (!specifier || !imports[name])
510
- continue;
511
- const reference = {
512
- ...specifier.local,
513
- start: program.end + 1,
514
- end: program.end + 1,
515
- };
516
- references.set(reference.start, specifier.start);
517
- try {
518
- return normalize(reference, new Set(), new Set(), true);
519
- }
520
- finally {
521
- references.delete(reference.start);
522
- }
523
- }
524
- return undefined;
525
- },
526
- resolve,
527
- properties,
528
- type,
529
- used,
530
- normalize,
531
- bindings: new Set(values.keys()),
532
- };
533
- }
534
- //# sourceMappingURL=Static.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Static.js","sourceRoot":"","sources":["../../../src/compiler/internal/Static.ts"],"names":[],"mappings":"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"}