unspaghettit 0.1.7 → 0.1.8

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 (293) hide show
  1. package/README.md +2 -0
  2. package/build/client/_app/immutable/chunks/{BiHfqo9Y.js → 8V0Jan-K.js} +1 -1
  3. package/build/client/_app/immutable/chunks/8V0Jan-K.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/8V0Jan-K.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{D9BWIMZD.js → B5jHfatx.js} +1 -1
  6. package/build/client/_app/immutable/chunks/B5jHfatx.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/B5jHfatx.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/BZCGqXF-.js +1 -0
  9. package/build/client/_app/immutable/chunks/BZCGqXF-.js.br +2 -0
  10. package/build/client/_app/immutable/chunks/BZCGqXF-.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{gQ3oD_Dm.js → BpZHquM3.js} +1 -1
  12. package/build/client/_app/immutable/chunks/BpZHquM3.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/BpZHquM3.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{CDgx1pP22.js → BsIqn_3K2.js} +1 -1
  15. package/build/client/_app/immutable/chunks/BsIqn_3K2.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BsIqn_3K2.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/BxAqshUk.js +1 -0
  18. package/build/client/_app/immutable/chunks/BxAqshUk.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/BxAqshUk.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{Buny4Lxq.js → ByNzXSTs.js} +1 -1
  21. package/build/client/_app/immutable/chunks/ByNzXSTs.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/ByNzXSTs.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{Dv09pO87.js → C0OSZ2OV.js} +1 -1
  24. package/build/client/_app/immutable/chunks/C0OSZ2OV.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/C0OSZ2OV.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{B-lvxr_Y.js → C2XQCtR3.js} +1 -1
  27. package/build/client/_app/immutable/chunks/C2XQCtR3.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/C2XQCtR3.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{-s9hRK72.js → C8VYoO28.js} +1 -1
  30. package/build/client/_app/immutable/chunks/C8VYoO28.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/C8VYoO28.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{lHLL3RmT.js → CiC9AlkQ.js} +1 -1
  33. package/build/client/_app/immutable/chunks/CiC9AlkQ.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/CiC9AlkQ.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/{DHnrY7Sb.js → DGo7EzwK.js} +1 -1
  36. package/build/client/_app/immutable/chunks/DGo7EzwK.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/DGo7EzwK.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/{BY81EmU42.js → DOrHTzKX2.js} +1 -1
  39. package/build/client/_app/immutable/chunks/DOrHTzKX2.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/DOrHTzKX2.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/{Q8pmKDJe.js → DZ7_iXX8.js} +1 -1
  42. package/build/client/_app/immutable/chunks/DZ7_iXX8.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/DZ7_iXX8.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/{CvxLPre7.js → DayeafKd.js} +1 -1
  45. package/build/client/_app/immutable/chunks/DayeafKd.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/DayeafKd.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/{BTLTzKaZ.js → DsHardz9.js} +1 -1
  48. package/build/client/_app/immutable/chunks/DsHardz9.js.br +1 -0
  49. package/build/client/_app/immutable/chunks/DsHardz9.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/{DC_h2his.js → lYfEZr7V.js} +1 -1
  51. package/build/client/_app/immutable/chunks/lYfEZr7V.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/lYfEZr7V.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/{1_r1S7Ly.js → nx-Rqoe9.js} +1 -1
  54. package/build/client/_app/immutable/chunks/nx-Rqoe9.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/nx-Rqoe9.js.gz +0 -0
  56. package/build/client/_app/immutable/entry/{app.DdaNJvmo.js → app.CBQ5lc4C.js} +2 -2
  57. package/build/client/_app/immutable/entry/app.CBQ5lc4C.js.br +0 -0
  58. package/build/client/_app/immutable/entry/app.CBQ5lc4C.js.gz +0 -0
  59. package/build/client/_app/immutable/entry/start.CwosiFCq.js +1 -0
  60. package/build/client/_app/immutable/entry/start.CwosiFCq.js.br +0 -0
  61. package/build/client/_app/immutable/entry/start.CwosiFCq.js.gz +0 -0
  62. package/build/client/_app/immutable/nodes/{0.C1BTEwKm.js → 0.CrNDTsZU.js} +1 -1
  63. package/build/client/_app/immutable/nodes/0.CrNDTsZU.js.br +0 -0
  64. package/build/client/_app/immutable/nodes/0.CrNDTsZU.js.gz +0 -0
  65. package/build/client/_app/immutable/nodes/{1.C3Ve_ouq.js → 1.DIhR9Se9.js} +1 -1
  66. package/build/client/_app/immutable/nodes/1.DIhR9Se9.js.br +0 -0
  67. package/build/client/_app/immutable/nodes/1.DIhR9Se9.js.gz +0 -0
  68. package/build/client/_app/immutable/nodes/{2.CRcsCTzc.js → 2.Cxe9W2ys.js} +1 -1
  69. package/build/client/_app/immutable/nodes/2.Cxe9W2ys.js.br +0 -0
  70. package/build/client/_app/immutable/nodes/2.Cxe9W2ys.js.gz +0 -0
  71. package/build/client/_app/immutable/nodes/{3.rv7UrHHg.js → 3.Db_qGhZh.js} +1 -1
  72. package/build/client/_app/immutable/nodes/3.Db_qGhZh.js.br +0 -0
  73. package/build/client/_app/immutable/nodes/3.Db_qGhZh.js.gz +0 -0
  74. package/build/client/_app/immutable/nodes/{4.Cev4WT4u.js → 4.CNlfoebz.js} +1 -1
  75. package/build/client/_app/immutable/nodes/4.CNlfoebz.js.br +0 -0
  76. package/build/client/_app/immutable/nodes/4.CNlfoebz.js.gz +0 -0
  77. package/build/client/_app/immutable/nodes/5.52vWUOmx.js +5 -0
  78. package/build/client/_app/immutable/nodes/5.52vWUOmx.js.br +0 -0
  79. package/build/client/_app/immutable/nodes/5.52vWUOmx.js.gz +0 -0
  80. package/build/client/_app/immutable/nodes/{6.DCJwg-TV.js → 6.DEa_tOGv.js} +1 -1
  81. package/build/client/_app/immutable/nodes/6.DEa_tOGv.js.br +0 -0
  82. package/build/client/_app/immutable/nodes/6.DEa_tOGv.js.gz +0 -0
  83. package/build/client/_app/immutable/nodes/{7.BFdt4Nqg.js → 7.Bj0xztLC.js} +1 -1
  84. package/build/client/_app/immutable/nodes/7.Bj0xztLC.js.br +0 -0
  85. package/build/client/_app/immutable/nodes/7.Bj0xztLC.js.gz +0 -0
  86. package/build/client/_app/immutable/nodes/{8.aFYV9MSb.js → 8.l6ZO_YE3.js} +1 -1
  87. package/build/client/_app/immutable/nodes/8.l6ZO_YE3.js.br +0 -0
  88. package/build/client/_app/immutable/nodes/8.l6ZO_YE3.js.gz +0 -0
  89. package/build/client/_app/version.json +1 -1
  90. package/build/client/_app/version.json.br +0 -0
  91. package/build/client/_app/version.json.gz +0 -0
  92. package/build/server/chunks/{0-XDHB9lbZ.js → 0-BpC7BfBT.js} +3 -3
  93. package/build/server/chunks/{0-XDHB9lbZ.js.map → 0-BpC7BfBT.js.map} +1 -1
  94. package/build/server/chunks/1-58bNZ9nH.js +9 -0
  95. package/build/server/chunks/{1-BM_rl7Bx.js.map → 1-58bNZ9nH.js.map} +1 -1
  96. package/build/server/chunks/2-DF_NN0lE.js +9 -0
  97. package/build/server/chunks/2-DF_NN0lE.js.map +1 -0
  98. package/build/server/chunks/3-NRtKEkC_.js +16 -0
  99. package/build/server/chunks/{3-B3Ro5GyH.js.map → 3-NRtKEkC_.js.map} +1 -1
  100. package/build/server/chunks/4-MZJkDNx2.js +9 -0
  101. package/build/server/chunks/{4-cj58VJgj.js.map → 4-MZJkDNx2.js.map} +1 -1
  102. package/build/server/chunks/5-Lq13lWK3.js +9 -0
  103. package/build/server/chunks/{5-BW_j9O5v.js.map → 5-Lq13lWK3.js.map} +1 -1
  104. package/build/server/chunks/6-DqZ3Anew.js +9 -0
  105. package/build/server/chunks/{6-Bj0uWvDK.js.map → 6-DqZ3Anew.js.map} +1 -1
  106. package/build/server/chunks/7-BOAHc6Hs.js +9 -0
  107. package/build/server/chunks/{7-DiKTsjh1.js.map → 7-BOAHc6Hs.js.map} +1 -1
  108. package/build/server/chunks/8-DBHj3VAe.js +9 -0
  109. package/build/server/chunks/{8-CZiwFSj3.js.map → 8-DBHj3VAe.js.map} +1 -1
  110. package/build/server/chunks/{FeatureCard-gVIYCpot.js → FeatureCard-CDB0iQEO.js} +2 -2
  111. package/build/server/chunks/{FeatureCard-gVIYCpot.js.map → FeatureCard-CDB0iQEO.js.map} +1 -1
  112. package/build/server/chunks/{FeatureValidator-BcY63x9D.js → FeatureValidator-DDdFIzr8.js} +56 -4
  113. package/build/server/chunks/FeatureValidator-DDdFIzr8.js.map +1 -0
  114. package/build/server/chunks/{ManageTagsDialog-DO6XplIb.js → ManageTagsDialog-CT8-t_GJ.js} +2 -2
  115. package/build/server/chunks/{ManageTagsDialog-DO6XplIb.js.map → ManageTagsDialog-CT8-t_GJ.js.map} +1 -1
  116. package/build/server/chunks/{ProjectsIndex-Boeoj8Zh.js → ProjectsIndex-yg-CEhxx.js} +7 -7
  117. package/build/server/chunks/{ProjectsIndex-Boeoj8Zh.js.map → ProjectsIndex-yg-CEhxx.js.map} +1 -1
  118. package/build/server/chunks/{TagDotStrip-BR9Owgav.js → TagDotStrip-K9ispK6D.js} +2 -2
  119. package/build/server/chunks/{TagDotStrip-BR9Owgav.js.map → TagDotStrip-K9ispK6D.js.map} +1 -1
  120. package/build/server/chunks/{TagFilterSelect-5EaFX5CY.js → TagFilterSelect-BlEttqQE.js} +2 -2
  121. package/build/server/chunks/{TagFilterSelect-5EaFX5CY.js.map → TagFilterSelect-BlEttqQE.js.map} +1 -1
  122. package/build/server/chunks/{_layout.svelte-BV7JjoXo.js → _layout.svelte-D2SACu8G.js} +7 -7
  123. package/build/server/chunks/{_layout.svelte-BV7JjoXo.js.map → _layout.svelte-D2SACu8G.js.map} +1 -1
  124. package/build/server/chunks/{_page.svelte-BSo9Np-N.js → _page.svelte-BUfFGiJQ.js} +11 -11
  125. package/build/server/chunks/{_page.svelte-BSo9Np-N.js.map → _page.svelte-BUfFGiJQ.js.map} +1 -1
  126. package/build/server/chunks/{_page.svelte-DDOUOH7d.js → _page.svelte-C2jPZylo.js} +11 -11
  127. package/build/server/chunks/{_page.svelte-DDOUOH7d.js.map → _page.svelte-C2jPZylo.js.map} +1 -1
  128. package/build/server/chunks/{_page.svelte-D4bCUYdF.js → _page.svelte-C3FIXVWr.js} +10 -10
  129. package/build/server/chunks/{_page.svelte-D4bCUYdF.js.map → _page.svelte-C3FIXVWr.js.map} +1 -1
  130. package/build/server/chunks/{_page.svelte-D-CofieG.js → _page.svelte-CsqELhKQ.js} +10 -10
  131. package/build/server/chunks/{_page.svelte-D-CofieG.js.map → _page.svelte-CsqELhKQ.js.map} +1 -1
  132. package/build/server/chunks/{_page.svelte-B0w194rX.js → _page.svelte-DYOnk7iP.js} +5 -5
  133. package/build/server/chunks/{_page.svelte-B0w194rX.js.map → _page.svelte-DYOnk7iP.js.map} +1 -1
  134. package/build/server/chunks/{_page.svelte-PO6PTc2Z.js → _page.svelte-Dbu42LbU.js} +5 -5
  135. package/build/server/chunks/{_page.svelte-PO6PTc2Z.js.map → _page.svelte-Dbu42LbU.js.map} +1 -1
  136. package/build/server/chunks/{_page.svelte-AXKie8xV.js → _page.svelte-bbz79XAC.js} +8 -8
  137. package/build/server/chunks/{_page.svelte-AXKie8xV.js.map → _page.svelte-bbz79XAC.js.map} +1 -1
  138. package/build/server/chunks/{_server.ts-DG5OCqvO.js → _server.ts-B80OMNjj.js} +3 -3
  139. package/build/server/chunks/{_server.ts-DG5OCqvO.js.map → _server.ts-B80OMNjj.js.map} +1 -1
  140. package/build/server/chunks/{_server.ts-C_4ug89F.js → _server.ts-BaT7ADxX.js} +4 -4
  141. package/build/server/chunks/{_server.ts-C_4ug89F.js.map → _server.ts-BaT7ADxX.js.map} +1 -1
  142. package/build/server/chunks/{_server.ts-CzrUSRs3.js → _server.ts-Bnpe4TIM.js} +2 -2
  143. package/build/server/chunks/{_server.ts-CzrUSRs3.js.map → _server.ts-Bnpe4TIM.js.map} +1 -1
  144. package/build/server/chunks/{_server.ts-B3vd_taO.js → _server.ts-Bs4QqmRJ.js} +4 -4
  145. package/build/server/chunks/{_server.ts-B3vd_taO.js.map → _server.ts-Bs4QqmRJ.js.map} +1 -1
  146. package/build/server/chunks/{_server.ts-96Zq9H2j.js → _server.ts-CMPK37Vt.js} +2 -2
  147. package/build/server/chunks/{_server.ts-96Zq9H2j.js.map → _server.ts-CMPK37Vt.js.map} +1 -1
  148. package/build/server/chunks/{_server.ts-Dz_KfmPw.js → _server.ts-CagU2lG4.js} +5 -5
  149. package/build/server/chunks/{_server.ts-Dz_KfmPw.js.map → _server.ts-CagU2lG4.js.map} +1 -1
  150. package/build/server/chunks/{_server.ts-C7c3v6sB.js → _server.ts-DDtoQw0L.js} +2 -2
  151. package/build/server/chunks/{_server.ts-C7c3v6sB.js.map → _server.ts-DDtoQw0L.js.map} +1 -1
  152. package/build/server/chunks/{_server.ts-DYI7zGy6.js → _server.ts-DZi40j_b.js} +2 -2
  153. package/build/server/chunks/{_server.ts-DYI7zGy6.js.map → _server.ts-DZi40j_b.js.map} +1 -1
  154. package/build/server/chunks/{_server.ts-DHMUKVg3.js → _server.ts-FARjojeH.js} +2 -2
  155. package/build/server/chunks/{_server.ts-DHMUKVg3.js.map → _server.ts-FARjojeH.js.map} +1 -1
  156. package/build/server/chunks/{_server.ts-BRlHKXzL.js → _server.ts-RzdFK98M.js} +2 -2
  157. package/build/server/chunks/{_server.ts-BRlHKXzL.js.map → _server.ts-RzdFK98M.js.map} +1 -1
  158. package/build/server/chunks/{_server.ts-das509Hg.js → _server.ts-efMdTu3p.js} +2 -2
  159. package/build/server/chunks/{_server.ts-das509Hg.js.map → _server.ts-efMdTu3p.js.map} +1 -1
  160. package/build/server/chunks/{_server.ts-D0xxTo-S.js → _server.ts-y0yINgGA.js} +4 -4
  161. package/build/server/chunks/{_server.ts-D0xxTo-S.js.map → _server.ts-y0yINgGA.js.map} +1 -1
  162. package/build/server/chunks/{browserContainer-Cx0w0pZx.js → browserContainer-D4Rbh5md.js} +10 -9
  163. package/build/server/chunks/browserContainer-D4Rbh5md.js.map +1 -0
  164. package/build/server/chunks/{client-f1rhU0pP.js → client-DzD76Kll.js} +2 -2
  165. package/build/server/chunks/{client-f1rhU0pP.js.map → client-DzD76Kll.js.map} +1 -1
  166. package/build/server/chunks/{error.svelte-Sw2nazu6.js → error.svelte-BYvfCaDL.js} +4 -4
  167. package/build/server/chunks/{error.svelte-Sw2nazu6.js.map → error.svelte-BYvfCaDL.js.map} +1 -1
  168. package/build/server/chunks/{featuresStore.svelte-B-f41QwP.js → featuresStore.svelte-C5UcVnjA.js} +3 -3
  169. package/build/server/chunks/{featuresStore.svelte-B-f41QwP.js.map → featuresStore.svelte-C5UcVnjA.js.map} +1 -1
  170. package/build/server/chunks/{internal-cdqLNkR1.js → internal-BA0a_nCh.js} +2 -2
  171. package/build/server/chunks/{internal-cdqLNkR1.js.map → internal-BA0a_nCh.js.map} +1 -1
  172. package/build/server/chunks/{projectsStore.svelte-C2Swf2Gc.js → projectsStore.svelte-CCIKC4cA.js} +2 -2
  173. package/build/server/chunks/{projectsStore.svelte-C2Swf2Gc.js.map → projectsStore.svelte-CCIKC4cA.js.map} +1 -1
  174. package/build/server/chunks/{reconcile-BIZjLR73.js → reconcile-CYtw0vAj.js} +3 -3
  175. package/build/server/chunks/{reconcile-BIZjLR73.js.map → reconcile-CYtw0vAj.js.map} +1 -1
  176. package/build/server/chunks/{snapshotRepository-DoWj6ZGG.js → snapshotRepository-D04sCQ0-.js} +4 -4
  177. package/build/server/chunks/snapshotRepository-D04sCQ0-.js.map +1 -0
  178. package/build/server/chunks/{state-CxL934Yr.js → state-BVel4q-J.js} +2 -2
  179. package/build/server/chunks/{state-CxL934Yr.js.map → state-BVel4q-J.js.map} +1 -1
  180. package/build/server/chunks/{sync-1tNFVUfQ.js → sync-BFBTG9bE.js} +2 -2
  181. package/build/server/chunks/{sync-1tNFVUfQ.js.map → sync-BFBTG9bE.js.map} +1 -1
  182. package/build/server/chunks/{syncBridge-BQDytwK1.js → syncBridge-B90NwG8R.js} +2 -2
  183. package/build/server/chunks/{syncBridge-BQDytwK1.js.map → syncBridge-B90NwG8R.js.map} +1 -1
  184. package/build/server/chunks/{tourStore.svelte-ExebiCB4.js → tourStore.svelte-C2hizkdG.js} +2 -2
  185. package/build/server/chunks/{tourStore.svelte-ExebiCB4.js.map → tourStore.svelte-C2hizkdG.js.map} +1 -1
  186. package/build/server/index.js +1 -1
  187. package/build/server/index.js.map +1 -1
  188. package/build/server/manifest.js +22 -22
  189. package/build/server/manifest.js.map +1 -1
  190. package/mcp-server/resources/guide.ts +6 -4
  191. package/mcp-server/resources/operations.ts +9 -3
  192. package/mcp-server/server.ts +5 -1
  193. package/mcp-server/tools/_entity_builders.ts +44 -2
  194. package/mcp-server/tools/batch.ts +1266 -1217
  195. package/mcp-server/tools/behavioralIndex.ts +193 -193
  196. package/mcp-server/tools/parameter.ts +179 -172
  197. package/mcp-server/tools/scenario.ts +19 -4
  198. package/mcp-server/tools/state.ts +165 -156
  199. package/mcp-server/tools/valueSet.ts +95 -0
  200. package/package.json +1 -1
  201. package/src/features/behavior-model/domain/entities/Feature.ts +60 -51
  202. package/src/features/behavior-model/domain/entities/Parameter.ts +40 -34
  203. package/src/features/behavior-model/domain/entities/Scenario.ts +109 -67
  204. package/src/features/behavior-model/domain/entities/StateDefinition.ts +8 -1
  205. package/src/features/behavior-model/domain/entities/ValueSet.ts +16 -0
  206. package/src/features/behavior-model/domain/services/EnumValues.ts +27 -0
  207. package/src/features/behavior-model/domain/services/FeatureTransforms.ts +1003 -984
  208. package/src/features/behavior-model/domain/services/FeatureValidator.ts +918 -815
  209. package/src/features/behavior-model/domain/services/ParameterValidator.ts +12 -8
  210. package/src/features/behavior-model/domain/value-objects/ids.ts +35 -33
  211. package/src/features/behavior-model/infrastructure/persistence/InMemoryFeatureRepository.ts +37 -37
  212. package/src/features/behavior-model/infrastructure/persistence/JsonFolderFeatureRepository.ts +1 -1
  213. package/src/features/domains/infrastructure/persistence/InMemoryDomainRepository.ts +1 -1
  214. package/src/features/domains/infrastructure/persistence/JsonFolderDomainRepository.ts +1 -1
  215. package/src/features/mcp-tools/application/tools/generateTypes.ts +254 -250
  216. package/src/features/projects/infrastructure/persistence/InMemoryProjectRepository.ts +33 -33
  217. package/src/features/projects/infrastructure/persistence/JsonFolderProjectRepository.ts +1 -1
  218. package/src/features/simulator/application/use-cases/RunScenarios.ts +449 -310
  219. package/src/features/simulator/domain/SimulatorEngine.ts +324 -320
  220. package/build/client/_app/immutable/chunks/-s9hRK72.js.br +0 -0
  221. package/build/client/_app/immutable/chunks/-s9hRK72.js.gz +0 -0
  222. package/build/client/_app/immutable/chunks/1_r1S7Ly.js.br +0 -0
  223. package/build/client/_app/immutable/chunks/1_r1S7Ly.js.gz +0 -0
  224. package/build/client/_app/immutable/chunks/B-lvxr_Y.js.br +0 -0
  225. package/build/client/_app/immutable/chunks/B-lvxr_Y.js.gz +0 -0
  226. package/build/client/_app/immutable/chunks/B4Mul34I.js +0 -1
  227. package/build/client/_app/immutable/chunks/B4Mul34I.js.br +0 -2
  228. package/build/client/_app/immutable/chunks/B4Mul34I.js.gz +0 -0
  229. package/build/client/_app/immutable/chunks/BTLTzKaZ.js.br +0 -1
  230. package/build/client/_app/immutable/chunks/BTLTzKaZ.js.gz +0 -0
  231. package/build/client/_app/immutable/chunks/BY81EmU42.js.br +0 -0
  232. package/build/client/_app/immutable/chunks/BY81EmU42.js.gz +0 -0
  233. package/build/client/_app/immutable/chunks/BiHfqo9Y.js.br +0 -0
  234. package/build/client/_app/immutable/chunks/BiHfqo9Y.js.gz +0 -0
  235. package/build/client/_app/immutable/chunks/Buny4Lxq.js.br +0 -0
  236. package/build/client/_app/immutable/chunks/Buny4Lxq.js.gz +0 -0
  237. package/build/client/_app/immutable/chunks/CDgx1pP22.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/CDgx1pP22.js.gz +0 -0
  239. package/build/client/_app/immutable/chunks/CvxLPre7.js.br +0 -0
  240. package/build/client/_app/immutable/chunks/CvxLPre7.js.gz +0 -0
  241. package/build/client/_app/immutable/chunks/D9BWIMZD.js.br +0 -0
  242. package/build/client/_app/immutable/chunks/D9BWIMZD.js.gz +0 -0
  243. package/build/client/_app/immutable/chunks/DC_h2his.js.br +0 -0
  244. package/build/client/_app/immutable/chunks/DC_h2his.js.gz +0 -0
  245. package/build/client/_app/immutable/chunks/DHnrY7Sb.js.br +0 -0
  246. package/build/client/_app/immutable/chunks/DHnrY7Sb.js.gz +0 -0
  247. package/build/client/_app/immutable/chunks/Dv09pO87.js.br +0 -0
  248. package/build/client/_app/immutable/chunks/Dv09pO87.js.gz +0 -0
  249. package/build/client/_app/immutable/chunks/K3JxBPSQ.js +0 -1
  250. package/build/client/_app/immutable/chunks/K3JxBPSQ.js.br +0 -0
  251. package/build/client/_app/immutable/chunks/K3JxBPSQ.js.gz +0 -0
  252. package/build/client/_app/immutable/chunks/Q8pmKDJe.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/Q8pmKDJe.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/gQ3oD_Dm.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/gQ3oD_Dm.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/lHLL3RmT.js.br +0 -0
  257. package/build/client/_app/immutable/chunks/lHLL3RmT.js.gz +0 -0
  258. package/build/client/_app/immutable/entry/app.DdaNJvmo.js.br +0 -0
  259. package/build/client/_app/immutable/entry/app.DdaNJvmo.js.gz +0 -0
  260. package/build/client/_app/immutable/entry/start.Cu21IWs-.js +0 -1
  261. package/build/client/_app/immutable/entry/start.Cu21IWs-.js.br +0 -0
  262. package/build/client/_app/immutable/entry/start.Cu21IWs-.js.gz +0 -0
  263. package/build/client/_app/immutable/nodes/0.C1BTEwKm.js.br +0 -0
  264. package/build/client/_app/immutable/nodes/0.C1BTEwKm.js.gz +0 -0
  265. package/build/client/_app/immutable/nodes/1.C3Ve_ouq.js.br +0 -0
  266. package/build/client/_app/immutable/nodes/1.C3Ve_ouq.js.gz +0 -0
  267. package/build/client/_app/immutable/nodes/2.CRcsCTzc.js.br +0 -0
  268. package/build/client/_app/immutable/nodes/2.CRcsCTzc.js.gz +0 -0
  269. package/build/client/_app/immutable/nodes/3.rv7UrHHg.js.br +0 -0
  270. package/build/client/_app/immutable/nodes/3.rv7UrHHg.js.gz +0 -0
  271. package/build/client/_app/immutable/nodes/4.Cev4WT4u.js.br +0 -0
  272. package/build/client/_app/immutable/nodes/4.Cev4WT4u.js.gz +0 -0
  273. package/build/client/_app/immutable/nodes/5.0DKVfFv2.js +0 -5
  274. package/build/client/_app/immutable/nodes/5.0DKVfFv2.js.br +0 -0
  275. package/build/client/_app/immutable/nodes/5.0DKVfFv2.js.gz +0 -0
  276. package/build/client/_app/immutable/nodes/6.DCJwg-TV.js.br +0 -0
  277. package/build/client/_app/immutable/nodes/6.DCJwg-TV.js.gz +0 -0
  278. package/build/client/_app/immutable/nodes/7.BFdt4Nqg.js.br +0 -0
  279. package/build/client/_app/immutable/nodes/7.BFdt4Nqg.js.gz +0 -0
  280. package/build/client/_app/immutable/nodes/8.aFYV9MSb.js.br +0 -0
  281. package/build/client/_app/immutable/nodes/8.aFYV9MSb.js.gz +0 -0
  282. package/build/server/chunks/1-BM_rl7Bx.js +0 -9
  283. package/build/server/chunks/2-DmFhuHKK.js +0 -9
  284. package/build/server/chunks/2-DmFhuHKK.js.map +0 -1
  285. package/build/server/chunks/3-B3Ro5GyH.js +0 -16
  286. package/build/server/chunks/4-cj58VJgj.js +0 -9
  287. package/build/server/chunks/5-BW_j9O5v.js +0 -9
  288. package/build/server/chunks/6-Bj0uWvDK.js +0 -9
  289. package/build/server/chunks/7-DiKTsjh1.js +0 -9
  290. package/build/server/chunks/8-CZiwFSj3.js +0 -9
  291. package/build/server/chunks/FeatureValidator-BcY63x9D.js.map +0 -1
  292. package/build/server/chunks/browserContainer-Cx0w0pZx.js.map +0 -1
  293. package/build/server/chunks/snapshotRepository-DoWj6ZGG.js.map +0 -1
package/README.md CHANGED
@@ -99,6 +99,8 @@ Two complementary uses of the same scenarios:
99
99
  - **Spec self-test (always on).** `run_all_scenarios` checks that the spec is internally consistent: every scenario's expected outcome matches what the simulator computes from the rules. Catches contradictions in product logic before a line of code is written.
100
100
  - **Code-vs-spec test (preview).** `unspa scenarios export <featureId>` generates a Vitest file from those same scenarios, using the simulator's predictions as the oracle. You write one thin adapter (`UnspaAdapter` from `unspaghettit/cli/scenarios`) that calls your real implementation; the generated tests drive every scenario through it and assert state path-by-path. Experimental — adapter contract may shift between minor versions.
101
101
 
102
+ Scenarios can be **multi-step**: a scenario's `steps[]` replays preceding actions (each through the simulator, threading state forward) before the action under test, so `run_all_scenarios` verifies whole flows — add to cart → apply coupon → checkout — not just single transitions.
103
+
102
104
  Specs stop being documentation. They become a runtime contract you can break loudly.
103
105
 
104
106
  ## Core capabilities
@@ -1,2 +1,2 @@
1
- import{D as e,F as t,H as n,J as r,L as i,O as a,P as o,X as s,Y as ee,a as c,ft as l,j as u,k as d,ot as f,st as p,tt as m,u as h,v as g}from"./DF6QYH3p.js";import"./xihTtKlq.js";import{t as te}from"./gQ3oD_Dm.js";import{t as ne}from"./BQQLoxQo.js";var _=u(`<a class="block"><p class="line-clamp-3 text-sm leading-6 text-slate-600"> </p></a>`),v=u(`<p class="text-sm leading-6 text-slate-500">No description yet. Open this feature to shape its behavior model.</p>`),re=u(`<span class="px-1">/</span>`),ie=u(`<span class="text-red-600"> </span> <!>`,1),ae=u(`<span class="text-amber-700"> </span>`),y=u(`<span class="text-emerald-700">All checks pass</span>`),b=u(`<button type="button"> </button>`),oe=u(`<article class="group relative flex h-full min-h-52 flex-col justify-between overflow-hidden rounded-xl border border-cyan-100 bg-white p-5 shadow-sm shadow-cyan-950/5 transition duration-150 hover:-translate-y-0.5 hover:border-cyan-200 hover:bg-cyan-50/20 hover:shadow-md hover:shadow-cyan-950/10 focus-within:border-cyan-300"><div></div> <div class="space-y-4"><div class="flex items-start justify-between gap-3"><a class="block min-w-0 flex-1"><h3 class="truncate text-base font-semibold text-slate-950 group-hover:text-brand-800"> </h3></a> <div class="flex shrink-0 flex-col items-end gap-1"><span><span class="text-[9px] font-semibold uppercase tracking-wide opacity-70">Mat</span> <span class="tabular-nums"> </span></span> <span><span class="text-[9px] font-semibold uppercase tracking-wide opacity-70">Impl</span> <span class="tabular-nums"> </span></span></div></div> <!> <!> <div class="space-y-2"><!> <div class="text-xs text-slate-500"><!> <!> <!></div></div></div> <div class="mt-5 flex items-center justify-between gap-3 border-t border-hairline pt-3 text-xs text-slate-500"><span class="min-w-0 flex-1 truncate"> </span> <div class="flex shrink-0 items-center gap-1"><!> <button type="button" class="rounded px-2 py-1 text-slate-400 opacity-0 transition group-hover:opacity-100 group-focus-within:opacity-100 hover:bg-red-50 hover:text-red-600"> </button></div></div></article>`);function x(o,u){p(u,!0);let x=c(u,`tagTypeOptions`,19,()=>[]),se=c(u,`deleteLabel`,3,`Delete`),S=c(u,`queued`,3,!1),C=e=>e>=80?`bg-emerald-50 text-emerald-700 border-emerald-200`:e>=50?`bg-amber-50 text-amber-800 border-amber-200`:`bg-red-50 text-red-700 border-red-200`,ce=m(()=>C(u.summary.maturityPercentage)),le=m(()=>u.summary.implementationPercentage===null||!u.summary.implementationHasReport?`bg-slate-50 text-slate-500 border-slate-200`:C(u.summary.implementationPercentage)),w=m(()=>u.summary.implementationPercentage===null?`-`:u.summary.implementationHasReport?`${u.summary.implementationPercentage}%`:`-`),T=m(()=>u.summary.implementationPercentage===null?`No taggable entities yet (actions, events, rules...)`:u.summary.implementationHasReport?`Implementation coverage: ${u.summary.implementationFoundCount} of ${u.summary.implementationExpectedCount} expected tags found in code`:`No .unspa.json report yet. Run report_implementation_status_batch to populate.`),E=m(()=>u.summary.maturityPercentage>=80?`from-emerald-400 via-brand-mint to-brand-500`:u.summary.maturityPercentage>=50?`from-amber-400 via-brand-ochre to-brand-peach`:`from-red-400 via-brand-coral to-brand-pink`);var D=oe(),O=r(D),k=s(O,2),A=r(k),j=r(A),M=r(j),ue=r(M,!0);l(M),l(j);var N=s(j,2),P=r(N),F=s(r(P),2),I=r(F);l(F),l(P);var L=s(P,2),R=s(r(L),2),z=r(R,!0);l(R),l(L),l(N),l(A);var B=s(A,2),V=e=>{var t=_(),i=r(t),o=r(i,!0);l(i),l(t),n(()=>{h(t,`href`,`/features/${u.summary.id}`),a(o,u.summary.description)}),d(e,t)},H=e=>{d(e,v())};e(B,e=>{u.summary.description?e(V):e(H,-1)});var U=s(B,2);te(U,{get tags(){return u.summary.tags},get onAddTag(){return u.onAddTag},get onRemoveTag(){return u.onRemoveTag},get typeOptions(){return x()}});var W=s(U,2),G=r(W);ne(G,{get percentage(){return u.summary.maturityPercentage},size:`sm`,get ariaLabel(){return`Maturity ${u.summary.maturityPercentage??``}%`}});var K=s(G,2),q=r(K),de=t=>{var i=ie(),o=ee(i),c=r(o);l(o);var f=s(o,2),p=e=>{d(e,re())};e(f,e=>{u.summary.recommendedIssueCount>0&&e(p)}),n(()=>a(c,`${u.summary.criticalIssueCount??``} critical`)),d(t,i)};e(q,e=>{u.summary.criticalIssueCount>0&&e(de)});var J=s(q,2),fe=e=>{var t=ae(),i=r(t);l(t),n(()=>a(i,`${u.summary.recommendedIssueCount??``} recommended`)),d(e,t)};e(J,e=>{u.summary.recommendedIssueCount>0&&e(fe)});var pe=s(J,2),me=e=>{d(e,y())};e(pe,e=>{u.summary.criticalIssueCount===0&&u.summary.recommendedIssueCount===0&&e(me)}),l(K),l(W),l(k);var Y=s(k,2),X=r(Y),he=r(X);l(X);var Z=s(X,2),Q=r(Z),ge=e=>{var i=b(),o=r(i,!0);l(i),n(()=>{g(i,1,`rounded px-2 py-1 transition ${S()?`font-medium text-brand-700 opacity-100 hover:bg-cyan-50 hover:text-brand-900`:`text-slate-400 opacity-0 hover:bg-cyan-50 hover:text-brand-800 group-hover:opacity-100 group-focus-within:opacity-100`}`),h(i,`title`,S()?`In implementation queue (click to remove)`:`Add to implementation queue`),a(o,S()?`✓ queued`:`+ queue`)}),t(`click`,i,function(...e){(S()?u.onRemoveFromQueue:u.onAddToQueue)?.apply(this,e)}),d(e,i)};e(Q,e=>{(u.onAddToQueue||u.onRemoveFromQueue)&&e(ge)});var $=s(Q,2),_e=r($,!0);l($),l(Z),l(Y),l(D),n(e=>{g(O,1,`absolute inset-x-0 top-0 h-1 bg-linear-to-r ${i(E)??``}`),h(j,`href`,`/features/${u.summary.id}`),a(ue,u.summary.name),g(P,1,`inline-flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-medium ${i(ce)??``}`),h(P,`title`,`Maturity score: how complete this feature's behavior model is (${u.summary.maturityPercentage??``}% of spec quality checks pass)`),a(I,`${u.summary.maturityPercentage??``}%`),g(L,1,`inline-flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-medium ${i(le)??``}`),h(L,`title`,i(T)),a(z,i(w)),a(he,`${u.summary.surfaceCount??``} surface${u.summary.surfaceCount===1?``:`s`} / ${u.summary.actionCount??``}
1
+ import{D as e,F as t,H as n,J as r,L as i,O as a,P as o,X as s,Y as ee,a as c,ft as l,j as u,k as d,ot as f,st as p,tt as m,u as h,v as g}from"./DF6QYH3p.js";import"./xihTtKlq.js";import{t as te}from"./BpZHquM3.js";import{t as ne}from"./BQQLoxQo.js";var _=u(`<a class="block"><p class="line-clamp-3 text-sm leading-6 text-slate-600"> </p></a>`),v=u(`<p class="text-sm leading-6 text-slate-500">No description yet. Open this feature to shape its behavior model.</p>`),re=u(`<span class="px-1">/</span>`),ie=u(`<span class="text-red-600"> </span> <!>`,1),ae=u(`<span class="text-amber-700"> </span>`),y=u(`<span class="text-emerald-700">All checks pass</span>`),b=u(`<button type="button"> </button>`),oe=u(`<article class="group relative flex h-full min-h-52 flex-col justify-between overflow-hidden rounded-xl border border-cyan-100 bg-white p-5 shadow-sm shadow-cyan-950/5 transition duration-150 hover:-translate-y-0.5 hover:border-cyan-200 hover:bg-cyan-50/20 hover:shadow-md hover:shadow-cyan-950/10 focus-within:border-cyan-300"><div></div> <div class="space-y-4"><div class="flex items-start justify-between gap-3"><a class="block min-w-0 flex-1"><h3 class="truncate text-base font-semibold text-slate-950 group-hover:text-brand-800"> </h3></a> <div class="flex shrink-0 flex-col items-end gap-1"><span><span class="text-[9px] font-semibold uppercase tracking-wide opacity-70">Mat</span> <span class="tabular-nums"> </span></span> <span><span class="text-[9px] font-semibold uppercase tracking-wide opacity-70">Impl</span> <span class="tabular-nums"> </span></span></div></div> <!> <!> <div class="space-y-2"><!> <div class="text-xs text-slate-500"><!> <!> <!></div></div></div> <div class="mt-5 flex items-center justify-between gap-3 border-t border-hairline pt-3 text-xs text-slate-500"><span class="min-w-0 flex-1 truncate"> </span> <div class="flex shrink-0 items-center gap-1"><!> <button type="button" class="rounded px-2 py-1 text-slate-400 opacity-0 transition group-hover:opacity-100 group-focus-within:opacity-100 hover:bg-red-50 hover:text-red-600"> </button></div></div></article>`);function x(o,u){p(u,!0);let x=c(u,`tagTypeOptions`,19,()=>[]),se=c(u,`deleteLabel`,3,`Delete`),S=c(u,`queued`,3,!1),C=e=>e>=80?`bg-emerald-50 text-emerald-700 border-emerald-200`:e>=50?`bg-amber-50 text-amber-800 border-amber-200`:`bg-red-50 text-red-700 border-red-200`,ce=m(()=>C(u.summary.maturityPercentage)),le=m(()=>u.summary.implementationPercentage===null||!u.summary.implementationHasReport?`bg-slate-50 text-slate-500 border-slate-200`:C(u.summary.implementationPercentage)),w=m(()=>u.summary.implementationPercentage===null?`-`:u.summary.implementationHasReport?`${u.summary.implementationPercentage}%`:`-`),T=m(()=>u.summary.implementationPercentage===null?`No taggable entities yet (actions, events, rules...)`:u.summary.implementationHasReport?`Implementation coverage: ${u.summary.implementationFoundCount} of ${u.summary.implementationExpectedCount} expected tags found in code`:`No .unspa.json report yet. Run report_implementation_status_batch to populate.`),E=m(()=>u.summary.maturityPercentage>=80?`from-emerald-400 via-brand-mint to-brand-500`:u.summary.maturityPercentage>=50?`from-amber-400 via-brand-ochre to-brand-peach`:`from-red-400 via-brand-coral to-brand-pink`);var D=oe(),O=r(D),k=s(O,2),A=r(k),j=r(A),M=r(j),ue=r(M,!0);l(M),l(j);var N=s(j,2),P=r(N),F=s(r(P),2),I=r(F);l(F),l(P);var L=s(P,2),R=s(r(L),2),z=r(R,!0);l(R),l(L),l(N),l(A);var B=s(A,2),V=e=>{var t=_(),i=r(t),o=r(i,!0);l(i),l(t),n(()=>{h(t,`href`,`/features/${u.summary.id}`),a(o,u.summary.description)}),d(e,t)},H=e=>{d(e,v())};e(B,e=>{u.summary.description?e(V):e(H,-1)});var U=s(B,2);te(U,{get tags(){return u.summary.tags},get onAddTag(){return u.onAddTag},get onRemoveTag(){return u.onRemoveTag},get typeOptions(){return x()}});var W=s(U,2),G=r(W);ne(G,{get percentage(){return u.summary.maturityPercentage},size:`sm`,get ariaLabel(){return`Maturity ${u.summary.maturityPercentage??``}%`}});var K=s(G,2),q=r(K),de=t=>{var i=ie(),o=ee(i),c=r(o);l(o);var f=s(o,2),p=e=>{d(e,re())};e(f,e=>{u.summary.recommendedIssueCount>0&&e(p)}),n(()=>a(c,`${u.summary.criticalIssueCount??``} critical`)),d(t,i)};e(q,e=>{u.summary.criticalIssueCount>0&&e(de)});var J=s(q,2),fe=e=>{var t=ae(),i=r(t);l(t),n(()=>a(i,`${u.summary.recommendedIssueCount??``} recommended`)),d(e,t)};e(J,e=>{u.summary.recommendedIssueCount>0&&e(fe)});var pe=s(J,2),me=e=>{d(e,y())};e(pe,e=>{u.summary.criticalIssueCount===0&&u.summary.recommendedIssueCount===0&&e(me)}),l(K),l(W),l(k);var Y=s(k,2),X=r(Y),he=r(X);l(X);var Z=s(X,2),Q=r(Z),ge=e=>{var i=b(),o=r(i,!0);l(i),n(()=>{g(i,1,`rounded px-2 py-1 transition ${S()?`font-medium text-brand-700 opacity-100 hover:bg-cyan-50 hover:text-brand-900`:`text-slate-400 opacity-0 hover:bg-cyan-50 hover:text-brand-800 group-hover:opacity-100 group-focus-within:opacity-100`}`),h(i,`title`,S()?`In implementation queue (click to remove)`:`Add to implementation queue`),a(o,S()?`✓ queued`:`+ queue`)}),t(`click`,i,function(...e){(S()?u.onRemoveFromQueue:u.onAddToQueue)?.apply(this,e)}),d(e,i)};e(Q,e=>{(u.onAddToQueue||u.onRemoveFromQueue)&&e(ge)});var $=s(Q,2),_e=r($,!0);l($),l(Z),l(Y),l(D),n(e=>{g(O,1,`absolute inset-x-0 top-0 h-1 bg-linear-to-r ${i(E)??``}`),h(j,`href`,`/features/${u.summary.id}`),a(ue,u.summary.name),g(P,1,`inline-flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-medium ${i(ce)??``}`),h(P,`title`,`Maturity score: how complete this feature's behavior model is (${u.summary.maturityPercentage??``}% of spec quality checks pass)`),a(I,`${u.summary.maturityPercentage??``}%`),g(L,1,`inline-flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-medium ${i(le)??``}`),h(L,`title`,i(T)),a(z,i(w)),a(he,`${u.summary.surfaceCount??``} surface${u.summary.surfaceCount===1?``:`s`} / ${u.summary.actionCount??``}
2
2
  action${u.summary.actionCount===1?``:`s`} / Updated ${e??``}`),a(_e,se())},[()=>new Date(u.summary.updatedAt).toLocaleDateString()]),t(`click`,$,function(...e){u.onDelete?.apply(this,e)}),d(o,D),f()}o([`click`]);export{x as t};
@@ -1 +1 @@
1
- import{$ as e,L as t,Q as n,Z as r}from"./DF6QYH3p.js";import{ct as i,g as a,h as o,it as s,m as c,p as l,rt as u,t as d,tt as f}from"./Dv09pO87.js";import{t as p}from"./1_r1S7Ly.js";var m=e=>JSON.stringify({format:`unspaghettit`,version:1,feature:e},null,2),h=e=>{if(`actions`in e)return e;if(`capabilities`in e){let{capabilities:t,...n}=e;return{...n,actions:t}}return e},g=e=>{let t;try{t=JSON.parse(e)}catch(e){throw Error(`Invalid JSON: ${e.message}`)}if(!t||typeof t!=`object`)throw Error(`Expected a feature export object`);let n=t;if(n.format!==`unspaghettit`)throw Error(`Not an Unspaghettit export (missing format field)`);if(n.version!==1)throw Error(`Unsupported export version: ${n.version}`);let r=n.feature??n.experience;if(!r)throw Error(`Export envelope is missing a feature`);let i=(r.surfaces??[]).map(e=>h(e)),s=r,d=s.entities??s.data??[];return l(a(o(c({...r,tags:u(r.tags),surfaces:i,personas:r.personas??[],resources:r.resources??[],entities:d}))))},_=new class{#e=e(!0);get loading(){return t(this.#e)}set loading(e){n(this.#e,e,!0)}#t=e(r([]));get summaries(){return t(this.#t)}set summaries(e){n(this.#t,e,!0)}#n=e(null);get error(){return t(this.#n)}set error(e){n(this.#n,e,!0)}async refresh(){try{this.loading=!0,this.error=null;let e=await d();this.summaries=[...await e.useCases.listFeaturesWithMaturity()]}catch(e){this.error=e.message}finally{this.loading=!1}}async refreshSilent(){try{let e=await d();this.summaries=[...await e.useCases.listFeaturesWithMaturity()],this.error=null}catch(e){this.error=e.message}}async create(e,t){let n=await(await d()).useCases.createFeature({name:e,description:t});return await this.refreshSilent(),i(`feature.created`,{id:n.id,name:n.name}),n.id}async addTag(e,t){let n=await d(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:f(r.tags,t)}),await this.refreshSilent())}async removeTag(e,t){let n=await d(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:s(r.tags,t)}),await this.refreshSilent())}async remove(e){this.summaries=this.summaries.filter(t=>String(t.id)!==String(e)),await(await d()).useCases.deleteFeature(e),i(`feature.deleted`,{id:e})}async loadSamples(){let e=await(await d()).useCases.loadSamples();return await this.refreshSilent(),await p.refreshSilent(),e}async importJson(e){let t=g(e),n=await d(),r=this.summaries.some(e=>e.id===t.id),i=await n.useCases.saveFeature(t);return await this.refreshSilent(),{id:i.id,name:i.name,overwrote:r}}};export{m as n,_ as t};
1
+ import{$ as e,L as t,Q as n,Z as r}from"./DF6QYH3p.js";import{ct as i,g as a,h as o,it as s,m as c,p as l,rt as u,t as d,tt as f}from"./C0OSZ2OV.js";import{t as p}from"./nx-Rqoe9.js";var m=e=>JSON.stringify({format:`unspaghettit`,version:1,feature:e},null,2),h=e=>{if(`actions`in e)return e;if(`capabilities`in e){let{capabilities:t,...n}=e;return{...n,actions:t}}return e},g=e=>{let t;try{t=JSON.parse(e)}catch(e){throw Error(`Invalid JSON: ${e.message}`)}if(!t||typeof t!=`object`)throw Error(`Expected a feature export object`);let n=t;if(n.format!==`unspaghettit`)throw Error(`Not an Unspaghettit export (missing format field)`);if(n.version!==1)throw Error(`Unsupported export version: ${n.version}`);let r=n.feature??n.experience;if(!r)throw Error(`Export envelope is missing a feature`);let i=(r.surfaces??[]).map(e=>h(e)),s=r,d=s.entities??s.data??[];return l(a(o(c({...r,tags:u(r.tags),surfaces:i,personas:r.personas??[],resources:r.resources??[],entities:d}))))},_=new class{#e=e(!0);get loading(){return t(this.#e)}set loading(e){n(this.#e,e,!0)}#t=e(r([]));get summaries(){return t(this.#t)}set summaries(e){n(this.#t,e,!0)}#n=e(null);get error(){return t(this.#n)}set error(e){n(this.#n,e,!0)}async refresh(){try{this.loading=!0,this.error=null;let e=await d();this.summaries=[...await e.useCases.listFeaturesWithMaturity()]}catch(e){this.error=e.message}finally{this.loading=!1}}async refreshSilent(){try{let e=await d();this.summaries=[...await e.useCases.listFeaturesWithMaturity()],this.error=null}catch(e){this.error=e.message}}async create(e,t){let n=await(await d()).useCases.createFeature({name:e,description:t});return await this.refreshSilent(),i(`feature.created`,{id:n.id,name:n.name}),n.id}async addTag(e,t){let n=await d(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:f(r.tags,t)}),await this.refreshSilent())}async removeTag(e,t){let n=await d(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:s(r.tags,t)}),await this.refreshSilent())}async remove(e){this.summaries=this.summaries.filter(t=>String(t.id)!==String(e)),await(await d()).useCases.deleteFeature(e),i(`feature.deleted`,{id:e})}async loadSamples(){let e=await(await d()).useCases.loadSamples();return await this.refreshSilent(),await p.refreshSilent(),e}async importJson(e){let t=g(e),n=await d(),r=this.summaries.some(e=>e.id===t.id),i=await n.useCases.saveFeature(t);return await this.refreshSilent(),{id:i.id,name:i.name,overwrote:r}}};export{m as n,_ as t};
@@ -0,0 +1 @@
1
+ import"./BxAqshUk.js";
@@ -0,0 +1,2 @@
1
+
2
+ �import"./BxAqshUk.js";
@@ -1 +1 @@
1
- import{$ as e,A as t,D as n,F as r,H as i,I as a,J as o,L as s,M as c,O as l,P as u,Q as d,T as f,X as p,Y as m,Z as h,_ as g,a as _,c as v,ft as y,j as b,k as x,l as S,ot as C,s as w,st as T,tt as E,u as D,v as O,w as k,z as A}from"./DF6QYH3p.js";import"./xihTtKlq.js";import{Q as j,X as M,Z as N,et as P,nt as F,ot as I,t as L}from"./Dv09pO87.js";var R=[{name:`Rose`,color:`#f43f5e`},{name:`Orange`,color:`#f97316`},{name:`Amber`,color:`#f59e0b`},{name:`Lime`,color:`#84cc16`},{name:`Emerald`,color:`#10b981`},{name:`Teal`,color:`#14b8a6`},{name:`Sky`,color:`#0ea5e9`},{name:`Violet`,color:`#8b5cf6`},{name:`Fuchsia`,color:`#d946ef`},{name:`Slate`,color:`#64748b`}],z=(e,t)=>{let n=new Map;if(R.length===0)return n;let r=[...new Set(e.map(e=>e.trim().toLowerCase()).filter(e=>e.length>0))].sort(),i=new Set;for(let e of Object.values(t.assignments))typeof e==`string`&&i.add(e);let a=R.filter(e=>!i.has(e.color)),o=a.length>0?a:R,s=0;for(let e of r){let r=t.assignments[e];typeof r!=`string`&&r!==null&&(n.set(e,o[s%o.length].color),s++)}return n},B=new class{#e=e(h(M));get palette(){return s(this.#e)}set palette(e){d(this.#e,e,!0)}#t=e(!1);get loaded(){return s(this.#t)}set loaded(e){d(this.#t,e,!0)}#n=e(null);get error(){return s(this.#n)}set error(e){d(this.#n,e,!0)}#r=e(h([]));get knownTypes(){return s(this.#r)}set knownTypes(e){d(this.#r,e,!0)}#i=E(()=>z(this.knownTypes,this.palette));get autoColors(){return s(this.#i)}set autoColors(e){d(this.#i,e)}async refresh(){try{let e=await L();this.palette=await e.useCases.getTagPalette(),this.loaded=!0,this.error=null}catch(e){this.error=e.message}}registerTypes(e){if(e.length===0)return;let t=new Set(this.knownTypes),n=!1;for(let r of e){let e=r.trim().toLowerCase();e&&(t.has(e)||(t.add(e),n=!0))}n&&(this.knownTypes=[...t])}colorFor(e){return j(this.palette,e)?null:N(this.palette,e)||(this.autoColors.get(e.trim().toLowerCase())??null)}colorForTag(e){return this.colorFor(e.type)}explicitAssignmentFor(e){return j(this.palette,e)?null:N(this.palette,e)??void 0}isExplicitlyCleared(e){return j(this.palette,e)}async setTypeColor(e,t){let n=this.palette;t!==null&&(this.palette=P(n,e,t));try{let n=await(await L()).useCases.setTagTypeColor({type:e,color:t});this.palette=n}catch(e){throw this.palette=n,this.error=e.message,e}}async renameTag(e,t){let n=await(await L()).useCases.renameTag({from:e,to:t});return await this.refresh(),{projectsUpdated:n.projectsUpdated,featuresUpdated:n.featuresUpdated}}},V={isAbsent:!0,dotBackground:null,pillBackground:`#ffffff`,pillRing:`#e2e8f0`,pillText:`#475569`},H=e=>e?{isAbsent:!1,dotBackground:e,pillBackground:`color-mix(in srgb, ${e} 18%, white)`,pillRing:`color-mix(in srgb, ${e} 45%, white)`,pillText:`color-mix(in srgb, ${e} 55%, black)`}:V,U=b(`<span aria-hidden="true"></span>`),W=c(`<svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="6.5" fill="white" stroke="#cbd5e1" stroke-width="1"></circle><line x1="3.5" y1="12.5" x2="12.5" y2="3.5" stroke="#dc2626" stroke-width="1.5" stroke-linecap="round"></line></svg>`);function G(e,r){let a=_(r,`size`,3,2),o={1.5:`size-1.5`,2:`size-2`,2.5:`size-2.5`,3:`size-3`,4:`size-4`,5:`size-5`},c=E(()=>o[a()]);var l=t(),u=m(l),d=e=>{var t=U();i(()=>{O(t,1,`block shrink-0 rounded-full ring-1 ring-inset ring-black/10 ${s(c)??``}`),g(t,`background-color: ${r.color??``};`)}),x(e,t)},f=e=>{var t=W();i(()=>O(t,0,`block shrink-0 ${s(c)??``}`)),x(e,t)};n(u,e=>{r.color?e(d):e(f,-1)}),x(e,l)}var K=0,q=b(`<button type="button" class="ml-0.5 flex size-3 shrink-0 items-center justify-center rounded-full text-[9px] leading-none opacity-0 transition group-hover/chip:opacity-70 hover:opacity-100! hover:bg-white/60">&times;</button>`),J=b(`<span class="group/chip inline-flex max-w-full items-center gap-1 rounded-full px-1.5 py-0.5 text-[10px] font-medium"><!> <span class="truncate"> </span> <!></span>`),Y=b(`<button type="button" aria-label="Add tag" title="Add tag"> </button>`),X=b(`<option></option>`),Z=b(`<datalist></datalist>`),Q=b(`<form class="inline-flex items-center gap-1"><input type="text" placeholder="Type" class="h-5.5 w-20 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <!> <input type="text" placeholder="Value" class="h-5.5 w-24 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <button type="submit" class="h-5.5 rounded bg-slate-900 px-2 text-[11px] font-medium text-white disabled:opacity-40">Add</button> <button type="button" class="h-5.5 rounded px-1 text-[11px] text-slate-500 hover:text-slate-800">Cancel</button></form>`),ee=b(`<div class="flex flex-wrap items-center gap-1.5"><!> <!></div>`);function $(c,u){T(u,!0);let h=_(u,`typeOptions`,19,()=>[]),b=_(u,`addLabel`,3,`+`),j=e(!1),M=e(``),N=e(``),P=e(null),L=`tagdotstrip-types-${++K}`,R=E(()=>!!(u.tags&&u.tags.length>0));async function z(){d(j,!0),await A(),s(P)?.focus()}function V(){d(j,!1),d(M,``),d(N,``)}async function U(e){e.preventDefault();let t=s(M).trim(),n=s(N).trim();!t||!n||(await u.onAddTag?.(t,n),V())}function W(e){e.key===`Escape`&&V()}var $=t(),te=m($),ne=e=>{var c=ee(),_=o(c),C=e=>{var a=t();k(m(a),17,()=>u.tags,f,(e,t)=>{let a=E(()=>B.colorForTag(s(t))),c=E(()=>H(s(a)));var d=J(),f=o(d);G(f,{get color(){return s(a)},size:1.5});var m=p(f,2),h=o(m,!0);y(m);var _=p(m,2),v=e=>{var n=q();i((e,t)=>{D(n,`aria-label`,e),D(n,`title`,t)},[()=>`Remove tag ${I(s(t))}`,()=>`Remove ${I(s(t))}`]),r(`click`,n,()=>u.onRemoveTag?.(s(t).type,s(t).value)),x(e,n)};n(_,e=>{u.onRemoveTag&&e(v)}),y(d),i((e,t)=>{g(d,`background-color: ${s(c).pillBackground??``}; color: ${s(c).pillText??``}; box-shadow: inset 0 0 0 1px ${s(c).pillRing??``};`),D(d,`title`,e),l(h,t)},[()=>I(s(t)),()=>F(s(t).value)]),x(e,d)}),x(e,a)};n(_,e=>{u.tags&&e(C)});var T=p(_,2),A=e=>{var c=t(),u=m(c),f=e=>{var t=Y();let n;var a=o(t,!0);y(t),i(()=>{n=O(t,1,`inline-flex h-4 items-center rounded-sm px-1 text-[10px] font-medium text-slate-400 opacity-0 transition group-hover:opacity-100 group-focus-within:opacity-100 hover:bg-slate-100 hover:text-slate-700`,null,n,{"opacity-100":!s(R)}),l(a,b())}),r(`click`,t,z),x(e,t)},g=e=>{var t=Q(),c=o(t);S(c),w(c,e=>d(P,e),()=>s(P));var l=p(c,2),u=e=>{var t=Z();k(t,20,h,e=>e,(e,t)=>{var n=X(),r={};i(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),x(e,n)}),y(t),i(()=>D(t,`id`,L)),x(e,t)};n(l,e=>{h().length>0&&e(u)});var f=p(l,2);S(f);var m=p(f,2),g=p(m,2);y(t),i(e=>{D(c,`list`,h().length>0?L:void 0),m.disabled=e},[()=>s(M).trim().length===0||s(N).trim().length===0]),a(`submit`,t,U),r(`keydown`,c,W),v(c,()=>s(M),e=>d(M,e)),r(`keydown`,f,W),v(f,()=>s(N),e=>d(N,e)),r(`click`,g,V),x(e,t)};n(u,e=>{s(j)?e(g,-1):e(f)}),x(e,c)};n(T,e=>{u.onAddTag&&e(A)}),y(c),x(e,c)};n(te,e=>{(s(R)||u.onAddTag)&&e(ne)}),x(c,$),C()}u([`click`,`keydown`]);export{R as i,G as n,B as r,$ as t};
1
+ import{$ as e,A as t,D as n,F as r,H as i,I as a,J as o,L as s,M as c,O as l,P as u,Q as d,T as f,X as p,Y as m,Z as h,_ as g,a as _,c as v,ft as y,j as b,k as x,l as S,ot as C,s as w,st as T,tt as E,u as D,v as O,w as k,z as A}from"./DF6QYH3p.js";import"./xihTtKlq.js";import{Q as j,X as M,Z as N,et as P,nt as F,ot as I,t as L}from"./C0OSZ2OV.js";var R=[{name:`Rose`,color:`#f43f5e`},{name:`Orange`,color:`#f97316`},{name:`Amber`,color:`#f59e0b`},{name:`Lime`,color:`#84cc16`},{name:`Emerald`,color:`#10b981`},{name:`Teal`,color:`#14b8a6`},{name:`Sky`,color:`#0ea5e9`},{name:`Violet`,color:`#8b5cf6`},{name:`Fuchsia`,color:`#d946ef`},{name:`Slate`,color:`#64748b`}],z=(e,t)=>{let n=new Map;if(R.length===0)return n;let r=[...new Set(e.map(e=>e.trim().toLowerCase()).filter(e=>e.length>0))].sort(),i=new Set;for(let e of Object.values(t.assignments))typeof e==`string`&&i.add(e);let a=R.filter(e=>!i.has(e.color)),o=a.length>0?a:R,s=0;for(let e of r){let r=t.assignments[e];typeof r!=`string`&&r!==null&&(n.set(e,o[s%o.length].color),s++)}return n},B=new class{#e=e(h(M));get palette(){return s(this.#e)}set palette(e){d(this.#e,e,!0)}#t=e(!1);get loaded(){return s(this.#t)}set loaded(e){d(this.#t,e,!0)}#n=e(null);get error(){return s(this.#n)}set error(e){d(this.#n,e,!0)}#r=e(h([]));get knownTypes(){return s(this.#r)}set knownTypes(e){d(this.#r,e,!0)}#i=E(()=>z(this.knownTypes,this.palette));get autoColors(){return s(this.#i)}set autoColors(e){d(this.#i,e)}async refresh(){try{let e=await L();this.palette=await e.useCases.getTagPalette(),this.loaded=!0,this.error=null}catch(e){this.error=e.message}}registerTypes(e){if(e.length===0)return;let t=new Set(this.knownTypes),n=!1;for(let r of e){let e=r.trim().toLowerCase();e&&(t.has(e)||(t.add(e),n=!0))}n&&(this.knownTypes=[...t])}colorFor(e){return j(this.palette,e)?null:N(this.palette,e)||(this.autoColors.get(e.trim().toLowerCase())??null)}colorForTag(e){return this.colorFor(e.type)}explicitAssignmentFor(e){return j(this.palette,e)?null:N(this.palette,e)??void 0}isExplicitlyCleared(e){return j(this.palette,e)}async setTypeColor(e,t){let n=this.palette;t!==null&&(this.palette=P(n,e,t));try{let n=await(await L()).useCases.setTagTypeColor({type:e,color:t});this.palette=n}catch(e){throw this.palette=n,this.error=e.message,e}}async renameTag(e,t){let n=await(await L()).useCases.renameTag({from:e,to:t});return await this.refresh(),{projectsUpdated:n.projectsUpdated,featuresUpdated:n.featuresUpdated}}},V={isAbsent:!0,dotBackground:null,pillBackground:`#ffffff`,pillRing:`#e2e8f0`,pillText:`#475569`},H=e=>e?{isAbsent:!1,dotBackground:e,pillBackground:`color-mix(in srgb, ${e} 18%, white)`,pillRing:`color-mix(in srgb, ${e} 45%, white)`,pillText:`color-mix(in srgb, ${e} 55%, black)`}:V,U=b(`<span aria-hidden="true"></span>`),W=c(`<svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="6.5" fill="white" stroke="#cbd5e1" stroke-width="1"></circle><line x1="3.5" y1="12.5" x2="12.5" y2="3.5" stroke="#dc2626" stroke-width="1.5" stroke-linecap="round"></line></svg>`);function G(e,r){let a=_(r,`size`,3,2),o={1.5:`size-1.5`,2:`size-2`,2.5:`size-2.5`,3:`size-3`,4:`size-4`,5:`size-5`},c=E(()=>o[a()]);var l=t(),u=m(l),d=e=>{var t=U();i(()=>{O(t,1,`block shrink-0 rounded-full ring-1 ring-inset ring-black/10 ${s(c)??``}`),g(t,`background-color: ${r.color??``};`)}),x(e,t)},f=e=>{var t=W();i(()=>O(t,0,`block shrink-0 ${s(c)??``}`)),x(e,t)};n(u,e=>{r.color?e(d):e(f,-1)}),x(e,l)}var K=0,q=b(`<button type="button" class="ml-0.5 flex size-3 shrink-0 items-center justify-center rounded-full text-[9px] leading-none opacity-0 transition group-hover/chip:opacity-70 hover:opacity-100! hover:bg-white/60">&times;</button>`),J=b(`<span class="group/chip inline-flex max-w-full items-center gap-1 rounded-full px-1.5 py-0.5 text-[10px] font-medium"><!> <span class="truncate"> </span> <!></span>`),Y=b(`<button type="button" aria-label="Add tag" title="Add tag"> </button>`),X=b(`<option></option>`),Z=b(`<datalist></datalist>`),Q=b(`<form class="inline-flex items-center gap-1"><input type="text" placeholder="Type" class="h-5.5 w-20 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <!> <input type="text" placeholder="Value" class="h-5.5 w-24 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <button type="submit" class="h-5.5 rounded bg-slate-900 px-2 text-[11px] font-medium text-white disabled:opacity-40">Add</button> <button type="button" class="h-5.5 rounded px-1 text-[11px] text-slate-500 hover:text-slate-800">Cancel</button></form>`),ee=b(`<div class="flex flex-wrap items-center gap-1.5"><!> <!></div>`);function $(c,u){T(u,!0);let h=_(u,`typeOptions`,19,()=>[]),b=_(u,`addLabel`,3,`+`),j=e(!1),M=e(``),N=e(``),P=e(null),L=`tagdotstrip-types-${++K}`,R=E(()=>!!(u.tags&&u.tags.length>0));async function z(){d(j,!0),await A(),s(P)?.focus()}function V(){d(j,!1),d(M,``),d(N,``)}async function U(e){e.preventDefault();let t=s(M).trim(),n=s(N).trim();!t||!n||(await u.onAddTag?.(t,n),V())}function W(e){e.key===`Escape`&&V()}var $=t(),te=m($),ne=e=>{var c=ee(),_=o(c),C=e=>{var a=t();k(m(a),17,()=>u.tags,f,(e,t)=>{let a=E(()=>B.colorForTag(s(t))),c=E(()=>H(s(a)));var d=J(),f=o(d);G(f,{get color(){return s(a)},size:1.5});var m=p(f,2),h=o(m,!0);y(m);var _=p(m,2),v=e=>{var n=q();i((e,t)=>{D(n,`aria-label`,e),D(n,`title`,t)},[()=>`Remove tag ${I(s(t))}`,()=>`Remove ${I(s(t))}`]),r(`click`,n,()=>u.onRemoveTag?.(s(t).type,s(t).value)),x(e,n)};n(_,e=>{u.onRemoveTag&&e(v)}),y(d),i((e,t)=>{g(d,`background-color: ${s(c).pillBackground??``}; color: ${s(c).pillText??``}; box-shadow: inset 0 0 0 1px ${s(c).pillRing??``};`),D(d,`title`,e),l(h,t)},[()=>I(s(t)),()=>F(s(t).value)]),x(e,d)}),x(e,a)};n(_,e=>{u.tags&&e(C)});var T=p(_,2),A=e=>{var c=t(),u=m(c),f=e=>{var t=Y();let n;var a=o(t,!0);y(t),i(()=>{n=O(t,1,`inline-flex h-4 items-center rounded-sm px-1 text-[10px] font-medium text-slate-400 opacity-0 transition group-hover:opacity-100 group-focus-within:opacity-100 hover:bg-slate-100 hover:text-slate-700`,null,n,{"opacity-100":!s(R)}),l(a,b())}),r(`click`,t,z),x(e,t)},g=e=>{var t=Q(),c=o(t);S(c),w(c,e=>d(P,e),()=>s(P));var l=p(c,2),u=e=>{var t=Z();k(t,20,h,e=>e,(e,t)=>{var n=X(),r={};i(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),x(e,n)}),y(t),i(()=>D(t,`id`,L)),x(e,t)};n(l,e=>{h().length>0&&e(u)});var f=p(l,2);S(f);var m=p(f,2),g=p(m,2);y(t),i(e=>{D(c,`list`,h().length>0?L:void 0),m.disabled=e},[()=>s(M).trim().length===0||s(N).trim().length===0]),a(`submit`,t,U),r(`keydown`,c,W),v(c,()=>s(M),e=>d(M,e)),r(`keydown`,f,W),v(f,()=>s(N),e=>d(N,e)),r(`click`,g,V),x(e,t)};n(u,e=>{s(j)?e(g,-1):e(f)}),x(e,c)};n(T,e=>{u.onAddTag&&e(A)}),y(c),x(e,c)};n(te,e=>{(s(R)||u.onAddTag)&&e(ne)}),x(c,$),C()}u([`click`,`keydown`]);export{R as i,G as n,B as r,$ as t};
@@ -1 +1 @@
1
- import{D as e,E as t,N as n}from"./Dv09pO87.js";var r=(e,t)=>{let r=t;for(let t of e.stateOverrides)r=n(r,t.path,t.value);return r},i=(e,t,n)=>{let r={},i=new Set(t.parameters.map(e=>e.name));for(let t of e.parameterOverrides)i.has(t.parameterName)&&(r[t.parameterName]=t.value);return{...r,...n}},a=(e,t)=>{let r=t;for(let t of e.stateOverrides)r=n(r,t.path,t.value);return r},o=(e,t,n)=>{let r={},i=new Set(t.parameters.map(e=>e.name));for(let t of e.parameterOverrides)i.has(t.parameterName)&&(r[t.parameterName]=t.value);return{...r,...n}},s=e=>({path:e,stateDefinitions:0,parameterBindings:0,parameterResources:0,actionRequiredStates:0,ruleConditions:0,setStateEffects:0,invariantConditions:0,personaStateOverrides:0,otherDataFields:0}),c=(e,t)=>e===t,l=(n,r)=>{if(!t(n))return 0;let i=n;switch(i.kind){case`literal`:return 0;case`param`:return 0;case`state`:return+(String(i.path)===r);case`neg`:case`not`:case`sum`:case`count`:case`sum_pluck`:return l(i.operand,r);case`count_where`:return l(i.operand,r)+l(i.equals,r);case`switch`:{let t=0;for(let n of i.cases){for(let i of e(n.when))c(String(i.left),r)&&(t+=1),t+=l(i.right,r);t+=l(n.then,r)}return t+=l(i.default,r),t}case`add`:case`sub`:case`mul`:case`div`:case`mod`:case`min`:case`max`:return l(i.left,r)+l(i.right,r)}},u=(t,n)=>{let r=0;for(let i of e(t))c(String(i.left),n)&&(r+=1),r+=l(i.right,n);return r},d=(e,t)=>{let n=String(t),r={...s(t)};for(let t of e.surfaces){for(let e of t.stateDefinitions)c(String(e.path),n)&&(r.stateDefinitions+=1);for(let e of t.actions){for(let t of e.requiredStates)c(String(t),n)&&(r.actionRequiredStates+=1);for(let t of e.parameters)c(t.bindToStatePath?String(t.bindToStatePath):void 0,n)&&(r.parameterBindings+=1);for(let t of e.rules)r.ruleConditions+=u(t.condition,n),t.effect.type===`set_state`&&(c(String(t.effect.path),n)&&(r.setStateEffects+=1),r.setStateEffects+=l(t.effect.value,n));for(let t of e.effects)t.type===`set_state`&&(c(String(t.path),n)&&(r.setStateEffects+=1),r.setStateEffects+=l(t.value,n));for(let t of e.invariants)r.invariantConditions+=u(t.condition,n)}for(let e of t.rules)r.ruleConditions+=u(e.condition,n),e.effect.type===`set_state`&&(c(String(e.effect.path),n)&&(r.setStateEffects+=1),r.setStateEffects+=l(e.effect.value,n));for(let e of t.invariants)r.invariantConditions+=u(e.condition,n)}for(let t of e.personas)for(let e of t.stateOverrides)c(String(e.path),n)&&(r.personaStateOverrides+=1);for(let t of e.entities)for(let e of t.fields)c(e.path?String(e.path):void 0,n)&&(r.otherDataFields+=1);return r},f=e=>e.stateDefinitions+e.parameterBindings+e.parameterResources+e.actionRequiredStates+e.ruleConditions+e.setStateEffects+e.invariantConditions+e.personaStateOverrides+e.otherDataFields,p=e=>{let t=[],n=(e,n)=>{e>0&&t.push(`${e} ${n}`)};return n(e.stateDefinitions,e.stateDefinitions===1?`state definition`:`state definitions`),n(e.ruleConditions,e.ruleConditions===1?`rule condition`:`rule conditions`),n(e.setStateEffects,e.setStateEffects===1?`set_state effect`:`set_state effects`),n(e.parameterBindings,e.parameterBindings===1?`parameter binding`:`parameter bindings`),n(e.actionRequiredStates,e.actionRequiredStates===1?`action requirement`:`action requirements`),n(e.invariantConditions,e.invariantConditions===1?`invariant`:`invariants`),n(e.personaStateOverrides,e.personaStateOverrides===1?`persona override`:`persona overrides`),n(e.otherDataFields,e.otherDataFields===1?`data field`:`data fields`),t.join(`, `)};export{a,o as i,p as n,i as o,f as r,r as s,d as t};
1
+ import{D as e,E as t,N as n}from"./C0OSZ2OV.js";var r=(e,t)=>{let r=t;for(let t of e.stateOverrides)r=n(r,t.path,t.value);return r},i=(e,t,n)=>{let r={},i=new Set(t.parameters.map(e=>e.name));for(let t of e.parameterOverrides)i.has(t.parameterName)&&(r[t.parameterName]=t.value);return{...r,...n}},a=(e,t)=>{let r=t;for(let t of e.stateOverrides)r=n(r,t.path,t.value);return r},o=(e,t,n)=>{let r={},i=new Set(t.parameters.map(e=>e.name));for(let t of e.parameterOverrides)i.has(t.parameterName)&&(r[t.parameterName]=t.value);return{...r,...n}},s=e=>({path:e,stateDefinitions:0,parameterBindings:0,parameterResources:0,actionRequiredStates:0,ruleConditions:0,setStateEffects:0,invariantConditions:0,personaStateOverrides:0,otherDataFields:0}),c=(e,t)=>e===t,l=(n,r)=>{if(!t(n))return 0;let i=n;switch(i.kind){case`literal`:return 0;case`param`:return 0;case`state`:return+(String(i.path)===r);case`neg`:case`not`:case`sum`:case`count`:case`sum_pluck`:return l(i.operand,r);case`count_where`:return l(i.operand,r)+l(i.equals,r);case`switch`:{let t=0;for(let n of i.cases){for(let i of e(n.when))c(String(i.left),r)&&(t+=1),t+=l(i.right,r);t+=l(n.then,r)}return t+=l(i.default,r),t}case`add`:case`sub`:case`mul`:case`div`:case`mod`:case`min`:case`max`:return l(i.left,r)+l(i.right,r)}},u=(t,n)=>{let r=0;for(let i of e(t))c(String(i.left),n)&&(r+=1),r+=l(i.right,n);return r},d=(e,t)=>{let n=String(t),r={...s(t)};for(let t of e.surfaces){for(let e of t.stateDefinitions)c(String(e.path),n)&&(r.stateDefinitions+=1);for(let e of t.actions){for(let t of e.requiredStates)c(String(t),n)&&(r.actionRequiredStates+=1);for(let t of e.parameters)c(t.bindToStatePath?String(t.bindToStatePath):void 0,n)&&(r.parameterBindings+=1);for(let t of e.rules)r.ruleConditions+=u(t.condition,n),t.effect.type===`set_state`&&(c(String(t.effect.path),n)&&(r.setStateEffects+=1),r.setStateEffects+=l(t.effect.value,n));for(let t of e.effects)t.type===`set_state`&&(c(String(t.path),n)&&(r.setStateEffects+=1),r.setStateEffects+=l(t.value,n));for(let t of e.invariants)r.invariantConditions+=u(t.condition,n)}for(let e of t.rules)r.ruleConditions+=u(e.condition,n),e.effect.type===`set_state`&&(c(String(e.effect.path),n)&&(r.setStateEffects+=1),r.setStateEffects+=l(e.effect.value,n));for(let e of t.invariants)r.invariantConditions+=u(e.condition,n)}for(let t of e.personas)for(let e of t.stateOverrides)c(String(e.path),n)&&(r.personaStateOverrides+=1);for(let t of e.entities)for(let e of t.fields)c(e.path?String(e.path):void 0,n)&&(r.otherDataFields+=1);return r},f=e=>e.stateDefinitions+e.parameterBindings+e.parameterResources+e.actionRequiredStates+e.ruleConditions+e.setStateEffects+e.invariantConditions+e.personaStateOverrides+e.otherDataFields,p=e=>{let t=[],n=(e,n)=>{e>0&&t.push(`${e} ${n}`)};return n(e.stateDefinitions,e.stateDefinitions===1?`state definition`:`state definitions`),n(e.ruleConditions,e.ruleConditions===1?`rule condition`:`rule conditions`),n(e.setStateEffects,e.setStateEffects===1?`set_state effect`:`set_state effects`),n(e.parameterBindings,e.parameterBindings===1?`parameter binding`:`parameter bindings`),n(e.actionRequiredStates,e.actionRequiredStates===1?`action requirement`:`action requirements`),n(e.invariantConditions,e.invariantConditions===1?`invariant`:`invariants`),n(e.personaStateOverrides,e.personaStateOverrides===1?`persona override`:`persona overrides`),n(e.otherDataFields,e.otherDataFields===1?`data field`:`data fields`),t.join(`, `)};export{a,o as i,p as n,i as o,f as r,r as s,d as t};
@@ -0,0 +1 @@
1
+ import{$ as e,L as t,Q as n,R as r,it as i,r as a,t as o,z as s}from"./DF6QYH3p.js";var c=class{constructor(e,t){this.status=e,typeof t==`string`?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(e,t,n,r=!1){let i=new URL(e);Object.defineProperty(i,"searchParams",{value:new Proxy(i.searchParams,{get(e,r){if(r===`get`||r===`getAll`||r===`has`)return(t,...i)=>(n(t),e[r](t,...i));t();let i=Reflect.get(e,r);return typeof i==`function`?i.bind(e):i}}),enumerable:!0,configurable:!0});let a=[`href`,`pathname`,`search`,`toString`,`toJSON`];r&&a.push(`hash`);for(let n of a)Object.defineProperty(i,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return i}function g(){}function _(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function v(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var ee=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(S(e)),ee(e,t));var y=new Map;function b(e,t){let n=S(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent),i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),r.getAttribute(`data-b64`)!==null&&(e=v(e)),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function x(e,t,n){if(y.size>0){let t=S(e,n),r=y.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);y.delete(t)}}return window.fetch(t,n)}function S(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${_(...e)}"]`}return n}var te=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,C=/^\/\((?:.+)\)$/;function ne(e){let t=[];return{pattern:e===`/`||C.test(e)?/^\/$/:RegExp(`^${ie(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return oe(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return oe(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=te.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return oe(e)}).join(``)}).join(``)}/?$`),params:t}}function re(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ie(e){return e.slice(1).split(`/`).filter(re)}function ae(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function oe(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function se({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ne(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return ae(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function ce(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function le(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var w=globalThis.__sveltekit_1qfnlaq?.base??``,ue=globalThis.__sveltekit_1qfnlaq?.assets??w??``,de=`1780016676966`,fe=`sveltekit:snapshot`,pe=`sveltekit:scroll`,me=`sveltekit:states`,T=`sveltekit:history`,E=`sveltekit:navigation`,D={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},O=location.origin;function he(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function k(){return{x:pageXOffset,y:pageYOffset}}function A(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ge={...D,"":D.hover};function _e(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function ve(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=_e(e)}}function ye(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||Ce(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===O&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function j(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=A(s,`preload-code`)),i===null&&(i=A(s,`preload-data`)),t===null&&(t=A(s,`keepfocus`)),n===null&&(n=A(s,`noscroll`)),a===null&&(a=A(s,`reload`)),o===null&&(o=A(s,`replacestate`)),s=_e(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ge[r??`off`],preload_data:ge[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function be(e){let t=i(e),n=!0;function r(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:a,subscribe:o}}var xe={v:g};function Se(){let{set:e,subscribe:t}=i(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${ue}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==de;return n&&(e(!0),xe.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function Ce(e,t,n){return e.origin!==O||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function we(e){}var Te=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);new Set([...Te,`entries`]);var Ee=new Set([...Te]);new Set([...Ee,`actions`,`entries`]),new Set([`GET`,`POST`,`PATCH`,`PUT`,`DELETE`,`OPTIONS`,`HEAD`,`fallback`,`prerender`,`trailingSlash`,`config`,`entries`]);function De(e){return e.filter(e=>e!=null)}function Oe(e,t){return e+`/`+t}function ke(e){return e instanceof c||e instanceof u?e.status:500}function Ae(e){return e instanceof u?e.text:`Internal Error`}var M,N,je,Me=a.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(a.toString()),Ne=`a:`;Me?(M={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Ne)},N={current:null},je={current:!1}):(M=new class{#e=e({});get data(){return t(this.#e)}set data(e){n(this.#e,e)}#t=e(null);get form(){return t(this.#t)}set form(e){n(this.#t,e)}#n=e(null);get error(){return t(this.#n)}set error(e){n(this.#n,e)}#r=e({});get params(){return t(this.#r)}set params(e){n(this.#r,e)}#i=e({id:null});get route(){return t(this.#i)}set route(e){n(this.#i,e)}#a=e({});get state(){return t(this.#a)}set state(e){n(this.#a,e)}#o=e(-1);get status(){return t(this.#o)}set status(e){n(this.#o,e)}#s=e(new URL(Ne));get url(){return t(this.#s)}set url(e){n(this.#s,e)}},N=new class{#e=e(null);get current(){return t(this.#e)}set current(e){n(this.#e,e)}},je=new class{#e=e(!1);get current(){return t(this.#e)}set current(e){n(this.#e,e)}},xe.v=()=>je.current=!0);function Pe(e){Object.assign(M,e)}var Fe={spanContext(){return Ie},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},Ie={traceId:``,spanId:``,traceFlags:0},{onMount:Le,tick:Re}=o,ze=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),P=null,F=ce(`sveltekit:scroll`)??{},I=ce(`sveltekit:snapshot`)??{},L={url:be({}),page:be({}),navigating:i(null),updated:Se()};function Be(e){F[e]=k()}function Ve(e,t){let n=e+1;for(;F[n];)delete F[n],n+=1;for(n=t+1;I[n];)delete I[n],n+=1}function R(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(g)}async function He(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(w||`/`);e&&await e.update()}}var Ue,We,z,B,Ge,V,H=[],U=[],W=null;function Ke(){W?.fork?.then(e=>e?.discard()),W=null}var qe=new Map,Je=new Set,Ye=new Set,G=new Set,K={branch:[],error:null,url:null,nav:null},Xe=!1,Ze=!1,Qe=!0,q=!1,J=!1,$e=!1,et=!1,tt,Y,X,Z,nt=new Set,rt=new Map,it=new Map;async function at(e,t,n){globalThis.__sveltekit_1qfnlaq&&(globalThis.__sveltekit_1qfnlaq.query,globalThis.__sveltekit_1qfnlaq.prerender),document.URL!==location.href&&(location.href=location.href),V=e,await e.hooks.init?.(),Ue=se(e),B=document.documentElement,Ge=t,We=e.nodes[0],z=e.nodes[1],We(),z(),Y=history.state?.[T],X=history.state?.[E],Y||(Y=X=Date.now(),history.replaceState({...history.state,[T]:Y,[E]:X},``));let r=F[Y];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Pt(Ge,n)):(await Q({type:`enter`,url:he(V.hash?Bt(new URL(location.href)):location.href),replace_state:!0}),i()),Nt()}function ot(){H.length=0,et=!1}function st(e){U.some(e=>e?.snapshot)&&(I[e]=U.map(e=>e?.snapshot?.capture()))}function ct(e){I[e]?.forEach((e,t)=>{U[t]?.snapshot?.restore(e)})}function lt(){Be(Y),le(pe,F),st(X),le(fe,I)}async function ut(e,t,n,r){let i,a;t.invalidateAll&&Ke(),await Q({type:`goto`,url:he(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{if(t.invalidateAll){et=!0,i=new Set;for(let[e,t]of rt)for(let n of t.keys())i.add(Oe(e,n));a=new Set;for(let[e,t]of it)for(let n of t.keys())a.add(Oe(e,n))}t.invalidate&&t.invalidate.forEach(Mt)}}),t.invalidateAll&&s().then(s).then(()=>{for(let[e,t]of rt)for(let[n,{resource:r}]of t)i?.has(Oe(e,n))&&r.refresh();for(let[e,t]of it)for(let[n,{resource:r}]of t)a?.has(Oe(e,n))&&r.reconnect()})}async function dt(e){if(e.id!==W?.id){Ke();let t={};nt.add(t),W={id:e.id,token:t,promise:xt({...e,preload:t}).then(e=>(nt.delete(t),e.type===`loaded`&&e.state.error&&Ke(),e)),fork:null}}return W.promise}async function ft(e){let t=(await Tt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function pt(e,t,n){let r={params:K.params,route:{id:K.route?.id??null},url:new URL(location.href)};if(K={...e.state,nav:r},Pe(e.props.page),tt=new V.root({target:t,props:{...e.props,stores:L,components:U},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),ct(X),n){let e={from:null,to:{...r,scroll:F[Y]??k()},willUnload:!1,type:`enter`,complete:Promise.resolve()};G.forEach(t=>t(e))}Ze=!0}async function mt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(w&&(e.pathname===w||e.pathname===w+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:De(n).map(e=>e.node.component),page:zt(M)}};s!==void 0&&(l.props.form=s);let u={},f=!M,p=0;for(let e=0;e<Math.max(n.length,K.branch.length);e+=1){let t=n[e],r=K.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!K.url||e.href!==K.url.href||K.error!==a||s!==void 0&&s!==M.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:M.data}),l}async function ht({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o=null,s=!0,c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();if(l.universal?.load){function e(...e){for(let t of e){let{href:e}=new URL(t,n);c.dependencies.add(e)}}let u={tracing:{enabled:!1,root:Fe,current:Fe},route:new Proxy(i,{get:(e,t)=>(s&&(c.route=!0),e[t])}),params:new Proxy(r,{get:(e,t)=>(s&&c.params.add(t),e[t])}),data:a?.data??null,url:h(n,()=>{s&&(c.url=!0)},e=>{s&&c.search_params.add(e)},V.hash),async fetch(t,r){t instanceof Request&&(r={body:t.method===`GET`||t.method===`HEAD`?void 0:await t.blob(),cache:t.cache,credentials:t.credentials,headers:[...t.headers].length>0?t?.headers:void 0,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,...r});let{resolved:i,promise:a}=gt(t,r,n);return s&&e(i.href),a},setHeaders:g,depends:e,parent(){return s&&(c.parent=!0),t()},untrack(e){s=!1;try{return e()}finally{s=!0}}};o=await l.universal.load.call(null,u)??null}return{node:l,loader:e,server:a,universal:l.universal?.load?{type:`data`,data:o,uses:c}:null,data:o??a?.data??null,slash:l.universal?.trailingSlash??a?.slash}}function gt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:Ze?x(r,i.href,t):b(r,t)}}function _t(e,t,n,r,i,a){if(et)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==K.params[e])return!0;for(let e of i.dependencies)if(H.some(t=>t(new URL(e))))return!0;return!1}function vt(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function yt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function bt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:zt(M),constructors:[]}}}async function xt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(W?.id===e)return nt.delete(W.token),W.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(g)),d.forEach(e=>e?.[1]().catch(g));let f=K.url?e!==Dt(K.url):!1,p=K.route?i.id!==K.route.id:!1,m=yt(K.url,n),h=!1,_=d.map(async(e,t)=>{if(!e)return;let a=K.branch[t];return e[1]===a?.loader&&!_t(h,p,f,m,a.universal?.uses,r)?a:(h=!0,ht({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await _[n])?.data);return e},server_data_node:vt(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of _)e.catch(g);let v=[];for(let e=0;e<d.length;e+=1)if(d[e])try{v.push(await _[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(nt.has(a))return bt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=ke(t),u;if(t instanceof c)u=t.body;else{if(await L.updated.check())return await He(),await R(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await St(e,v,o);return d?mt({url:n,params:r,branch:v.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await kt(n,{id:i.id},u,s)}else v.push(void 0);return mt({url:n,params:r,branch:v,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function St(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Ct({status:e,error:t,url:n,route:r}){let i={};try{return mt({url:n,params:i,branch:[await ht({loader:We,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:vt(null)}),{node:await z(),loader:z,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(e){if(e instanceof l)return ut(new URL(e.location,location.href),{},0);throw e}}async function wt(e){let t=e.href;if(qe.has(t))return qe.get(t);let n;try{let r=(async()=>{let t=await V.hooks.reroute({url:new URL(e),fetch:async(t,n)=>gt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);V.hash?n.hash=t:n.pathname=t,t=n}return t})();qe.set(t,r),n=await r}catch{qe.delete(t);return}return n}async function Tt(e,t){if(e&&!Ce(e,w,V.hash)){let n=await wt(e);if(!n)return;let r=Et(n);for(let n of Ue){let i=n.exec(r);if(i)return{id:Dt(e),invalidating:t,route:n,params:p(i),url:e}}}}function Et(e){return f(V.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(w.length))||`/`}function Dt(e){return(V.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Ot({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Rt(K,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return q||Je.forEach(e=>e(c)),o?null:s}async function Q({type:e,url:t,popped:n,keepfocus:i,noscroll:a,replace_state:o,state:c={},redirect_count:l=0,nav_token:d={},accept:f=g,block:p=g,event:m}){let h=Z;Z=d;let _=await Tt(t,!1),v=e===`enter`?Rt(K,_,t,e):Ot({url:t,type:e,delta:n?.delta,intent:_,scroll:n?.scroll,event:m});if(!v){p(),Z===d&&(Z=h);return}let ee=Y,y=X;f(),q=!0,Ze&&v.navigation.type!==`enter`&&L.navigating.set(N.current=v.navigation);let b=_&&await xt(_);if(!b){if(Ce(t,w,V.hash))return await R(t,o);b=await kt(t,{id:null},await $(new u(404,`Not Found`,`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,o)}if(t=_?.url||t,Z!==d)return v.reject(Error(`navigation aborted`)),!1;if(b.type===`redirect`){if(l<20){await Q({type:e,url:new URL(b.location,t),popped:n,keepfocus:i,noscroll:a,replace_state:o,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}b=await Ct({status:500,error:await $(Error(`Redirect loop`),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else b.props.page.status>=400&&await L.updated.check()&&(await He(),await R(t,o));if(ot(),Be(ee),st(y),b.props.page.url.pathname!==t.pathname&&(t.pathname=b.props.page.url.pathname),c=n?n.state:c,!n){let e=+!o,n={[T]:Y+=e,[E]:X+=e,[me]:c};(o?history.replaceState:history.pushState).call(history,n,``,t),o||Ve(Y,X)}let x=_&&W?.id===_.id?W.fork:null;W?.fork&&!x&&Ke(),W=null,b.props.page.state=c;let S;if(Ze){let e=(await Promise.all(Array.from(Ye,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{G.delete(e)})}e.push(t),e.forEach(e=>{G.add(e)})}let n=v.navigation.to;K={...b.state,nav:{params:n.params,route:n.route,url:n.url}},b.props.page&&(b.props.page.url=t);let i=x&&await x;i?S=i.commit():(P=null,tt.$set(b.props),P&&Object.assign(b.props.page,P),Pe(b.props.page),S=r?.()),$e=!0}else await pt(b,Ge,!1);let{activeElement:te}=document;if(await S,await s(),await s(),Z!==d)return v.reject(Error(`navigation aborted`)),!1;b.props.page&&P&&Object.assign(b.props.page,P);let C=null;if(Qe){let e=n?n.scroll:a?k():null;e?scrollTo(e.x,e.y):(C=t.hash&&document.getElementById(Vt(t)))?C.scrollIntoView():scrollTo(0,0)}let ne=document.activeElement!==te&&document.activeElement!==document.body;!i&&!ne&&Lt(t,!C),Qe=!0,q=!1,e===`popstate`&&ct(X),v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=k()),G.forEach(e=>e(v.navigation)),L.navigating.set(N.current=null)}async function kt(e,t,n,r,i){return e.origin===O&&e.pathname===location.pathname&&!Xe?await Ct({status:r,error:n,url:e,route:t}):await R(e,i)}function At(){let e,t={element:void 0,href:void 0},n;B.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{a(n,D.hover)},20)});function r(e){e.defaultPrevented||a(e.composedPath()[0],D.tap)}B.addEventListener(`mousedown`,r),B.addEventListener(`touchstart`,r,{passive:!0});let i=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(ft(new URL(t.target.href)),i.unobserve(t.target))},{threshold:0});async function a(e,r){let i=ve(e,B),a=i===t.element&&i?.href===t.href&&r>=n;if(!i||a)return;let{url:o,external:s,download:c}=ye(i,w,V.hash);if(s||c)return;let l=j(i),u=o&&Dt(K.url)===Dt(o);if(!(l.reload||u))if(r<=l.preload_data){t={element:i,href:i.href},n=D.tap;let e=await Tt(o,!1);if(!e)return;dt(e)}else r<=l.preload_code&&(t={element:i,href:i.href},n=r,ft(o))}function o(){i.disconnect();for(let e of B.querySelectorAll(`a`)){let{url:t,external:n,download:r}=ye(e,w,V.hash);if(n||r)continue;let a=j(e);a.reload||(a.preload_code===D.viewport&&i.observe(e),a.preload_code===D.eager&&ft(t))}}G.add(o),o()}function $(e,t){if(e instanceof c)return e.body;let n=ke(e),r=Ae(e);return V.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function jt(e,t={}){return e=new URL(he(e)),e.origin===O?ut(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Mt(e){if(typeof e==`function`)H.push(e);else{let{href:t}=new URL(e,location.href);H.push(e=>e.href===t)}}function Nt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(lt(),!q){let e=Rt(K,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};Je.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&lt()}),!navigator.connection?.saveData&&!/2g/.test(navigator.connection?.effectiveType)&&At(),B.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=ve(t.composedPath()[0],B);if(!n)return;let{url:r,external:i,target:a,download:o}=ye(n,w,V.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=j(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(V.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Ot({url:r,type:`link`,event:t})?q=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=K.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(J=!0,Be(Y),e(r),!s.replace_state)return;J=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Q({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),B.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(Ce(r,w,!1))return;let i=e.target,a=j(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Q({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!It)if(t.state?.[`sveltekit:history`]){let n=t.state[T];if(Z={},n===Y)return;let r=F[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[E],s=K.url?m(location)===m(K.url):!1;if(o===X&&($e||s)){i!==M.state&&(M.state=i),e(a),F[Y]=k(),r&&scrollTo(r.x,r.y),Y=n;return}let c=n-Y;await Q({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{Y=n,X=o},block:()=>{history.go(-c)},nav_token:Z,event:t})}else J||(e(new URL(location.href)),V.hash&&location.reload())}),addEventListener(`hashchange`,()=>{J&&(J=!1,history.replaceState({...history.state,[T]:++Y,[E]:X},``,location.href))});for(let e of document.querySelectorAll(`link`))ze.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&L.navigating.set(N.current=null)});function e(e){K.url=M.url=e,L.page.set(zt(M)),L.page.notify()}}async function Pt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Xe=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await Tt(u,!1)||{}),d=Ue.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Ft(r.uses)),ht({loader:V.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:vt(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await mt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l){await R(new URL(t.location,location.href));return}f=await Ct({status:ke(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f.props.page&&(f.props.page.state={}),await pt(f,e,p)}function Ft(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var It=!1;function Lt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Vt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=k();setTimeout(()=>{let a=history.state;It=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),It=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Rt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(g),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:k()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function zt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Bt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Vt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{M as a,l as c,N as i,at as n,je as o,L as r,we as s,jt as t};
@@ -1 +1 @@
1
- import"./DF6QYH3p.js";import{r as e}from"./K3JxBPSQ.js";import{u as t}from"./Dv09pO87.js";var n=()=>{let t=e;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},r={subscribe(e){return n().page.subscribe(e)}},i=e=>e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1),a=e=>{let t=e.split(`.`);return t.length<=1?e:t[t.length-1]},o=e=>{let n=new Map;for(let t of e.surfaces)for(let e of t.stateDefinitions){let r=e.path.split(`.`)[0]??e.path,i=n.get(r);i||(i={fields:new Map,surfaces:new Set},n.set(r,i)),i.fields.has(e.path)||i.fields.set(e.path,{name:a(e.path),path:e.path,type:e.type,source:`deduced`}),i.surfaces.add(t.name)}let r=new Map;for(let t of e.entities)r.set(t.namespace,t);let o=new Set([...n.keys(),...r.keys()]),s=[];for(let e of o){let a=r.get(e),o=n.get(e),c=new Map;if(o)for(let[e,t]of o.fields)c.set(e,t);if(a)for(let e of a.fields)e.path&&c.set(String(e.path),{id:e.id,name:e.name,path:e.path,type:e.type,source:`declared`,fields:e.fields,items:e.items});let l=Array.from(c.values()).sort((e,t)=>e.path.localeCompare(t.path));s.push({id:a?.id,name:i(t(e)),namespace:e,description:a?.description,resourceId:a?.resourceId,fields:l,isMaterialized:a!==void 0,usedBySurfaces:o?Array.from(o.surfaces).sort():[]})}return s.sort((e,t)=>e.namespace.localeCompare(t.namespace)),s},s=(e,t)=>e.fields.map(e=>({id:e.id??t(),name:e.name,path:e.path,type:e.type,fields:e.fields,items:e.items})),c=e=>{let t=e.split(`.`)[0];return t&&t.length>0?t:`_root`},l=e=>{let t=new Map,n=(e,n)=>{let r=t.get(e);r||(r=[],t.set(e,r)),r.push(n)};for(let t of e.surfaces){for(let e of t.actions){for(let r of e.emittedEvents)n(String(r),{surfaceId:t.id,surfaceName:t.name,actionId:e.id,actionName:e.name,origin:`action_default`});for(let r of e.effects)r.type===`emit_event`&&n(String(r.event),{surfaceId:t.id,surfaceName:t.name,actionId:e.id,actionName:e.name,origin:`action_effect`,description:r.description});for(let r of e.rules)r.effect.type===`emit_event`&&n(String(r.effect.event),{surfaceId:t.id,surfaceName:t.name,actionId:e.id,actionName:e.name,origin:`action_rule_effect`,description:r.description})}for(let e of t.rules)e.effect.type===`emit_event`&&n(String(e.effect.event),{surfaceId:t.id,surfaceName:t.name,origin:`surface_rule_effect`,description:e.description})}let r=[];for(let[e,n]of t)r.push({name:e,group:c(e),emissions:n});return r.sort((e,t)=>e.group===t.group?String(e.name).localeCompare(String(t.name)):e.group.localeCompare(t.group)),r},u=e=>{let t=new Map;for(let n of e){let e=t.get(n.group);e||(e=[],t.set(n.group,e)),e.push(n)}return Array.from(t.entries()).map(([e,t])=>({group:e,events:t})).sort((e,t)=>e.group.localeCompare(t.group))},d=e=>{let t=new Map;e.surfaces.forEach((e,n)=>{t.set(e.id,{name:e.name,index:n})});let n=new Map,r=e=>e!==void 0&&t.has(e),i=(e,i,a)=>{if(!r(i))return;let o=`${e}__${i}`,s=n.get(o);s||(s={sources:[],fromIndex:t.get(e)?.index??0},n.set(o,s)),s.sources.push(a)};for(let t of e.surfaces){let e=t.id,n=t.name;for(let r of t.transitions)i(e,r.target,{surfaceId:e,surfaceName:n,origin:`declared`,description:r.label??r.description});for(let r of t.actions){for(let t of r.effects)t.type===`transition_surface`&&i(e,t.target,{surfaceId:e,surfaceName:n,actionId:r.id,actionName:r.name,origin:`action_effect`,description:t.description});for(let t of r.rules)t.effect.type===`transition_surface`&&i(e,t.effect.target,{surfaceId:e,surfaceName:n,actionId:r.id,actionName:r.name,origin:`action_rule_effect`,description:t.description})}for(let r of t.rules)r.effect.type===`transition_surface`&&i(e,r.effect.target,{surfaceId:e,surfaceName:n,origin:`surface_rule_effect`,description:r.description})}let a=[];for(let[e,r]of n){let[n,i]=e.split(`__`),o=t.get(n),s=t.get(i);!o||!s||a.push({fromSurfaceId:n,fromSurfaceName:o.name,toSurfaceId:i,toSurfaceName:s.name,sources:r.sources})}return a.sort((e,n)=>{let r=t.get(e.fromSurfaceId)?.index??0,i=t.get(n.fromSurfaceId)?.index??0;return r===i?(t.get(e.toSurfaceId)?.index??0)-(t.get(n.toSurfaceId)?.index??0):r-i}),a},f=e=>{let t=new Map;for(let n of e){let e=t.get(n.fromSurfaceId);e||(e={fromSurfaceId:n.fromSurfaceId,fromSurfaceName:n.fromSurfaceName,transitions:[]},t.set(n.fromSurfaceId,e)),e.transitions.push(n)}return Array.from(t.values())};export{o as a,u as i,f as n,s as o,l as r,r as s,d as t};
1
+ import"./DF6QYH3p.js";import{r as e}from"./BxAqshUk.js";import{u as t}from"./C0OSZ2OV.js";var n=()=>{let t=e;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},r={subscribe(e){return n().page.subscribe(e)}},i=e=>e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1),a=e=>{let t=e.split(`.`);return t.length<=1?e:t[t.length-1]},o=e=>{let n=new Map;for(let t of e.surfaces)for(let e of t.stateDefinitions){let r=e.path.split(`.`)[0]??e.path,i=n.get(r);i||(i={fields:new Map,surfaces:new Set},n.set(r,i)),i.fields.has(e.path)||i.fields.set(e.path,{name:a(e.path),path:e.path,type:e.type,source:`deduced`}),i.surfaces.add(t.name)}let r=new Map;for(let t of e.entities)r.set(t.namespace,t);let o=new Set([...n.keys(),...r.keys()]),s=[];for(let e of o){let a=r.get(e),o=n.get(e),c=new Map;if(o)for(let[e,t]of o.fields)c.set(e,t);if(a)for(let e of a.fields)e.path&&c.set(String(e.path),{id:e.id,name:e.name,path:e.path,type:e.type,source:`declared`,fields:e.fields,items:e.items});let l=Array.from(c.values()).sort((e,t)=>e.path.localeCompare(t.path));s.push({id:a?.id,name:i(t(e)),namespace:e,description:a?.description,resourceId:a?.resourceId,fields:l,isMaterialized:a!==void 0,usedBySurfaces:o?Array.from(o.surfaces).sort():[]})}return s.sort((e,t)=>e.namespace.localeCompare(t.namespace)),s},s=(e,t)=>e.fields.map(e=>({id:e.id??t(),name:e.name,path:e.path,type:e.type,fields:e.fields,items:e.items})),c=e=>{let t=e.split(`.`)[0];return t&&t.length>0?t:`_root`},l=e=>{let t=new Map,n=(e,n)=>{let r=t.get(e);r||(r=[],t.set(e,r)),r.push(n)};for(let t of e.surfaces){for(let e of t.actions){for(let r of e.emittedEvents)n(String(r),{surfaceId:t.id,surfaceName:t.name,actionId:e.id,actionName:e.name,origin:`action_default`});for(let r of e.effects)r.type===`emit_event`&&n(String(r.event),{surfaceId:t.id,surfaceName:t.name,actionId:e.id,actionName:e.name,origin:`action_effect`,description:r.description});for(let r of e.rules)r.effect.type===`emit_event`&&n(String(r.effect.event),{surfaceId:t.id,surfaceName:t.name,actionId:e.id,actionName:e.name,origin:`action_rule_effect`,description:r.description})}for(let e of t.rules)e.effect.type===`emit_event`&&n(String(e.effect.event),{surfaceId:t.id,surfaceName:t.name,origin:`surface_rule_effect`,description:e.description})}let r=[];for(let[e,n]of t)r.push({name:e,group:c(e),emissions:n});return r.sort((e,t)=>e.group===t.group?String(e.name).localeCompare(String(t.name)):e.group.localeCompare(t.group)),r},u=e=>{let t=new Map;for(let n of e){let e=t.get(n.group);e||(e=[],t.set(n.group,e)),e.push(n)}return Array.from(t.entries()).map(([e,t])=>({group:e,events:t})).sort((e,t)=>e.group.localeCompare(t.group))},d=e=>{let t=new Map;e.surfaces.forEach((e,n)=>{t.set(e.id,{name:e.name,index:n})});let n=new Map,r=e=>e!==void 0&&t.has(e),i=(e,i,a)=>{if(!r(i))return;let o=`${e}__${i}`,s=n.get(o);s||(s={sources:[],fromIndex:t.get(e)?.index??0},n.set(o,s)),s.sources.push(a)};for(let t of e.surfaces){let e=t.id,n=t.name;for(let r of t.transitions)i(e,r.target,{surfaceId:e,surfaceName:n,origin:`declared`,description:r.label??r.description});for(let r of t.actions){for(let t of r.effects)t.type===`transition_surface`&&i(e,t.target,{surfaceId:e,surfaceName:n,actionId:r.id,actionName:r.name,origin:`action_effect`,description:t.description});for(let t of r.rules)t.effect.type===`transition_surface`&&i(e,t.effect.target,{surfaceId:e,surfaceName:n,actionId:r.id,actionName:r.name,origin:`action_rule_effect`,description:t.description})}for(let r of t.rules)r.effect.type===`transition_surface`&&i(e,r.effect.target,{surfaceId:e,surfaceName:n,origin:`surface_rule_effect`,description:r.description})}let a=[];for(let[e,r]of n){let[n,i]=e.split(`__`),o=t.get(n),s=t.get(i);!o||!s||a.push({fromSurfaceId:n,fromSurfaceName:o.name,toSurfaceId:i,toSurfaceName:s.name,sources:r.sources})}return a.sort((e,n)=>{let r=t.get(e.fromSurfaceId)?.index??0,i=t.get(n.fromSurfaceId)?.index??0;return r===i?(t.get(e.toSurfaceId)?.index??0)-(t.get(n.toSurfaceId)?.index??0):r-i}),a},f=e=>{let t=new Map;for(let n of e){let e=t.get(n.fromSurfaceId);e||(e={fromSurfaceId:n.fromSurfaceId,fromSurfaceName:n.fromSurfaceName,transitions:[]},t.set(n.fromSurfaceId,e)),e.transitions.push(n)}return Array.from(t.values())};export{o as a,u as i,f as n,s as o,l as r,r as s,d as t};