@tachui/cli 0.8.1-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 +1 -1
  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,265 @@
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 { getCurrentComputation, getCurrentOwner } from './context';
8
+ import { ReactiveScheduler, UpdatePriority } from './unified-scheduler';
9
+ let effectIdCounter = 0;
10
+ /**
11
+ * Enhanced effect implementation with proper error propagation
12
+ */
13
+ export class EffectImpl {
14
+ effectFn;
15
+ id = ++effectIdCounter;
16
+ type = 'effect';
17
+ priority;
18
+ sources = new Set();
19
+ observers = new Set(); // Effects don't have observers
20
+ isDisposed = false;
21
+ cleanupFn;
22
+ options;
23
+ owner;
24
+ constructor(effectFn, options = {}) {
25
+ this.effectFn = effectFn;
26
+ this.priority = options.priority ?? UpdatePriority.Normal;
27
+ this.options = options;
28
+ this.owner = getCurrentOwner();
29
+ if (options.fireImmediately !== false) {
30
+ this.execute();
31
+ }
32
+ }
33
+ /**
34
+ * Notify method called by unified scheduler
35
+ */
36
+ notify() {
37
+ if (this.isDisposed)
38
+ return;
39
+ this.execute();
40
+ }
41
+ /**
42
+ * Execute the effect with proper error handling
43
+ */
44
+ execute() {
45
+ if (this.isDisposed)
46
+ return;
47
+ // Cleanup previous effect run
48
+ if (this.cleanupFn) {
49
+ try {
50
+ this.cleanupFn();
51
+ }
52
+ catch (error) {
53
+ console.error('Effect cleanup error:', error);
54
+ }
55
+ this.cleanupFn = undefined;
56
+ }
57
+ // Clear existing dependencies
58
+ for (const source of this.sources) {
59
+ if ('removeObserver' in source && typeof source.removeObserver === 'function') {
60
+ source.removeObserver(this);
61
+ }
62
+ else if ('observers' in source && source.observers instanceof Set) {
63
+ source.observers.delete(this);
64
+ }
65
+ }
66
+ this.sources.clear();
67
+ // Execute effect with dependency tracking
68
+ const previousComputation = getCurrentComputation();
69
+ // We need to set this as the current computation for dependency tracking
70
+ const setCurrentComputation = this.setCurrentComputation || (() => { });
71
+ setCurrentComputation(this);
72
+ try {
73
+ const result = this.effectFn();
74
+ // Store cleanup function if returned
75
+ if (typeof result === 'function') {
76
+ this.cleanupFn = result;
77
+ }
78
+ }
79
+ catch (error) {
80
+ if (this.options.onError) {
81
+ try {
82
+ this.options.onError(error);
83
+ }
84
+ catch (handlerError) {
85
+ console.error('Effect error handler threw error:', handlerError);
86
+ // Re-throw the original error since handler failed
87
+ throw error;
88
+ }
89
+ }
90
+ else {
91
+ // Don't suppress errors like the old implementation - re-throw them
92
+ console.error(`Effect ${this.options.debugName || this.id} threw error:`, error);
93
+ throw error;
94
+ }
95
+ }
96
+ finally {
97
+ setCurrentComputation(previousComputation);
98
+ }
99
+ }
100
+ /**
101
+ * Complete cleanup for memory management
102
+ */
103
+ cleanup() {
104
+ this.isDisposed = true;
105
+ // Cleanup effect function
106
+ if (this.cleanupFn) {
107
+ try {
108
+ this.cleanupFn();
109
+ }
110
+ catch (error) {
111
+ console.error('Effect cleanup error:', error);
112
+ }
113
+ this.cleanupFn = undefined;
114
+ }
115
+ // Remove from all sources
116
+ for (const source of this.sources) {
117
+ if ('removeObserver' in source && typeof source.removeObserver === 'function') {
118
+ source.removeObserver(this);
119
+ }
120
+ else if ('observers' in source && source.observers instanceof Set) {
121
+ source.observers.delete(this);
122
+ }
123
+ }
124
+ this.sources.clear();
125
+ // Remove from owner cleanup
126
+ if (this.owner?.cleanups) {
127
+ const index = this.owner.cleanups.indexOf(this.cleanup.bind(this));
128
+ if (index >= 0) {
129
+ this.owner.cleanups.splice(index, 1);
130
+ }
131
+ }
132
+ }
133
+ /**
134
+ * Dispose the effect (alias for cleanup)
135
+ */
136
+ dispose() {
137
+ this.cleanup();
138
+ }
139
+ /**
140
+ * Check if effect is disposed
141
+ */
142
+ get disposed() {
143
+ return this.isDisposed;
144
+ }
145
+ /**
146
+ * Debug information
147
+ */
148
+ [Symbol.for('tachui.debug')]() {
149
+ return {
150
+ id: this.id,
151
+ type: this.type,
152
+ priority: UpdatePriority[this.priority],
153
+ debugName: this.options.debugName,
154
+ disposed: this.isDisposed,
155
+ sourceCount: this.sources.size,
156
+ hasCleanup: !!this.cleanupFn,
157
+ };
158
+ }
159
+ toString() {
160
+ return `Effect(${this.options.debugName || this.id})`;
161
+ }
162
+ }
163
+ /**
164
+ * Create a reactive effect with proper error handling
165
+ *
166
+ * @param effectFn The effect function to run
167
+ * @param options Effect configuration options
168
+ * @returns Cleanup function to dispose the effect
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const [count, setCount] = createSignal(0)
173
+ *
174
+ * const cleanup = createEnhancedEffect(() => {
175
+ * console.log('Count changed:', count())
176
+ * }, {
177
+ * debugName: 'countLogger',
178
+ * onError: (error) => {
179
+ * console.error('Effect failed:', error)
180
+ * }
181
+ * })
182
+ *
183
+ * // Later, cleanup when no longer needed
184
+ * cleanup()
185
+ * ```
186
+ */
187
+ export function createEnhancedEffect(effectFn, options) {
188
+ const effect = new EffectImpl(effectFn, options);
189
+ // Register cleanup with owner if available
190
+ const owner = getCurrentOwner();
191
+ if (owner) {
192
+ owner.cleanups.push(() => effect.cleanup());
193
+ }
194
+ return () => effect.cleanup();
195
+ }
196
+ /**
197
+ * Create an effect with high priority for user interactions
198
+ */
199
+ export function createHighPriorityEffect(effectFn, options) {
200
+ return createEnhancedEffect(effectFn, { ...options, priority: UpdatePriority.High });
201
+ }
202
+ /**
203
+ * Create an effect with low priority for background tasks
204
+ */
205
+ export function createLowPriorityEffect(effectFn, options) {
206
+ return createEnhancedEffect(effectFn, { ...options, priority: UpdatePriority.Low });
207
+ }
208
+ /**
209
+ * Create an effect that only runs when dependencies change (not immediately)
210
+ */
211
+ export function createWatchEffect(effectFn, options) {
212
+ return createEnhancedEffect(effectFn, { ...options, fireImmediately: false });
213
+ }
214
+ /**
215
+ * Create an effect with automatic error recovery
216
+ */
217
+ export function createResilientEffect(effectFn, onError, // return true to retry
218
+ maxRetries = 3, options) {
219
+ let attempt = 0;
220
+ const resilientFn = () => {
221
+ try {
222
+ return effectFn();
223
+ }
224
+ catch (error) {
225
+ attempt++;
226
+ if (onError && attempt <= maxRetries && onError(error, attempt)) {
227
+ // Retry after a short delay
228
+ setTimeout(() => resilientFn(), attempt * 100);
229
+ return;
230
+ }
231
+ else {
232
+ // Give up and re-throw
233
+ throw error;
234
+ }
235
+ }
236
+ };
237
+ return createEnhancedEffect(resilientFn, {
238
+ ...options,
239
+ debugName: `${options?.debugName || 'effect'}(resilient)`,
240
+ });
241
+ }
242
+ /**
243
+ * Batch multiple effect creations for performance
244
+ */
245
+ export function createEffectBatch(effects) {
246
+ const cleanups = effects.map(({ fn, options }) => createEnhancedEffect(fn, options));
247
+ return () => {
248
+ cleanups.forEach((cleanup) => cleanup());
249
+ };
250
+ }
251
+ /**
252
+ * Get performance metrics for all effects
253
+ */
254
+ export function getEffectPerformanceMetrics() {
255
+ const scheduler = ReactiveScheduler.getInstance();
256
+ return scheduler.getPerformanceMetrics();
257
+ }
258
+ /**
259
+ * Flush all pending effect updates synchronously
260
+ */
261
+ export function flushEffectUpdates() {
262
+ const scheduler = ReactiveScheduler.getInstance();
263
+ scheduler.flushSync();
264
+ }
265
+ //# sourceMappingURL=enhanced-effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-effect.js","sourceRoot":"","sources":["../../../../../core/src/reactive/enhanced-effect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Enhanced Signal Implementation v2.0
3
+ *
4
+ * Integrates with the unified scheduler and provides custom equality functions
5
+ * to fix signal update detection bugs and eliminate race conditions.
6
+ */
7
+ import { type EqualityFunction } from './equality';
8
+ import type { Computation } from './types';
9
+ import { type ReactiveNode, UpdatePriority } from './unified-scheduler';
10
+ export interface SignalOptions<T> {
11
+ equals?: EqualityFunction<T>;
12
+ priority?: UpdatePriority;
13
+ debugName?: string;
14
+ }
15
+ /**
16
+ * Enhanced signal implementation with unified scheduler integration
17
+ */
18
+ export declare class EnhancedSignalImpl<T> implements ReactiveNode {
19
+ readonly id: number;
20
+ readonly type: "signal";
21
+ readonly priority: UpdatePriority;
22
+ readonly observers: Set<Computation>;
23
+ private _value;
24
+ private scheduler;
25
+ private equalsFn;
26
+ private debugName?;
27
+ private options;
28
+ constructor(initialValue: T, options?: SignalOptions<T>);
29
+ /**
30
+ * Get the current value and track dependency
31
+ */
32
+ getValue(): T;
33
+ /**
34
+ * Get the current value without tracking dependency
35
+ */
36
+ peek(): T;
37
+ /**
38
+ * Set a new value using custom equality function
39
+ */
40
+ setValue(newValue: T | ((prev: T) => T)): T;
41
+ /**
42
+ * Notify all observers (called by scheduler)
43
+ */
44
+ notify(): void;
45
+ /**
46
+ * Remove an observer (cleanup)
47
+ */
48
+ removeObserver(computation: Computation): void;
49
+ /**
50
+ * Complete cleanup for memory management
51
+ */
52
+ cleanup(): void;
53
+ toString(): string;
54
+ }
55
+ /**
56
+ * Signal setter function type
57
+ */
58
+ export type SignalSetter<T> = (value: T | ((prev: T) => T)) => T;
59
+ /**
60
+ * Create a new enhanced reactive signal with custom equality
61
+ */
62
+ export declare function createEnhancedSignal<T>(initialValue: T, options?: SignalOptions<T>): [() => T, SignalSetter<T>];
63
+ /**
64
+ * Create a signal with deep equality comparison
65
+ */
66
+ export declare function createDeepSignal<T>(initialValue: T, options?: Omit<SignalOptions<T>, 'equals'>): [() => T, SignalSetter<T>];
67
+ /**
68
+ * Create a signal with shallow equality comparison
69
+ */
70
+ export declare function createShallowSignal<T>(initialValue: T, options?: Omit<SignalOptions<T>, 'equals'>): [() => T, SignalSetter<T>];
71
+ /**
72
+ * Get the underlying signal implementation for debugging
73
+ */
74
+ export declare function getEnhancedSignalImpl<T>(signal: (() => T) & {
75
+ peek: () => T;
76
+ }): EnhancedSignalImpl<T> | null;
77
+ /**
78
+ * Type guard to check if a value is an enhanced signal
79
+ */
80
+ export declare function isEnhancedSignal<T = any>(value: any): value is (() => T) & {
81
+ peek: () => T;
82
+ };
83
+ /**
84
+ * Flush all pending signal updates synchronously
85
+ */
86
+ export declare function flushSignalUpdates(): void;
87
+ /**
88
+ * Get performance metrics for all signals
89
+ */
90
+ export declare function getSignalPerformanceMetrics(): import("./unified-scheduler").ReactivePerformanceMetrics;
91
+ //# sourceMappingURL=enhanced-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-signal.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/enhanced-signal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Enhanced Signal Implementation v2.0
3
+ *
4
+ * Integrates with the unified scheduler and provides custom equality functions
5
+ * to fix signal update detection bugs and eliminate race conditions.
6
+ */
7
+ import { getCurrentComputation } from './context';
8
+ import { defaultEquals, deepEquals, shallowEquals } from './equality';
9
+ import { ComputationState } from './types';
10
+ import { ReactiveScheduler, UpdatePriority } from './unified-scheduler';
11
+ let signalIdCounter = 0;
12
+ /**
13
+ * Enhanced signal implementation with unified scheduler integration
14
+ */
15
+ export class EnhancedSignalImpl {
16
+ id = ++signalIdCounter;
17
+ type = 'signal';
18
+ priority;
19
+ observers = new Set();
20
+ _value;
21
+ scheduler = ReactiveScheduler.getInstance();
22
+ equalsFn;
23
+ debugName;
24
+ options;
25
+ constructor(initialValue, options = {}) {
26
+ this._value = initialValue;
27
+ this.options = options;
28
+ this.priority = options.priority ?? UpdatePriority.Normal;
29
+ this.equalsFn = options.equals ?? defaultEquals;
30
+ this.debugName = options.debugName;
31
+ }
32
+ /**
33
+ * Get the current value and track dependency
34
+ */
35
+ getValue() {
36
+ const computation = getCurrentComputation();
37
+ if (computation && computation.state !== ComputationState.Disposed) {
38
+ // Establish bidirectional relationship
39
+ this.observers.add(computation);
40
+ computation.sources.add(this);
41
+ }
42
+ return this._value;
43
+ }
44
+ /**
45
+ * Get the current value without tracking dependency
46
+ */
47
+ peek() {
48
+ return this._value;
49
+ }
50
+ /**
51
+ * Set a new value using custom equality function
52
+ */
53
+ setValue(newValue) {
54
+ const value = typeof newValue === 'function' ? newValue(this._value) : newValue;
55
+ // Use custom equality function instead of simple !== check
56
+ if (!this.equalsFn(value, this._value)) {
57
+ const oldValue = this._value;
58
+ this._value = value;
59
+ if (process.env.NODE_ENV === 'development' && this.debugName) {
60
+ console.debug(`[Signal:${this.debugName}] ${oldValue} -> ${value}`);
61
+ }
62
+ // Schedule update through unified scheduler
63
+ this.scheduler.schedule(this);
64
+ }
65
+ return value;
66
+ }
67
+ /**
68
+ * Notify all observers (called by scheduler)
69
+ */
70
+ notify() {
71
+ // Mark all observers as dirty and schedule them
72
+ for (const observer of this.observers) {
73
+ if (observer.state !== ComputationState.Disposed) {
74
+ observer.state = ComputationState.Dirty;
75
+ // Schedule observer if it's also a ReactiveNode
76
+ if ('type' in observer && 'priority' in observer) {
77
+ this.scheduler.schedule(observer);
78
+ }
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Remove an observer (cleanup)
84
+ */
85
+ removeObserver(computation) {
86
+ this.observers.delete(computation);
87
+ }
88
+ /**
89
+ * Complete cleanup for memory management
90
+ */
91
+ cleanup() {
92
+ // Complete bidirectional cleanup to prevent memory leaks
93
+ for (const observer of this.observers) {
94
+ observer.sources.delete(this);
95
+ }
96
+ this.observers.clear();
97
+ }
98
+ /**
99
+ * Get debug information about this signal
100
+ */
101
+ [Symbol.for('tachui.debug')]() {
102
+ return {
103
+ id: this.id,
104
+ type: this.type,
105
+ value: this._value,
106
+ observerCount: this.observers.size,
107
+ priority: UpdatePriority[this.priority],
108
+ debugName: this.debugName,
109
+ equalsFn: this.equalsFn.name || 'anonymous',
110
+ };
111
+ }
112
+ toString() {
113
+ return `Signal(${this.options.debugName || this.id}): ${this._value}`;
114
+ }
115
+ }
116
+ /**
117
+ * Create a new enhanced reactive signal with custom equality
118
+ */
119
+ export function createEnhancedSignal(initialValue, options) {
120
+ const signal = new EnhancedSignalImpl(initialValue, options);
121
+ const getter = signal.getValue.bind(signal);
122
+ getter.peek = signal.peek.bind(signal);
123
+ const setter = signal.setValue.bind(signal);
124
+ // Add debug information for compatibility
125
+ Object.defineProperty(getter, Symbol.for('tachui.signal'), {
126
+ value: signal,
127
+ enumerable: false,
128
+ });
129
+ return [getter, setter];
130
+ }
131
+ /**
132
+ * Create a signal with deep equality comparison
133
+ */
134
+ export function createDeepSignal(initialValue, options) {
135
+ return createEnhancedSignal(initialValue, {
136
+ ...options,
137
+ equals: deepEquals,
138
+ });
139
+ }
140
+ /**
141
+ * Create a signal with shallow equality comparison
142
+ */
143
+ export function createShallowSignal(initialValue, options) {
144
+ return createEnhancedSignal(initialValue, {
145
+ ...options,
146
+ equals: shallowEquals,
147
+ });
148
+ }
149
+ /**
150
+ * Get the underlying signal implementation for debugging
151
+ */
152
+ export function getEnhancedSignalImpl(signal) {
153
+ return signal[Symbol.for('tachui.signal')] || null;
154
+ }
155
+ /**
156
+ * Type guard to check if a value is an enhanced signal
157
+ */
158
+ export function isEnhancedSignal(value) {
159
+ return typeof value === 'function' && Symbol.for('tachui.signal') in value;
160
+ }
161
+ /**
162
+ * Flush all pending signal updates synchronously
163
+ */
164
+ export function flushSignalUpdates() {
165
+ const scheduler = ReactiveScheduler.getInstance();
166
+ scheduler.flushSync();
167
+ }
168
+ /**
169
+ * Get performance metrics for all signals
170
+ */
171
+ export function getSignalPerformanceMetrics() {
172
+ const scheduler = ReactiveScheduler.getInstance();
173
+ return scheduler.getPerformanceMetrics();
174
+ }
175
+ //# sourceMappingURL=enhanced-signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-signal.js","sourceRoot":"","sources":["../../../../../core/src/reactive/enhanced-signal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Equality Functions for Reactive System
3
+ *
4
+ * Provides various equality comparison functions for signal updates
5
+ * including deep, shallow, and custom equality checking.
6
+ */
7
+ export type EqualityFunction<T> = (a: T, b: T) => boolean;
8
+ /**
9
+ * Default reference equality (===)
10
+ */
11
+ export declare const defaultEquals: <T>(a: T, b: T) => boolean;
12
+ /**
13
+ * Deep equality comparison for objects and arrays
14
+ * Recursively compares all properties and array elements
15
+ */
16
+ export declare const deepEquals: <T>(a: T, b: T) => boolean;
17
+ /**
18
+ * Shallow equality comparison for objects
19
+ * Compares only the top-level properties with reference equality
20
+ */
21
+ export declare const shallowEquals: <T>(a: T, b: T) => boolean;
22
+ /**
23
+ * Structural equality for specific data types
24
+ */
25
+ export declare const structuralEquals: <T>(a: T, b: T) => boolean;
26
+ /**
27
+ * JSON-based equality (serializes and compares)
28
+ * Useful for complex nested structures but slower
29
+ */
30
+ export declare const jsonEquals: <T>(a: T, b: T) => boolean;
31
+ /**
32
+ * Create a custom equality function based on a selector
33
+ */
34
+ export declare const createSelectorEquals: <T, K>(selector: (value: T) => K, equalsFn?: EqualityFunction<K>) => EqualityFunction<T>;
35
+ /**
36
+ * Create an array equality function with custom element comparison
37
+ */
38
+ export declare const createArrayEquals: <T>(elementEquals?: EqualityFunction<T>) => EqualityFunction<T[]>;
39
+ /**
40
+ * Create an object equality function with custom property comparison
41
+ */
42
+ export declare const createObjectEquals: <T extends Record<string, any>>(propertyEquals?: EqualityFunction<any>) => EqualityFunction<T>;
43
+ /**
44
+ * Combine multiple equality functions with AND logic
45
+ */
46
+ export declare const combineEquals: <T>(...equalsFunctions: EqualityFunction<T>[]) => EqualityFunction<T>;
47
+ /**
48
+ * Utility to wrap an equality function with debugging
49
+ */
50
+ export declare const debugEquals: <T>(equalsFn: EqualityFunction<T>, debugName?: string) => EqualityFunction<T>;
51
+ //# sourceMappingURL=equality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/equality.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,OAAkB,CAAA;AAEhE;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,OA0B1C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,OAa7C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,OAiChD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,OAS1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EACvC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACzB,WAAU,gBAAgB,CAAC,CAAC,CAAiB,KAC5C,gBAAgB,CAAC,CAAC,CAIpB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EACjC,gBAAe,gBAAgB,CAAC,CAAC,CAAiB,KACjD,gBAAgB,CAAC,CAAC,EAAE,CAOtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9D,iBAAgB,gBAAgB,CAAC,GAAG,CAAiB,KACpD,gBAAgB,CAAC,CAAC,CAWpB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,GAAG,iBAAiB,gBAAgB,CAAC,CAAC,CAAC,EAAE,KACxC,gBAAgB,CAAC,CAAC,CAIpB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,UAAU,gBAAgB,CAAC,CAAC,CAAC,EAC7B,YAAY,MAAM,KACjB,gBAAgB,CAAC,CAAC,CAQpB,CAAA"}