@tachui/cli 0.8.0-alpha → 0.8.5-alpha

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 (638) hide show
  1. package/README.md +15 -0
  2. package/bin/tacho.js +57 -7
  3. package/dist/cli/src/commands/analyze-imports.d.ts +18 -0
  4. package/dist/cli/src/commands/analyze-imports.d.ts.map +1 -0
  5. package/dist/cli/src/commands/analyze-imports.js +152 -0
  6. package/dist/cli/src/commands/analyze-imports.js.map +1 -0
  7. package/dist/cli/src/commands/analyze.d.ts.map +1 -0
  8. package/dist/{commands → cli/src/commands}/analyze.js +226 -13
  9. package/dist/cli/src/commands/analyze.js.map +1 -0
  10. package/dist/cli/src/commands/dev.d.ts.map +1 -0
  11. package/dist/cli/src/commands/dev.js.map +1 -0
  12. package/dist/cli/src/commands/generate.d.ts.map +1 -0
  13. package/dist/{commands → cli/src/commands}/generate.js +0 -21
  14. package/dist/cli/src/commands/generate.js.map +1 -0
  15. package/dist/cli/src/commands/init.d.ts.map +1 -0
  16. package/dist/{commands → cli/src/commands}/init.js +1 -28
  17. package/dist/cli/src/commands/init.js.map +1 -0
  18. package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts +3 -0
  19. package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts.map +1 -0
  20. package/dist/cli/src/commands/migrate/remove-modifier-trigger.js +103 -0
  21. package/dist/cli/src/commands/migrate/remove-modifier-trigger.js.map +1 -0
  22. package/dist/cli/src/commands/migrate.d.ts.map +1 -0
  23. package/dist/{commands → cli/src/commands}/migrate.js +5 -3
  24. package/dist/cli/src/commands/migrate.js.map +1 -0
  25. package/dist/cli/src/commands/modifier-docs.d.ts +24 -0
  26. package/dist/cli/src/commands/modifier-docs.d.ts.map +1 -0
  27. package/dist/cli/src/commands/modifier-docs.js +375 -0
  28. package/dist/cli/src/commands/modifier-docs.js.map +1 -0
  29. package/dist/cli/src/commands/optimize.d.ts.map +1 -0
  30. package/dist/cli/src/commands/optimize.js.map +1 -0
  31. package/dist/cli/src/import-optimizer.d.ts +50 -0
  32. package/dist/cli/src/import-optimizer.d.ts.map +1 -0
  33. package/dist/cli/src/import-optimizer.js +227 -0
  34. package/dist/cli/src/import-optimizer.js.map +1 -0
  35. package/dist/cli/src/index.d.ts.map +1 -0
  36. package/dist/{index.js → cli/src/index.js} +14 -3
  37. package/dist/cli/src/index.js.map +1 -0
  38. package/dist/cli/src/migrations/remove-modifier-trigger.d.ts +7 -0
  39. package/dist/cli/src/migrations/remove-modifier-trigger.d.ts.map +1 -0
  40. package/dist/cli/src/migrations/remove-modifier-trigger.js +99 -0
  41. package/dist/cli/src/migrations/remove-modifier-trigger.js.map +1 -0
  42. package/dist/core/package.json +223 -0
  43. package/dist/core/src/assets/Asset.d.ts +11 -0
  44. package/dist/core/src/assets/Asset.d.ts.map +1 -0
  45. package/dist/core/src/assets/Asset.js +12 -0
  46. package/dist/core/src/assets/Asset.js.map +1 -0
  47. package/dist/core/src/assets/AssetCollection.d.ts +14 -0
  48. package/dist/core/src/assets/AssetCollection.d.ts.map +1 -0
  49. package/dist/core/src/assets/AssetCollection.js +133 -0
  50. package/dist/core/src/assets/AssetCollection.js.map +1 -0
  51. package/dist/core/src/assets/ColorAsset.d.ts +31 -0
  52. package/dist/core/src/assets/ColorAsset.d.ts.map +1 -0
  53. package/dist/core/src/assets/ColorAsset.js +182 -0
  54. package/dist/core/src/assets/ColorAsset.js.map +1 -0
  55. package/dist/core/src/assets/FontAsset.d.ts +114 -0
  56. package/dist/core/src/assets/FontAsset.d.ts.map +1 -0
  57. package/dist/core/src/assets/FontAsset.js +289 -0
  58. package/dist/core/src/assets/FontAsset.js.map +1 -0
  59. package/dist/core/src/assets/ImageAsset.d.ts +35 -0
  60. package/dist/core/src/assets/ImageAsset.d.ts.map +1 -0
  61. package/dist/core/src/assets/ImageAsset.js +69 -0
  62. package/dist/core/src/assets/ImageAsset.js.map +1 -0
  63. package/dist/core/src/assets/index.d.ts +27 -0
  64. package/dist/core/src/assets/index.d.ts.map +1 -0
  65. package/dist/core/src/assets/index.js +137 -0
  66. package/dist/core/src/assets/index.js.map +1 -0
  67. package/dist/core/src/assets/types.d.ts +10 -0
  68. package/dist/core/src/assets/types.d.ts.map +1 -0
  69. package/dist/core/src/assets/types.js +6 -0
  70. package/dist/core/src/assets/types.js.map +1 -0
  71. package/dist/core/src/compiler/advanced-parser.d.ts +113 -0
  72. package/dist/core/src/compiler/advanced-parser.d.ts.map +1 -0
  73. package/dist/core/src/compiler/advanced-parser.js +702 -0
  74. package/dist/core/src/compiler/advanced-parser.js.map +1 -0
  75. package/dist/core/src/compiler/codegen.d.ts +20 -0
  76. package/dist/core/src/compiler/codegen.d.ts.map +1 -0
  77. package/dist/core/src/compiler/codegen.js +509 -0
  78. package/dist/core/src/compiler/codegen.js.map +1 -0
  79. package/dist/core/src/compiler/enhanced-codegen.d.ts +121 -0
  80. package/dist/core/src/compiler/enhanced-codegen.d.ts.map +1 -0
  81. package/dist/core/src/compiler/enhanced-codegen.js +607 -0
  82. package/dist/core/src/compiler/enhanced-codegen.js.map +1 -0
  83. package/dist/core/src/compiler/index.d.ts +14 -0
  84. package/dist/core/src/compiler/index.d.ts.map +1 -0
  85. package/dist/core/src/compiler/index.js +12 -0
  86. package/dist/core/src/compiler/index.js.map +1 -0
  87. package/dist/core/src/compiler/parser.d.ts +12 -0
  88. package/dist/core/src/compiler/parser.d.ts.map +1 -0
  89. package/dist/core/src/compiler/parser.js +407 -0
  90. package/dist/core/src/compiler/parser.js.map +1 -0
  91. package/dist/core/src/compiler/plugin.d.ts +13 -0
  92. package/dist/core/src/compiler/plugin.d.ts.map +1 -0
  93. package/dist/core/src/compiler/plugin.js +456 -0
  94. package/dist/core/src/compiler/plugin.js.map +1 -0
  95. package/dist/core/src/compiler/types.d.ts +177 -0
  96. package/dist/core/src/compiler/types.d.ts.map +1 -0
  97. package/dist/core/src/compiler/types.js +5 -0
  98. package/dist/core/src/compiler/types.js.map +1 -0
  99. package/dist/core/src/components/factory.d.ts +24 -0
  100. package/dist/core/src/components/factory.d.ts.map +1 -0
  101. package/dist/core/src/components/factory.js +19 -0
  102. package/dist/core/src/components/factory.js.map +1 -0
  103. package/dist/core/src/components/index.d.ts +12 -0
  104. package/dist/core/src/components/index.d.ts.map +1 -0
  105. package/dist/core/src/components/index.js +9 -0
  106. package/dist/core/src/components/index.js.map +1 -0
  107. package/dist/core/src/components/wrapper.d.ts +142 -0
  108. package/dist/core/src/components/wrapper.d.ts.map +1 -0
  109. package/dist/core/src/components/wrapper.js +628 -0
  110. package/dist/core/src/components/wrapper.js.map +1 -0
  111. package/dist/core/src/concatenation/concatenatable.d.ts +63 -0
  112. package/dist/core/src/concatenation/concatenatable.d.ts.map +1 -0
  113. package/dist/core/src/concatenation/concatenatable.js +158 -0
  114. package/dist/core/src/concatenation/concatenatable.js.map +1 -0
  115. package/dist/core/src/concatenation/concatenated-component.d.ts +124 -0
  116. package/dist/core/src/concatenation/concatenated-component.d.ts.map +1 -0
  117. package/dist/core/src/concatenation/concatenated-component.js +447 -0
  118. package/dist/core/src/concatenation/concatenated-component.js.map +1 -0
  119. package/dist/core/src/concatenation/index.d.ts +13 -0
  120. package/dist/core/src/concatenation/index.d.ts.map +1 -0
  121. package/dist/core/src/concatenation/index.js +16 -0
  122. package/dist/core/src/concatenation/index.js.map +1 -0
  123. package/dist/core/src/concatenation/text-optimizer.d.ts +104 -0
  124. package/dist/core/src/concatenation/text-optimizer.d.ts.map +1 -0
  125. package/dist/core/src/concatenation/text-optimizer.js +349 -0
  126. package/dist/core/src/concatenation/text-optimizer.js.map +1 -0
  127. package/dist/core/src/concatenation/types.d.ts +88 -0
  128. package/dist/core/src/concatenation/types.d.ts.map +1 -0
  129. package/dist/core/src/concatenation/types.js +23 -0
  130. package/dist/core/src/concatenation/types.js.map +1 -0
  131. package/dist/core/src/config.d.ts +7 -0
  132. package/dist/core/src/config.d.ts.map +1 -0
  133. package/dist/core/src/config.js +17 -0
  134. package/dist/core/src/config.js.map +1 -0
  135. package/dist/core/src/constants/frame-utils.d.ts +68 -0
  136. package/dist/core/src/constants/frame-utils.d.ts.map +1 -0
  137. package/dist/core/src/constants/frame-utils.js +156 -0
  138. package/dist/core/src/constants/frame-utils.js.map +1 -0
  139. package/dist/core/src/constants/index.d.ts +8 -0
  140. package/dist/core/src/constants/index.d.ts.map +1 -0
  141. package/dist/core/src/constants/index.js +8 -0
  142. package/dist/core/src/constants/index.js.map +1 -0
  143. package/dist/core/src/constants/layout.d.ts +96 -0
  144. package/dist/core/src/constants/layout.d.ts.map +1 -0
  145. package/dist/core/src/constants/layout.js +124 -0
  146. package/dist/core/src/constants/layout.js.map +1 -0
  147. package/dist/core/src/css-classes/component-base.d.ts +40 -0
  148. package/dist/core/src/css-classes/component-base.d.ts.map +1 -0
  149. package/dist/core/src/css-classes/component-base.js +90 -0
  150. package/dist/core/src/css-classes/component-base.js.map +1 -0
  151. package/dist/core/src/css-classes/css-class-manager.d.ts +89 -0
  152. package/dist/core/src/css-classes/css-class-manager.d.ts.map +1 -0
  153. package/dist/core/src/css-classes/css-class-manager.js +328 -0
  154. package/dist/core/src/css-classes/css-class-manager.js.map +1 -0
  155. package/dist/core/src/css-classes/dom-integration.d.ts +76 -0
  156. package/dist/core/src/css-classes/dom-integration.d.ts.map +1 -0
  157. package/dist/core/src/css-classes/dom-integration.js +104 -0
  158. package/dist/core/src/css-classes/dom-integration.js.map +1 -0
  159. package/dist/core/src/css-classes/enhanced-renderer.d.ts +42 -0
  160. package/dist/core/src/css-classes/enhanced-renderer.d.ts.map +1 -0
  161. package/dist/core/src/css-classes/enhanced-renderer.js +121 -0
  162. package/dist/core/src/css-classes/enhanced-renderer.js.map +1 -0
  163. package/dist/core/src/css-classes/index.d.ts +14 -0
  164. package/dist/core/src/css-classes/index.d.ts.map +1 -0
  165. package/dist/core/src/css-classes/index.js +14 -0
  166. package/dist/core/src/css-classes/index.js.map +1 -0
  167. package/dist/core/src/css-classes/types.d.ts +59 -0
  168. package/dist/core/src/css-classes/types.d.ts.map +1 -0
  169. package/dist/core/src/css-classes/types.js +8 -0
  170. package/dist/core/src/css-classes/types.js.map +1 -0
  171. package/dist/core/src/css-classes/utilities.d.ts +104 -0
  172. package/dist/core/src/css-classes/utilities.d.ts.map +1 -0
  173. package/dist/core/src/css-classes/utilities.js +126 -0
  174. package/dist/core/src/css-classes/utilities.js.map +1 -0
  175. package/dist/core/src/gradients/css-generator.d.ts +10 -0
  176. package/dist/core/src/gradients/css-generator.d.ts.map +1 -0
  177. package/dist/core/src/gradients/css-generator.js +123 -0
  178. package/dist/core/src/gradients/css-generator.js.map +1 -0
  179. package/dist/core/src/gradients/examples.d.ts +432 -0
  180. package/dist/core/src/gradients/examples.d.ts.map +1 -0
  181. package/dist/core/src/gradients/examples.js +588 -0
  182. package/dist/core/src/gradients/examples.js.map +1 -0
  183. package/dist/core/src/gradients/gradient-asset.d.ts +10 -0
  184. package/dist/core/src/gradients/gradient-asset.d.ts.map +1 -0
  185. package/dist/core/src/gradients/gradient-asset.js +25 -0
  186. package/dist/core/src/gradients/gradient-asset.js.map +1 -0
  187. package/dist/core/src/gradients/index.d.ts +19 -0
  188. package/dist/core/src/gradients/index.d.ts.map +1 -0
  189. package/dist/core/src/gradients/index.js +56 -0
  190. package/dist/core/src/gradients/index.js.map +1 -0
  191. package/dist/core/src/gradients/performance.d.ts +146 -0
  192. package/dist/core/src/gradients/performance.d.ts.map +1 -0
  193. package/dist/core/src/gradients/performance.js +413 -0
  194. package/dist/core/src/gradients/performance.js.map +1 -0
  195. package/dist/core/src/gradients/presets.d.ts +165 -0
  196. package/dist/core/src/gradients/presets.d.ts.map +1 -0
  197. package/dist/core/src/gradients/presets.js +371 -0
  198. package/dist/core/src/gradients/presets.js.map +1 -0
  199. package/dist/core/src/gradients/reactive.d.ts +167 -0
  200. package/dist/core/src/gradients/reactive.d.ts.map +1 -0
  201. package/dist/core/src/gradients/reactive.js +329 -0
  202. package/dist/core/src/gradients/reactive.js.map +1 -0
  203. package/dist/core/src/gradients/state-gradient-asset.d.ts +67 -0
  204. package/dist/core/src/gradients/state-gradient-asset.d.ts.map +1 -0
  205. package/dist/core/src/gradients/state-gradient-asset.js +145 -0
  206. package/dist/core/src/gradients/state-gradient-asset.js.map +1 -0
  207. package/dist/core/src/gradients/types.d.ts +6 -0
  208. package/dist/core/src/gradients/types.d.ts.map +1 -0
  209. package/dist/core/src/gradients/types.js +6 -0
  210. package/dist/core/src/gradients/types.js.map +1 -0
  211. package/dist/core/src/gradients/utils.d.ts +313 -0
  212. package/dist/core/src/gradients/utils.d.ts.map +1 -0
  213. package/dist/core/src/gradients/utils.js +513 -0
  214. package/dist/core/src/gradients/utils.js.map +1 -0
  215. package/dist/core/src/gradients/validation.d.ts +156 -0
  216. package/dist/core/src/gradients/validation.d.ts.map +1 -0
  217. package/dist/core/src/gradients/validation.js +392 -0
  218. package/dist/core/src/gradients/validation.js.map +1 -0
  219. package/dist/core/src/index.d.ts +33 -0
  220. package/dist/core/src/index.d.ts.map +1 -0
  221. package/dist/core/src/index.js +57 -0
  222. package/dist/core/src/index.js.map +1 -0
  223. package/dist/core/src/lifecycle/hooks.d.ts +101 -0
  224. package/dist/core/src/lifecycle/hooks.d.ts.map +1 -0
  225. package/dist/core/src/lifecycle/hooks.js +241 -0
  226. package/dist/core/src/lifecycle/hooks.js.map +1 -0
  227. package/dist/core/src/modifiers/alignment.d.ts +5 -0
  228. package/dist/core/src/modifiers/alignment.d.ts.map +1 -0
  229. package/dist/core/src/modifiers/alignment.js +19 -0
  230. package/dist/core/src/modifiers/alignment.js.map +1 -0
  231. package/dist/core/src/modifiers/base.d.ts +128 -0
  232. package/dist/core/src/modifiers/base.d.ts.map +1 -0
  233. package/dist/core/src/modifiers/base.js +1062 -0
  234. package/dist/core/src/modifiers/base.js.map +1 -0
  235. package/dist/core/src/modifiers/builder.d.ts +148 -0
  236. package/dist/core/src/modifiers/builder.d.ts.map +1 -0
  237. package/dist/core/src/modifiers/builder.js +903 -0
  238. package/dist/core/src/modifiers/builder.js.map +1 -0
  239. package/dist/core/src/modifiers/core.d.ts +14 -0
  240. package/dist/core/src/modifiers/core.d.ts.map +1 -0
  241. package/dist/core/src/modifiers/core.js +16 -0
  242. package/dist/core/src/modifiers/core.js.map +1 -0
  243. package/dist/core/src/modifiers/corner-radius.d.ts +8 -0
  244. package/dist/core/src/modifiers/corner-radius.d.ts.map +1 -0
  245. package/dist/core/src/modifiers/corner-radius.js +19 -0
  246. package/dist/core/src/modifiers/corner-radius.js.map +1 -0
  247. package/dist/core/src/modifiers/factories.d.ts +88 -0
  248. package/dist/core/src/modifiers/factories.d.ts.map +1 -0
  249. package/dist/core/src/modifiers/factories.js +376 -0
  250. package/dist/core/src/modifiers/factories.js.map +1 -0
  251. package/dist/core/src/modifiers/index.d.ts +17 -0
  252. package/dist/core/src/modifiers/index.d.ts.map +1 -0
  253. package/dist/core/src/modifiers/index.js +16 -0
  254. package/dist/core/src/modifiers/index.js.map +1 -0
  255. package/dist/core/src/modifiers/layout-priority.d.ts +8 -0
  256. package/dist/core/src/modifiers/layout-priority.d.ts.map +1 -0
  257. package/dist/core/src/modifiers/layout-priority.js +19 -0
  258. package/dist/core/src/modifiers/layout-priority.js.map +1 -0
  259. package/dist/core/src/modifiers/opacity.d.ts +8 -0
  260. package/dist/core/src/modifiers/opacity.d.ts.map +1 -0
  261. package/dist/core/src/modifiers/opacity.js +19 -0
  262. package/dist/core/src/modifiers/opacity.js.map +1 -0
  263. package/dist/core/src/modifiers/presets.d.ts +368 -0
  264. package/dist/core/src/modifiers/presets.d.ts.map +1 -0
  265. package/dist/core/src/modifiers/presets.js +394 -0
  266. package/dist/core/src/modifiers/presets.js.map +1 -0
  267. package/dist/core/src/modifiers/proxy.d.ts +4 -0
  268. package/dist/core/src/modifiers/proxy.d.ts.map +1 -0
  269. package/dist/core/src/modifiers/proxy.js +212 -0
  270. package/dist/core/src/modifiers/proxy.js.map +1 -0
  271. package/dist/core/src/modifiers/registration-utils.d.ts +7 -0
  272. package/dist/core/src/modifiers/registration-utils.d.ts.map +1 -0
  273. package/dist/core/src/modifiers/registration-utils.js +46 -0
  274. package/dist/core/src/modifiers/registration-utils.js.map +1 -0
  275. package/dist/core/src/modifiers/registry.d.ts +78 -0
  276. package/dist/core/src/modifiers/registry.d.ts.map +1 -0
  277. package/dist/core/src/modifiers/registry.js +397 -0
  278. package/dist/core/src/modifiers/registry.js.map +1 -0
  279. package/dist/core/src/modifiers/types.d.ts +6 -0
  280. package/dist/core/src/modifiers/types.d.ts.map +1 -0
  281. package/dist/core/src/modifiers/types.js +6 -0
  282. package/dist/core/src/modifiers/types.js.map +1 -0
  283. package/dist/core/src/plugins/index.d.ts +16 -0
  284. package/dist/core/src/plugins/index.d.ts.map +1 -0
  285. package/dist/core/src/plugins/index.js +21 -0
  286. package/dist/core/src/plugins/index.js.map +1 -0
  287. package/dist/core/src/plugins/legacy-adapter.d.ts +35 -0
  288. package/dist/core/src/plugins/legacy-adapter.d.ts.map +1 -0
  289. package/dist/core/src/plugins/legacy-adapter.js +57 -0
  290. package/dist/core/src/plugins/legacy-adapter.js.map +1 -0
  291. package/dist/core/src/plugins/simplified-component-registry.d.ts +40 -0
  292. package/dist/core/src/plugins/simplified-component-registry.d.ts.map +1 -0
  293. package/dist/core/src/plugins/simplified-component-registry.js +97 -0
  294. package/dist/core/src/plugins/simplified-component-registry.js.map +1 -0
  295. package/dist/core/src/plugins/simplified-lazy-loader.d.ts +65 -0
  296. package/dist/core/src/plugins/simplified-lazy-loader.d.ts.map +1 -0
  297. package/dist/core/src/plugins/simplified-lazy-loader.js +205 -0
  298. package/dist/core/src/plugins/simplified-lazy-loader.js.map +1 -0
  299. package/dist/core/src/plugins/simplified-plugin-manager.d.ts +24 -0
  300. package/dist/core/src/plugins/simplified-plugin-manager.d.ts.map +1 -0
  301. package/dist/core/src/plugins/simplified-plugin-manager.js +77 -0
  302. package/dist/core/src/plugins/simplified-plugin-manager.js.map +1 -0
  303. package/dist/core/src/plugins/simplified-tachui-instance.d.ts +54 -0
  304. package/dist/core/src/plugins/simplified-tachui-instance.d.ts.map +1 -0
  305. package/dist/core/src/plugins/simplified-tachui-instance.js +114 -0
  306. package/dist/core/src/plugins/simplified-tachui-instance.js.map +1 -0
  307. package/dist/core/src/plugins/simplified-types.d.ts +63 -0
  308. package/dist/core/src/plugins/simplified-types.d.ts.map +1 -0
  309. package/dist/core/src/plugins/simplified-types.js +18 -0
  310. package/dist/core/src/plugins/simplified-types.js.map +1 -0
  311. package/dist/core/src/plugins/simplified-utils.d.ts +39 -0
  312. package/dist/core/src/plugins/simplified-utils.d.ts.map +1 -0
  313. package/dist/core/src/plugins/simplified-utils.js +104 -0
  314. package/dist/core/src/plugins/simplified-utils.js.map +1 -0
  315. package/dist/core/src/reactive/cleanup.d.ts +115 -0
  316. package/dist/core/src/reactive/cleanup.d.ts.map +1 -0
  317. package/dist/core/src/reactive/cleanup.js +187 -0
  318. package/dist/core/src/reactive/cleanup.js.map +1 -0
  319. package/dist/core/src/reactive/computed.d.ts +115 -0
  320. package/dist/core/src/reactive/computed.d.ts.map +1 -0
  321. package/dist/core/src/reactive/computed.js +237 -0
  322. package/dist/core/src/reactive/computed.js.map +1 -0
  323. package/dist/core/src/reactive/context.d.ts +83 -0
  324. package/dist/core/src/reactive/context.d.ts.map +1 -0
  325. package/dist/core/src/reactive/context.js +286 -0
  326. package/dist/core/src/reactive/context.js.map +1 -0
  327. package/dist/core/src/reactive/effect.d.ts +79 -0
  328. package/dist/core/src/reactive/effect.d.ts.map +1 -0
  329. package/dist/core/src/reactive/effect.js +159 -0
  330. package/dist/core/src/reactive/effect.js.map +1 -0
  331. package/dist/core/src/reactive/enhanced-effect.d.ts +108 -0
  332. package/dist/core/src/reactive/enhanced-effect.d.ts.map +1 -0
  333. package/dist/core/src/reactive/enhanced-effect.js +265 -0
  334. package/dist/core/src/reactive/enhanced-effect.js.map +1 -0
  335. package/dist/core/src/reactive/enhanced-signal.d.ts +91 -0
  336. package/dist/core/src/reactive/enhanced-signal.d.ts.map +1 -0
  337. package/dist/core/src/reactive/enhanced-signal.js +175 -0
  338. package/dist/core/src/reactive/enhanced-signal.js.map +1 -0
  339. package/dist/core/src/reactive/equality.d.ts +51 -0
  340. package/dist/core/src/reactive/equality.d.ts.map +1 -0
  341. package/dist/core/src/reactive/equality.js +169 -0
  342. package/dist/core/src/reactive/equality.js.map +1 -0
  343. package/dist/core/src/reactive/index.d.ts +22 -0
  344. package/dist/core/src/reactive/index.d.ts.map +1 -0
  345. package/dist/core/src/reactive/index.js +33 -0
  346. package/dist/core/src/reactive/index.js.map +1 -0
  347. package/dist/core/src/reactive/migration.d.ts +104 -0
  348. package/dist/core/src/reactive/migration.d.ts.map +1 -0
  349. package/dist/core/src/reactive/migration.js +257 -0
  350. package/dist/core/src/reactive/migration.js.map +1 -0
  351. package/dist/core/src/reactive/ownership.d.ts +75 -0
  352. package/dist/core/src/reactive/ownership.d.ts.map +1 -0
  353. package/dist/core/src/reactive/ownership.js +155 -0
  354. package/dist/core/src/reactive/ownership.js.map +1 -0
  355. package/dist/core/src/reactive/scheduler.d.ts +56 -0
  356. package/dist/core/src/reactive/scheduler.d.ts.map +1 -0
  357. package/dist/core/src/reactive/scheduler.js +263 -0
  358. package/dist/core/src/reactive/scheduler.js.map +1 -0
  359. package/dist/core/src/reactive/signal-list.d.ts +100 -0
  360. package/dist/core/src/reactive/signal-list.d.ts.map +1 -0
  361. package/dist/core/src/reactive/signal-list.js +240 -0
  362. package/dist/core/src/reactive/signal-list.js.map +1 -0
  363. package/dist/core/src/reactive/signal.d.ts +82 -0
  364. package/dist/core/src/reactive/signal.d.ts.map +1 -0
  365. package/dist/core/src/reactive/signal.js +172 -0
  366. package/dist/core/src/reactive/signal.js.map +1 -0
  367. package/dist/core/src/reactive/theme.d.ts +12 -0
  368. package/dist/core/src/reactive/theme.d.ts.map +1 -0
  369. package/dist/core/src/reactive/theme.js +41 -0
  370. package/dist/core/src/reactive/theme.js.map +1 -0
  371. package/dist/core/src/reactive/types.d.ts +6 -0
  372. package/dist/core/src/reactive/types.d.ts.map +1 -0
  373. package/dist/core/src/reactive/types.js +6 -0
  374. package/dist/core/src/reactive/types.js.map +1 -0
  375. package/dist/core/src/reactive/unified-scheduler.d.ts +112 -0
  376. package/dist/core/src/reactive/unified-scheduler.d.ts.map +1 -0
  377. package/dist/core/src/reactive/unified-scheduler.js +315 -0
  378. package/dist/core/src/reactive/unified-scheduler.js.map +1 -0
  379. package/dist/core/src/runtime/component-context.d.ts +73 -0
  380. package/dist/core/src/runtime/component-context.d.ts.map +1 -0
  381. package/dist/core/src/runtime/component-context.js +278 -0
  382. package/dist/core/src/runtime/component-context.js.map +1 -0
  383. package/dist/core/src/runtime/component.d.ts +112 -0
  384. package/dist/core/src/runtime/component.d.ts.map +1 -0
  385. package/dist/core/src/runtime/component.js +394 -0
  386. package/dist/core/src/runtime/component.js.map +1 -0
  387. package/dist/core/src/runtime/context.d.ts +138 -0
  388. package/dist/core/src/runtime/context.d.ts.map +1 -0
  389. package/dist/core/src/runtime/context.js +411 -0
  390. package/dist/core/src/runtime/context.js.map +1 -0
  391. package/dist/core/src/runtime/dom-bridge.d.ts +70 -0
  392. package/dist/core/src/runtime/dom-bridge.d.ts.map +1 -0
  393. package/dist/core/src/runtime/dom-bridge.js +481 -0
  394. package/dist/core/src/runtime/dom-bridge.js.map +1 -0
  395. package/dist/core/src/runtime/element-override.d.ts +82 -0
  396. package/dist/core/src/runtime/element-override.d.ts.map +1 -0
  397. package/dist/core/src/runtime/element-override.js +360 -0
  398. package/dist/core/src/runtime/element-override.js.map +1 -0
  399. package/dist/core/src/runtime/event-delegation.d.ts +59 -0
  400. package/dist/core/src/runtime/event-delegation.d.ts.map +1 -0
  401. package/dist/core/src/runtime/event-delegation.js +220 -0
  402. package/dist/core/src/runtime/event-delegation.js.map +1 -0
  403. package/dist/core/src/runtime/index.d.ts +24 -0
  404. package/dist/core/src/runtime/index.d.ts.map +1 -0
  405. package/dist/core/src/runtime/index.js +36 -0
  406. package/dist/core/src/runtime/index.js.map +1 -0
  407. package/dist/core/src/runtime/lazy-component.d.ts +58 -0
  408. package/dist/core/src/runtime/lazy-component.d.ts.map +1 -0
  409. package/dist/core/src/runtime/lazy-component.js +206 -0
  410. package/dist/core/src/runtime/lazy-component.js.map +1 -0
  411. package/dist/core/src/runtime/lifecycle.d.ts +8 -0
  412. package/dist/core/src/runtime/lifecycle.d.ts.map +1 -0
  413. package/dist/core/src/runtime/lifecycle.js +9 -0
  414. package/dist/core/src/runtime/lifecycle.js.map +1 -0
  415. package/dist/core/src/runtime/mounting.d.ts +9 -0
  416. package/dist/core/src/runtime/mounting.d.ts.map +1 -0
  417. package/dist/core/src/runtime/mounting.js +15 -0
  418. package/dist/core/src/runtime/mounting.js.map +1 -0
  419. package/dist/core/src/runtime/optimization.d.ts +8 -0
  420. package/dist/core/src/runtime/optimization.d.ts.map +1 -0
  421. package/dist/core/src/runtime/optimization.js +12 -0
  422. package/dist/core/src/runtime/optimization.js.map +1 -0
  423. package/dist/core/src/runtime/props.d.ts +154 -0
  424. package/dist/core/src/runtime/props.d.ts.map +1 -0
  425. package/dist/core/src/runtime/props.js +389 -0
  426. package/dist/core/src/runtime/props.js.map +1 -0
  427. package/dist/core/src/runtime/renderer.d.ts +168 -0
  428. package/dist/core/src/runtime/renderer.d.ts.map +1 -0
  429. package/dist/core/src/runtime/renderer.js +1181 -0
  430. package/dist/core/src/runtime/renderer.js.map +1 -0
  431. package/dist/core/src/runtime/semantic-role-manager.d.ts +37 -0
  432. package/dist/core/src/runtime/semantic-role-manager.d.ts.map +1 -0
  433. package/dist/core/src/runtime/semantic-role-manager.js +102 -0
  434. package/dist/core/src/runtime/semantic-role-manager.js.map +1 -0
  435. package/dist/core/src/runtime/types.d.ts +6 -0
  436. package/dist/core/src/runtime/types.d.ts.map +1 -0
  437. package/dist/core/src/runtime/types.js +6 -0
  438. package/dist/core/src/runtime/types.js.map +1 -0
  439. package/dist/core/src/state/binding.d.ts +96 -0
  440. package/dist/core/src/state/binding.d.ts.map +1 -0
  441. package/dist/core/src/state/binding.js +264 -0
  442. package/dist/core/src/state/binding.js.map +1 -0
  443. package/dist/core/src/state/environment.d.ts +178 -0
  444. package/dist/core/src/state/environment.d.ts.map +1 -0
  445. package/dist/core/src/state/environment.js +272 -0
  446. package/dist/core/src/state/environment.js.map +1 -0
  447. package/dist/core/src/state/index.d.ts +108 -0
  448. package/dist/core/src/state/index.d.ts.map +1 -0
  449. package/dist/core/src/state/index.js +102 -0
  450. package/dist/core/src/state/index.js.map +1 -0
  451. package/dist/core/src/state/observed-object.d.ts +126 -0
  452. package/dist/core/src/state/observed-object.d.ts.map +1 -0
  453. package/dist/core/src/state/observed-object.js +330 -0
  454. package/dist/core/src/state/observed-object.js.map +1 -0
  455. package/dist/core/src/state/state-manager.d.ts +97 -0
  456. package/dist/core/src/state/state-manager.d.ts.map +1 -0
  457. package/dist/core/src/state/state-manager.js +297 -0
  458. package/dist/core/src/state/state-manager.js.map +1 -0
  459. package/dist/core/src/state/state.d.ts +78 -0
  460. package/dist/core/src/state/state.d.ts.map +1 -0
  461. package/dist/core/src/state/state.js +283 -0
  462. package/dist/core/src/state/state.js.map +1 -0
  463. package/dist/core/src/state/types.d.ts +159 -0
  464. package/dist/core/src/state/types.d.ts.map +1 -0
  465. package/dist/core/src/state/types.js +8 -0
  466. package/dist/core/src/state/types.js.map +1 -0
  467. package/dist/core/src/utils/clone-helpers.d.ts +11 -0
  468. package/dist/core/src/utils/clone-helpers.d.ts.map +1 -0
  469. package/dist/core/src/utils/clone-helpers.js +69 -0
  470. package/dist/core/src/utils/clone-helpers.js.map +1 -0
  471. package/dist/core/src/validation/build-time-stub.d.ts +33 -0
  472. package/dist/core/src/validation/build-time-stub.d.ts.map +1 -0
  473. package/dist/core/src/validation/build-time-stub.js +53 -0
  474. package/dist/core/src/validation/build-time-stub.js.map +1 -0
  475. package/dist/core/src/validation/debug-tools-stub.d.ts +67 -0
  476. package/dist/core/src/validation/debug-tools-stub.d.ts.map +1 -0
  477. package/dist/core/src/validation/debug-tools-stub.js +94 -0
  478. package/dist/core/src/validation/debug-tools-stub.js.map +1 -0
  479. package/dist/core/src/validation/index.d.ts +116 -0
  480. package/dist/core/src/validation/index.d.ts.map +1 -0
  481. package/dist/core/src/validation/index.js +306 -0
  482. package/dist/core/src/validation/index.js.map +1 -0
  483. package/dist/core/src/validation/lifecycle-validation.d.ts +165 -0
  484. package/dist/core/src/validation/lifecycle-validation.d.ts.map +1 -0
  485. package/dist/core/src/validation/lifecycle-validation.js +501 -0
  486. package/dist/core/src/validation/lifecycle-validation.js.map +1 -0
  487. package/dist/core/src/validation/performance-optimizer-stub.d.ts +50 -0
  488. package/dist/core/src/validation/performance-optimizer-stub.d.ts.map +1 -0
  489. package/dist/core/src/validation/performance-optimizer-stub.js +50 -0
  490. package/dist/core/src/validation/performance-optimizer-stub.js.map +1 -0
  491. package/dist/core/src/validation/plugin-registration.d.ts +92 -0
  492. package/dist/core/src/validation/plugin-registration.d.ts.map +1 -0
  493. package/dist/core/src/validation/plugin-registration.js +199 -0
  494. package/dist/core/src/validation/plugin-registration.js.map +1 -0
  495. package/dist/core/src/validation/production-bypass-core.d.ts +69 -0
  496. package/dist/core/src/validation/production-bypass-core.d.ts.map +1 -0
  497. package/dist/core/src/validation/production-bypass-core.js +115 -0
  498. package/dist/core/src/validation/production-bypass-core.js.map +1 -0
  499. package/dist/core/src/version.d.ts +19 -0
  500. package/dist/core/src/version.d.ts.map +1 -0
  501. package/dist/core/src/version.js +20 -0
  502. package/dist/core/src/version.js.map +1 -0
  503. package/dist/devtools/src/build-time/detection.d.ts +32 -0
  504. package/dist/devtools/src/build-time/detection.d.ts.map +1 -0
  505. package/dist/devtools/src/build-time/detection.js +327 -0
  506. package/dist/devtools/src/build-time/detection.js.map +1 -0
  507. package/dist/devtools/src/build-time/index.d.ts +84 -0
  508. package/dist/devtools/src/build-time/index.d.ts.map +1 -0
  509. package/dist/devtools/src/build-time/index.js +157 -0
  510. package/dist/devtools/src/build-time/index.js.map +1 -0
  511. package/dist/devtools/src/build-time/plugins.d.ts +75 -0
  512. package/dist/devtools/src/build-time/plugins.d.ts.map +1 -0
  513. package/dist/devtools/src/build-time/plugins.js +429 -0
  514. package/dist/devtools/src/build-time/plugins.js.map +1 -0
  515. package/dist/devtools/src/build-time/rules.d.ts +73 -0
  516. package/dist/devtools/src/build-time/rules.d.ts.map +1 -0
  517. package/dist/devtools/src/build-time/rules.js +622 -0
  518. package/dist/devtools/src/build-time/rules.js.map +1 -0
  519. package/dist/devtools/src/build-time/transformer.d.ts +23 -0
  520. package/dist/devtools/src/build-time/transformer.d.ts.map +1 -0
  521. package/dist/devtools/src/build-time/transformer.js +294 -0
  522. package/dist/devtools/src/build-time/transformer.js.map +1 -0
  523. package/dist/devtools/src/build-time/types.d.ts +212 -0
  524. package/dist/devtools/src/build-time/types.d.ts.map +1 -0
  525. package/dist/devtools/src/build-time/types.js +8 -0
  526. package/dist/devtools/src/build-time/types.js.map +1 -0
  527. package/dist/devtools/src/debug/debug.d.ts +61 -0
  528. package/dist/devtools/src/debug/debug.d.ts.map +1 -0
  529. package/dist/devtools/src/debug/debug.js +239 -0
  530. package/dist/devtools/src/debug/debug.js.map +1 -0
  531. package/dist/devtools/src/debug/development-warnings.d.ts +42 -0
  532. package/dist/devtools/src/debug/development-warnings.d.ts.map +1 -0
  533. package/dist/devtools/src/debug/development-warnings.js +84 -0
  534. package/dist/devtools/src/debug/development-warnings.js.map +1 -0
  535. package/dist/devtools/src/debug/enhanced-errors.d.ts +176 -0
  536. package/dist/devtools/src/debug/enhanced-errors.d.ts.map +1 -0
  537. package/dist/devtools/src/debug/enhanced-errors.js +481 -0
  538. package/dist/devtools/src/debug/enhanced-errors.js.map +1 -0
  539. package/dist/devtools/src/debug/enhanced-types.d.ts +284 -0
  540. package/dist/devtools/src/debug/enhanced-types.d.ts.map +1 -0
  541. package/dist/devtools/src/debug/enhanced-types.js +8 -0
  542. package/dist/devtools/src/debug/enhanced-types.js.map +1 -0
  543. package/dist/devtools/src/debug/index.d.ts +13 -0
  544. package/dist/devtools/src/debug/index.d.ts.map +1 -0
  545. package/dist/devtools/src/debug/index.js +17 -0
  546. package/dist/devtools/src/debug/index.js.map +1 -0
  547. package/dist/devtools/src/debug/validation-debug-tools.d.ts +228 -0
  548. package/dist/devtools/src/debug/validation-debug-tools.d.ts.map +1 -0
  549. package/dist/devtools/src/debug/validation-debug-tools.js +472 -0
  550. package/dist/devtools/src/debug/validation-debug-tools.js.map +1 -0
  551. package/dist/devtools/src/import-guide.d.ts +50 -0
  552. package/dist/devtools/src/import-guide.d.ts.map +1 -0
  553. package/dist/devtools/src/import-guide.js +257 -0
  554. package/dist/devtools/src/import-guide.js.map +1 -0
  555. package/dist/devtools/src/index.d.ts +24 -0
  556. package/dist/devtools/src/index.d.ts.map +1 -0
  557. package/dist/devtools/src/index.js +32 -0
  558. package/dist/devtools/src/index.js.map +1 -0
  559. package/dist/devtools/src/inspector/index.d.ts +232 -0
  560. package/dist/devtools/src/inspector/index.d.ts.map +1 -0
  561. package/dist/devtools/src/inspector/index.js +551 -0
  562. package/dist/devtools/src/inspector/index.js.map +1 -0
  563. package/dist/devtools/src/modifier-parameter-system.d.ts +69 -0
  564. package/dist/devtools/src/modifier-parameter-system.d.ts.map +1 -0
  565. package/dist/devtools/src/modifier-parameter-system.js +462 -0
  566. package/dist/devtools/src/modifier-parameter-system.js.map +1 -0
  567. package/dist/devtools/src/plugins/simplified-error-handler.d.ts +83 -0
  568. package/dist/devtools/src/plugins/simplified-error-handler.d.ts.map +1 -0
  569. package/dist/devtools/src/plugins/simplified-error-handler.js +335 -0
  570. package/dist/devtools/src/plugins/simplified-error-handler.js.map +1 -0
  571. package/dist/devtools/src/profiler/index.d.ts +21 -0
  572. package/dist/devtools/src/profiler/index.d.ts.map +1 -0
  573. package/dist/devtools/src/profiler/index.js +30 -0
  574. package/dist/devtools/src/profiler/index.js.map +1 -0
  575. package/dist/devtools/src/profiler/performance-optimizer.d.ts +115 -0
  576. package/dist/devtools/src/profiler/performance-optimizer.d.ts.map +1 -0
  577. package/dist/devtools/src/profiler/performance-optimizer.js +273 -0
  578. package/dist/devtools/src/profiler/performance-optimizer.js.map +1 -0
  579. package/dist/devtools/src/profiler/production-monitoring.d.ts +150 -0
  580. package/dist/devtools/src/profiler/production-monitoring.d.ts.map +1 -0
  581. package/dist/devtools/src/profiler/production-monitoring.js +274 -0
  582. package/dist/devtools/src/profiler/production-monitoring.js.map +1 -0
  583. package/dist/devtools/src/runtime/error-boundary.d.ts +302 -0
  584. package/dist/devtools/src/runtime/error-boundary.d.ts.map +1 -0
  585. package/dist/devtools/src/runtime/error-boundary.js +717 -0
  586. package/dist/devtools/src/runtime/error-boundary.js.map +1 -0
  587. package/dist/devtools/src/runtime/error-recovery.d.ts +267 -0
  588. package/dist/devtools/src/runtime/error-recovery.d.ts.map +1 -0
  589. package/dist/devtools/src/runtime/error-recovery.js +499 -0
  590. package/dist/devtools/src/runtime/error-recovery.js.map +1 -0
  591. package/dist/devtools/src/runtime/error-reporting.d.ts +287 -0
  592. package/dist/devtools/src/runtime/error-reporting.d.ts.map +1 -0
  593. package/dist/devtools/src/runtime/error-reporting.js +626 -0
  594. package/dist/devtools/src/runtime/error-reporting.js.map +1 -0
  595. package/dist/devtools/src/runtime/error-utils.d.ts +204 -0
  596. package/dist/devtools/src/runtime/error-utils.d.ts.map +1 -0
  597. package/dist/devtools/src/runtime/error-utils.js +519 -0
  598. package/dist/devtools/src/runtime/error-utils.js.map +1 -0
  599. package/dist/devtools/src/runtime/performance.d.ts +217 -0
  600. package/dist/devtools/src/runtime/performance.d.ts.map +1 -0
  601. package/dist/devtools/src/runtime/performance.js +538 -0
  602. package/dist/devtools/src/runtime/performance.js.map +1 -0
  603. package/dist/devtools/src/testing/index.d.ts +29 -0
  604. package/dist/devtools/src/testing/index.d.ts.map +1 -0
  605. package/dist/devtools/src/testing/index.js +48 -0
  606. package/dist/devtools/src/testing/index.js.map +1 -0
  607. package/dist/devtools/src/validation/enhanced-runtime.d.ts +310 -0
  608. package/dist/devtools/src/validation/enhanced-runtime.d.ts.map +1 -0
  609. package/dist/devtools/src/validation/enhanced-runtime.js +603 -0
  610. package/dist/devtools/src/validation/enhanced-runtime.js.map +1 -0
  611. package/dist/devtools/src/validation/error-reporting.d.ts +186 -0
  612. package/dist/devtools/src/validation/error-reporting.d.ts.map +1 -0
  613. package/dist/devtools/src/validation/error-reporting.js +439 -0
  614. package/dist/devtools/src/validation/error-reporting.js.map +1 -0
  615. package/package.json +6 -2
  616. package/dist/commands/analyze.d.ts.map +0 -1
  617. package/dist/commands/analyze.js.map +0 -1
  618. package/dist/commands/dev.d.ts.map +0 -1
  619. package/dist/commands/dev.js.map +0 -1
  620. package/dist/commands/generate.d.ts.map +0 -1
  621. package/dist/commands/generate.js.map +0 -1
  622. package/dist/commands/init.d.ts.map +0 -1
  623. package/dist/commands/init.js.map +0 -1
  624. package/dist/commands/migrate.d.ts.map +0 -1
  625. package/dist/commands/migrate.js.map +0 -1
  626. package/dist/commands/optimize.d.ts.map +0 -1
  627. package/dist/commands/optimize.js.map +0 -1
  628. package/dist/index.d.ts.map +0 -1
  629. package/dist/index.js.map +0 -1
  630. /package/dist/{commands → cli/src/commands}/analyze.d.ts +0 -0
  631. /package/dist/{commands → cli/src/commands}/dev.d.ts +0 -0
  632. /package/dist/{commands → cli/src/commands}/dev.js +0 -0
  633. /package/dist/{commands → cli/src/commands}/generate.d.ts +0 -0
  634. /package/dist/{commands → cli/src/commands}/init.d.ts +0 -0
  635. /package/dist/{commands → cli/src/commands}/migrate.d.ts +0 -0
  636. /package/dist/{commands → cli/src/commands}/optimize.d.ts +0 -0
  637. /package/dist/{commands → cli/src/commands}/optimize.js +0 -0
  638. /package/dist/{index.d.ts → cli/src/index.d.ts} +0 -0
@@ -0,0 +1,286 @@
1
+ /**
2
+ * Reactive context and computation management
3
+ *
4
+ * Manages the reactive execution context, dependency tracking,
5
+ * and computation lifecycle.
6
+ */
7
+ import { ComputationState } from './types';
8
+ let computationIdCounter = 0;
9
+ let ownerIdCounter = 0;
10
+ // Module instance identifier for debugging
11
+ const moduleInstanceId = Math.random().toString(36).substr(2, 6);
12
+ // Pure ESM module singleton - no globalThis
13
+ let currentComputation = null;
14
+ let currentOwner = null;
15
+ let isBatching = false;
16
+ // Module instance tracking for debugging
17
+ const moduleInstances = new Set();
18
+ moduleInstances.add(moduleInstanceId);
19
+ // Pure ESM Reactive context module loaded
20
+ // Export the singleton state directly
21
+ const reactiveContext = {
22
+ get currentComputation() {
23
+ return currentComputation;
24
+ },
25
+ set currentComputation(value) {
26
+ currentComputation = value;
27
+ },
28
+ get currentOwner() {
29
+ return currentOwner;
30
+ },
31
+ set currentOwner(value) {
32
+ currentOwner = value;
33
+ },
34
+ get isBatching() {
35
+ return isBatching;
36
+ },
37
+ set isBatching(value) {
38
+ isBatching = value;
39
+ },
40
+ };
41
+ /**
42
+ * Get the current computation context
43
+ */
44
+ export function getCurrentComputation() {
45
+ const computation = reactiveContext.currentComputation;
46
+ return computation;
47
+ }
48
+ /**
49
+ * Get the current owner context
50
+ */
51
+ export function getCurrentOwner() {
52
+ return reactiveContext.currentOwner;
53
+ }
54
+ /**
55
+ * Check if we're currently batching updates
56
+ */
57
+ export function isBatchingUpdates() {
58
+ return reactiveContext.isBatching;
59
+ }
60
+ /**
61
+ * Owner implementation for managing cleanup and context
62
+ */
63
+ class OwnerImpl {
64
+ id;
65
+ parent;
66
+ context = new Map();
67
+ cleanups = [];
68
+ sources = new Set();
69
+ disposed = false;
70
+ constructor(parent = null) {
71
+ this.id = ++ownerIdCounter;
72
+ this.parent = parent;
73
+ }
74
+ dispose() {
75
+ if (this.disposed)
76
+ return;
77
+ this.disposed = true;
78
+ // Dispose all child computations
79
+ for (const computation of this.sources) {
80
+ computation.dispose();
81
+ }
82
+ this.sources.clear();
83
+ // Run cleanup functions
84
+ for (const cleanup of this.cleanups) {
85
+ try {
86
+ cleanup();
87
+ }
88
+ catch (error) {
89
+ console.error('Error in cleanup function:', error);
90
+ }
91
+ }
92
+ this.cleanups.length = 0;
93
+ // Remove from parent
94
+ if (this.parent && !this.parent.disposed) {
95
+ this.parent.sources.delete(this);
96
+ }
97
+ }
98
+ }
99
+ /**
100
+ * Computation implementation
101
+ */
102
+ export class ComputationImpl {
103
+ id;
104
+ owner;
105
+ fn;
106
+ sources = new Set(); // Signals this computation depends on
107
+ observers = new Set(); // Computations that depend on this
108
+ state = ComputationState.Dirty;
109
+ value = undefined;
110
+ constructor(fn, owner = null) {
111
+ this.id = ++computationIdCounter;
112
+ this.fn = fn;
113
+ this.owner = owner;
114
+ if (owner && !owner.disposed) {
115
+ owner.sources.add(this);
116
+ }
117
+ }
118
+ execute() {
119
+ if (this.state === ComputationState.Disposed) {
120
+ return this.value;
121
+ }
122
+ // Clean up old dependencies
123
+ for (const source of this.sources) {
124
+ if (source && typeof source === 'object' && 'removeObserver' in source) {
125
+ ;
126
+ source.removeObserver(this);
127
+ }
128
+ }
129
+ this.sources.clear();
130
+ const prevComputation = reactiveContext.currentComputation;
131
+ reactiveContext.currentComputation = this;
132
+ try {
133
+ this.state = ComputationState.Clean;
134
+ this.value = this.fn();
135
+ return this.value;
136
+ }
137
+ catch (error) {
138
+ this.state = ComputationState.Disposed;
139
+ // Don't suppress errors - let them propagate for proper error handling
140
+ // Only log in non-test environments to avoid polluting test output
141
+ if (typeof process === 'undefined' || process.env.NODE_ENV !== 'test') {
142
+ console.error('Error in computation:', error);
143
+ }
144
+ throw error;
145
+ }
146
+ finally {
147
+ reactiveContext.currentComputation = prevComputation;
148
+ }
149
+ }
150
+ dispose() {
151
+ if (this.state === ComputationState.Disposed)
152
+ return;
153
+ this.state = ComputationState.Disposed;
154
+ // Remove from all sources
155
+ for (const source of this.sources) {
156
+ if (source && typeof source === 'object' && 'removeObserver' in source) {
157
+ ;
158
+ source.removeObserver(this);
159
+ }
160
+ }
161
+ this.sources.clear();
162
+ // Notify observers that this computation is disposed
163
+ for (const observer of this.observers) {
164
+ observer.sources.delete(this);
165
+ }
166
+ this.observers.clear();
167
+ // Remove from owner
168
+ if (this.owner && !this.owner.disposed) {
169
+ this.owner.sources.delete(this);
170
+ }
171
+ }
172
+ }
173
+ /**
174
+ * Create a new reactive computation root
175
+ */
176
+ export function createRoot(fn) {
177
+ const owner = new OwnerImpl(reactiveContext.currentOwner);
178
+ const prevOwner = reactiveContext.currentOwner;
179
+ reactiveContext.currentOwner = owner;
180
+ try {
181
+ return fn(() => owner.dispose());
182
+ }
183
+ finally {
184
+ reactiveContext.currentOwner = prevOwner;
185
+ }
186
+ }
187
+ /**
188
+ * Run a function with a specific owner context
189
+ */
190
+ export function runWithOwner(owner, fn) {
191
+ const prevOwner = reactiveContext.currentOwner;
192
+ reactiveContext.currentOwner = owner;
193
+ try {
194
+ return fn();
195
+ }
196
+ finally {
197
+ reactiveContext.currentOwner = prevOwner;
198
+ }
199
+ }
200
+ /**
201
+ * Get the current owner context
202
+ */
203
+ export function getOwner() {
204
+ return reactiveContext.currentOwner;
205
+ }
206
+ // Global flush function reference
207
+ let flushFunction = null;
208
+ /**
209
+ * Set the flush function (called by signal module)
210
+ */
211
+ export function setFlushFunction(fn) {
212
+ flushFunction = fn;
213
+ }
214
+ /**
215
+ * Batch multiple updates together
216
+ */
217
+ export function batch(fn) {
218
+ if (reactiveContext.isBatching) {
219
+ return fn();
220
+ }
221
+ const wasBatching = reactiveContext.isBatching;
222
+ reactiveContext.isBatching = true;
223
+ try {
224
+ const result = fn();
225
+ // Flush updates after batch completes
226
+ if (!wasBatching && flushFunction) {
227
+ flushFunction();
228
+ }
229
+ return result;
230
+ }
231
+ finally {
232
+ reactiveContext.isBatching = wasBatching;
233
+ }
234
+ }
235
+ /**
236
+ * Read a signal without tracking dependency
237
+ */
238
+ export function untrack(fn) {
239
+ const prevComputation = reactiveContext.currentComputation;
240
+ reactiveContext.currentComputation = null;
241
+ try {
242
+ return fn();
243
+ }
244
+ finally {
245
+ reactiveContext.currentComputation = prevComputation;
246
+ }
247
+ }
248
+ /**
249
+ * Add cleanup function to current owner
250
+ */
251
+ export function onCleanup(fn) {
252
+ const owner = reactiveContext.currentOwner;
253
+ if (owner && !owner.disposed) {
254
+ owner.cleanups.push(fn);
255
+ }
256
+ }
257
+ /**
258
+ * Create a computation that runs immediately and tracks dependencies
259
+ */
260
+ export function createComputation(fn, owner) {
261
+ const computation = new ComputationImpl(fn, owner || reactiveContext.currentOwner);
262
+ computation.execute();
263
+ return computation;
264
+ }
265
+ /**
266
+ * Get reactive context information
267
+ */
268
+ export function getReactiveContext() {
269
+ return {
270
+ computation: reactiveContext.currentComputation,
271
+ batch: reactiveContext.isBatching,
272
+ };
273
+ }
274
+ /**
275
+ * Debug utilities
276
+ */
277
+ export const DEBUG = {
278
+ getCurrentComputation: () => reactiveContext.currentComputation,
279
+ getCurrentOwner: () => reactiveContext.currentOwner,
280
+ getComputationCount: () => computationIdCounter,
281
+ getOwnerCount: () => ownerIdCounter,
282
+ isBatching: () => reactiveContext.isBatching,
283
+ getModuleInstances: () => Array.from(moduleInstances),
284
+ getModuleId: () => moduleInstanceId,
285
+ };
286
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../core/src/reactive/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Effect implementation for side effects in reactive system
3
+ *
4
+ * Effects run when their dependencies change, enabling reactive
5
+ * side effects like DOM updates, logging, API calls, etc.
6
+ */
7
+ import { ComputationImpl } from './context';
8
+ import type { EffectFunction, EffectOptions } from './types';
9
+ /**
10
+ * Effect function type
11
+ */
12
+ export type Effect = ComputationImpl;
13
+ /**
14
+ * Create a reactive effect that runs when dependencies change
15
+ *
16
+ * @param fn The effect function to run
17
+ * @param options Effect configuration options
18
+ * @returns The effect computation
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const [count, setCount] = createSignal(0)
23
+ *
24
+ * createEffect(() => {
25
+ * console.log('Count changed:', count())
26
+ * })
27
+ *
28
+ * setCount(5) // Logs: "Count changed: 5"
29
+ * ```
30
+ */
31
+ export declare function createEffect<T>(fn: EffectFunction<T>, options?: EffectOptions): Effect;
32
+ /**
33
+ * Create an effect that only runs after dependencies change (not on first run)
34
+ *
35
+ * @param fn The effect function to run
36
+ * @param options Effect configuration options
37
+ * @returns The effect computation
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const [count, setCount] = createSignal(0)
42
+ *
43
+ * createRenderEffect(() => {
44
+ * // This won't run immediately, only when count changes
45
+ * document.title = `Count: ${count()}`
46
+ * })
47
+ * ```
48
+ */
49
+ export declare function createRenderEffect<T>(fn: EffectFunction<T>, options?: EffectOptions): Effect;
50
+ /**
51
+ * Create a one-time effect that disposes itself after first execution
52
+ *
53
+ * @param fn The effect function to run once
54
+ * @param options Effect configuration options
55
+ * @returns The effect computation
56
+ */
57
+ export declare function createOnceEffect<T>(fn: EffectFunction<T>, options?: EffectOptions): Effect;
58
+ /**
59
+ * Create an effect that runs synchronously (not batched)
60
+ *
61
+ * @param fn The effect function to run
62
+ * @param options Effect configuration options
63
+ * @returns The effect computation
64
+ */
65
+ export declare function createSyncEffect<T>(fn: EffectFunction<T>, options?: EffectOptions): Effect;
66
+ /**
67
+ * Dispose an effect
68
+ */
69
+ export declare function disposeEffect(effect: Effect): void;
70
+ /**
71
+ * Check if an effect is disposed
72
+ */
73
+ export declare function isEffectDisposed(effect: Effect): boolean;
74
+ /**
75
+ * Get effect debug information
76
+ */
77
+ export declare function getEffectInfo(effect: Effect): object;
78
+ export type { EffectFunction, EffectOptions };
79
+ //# sourceMappingURL=effect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/effect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,WAAW,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5D;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,eAAe,CAAA;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAkC1F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA+BhG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAsB9F;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAI9F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUpD;AAGD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Effect implementation for side effects in reactive system
3
+ *
4
+ * Effects run when their dependencies change, enabling reactive
5
+ * side effects like DOM updates, logging, API calls, etc.
6
+ */
7
+ import { ComputationImpl, getCurrentOwner } from './context';
8
+ /**
9
+ * Create a reactive effect that runs when dependencies change
10
+ *
11
+ * @param fn The effect function to run
12
+ * @param options Effect configuration options
13
+ * @returns The effect computation
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const [count, setCount] = createSignal(0)
18
+ *
19
+ * createEffect(() => {
20
+ * console.log('Count changed:', count())
21
+ * })
22
+ *
23
+ * setCount(5) // Logs: "Count changed: 5"
24
+ * ```
25
+ */
26
+ export function createEffect(fn, options = {}) {
27
+ const owner = getCurrentOwner();
28
+ let previousValue;
29
+ let isFirst = true;
30
+ const effectFn = () => {
31
+ const nextValue = fn(previousValue);
32
+ if (!isFirst) {
33
+ previousValue = nextValue;
34
+ }
35
+ else {
36
+ isFirst = false;
37
+ previousValue = nextValue;
38
+ }
39
+ return nextValue;
40
+ };
41
+ // Create the computation
42
+ const effect = new ComputationImpl(effectFn, owner);
43
+ // Add debug name if provided
44
+ if (options.name) {
45
+ Object.defineProperty(effect, 'name', {
46
+ value: options.name,
47
+ enumerable: false,
48
+ });
49
+ }
50
+ // Execute immediately to establish dependencies
51
+ effect.execute();
52
+ return effect;
53
+ }
54
+ /**
55
+ * Create an effect that only runs after dependencies change (not on first run)
56
+ *
57
+ * @param fn The effect function to run
58
+ * @param options Effect configuration options
59
+ * @returns The effect computation
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const [count, setCount] = createSignal(0)
64
+ *
65
+ * createRenderEffect(() => {
66
+ * // This won't run immediately, only when count changes
67
+ * document.title = `Count: ${count()}`
68
+ * })
69
+ * ```
70
+ */
71
+ export function createRenderEffect(fn, options = {}) {
72
+ const owner = getCurrentOwner();
73
+ let previousValue;
74
+ let hasRun = false;
75
+ const effectFn = () => {
76
+ if (!hasRun) {
77
+ hasRun = true;
78
+ // Track dependencies but don't run the effect
79
+ return fn(previousValue);
80
+ }
81
+ const nextValue = fn(previousValue);
82
+ previousValue = nextValue;
83
+ return nextValue;
84
+ };
85
+ const effect = new ComputationImpl(effectFn, owner);
86
+ if (options.name) {
87
+ Object.defineProperty(effect, 'name', {
88
+ value: options.name,
89
+ enumerable: false,
90
+ });
91
+ }
92
+ // Execute to establish dependencies but not run the actual effect
93
+ effect.execute();
94
+ return effect;
95
+ }
96
+ /**
97
+ * Create a one-time effect that disposes itself after first execution
98
+ *
99
+ * @param fn The effect function to run once
100
+ * @param options Effect configuration options
101
+ * @returns The effect computation
102
+ */
103
+ export function createOnceEffect(fn, options = {}) {
104
+ const owner = getCurrentOwner();
105
+ const effectFn = () => {
106
+ const result = fn(undefined);
107
+ // Dispose the effect after first run
108
+ effect.dispose();
109
+ return result;
110
+ };
111
+ const effect = new ComputationImpl(effectFn, owner);
112
+ if (options.name) {
113
+ Object.defineProperty(effect, 'name', {
114
+ value: `${options.name}(once)`,
115
+ enumerable: false,
116
+ });
117
+ }
118
+ effect.execute();
119
+ return effect;
120
+ }
121
+ /**
122
+ * Create an effect that runs synchronously (not batched)
123
+ *
124
+ * @param fn The effect function to run
125
+ * @param options Effect configuration options
126
+ * @returns The effect computation
127
+ */
128
+ export function createSyncEffect(fn, options = {}) {
129
+ // TODO: Implement synchronous execution
130
+ // For now, use regular effect
131
+ return createEffect(fn, { ...options, name: `${options.name || 'sync'}(sync)` });
132
+ }
133
+ /**
134
+ * Dispose an effect
135
+ */
136
+ export function disposeEffect(effect) {
137
+ effect.dispose();
138
+ }
139
+ /**
140
+ * Check if an effect is disposed
141
+ */
142
+ export function isEffectDisposed(effect) {
143
+ return effect.state === 3; // ComputationState.Disposed
144
+ }
145
+ /**
146
+ * Get effect debug information
147
+ */
148
+ export function getEffectInfo(effect) {
149
+ return {
150
+ id: effect.id,
151
+ name: effect.name || 'anonymous',
152
+ state: effect.state,
153
+ sourceCount: effect.sources.size,
154
+ observerCount: effect.observers.size,
155
+ disposed: isEffectDisposed(effect),
156
+ type: 'Effect',
157
+ };
158
+ }
159
+ //# sourceMappingURL=effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect.js","sourceRoot":"","sources":["../../../../../core/src/reactive/effect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Enhanced Effect System v2.0
3
+ *
4
+ * Provides proper error propagation and integrates with the unified scheduler
5
+ * to fix silent error suppression and incomplete cleanup issues.
6
+ */
7
+ import { type ReactiveNode, UpdatePriority } from './unified-scheduler';
8
+ export interface EffectOptions {
9
+ priority?: UpdatePriority;
10
+ debugName?: string;
11
+ onError?: (error: Error) => void;
12
+ fireImmediately?: boolean;
13
+ }
14
+ /**
15
+ * Enhanced effect implementation with proper error propagation
16
+ */
17
+ export declare class EffectImpl implements ReactiveNode {
18
+ private effectFn;
19
+ readonly id: number;
20
+ readonly type: "effect";
21
+ readonly priority: UpdatePriority;
22
+ readonly sources: Set<any>;
23
+ readonly observers: Set<never>;
24
+ private isDisposed;
25
+ private cleanupFn?;
26
+ private options;
27
+ private owner;
28
+ constructor(effectFn: () => undefined | (() => void), options?: EffectOptions);
29
+ /**
30
+ * Notify method called by unified scheduler
31
+ */
32
+ notify(): void;
33
+ /**
34
+ * Execute the effect with proper error handling
35
+ */
36
+ private execute;
37
+ /**
38
+ * Complete cleanup for memory management
39
+ */
40
+ cleanup(): void;
41
+ /**
42
+ * Dispose the effect (alias for cleanup)
43
+ */
44
+ dispose(): void;
45
+ /**
46
+ * Check if effect is disposed
47
+ */
48
+ get disposed(): boolean;
49
+ toString(): string;
50
+ }
51
+ /**
52
+ * Create a reactive effect with proper error handling
53
+ *
54
+ * @param effectFn The effect function to run
55
+ * @param options Effect configuration options
56
+ * @returns Cleanup function to dispose the effect
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const [count, setCount] = createSignal(0)
61
+ *
62
+ * const cleanup = createEnhancedEffect(() => {
63
+ * console.log('Count changed:', count())
64
+ * }, {
65
+ * debugName: 'countLogger',
66
+ * onError: (error) => {
67
+ * console.error('Effect failed:', error)
68
+ * }
69
+ * })
70
+ *
71
+ * // Later, cleanup when no longer needed
72
+ * cleanup()
73
+ * ```
74
+ */
75
+ export declare function createEnhancedEffect(effectFn: () => undefined | (() => void), options?: EffectOptions): () => void;
76
+ /**
77
+ * Create an effect with high priority for user interactions
78
+ */
79
+ export declare function createHighPriorityEffect(effectFn: () => undefined | (() => void), options?: Omit<EffectOptions, 'priority'>): () => void;
80
+ /**
81
+ * Create an effect with low priority for background tasks
82
+ */
83
+ export declare function createLowPriorityEffect(effectFn: () => undefined | (() => void), options?: Omit<EffectOptions, 'priority'>): () => void;
84
+ /**
85
+ * Create an effect that only runs when dependencies change (not immediately)
86
+ */
87
+ export declare function createWatchEffect(effectFn: () => undefined | (() => void), options?: Omit<EffectOptions, 'fireImmediately'>): () => void;
88
+ /**
89
+ * Create an effect with automatic error recovery
90
+ */
91
+ export declare function createResilientEffect(effectFn: () => undefined | (() => void), onError?: (error: Error, attempt: number) => boolean, // return true to retry
92
+ maxRetries?: number, options?: EffectOptions): () => void;
93
+ /**
94
+ * Batch multiple effect creations for performance
95
+ */
96
+ export declare function createEffectBatch(effects: Array<{
97
+ fn: () => undefined | (() => void);
98
+ options?: EffectOptions;
99
+ }>): () => void;
100
+ /**
101
+ * Get performance metrics for all effects
102
+ */
103
+ export declare function getEffectPerformanceMetrics(): import("./unified-scheduler").ReactivePerformanceMetrics;
104
+ /**
105
+ * Flush all pending effect updates synchronously
106
+ */
107
+ export declare function flushEffectUpdates(): void;
108
+ //# sourceMappingURL=enhanced-effect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-effect.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/enhanced-effect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,YAAY,EAAqB,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAI1F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,YAAY;IAa3C,OAAO,CAAC,QAAQ;IAZlB,QAAQ,CAAC,EAAE,SAAoB;IAC/B,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,OAAO,WAAiB;IACjC,QAAQ,CAAC,SAAS,aAAmB;IAErC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,KAAK,CAAc;gBAGjB,QAAQ,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,EAChD,OAAO,GAAE,aAAkB;IAW7B;;OAEG;IACH,MAAM,IAAI,IAAI;IAMd;;OAEG;IACH,OAAO,CAAC,OAAO;IAuDf;;OAEG;IACH,OAAO,IAAI,IAAI;IAgCf;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAiBD,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,EACxC,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,IAAI,CAUZ;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,EACxC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GACxC,MAAM,IAAI,CAEZ;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,EACxC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GACxC,MAAM,IAAI,CAEZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,EACxC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,GAC/C,MAAM,IAAI,CAEZ;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,EACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,EAAE,uBAAuB;AAC7E,UAAU,SAAI,EACd,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,IAAI,CAwBZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAC,GACD,MAAM,IAAI,CAMZ;AAED;;GAEG;AACH,wBAAgB,2BAA2B,6DAG1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}