modality-ts 0.0.8 → 0.0.9

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 (578) hide show
  1. package/dist/check/diagnostics/bounds.d.ts +4 -0
  2. package/dist/check/diagnostics/bounds.d.ts.map +1 -0
  3. package/dist/check/diagnostics/bounds.js +25 -0
  4. package/dist/check/diagnostics/bounds.js.map +1 -0
  5. package/dist/check/diagnostics/vacuity.d.ts +3 -0
  6. package/dist/check/diagnostics/vacuity.d.ts.map +1 -0
  7. package/dist/check/diagnostics/vacuity.js +22 -0
  8. package/dist/check/diagnostics/vacuity.js.map +1 -0
  9. package/dist/check/engine/check-model.d.ts +4 -0
  10. package/dist/check/engine/check-model.d.ts.map +1 -0
  11. package/dist/check/engine/check-model.js +162 -0
  12. package/dist/check/engine/check-model.js.map +1 -0
  13. package/dist/check/engine/initial-states.d.ts +3 -0
  14. package/dist/check/engine/initial-states.d.ts.map +1 -0
  15. package/dist/check/engine/initial-states.js +11 -0
  16. package/dist/check/engine/initial-states.js.map +1 -0
  17. package/dist/check/engine/model-api.d.ts +4 -0
  18. package/dist/check/engine/model-api.d.ts.map +1 -0
  19. package/dist/check/engine/model-api.js +15 -0
  20. package/dist/check/engine/model-api.js.map +1 -0
  21. package/dist/check/engine/mounts.d.ts +3 -0
  22. package/dist/check/engine/mounts.d.ts.map +1 -0
  23. package/dist/check/engine/mounts.js +13 -0
  24. package/dist/check/engine/mounts.js.map +1 -0
  25. package/dist/check/engine/stabilize.d.ts +3 -0
  26. package/dist/check/engine/stabilize.d.ts.map +1 -0
  27. package/dist/check/engine/stabilize.js +82 -0
  28. package/dist/check/engine/stabilize.js.map +1 -0
  29. package/dist/check/engine/state-utils.d.ts +12 -0
  30. package/dist/check/engine/state-utils.d.ts.map +1 -0
  31. package/dist/check/engine/state-utils.js +30 -0
  32. package/dist/check/engine/state-utils.js.map +1 -0
  33. package/dist/check/engine/transitions.d.ts +4 -0
  34. package/dist/check/engine/transitions.d.ts.map +1 -0
  35. package/dist/check/engine/transitions.js +15 -0
  36. package/dist/check/engine/transitions.js.map +1 -0
  37. package/dist/check/index.d.ts +14 -0
  38. package/dist/check/index.d.ts.map +1 -0
  39. package/dist/check/index.js +13 -0
  40. package/dist/check/index.js.map +1 -0
  41. package/dist/check/properties/checked-state.d.ts +3 -0
  42. package/dist/check/properties/checked-state.d.ts.map +1 -0
  43. package/dist/check/properties/checked-state.js +21 -0
  44. package/dist/check/properties/checked-state.js.map +1 -0
  45. package/dist/check/properties/finalize.d.ts +4 -0
  46. package/dist/check/properties/finalize.d.ts.map +1 -0
  47. package/dist/check/properties/finalize.js +71 -0
  48. package/dist/check/properties/finalize.js.map +1 -0
  49. package/dist/check/properties/leads-to.d.ts +8 -0
  50. package/dist/check/properties/leads-to.d.ts.map +1 -0
  51. package/dist/check/properties/leads-to.js +69 -0
  52. package/dist/check/properties/leads-to.js.map +1 -0
  53. package/dist/check/properties/observe.d.ts +5 -0
  54. package/dist/check/properties/observe.d.ts.map +1 -0
  55. package/dist/check/properties/observe.js +56 -0
  56. package/dist/check/properties/observe.js.map +1 -0
  57. package/dist/check/properties/reachable-from.d.ts +8 -0
  58. package/dist/check/properties/reachable-from.d.ts.map +1 -0
  59. package/dist/check/properties/reachable-from.js +19 -0
  60. package/dist/check/properties/reachable-from.js.map +1 -0
  61. package/dist/check/runtime/domains.d.ts +5 -0
  62. package/dist/check/runtime/domains.d.ts.map +1 -0
  63. package/dist/check/runtime/domains.js +53 -0
  64. package/dist/check/runtime/domains.js.map +1 -0
  65. package/dist/check/runtime/effects.d.ts +9 -0
  66. package/dist/check/runtime/effects.d.ts.map +1 -0
  67. package/dist/check/runtime/effects.js +86 -0
  68. package/dist/check/runtime/effects.js.map +1 -0
  69. package/dist/check/runtime/expr.d.ts +7 -0
  70. package/dist/check/runtime/expr.d.ts.map +1 -0
  71. package/dist/check/runtime/expr.js +49 -0
  72. package/dist/check/runtime/expr.js.map +1 -0
  73. package/dist/check/runtime/navigation.d.ts +7 -0
  74. package/dist/check/runtime/navigation.d.ts.map +1 -0
  75. package/dist/check/runtime/navigation.js +60 -0
  76. package/dist/check/runtime/navigation.js.map +1 -0
  77. package/dist/check/runtime/opaque.d.ts +3 -0
  78. package/dist/check/runtime/opaque.d.ts.map +1 -0
  79. package/dist/check/runtime/opaque.js +72 -0
  80. package/dist/check/runtime/opaque.js.map +1 -0
  81. package/dist/check/runtime/paths.d.ts +4 -0
  82. package/dist/check/runtime/paths.d.ts.map +1 -0
  83. package/dist/check/runtime/paths.js +28 -0
  84. package/dist/check/runtime/paths.js.map +1 -0
  85. package/dist/check/runtime/pending.d.ts +9 -0
  86. package/dist/check/runtime/pending.d.ts.map +1 -0
  87. package/dist/check/runtime/pending.js +5 -0
  88. package/dist/check/runtime/pending.js.map +1 -0
  89. package/dist/check/runtime/tokens.d.ts +7 -0
  90. package/dist/check/runtime/tokens.d.ts.map +1 -0
  91. package/dist/check/runtime/tokens.js +36 -0
  92. package/dist/check/runtime/tokens.js.map +1 -0
  93. package/dist/check/slicing/slice-model.d.ts +5 -0
  94. package/dist/check/slicing/slice-model.d.ts.map +1 -0
  95. package/dist/check/slicing/slice-model.js +48 -0
  96. package/dist/check/slicing/slice-model.js.map +1 -0
  97. package/dist/check/traces/step-facts.d.ts +3 -0
  98. package/dist/check/traces/step-facts.d.ts.map +1 -0
  99. package/dist/check/traces/step-facts.js +35 -0
  100. package/dist/check/traces/step-facts.js.map +1 -0
  101. package/dist/check/traces/trace.d.ts +8 -0
  102. package/dist/check/traces/trace.d.ts.map +1 -0
  103. package/dist/check/traces/trace.js +42 -0
  104. package/dist/check/traces/trace.js.map +1 -0
  105. package/dist/{checker/search/index.d.ts → check/types.d.ts} +16 -6
  106. package/dist/check/types.d.ts.map +1 -0
  107. package/dist/{kernel/ir → check}/types.js.map +1 -1
  108. package/dist/cli/check.d.ts +3 -0
  109. package/dist/cli/check.d.ts.map +1 -0
  110. package/dist/cli/check.js +2 -0
  111. package/dist/cli/check.js.map +1 -0
  112. package/dist/cli/ci.d.ts.map +1 -0
  113. package/dist/cli/ci.js.map +1 -0
  114. package/dist/{modality → cli}/cli.d.ts.map +1 -1
  115. package/dist/{modality → cli}/cli.js +131 -18
  116. package/dist/cli/cli.js.map +1 -0
  117. package/dist/cli/codegen/model.d.ts +3 -0
  118. package/dist/cli/codegen/model.d.ts.map +1 -0
  119. package/dist/{modality → cli}/codegen/model.js +18 -10
  120. package/dist/cli/codegen/model.js.map +1 -0
  121. package/dist/{modality → cli}/codegen/replay-test.d.ts +1 -1
  122. package/dist/cli/codegen/replay-test.d.ts.map +1 -0
  123. package/dist/{modality → cli}/codegen/replay-test.js +12 -12
  124. package/dist/cli/codegen/replay-test.js.map +1 -0
  125. package/dist/cli/conform.d.ts +3 -0
  126. package/dist/cli/conform.d.ts.map +1 -0
  127. package/dist/cli/conform.js +2 -0
  128. package/dist/cli/conform.js.map +1 -0
  129. package/dist/cli/export-tla.d.ts +3 -0
  130. package/dist/cli/export-tla.d.ts.map +1 -0
  131. package/dist/cli/export-tla.js +2 -0
  132. package/dist/cli/export-tla.js.map +1 -0
  133. package/dist/{modality → cli}/extract.d.ts +1 -1
  134. package/dist/cli/extract.d.ts.map +1 -0
  135. package/dist/cli/extract.js.map +1 -0
  136. package/dist/{modality → cli}/features/check/command.d.ts +2 -2
  137. package/dist/cli/features/check/command.d.ts.map +1 -0
  138. package/dist/{modality → cli}/features/check/command.js +53 -17
  139. package/dist/cli/features/check/command.js.map +1 -0
  140. package/dist/cli/features/check/index.d.ts +3 -0
  141. package/dist/cli/features/check/index.d.ts.map +1 -0
  142. package/dist/cli/features/check/index.js +2 -0
  143. package/dist/cli/features/check/index.js.map +1 -0
  144. package/dist/cli/features/ci/command.d.ts.map +1 -0
  145. package/dist/{modality → cli}/features/ci/command.js +66 -26
  146. package/dist/cli/features/ci/command.js.map +1 -0
  147. package/dist/cli/features/ci/index.d.ts.map +1 -0
  148. package/dist/cli/features/ci/index.js.map +1 -0
  149. package/dist/{modality → cli}/features/conform/command.d.ts +1 -1
  150. package/dist/cli/features/conform/command.d.ts.map +1 -0
  151. package/dist/{modality → cli}/features/conform/command.js +67 -25
  152. package/dist/cli/features/conform/command.js.map +1 -0
  153. package/dist/cli/features/conform/index.d.ts.map +1 -0
  154. package/dist/cli/features/conform/index.js.map +1 -0
  155. package/dist/{modality → cli}/features/export/command.d.ts +1 -1
  156. package/dist/cli/features/export/command.d.ts.map +1 -0
  157. package/dist/{modality → cli}/features/export/command.js +72 -27
  158. package/dist/cli/features/export/command.js.map +1 -0
  159. package/dist/{modality → cli}/features/export/index.d.ts +2 -2
  160. package/dist/cli/features/export/index.d.ts.map +1 -0
  161. package/dist/cli/features/export/index.js +2 -0
  162. package/dist/cli/features/export/index.js.map +1 -0
  163. package/dist/{modality → cli}/features/extract/command.d.ts +3 -3
  164. package/dist/cli/features/extract/command.d.ts.map +1 -0
  165. package/dist/{modality → cli}/features/extract/command.js +219 -77
  166. package/dist/cli/features/extract/command.js.map +1 -0
  167. package/dist/{modality → cli}/features/extract/index.d.ts +1 -1
  168. package/dist/cli/features/extract/index.d.ts.map +1 -0
  169. package/dist/cli/features/extract/index.js.map +1 -0
  170. package/dist/{modality → cli}/features/replay/command.d.ts +1 -1
  171. package/dist/cli/features/replay/command.d.ts.map +1 -0
  172. package/dist/{modality → cli}/features/replay/command.js +42 -16
  173. package/dist/cli/features/replay/command.js.map +1 -0
  174. package/dist/cli/features/replay/index.d.ts.map +1 -0
  175. package/dist/cli/features/replay/index.js.map +1 -0
  176. package/dist/{harness → cli/harness}/index.d.ts +1 -1
  177. package/dist/cli/harness/index.d.ts.map +1 -0
  178. package/dist/{harness → cli/harness}/index.js +128 -37
  179. package/dist/cli/harness/index.js.map +1 -0
  180. package/dist/{modality → cli}/overlay.d.ts +1 -1
  181. package/dist/cli/overlay.d.ts.map +1 -0
  182. package/dist/{modality → cli}/overlay.js +1 -1
  183. package/dist/cli/overlay.js.map +1 -0
  184. package/dist/{modality → cli}/registry/index.d.ts +2 -2
  185. package/dist/cli/registry/index.d.ts.map +1 -0
  186. package/dist/{modality → cli}/registry/index.js +32 -17
  187. package/dist/cli/registry/index.js.map +1 -0
  188. package/dist/cli/replay.d.ts +3 -0
  189. package/dist/cli/replay.d.ts.map +1 -0
  190. package/dist/cli/replay.js.map +1 -0
  191. package/dist/{runtime → cli/runtime}/index.d.ts +1 -1
  192. package/dist/cli/runtime/index.d.ts.map +1 -0
  193. package/dist/{runtime → cli/runtime}/index.js +37 -10
  194. package/dist/cli/runtime/index.js.map +1 -0
  195. package/dist/core/artifacts/index.d.ts.map +1 -0
  196. package/dist/{kernel → core}/artifacts/index.js +7 -2
  197. package/dist/core/artifacts/index.js.map +1 -0
  198. package/dist/core/index.d.ts.map +1 -0
  199. package/dist/core/index.js.map +1 -0
  200. package/dist/core/ir/canonical.d.ts.map +1 -0
  201. package/dist/{kernel → core}/ir/canonical.js +30 -7
  202. package/dist/core/ir/canonical.js.map +1 -0
  203. package/dist/core/ir/domains.d.ts.map +1 -0
  204. package/dist/{kernel → core}/ir/domains.js +18 -6
  205. package/dist/core/ir/domains.js.map +1 -0
  206. package/dist/core/ir/types.d.ts.map +1 -0
  207. package/dist/{kernel/trace → core/ir}/types.js.map +1 -1
  208. package/dist/core/ir/validator.d.ts.map +1 -0
  209. package/dist/{kernel → core}/ir/validator.js +48 -19
  210. package/dist/core/ir/validator.js.map +1 -0
  211. package/dist/core/overlay/index.d.ts.map +1 -0
  212. package/dist/{kernel → core}/overlay/index.js +35 -14
  213. package/dist/core/overlay/index.js.map +1 -0
  214. package/dist/core/props/index.d.ts.map +1 -0
  215. package/dist/{kernel → core}/props/index.js +69 -21
  216. package/dist/core/props/index.js.map +1 -0
  217. package/dist/{kernel → core}/report/types.d.ts.map +1 -1
  218. package/dist/{kernel → core}/report/types.js.map +1 -1
  219. package/dist/core/trace/types.d.ts.map +1 -0
  220. package/dist/core/trace/types.js +2 -0
  221. package/dist/core/trace/types.js.map +1 -0
  222. package/dist/extract/engine/index.d.ts +4 -0
  223. package/dist/extract/engine/index.d.ts.map +1 -0
  224. package/dist/extract/engine/index.js +4 -0
  225. package/dist/extract/engine/index.js.map +1 -0
  226. package/dist/{extraction → extract/engine}/pipeline/index.d.ts +1 -2
  227. package/dist/extract/engine/pipeline/index.d.ts.map +1 -0
  228. package/dist/{extraction → extract/engine}/pipeline/index.js +55 -18
  229. package/dist/extract/engine/pipeline/index.js.map +1 -0
  230. package/dist/{extraction → extract/engine}/spi/index.d.ts +17 -1
  231. package/dist/extract/engine/spi/index.d.ts.map +1 -0
  232. package/dist/extract/engine/spi/index.js.map +1 -0
  233. package/dist/extract/engine/ts/ast.d.ts +23 -0
  234. package/dist/extract/engine/ts/ast.d.ts.map +1 -0
  235. package/dist/extract/engine/ts/ast.js +97 -0
  236. package/dist/extract/engine/ts/ast.js.map +1 -0
  237. package/dist/extract/engine/ts/components.d.ts +21 -0
  238. package/dist/extract/engine/ts/components.d.ts.map +1 -0
  239. package/dist/extract/engine/ts/components.js +287 -0
  240. package/dist/extract/engine/ts/components.js.map +1 -0
  241. package/dist/extract/engine/ts/context.d.ts +10 -0
  242. package/dist/extract/engine/ts/context.d.ts.map +1 -0
  243. package/dist/extract/engine/ts/context.js +273 -0
  244. package/dist/extract/engine/ts/context.js.map +1 -0
  245. package/dist/extract/engine/ts/domains.d.ts +8 -0
  246. package/dist/extract/engine/ts/domains.d.ts.map +1 -0
  247. package/dist/extract/engine/ts/domains.js +262 -0
  248. package/dist/extract/engine/ts/domains.js.map +1 -0
  249. package/dist/extract/engine/ts/expressions.d.ts +2 -0
  250. package/dist/extract/engine/ts/expressions.d.ts.map +1 -0
  251. package/dist/extract/engine/ts/expressions.js +2 -0
  252. package/dist/extract/engine/ts/expressions.js.map +1 -0
  253. package/dist/extract/engine/ts/handlers.d.ts +4 -0
  254. package/dist/extract/engine/ts/handlers.d.ts.map +1 -0
  255. package/dist/extract/engine/ts/handlers.js +3 -0
  256. package/dist/extract/engine/ts/handlers.js.map +1 -0
  257. package/dist/extract/engine/ts/ids.d.ts +7 -0
  258. package/dist/extract/engine/ts/ids.d.ts.map +1 -0
  259. package/dist/extract/engine/ts/ids.js +63 -0
  260. package/dist/extract/engine/ts/ids.js.map +1 -0
  261. package/dist/extract/engine/ts/input-transitions.d.ts +5 -0
  262. package/dist/extract/engine/ts/input-transitions.d.ts.map +1 -0
  263. package/dist/extract/engine/ts/input-transitions.js +132 -0
  264. package/dist/extract/engine/ts/input-transitions.js.map +1 -0
  265. package/dist/extract/engine/ts/jsx.d.ts +3 -0
  266. package/dist/extract/engine/ts/jsx.d.ts.map +1 -0
  267. package/dist/extract/engine/ts/jsx.js +3 -0
  268. package/dist/extract/engine/ts/jsx.js.map +1 -0
  269. package/dist/extract/engine/ts/react-source-transitions.d.ts +24 -0
  270. package/dist/extract/engine/ts/react-source-transitions.d.ts.map +1 -0
  271. package/dist/extract/engine/ts/react-source-transitions.js +243 -0
  272. package/dist/extract/engine/ts/react-source-transitions.js.map +1 -0
  273. package/dist/extract/engine/ts/routes.d.ts +9 -0
  274. package/dist/extract/engine/ts/routes.d.ts.map +1 -0
  275. package/dist/extract/engine/ts/routes.js +94 -0
  276. package/dist/extract/engine/ts/routes.js.map +1 -0
  277. package/dist/extract/engine/ts/source.d.ts +3 -0
  278. package/dist/extract/engine/ts/source.d.ts.map +1 -0
  279. package/dist/extract/engine/ts/source.js +5 -0
  280. package/dist/extract/engine/ts/source.js.map +1 -0
  281. package/dist/extract/engine/ts/static-navigation.d.ts +5 -0
  282. package/dist/extract/engine/ts/static-navigation.d.ts.map +1 -0
  283. package/dist/extract/engine/ts/static-navigation.js +425 -0
  284. package/dist/extract/engine/ts/static-navigation.js.map +1 -0
  285. package/dist/extract/engine/ts/transition/async.d.ts +44 -0
  286. package/dist/extract/engine/ts/transition/async.d.ts.map +1 -0
  287. package/dist/extract/engine/ts/transition/async.js +546 -0
  288. package/dist/extract/engine/ts/transition/async.js.map +1 -0
  289. package/dist/extract/engine/ts/transition/component-props.d.ts +26 -0
  290. package/dist/extract/engine/ts/transition/component-props.d.ts.map +1 -0
  291. package/dist/extract/engine/ts/transition/component-props.js +200 -0
  292. package/dist/extract/engine/ts/transition/component-props.js.map +1 -0
  293. package/dist/extract/engine/ts/transition/effects.d.ts +33 -0
  294. package/dist/extract/engine/ts/transition/effects.d.ts.map +1 -0
  295. package/dist/extract/engine/ts/transition/effects.js +303 -0
  296. package/dist/extract/engine/ts/transition/effects.js.map +1 -0
  297. package/dist/extract/engine/ts/transition/expressions.d.ts +33 -0
  298. package/dist/extract/engine/ts/transition/expressions.d.ts.map +1 -0
  299. package/dist/extract/engine/ts/transition/expressions.js +353 -0
  300. package/dist/extract/engine/ts/transition/expressions.js.map +1 -0
  301. package/dist/extract/engine/ts/transition/guards.d.ts +21 -0
  302. package/dist/extract/engine/ts/transition/guards.d.ts.map +1 -0
  303. package/dist/extract/engine/ts/transition/guards.js +249 -0
  304. package/dist/extract/engine/ts/transition/guards.js.map +1 -0
  305. package/dist/extract/engine/ts/transition/handlers.d.ts +53 -0
  306. package/dist/extract/engine/ts/transition/handlers.d.ts.map +1 -0
  307. package/dist/extract/engine/ts/transition/handlers.js +438 -0
  308. package/dist/extract/engine/ts/transition/handlers.js.map +1 -0
  309. package/dist/extract/engine/ts/transition/locals.d.ts +16 -0
  310. package/dist/extract/engine/ts/transition/locals.d.ts.map +1 -0
  311. package/dist/extract/engine/ts/transition/locals.js +113 -0
  312. package/dist/extract/engine/ts/transition/locals.js.map +1 -0
  313. package/dist/extract/engine/ts/transition/navigation.d.ts +21 -0
  314. package/dist/extract/engine/ts/transition/navigation.d.ts.map +1 -0
  315. package/dist/extract/engine/ts/transition/navigation.js +129 -0
  316. package/dist/extract/engine/ts/transition/navigation.js.map +1 -0
  317. package/dist/extract/engine/ts/transition/plugin-calls.d.ts +10 -0
  318. package/dist/extract/engine/ts/transition/plugin-calls.d.ts.map +1 -0
  319. package/dist/extract/engine/ts/transition/plugin-calls.js +114 -0
  320. package/dist/extract/engine/ts/transition/plugin-calls.js.map +1 -0
  321. package/dist/extract/engine/ts/transition/timers.d.ts +15 -0
  322. package/dist/extract/engine/ts/transition/timers.d.ts.map +1 -0
  323. package/dist/extract/engine/ts/transition/timers.js +121 -0
  324. package/dist/extract/engine/ts/transition/timers.js.map +1 -0
  325. package/dist/extract/engine/ts/transition/ui.d.ts +12 -0
  326. package/dist/extract/engine/ts/transition/ui.d.ts.map +1 -0
  327. package/dist/extract/engine/ts/transition/ui.js +113 -0
  328. package/dist/extract/engine/ts/transition/ui.js.map +1 -0
  329. package/dist/extract/engine/ts/traversal.d.ts +3 -0
  330. package/dist/extract/engine/ts/traversal.d.ts.map +1 -0
  331. package/dist/extract/engine/ts/traversal.js +6 -0
  332. package/dist/extract/engine/ts/traversal.js.map +1 -0
  333. package/dist/extract/engine/ts/types.d.ts +46 -0
  334. package/dist/extract/engine/ts/types.d.ts.map +1 -0
  335. package/dist/extract/engine/ts/types.js +2 -0
  336. package/dist/extract/engine/ts/types.js.map +1 -0
  337. package/dist/extract/index.d.ts +2 -0
  338. package/dist/extract/index.d.ts.map +1 -0
  339. package/dist/extract/index.js +2 -0
  340. package/dist/extract/index.js.map +1 -0
  341. package/dist/extract/sources/jotai/discover.d.ts +3 -0
  342. package/dist/extract/sources/jotai/discover.d.ts.map +1 -0
  343. package/dist/extract/sources/jotai/discover.js +65 -0
  344. package/dist/extract/sources/jotai/discover.js.map +1 -0
  345. package/dist/extract/sources/jotai/domains.d.ts +6 -0
  346. package/dist/extract/sources/jotai/domains.d.ts.map +1 -0
  347. package/dist/extract/sources/jotai/domains.js +283 -0
  348. package/dist/extract/sources/jotai/domains.js.map +1 -0
  349. package/dist/{sources → extract/sources}/jotai/harness.d.ts +2 -2
  350. package/dist/extract/sources/jotai/harness.d.ts.map +1 -0
  351. package/dist/{sources → extract/sources}/jotai/harness.js +1 -1
  352. package/dist/extract/sources/jotai/harness.js.map +1 -0
  353. package/dist/extract/sources/jotai/index.d.ts +4 -0
  354. package/dist/extract/sources/jotai/index.d.ts.map +1 -0
  355. package/dist/extract/sources/jotai/index.js +19 -0
  356. package/dist/extract/sources/jotai/index.js.map +1 -0
  357. package/dist/extract/sources/jotai/writes.d.ts +8 -0
  358. package/dist/extract/sources/jotai/writes.d.ts.map +1 -0
  359. package/dist/extract/sources/jotai/writes.js +173 -0
  360. package/dist/extract/sources/jotai/writes.js.map +1 -0
  361. package/dist/{sources → extract/sources}/router/harness.d.ts +1 -1
  362. package/dist/extract/sources/router/harness.d.ts.map +1 -0
  363. package/dist/{sources → extract/sources}/router/harness.js +6 -2
  364. package/dist/extract/sources/router/harness.js.map +1 -0
  365. package/dist/extract/sources/router/index.d.ts +9 -0
  366. package/dist/extract/sources/router/index.d.ts.map +1 -0
  367. package/dist/extract/sources/router/index.js +22 -0
  368. package/dist/extract/sources/router/index.js.map +1 -0
  369. package/dist/extract/sources/router/navigation.d.ts +5 -0
  370. package/dist/extract/sources/router/navigation.d.ts.map +1 -0
  371. package/dist/extract/sources/router/navigation.js +16 -0
  372. package/dist/extract/sources/router/navigation.js.map +1 -0
  373. package/dist/extract/sources/router/routes.d.ts +4 -0
  374. package/dist/extract/sources/router/routes.d.ts.map +1 -0
  375. package/dist/extract/sources/router/routes.js +28 -0
  376. package/dist/extract/sources/router/routes.js.map +1 -0
  377. package/dist/extract/sources/swr/discover.d.ts +11 -0
  378. package/dist/extract/sources/swr/discover.d.ts.map +1 -0
  379. package/dist/extract/sources/swr/discover.js +175 -0
  380. package/dist/extract/sources/swr/discover.js.map +1 -0
  381. package/dist/extract/sources/swr/domains.d.ts +5 -0
  382. package/dist/extract/sources/swr/domains.d.ts.map +1 -0
  383. package/dist/extract/sources/swr/domains.js +99 -0
  384. package/dist/extract/sources/swr/domains.js.map +1 -0
  385. package/dist/{sources → extract/sources}/swr/harness.d.ts +2 -2
  386. package/dist/extract/sources/swr/harness.d.ts.map +1 -0
  387. package/dist/{sources → extract/sources}/swr/harness.js +3 -1
  388. package/dist/extract/sources/swr/harness.js.map +1 -0
  389. package/dist/extract/sources/swr/index.d.ts +6 -0
  390. package/dist/extract/sources/swr/index.d.ts.map +1 -0
  391. package/dist/extract/sources/swr/index.js +22 -0
  392. package/dist/extract/sources/swr/index.js.map +1 -0
  393. package/dist/{sources/swr/index.d.ts → extract/sources/swr/template.d.ts} +4 -6
  394. package/dist/extract/sources/swr/template.d.ts.map +1 -0
  395. package/dist/extract/sources/swr/template.js +331 -0
  396. package/dist/extract/sources/swr/template.js.map +1 -0
  397. package/dist/extract/sources/swr/writes.d.ts +3 -0
  398. package/dist/extract/sources/swr/writes.d.ts.map +1 -0
  399. package/dist/extract/sources/swr/writes.js +54 -0
  400. package/dist/extract/sources/swr/writes.js.map +1 -0
  401. package/dist/{sources → extract/sources}/use-state/harness.d.ts +2 -2
  402. package/dist/extract/sources/use-state/harness.d.ts.map +1 -0
  403. package/dist/{sources → extract/sources}/use-state/harness.js +1 -1
  404. package/dist/extract/sources/use-state/harness.js.map +1 -0
  405. package/dist/extract/sources/use-state/index.d.ts +4 -0
  406. package/dist/extract/sources/use-state/index.d.ts.map +1 -0
  407. package/dist/{sources → extract/sources}/use-state/index.js +84 -31
  408. package/dist/extract/sources/use-state/index.js.map +1 -0
  409. package/dist/extract/sources/use-state/transitions.d.ts +4 -0
  410. package/dist/extract/sources/use-state/transitions.d.ts.map +1 -0
  411. package/dist/extract/sources/use-state/transitions.js +20 -0
  412. package/dist/extract/sources/use-state/transitions.js.map +1 -0
  413. package/dist/extract/sources/use-state/types.d.ts +67 -0
  414. package/dist/extract/sources/use-state/types.d.ts.map +1 -0
  415. package/dist/extract/sources/use-state/types.js +2 -0
  416. package/dist/extract/sources/use-state/types.js.map +1 -0
  417. package/package.json +85 -71
  418. package/dist/checker/encode/index.d.ts +0 -2
  419. package/dist/checker/encode/index.d.ts.map +0 -1
  420. package/dist/checker/encode/index.js +0 -2
  421. package/dist/checker/encode/index.js.map +0 -1
  422. package/dist/checker/index.d.ts +0 -6
  423. package/dist/checker/index.d.ts.map +0 -1
  424. package/dist/checker/index.js +0 -6
  425. package/dist/checker/index.js.map +0 -1
  426. package/dist/checker/monitors/index.d.ts +0 -2
  427. package/dist/checker/monitors/index.d.ts.map +0 -1
  428. package/dist/checker/monitors/index.js.map +0 -1
  429. package/dist/checker/search/eval.d.ts +0 -16
  430. package/dist/checker/search/eval.d.ts.map +0 -1
  431. package/dist/checker/search/eval.js +0 -308
  432. package/dist/checker/search/eval.js.map +0 -1
  433. package/dist/checker/search/index.d.ts.map +0 -1
  434. package/dist/checker/search/index.js +0 -556
  435. package/dist/checker/search/index.js.map +0 -1
  436. package/dist/checker/slicing/index.d.ts +0 -2
  437. package/dist/checker/slicing/index.d.ts.map +0 -1
  438. package/dist/checker/slicing/index.js +0 -2
  439. package/dist/checker/slicing/index.js.map +0 -1
  440. package/dist/checker/traces/index.d.ts +0 -2
  441. package/dist/checker/traces/index.d.ts.map +0 -1
  442. package/dist/checker/traces/index.js +0 -2
  443. package/dist/checker/traces/index.js.map +0 -1
  444. package/dist/extraction/index.d.ts +0 -34
  445. package/dist/extraction/index.d.ts.map +0 -1
  446. package/dist/extraction/index.js +0 -2982
  447. package/dist/extraction/index.js.map +0 -1
  448. package/dist/extraction/pipeline/index.d.ts.map +0 -1
  449. package/dist/extraction/pipeline/index.js.map +0 -1
  450. package/dist/extraction/spi/index.d.ts.map +0 -1
  451. package/dist/extraction/spi/index.js +0 -2
  452. package/dist/extraction/spi/index.js.map +0 -1
  453. package/dist/harness/index.d.ts.map +0 -1
  454. package/dist/harness/index.js.map +0 -1
  455. package/dist/kernel/artifacts/index.d.ts.map +0 -1
  456. package/dist/kernel/artifacts/index.js.map +0 -1
  457. package/dist/kernel/index.d.ts.map +0 -1
  458. package/dist/kernel/index.js.map +0 -1
  459. package/dist/kernel/ir/canonical.d.ts.map +0 -1
  460. package/dist/kernel/ir/canonical.js.map +0 -1
  461. package/dist/kernel/ir/domains.d.ts.map +0 -1
  462. package/dist/kernel/ir/domains.js.map +0 -1
  463. package/dist/kernel/ir/types.d.ts.map +0 -1
  464. package/dist/kernel/ir/validator.d.ts.map +0 -1
  465. package/dist/kernel/ir/validator.js.map +0 -1
  466. package/dist/kernel/overlay/index.d.ts.map +0 -1
  467. package/dist/kernel/overlay/index.js.map +0 -1
  468. package/dist/kernel/props/index.d.ts.map +0 -1
  469. package/dist/kernel/props/index.js.map +0 -1
  470. package/dist/kernel/trace/types.d.ts.map +0 -1
  471. package/dist/modality/check.d.ts +0 -3
  472. package/dist/modality/check.d.ts.map +0 -1
  473. package/dist/modality/check.js +0 -2
  474. package/dist/modality/check.js.map +0 -1
  475. package/dist/modality/ci.d.ts.map +0 -1
  476. package/dist/modality/ci.js.map +0 -1
  477. package/dist/modality/cli.js.map +0 -1
  478. package/dist/modality/codegen/model.d.ts +0 -3
  479. package/dist/modality/codegen/model.d.ts.map +0 -1
  480. package/dist/modality/codegen/model.js.map +0 -1
  481. package/dist/modality/codegen/replay-test.d.ts.map +0 -1
  482. package/dist/modality/codegen/replay-test.js.map +0 -1
  483. package/dist/modality/conform.d.ts +0 -3
  484. package/dist/modality/conform.d.ts.map +0 -1
  485. package/dist/modality/conform.js +0 -2
  486. package/dist/modality/conform.js.map +0 -1
  487. package/dist/modality/export-tla.d.ts +0 -3
  488. package/dist/modality/export-tla.d.ts.map +0 -1
  489. package/dist/modality/export-tla.js +0 -2
  490. package/dist/modality/export-tla.js.map +0 -1
  491. package/dist/modality/extract.d.ts.map +0 -1
  492. package/dist/modality/extract.js.map +0 -1
  493. package/dist/modality/features/check/command.d.ts.map +0 -1
  494. package/dist/modality/features/check/command.js.map +0 -1
  495. package/dist/modality/features/check/index.d.ts +0 -3
  496. package/dist/modality/features/check/index.d.ts.map +0 -1
  497. package/dist/modality/features/check/index.js +0 -2
  498. package/dist/modality/features/check/index.js.map +0 -1
  499. package/dist/modality/features/ci/command.d.ts.map +0 -1
  500. package/dist/modality/features/ci/command.js.map +0 -1
  501. package/dist/modality/features/ci/index.d.ts.map +0 -1
  502. package/dist/modality/features/ci/index.js.map +0 -1
  503. package/dist/modality/features/conform/command.d.ts.map +0 -1
  504. package/dist/modality/features/conform/command.js.map +0 -1
  505. package/dist/modality/features/conform/index.d.ts.map +0 -1
  506. package/dist/modality/features/conform/index.js.map +0 -1
  507. package/dist/modality/features/export/command.d.ts.map +0 -1
  508. package/dist/modality/features/export/command.js.map +0 -1
  509. package/dist/modality/features/export/index.d.ts.map +0 -1
  510. package/dist/modality/features/export/index.js +0 -2
  511. package/dist/modality/features/export/index.js.map +0 -1
  512. package/dist/modality/features/extract/command.d.ts.map +0 -1
  513. package/dist/modality/features/extract/command.js.map +0 -1
  514. package/dist/modality/features/extract/index.d.ts.map +0 -1
  515. package/dist/modality/features/extract/index.js.map +0 -1
  516. package/dist/modality/features/replay/command.d.ts.map +0 -1
  517. package/dist/modality/features/replay/command.js.map +0 -1
  518. package/dist/modality/features/replay/index.d.ts.map +0 -1
  519. package/dist/modality/features/replay/index.js.map +0 -1
  520. package/dist/modality/overlay.d.ts.map +0 -1
  521. package/dist/modality/overlay.js.map +0 -1
  522. package/dist/modality/registry/index.d.ts.map +0 -1
  523. package/dist/modality/registry/index.js.map +0 -1
  524. package/dist/modality/replay.d.ts +0 -3
  525. package/dist/modality/replay.d.ts.map +0 -1
  526. package/dist/modality/replay.js.map +0 -1
  527. package/dist/runtime/index.d.ts.map +0 -1
  528. package/dist/runtime/index.js.map +0 -1
  529. package/dist/sources/jotai/harness.d.ts.map +0 -1
  530. package/dist/sources/jotai/harness.js.map +0 -1
  531. package/dist/sources/jotai/index.d.ts +0 -11
  532. package/dist/sources/jotai/index.d.ts.map +0 -1
  533. package/dist/sources/jotai/index.js +0 -432
  534. package/dist/sources/jotai/index.js.map +0 -1
  535. package/dist/sources/router/harness.d.ts.map +0 -1
  536. package/dist/sources/router/harness.js.map +0 -1
  537. package/dist/sources/router/index.d.ts +0 -15
  538. package/dist/sources/router/index.d.ts.map +0 -1
  539. package/dist/sources/router/index.js +0 -41
  540. package/dist/sources/router/index.js.map +0 -1
  541. package/dist/sources/swr/harness.d.ts.map +0 -1
  542. package/dist/sources/swr/harness.js.map +0 -1
  543. package/dist/sources/swr/index.d.ts.map +0 -1
  544. package/dist/sources/swr/index.js +0 -528
  545. package/dist/sources/swr/index.js.map +0 -1
  546. package/dist/sources/use-state/harness.d.ts.map +0 -1
  547. package/dist/sources/use-state/harness.js.map +0 -1
  548. package/dist/sources/use-state/index.d.ts +0 -9
  549. package/dist/sources/use-state/index.d.ts.map +0 -1
  550. package/dist/sources/use-state/index.js.map +0 -1
  551. /package/dist/{kernel/ir → check}/types.js +0 -0
  552. /package/dist/{modality → cli}/ci.d.ts +0 -0
  553. /package/dist/{modality → cli}/ci.js +0 -0
  554. /package/dist/{modality → cli}/cli.d.ts +0 -0
  555. /package/dist/{modality → cli}/extract.js +0 -0
  556. /package/dist/{modality → cli}/features/ci/command.d.ts +0 -0
  557. /package/dist/{modality → cli}/features/ci/index.d.ts +0 -0
  558. /package/dist/{modality → cli}/features/ci/index.js +0 -0
  559. /package/dist/{modality → cli}/features/conform/index.d.ts +0 -0
  560. /package/dist/{modality → cli}/features/conform/index.js +0 -0
  561. /package/dist/{modality → cli}/features/extract/index.js +0 -0
  562. /package/dist/{modality → cli}/features/replay/index.d.ts +0 -0
  563. /package/dist/{modality → cli}/features/replay/index.js +0 -0
  564. /package/dist/{modality → cli}/replay.js +0 -0
  565. /package/dist/{kernel → core}/artifacts/index.d.ts +0 -0
  566. /package/dist/{kernel → core}/index.d.ts +0 -0
  567. /package/dist/{kernel → core}/index.js +0 -0
  568. /package/dist/{kernel → core}/ir/canonical.d.ts +0 -0
  569. /package/dist/{kernel → core}/ir/domains.d.ts +0 -0
  570. /package/dist/{kernel → core}/ir/types.d.ts +0 -0
  571. /package/dist/{kernel/report → core/ir}/types.js +0 -0
  572. /package/dist/{kernel → core}/ir/validator.d.ts +0 -0
  573. /package/dist/{kernel → core}/overlay/index.d.ts +0 -0
  574. /package/dist/{kernel → core}/props/index.d.ts +0 -0
  575. /package/dist/{kernel → core}/report/types.d.ts +0 -0
  576. /package/dist/{kernel/trace → core/report}/types.js +0 -0
  577. /package/dist/{kernel → core}/trace/types.d.ts +0 -0
  578. /package/dist/{checker/monitors → extract/engine/spi}/index.js +0 -0
@@ -3,69 +3,112 @@ import { createHash } from "node:crypto";
3
3
  import { dirname, join, parse, resolve } from "node:path";
4
4
  import { pathToFileURL } from "node:url";
5
5
  import * as ts from "typescript";
6
- import { extractUseStateSkeleton, runExtractionPipeline } from "modality-ts/extraction";
7
- import { canonicalJson, parseModelArtifact } from "modality-ts/kernel";
8
- import { routeVars as defaultRouteVars } from "modality-ts/source-router";
6
+ import { runExtractionPipeline } from "modality-ts/extract";
7
+ import { canonicalJson, parseModelArtifact, } from "modality-ts/core";
8
+ import { routerSource } from "modality-ts/extract/sources/router";
9
9
  import { emitAppModel } from "../../codegen/model.js";
10
10
  import { loadAndApplyOverlay, loadOverlaySpec } from "../../overlay.js";
11
11
  import { createBuiltinModalityRegistry } from "../../registry/index.js";
12
12
  export async function runExtractCommand(options) {
13
13
  const project = await loadExtractionProject(options.sourcePath);
14
- const config = await loadModalityConfig(options.configPath ?? await findNearestConfig(project.configStartDir));
14
+ const config = await loadModalityConfig(options.configPath ?? (await findNearestConfig(project.configStartDir)));
15
15
  const route = options.route ?? config.route ?? "/";
16
16
  const appModelPath = options.appModelPath ?? `${dirname(options.modelPath)}/app.model.ts`;
17
- const packageJsonPath = options.packageJsonPath ?? config.packageJsonPath ?? await findNearestPackageJson(project.configStartDir);
17
+ const packageJsonPath = options.packageJsonPath ??
18
+ config.packageJsonPath ??
19
+ (await findNearestPackageJson(project.configStartDir));
18
20
  const dependencies = await readPackageDependencies(packageJsonPath);
19
21
  const registry = createBuiltinModalityRegistry({
20
22
  dependencies,
21
- disabledPlugins: [...(config.disabledPlugins ?? []), ...(options.disabledPlugins ?? [])],
22
- extraSourcePlugins: [...(config.plugins ?? []), ...(options.sourcePlugins ?? [])],
23
- routerPlugin: options.routerPlugin ?? config.routerPlugin
23
+ disabledPlugins: [
24
+ ...(config.disabledPlugins ?? []),
25
+ ...(options.disabledPlugins ?? []),
26
+ ],
27
+ extraSourcePlugins: [
28
+ ...(config.plugins ?? []),
29
+ ...(options.sourcePlugins ?? []),
30
+ ],
31
+ routerPlugin: options.routerPlugin ?? config.routerPlugin,
24
32
  });
25
- const effectApis = uniqueStrings([...(config.effectApis ?? []), ...(options.effectApis ?? []), ...project.effectApis]);
26
- const bounds = { maxDepth: 12, maxPending: 3, maxInternalSteps: 16, ...(config.bounds ?? {}), ...(options.bounds ?? {}) };
33
+ const effectApis = uniqueStrings([
34
+ ...(config.effectApis ?? []),
35
+ ...(options.effectApis ?? []),
36
+ ...project.effectApis,
37
+ ]);
38
+ const bounds = {
39
+ maxDepth: 12,
40
+ maxPending: 3,
41
+ maxInternalSteps: 16,
42
+ ...(config.bounds ?? {}),
43
+ ...(options.bounds ?? {}),
44
+ };
27
45
  const pipeline = runExtractionPipeline({
28
46
  sourceText: project.sourceText,
29
47
  fileName: project.entryFile,
30
48
  route,
49
+ routePatterns: project.routes,
31
50
  effectApis,
32
51
  sourcePlugins: registry.sourcePlugins,
33
52
  routerPlugin: registry.routerPlugin,
34
- extractHandlers: (sourceText, handlerOptions) => extractUseStateSkeleton(sourceText, { ...handlerOptions, routePatterns: project.routes })
35
53
  });
36
54
  const transitions = [...pipeline.transitions];
37
- const discoveredRoutes = uniqueStrings([route, ...project.routes, ...transitionNavigatedRoutes(transitions)]);
55
+ const discoveredRoutes = uniqueStrings([
56
+ route,
57
+ ...project.routes,
58
+ ...transitionNavigatedRoutes(transitions),
59
+ ]);
60
+ const defaultRouter = routerSource();
38
61
  const routeVars = registry.routerPlugin
39
- ? registry.routerPlugin.routeVars(discoveredRoutes, { route, bounds: { maxHistory: 4 } })
40
- : defaultRouteVars(discoveredRoutes, { route, bounds: { maxHistory: 4 } });
62
+ ? registry.routerPlugin.routeVars(discoveredRoutes, {
63
+ route,
64
+ bounds: { maxHistory: 4 },
65
+ })
66
+ : defaultRouter.routeVars(discoveredRoutes, {
67
+ route,
68
+ bounds: { maxHistory: 4 },
69
+ });
41
70
  const templateVars = pipeline.templateFragments.flatMap((fragment) => fragment.vars);
42
71
  const stateVars = refineAssignedLiteralDomains([...pipeline.stateVars, ...templateVars], transitions);
43
72
  const extractedModel = {
44
73
  schemaVersion: 1,
45
74
  id: "extracted-model",
46
75
  bounds,
47
- metadata: { sourceHashes: sourceHashes(project.sources), plugins: pluginProvenance(pipeline.plugins) },
48
- vars: [...routeVars, ...pendingVars(effectApis, transitions, [...routeVars, ...stateVars], bounds.maxPending), ...stateVars],
49
- transitions
76
+ metadata: {
77
+ sourceHashes: sourceHashes(project.sources),
78
+ plugins: pluginProvenance(pipeline.plugins),
79
+ },
80
+ vars: [
81
+ ...routeVars,
82
+ ...pendingVars(effectApis, transitions, [...routeVars, ...stateVars], bounds.maxPending),
83
+ ...stateVars,
84
+ ],
85
+ transitions,
50
86
  };
51
- const overlaySpec = options.explainDrift && options.overlayPath ? await readOverlaySpec(extractedModel, options.overlayPath) : undefined;
52
- const driftLines = overlaySpec ? explainOverlayDrift(extractedModel, overlaySpec) : [];
87
+ const overlaySpec = options.explainDrift && options.overlayPath
88
+ ? await readOverlaySpec(extractedModel, options.overlayPath)
89
+ : undefined;
90
+ const driftLines = overlaySpec
91
+ ? explainOverlayDrift(extractedModel, overlaySpec)
92
+ : [];
53
93
  const overlay = await loadAndApplyOverlay(extractedModel, options.overlayPath);
54
94
  if (overlay.errors.length > 0) {
55
- throw new Error([`Overlay merge failed: ${overlay.errors.join("; ")}`, ...driftLines].join("\n"));
95
+ throw new Error([
96
+ `Overlay merge failed: ${overlay.errors.join("; ")}`,
97
+ ...driftLines,
98
+ ].join("\n"));
56
99
  }
57
100
  const warnings = [
58
101
  ...pipeline.warnings,
59
102
  ...overlay.warnings,
60
- ...pluginConformanceWarnings(registry.sourcePlugins, dependencies)
103
+ ...pluginConformanceWarnings(registry.sourcePlugins, dependencies),
61
104
  ];
62
105
  const extractionCaveats = createExtractionCaveats(warnings);
63
106
  const model = {
64
107
  ...overlay.model,
65
108
  metadata: {
66
109
  ...overlay.model.metadata,
67
- extractionCaveats
68
- }
110
+ extractionCaveats,
111
+ },
69
112
  };
70
113
  const report = createExtractionReport(project.sourceFiles, model, warnings, overlay.ignoredVars, options.now ?? new Date());
71
114
  await mkdir(dirname(options.modelPath), { recursive: true });
@@ -88,11 +131,17 @@ export async function runExtractCommand(options) {
88
131
  `model=${options.modelPath}`,
89
132
  `appModel=${appModelPath}`,
90
133
  ...(options.overlayPath ? [`overlay=${options.overlayPath}`] : []),
91
- ...(options.explainDrift ? (driftLines.length > 0 ? driftLines : ["overlay-drift=none"]) : []),
134
+ ...(options.explainDrift
135
+ ? driftLines.length > 0
136
+ ? driftLines
137
+ : ["overlay-drift=none"]
138
+ : []),
92
139
  ...(options.configPath ? [`config=${options.configPath}`] : []),
93
- ...(options.expectModelPath ? [`expectedModel=${options.expectModelPath}`] : []),
94
- ...(options.reportPath ? [`report=${options.reportPath}`] : [])
95
- ]
140
+ ...(options.expectModelPath
141
+ ? [`expectedModel=${options.expectModelPath}`]
142
+ : []),
143
+ ...(options.reportPath ? [`report=${options.reportPath}`] : []),
144
+ ],
96
145
  };
97
146
  }
98
147
  async function loadExtractionProject(sourcePath) {
@@ -109,7 +158,7 @@ async function loadExtractionProject(sourcePath) {
109
158
  sources: imported.sources,
110
159
  routes: [],
111
160
  effectApis: fetchEffectApis(imported.sources.map((entry) => entry.text).join("\n")),
112
- configStartDir: dirname(resolved)
161
+ configStartDir: dirname(resolved),
113
162
  };
114
163
  }
115
164
  const routesPath = join(resolved, "app", "routes.ts");
@@ -117,8 +166,11 @@ async function loadExtractionProject(sourcePath) {
117
166
  const rootPath = join(resolved, "app", "root.tsx");
118
167
  const roots = await existingFiles([rootPath]);
119
168
  const entries = [
120
- ...await Promise.all(roots.map(async (path) => ({ path, text: await readFile(path, "utf8") }))),
121
- ...await Promise.all(routeEntries.map(async (entry) => ({ path: resolve(dirname(routesPath), entry.file), text: await readFile(resolve(dirname(routesPath), entry.file), "utf8") })))
169
+ ...(await Promise.all(roots.map(async (path) => ({ path, text: await readFile(path, "utf8") })))),
170
+ ...(await Promise.all(routeEntries.map(async (entry) => ({
171
+ path: resolve(dirname(routesPath), entry.file),
172
+ text: await readFile(resolve(dirname(routesPath), entry.file), "utf8"),
173
+ })))),
122
174
  ];
123
175
  const tsconfig = await readTsConfigResolution(resolved);
124
176
  const imported = await sourceWithLocalImports(entries, tsconfig);
@@ -130,7 +182,7 @@ async function loadExtractionProject(sourcePath) {
130
182
  sources: imported.sources,
131
183
  routes: uniqueStrings(routeEntries.map((entry) => entry.pattern)),
132
184
  effectApis: fetchEffectApis(sourceText),
133
- configStartDir: resolved
185
+ configStartDir: resolved,
134
186
  };
135
187
  }
136
188
  async function sourceWithLocalImports(entries, tsconfig) {
@@ -156,7 +208,9 @@ function localImportSpecifiers(source) {
156
208
  const specs = [];
157
209
  const parsed = tsCreateSourceFile(source);
158
210
  const visit = (node) => {
159
- if (tsIsImportDeclaration(node) && tsIsStringLiteral(node.moduleSpecifier) && isLocalImportSpecifier(node.moduleSpecifier.text)) {
211
+ if (tsIsImportDeclaration(node) &&
212
+ tsIsStringLiteral(node.moduleSpecifier) &&
213
+ isLocalImportSpecifier(node.moduleSpecifier.text)) {
160
214
  specs.push(node.moduleSpecifier.text);
161
215
  }
162
216
  tsForEachChild(node, visit);
@@ -194,7 +248,8 @@ function importBases(baseDir, specifier, tsconfig) {
194
248
  if (specifier.startsWith("."))
195
249
  return [resolve(baseDir, specifier)];
196
250
  const matches = tsconfig.paths.flatMap((entry) => {
197
- if (!specifier.startsWith(entry.prefix) || !specifier.endsWith(entry.suffix))
251
+ if (!specifier.startsWith(entry.prefix) ||
252
+ !specifier.endsWith(entry.suffix))
198
253
  return [];
199
254
  const star = specifier.slice(entry.prefix.length, specifier.length - entry.suffix.length);
200
255
  return entry.targets.map((target) => resolve(target.replace("*", star)));
@@ -206,7 +261,14 @@ function importBases(baseDir, specifier, tsconfig) {
206
261
  async function firstExistingModulePath(base) {
207
262
  const candidates = /\.[cm]?[jt]sx?$/.test(base)
208
263
  ? [base]
209
- : [`${base}.ts`, `${base}.tsx`, `${base}.mts`, `${base}.cts`, join(base, "index.ts"), join(base, "index.tsx")];
264
+ : [
265
+ `${base}.ts`,
266
+ `${base}.tsx`,
267
+ `${base}.mts`,
268
+ `${base}.cts`,
269
+ join(base, "index.ts"),
270
+ join(base, "index.tsx"),
271
+ ];
210
272
  for (const candidate of candidates) {
211
273
  try {
212
274
  const candidateStat = await stat(candidate);
@@ -226,12 +288,18 @@ async function readTsConfigResolution(startDir) {
226
288
  return { paths: [] };
227
289
  const parsed = JSON.parse(await readFile(tsconfigPath, "utf8"));
228
290
  const configDir = dirname(tsconfigPath);
229
- const baseUrl = parsed.compilerOptions?.baseUrl ? resolve(configDir, parsed.compilerOptions.baseUrl) : configDir;
291
+ const baseUrl = parsed.compilerOptions?.baseUrl
292
+ ? resolve(configDir, parsed.compilerOptions.baseUrl)
293
+ : configDir;
230
294
  const paths = Object.entries(parsed.compilerOptions?.paths ?? {}).map(([key, targets]) => {
231
295
  const star = key.indexOf("*");
232
296
  const prefix = star >= 0 ? key.slice(0, star) : key;
233
297
  const suffix = star >= 0 ? key.slice(star + 1) : "";
234
- return { prefix, suffix, targets: targets.map((target) => resolve(baseUrl, target)) };
298
+ return {
299
+ prefix,
300
+ suffix,
301
+ targets: targets.map((target) => resolve(baseUrl, target)),
302
+ };
235
303
  });
236
304
  return { baseUrl, paths };
237
305
  }
@@ -273,11 +341,17 @@ function parseReactRouterRoutes(source) {
273
341
  const parsed = tsCreateSourceFile(source);
274
342
  const visit = (node) => {
275
343
  if (ts.isCallExpression(node) && ts.isIdentifier(node.expression)) {
276
- if (node.expression.text === "index" && ts.isStringLiteral(node.arguments[0])) {
344
+ if (node.expression.text === "index" &&
345
+ ts.isStringLiteral(node.arguments[0])) {
277
346
  routes.push({ pattern: "/", file: node.arguments[0].text });
278
347
  }
279
- if (node.expression.text === "route" && ts.isStringLiteral(node.arguments[0]) && ts.isStringLiteral(node.arguments[1])) {
280
- routes.push({ pattern: reactRouterPathPattern(node.arguments[0].text), file: node.arguments[1].text });
348
+ if (node.expression.text === "route" &&
349
+ ts.isStringLiteral(node.arguments[0]) &&
350
+ ts.isStringLiteral(node.arguments[1])) {
351
+ routes.push({
352
+ pattern: reactRouterPathPattern(node.arguments[0].text),
353
+ file: node.arguments[1].text,
354
+ });
281
355
  }
282
356
  }
283
357
  tsForEachChild(node, visit);
@@ -296,7 +370,9 @@ function fetchEffectApis(sourceText) {
296
370
  const source = tsCreateSourceFile(sourceText);
297
371
  const ops = new Set();
298
372
  const visit = (node) => {
299
- if (ts.isCallExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === "fetch") {
373
+ if (ts.isCallExpression(node) &&
374
+ ts.isIdentifier(node.expression) &&
375
+ node.expression.text === "fetch") {
300
376
  const op = fetchOpId(node);
301
377
  if (op)
302
378
  ops.add(op);
@@ -317,12 +393,13 @@ function fetchOpId(call) {
317
393
  return `${method} ${path}`;
318
394
  }
319
395
  function fetchPathValue(expression) {
320
- if (ts.isStringLiteral(expression) || ts.isNoSubstitutionTemplateLiteral(expression))
396
+ if (ts.isStringLiteral(expression) ||
397
+ ts.isNoSubstitutionTemplateLiteral(expression))
321
398
  return normalizeFetchPath(expression.text);
322
399
  if (ts.isTemplateExpression(expression)) {
323
400
  let value = expression.head.text;
324
401
  for (const span of expression.templateSpans)
325
- value += ":id" + span.literal.text;
402
+ value += `:id${span.literal.text}`;
326
403
  return normalizeFetchPath(value);
327
404
  }
328
405
  return undefined;
@@ -333,15 +410,21 @@ function normalizeFetchPath(path) {
333
410
  function fetchMethodValue(expression) {
334
411
  if (!expression || !ts.isObjectLiteralExpression(expression))
335
412
  return undefined;
336
- const method = expression.properties.find((property) => ts.isPropertyAssignment(property) && propertyName(property.name) === "method");
413
+ const method = expression.properties.find((property) => ts.isPropertyAssignment(property) &&
414
+ propertyName(property.name) === "method");
337
415
  const value = method ? literalString(method.initializer) : undefined;
338
416
  return value?.toUpperCase();
339
417
  }
340
418
  function literalString(expression) {
341
- return ts.isStringLiteral(expression) || ts.isNoSubstitutionTemplateLiteral(expression) ? expression.text : undefined;
419
+ return ts.isStringLiteral(expression) ||
420
+ ts.isNoSubstitutionTemplateLiteral(expression)
421
+ ? expression.text
422
+ : undefined;
342
423
  }
343
424
  function propertyName(name) {
344
- if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name))
425
+ if (ts.isIdentifier(name) ||
426
+ ts.isStringLiteral(name) ||
427
+ ts.isNumericLiteral(name))
345
428
  return name.text;
346
429
  return undefined;
347
430
  }
@@ -356,7 +439,12 @@ async function loadModalityConfig(configPath) {
356
439
  return typeof exported === "function" ? await exported() : exported;
357
440
  }
358
441
  async function findNearestConfig(startDir) {
359
- const names = ["modality.config.ts", "modality.config.mts", "modality.config.js", "modality.config.mjs"];
442
+ const names = [
443
+ "modality.config.ts",
444
+ "modality.config.mts",
445
+ "modality.config.js",
446
+ "modality.config.mjs",
447
+ ];
360
448
  let dir = startDir;
361
449
  while (true) {
362
450
  for (const name of names) {
@@ -404,7 +492,7 @@ async function readPackageDependencies(packageJsonPath) {
404
492
  return {
405
493
  ...(manifest.peerDependencies ?? {}),
406
494
  ...(manifest.devDependencies ?? {}),
407
- ...(manifest.dependencies ?? {})
495
+ ...(manifest.dependencies ?? {}),
408
496
  };
409
497
  }
410
498
  function sha256(value) {
@@ -422,8 +510,12 @@ function createExtractionReport(sourceFiles, model, warnings, ignoredVars, now)
422
510
  const caveats = model.metadata?.extractionCaveats ?? emptyExtractionCaveats();
423
511
  const transitionHandlers = model.transitions.map((transition) => ({
424
512
  id: transition.id,
425
- classification: transition.confidence === "manual" ? "overlay" : transition.confidence,
426
- reasons: transition.confidence === "over-approx" ? overApproxReasons(transition) : []
513
+ classification: transition.confidence === "manual"
514
+ ? "overlay"
515
+ : transition.confidence,
516
+ reasons: transition.confidence === "over-approx"
517
+ ? overApproxReasons(transition)
518
+ : [],
427
519
  }));
428
520
  const transitionIds = new Set(transitionHandlers.map((handler) => handler.id));
429
521
  const unextractableHandlers = warnings
@@ -433,10 +525,11 @@ function createExtractionReport(sourceFiles, model, warnings, ignoredVars, now)
433
525
  .map((handler) => ({
434
526
  id: handler.id,
435
527
  classification: "unextractable",
436
- reasons: [handler.reason]
528
+ reasons: [handler.reason],
437
529
  }));
438
530
  const handlers = [...transitionHandlers, ...unextractableHandlers];
439
- const exactOrOverlay = handlers.filter((handler) => handler.classification === "exact" || handler.classification === "overlay").length;
531
+ const exactOrOverlay = handlers.filter((handler) => handler.classification === "exact" ||
532
+ handler.classification === "overlay").length;
440
533
  const unextractable = handlers.filter((handler) => handler.classification === "unextractable").length;
441
534
  return {
442
535
  schemaVersion: 1,
@@ -451,27 +544,51 @@ function createExtractionReport(sourceFiles, model, warnings, ignoredVars, now)
451
544
  domains: model.vars.map((decl) => ({
452
545
  varId: decl.id,
453
546
  domainKind: decl.domain.kind,
454
- provenance: model.metadata?.domainProvenance?.[decl.id] ?? (decl.origin === "system" ? "system" : decl.origin === "library-template" ? "template" : decl.domain.kind === "tokens" ? "default-token" : "type-derived")
547
+ provenance: model.metadata?.domainProvenance?.[decl.id] ??
548
+ (decl.origin === "system"
549
+ ? "system"
550
+ : decl.origin === "library-template"
551
+ ? "template"
552
+ : decl.domain.kind === "tokens"
553
+ ? "default-token"
554
+ : "type-derived"),
455
555
  })),
456
556
  coverage: {
457
557
  handlersTotal: handlers.length,
458
558
  exactOrOverlay,
459
559
  unextractable,
460
560
  ignoredVars: ignoredVars.length,
461
- percentExactOrOverlay: handlers.length === 0 ? 1 : exactOrOverlay / handlers.length
561
+ percentExactOrOverlay: handlers.length === 0 ? 1 : exactOrOverlay / handlers.length,
462
562
  },
463
- warnings
563
+ warnings,
464
564
  };
465
565
  }
466
566
  function emptyExtractionCaveats() {
467
- return { globalTaints: [], staleReads: [], unhandledRejections: [], unextractableHandlers: [] };
567
+ return {
568
+ globalTaints: [],
569
+ staleReads: [],
570
+ unhandledRejections: [],
571
+ unextractableHandlers: [],
572
+ };
468
573
  }
469
574
  function createExtractionCaveats(warnings) {
470
575
  return {
471
- globalTaints: warnings.map(globalTaintFromWarning).filter(isCaveat).sort(compareCaveats),
472
- staleReads: warnings.map(staleReadFromWarning).filter(isCaveat).sort(compareCaveats),
473
- unhandledRejections: warnings.map(unhandledRejectionFromWarning).filter(isCaveat).sort(compareCaveats),
474
- unextractableHandlers: warnings.map(unextractableHandlerFromWarning).filter(isCaveat).sort(compareCaveats)
576
+ globalTaints: warnings
577
+ .map(globalTaintFromWarning)
578
+ .filter(isCaveat)
579
+ .sort(compareCaveats),
580
+ staleReads: warnings
581
+ .map(staleReadFromWarning)
582
+ .filter(isCaveat)
583
+ .sort(compareCaveats),
584
+ unhandledRejections: warnings
585
+ .map(unhandledRejectionFromWarning)
586
+ .filter(isCaveat)
587
+ .sort(compareCaveats),
588
+ unextractableHandlers: warnings
589
+ .map(unextractableHandlerFromWarning)
590
+ .filter(isCaveat)
591
+ .sort(compareCaveats),
475
592
  };
476
593
  }
477
594
  function globalTaintFromWarning(warning) {
@@ -490,7 +607,7 @@ function isCaveat(value) {
490
607
  return Boolean(value);
491
608
  }
492
609
  function compareCaveats(left, right) {
493
- return left.id.localeCompare(right.id) || left.reason.localeCompare(right.reason);
610
+ return (left.id.localeCompare(right.id) || left.reason.localeCompare(right.reason));
494
611
  }
495
612
  function pluginConformanceWarnings(sourcePlugins, dependencies) {
496
613
  if (!dependencies)
@@ -538,16 +655,21 @@ function pluginProvenance(plugins) {
538
655
  function transitionNavigatedRoutes(transitions) {
539
656
  const routes = new Set();
540
657
  const visit = (effect) => {
541
- if (effect.kind === "navigate" && effect.to?.kind === "lit" && typeof effect.to.value === "string")
658
+ if (effect.kind === "navigate" &&
659
+ effect.to?.kind === "lit" &&
660
+ typeof effect.to.value === "string")
542
661
  routes.add(effect.to.value);
543
- if (effect.kind === "seq")
544
- effect.effects.forEach(visit);
662
+ if (effect.kind === "seq") {
663
+ for (const child of effect.effects)
664
+ visit(child);
665
+ }
545
666
  if (effect.kind === "if") {
546
667
  visit(effect.then);
547
668
  visit(effect.else);
548
669
  }
549
670
  };
550
- transitions.forEach((transition) => visit(transition.effect));
671
+ for (const transition of transitions)
672
+ visit(transition.effect);
551
673
  return [...routes].sort();
552
674
  }
553
675
  function overApproxReasons(transition) {
@@ -561,7 +683,9 @@ function overApproxReasons(transition) {
561
683
  return [...reasons].sort();
562
684
  }
563
685
  function explainOverlayDrift(model, overlay) {
564
- const transitionIds = model.transitions.map((transition) => transition.id).sort();
686
+ const transitionIds = model.transitions
687
+ .map((transition) => transition.id)
688
+ .sort();
565
689
  const varIds = model.vars.map((decl) => decl.id).sort();
566
690
  const lines = [];
567
691
  for (const transition of overlay.transitions ?? []) {
@@ -589,8 +713,12 @@ function formatDrift(kind, id, candidates) {
589
713
  }
590
714
  function nearestCandidates(id, candidates) {
591
715
  return candidates
592
- .map((candidate) => ({ candidate, distance: editDistance(normalizeId(id), normalizeId(candidate)) }))
593
- .sort((left, right) => left.distance - right.distance || left.candidate.localeCompare(right.candidate))
716
+ .map((candidate) => ({
717
+ candidate,
718
+ distance: editDistance(normalizeId(id), normalizeId(candidate)),
719
+ }))
720
+ .sort((left, right) => left.distance - right.distance ||
721
+ left.candidate.localeCompare(right.candidate))
594
722
  .slice(0, 3)
595
723
  .map(({ candidate, distance }) => `${candidate}(${distance})`);
596
724
  }
@@ -661,20 +789,22 @@ function pendingVars(effectApis, transitions = [], vars = [], maxPending = 3) {
661
789
  fields: {
662
790
  opId: { kind: "enum", values: ops },
663
791
  continuation: { kind: "enum", values: continuations },
664
- args: { kind: "record", fields: argFields }
665
- }
792
+ args: { kind: "record", fields: argFields },
793
+ },
666
794
  },
667
- maxLen: maxPending
795
+ maxLen: maxPending,
668
796
  },
669
797
  origin: "system",
670
798
  scope: { kind: "global" },
671
- initial: []
672
- }
799
+ initial: [],
800
+ },
673
801
  ];
674
802
  }
675
803
  function enqueueOps(effect) {
676
804
  if (effect.kind === "enqueue")
677
- return [{ op: effect.op, continuation: effect.continuation, args: effect.args }];
805
+ return [
806
+ { op: effect.op, continuation: effect.continuation, args: effect.args },
807
+ ];
678
808
  if (effect.kind === "seq")
679
809
  return effect.effects.flatMap(enqueueOps);
680
810
  if (effect.kind === "if")
@@ -702,7 +832,9 @@ function refineAssignedLiteralDomains(vars, transitions) {
702
832
  if (decl.origin === "library-template")
703
833
  return decl;
704
834
  const refinement = refinements.get(decl.id);
705
- return refinement ? { ...decl, domain: mergeAssignedDomain(decl.domain, refinement) } : decl;
835
+ return refinement
836
+ ? { ...decl, domain: mergeAssignedDomain(decl.domain, refinement) }
837
+ : decl;
706
838
  });
707
839
  }
708
840
  function mergeAssignedDomain(left, right) {
@@ -725,7 +857,10 @@ function assignedLiteralDomains(effect) {
725
857
  if (effect.kind === "seq")
726
858
  return effect.effects.flatMap(assignedLiteralDomains);
727
859
  if (effect.kind === "if")
728
- return [...assignedLiteralDomains(effect.then), ...assignedLiteralDomains(effect.else)];
860
+ return [
861
+ ...assignedLiteralDomains(effect.then),
862
+ ...assignedLiteralDomains(effect.else),
863
+ ];
729
864
  return [];
730
865
  }
731
866
  function domainForLiteral(value) {
@@ -743,9 +878,16 @@ function mergeArgDomains(left, right) {
743
878
  if (!left)
744
879
  return right;
745
880
  if (left.kind === "enum" && right.kind === "enum")
746
- return { kind: "enum", values: [...new Set([...left.values, ...right.values])].sort() };
881
+ return {
882
+ kind: "enum",
883
+ values: [...new Set([...left.values, ...right.values])].sort(),
884
+ };
747
885
  if (left.kind === "boundedInt" && right.kind === "boundedInt")
748
- return { kind: "boundedInt", min: Math.min(left.min, right.min), max: Math.max(left.max, right.max) };
886
+ return {
887
+ kind: "boundedInt",
888
+ min: Math.min(left.min, right.min),
889
+ max: Math.max(left.max, right.max),
890
+ };
749
891
  if (left.kind === right.kind)
750
892
  return left;
751
893
  return { kind: "tokens", count: 1 };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/cli/features/extract/command.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { runExtractCommand } from "./command.js";
2
- export type { ExtractCommandOptions, ExtractCommandResult, ModalityConfig } from "./command.js";
2
+ export type { ExtractCommandOptions, ExtractCommandResult, ModalityConfig, } from "./command.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/features/extract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/features/extract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}