@logixjs/core 0.0.1 → 1.0.0

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 (398) hide show
  1. package/LICENSE +201 -0
  2. package/dist/{Action-mqVvtEHt.d.ts → Action-DYl88bwj.d.ts} +1 -1
  3. package/dist/{Action-BkRHy2vg.d.cts → Action-DkxsI_DK.d.cts} +1 -1
  4. package/dist/Action.cjs.map +1 -1
  5. package/dist/Action.d.cts +1 -1
  6. package/dist/Action.d.ts +1 -1
  7. package/dist/Action.js +2 -2
  8. package/dist/{Actions-AsQ07yTP.d.cts → Actions-Dicm7jdc.d.cts} +2 -2
  9. package/dist/{Actions-AsQ07yTP.d.ts → Actions-Dicm7jdc.d.ts} +2 -2
  10. package/dist/Actions.cjs.map +1 -1
  11. package/dist/Actions.d.cts +1 -1
  12. package/dist/Actions.d.ts +1 -1
  13. package/dist/Actions.js +1 -1
  14. package/dist/{Bound-BN1DQ_lM.d.ts → Bound-1OJLzVIS.d.ts} +2 -2
  15. package/dist/{Bound-BPIfH9SS.d.cts → Bound-BMLrtQ1V.d.cts} +2 -2
  16. package/dist/Bound.cjs +1737 -399
  17. package/dist/Bound.cjs.map +1 -1
  18. package/dist/Bound.d.cts +5 -5
  19. package/dist/Bound.d.ts +5 -5
  20. package/dist/Bound.js +19 -17
  21. package/dist/{Debug-B5q5Bkzx.d.ts → Debug-DKrWP5H1.d.ts} +40 -22
  22. package/dist/{Debug-Bq8Sqjcr.d.cts → Debug-hIT44XsY.d.cts} +40 -22
  23. package/dist/Debug.cjs +1348 -318
  24. package/dist/Debug.cjs.map +1 -1
  25. package/dist/Debug.d.cts +12 -11
  26. package/dist/Debug.d.ts +12 -11
  27. package/dist/Debug.js +20 -11
  28. package/dist/EffectOp.cjs +15 -6
  29. package/dist/EffectOp.cjs.map +1 -1
  30. package/dist/EffectOp.js +3 -3
  31. package/dist/Env.cjs +772 -6
  32. package/dist/Env.cjs.map +1 -1
  33. package/dist/Env.js +5 -2
  34. package/dist/ExternalStore-DqJKKRJ4.d.ts +61 -0
  35. package/dist/ExternalStore-JC-gAgEI.d.cts +61 -0
  36. package/dist/ExternalStore.cjs +774 -0
  37. package/dist/ExternalStore.cjs.map +1 -0
  38. package/dist/ExternalStore.d.cts +8 -0
  39. package/dist/ExternalStore.d.ts +8 -0
  40. package/dist/ExternalStore.js +19 -0
  41. package/dist/ExternalStore.js.map +1 -0
  42. package/dist/{Flow-BhpjE22E.d.ts → Flow-CZmXRDqp.d.cts} +13 -4
  43. package/dist/{Flow-1fZT8MpX.d.cts → Flow-DIVDxz7R.d.ts} +13 -4
  44. package/dist/Flow.cjs +765 -148
  45. package/dist/Flow.cjs.map +1 -1
  46. package/dist/Flow.d.cts +6 -6
  47. package/dist/Flow.d.ts +6 -6
  48. package/dist/Flow.js +9 -8
  49. package/dist/{Handle-D_cLW1Z3.d.ts → Handle-Bo6cAFut.d.ts} +1 -1
  50. package/dist/{Handle-D8D1zPb_.d.cts → Handle-CfDvSqN7.d.cts} +1 -1
  51. package/dist/Handle.d.cts +5 -5
  52. package/dist/Handle.d.ts +5 -5
  53. package/dist/{Kernel-8kC-jOda.d.cts → Kernel-CuXBF9S_.d.cts} +16 -7
  54. package/dist/{Kernel-CnGE1Fyk.d.ts → Kernel-D9guNwRL.d.ts} +16 -7
  55. package/dist/Kernel.cjs +814 -26
  56. package/dist/Kernel.cjs.map +1 -1
  57. package/dist/Kernel.d.cts +13 -12
  58. package/dist/Kernel.d.ts +13 -12
  59. package/dist/Kernel.js +7 -4
  60. package/dist/{Link-Db7975nU.d.ts → Link-CUM0yUCH.d.ts} +10 -3
  61. package/dist/{Link-fX8x1eCK.d.cts → Link-NAfR6uGD.d.cts} +10 -3
  62. package/dist/Link.cjs +1294 -121
  63. package/dist/Link.cjs.map +1 -1
  64. package/dist/Link.d.cts +5 -5
  65. package/dist/Link.d.ts +5 -5
  66. package/dist/Link.js +37 -29
  67. package/dist/{Logic-DRh4sDZj.d.cts → Logic-09VQpIj3.d.cts} +7 -4
  68. package/dist/{Logic-BRjEMr-W.d.ts → Logic-DKg7ghGy.d.ts} +7 -4
  69. package/dist/Logic.cjs +2 -1
  70. package/dist/Logic.cjs.map +1 -1
  71. package/dist/Logic.d.cts +5 -5
  72. package/dist/Logic.d.ts +5 -5
  73. package/dist/Logic.js +1 -1
  74. package/dist/{MatchBuilder-CJk5oCkR.d.cts → MatchBuilder-CsW5jgrL.d.ts} +1 -1
  75. package/dist/{MatchBuilder-0QOc-nlU.d.ts → MatchBuilder-Dksk07F4.d.cts} +1 -1
  76. package/dist/MatchBuilder.cjs +2 -2
  77. package/dist/MatchBuilder.cjs.map +1 -1
  78. package/dist/MatchBuilder.d.cts +6 -6
  79. package/dist/MatchBuilder.d.ts +6 -6
  80. package/dist/MatchBuilder.js +2 -2
  81. package/dist/Middleware-D8tUDLv_.d.cts +100 -0
  82. package/dist/Middleware-DS7CbTTN.d.ts +100 -0
  83. package/dist/Middleware.cjs +678 -58
  84. package/dist/Middleware.cjs.map +1 -1
  85. package/dist/Middleware.d.cts +2 -86
  86. package/dist/Middleware.d.ts +2 -86
  87. package/dist/Middleware.js +15 -12
  88. package/dist/{Module-DnzluX2J.d.ts → Module-B_Cntyms.d.ts} +54 -25
  89. package/dist/{Module-B_0xRDMR.d.cts → Module-CmNOVXzf.d.cts} +54 -25
  90. package/dist/Module.cjs +9331 -3317
  91. package/dist/Module.cjs.map +1 -1
  92. package/dist/Module.d.cts +7 -6
  93. package/dist/Module.d.ts +7 -6
  94. package/dist/Module.js +39 -31
  95. package/dist/ModuleTag-CGho_InD.d.ts +113 -0
  96. package/dist/ModuleTag-CITb8L_G.d.cts +113 -0
  97. package/dist/ModuleTag.cjs +7248 -2847
  98. package/dist/ModuleTag.cjs.map +1 -1
  99. package/dist/ModuleTag.d.cts +6 -6
  100. package/dist/ModuleTag.d.ts +6 -6
  101. package/dist/ModuleTag.js +35 -29
  102. package/dist/Observability-Bdhnx2Dv.d.ts +385 -0
  103. package/dist/Observability-DXGAFBIT.d.cts +385 -0
  104. package/dist/Observability.cjs +5093 -1556
  105. package/dist/Observability.cjs.map +1 -1
  106. package/dist/Observability.d.cts +6 -7
  107. package/dist/Observability.d.ts +6 -7
  108. package/dist/Observability.js +28 -23
  109. package/dist/{Platform-CHX8o-U4.d.ts → Platform-B4s8tg6C.d.cts} +4 -5
  110. package/dist/{Platform-C49Pv956.d.cts → Platform-BV_0MW7g.d.cts} +5 -2
  111. package/dist/{Platform-C49Pv956.d.ts → Platform-BV_0MW7g.d.ts} +5 -2
  112. package/dist/{Platform-CVlv0xLQ.d.cts → Platform-W0Mefy_e.d.ts} +4 -5
  113. package/dist/Platform.cjs +2 -1
  114. package/dist/Platform.cjs.map +1 -1
  115. package/dist/Platform.d.cts +2 -3
  116. package/dist/Platform.d.ts +2 -3
  117. package/dist/Platform.js +2 -2
  118. package/dist/{Process-CM9xbMdP.d.ts → Process-CO8G7HO9.d.cts} +30 -5
  119. package/dist/{Process-mL8fHDSB.d.cts → Process-Cyf6VNDR.d.ts} +30 -5
  120. package/dist/Process.cjs +1288 -120
  121. package/dist/Process.cjs.map +1 -1
  122. package/dist/Process.d.cts +6 -6
  123. package/dist/Process.d.ts +6 -6
  124. package/dist/Process.js +34 -26
  125. package/dist/ReadQuery-C_or5nLC.d.ts +128 -0
  126. package/dist/ReadQuery-DXLzCE0E.d.cts +614 -0
  127. package/dist/ReadQuery-DXLzCE0E.d.ts +614 -0
  128. package/dist/ReadQuery-Yve1lmUo.d.cts +128 -0
  129. package/dist/ReadQuery.cjs +290 -5
  130. package/dist/ReadQuery.cjs.map +1 -1
  131. package/dist/ReadQuery.d.cts +3 -2
  132. package/dist/ReadQuery.d.ts +3 -2
  133. package/dist/ReadQuery.js +23 -5
  134. package/dist/{Reflection-CQnKwPXj.d.ts → Reflection-B2Xi1e4Q.d.ts} +89 -7
  135. package/dist/{Reflection-Kabo1mlU.d.cts → Reflection-DNB4V4_e.d.cts} +89 -7
  136. package/dist/Reflection.cjs +3227 -1617
  137. package/dist/Reflection.cjs.map +1 -1
  138. package/dist/Reflection.d.cts +17 -15
  139. package/dist/Reflection.d.ts +17 -15
  140. package/dist/Reflection.js +33 -25
  141. package/dist/{Resource-Dy1xD_DG.d.cts → Resource-pKvQQ4x5.d.cts} +3 -3
  142. package/dist/{Resource-Dy1xD_DG.d.ts → Resource-pKvQQ4x5.d.ts} +3 -3
  143. package/dist/Resource.cjs +781 -15
  144. package/dist/Resource.cjs.map +1 -1
  145. package/dist/Resource.d.cts +1 -1
  146. package/dist/Resource.d.ts +1 -1
  147. package/dist/Resource.js +6 -3
  148. package/dist/{Root-7ADUMk4t.d.cts → Root-CCVuFHB6.d.cts} +3 -3
  149. package/dist/{Root-7ADUMk4t.d.ts → Root-CCVuFHB6.d.ts} +3 -3
  150. package/dist/Root.cjs +786 -20
  151. package/dist/Root.cjs.map +1 -1
  152. package/dist/Root.d.cts +2 -2
  153. package/dist/Root.d.ts +2 -2
  154. package/dist/Root.js +7 -3
  155. package/dist/{Runtime-CtyzZG4i.d.ts → Runtime-CRmvwK4I.d.ts} +70 -14
  156. package/dist/{Runtime-B-aL-f29.d.cts → Runtime-C_wJM9mN.d.cts} +70 -14
  157. package/dist/Runtime.cjs +4942 -1601
  158. package/dist/Runtime.cjs.map +1 -1
  159. package/dist/Runtime.d.cts +17 -15
  160. package/dist/Runtime.d.ts +17 -15
  161. package/dist/Runtime.js +44 -32
  162. package/dist/{ScopeRegistry-D1owDNSm.d.cts → ScopeRegistry-BhYzqWri.d.cts} +6 -6
  163. package/dist/{ScopeRegistry-D1owDNSm.d.ts → ScopeRegistry-BhYzqWri.d.ts} +6 -6
  164. package/dist/ScopeRegistry.cjs +776 -10
  165. package/dist/ScopeRegistry.cjs.map +1 -1
  166. package/dist/ScopeRegistry.d.cts +1 -1
  167. package/dist/ScopeRegistry.d.ts +1 -1
  168. package/dist/ScopeRegistry.js +6 -3
  169. package/dist/{State-CU50R26M.d.cts → State-rNFsFPTl.d.cts} +2 -2
  170. package/dist/{State-CU50R26M.d.ts → State-rNFsFPTl.d.ts} +2 -2
  171. package/dist/State.cjs.map +1 -1
  172. package/dist/State.d.cts +1 -1
  173. package/dist/State.d.ts +1 -1
  174. package/dist/State.js +1 -1
  175. package/dist/{StateTrait-BGsZghTz.d.ts → StateTrait-CijdwNb6.d.ts} +25 -8
  176. package/dist/{StateTrait-OWhbj12c.d.cts → StateTrait-Dltto6PU.d.cts} +25 -8
  177. package/dist/StateTrait.cjs +1890 -528
  178. package/dist/StateTrait.cjs.map +1 -1
  179. package/dist/StateTrait.d.cts +9 -7
  180. package/dist/StateTrait.d.ts +9 -7
  181. package/dist/StateTrait.js +18 -14
  182. package/dist/{TraitLifecycle-CwV5WPFX.d.cts → TraitLifecycle-BKzDqzLu.d.cts} +2 -2
  183. package/dist/{TraitLifecycle-LdIWmKlg.d.ts → TraitLifecycle-Cvo94uDB.d.ts} +2 -2
  184. package/dist/TraitLifecycle.cjs +630 -67
  185. package/dist/TraitLifecycle.cjs.map +1 -1
  186. package/dist/TraitLifecycle.d.cts +6 -6
  187. package/dist/TraitLifecycle.d.ts +6 -6
  188. package/dist/TraitLifecycle.js +8 -7
  189. package/dist/Workflow-C_OWr4dV.d.ts +415 -0
  190. package/dist/Workflow-DmydkHO8.d.cts +415 -0
  191. package/dist/Workflow.cjs +3150 -0
  192. package/dist/Workflow.cjs.map +1 -0
  193. package/dist/Workflow.d.cts +7 -0
  194. package/dist/Workflow.d.ts +7 -0
  195. package/dist/Workflow.js +58 -0
  196. package/dist/Workflow.js.map +1 -0
  197. package/dist/{action-DiMDD_0v.d.cts → action-BQxjPFEw.d.cts} +5 -5
  198. package/dist/{action-DiMDD_0v.d.ts → action-BQxjPFEw.d.ts} +5 -5
  199. package/dist/chunk-2XRLXDWR.js +276 -0
  200. package/dist/chunk-2XRLXDWR.js.map +1 -0
  201. package/dist/chunk-3L6QGFMM.js +701 -0
  202. package/dist/chunk-3L6QGFMM.js.map +1 -0
  203. package/dist/{chunk-GMPEOUP2.js → chunk-4MZ7BT3R.js} +2 -2
  204. package/dist/chunk-4MZ7BT3R.js.map +1 -0
  205. package/dist/{chunk-3IYZ5IGG.js → chunk-5WKUGEBY.js} +2 -2
  206. package/dist/{chunk-3RMKLXHX.js → chunk-63ZQ5RIN.js} +2 -2
  207. package/dist/{chunk-M3WTHJHJ.js → chunk-67DIEA53.js} +385 -148
  208. package/dist/chunk-67DIEA53.js.map +1 -0
  209. package/dist/{chunk-YS3AZQ2G.js → chunk-6HFAW2MH.js} +1 -1
  210. package/dist/chunk-6HFAW2MH.js.map +1 -0
  211. package/dist/{chunk-EY4NZKDR.js → chunk-6Y2TKCNY.js} +2 -2
  212. package/dist/{chunk-76WT3HOR.js → chunk-6YZOXFPQ.js} +25 -24
  213. package/dist/chunk-6YZOXFPQ.js.map +1 -0
  214. package/dist/{chunk-G5ZBFPNU.js → chunk-A2RQOJC7.js} +2 -2
  215. package/dist/{chunk-AUIR5O6W.js → chunk-AFSB6NKM.js} +13 -19
  216. package/dist/chunk-AFSB6NKM.js.map +1 -0
  217. package/dist/{chunk-JCXGZRMU.js → chunk-AO4JEOKD.js} +22 -23
  218. package/dist/chunk-AO4JEOKD.js.map +1 -0
  219. package/dist/{chunk-TAAPQVZN.js → chunk-AYELIQXR.js} +2 -2
  220. package/dist/{chunk-QMM6O4CD.js → chunk-BLHZW7DG.js} +15 -3
  221. package/dist/{chunk-QMM6O4CD.js.map → chunk-BLHZW7DG.js.map} +1 -1
  222. package/dist/{chunk-TQOBJYDP.js → chunk-CD4N74YC.js} +1 -1
  223. package/dist/chunk-CD4N74YC.js.map +1 -0
  224. package/dist/{chunk-ANLBCBDC.js → chunk-CGE2HBTH.js} +11 -11
  225. package/dist/chunk-CGE2HBTH.js.map +1 -0
  226. package/dist/{chunk-OFADUJWJ.js → chunk-CYYSQMLO.js} +5 -5
  227. package/dist/chunk-CYYSQMLO.js.map +1 -0
  228. package/dist/{chunk-66ALHVEX.js → chunk-EB46EYI7.js} +3 -3
  229. package/dist/{chunk-NZJKFF45.js → chunk-EKCDHWRK.js} +4 -4
  230. package/dist/chunk-EKCDHWRK.js.map +1 -0
  231. package/dist/{chunk-BABLDP24.js → chunk-EPQFNJU3.js} +152 -7
  232. package/dist/chunk-EPQFNJU3.js.map +1 -0
  233. package/dist/{chunk-OGWBVHB3.js → chunk-ESR6HGOY.js} +73 -14
  234. package/dist/chunk-ESR6HGOY.js.map +1 -0
  235. package/dist/{chunk-NBD3KUOZ.js → chunk-F6RP62H3.js} +150 -98
  236. package/dist/chunk-F6RP62H3.js.map +1 -0
  237. package/dist/chunk-FBYW3QDI.js +252 -0
  238. package/dist/chunk-FBYW3QDI.js.map +1 -0
  239. package/dist/{chunk-IPF7E66P.js → chunk-FYAODKVP.js} +2 -2
  240. package/dist/chunk-GNEN7NKO.js +908 -0
  241. package/dist/chunk-GNEN7NKO.js.map +1 -0
  242. package/dist/chunk-GWSM4KLB.js +763 -0
  243. package/dist/chunk-GWSM4KLB.js.map +1 -0
  244. package/dist/{chunk-4SO6JMZL.js → chunk-HDMXCUZL.js} +1 -1
  245. package/dist/chunk-HDMXCUZL.js.map +1 -0
  246. package/dist/{chunk-ZFY7U2FR.js → chunk-HJM5Y5NU.js} +43 -3
  247. package/dist/chunk-HJM5Y5NU.js.map +1 -0
  248. package/dist/{chunk-ZGDVUPTM.js → chunk-IOZ3VKPK.js} +129 -68
  249. package/dist/chunk-IOZ3VKPK.js.map +1 -0
  250. package/dist/{chunk-PYOE4VSI.js → chunk-IVXSVHO4.js} +303 -247
  251. package/dist/chunk-IVXSVHO4.js.map +1 -0
  252. package/dist/chunk-J3CWXIPV.js +242 -0
  253. package/dist/chunk-J3CWXIPV.js.map +1 -0
  254. package/dist/chunk-K6JQW266.js +42 -0
  255. package/dist/chunk-K6JQW266.js.map +1 -0
  256. package/dist/chunk-KMZYQF6Q.js +202 -0
  257. package/dist/chunk-KMZYQF6Q.js.map +1 -0
  258. package/dist/{chunk-JWOYLO27.js → chunk-LPPZDFTD.js} +22 -12
  259. package/dist/chunk-LPPZDFTD.js.map +1 -0
  260. package/dist/{chunk-PAYXCY6A.js → chunk-MYB2B5WX.js} +997 -576
  261. package/dist/chunk-MYB2B5WX.js.map +1 -0
  262. package/dist/chunk-MYKNINNN.js +228 -0
  263. package/dist/chunk-MYKNINNN.js.map +1 -0
  264. package/dist/chunk-NSQIRMVF.js +27 -0
  265. package/dist/{chunk-QCHIQWAJ.js.map → chunk-NSQIRMVF.js.map} +1 -1
  266. package/dist/chunk-NUDBM4MM.js +30 -0
  267. package/dist/chunk-NUDBM4MM.js.map +1 -0
  268. package/dist/chunk-NZMWWDAY.js +23 -0
  269. package/dist/chunk-NZMWWDAY.js.map +1 -0
  270. package/dist/{chunk-RNFE3ML2.js → chunk-OCUV2Y25.js} +4 -3
  271. package/dist/chunk-OCUV2Y25.js.map +1 -0
  272. package/dist/chunk-P4ZJOQA7.js +271 -0
  273. package/dist/chunk-P4ZJOQA7.js.map +1 -0
  274. package/dist/chunk-P6C5EZ3D.js +342 -0
  275. package/dist/chunk-P6C5EZ3D.js.map +1 -0
  276. package/dist/{chunk-CW6T36TN.js → chunk-PBD7BJUN.js} +62 -4
  277. package/dist/chunk-PBD7BJUN.js.map +1 -0
  278. package/dist/chunk-PBIUCQY3.js +696 -0
  279. package/dist/chunk-PBIUCQY3.js.map +1 -0
  280. package/dist/chunk-PD6YECQH.js +845 -0
  281. package/dist/chunk-PD6YECQH.js.map +1 -0
  282. package/dist/{chunk-M7IYCTJV.js → chunk-R4LFQGP3.js} +2 -2
  283. package/dist/chunk-RHJIGDUE.js +21 -0
  284. package/dist/chunk-RHJIGDUE.js.map +1 -0
  285. package/dist/{chunk-KP7MUZNX.js → chunk-RLXO27MW.js} +30 -8
  286. package/dist/chunk-RLXO27MW.js.map +1 -0
  287. package/dist/{chunk-DFNM3WX2.js → chunk-S44BEV4B.js} +168 -45
  288. package/dist/chunk-S44BEV4B.js.map +1 -0
  289. package/dist/chunk-S4S5N4BJ.js +1461 -0
  290. package/dist/chunk-S4S5N4BJ.js.map +1 -0
  291. package/dist/{chunk-BZ2SHDN2.js → chunk-SGTRAXXX.js} +3 -3
  292. package/dist/chunk-SGTRAXXX.js.map +1 -0
  293. package/dist/{chunk-M2RGJPXX.js → chunk-SJAE5PB5.js} +3 -3
  294. package/dist/{chunk-JGIWG6SR.js → chunk-SNPNHU3H.js} +3937 -1776
  295. package/dist/chunk-SNPNHU3H.js.map +1 -0
  296. package/dist/{chunk-IHVBV5C2.js → chunk-SOOBFXRR.js} +94 -71
  297. package/dist/chunk-SOOBFXRR.js.map +1 -0
  298. package/dist/{chunk-ZDTRWK5F.js → chunk-TAHFWKS6.js} +2 -2
  299. package/dist/chunk-UEFFTVPY.js +9 -0
  300. package/dist/chunk-UEFFTVPY.js.map +1 -0
  301. package/dist/{chunk-24VULZ7A.js → chunk-UR5BXLBP.js} +3 -3
  302. package/dist/chunk-UR5BXLBP.js.map +1 -0
  303. package/dist/{chunk-DMBALCE2.js → chunk-V2SBGVDO.js} +471 -186
  304. package/dist/chunk-V2SBGVDO.js.map +1 -0
  305. package/dist/chunk-VJLWD47W.js +23 -0
  306. package/dist/chunk-VJLWD47W.js.map +1 -0
  307. package/dist/{chunk-4CQAV7YB.js → chunk-W647DX5Z.js} +2 -2
  308. package/dist/{chunk-THATMZXD.js → chunk-WFIIU3YZ.js} +2 -2
  309. package/dist/{chunk-THATMZXD.js.map → chunk-WFIIU3YZ.js.map} +1 -1
  310. package/dist/chunk-YZDJMAKL.js +82 -0
  311. package/dist/chunk-YZDJMAKL.js.map +1 -0
  312. package/dist/{chunk-3TMODYZV.js → chunk-Z5XH6VHY.js} +5 -5
  313. package/dist/chunk-Z5XH6VHY.js.map +1 -0
  314. package/dist/{chunk-BE3HW4FY.js → chunk-ZBBMZMA6.js} +377 -170
  315. package/dist/chunk-ZBBMZMA6.js.map +1 -0
  316. package/dist/index.cjs +21224 -11714
  317. package/dist/index.cjs.map +1 -1
  318. package/dist/index.d.cts +195 -49
  319. package/dist/index.d.ts +195 -49
  320. package/dist/index.js +150 -74
  321. package/dist/index.js.map +1 -1
  322. package/dist/{ir-BMP7yxJJ.d.cts → ir-BSosEwc8.d.cts} +1 -1
  323. package/dist/{ir-DUOz6H-5.d.ts → ir-D-uqwL_4.d.ts} +1 -1
  324. package/dist/{module-B8CBqIZ_.d.cts → module-Ds4tarcI.d.cts} +230 -140
  325. package/dist/{module-k7m3txak.d.ts → module-Zd1Gn-Nj.d.ts} +230 -140
  326. package/package.json +20 -4
  327. package/dist/ModuleTag-C8FHY_sY.d.ts +0 -93
  328. package/dist/ModuleTag-EGbgBMpZ.d.cts +0 -93
  329. package/dist/Observability-COqEvp2C.d.cts +0 -713
  330. package/dist/Observability-cY4kLn0S.d.ts +0 -713
  331. package/dist/ReadQuery-BlMwhe-F.d.ts +0 -30
  332. package/dist/ReadQuery-CL5XlXts.d.cts +0 -30
  333. package/dist/ReadQuery-SinbStGF.d.cts +0 -38
  334. package/dist/ReadQuery-SinbStGF.d.ts +0 -38
  335. package/dist/chunk-24VULZ7A.js.map +0 -1
  336. package/dist/chunk-3QMIVH35.js +0 -43
  337. package/dist/chunk-3QMIVH35.js.map +0 -1
  338. package/dist/chunk-3TMODYZV.js.map +0 -1
  339. package/dist/chunk-4SO6JMZL.js.map +0 -1
  340. package/dist/chunk-76WT3HOR.js.map +0 -1
  341. package/dist/chunk-ANLBCBDC.js.map +0 -1
  342. package/dist/chunk-AUIR5O6W.js.map +0 -1
  343. package/dist/chunk-BABLDP24.js.map +0 -1
  344. package/dist/chunk-BE3HW4FY.js.map +0 -1
  345. package/dist/chunk-BZ2SHDN2.js.map +0 -1
  346. package/dist/chunk-CW6T36TN.js.map +0 -1
  347. package/dist/chunk-DFNM3WX2.js.map +0 -1
  348. package/dist/chunk-DMBALCE2.js.map +0 -1
  349. package/dist/chunk-EGK3KN7B.js +0 -406
  350. package/dist/chunk-EGK3KN7B.js.map +0 -1
  351. package/dist/chunk-GMPEOUP2.js.map +0 -1
  352. package/dist/chunk-IHVBV5C2.js.map +0 -1
  353. package/dist/chunk-JCXGZRMU.js.map +0 -1
  354. package/dist/chunk-JGIWG6SR.js.map +0 -1
  355. package/dist/chunk-JWOYLO27.js.map +0 -1
  356. package/dist/chunk-KIXAU3GM.js +0 -137
  357. package/dist/chunk-KIXAU3GM.js.map +0 -1
  358. package/dist/chunk-KL5ACTCT.js +0 -8
  359. package/dist/chunk-KL5ACTCT.js.map +0 -1
  360. package/dist/chunk-KP7MUZNX.js.map +0 -1
  361. package/dist/chunk-M3BFQ7HK.js +0 -13
  362. package/dist/chunk-M3BFQ7HK.js.map +0 -1
  363. package/dist/chunk-M3WTHJHJ.js.map +0 -1
  364. package/dist/chunk-NBD3KUOZ.js.map +0 -1
  365. package/dist/chunk-NQZ2OSGR.js +0 -151
  366. package/dist/chunk-NQZ2OSGR.js.map +0 -1
  367. package/dist/chunk-NZJKFF45.js.map +0 -1
  368. package/dist/chunk-OFADUJWJ.js.map +0 -1
  369. package/dist/chunk-OGWBVHB3.js.map +0 -1
  370. package/dist/chunk-PAYXCY6A.js.map +0 -1
  371. package/dist/chunk-PYOE4VSI.js.map +0 -1
  372. package/dist/chunk-QCHIQWAJ.js +0 -21
  373. package/dist/chunk-RNFE3ML2.js.map +0 -1
  374. package/dist/chunk-TKZ7MEIA.js +0 -27
  375. package/dist/chunk-TKZ7MEIA.js.map +0 -1
  376. package/dist/chunk-TQOBJYDP.js.map +0 -1
  377. package/dist/chunk-VZB726PE.js +0 -93
  378. package/dist/chunk-VZB726PE.js.map +0 -1
  379. package/dist/chunk-W3TEWHLO.js +0 -568
  380. package/dist/chunk-W3TEWHLO.js.map +0 -1
  381. package/dist/chunk-YS3AZQ2G.js.map +0 -1
  382. package/dist/chunk-ZFLHVFUC.js +0 -192
  383. package/dist/chunk-ZFLHVFUC.js.map +0 -1
  384. package/dist/chunk-ZFY7U2FR.js.map +0 -1
  385. package/dist/chunk-ZGDVUPTM.js.map +0 -1
  386. package/dist/protocol-g_1897M2.d.cts +0 -127
  387. package/dist/protocol-g_1897M2.d.ts +0 -127
  388. /package/dist/{chunk-3IYZ5IGG.js.map → chunk-5WKUGEBY.js.map} +0 -0
  389. /package/dist/{chunk-3RMKLXHX.js.map → chunk-63ZQ5RIN.js.map} +0 -0
  390. /package/dist/{chunk-EY4NZKDR.js.map → chunk-6Y2TKCNY.js.map} +0 -0
  391. /package/dist/{chunk-G5ZBFPNU.js.map → chunk-A2RQOJC7.js.map} +0 -0
  392. /package/dist/{chunk-TAAPQVZN.js.map → chunk-AYELIQXR.js.map} +0 -0
  393. /package/dist/{chunk-66ALHVEX.js.map → chunk-EB46EYI7.js.map} +0 -0
  394. /package/dist/{chunk-IPF7E66P.js.map → chunk-FYAODKVP.js.map} +0 -0
  395. /package/dist/{chunk-M7IYCTJV.js.map → chunk-R4LFQGP3.js.map} +0 -0
  396. /package/dist/{chunk-M2RGJPXX.js.map → chunk-SJAE5PB5.js.map} +0 -0
  397. /package/dist/{chunk-ZDTRWK5F.js.map → chunk-TAHFWKS6.js.map} +0 -0
  398. /package/dist/{chunk-4CQAV7YB.js.map → chunk-W647DX5Z.js.map} +0 -0
@@ -4,6 +4,7 @@ var normalizePatchReason = (reason) => {
4
4
  case "reducer":
5
5
  case "trait-computed":
6
6
  case "trait-link":
7
+ case "trait-external-store":
7
8
  case "source-refresh":
8
9
  case "devtools":
9
10
  case "perf":
@@ -56,6 +57,17 @@ var isPrefixOf = (prefix, full) => {
56
57
  }
57
58
  return true;
58
59
  };
60
+ var toKey = (path) => {
61
+ let key = "";
62
+ for (let i = 0; i < path.length; i++) {
63
+ if (i > 0) key += "|";
64
+ const seg = path[i];
65
+ key += seg.length;
66
+ key += ":";
67
+ key += seg;
68
+ }
69
+ return key;
70
+ };
59
71
  var makeFieldPathIdRegistry = (fieldPaths) => {
60
72
  const root = { children: /* @__PURE__ */ new Map() };
61
73
  const pathStringToId = /* @__PURE__ */ new Map();
@@ -108,20 +120,75 @@ var hashFieldPathIds = (ids) => {
108
120
  }
109
121
  return hash >>> 0;
110
122
  };
123
+ var makeDirtyAllSet = (reason) => ({
124
+ dirtyAll: true,
125
+ reason,
126
+ rootIds: [],
127
+ rootCount: 0,
128
+ keySize: 0,
129
+ keyHash: 0
130
+ });
131
+ var buildSpecificDirtySetFromIds = (ids, fieldPathsById) => {
132
+ const sorted = Array.from(ids);
133
+ sorted.sort((a, b) => {
134
+ const ap = fieldPathsById[a];
135
+ const bp = fieldPathsById[b];
136
+ const cmp = compareFieldPath(ap, bp);
137
+ return cmp !== 0 ? cmp : a - b;
138
+ });
139
+ const rootIds = [];
140
+ let prev;
141
+ for (let i = 0; i < sorted.length; i++) {
142
+ const id = sorted[i];
143
+ const path = fieldPathsById[id];
144
+ if (prev && isPrefixOf(prev, path)) continue;
145
+ rootIds.push(id);
146
+ prev = path;
147
+ }
148
+ if (rootIds.length === 0) {
149
+ return makeDirtyAllSet("unknownWrite");
150
+ }
151
+ rootIds.sort((a, b) => a - b);
152
+ const keyHash = hashFieldPathIds(rootIds);
153
+ return {
154
+ dirtyAll: false,
155
+ rootIds,
156
+ rootCount: rootIds.length,
157
+ keySize: rootIds.length,
158
+ keyHash
159
+ };
160
+ };
161
+ var buildSpecificDirtySetFromIdsShallowFast = (ids) => {
162
+ const sorted = Array.from(ids);
163
+ sorted.sort((a, b) => a - b);
164
+ const rootIds = [];
165
+ let prev;
166
+ for (let i = 0; i < sorted.length; i++) {
167
+ const id = sorted[i];
168
+ if (prev === id) continue;
169
+ rootIds.push(id);
170
+ prev = id;
171
+ }
172
+ if (rootIds.length === 0) {
173
+ return makeDirtyAllSet("unknownWrite");
174
+ }
175
+ const keyHash = hashFieldPathIds(rootIds);
176
+ return {
177
+ dirtyAll: false,
178
+ rootIds,
179
+ rootCount: rootIds.length,
180
+ keySize: rootIds.length,
181
+ keyHash
182
+ };
183
+ };
111
184
  var dirtyPathsToRootIds = (options) => {
112
185
  if (options.dirtyAllReason) {
113
- return {
114
- dirtyAll: true,
115
- reason: options.dirtyAllReason,
116
- rootIds: [],
117
- rootCount: 0,
118
- keySize: 0,
119
- keyHash: 0
120
- };
186
+ return makeDirtyAllSet(options.dirtyAllReason);
121
187
  }
122
188
  let sawStar = false;
123
189
  let hasInvalid = false;
124
190
  let missing = false;
191
+ let allShallow = true;
125
192
  const ids = [];
126
193
  for (const raw of options.dirtyPaths ?? []) {
127
194
  if (raw === "*") {
@@ -138,16 +205,23 @@ var dirtyPathsToRootIds = (options) => {
138
205
  hasInvalid = true;
139
206
  continue;
140
207
  }
141
- if (!options.registry.fieldPaths[id2]) {
208
+ const fieldPath = options.registry.fieldPaths[id2];
209
+ if (!fieldPath) {
142
210
  missing = true;
143
211
  continue;
144
212
  }
213
+ if (allShallow && fieldPath.length !== 1) {
214
+ allShallow = false;
215
+ }
145
216
  ids.push(id2);
146
217
  continue;
147
218
  }
148
219
  if (typeof raw === "string") {
149
220
  const direct = options.registry.pathStringToId?.get(raw);
150
221
  if (direct != null) {
222
+ if (allShallow && options.registry.fieldPaths[direct]?.length !== 1) {
223
+ allShallow = false;
224
+ }
151
225
  ids.push(direct);
152
226
  continue;
153
227
  }
@@ -164,76 +238,24 @@ var dirtyPathsToRootIds = (options) => {
164
238
  missing = true;
165
239
  continue;
166
240
  }
241
+ if (allShallow && options.registry.fieldPaths[id]?.length !== 1) {
242
+ allShallow = false;
243
+ }
167
244
  ids.push(id);
168
245
  }
169
246
  if (hasInvalid) {
170
- return {
171
- dirtyAll: true,
172
- reason: "nonTrackablePatch",
173
- rootIds: [],
174
- rootCount: 0,
175
- keySize: 0,
176
- keyHash: 0
177
- };
247
+ return makeDirtyAllSet("nonTrackablePatch");
178
248
  }
179
249
  if (missing) {
180
- return {
181
- dirtyAll: true,
182
- reason: "fallbackPolicy",
183
- rootIds: [],
184
- rootCount: 0,
185
- keySize: 0,
186
- keyHash: 0
187
- };
250
+ return makeDirtyAllSet("fallbackPolicy");
188
251
  }
189
252
  if (sawStar) {
190
- return {
191
- dirtyAll: true,
192
- reason: "unknownWrite",
193
- rootIds: [],
194
- rootCount: 0,
195
- keySize: 0,
196
- keyHash: 0
197
- };
253
+ return makeDirtyAllSet("unknownWrite");
198
254
  }
199
- const fieldPathsById = options.registry.fieldPaths;
200
- ids.sort((a, b) => {
201
- const ap = fieldPathsById[a];
202
- const bp = fieldPathsById[b];
203
- if (!ap || !bp) return a - b;
204
- const cmp = compareFieldPath(ap, bp);
205
- return cmp !== 0 ? cmp : a - b;
206
- });
207
- const rootIds = [];
208
- let prev;
209
- for (let i = 0; i < ids.length; i++) {
210
- const id = ids[i];
211
- const path = fieldPathsById[id];
212
- if (!path) continue;
213
- if (prev && isPrefixOf(prev, path)) continue;
214
- rootIds.push(id);
215
- prev = path;
216
- }
217
- const hasSpecific = rootIds.length > 0;
218
- if (!hasSpecific) {
219
- return {
220
- dirtyAll: true,
221
- reason: "unknownWrite",
222
- rootIds: [],
223
- rootCount: 0,
224
- keySize: 0,
225
- keyHash: 0
226
- };
255
+ if (allShallow) {
256
+ return buildSpecificDirtySetFromIdsShallowFast(ids);
227
257
  }
228
- rootIds.sort((a, b) => a - b);
229
- const keyHash = hashFieldPathIds(rootIds);
230
- return {
231
- dirtyAll: false,
232
- rootIds,
233
- rootCount: rootIds.length,
234
- keySize: rootIds.length,
235
- keyHash
236
- };
258
+ return buildSpecificDirtySetFromIds(ids, options.registry.fieldPaths);
237
259
  };
238
260
  var splitSegments = (path) => {
239
261
  if (!path) return void 0;
@@ -272,8 +294,9 @@ export {
272
294
  normalizeFieldPath,
273
295
  compareFieldPath,
274
296
  isPrefixOf,
297
+ toKey,
275
298
  makeFieldPathIdRegistry,
276
299
  getFieldPathId,
277
300
  dirtyPathsToRootIds
278
301
  };
279
- //# sourceMappingURL=chunk-IHVBV5C2.js.map
302
+ //# sourceMappingURL=chunk-SOOBFXRR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/field-path.ts"],"sourcesContent":["export type FieldPath = ReadonlyArray<string>\nexport type FieldPathId = number\n\nexport type DirtyAllReason = 'unknownWrite' | 'customMutation' | 'nonTrackablePatch' | 'fallbackPolicy'\n\nexport type PatchReason =\n | 'reducer'\n | 'trait-computed'\n | 'trait-link'\n | 'trait-external-store'\n | 'source-refresh'\n | 'devtools'\n | 'perf'\n | 'unknown'\n\nexport const normalizePatchReason = (reason: unknown): PatchReason => {\n switch (reason) {\n case 'reducer':\n case 'trait-computed':\n case 'trait-link':\n case 'trait-external-store':\n case 'source-refresh':\n case 'devtools':\n case 'perf':\n case 'unknown':\n return reason\n default:\n return typeof reason === 'string' && reason.startsWith('source:') ? 'source-refresh' : 'unknown'\n }\n}\n\nexport interface DirtySet {\n readonly dirtyAll: boolean\n /**\n * When dirtyAll=true, a stable reason code must be provided; when dirtyAll=false, it should be omitted.\n */\n readonly reason?: DirtyAllReason\n /**\n * FieldPathId (Static IR table index).\n * - When dirtyAll=true, must be an empty array;\n * - When dirtyAll=false, roots are deduped / prefix-free / stably sorted.\n */\n readonly rootIds: ReadonlyArray<FieldPathId>\n readonly rootCount: number\n readonly keySize: number\n readonly keyHash: number\n /**\n * Optional: mark when the output is TopK-truncated (light/full).\n * Note: truncation does not affect the definition of keyHash/keySize/rootCount (they still refer to full roots).\n */\n readonly rootIdsTruncated?: boolean\n}\n\ninterface FieldPathTrieNode {\n id?: FieldPathId\n children: Map<string, FieldPathTrieNode>\n}\n\nexport interface FieldPathIdRegistry {\n readonly fieldPaths: ReadonlyArray<FieldPath>\n readonly root: FieldPathTrieNode\n /**\n * Fast path: direct lookup for common string inputs (e.g. 'a.b').\n *\n * Note: This map is only safe for \"dot-separated\" paths. If a schema key itself contains '.',\n * it is ambiguous with nested paths and should not rely on string-path APIs.\n */\n readonly pathStringToId?: ReadonlyMap<string, FieldPathId>\n}\n\nexport const isFieldPathSegment = (seg: string): boolean => {\n if (!seg) return false\n if (seg === '*') return false\n if (/^\\d+$/.test(seg)) return false\n if (seg.includes('[') || seg.includes(']')) return false\n return true\n}\n\nexport const normalizeFieldPath = (input: string | FieldPath): FieldPath | undefined => {\n if (typeof input === 'string') {\n const segs = splitSegments(input)\n if (!segs || segs.length === 0) return undefined\n const normalized = segs.filter(isFieldPathSegment)\n return normalized.length > 0 ? normalized : undefined\n }\n\n if (input.length === 0) return undefined\n\n let needsFilter = false\n for (const seg of input) {\n if (!isFieldPathSegment(seg)) {\n needsFilter = true\n break\n }\n }\n\n if (!needsFilter) return input\n\n const normalized = input.filter(isFieldPathSegment)\n return normalized.length > 0 ? normalized : undefined\n}\n\nexport const compareFieldPath = (a: FieldPath, b: FieldPath): number => {\n const len = Math.min(a.length, b.length)\n for (let i = 0; i < len; i++) {\n const as = a[i]!\n const bs = b[i]!\n if (as === bs) continue\n return as < bs ? -1 : 1\n }\n return a.length - b.length\n}\n\nexport const isPrefixOf = (prefix: FieldPath, full: FieldPath): boolean => {\n if (prefix.length > full.length) return false\n for (let i = 0; i < prefix.length; i++) {\n if (prefix[i] !== full[i]) return false\n }\n return true\n}\n\nexport const toKey = (path: FieldPath): string => {\n let key = ''\n for (let i = 0; i < path.length; i++) {\n if (i > 0) key += '|'\n const seg = path[i]!\n key += seg.length\n key += ':'\n key += seg\n }\n return key\n}\n\nexport const toPathString = (path: FieldPath): string => path.join('.')\n\nexport const canonicalizeRoots = (roots: Iterable<FieldPath>): ReadonlyArray<FieldPath> => {\n const byKey = new Map<string, FieldPath>()\n for (const root of roots) {\n const key = toKey(root)\n if (!byKey.has(key)) byKey.set(key, root)\n }\n\n const sorted = Array.from(byKey.values()).sort(compareFieldPath)\n const out: Array<FieldPath> = []\n for (const next of sorted) {\n const prev = out[out.length - 1]\n if (prev && isPrefixOf(prev, next)) {\n continue\n }\n out.push(next)\n }\n return out\n}\n\nexport const canonicalizeRootsFast = (roots: Iterable<FieldPath>): ReadonlyArray<FieldPath> => {\n const sorted = Array.from(roots).sort(compareFieldPath)\n const out: Array<FieldPath> = []\n for (const next of sorted) {\n const prev = out[out.length - 1]\n if (prev && isPrefixOf(prev, next)) continue\n out.push(next)\n }\n return out\n}\n\nexport const makeFieldPathIdRegistry = (fieldPaths: ReadonlyArray<FieldPath>): FieldPathIdRegistry => {\n const root: FieldPathTrieNode = { children: new Map() }\n const pathStringToId = new Map<string, FieldPathId>()\n const ambiguousPathStrings = new Set<string>()\n\n for (let id = 0; id < fieldPaths.length; id++) {\n const path = fieldPaths[id]!\n let node = root\n for (const seg of path) {\n const children = node.children\n let next = children.get(seg)\n if (!next) {\n next = { children: new Map() }\n children.set(seg, next)\n }\n node = next\n }\n node.id = id\n\n if (path.length > 0 && path.some((seg) => seg.includes('.'))) {\n const key = path.join('.')\n ambiguousPathStrings.add(key)\n pathStringToId.delete(key)\n }\n\n if (path.length > 0 && path.every((seg) => !seg.includes('.') && !seg.includes('[') && !seg.includes(']'))) {\n const key = path.join('.')\n if (ambiguousPathStrings.has(key)) continue\n if (pathStringToId.has(key)) {\n ambiguousPathStrings.add(key)\n pathStringToId.delete(key)\n continue\n }\n pathStringToId.set(key, id)\n }\n }\n\n return { fieldPaths, root, pathStringToId }\n}\n\nexport const getFieldPathId = (registry: FieldPathIdRegistry, path: FieldPath): FieldPathId | undefined => {\n let node = registry.root\n for (const seg of path) {\n const next = node.children.get(seg)\n if (!next) return undefined\n node = next\n }\n return node.id\n}\n\nexport const getFieldPathIdFromString = (registry: FieldPathIdRegistry, path: string): FieldPathId | undefined => {\n if (!path || path === '*') return undefined\n const normalized = normalizeFieldPath(path)\n if (!normalized) return undefined\n return getFieldPathId(registry, normalized)\n}\n\nexport const hashFieldPathIds = (ids: ReadonlyArray<number>): number => {\n // FNV-1a (32-bit)\n let hash = 2166136261 >>> 0\n for (const id of ids) {\n hash ^= id >>> 0\n hash = Math.imul(hash, 16777619)\n }\n return hash >>> 0\n}\n\nconst makeDirtyAllSet = (reason: DirtyAllReason): DirtySet => ({\n dirtyAll: true,\n reason,\n rootIds: [],\n rootCount: 0,\n keySize: 0,\n keyHash: 0,\n})\n\nconst buildSpecificDirtySetFromIds = (\n ids: ReadonlyArray<number>,\n fieldPathsById: ReadonlyArray<FieldPath>,\n): DirtySet => {\n const sorted = Array.from(ids)\n sorted.sort((a, b) => {\n const ap = fieldPathsById[a]\n const bp = fieldPathsById[b]\n const cmp = compareFieldPath(ap!, bp!)\n return cmp !== 0 ? cmp : a - b\n })\n\n const rootIds: Array<number> = []\n let prev: FieldPath | undefined\n for (let i = 0; i < sorted.length; i++) {\n const id = sorted[i]!\n const path = fieldPathsById[id]!\n if (prev && isPrefixOf(prev, path)) continue\n rootIds.push(id)\n prev = path\n }\n\n if (rootIds.length === 0) {\n return makeDirtyAllSet('unknownWrite')\n }\n\n rootIds.sort((a, b) => a - b)\n const keyHash = hashFieldPathIds(rootIds)\n return {\n dirtyAll: false,\n rootIds,\n rootCount: rootIds.length,\n keySize: rootIds.length,\n keyHash,\n }\n}\n\nconst buildSpecificDirtySetFromIdsShallowFast = (ids: ReadonlyArray<number>): DirtySet => {\n // Fast path: if all dirty paths are single-segment (no structural prefixes possible),\n // roots are just the unique ids in numeric order.\n const sorted = Array.from(ids)\n sorted.sort((a, b) => a - b)\n\n const rootIds: Array<number> = []\n let prev: number | undefined\n for (let i = 0; i < sorted.length; i++) {\n const id = sorted[i]!\n if (prev === id) continue\n rootIds.push(id)\n prev = id\n }\n\n if (rootIds.length === 0) {\n return makeDirtyAllSet('unknownWrite')\n }\n\n const keyHash = hashFieldPathIds(rootIds)\n return {\n dirtyAll: false,\n rootIds,\n rootCount: rootIds.length,\n keySize: rootIds.length,\n keyHash,\n }\n}\n\nexport const dirtyPathIdsToRootIds = (options: {\n readonly dirtyPathIds?: Iterable<FieldPathId>\n readonly registry: FieldPathIdRegistry\n readonly dirtyAllReason?: DirtyAllReason\n}): DirtySet => {\n if (options.dirtyAllReason) {\n return makeDirtyAllSet(options.dirtyAllReason)\n }\n\n let hasInvalid = false\n let missing = false\n let allShallow = true\n const ids: Array<number> = []\n\n for (const raw of options.dirtyPathIds ?? []) {\n if (!Number.isFinite(raw)) {\n hasInvalid = true\n continue\n }\n const id = Math.floor(raw)\n if (id < 0) {\n hasInvalid = true\n continue\n }\n const fieldPath = options.registry.fieldPaths[id]\n if (!fieldPath) {\n missing = true\n continue\n }\n if (allShallow && fieldPath.length !== 1) {\n allShallow = false\n }\n ids.push(id)\n }\n\n if (hasInvalid) {\n return makeDirtyAllSet('nonTrackablePatch')\n }\n\n if (missing) {\n return makeDirtyAllSet('fallbackPolicy')\n }\n\n if (allShallow) {\n return buildSpecificDirtySetFromIdsShallowFast(ids)\n }\n\n return buildSpecificDirtySetFromIds(ids, options.registry.fieldPaths)\n}\n\nexport const dirtyPathsToRootIds = (options: {\n readonly dirtyPaths?: Iterable<string | FieldPath | FieldPathId>\n readonly registry: FieldPathIdRegistry\n readonly dirtyAllReason?: DirtyAllReason\n}): DirtySet => {\n if (options.dirtyAllReason) {\n return makeDirtyAllSet(options.dirtyAllReason)\n }\n\n let sawStar = false\n let hasInvalid = false\n let missing = false\n let allShallow = true\n\n const ids: Array<number> = []\n for (const raw of options.dirtyPaths ?? []) {\n if (raw === '*') {\n sawStar = true\n continue\n }\n\n if (typeof raw === 'number') {\n if (!Number.isFinite(raw)) {\n hasInvalid = true\n continue\n }\n const id = Math.floor(raw)\n if (id < 0) {\n hasInvalid = true\n continue\n }\n const fieldPath = options.registry.fieldPaths[id]\n if (!fieldPath) {\n missing = true\n continue\n }\n if (allShallow && fieldPath.length !== 1) {\n allShallow = false\n }\n ids.push(id)\n continue\n }\n\n if (typeof raw === 'string') {\n const direct = options.registry.pathStringToId?.get(raw)\n if (direct != null) {\n if (allShallow && options.registry.fieldPaths[direct]?.length !== 1) {\n allShallow = false\n }\n ids.push(direct)\n continue\n }\n\n // String path is treated as dot-separated boundary input only.\n // If it cannot be mapped directly, it is considered ambiguous/unmappable.\n missing = true\n continue\n }\n\n const normalized = normalizeFieldPath(raw)\n if (!normalized) {\n hasInvalid = true\n continue\n }\n\n const id = getFieldPathId(options.registry, normalized)\n if (id == null) {\n missing = true\n continue\n }\n if (allShallow && options.registry.fieldPaths[id]?.length !== 1) {\n allShallow = false\n }\n ids.push(id)\n }\n\n if (hasInvalid) {\n return makeDirtyAllSet('nonTrackablePatch')\n }\n\n if (missing) {\n return makeDirtyAllSet('fallbackPolicy')\n }\n\n // Any non-trackable write must explicitly degrade (do not \"ignore *\" when roots exist).\n if (sawStar) {\n return makeDirtyAllSet('unknownWrite')\n }\n\n if (allShallow) {\n return buildSpecificDirtySetFromIdsShallowFast(ids)\n }\n\n return buildSpecificDirtySetFromIds(ids, options.registry.fieldPaths)\n}\n\nconst splitSegments = (path: string): Array<string> | undefined => {\n if (!path) return undefined\n if (path === '*') return undefined\n\n const parts = path.split('.').filter((p) => p.length > 0)\n const segs: Array<string> = []\n\n for (const part of parts) {\n if (!part) continue\n if (part === '*') {\n return undefined\n }\n if (part.endsWith('[]')) {\n const base = part.slice(0, -2)\n if (base) segs.push(base)\n continue\n }\n const bracket = /^(.+)\\[(\\d+)\\]$/.exec(part)\n if (bracket) {\n segs.push(bracket[1]!)\n continue\n }\n if (/^\\d+$/.test(part)) {\n continue\n }\n if (part.includes('[') || part.includes(']')) {\n return undefined\n }\n segs.push(part)\n }\n\n return segs\n}\n"],"mappings":"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","names":["normalized","id"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Tag
3
- } from "./chunk-KL5ACTCT.js";
3
+ } from "./chunk-UEFFTVPY.js";
4
4
  import {
5
5
  __export
6
6
  } from "./chunk-PZ5AY32C.js";
@@ -37,4 +37,4 @@ export {
37
37
  defaultLayer,
38
38
  Platform_exports
39
39
  };
40
- //# sourceMappingURL=chunk-ZDTRWK5F.js.map
40
+ //# sourceMappingURL=chunk-TAHFWKS6.js.map
@@ -0,0 +1,9 @@
1
+ // src/internal/runtime/core/Platform.ts
2
+ import { ServiceMap } from "effect";
3
+ var Tag = class extends ServiceMap.Service()("@logixjs/Platform") {
4
+ };
5
+
6
+ export {
7
+ Tag
8
+ };
9
+ //# sourceMappingURL=chunk-UEFFTVPY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/runtime/core/Platform.ts"],"sourcesContent":["import { Effect, ServiceMap } from 'effect'\n\nexport interface Service {\n readonly lifecycle: {\n readonly onSuspend: (eff: Effect.Effect<void, never, any>) => Effect.Effect<void, never, any>\n readonly onResume: (eff: Effect.Effect<void, never, any>) => Effect.Effect<void, never, any>\n readonly onReset?: (eff: Effect.Effect<void, never, any>) => Effect.Effect<void, never, any>\n }\n\n /**\n * Platform signal broadcaster (for host integration and tests): triggers registered lifecycle handlers.\n *\n * Notes:\n * - The default implementation should be a safe no-op.\n * - Failure policy is decided by the platform implementation; the runtime should ensure \"do not terminate the instance by default\".\n */\n readonly emitSuspend: () => Effect.Effect<void, never, any>\n readonly emitResume: () => Effect.Effect<void, never, any>\n readonly emitReset: () => Effect.Effect<void, never, any>\n}\n\nexport class Tag extends ServiceMap.Service<Tag, Service>()('@logixjs/Platform') {}\n"],"mappings":";AAAA,SAAiB,kBAAkB;AAqB5B,IAAM,MAAN,cAAkB,WAAW,QAAsB,EAAE,mBAAmB,EAAE;AAAC;","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  CutoverCoverageMatrix,
3
3
  RuntimeServiceBuiltinsTag,
4
4
  evaluateFullCutoverGate
5
- } from "./chunk-KP7MUZNX.js";
5
+ } from "./chunk-RLXO27MW.js";
6
6
  import {
7
7
  FullCutoverGateModeTag,
8
8
  KernelImplementationRefTag,
@@ -12,7 +12,7 @@ import {
12
12
  getKernelImplementationRef,
13
13
  getRuntimeServicesEvidence,
14
14
  isKernelImplementationRef
15
- } from "./chunk-ZGDVUPTM.js";
15
+ } from "./chunk-IOZ3VKPK.js";
16
16
  import {
17
17
  __export
18
18
  } from "./chunk-PZ5AY32C.js";
@@ -73,4 +73,4 @@ export {
73
73
  isKernelFullyActivated,
74
74
  Kernel_exports
75
75
  };
76
- //# sourceMappingURL=chunk-24VULZ7A.js.map
76
+ //# sourceMappingURL=chunk-UR5BXLBP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Kernel.ts"],"sourcesContent":["import { Layer } from 'effect'\nimport type { Layer as LayerType } from 'effect'\nimport type * as Debug from './Debug.js'\nimport * as FullCutoverGate from './internal/runtime/core/FullCutoverGate.js'\nimport * as RuntimeKernel from './internal/runtime/core/RuntimeKernel.js'\nimport * as KernelRef from './internal/runtime/core/KernelRef.js'\nexport type { RuntimeServiceBuiltins } from './internal/runtime/core/RuntimeServiceBuiltins.js'\nexport { RuntimeServiceBuiltinsTag } from './internal/runtime/core/RuntimeServiceBuiltins.js'\n\nexport type KernelId = KernelRef.KernelId\n\nexport interface KernelImplementationRef extends KernelRef.KernelImplementationRef {}\n\nexport const defaultKernelImplementationRef = KernelRef.defaultKernelImplementationRef\n\nexport const isKernelImplementationRef = KernelRef.isKernelImplementationRef\n\nexport type RuntimeServiceOverride = RuntimeKernel.RuntimeServiceOverride\nexport type RuntimeServicesOverrides = RuntimeKernel.RuntimeServicesOverrides\nexport type RuntimeServiceBinding = RuntimeKernel.RuntimeServiceBinding\nexport type RuntimeServicesEvidence = RuntimeKernel.RuntimeServicesEvidence\n\nexport type RuntimeServiceImpl<Service> = RuntimeKernel.RuntimeServiceImpl<Service>\nexport type RuntimeServicesRegistry = RuntimeKernel.RuntimeServicesRegistry\n\nexport type CutoverCoverageMatrix = FullCutoverGate.CutoverCoverageMatrix\n\nexport const CutoverCoverageMatrix = FullCutoverGate.CutoverCoverageMatrix\n\nexport type FullCutoverGateMode = FullCutoverGate.FullCutoverGateMode\n\nexport type FullCutoverGateReason = FullCutoverGate.FullCutoverGateReason\n\nexport type FullCutoverGateAnchor = FullCutoverGate.FullCutoverGateAnchor\n\nexport type FullCutoverGateVerdict = FullCutoverGate.FullCutoverGateVerdict\n\nexport type FullCutoverGateResult = FullCutoverGate.FullCutoverGateResult\n\nexport const evaluateFullCutoverGate = (args: {\n readonly mode: FullCutoverGateMode\n readonly requestedKernelId: KernelId\n readonly runtimeServicesEvidence: RuntimeServicesEvidence\n readonly coverageMatrix?: CutoverCoverageMatrix\n readonly diagnosticsLevel?: Debug.DiagnosticsLevel\n}): FullCutoverGateResult => {\n return FullCutoverGate.evaluateFullCutoverGate({\n mode: args.mode,\n requestedKernelId: args.requestedKernelId,\n runtimeServicesEvidence: args.runtimeServicesEvidence,\n coverageMatrix: args.coverageMatrix,\n diagnosticsLevel: args.diagnosticsLevel,\n })\n}\n\nexport interface KernelContractMetaAllowlistItem {\n readonly metaKey: string\n readonly reason?: string\n}\n\nexport const KernelContractMetaAllowlist = [] as const satisfies ReadonlyArray<KernelContractMetaAllowlistItem>\n\n/**\n * kernelLayer:\n * - Declares the requested kernel family in the current runtime tree.\n * - This does not prove full activation; fallback/mix is decided by RuntimeServicesEvidence.\n */\nexport const kernelLayer = (ref: KernelImplementationRef): LayerType.Layer<any, never, never> =>\n Layer.succeed(KernelRef.KernelImplementationRefTag, ref) as LayerType.Layer<any, never, never>\n\n/**\n * runtimeDefaultServicesOverridesLayer:\n * - Provides `runtime_default` scope `serviceId -> implId` overrides during ManagedRuntime assembly.\n * - Does not set servicesByModuleId by default (do not use moduleId as the default kernel selection granularity).\n */\nexport const runtimeDefaultServicesOverridesLayer = (\n services: RuntimeServicesOverrides,\n): LayerType.Layer<any, never, never> =>\n Layer.succeed(RuntimeKernel.RuntimeServicesRuntimeConfigTag, {\n services,\n }) as LayerType.Layer<any, never, never>\n\n/**\n * getRuntimeServicesEvidence:\n * - Reads RuntimeServicesEvidence installed on a ModuleRuntime (serviceId -> implId evidence).\n * - Public entry to avoid importing from `src/internal`.\n */\nexport const getRuntimeServicesEvidence = RuntimeKernel.getRuntimeServicesEvidence\n\n/**\n * getKernelImplementationRef:\n * - Reads KernelImplementationRef installed on a ModuleRuntime (requested kernel family).\n */\nexport const getKernelImplementationRef = KernelRef.getKernelImplementationRef\n\n/**\n * runtimeServicesRegistryLayer:\n * - Injects additional `serviceId -> impls` during runtime assembly (e.g. implementations provided by core-ng).\n */\nexport const runtimeServicesRegistryLayer = (registry: RuntimeServicesRegistry): LayerType.Layer<any, never, never> =>\n Layer.succeed(RuntimeKernel.RuntimeServicesRegistryTag, registry) as LayerType.Layer<any, never, never>\n\n/**\n * fullCutoverGateModeLayer:\n * - Controls cutover gate evaluation mode during runtime assembly (trial/fullCutover).\n * - Default is fullCutover; trial-run/comparison may override to trial explicitly.\n */\nexport const fullCutoverGateModeLayer = (mode: FullCutoverGateMode): LayerType.Layer<any, never, never> =>\n Layer.succeed(RuntimeKernel.FullCutoverGateModeTag, mode) as LayerType.Layer<any, never, never>\n\n/**\n * isKernelFullyActivated:\n * - Minimal verdict for \"full cutover\": no fallbacks are allowed.\n */\nexport const isKernelFullyActivated = (evidence: RuntimeServicesEvidence): boolean =>\n !evidence.overridesApplied.some((s) => s.includes('fallback='))\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,+BAAAA;AAAA,EAAA;AAAA;AAAA,wCAAAC;AAAA,EAAA,+BAAAC;AAAA,EAAA;AAAA,oCAAAC;AAAA,EAAA,kCAAAC;AAAA,EAAA;AAAA,mCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,SAAS,aAAa;AAaf,IAAMC,kCAA2C;AAEjD,IAAMC,6BAAsC;AAY5C,IAAMC,yBAAwC;AAY9C,IAAMC,2BAA0B,CAAC,SAMX;AAC3B,SAAuB,wBAAwB;AAAA,IAC7C,MAAM,KAAK;AAAA,IACX,mBAAmB,KAAK;AAAA,IACxB,yBAAyB,KAAK;AAAA,IAC9B,gBAAgB,KAAK;AAAA,IACrB,kBAAkB,KAAK;AAAA,EACzB,CAAC;AACH;AAOO,IAAM,8BAA8B,CAAC;AAOrC,IAAM,cAAc,CAAC,QAC1B,MAAM,QAAkB,4BAA4B,GAAG;AAOlD,IAAM,uCAAuC,CAClD,aAEA,MAAM,QAAsB,iCAAiC;AAAA,EAC3D;AACF,CAAC;AAOI,IAAMC,8BAA2C;AAMjD,IAAMC,8BAAuC;AAM7C,IAAM,+BAA+B,CAAC,aAC3C,MAAM,QAAsB,4BAA4B,QAAQ;AAO3D,IAAM,2BAA2B,CAAC,SACvC,MAAM,QAAsB,wBAAwB,IAAI;AAMnD,IAAM,yBAAyB,CAAC,aACrC,CAAC,SAAS,iBAAiB,KAAK,CAAC,MAAM,EAAE,SAAS,WAAW,CAAC;","names":["CutoverCoverageMatrix","defaultKernelImplementationRef","evaluateFullCutoverGate","getKernelImplementationRef","getRuntimeServicesEvidence","isKernelImplementationRef","defaultKernelImplementationRef","isKernelImplementationRef","CutoverCoverageMatrix","evaluateFullCutoverGate","getRuntimeServicesEvidence","getKernelImplementationRef"]}