@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,187 @@
1
+ /**
2
+ * Cleanup and disposal utilities for reactive system
3
+ *
4
+ * Provides memory management, cleanup functions, and disposal
5
+ * utilities to prevent memory leaks in reactive computations.
6
+ */
7
+ import { getCurrentOwner } from './context';
8
+ /**
9
+ * Add a cleanup function to the current reactive context
10
+ *
11
+ * @param fn Cleanup function to run when the context is disposed
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * createEffect(() => {
16
+ * const interval = setInterval(() => {
17
+ * console.log('tick')
18
+ * }, 1000)
19
+ *
20
+ * onCleanup(() => {
21
+ * clearInterval(interval)
22
+ * })
23
+ * })
24
+ * ```
25
+ */
26
+ export function onCleanup(fn) {
27
+ const owner = getCurrentOwner();
28
+ if (owner && !owner.disposed) {
29
+ owner.cleanups.push(fn);
30
+ }
31
+ else if (__DEV__) {
32
+ console.warn('onCleanup called outside of reactive context');
33
+ }
34
+ }
35
+ /**
36
+ * Dispose a reactive owner and all its children
37
+ *
38
+ * @param owner The owner to dispose
39
+ */
40
+ export function dispose(owner) {
41
+ if ('dispose' in owner && typeof owner.dispose === 'function') {
42
+ owner.dispose();
43
+ }
44
+ }
45
+ /**
46
+ * Create a disposable resource with automatic cleanup
47
+ *
48
+ * @param fn Function that creates and returns a resource and its cleanup
49
+ * @returns The created resource
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const timer = createResource(() => {
54
+ * const id = setInterval(() => console.log('tick'), 1000)
55
+ * return [id, () => clearInterval(id)]
56
+ * })
57
+ * ```
58
+ */
59
+ export function createResource(fn) {
60
+ const [resource, cleanup] = fn();
61
+ onCleanup(cleanup);
62
+ return resource;
63
+ }
64
+ /**
65
+ * Create a cleanup group that can be disposed manually
66
+ *
67
+ * @returns Cleanup group with dispose function
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const group = createCleanupGroup()
72
+ *
73
+ * group.add(() => console.log('cleanup 1'))
74
+ * group.add(() => console.log('cleanup 2'))
75
+ *
76
+ * // Later...
77
+ * group.dispose() // Runs both cleanup functions
78
+ * ```
79
+ */
80
+ export function createCleanupGroup() {
81
+ const cleanups = [];
82
+ let disposed = false;
83
+ return {
84
+ add(fn) {
85
+ if (disposed) {
86
+ if (__DEV__) {
87
+ console.warn('Adding cleanup to disposed group');
88
+ }
89
+ return;
90
+ }
91
+ cleanups.push(fn);
92
+ },
93
+ dispose() {
94
+ if (disposed)
95
+ return;
96
+ disposed = true;
97
+ for (const cleanup of cleanups) {
98
+ try {
99
+ cleanup();
100
+ }
101
+ catch (error) {
102
+ console.error('Error in cleanup function:', error);
103
+ }
104
+ }
105
+ cleanups.length = 0;
106
+ },
107
+ get disposed() {
108
+ return disposed;
109
+ },
110
+ };
111
+ }
112
+ /**
113
+ * Create a weak disposal tracker using WeakRef and FinalizationRegistry
114
+ * for automatic cleanup of unreferenced objects
115
+ */
116
+ export function createWeakDisposal(target, cleanup) {
117
+ const weakRef = new WeakRef(target);
118
+ if (typeof FinalizationRegistry !== 'undefined') {
119
+ const registry = new FinalizationRegistry(cleanup);
120
+ registry.register(target, cleanup);
121
+ }
122
+ return weakRef;
123
+ }
124
+ /**
125
+ * Defer a cleanup function to run after the current reactive cycle
126
+ *
127
+ * @param fn Cleanup function to defer
128
+ */
129
+ export function deferCleanup(fn) {
130
+ queueMicrotask(() => {
131
+ try {
132
+ fn();
133
+ }
134
+ catch (error) {
135
+ console.error('Error in deferred cleanup:', error);
136
+ }
137
+ });
138
+ }
139
+ /**
140
+ * Create a cleanup function that only runs once
141
+ *
142
+ * @param fn Cleanup function
143
+ * @returns Cleanup function that only runs once
144
+ */
145
+ export function createOnceCleanup(fn) {
146
+ let hasRun = false;
147
+ return () => {
148
+ if (hasRun)
149
+ return;
150
+ hasRun = true;
151
+ fn();
152
+ };
153
+ }
154
+ /**
155
+ * Create a timeout with automatic cleanup
156
+ *
157
+ * @param fn Function to run after timeout
158
+ * @param delay Delay in milliseconds
159
+ * @returns Timeout ID
160
+ */
161
+ export function createTimeout(fn, delay) {
162
+ const id = setTimeout(fn, delay);
163
+ onCleanup(() => clearTimeout(id));
164
+ return id;
165
+ }
166
+ /**
167
+ * Create an interval with automatic cleanup
168
+ *
169
+ * @param fn Function to run on interval
170
+ * @param delay Delay in milliseconds
171
+ * @returns Interval ID
172
+ */
173
+ export function createInterval(fn, delay) {
174
+ const id = setInterval(fn, delay);
175
+ onCleanup(() => clearInterval(id));
176
+ return id;
177
+ }
178
+ export function createEventListener(target, event, handler, options) {
179
+ target.addEventListener(event, handler, options);
180
+ onCleanup(() => target.removeEventListener(event, handler, options));
181
+ }
182
+ // Development mode flag - simplified approach
183
+ if (typeof globalThis.__DEV__ === 'undefined') {
184
+ ;
185
+ globalThis.__DEV__ = process.env.NODE_ENV !== 'production';
186
+ }
187
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../../core/src/reactive/cleanup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Computed values implementation
3
+ *
4
+ * Computed values are derived reactive values that automatically
5
+ * update when their dependencies change, with memoization.
6
+ */
7
+ import { ComputationImpl } from './context';
8
+ import { type EqualityFunction } from './equality';
9
+ import type { Computation, Signal } from './types';
10
+ import { type ReactiveNode, UpdatePriority } from './unified-scheduler';
11
+ export interface ComputedOptions<T> {
12
+ equals?: EqualityFunction<T>;
13
+ priority?: UpdatePriority;
14
+ debugName?: string;
15
+ onError?: (error: Error) => T;
16
+ }
17
+ /**
18
+ * Robust computed value implementation with error recovery
19
+ */
20
+ declare class ComputedImpl<T> extends ComputationImpl implements ReactiveNode {
21
+ readonly type: "computed";
22
+ readonly priority: UpdatePriority;
23
+ private _hasValue;
24
+ private _error;
25
+ private equalsFn;
26
+ private options;
27
+ constructor(fn: () => T, options?: ComputedOptions<T>, owner?: import("@tachui/types/reactive").Owner | null);
28
+ /**
29
+ * Get the computed value, tracking dependency and lazily computing
30
+ */
31
+ getValue(): T;
32
+ /**
33
+ * Get the current value without tracking dependency
34
+ */
35
+ peek(): T;
36
+ /**
37
+ * Remove an observer (cleanup)
38
+ */
39
+ removeObserver(computation: Computation): void;
40
+ /**
41
+ * Execute the computation and notify observers
42
+ */
43
+ execute(): T;
44
+ /**
45
+ * Notify method for ReactiveNode compatibility
46
+ */
47
+ notify(): void;
48
+ /**
49
+ * Complete cleanup for memory management
50
+ */
51
+ cleanup(): void;
52
+ /**
53
+ * Dispose the computed value
54
+ */
55
+ dispose(): void;
56
+ toString(): string;
57
+ }
58
+ /**
59
+ * Create a computed value that automatically updates when dependencies change
60
+ *
61
+ * @param fn The computation function
62
+ * @param options Configuration options for the computed value
63
+ * @returns An accessor function for the computed value
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const [count, setCount] = createSignal(0)
68
+ * const doubleCount = createComputed(() => count() * 2, {
69
+ * debugName: 'doubleCounter',
70
+ * onError: (error) => {
71
+ * console.error('Computation failed:', error)
72
+ * return 0 // fallback value
73
+ * }
74
+ * })
75
+ *
76
+ * console.log(doubleCount()) // 0
77
+ * setCount(5)
78
+ * console.log(doubleCount()) // 10
79
+ * ```
80
+ */
81
+ export declare function createComputed<T>(fn: () => T, options?: ComputedOptions<T>): Signal<T>;
82
+ /**
83
+ * Create a memo (alias for createComputed for SolidJS compatibility)
84
+ */
85
+ export declare function createMemo<T>(fn: () => T, options?: ComputedOptions<T>): Signal<T>;
86
+ /**
87
+ * Type guard to check if a value is a computed
88
+ */
89
+ export declare function isComputed<T = any>(value: any): value is Signal<T>;
90
+ /**
91
+ * Get the underlying computed implementation for debugging
92
+ */
93
+ export declare function getComputedImpl<T>(computed: Signal<T>): ComputedImpl<T> | null;
94
+ /**
95
+ * Create a computed value with explicit dependency tracking
96
+ *
97
+ * @param fn The computation function
98
+ * @param deps Explicit dependencies (optional)
99
+ * @returns An accessor function for the computed value
100
+ */
101
+ export declare function createDerivedSignal<T>(fn: () => T, deps?: (() => any)[]): Signal<T>;
102
+ /**
103
+ * Create a computed value that only updates when a condition is met
104
+ *
105
+ * @param fn The computation function
106
+ * @param when Condition function that must return true for updates
107
+ * @returns An accessor function for the computed value
108
+ */
109
+ export declare function createConditionalComputed<T>(fn: () => T, when: () => boolean): Signal<T>;
110
+ /**
111
+ * Public Computed type export
112
+ */
113
+ export type Computed<T> = Signal<T>;
114
+ export {};
115
+ //# sourceMappingURL=computed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/computed.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAA0C,MAAM,WAAW,CAAA;AACnF,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEvE,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,cAAM,YAAY,CAAC,CAAC,CAAE,SAAQ,eAAgB,YAAW,YAAY;IACnE,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IAEjC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAoB;gBAEvB,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,EAAE,KAAK,gDAAoB;IAOpF;;OAEG;IACH,QAAQ,IAAI,CAAC;IAiBb;;OAEG;IACH,IAAI,IAAI,CAAC;IAQT;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI9C;;OAEG;IACH,OAAO,IAAI,CAAC;IAyBZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;IAmBf;;OAEG;IACH,OAAO,IAAI,IAAI;IAwBf,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CActF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAElF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAElE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAenF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAiBxF;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Computed values implementation
3
+ *
4
+ * Computed values are derived reactive values that automatically
5
+ * update when their dependencies change, with memoization.
6
+ */
7
+ import { ComputationImpl, getCurrentComputation, getCurrentOwner } from './context';
8
+ import { defaultEquals } from './equality';
9
+ import { ComputationState } from './types';
10
+ import { UpdatePriority } from './unified-scheduler';
11
+ /**
12
+ * Robust computed value implementation with error recovery
13
+ */
14
+ class ComputedImpl extends ComputationImpl {
15
+ type = 'computed';
16
+ priority;
17
+ _hasValue = false;
18
+ _error = null;
19
+ equalsFn;
20
+ options;
21
+ constructor(fn, options = {}, owner = getCurrentOwner()) {
22
+ super(fn, owner);
23
+ this.priority = options.priority ?? UpdatePriority.Normal;
24
+ this.equalsFn = options.equals ?? defaultEquals;
25
+ this.options = options;
26
+ }
27
+ /**
28
+ * Get the computed value, tracking dependency and lazily computing
29
+ */
30
+ getValue() {
31
+ // Track this computed as a dependency if we're in a reactive context
32
+ const computation = getCurrentComputation();
33
+ if (computation && computation.state !== ComputationState.Disposed) {
34
+ this.observers.add(computation);
35
+ computation.sources.add(this);
36
+ }
37
+ // Compute value if needed
38
+ if (this.state === ComputationState.Dirty || !this._hasValue) {
39
+ this.execute();
40
+ this._hasValue = true;
41
+ }
42
+ return this.value;
43
+ }
44
+ /**
45
+ * Get the current value without tracking dependency
46
+ */
47
+ peek() {
48
+ if (this.state === ComputationState.Dirty || !this._hasValue) {
49
+ this.execute();
50
+ this._hasValue = true;
51
+ }
52
+ return this.value;
53
+ }
54
+ /**
55
+ * Remove an observer (cleanup)
56
+ */
57
+ removeObserver(computation) {
58
+ this.observers.delete(computation);
59
+ }
60
+ /**
61
+ * Execute the computation and notify observers
62
+ */
63
+ execute() {
64
+ const previousValue = this._hasValue ? this.value : undefined;
65
+ const result = super.execute();
66
+ // Only notify observers if the value actually changed
67
+ if (!this._hasValue || !this.equalsFn(previousValue, result)) {
68
+ // Notify dependent computations
69
+ for (const observer of this.observers) {
70
+ if (observer.state !== ComputationState.Disposed) {
71
+ observer.state = ComputationState.Dirty;
72
+ // Use the signal's scheduling mechanism for consistency
73
+ if ('execute' in observer && typeof observer.execute === 'function') {
74
+ queueMicrotask(() => {
75
+ if (observer.state === ComputationState.Dirty) {
76
+ observer.execute();
77
+ }
78
+ });
79
+ }
80
+ }
81
+ }
82
+ }
83
+ return result;
84
+ }
85
+ /**
86
+ * Notify method for ReactiveNode compatibility
87
+ */
88
+ notify() {
89
+ // For computations, notify means execute
90
+ this.execute();
91
+ }
92
+ /**
93
+ * Complete cleanup for memory management
94
+ */
95
+ cleanup() {
96
+ // Complete bidirectional cleanup
97
+ for (const source of this.sources) {
98
+ if ('removeObserver' in source) {
99
+ ;
100
+ source.removeObserver(this);
101
+ }
102
+ }
103
+ this.sources.clear();
104
+ for (const observer of this.observers) {
105
+ observer.sources.delete(this);
106
+ }
107
+ this.observers.clear();
108
+ this._hasValue = false;
109
+ this._error = null;
110
+ this.state = ComputationState.Disposed;
111
+ }
112
+ /**
113
+ * Dispose the computed value
114
+ */
115
+ dispose() {
116
+ this.cleanup();
117
+ super.dispose();
118
+ }
119
+ /**
120
+ * Debug information
121
+ */
122
+ [Symbol.for('tachui.debug')]() {
123
+ return {
124
+ id: this.id,
125
+ type: this.type,
126
+ value: this._hasValue ? this.value : undefined,
127
+ hasValue: this._hasValue,
128
+ error: this._error?.message,
129
+ state: this.state,
130
+ sourceCount: this.sources.size,
131
+ observerCount: this.observers.size,
132
+ priority: UpdatePriority[this.priority],
133
+ debugName: this.options.debugName,
134
+ equalsFn: this.equalsFn.name || 'anonymous',
135
+ };
136
+ }
137
+ toString() {
138
+ return `Computed(${this.options.debugName || this.id}): ${this._hasValue ? this.value : 'no value'}`;
139
+ }
140
+ }
141
+ /**
142
+ * Create a computed value that automatically updates when dependencies change
143
+ *
144
+ * @param fn The computation function
145
+ * @param options Configuration options for the computed value
146
+ * @returns An accessor function for the computed value
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * const [count, setCount] = createSignal(0)
151
+ * const doubleCount = createComputed(() => count() * 2, {
152
+ * debugName: 'doubleCounter',
153
+ * onError: (error) => {
154
+ * console.error('Computation failed:', error)
155
+ * return 0 // fallback value
156
+ * }
157
+ * })
158
+ *
159
+ * console.log(doubleCount()) // 0
160
+ * setCount(5)
161
+ * console.log(doubleCount()) // 10
162
+ * ```
163
+ */
164
+ export function createComputed(fn, options) {
165
+ const computed = new ComputedImpl(fn, options);
166
+ // Create bound accessor with peek method - this is already a Signal<T>
167
+ const accessor = computed.getValue.bind(computed);
168
+ accessor.peek = computed.peek.bind(computed);
169
+ // Add debug information
170
+ Object.defineProperty(accessor, Symbol.for('tachui.computed'), {
171
+ value: computed,
172
+ enumerable: false,
173
+ });
174
+ return accessor;
175
+ }
176
+ /**
177
+ * Create a memo (alias for createComputed for SolidJS compatibility)
178
+ */
179
+ export function createMemo(fn, options) {
180
+ return createComputed(fn, options);
181
+ }
182
+ /**
183
+ * Type guard to check if a value is a computed
184
+ */
185
+ export function isComputed(value) {
186
+ return typeof value === 'function' && Symbol.for('tachui.computed') in value;
187
+ }
188
+ /**
189
+ * Get the underlying computed implementation for debugging
190
+ */
191
+ export function getComputedImpl(computed) {
192
+ return computed[Symbol.for('tachui.computed')] || null;
193
+ }
194
+ /**
195
+ * Create a computed value with explicit dependency tracking
196
+ *
197
+ * @param fn The computation function
198
+ * @param deps Explicit dependencies (optional)
199
+ * @returns An accessor function for the computed value
200
+ */
201
+ export function createDerivedSignal(fn, deps) {
202
+ if (!deps) {
203
+ return createComputed(fn);
204
+ }
205
+ // Wrap function to explicitly track dependencies
206
+ const wrappedFn = () => {
207
+ // Read all dependencies to track them
208
+ for (const dep of deps) {
209
+ dep();
210
+ }
211
+ return fn();
212
+ };
213
+ return createComputed(wrappedFn);
214
+ }
215
+ /**
216
+ * Create a computed value that only updates when a condition is met
217
+ *
218
+ * @param fn The computation function
219
+ * @param when Condition function that must return true for updates
220
+ * @returns An accessor function for the computed value
221
+ */
222
+ export function createConditionalComputed(fn, when) {
223
+ let lastValue;
224
+ let hasValue = false;
225
+ return createComputed(() => {
226
+ if (when()) {
227
+ lastValue = fn();
228
+ hasValue = true;
229
+ }
230
+ if (!hasValue) {
231
+ lastValue = fn();
232
+ hasValue = true;
233
+ }
234
+ return lastValue;
235
+ });
236
+ }
237
+ //# sourceMappingURL=computed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed.js","sourceRoot":"","sources":["../../../../../core/src/reactive/computed.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,aAAa,EAAyB,MAAM,YAAY,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAqB,cAAc,EAAE,MAAM,qBAAqB,CAAA;AASvE;;GAEG;AACH,MAAM,YAAgB,SAAQ,eAAe;IAClC,IAAI,GAAG,UAAmB,CAAA;IAC1B,QAAQ,CAAgB;IAEzB,SAAS,GAAG,KAAK,CAAA;IACjB,MAAM,GAAiB,IAAI,CAAA;IAC3B,QAAQ,CAAqB;IAC7B,OAAO,CAAoB;IAEnC,YAAY,EAAW,EAAE,UAA8B,EAAE,EAAE,KAAK,GAAG,eAAe,EAAE;QAClF,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC,MAAM,CAAA;QACzD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,qEAAqE;QACrE,MAAM,WAAW,GAAG,qBAAqB,EAAE,CAAA;QAC3C,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC/B,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,WAAwB;QACrC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;QAE9B,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7D,gCAAgC;YAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,KAAK,KAAK,gBAAgB,CAAC,QAAQ,EAAE,CAAC;oBACjD,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAA;oBACvC,wDAAwD;oBACxD,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBACpE,cAAc,CAAC,GAAG,EAAE;4BAClB,IAAI,QAAQ,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;gCAC9C,QAAQ,CAAC,OAAO,EAAE,CAAA;4BACpB,CAAC;wBACH,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,yCAAyC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,iCAAiC;QACjC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;gBAC/B,CAAC;gBAAC,MAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAEpB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QAEtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,KAAK,CAAC,OAAO,EAAE,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1B,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC9C,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC9B,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YAClC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,WAAW;SAC5C,CAAA;IACH,CAAC;IAED,QAAQ;QACN,OAAO,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;IACtG,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,cAAc,CAAI,EAAW,EAAE,OAA4B;IACzE,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAE9C,uEAAuE;IACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAc,CAAA;IAC9D,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE5C,wBAAwB;IACxB,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;QAC7D,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAI,EAAW,EAAE,OAA4B;IACrE,OAAO,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAU,KAAU;IAC5C,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAA;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAI,QAAmB;IACpD,OAAQ,QAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,CAAA;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAI,EAAW,EAAE,IAAoB;IACtE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,cAAc,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,sCAAsC;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,EAAE,CAAA;QACP,CAAC;QACD,OAAO,EAAE,EAAE,CAAA;IACb,CAAC,CAAA;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAI,EAAW,EAAE,IAAmB;IAC3E,IAAI,SAAY,CAAA;IAChB,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,OAAO,cAAc,CAAC,GAAG,EAAE;QACzB,IAAI,IAAI,EAAE,EAAE,CAAC;YACX,SAAS,GAAG,EAAE,EAAE,CAAA;YAChB,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS,GAAG,EAAE,EAAE,CAAA;YAChB,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Reactive context and computation management
3
+ *
4
+ * Manages the reactive execution context, dependency tracking,
5
+ * and computation lifecycle.
6
+ */
7
+ import type { CleanupFunction, Computation, ComputationStateValue, Owner, ReactiveContext } from './types';
8
+ /**
9
+ * Get the current computation context
10
+ */
11
+ export declare function getCurrentComputation(): Computation | null;
12
+ /**
13
+ * Get the current owner context
14
+ */
15
+ export declare function getCurrentOwner(): Owner | null;
16
+ /**
17
+ * Check if we're currently batching updates
18
+ */
19
+ export declare function isBatchingUpdates(): boolean;
20
+ /**
21
+ * Computation implementation
22
+ */
23
+ export declare class ComputationImpl implements Computation {
24
+ readonly id: number;
25
+ readonly owner: Owner | null;
26
+ readonly fn: () => any;
27
+ readonly sources: Set<any>;
28
+ readonly observers: Set<Computation>;
29
+ state: ComputationStateValue;
30
+ value: any;
31
+ constructor(fn: () => any, owner?: Owner | null);
32
+ execute(): any;
33
+ dispose(): void;
34
+ }
35
+ /**
36
+ * Create a new reactive computation root
37
+ */
38
+ export declare function createRoot<T>(fn: (dispose: () => void) => T): T;
39
+ /**
40
+ * Run a function with a specific owner context
41
+ */
42
+ export declare function runWithOwner<T>(owner: Owner | null, fn: () => T): T;
43
+ /**
44
+ * Get the current owner context
45
+ */
46
+ export declare function getOwner(): Owner | null;
47
+ /**
48
+ * Set the flush function (called by signal module)
49
+ */
50
+ export declare function setFlushFunction(fn: () => void): void;
51
+ /**
52
+ * Batch multiple updates together
53
+ */
54
+ export declare function batch<T>(fn: () => T): T;
55
+ /**
56
+ * Read a signal without tracking dependency
57
+ */
58
+ export declare function untrack<T>(fn: () => T): T;
59
+ /**
60
+ * Add cleanup function to current owner
61
+ */
62
+ export declare function onCleanup(fn: CleanupFunction): void;
63
+ /**
64
+ * Create a computation that runs immediately and tracks dependencies
65
+ */
66
+ export declare function createComputation<T>(fn: () => T, owner?: Owner): ComputationImpl;
67
+ /**
68
+ * Get reactive context information
69
+ */
70
+ export declare function getReactiveContext(): ReactiveContext;
71
+ /**
72
+ * Debug utilities
73
+ */
74
+ export declare const DEBUG: {
75
+ getCurrentComputation: () => Computation | null;
76
+ getCurrentOwner: () => Owner | null;
77
+ getComputationCount: () => number;
78
+ getOwnerCount: () => number;
79
+ isBatching: () => boolean;
80
+ getModuleInstances: () => string[];
81
+ getModuleId: () => string;
82
+ };
83
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,KAAK,EACL,eAAe,EAChB,MAAM,SAAS,CAAA;AA0ChB;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,GAAG,IAAI,CAG1D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,KAAK,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AA8CD;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,CAAA;IACtB,QAAQ,CAAC,OAAO,WAAiB;IACjC,QAAQ,CAAC,SAAS,mBAAyB;IAC3C,KAAK,EAAE,qBAAqB,CAAyB;IACrD,KAAK,EAAE,GAAG,CAAY;gBAEV,EAAE,EAAE,MAAM,GAAG,EAAE,KAAK,GAAE,KAAK,GAAG,IAAW;IAUrD,OAAO,IAAI,GAAG;IAiCd,OAAO,IAAI,IAAI;CAwBhB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAU/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CASnE;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAEvC;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAkBvC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CASzC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAKnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,EAAE,EAAE,MAAM,CAAC,EACX,KAAK,CAAC,EAAE,KAAK,GACZ,eAAe,CAOjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAA"}