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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,KAAK,CACnB,GAAqE;IAErE,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QACpC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,OAAqB;IAErB,MAAM,KAAK,GAAG,OAA4B,CAAC;IAC3C,MAAM,IAAI,GACR,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK;QACnC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAE,EAAE,CAAC;IAC9E,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAuB,EACvB,MAAc;IAEd,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { StateSourcePlugin } from "modality-ts/extract/engine/spi";
2
+ export declare function jotaiSource(): StateSourcePlugin;
3
+ export default jotaiSource;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAQxE,wBAAgB,WAAW,IAAI,iBAAiB,CAe/C;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ import * as harness from "./harness.js";
2
+ import { discoverJotaiAtoms } from "./discover.js";
3
+ import { discoverJotaiSafetyWarnings, discoverJotaiWriteChannels, } from "./writes.js";
4
+ export function jotaiSource() {
5
+ return {
6
+ id: "jotai",
7
+ version: "0.1.0",
8
+ packageNames: ["jotai"],
9
+ discover: (ctx) => discoverJotaiAtoms(ctx.sourceText, ctx.fileName),
10
+ writeChannels: (ctx) => discoverJotaiWriteChannels(ctx.sourceText, ctx.fileName),
11
+ safetyWarnings: (ctx) => discoverJotaiSafetyWarnings(ctx.sourceText, ctx.fileName),
12
+ harness,
13
+ conformance: {
14
+ testedVersions: "jotai>=2",
15
+ },
16
+ };
17
+ }
18
+ export default jotaiSource;
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CACrB,0BAA0B,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;QAC1D,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CACtB,2BAA2B,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;QAC3D,OAAO;QACP,WAAW,EAAE;YACX,cAAc,EAAE,UAAU;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { WriteChannel } from "modality-ts/extract/engine/spi";
2
+ import type { SourceAnchor } from "modality-ts/core";
3
+ export declare function discoverJotaiSafetyWarnings(sourceText: string, fileName?: string): {
4
+ message: string;
5
+ source?: SourceAnchor;
6
+ }[];
7
+ export declare function discoverJotaiWriteChannels(sourceText: string, fileName?: string): WriteChannel[];
8
+ //# sourceMappingURL=writes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writes.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/writes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAa,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,EAAE,CA2B9C;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAa,GACpB,YAAY,EAAE,CAmHhB"}
@@ -0,0 +1,173 @@
1
+ import * as ts from "typescript";
2
+ export function discoverJotaiSafetyWarnings(sourceText, fileName = "state.ts") {
3
+ const source = ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
4
+ const warnings = [];
5
+ for (const statement of source.statements) {
6
+ if (!ts.isImportDeclaration(statement) ||
7
+ !isJotaiModule(statement.moduleSpecifier))
8
+ continue;
9
+ const bindings = statement.importClause?.namedBindings;
10
+ if (!bindings || !ts.isNamedImports(bindings))
11
+ continue;
12
+ for (const specifier of bindings.elements) {
13
+ const imported = specifier.propertyName?.text ?? specifier.name.text;
14
+ if (imported !== "getDefaultStore")
15
+ continue;
16
+ warnings.push({
17
+ message: "Global taint jotai:getDefaultStore",
18
+ source: { file: fileName, ...lineAndColumn(source, specifier) },
19
+ });
20
+ }
21
+ }
22
+ return warnings;
23
+ }
24
+ export function discoverJotaiWriteChannels(sourceText, fileName = "state.ts") {
25
+ const source = ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
26
+ const setters = setAtomImportNames(source);
27
+ const defaultStoreGetters = getDefaultStoreImportNames(source);
28
+ if (setters.useAtom.size === 0 &&
29
+ setters.useSetAtom.size === 0 &&
30
+ defaultStoreGetters.size === 0)
31
+ return [];
32
+ const channels = [];
33
+ const defaultStoreNames = new Set();
34
+ const visit = (node) => {
35
+ if (ts.isVariableDeclaration(node) &&
36
+ ts.isIdentifier(node.name) &&
37
+ node.initializer &&
38
+ isGetDefaultStoreCall(node.initializer, defaultStoreGetters)) {
39
+ defaultStoreNames.add(node.name.text);
40
+ }
41
+ if (ts.isVariableDeclaration(node) &&
42
+ ts.isArrayBindingPattern(node.name) &&
43
+ node.initializer &&
44
+ isUseAtomLikeCall(node.initializer, setters.useAtom)) {
45
+ const atomArg = node.initializer.arguments[0];
46
+ const reader = node.name.elements[0];
47
+ const setter = node.name.elements.at(-1);
48
+ if (atomArg &&
49
+ ts.isIdentifier(atomArg) &&
50
+ reader &&
51
+ ts.isBindingElement(reader) &&
52
+ ts.isIdentifier(reader.name)) {
53
+ channels.push({
54
+ id: `atom:${atomArg.text}.read`,
55
+ varId: `atom:${atomArg.text}`,
56
+ symbolName: reader.name.text,
57
+ source: {
58
+ file: fileName,
59
+ ...lineAndColumn(source, node),
60
+ },
61
+ });
62
+ }
63
+ if (atomArg &&
64
+ ts.isIdentifier(atomArg) &&
65
+ setter &&
66
+ ts.isBindingElement(setter) &&
67
+ ts.isIdentifier(setter.name)) {
68
+ channels.push({
69
+ id: `atom:${atomArg.text}.setter`,
70
+ varId: `atom:${atomArg.text}`,
71
+ symbolName: setter.name.text,
72
+ source: {
73
+ file: fileName,
74
+ ...lineAndColumn(source, node),
75
+ },
76
+ });
77
+ }
78
+ }
79
+ if (ts.isVariableDeclaration(node) &&
80
+ ts.isIdentifier(node.name) &&
81
+ node.initializer &&
82
+ isUseAtomLikeCall(node.initializer, setters.useSetAtom)) {
83
+ const atomArg = node.initializer.arguments[0];
84
+ if (atomArg && ts.isIdentifier(atomArg)) {
85
+ channels.push({
86
+ id: `atom:${atomArg.text}.setter`,
87
+ varId: `atom:${atomArg.text}`,
88
+ symbolName: node.name.text,
89
+ source: {
90
+ file: fileName,
91
+ ...lineAndColumn(source, node),
92
+ },
93
+ });
94
+ }
95
+ }
96
+ if (ts.isCallExpression(node) &&
97
+ ts.isPropertyAccessExpression(node.expression) &&
98
+ node.expression.name.text === "set" &&
99
+ ts.isIdentifier(node.expression.expression) &&
100
+ defaultStoreNames.has(node.expression.expression.text)) {
101
+ const atomArg = node.arguments[0];
102
+ if (atomArg && ts.isIdentifier(atomArg)) {
103
+ channels.push({
104
+ id: `atom:${atomArg.text}.store-set`,
105
+ varId: `atom:${atomArg.text}`,
106
+ symbolName: `${node.expression.expression.text}.set:${atomArg.text}`,
107
+ source: {
108
+ file: fileName,
109
+ ...lineAndColumn(source, node),
110
+ },
111
+ });
112
+ }
113
+ }
114
+ ts.forEachChild(node, visit);
115
+ };
116
+ visit(source);
117
+ return channels;
118
+ }
119
+ function getDefaultStoreImportNames(source) {
120
+ const names = new Set();
121
+ for (const statement of source.statements) {
122
+ if (!ts.isImportDeclaration(statement) ||
123
+ !isJotaiModule(statement.moduleSpecifier))
124
+ continue;
125
+ const bindings = statement.importClause?.namedBindings;
126
+ if (!bindings || !ts.isNamedImports(bindings))
127
+ continue;
128
+ for (const specifier of bindings.elements) {
129
+ const imported = specifier.propertyName?.text ?? specifier.name.text;
130
+ if (imported === "getDefaultStore")
131
+ names.add(specifier.name.text);
132
+ }
133
+ }
134
+ return names;
135
+ }
136
+ function setAtomImportNames(source) {
137
+ const useAtom = new Set();
138
+ const useSetAtom = new Set();
139
+ for (const statement of source.statements) {
140
+ if (!ts.isImportDeclaration(statement) ||
141
+ !isJotaiModule(statement.moduleSpecifier))
142
+ continue;
143
+ const bindings = statement.importClause?.namedBindings;
144
+ if (!bindings || !ts.isNamedImports(bindings))
145
+ continue;
146
+ for (const specifier of bindings.elements) {
147
+ const imported = specifier.propertyName?.text ?? specifier.name.text;
148
+ if (imported === "useAtom")
149
+ useAtom.add(specifier.name.text);
150
+ if (imported === "useSetAtom")
151
+ useSetAtom.add(specifier.name.text);
152
+ }
153
+ }
154
+ return { useAtom, useSetAtom };
155
+ }
156
+ function isJotaiModule(moduleSpecifier) {
157
+ return (ts.isStringLiteral(moduleSpecifier) && moduleSpecifier.text === "jotai");
158
+ }
159
+ function isUseAtomLikeCall(node, names) {
160
+ return (ts.isCallExpression(node) &&
161
+ ts.isIdentifier(node.expression) &&
162
+ names.has(node.expression.text));
163
+ }
164
+ function isGetDefaultStoreCall(node, names) {
165
+ return (ts.isCallExpression(node) &&
166
+ ts.isIdentifier(node.expression) &&
167
+ names.has(node.expression.text));
168
+ }
169
+ function lineAndColumn(source, node) {
170
+ const pos = source.getLineAndCharacterOfPosition(node.getStart(source));
171
+ return { line: pos.line + 1, column: pos.character + 1 };
172
+ }
173
+ //# sourceMappingURL=writes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writes.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/writes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { HarnessCtx, HarnessHooks, ObservedRead } from "modality-ts/extraction/spi";
1
+ import type { HarnessCtx, HarnessHooks, ObservedRead } from "modality-ts/extract/engine/spi";
2
2
  export interface RouterHarnessHooks extends HarnessHooks {
3
3
  route: string;
4
4
  history: string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/router/harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACb,MAAM,gCAAgC,CAAC;AAGxC,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CAUzD;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,YAAY,EACrB,KAAK,SAAc,GAClB,YAAY,GAAG,cAAc,CAK/B;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACjC,EAAE,CAAC,EAAE,MAAM,GACV,IAAI,CAUN"}
@@ -1,7 +1,11 @@
1
1
  export function setup(ctx) {
2
2
  return {
3
- route: typeof ctx.initialState?.["sys:route"] === "string" ? ctx.initialState["sys:route"] : "/",
4
- history: Array.isArray(ctx.initialState?.["sys:history"]) ? [...ctx.initialState["sys:history"].filter(isString)] : []
3
+ route: typeof ctx.initialState?.["sys:route"] === "string"
4
+ ? ctx.initialState["sys:route"]
5
+ : "/",
6
+ history: Array.isArray(ctx.initialState?.["sys:history"])
7
+ ? [...ctx.initialState["sys:history"].filter(isString)]
8
+ : [],
5
9
  };
6
10
  }
7
11
  export function observe(handles, varId = "sys:route") {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/extract/sources/router/harness.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,KAAK,CAAC,GAAe;IACnC,OAAO;QACL,KAAK,EACH,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ;YACjD,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC;YAC/B,CAAC,CAAC,GAAG;QACT,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC,CAAC,EAAE;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAqB,EACrB,KAAK,GAAG,WAAW;IAEnB,MAAM,MAAM,GAAG,OAA6B,CAAC;IAC7C,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1D,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9D,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,OAAqB,EACrB,IAAiC,EACjC,EAAW;IAEX,MAAM,MAAM,GAAG,OAA6B,CAAC;IAC7C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;QACpD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,IAAI,KAAK,MAAM;QAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAY;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { RouterPlugin } from "modality-ts/extract/engine/spi";
2
+ export interface RouterSourceOptions {
3
+ id?: string;
4
+ packageNames?: readonly string[];
5
+ historyMaxLen?: number;
6
+ }
7
+ export declare function routerSource(options?: RouterSourceOptions): RouterPlugin;
8
+ export default routerSource;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAiB5E;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ import * as harness from "./harness.js";
2
+ import { navigationCall } from "./navigation.js";
3
+ import { routeVars } from "./routes.js";
4
+ export function routerSource(options = {}) {
5
+ const historyMaxLen = options.historyMaxLen ?? 4;
6
+ return {
7
+ id: options.id ?? "router",
8
+ version: "0.1.0",
9
+ packageNames: options.packageNames ?? ["react-router", "react-router-dom"],
10
+ routeVars: (routes, resolvedOptions) => routeVars(routes, {
11
+ ...resolvedOptions,
12
+ bounds: {
13
+ ...resolvedOptions.bounds,
14
+ maxHistory: resolvedOptions.bounds?.maxHistory ?? historyMaxLen,
15
+ },
16
+ }),
17
+ navigationCall,
18
+ harness,
19
+ };
20
+ }
21
+ export default routerSource;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extract/sources/router/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,MAAM,UAAU,YAAY,CAAC,UAA+B,EAAE;IAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;IACjD,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,QAAQ;QAC1B,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC;QAC1E,SAAS,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,CACrC,SAAS,CAAC,MAAM,EAAE;YAChB,GAAG,eAAe;YAClB,MAAM,EAAE;gBACN,GAAG,eAAe,CAAC,MAAM;gBACzB,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE,UAAU,IAAI,aAAa;aAChE;SACF,CAAC;QACJ,cAAc;QACd,OAAO;KACR,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function navigationCall(callee: string, args: readonly unknown[]): {
2
+ mode: "push" | "replace" | "back";
3
+ to?: string;
4
+ } | "unsupported";
5
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/router/navigation.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAepE"}
@@ -0,0 +1,16 @@
1
+ export function navigationCall(callee, args) {
2
+ if (callee === "navigate" && args.length === 1 && typeof args[0] === "string")
3
+ return { mode: "push", to: args[0] };
4
+ if ((callee.endsWith(".push") || callee.endsWith(".replace")) &&
5
+ args.length === 1 &&
6
+ typeof args[0] === "string") {
7
+ return {
8
+ mode: callee.endsWith(".replace") ? "replace" : "push",
9
+ to: args[0],
10
+ };
11
+ }
12
+ if (callee.endsWith(".back") && args.length === 0)
13
+ return { mode: "back" };
14
+ return "unsupported";
15
+ }
16
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/extract/sources/router/navigation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,IAAwB;IAExB,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC3B,CAAC;QACD,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YACtD,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;SACZ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3E,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResolvedOptions } from "modality-ts/extract/engine/spi";
2
+ import type { StateVarDecl } from "modality-ts/core";
3
+ export declare function routeVars(routes: readonly string[], options: ResolvedOptions): readonly StateVarDecl[];
4
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/router/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErE,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,eAAe,GACvB,SAAS,YAAY,EAAE,CAuBzB"}
@@ -0,0 +1,28 @@
1
+ export function routeVars(routes, options) {
2
+ const values = uniqueRoutes(routes, options.route);
3
+ const routeDomain = { kind: "enum", values };
4
+ return [
5
+ {
6
+ id: "sys:route",
7
+ domain: routeDomain,
8
+ origin: "system",
9
+ scope: { kind: "global" },
10
+ initial: options.route,
11
+ },
12
+ {
13
+ id: "sys:history",
14
+ domain: {
15
+ kind: "boundedList",
16
+ inner: routeDomain,
17
+ maxLen: options.bounds?.maxHistory ?? 4,
18
+ },
19
+ origin: "system",
20
+ scope: { kind: "global" },
21
+ initial: [],
22
+ },
23
+ ];
24
+ }
25
+ function uniqueRoutes(routes, initialRoute) {
26
+ return [...new Set([initialRoute, ...routes])];
27
+ }
28
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../src/extract/sources/router/routes.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,SAAS,CACvB,MAAyB,EACzB,OAAwB;IAExB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,WAAW,GAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC7D,OAAO;QACL;YACE,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK;SACvB;QACD;YACE,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE;gBACN,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC;aACxC;YACD,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,OAAO,EAAE,EAAE;SACZ;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,MAAyB,EACzB,YAAoB;IAEpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ExprIR } from "modality-ts/core";
2
+ import type { SourceDecl } from "modality-ts/extract/engine/spi";
3
+ import * as ts from "typescript";
4
+ export declare function discoverSwrHooks(sourceText: string, fileName?: string): SourceDecl[];
5
+ export declare function useSwrImportNames(source: ts.SourceFile): Set<string>;
6
+ export declare function keyFromExpression(expr: ts.Expression | undefined): {
7
+ id: string;
8
+ activeWhen?: ExprIR;
9
+ } | undefined;
10
+ export declare function swrIdFromKey(key: string): string;
11
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/swr/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAY,GACnB,UAAU,EAAE,CA6Cd;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAmBpE;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,GAC9B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAyBjD;AAqFD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOhD"}
@@ -0,0 +1,175 @@
1
+ import * as ts from "typescript";
2
+ import { inferPayloadDomain, typeAliasDeclarations } from "./domains.js";
3
+ export function discoverSwrHooks(sourceText, fileName = "App.tsx") {
4
+ const source = ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
5
+ const useSwrNames = useSwrImportNames(source);
6
+ if (useSwrNames.size === 0)
7
+ return [];
8
+ const typeAliases = typeAliasDeclarations(source);
9
+ const decls = [];
10
+ const visit = (node) => {
11
+ if (ts.isCallExpression(node) &&
12
+ ts.isIdentifier(node.expression) &&
13
+ useSwrNames.has(node.expression.text)) {
14
+ const key = keyFromExpression(node.arguments[0]);
15
+ if (key) {
16
+ const id = swrIdFromKey(key.id);
17
+ const origin = { file: fileName, ...lineAndColumn(source, node) };
18
+ decls.push({
19
+ id: `swr:${id}`,
20
+ kind: "swr/useSWR",
21
+ origin,
22
+ metadata: {
23
+ key: key.id,
24
+ id,
25
+ op: `GET ${key.id}`,
26
+ payloadDomain: inferPayloadDomain(node.typeArguments?.[0], typeAliases),
27
+ ...(key.activeWhen ? { activeWhen: key.activeWhen } : {}),
28
+ ...optionsMetadata(node.arguments[2]),
29
+ },
30
+ });
31
+ }
32
+ }
33
+ ts.forEachChild(node, visit);
34
+ };
35
+ visit(source);
36
+ return decls;
37
+ }
38
+ export function useSwrImportNames(source) {
39
+ const names = new Set();
40
+ for (const statement of source.statements) {
41
+ if (!ts.isImportDeclaration(statement) ||
42
+ !ts.isStringLiteral(statement.moduleSpecifier) ||
43
+ statement.moduleSpecifier.text !== "swr")
44
+ continue;
45
+ if (statement.importClause?.name)
46
+ names.add(statement.importClause.name.text);
47
+ const bindings = statement.importClause?.namedBindings;
48
+ if (!bindings || !ts.isNamedImports(bindings))
49
+ continue;
50
+ for (const specifier of bindings.elements) {
51
+ const imported = specifier.propertyName?.text ?? specifier.name.text;
52
+ if (imported === "useSWR")
53
+ names.add(specifier.name.text);
54
+ }
55
+ }
56
+ return names;
57
+ }
58
+ export function keyFromExpression(expr) {
59
+ if (!expr)
60
+ return undefined;
61
+ if (ts.isStringLiteral(expr) && expr.text.length > 0)
62
+ return { id: expr.text };
63
+ if (ts.isNoSubstitutionTemplateLiteral(expr) && expr.text.length > 0)
64
+ return { id: expr.text };
65
+ if (ts.isArrayLiteralExpression(expr)) {
66
+ const parts = expr.elements.map(keyPartFromExpression);
67
+ if (parts.length > 0 &&
68
+ parts.every((part) => Boolean(part)))
69
+ return { id: parts.join(":") };
70
+ }
71
+ if (ts.isConditionalExpression(expr) && isNullish(expr.whenFalse)) {
72
+ const key = keyFromExpression(expr.whenTrue);
73
+ const activeWhen = exprFromCondition(expr.condition);
74
+ if (key && activeWhen)
75
+ return { ...key, activeWhen };
76
+ }
77
+ if (ts.isConditionalExpression(expr) && isNullish(expr.whenTrue)) {
78
+ const key = keyFromExpression(expr.whenFalse);
79
+ const activeWhen = exprFromCondition(expr.condition);
80
+ if (key && activeWhen)
81
+ return { ...key, activeWhen: notExpr(activeWhen) };
82
+ }
83
+ return undefined;
84
+ }
85
+ function keyPartFromExpression(expr) {
86
+ if (ts.isStringLiteral(expr) || ts.isNoSubstitutionTemplateLiteral(expr))
87
+ return expr.text;
88
+ if (ts.isNumericLiteral(expr))
89
+ return expr.text;
90
+ if (ts.isIdentifier(expr))
91
+ return expr.text;
92
+ return undefined;
93
+ }
94
+ function exprFromCondition(expr) {
95
+ if (ts.isIdentifier(expr))
96
+ return { kind: "read", var: expr.text };
97
+ if (expr.kind === ts.SyntaxKind.TrueKeyword)
98
+ return { kind: "lit", value: true };
99
+ if (expr.kind === ts.SyntaxKind.FalseKeyword)
100
+ return { kind: "lit", value: false };
101
+ if (ts.isBinaryExpression(expr) &&
102
+ (expr.operatorToken.kind === ts.SyntaxKind.EqualsEqualsEqualsToken ||
103
+ expr.operatorToken.kind === ts.SyntaxKind.ExclamationEqualsEqualsToken)) {
104
+ const left = ts.isIdentifier(expr.left)
105
+ ? { kind: "read", var: expr.left.text }
106
+ : undefined;
107
+ const right = literalExpr(expr.right);
108
+ if (left && right)
109
+ return {
110
+ kind: expr.operatorToken.kind === ts.SyntaxKind.EqualsEqualsEqualsToken
111
+ ? "eq"
112
+ : "neq",
113
+ args: [left, right],
114
+ };
115
+ }
116
+ if (ts.isPrefixUnaryExpression(expr) &&
117
+ expr.operator === ts.SyntaxKind.ExclamationToken) {
118
+ const inner = exprFromCondition(expr.operand);
119
+ if (inner)
120
+ return { kind: "not", args: [inner] };
121
+ }
122
+ return undefined;
123
+ }
124
+ function literalExpr(expr) {
125
+ if (ts.isStringLiteral(expr))
126
+ return { kind: "lit", value: expr.text };
127
+ if (ts.isNumericLiteral(expr))
128
+ return { kind: "lit", value: Number(expr.text) };
129
+ if (expr.kind === ts.SyntaxKind.TrueKeyword)
130
+ return { kind: "lit", value: true };
131
+ if (expr.kind === ts.SyntaxKind.FalseKeyword)
132
+ return { kind: "lit", value: false };
133
+ if (expr.kind === ts.SyntaxKind.NullKeyword)
134
+ return { kind: "lit", value: null };
135
+ return undefined;
136
+ }
137
+ function isNullish(expr) {
138
+ return (expr.kind === ts.SyntaxKind.NullKeyword ||
139
+ (ts.isIdentifier(expr) && expr.text === "undefined"));
140
+ }
141
+ function optionsMetadata(expr) {
142
+ if (!expr || !ts.isObjectLiteralExpression(expr))
143
+ return {};
144
+ const metadata = {};
145
+ for (const prop of expr.properties) {
146
+ if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name))
147
+ continue;
148
+ if (prop.name.text === "revalidateOnFocus" &&
149
+ prop.initializer.kind === ts.SyntaxKind.TrueKeyword)
150
+ metadata.revalidateOnFocus = true;
151
+ if (prop.name.text === "revalidateOnFocus" &&
152
+ prop.initializer.kind === ts.SyntaxKind.FalseKeyword)
153
+ metadata.revalidateOnFocus = false;
154
+ }
155
+ return metadata;
156
+ }
157
+ export function swrIdFromKey(key) {
158
+ return (key
159
+ .replace(/^\/+/, "")
160
+ .replace(/[^A-Za-z0-9]+/g, "_")
161
+ .replace(/^_+|_+$/g, "") || "root");
162
+ }
163
+ function lineAndColumn(source, node) {
164
+ const pos = source.getLineAndCharacterOfPosition(node.getStart(source));
165
+ return { line: pos.line + 1, column: pos.character + 1 };
166
+ }
167
+ function lit(value) {
168
+ return { kind: "lit", value };
169
+ }
170
+ function notExpr(expr) {
171
+ if (expr.kind === "not")
172
+ return expr.args[0] ?? lit(true);
173
+ return { kind: "not", args: [expr] };
174
+ }
175
+ //# sourceMappingURL=discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../../src/extract/sources/swr/discover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AbstractDomain } from "modality-ts/core";
2
+ import * as ts from "typescript";
3
+ export declare function inferPayloadDomain(typeArg: ts.TypeNode | undefined, typeAliases?: ReadonlyMap<string, ts.TypeNode>): AbstractDomain;
4
+ export declare function typeAliasDeclarations(source: ts.SourceFile): Map<string, ts.TypeNode>;
5
+ //# sourceMappingURL=domains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/swr/domains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,EAAE,CAAC,QAAQ,GAAG,SAAS,EAChC,WAAW,GAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAa,GACxD,cAAc,CAwBhB;AA6ED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,EAAE,CAAC,UAAU,GACpB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAS1B"}