modality-ts 0.0.13 → 0.0.15

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 (154) hide show
  1. package/dist/cli/cli.js +117 -27
  2. package/dist/cli/cli.js.map +1 -1
  3. package/dist/cli/features/check/command.d.ts +7 -0
  4. package/dist/cli/features/check/command.d.ts.map +1 -1
  5. package/dist/cli/features/check/command.js +39 -6
  6. package/dist/cli/features/check/command.js.map +1 -1
  7. package/dist/cli/features/check/index.d.ts +2 -0
  8. package/dist/cli/features/check/index.d.ts.map +1 -1
  9. package/dist/cli/features/check/index.js +1 -0
  10. package/dist/cli/features/check/index.js.map +1 -1
  11. package/dist/cli/features/check/output.d.ts +29 -0
  12. package/dist/cli/features/check/output.d.ts.map +1 -0
  13. package/dist/cli/features/check/output.js +174 -0
  14. package/dist/cli/features/check/output.js.map +1 -0
  15. package/dist/cli/features/ci/command.d.ts +2 -0
  16. package/dist/cli/features/ci/command.d.ts.map +1 -1
  17. package/dist/cli/features/ci/command.js +21 -0
  18. package/dist/cli/features/ci/command.js.map +1 -1
  19. package/dist/cli/features/ci/index.d.ts +2 -0
  20. package/dist/cli/features/ci/index.d.ts.map +1 -1
  21. package/dist/cli/features/ci/index.js +1 -0
  22. package/dist/cli/features/ci/index.js.map +1 -1
  23. package/dist/cli/features/ci/output.d.ts +19 -0
  24. package/dist/cli/features/ci/output.d.ts.map +1 -0
  25. package/dist/cli/features/ci/output.js +40 -0
  26. package/dist/cli/features/ci/output.js.map +1 -0
  27. package/dist/cli/features/conform/index.d.ts +1 -0
  28. package/dist/cli/features/conform/index.d.ts.map +1 -1
  29. package/dist/cli/features/conform/index.js +1 -0
  30. package/dist/cli/features/conform/index.js.map +1 -1
  31. package/dist/cli/features/conform/output.d.ts +9 -0
  32. package/dist/cli/features/conform/output.d.ts.map +1 -0
  33. package/dist/cli/features/conform/output.js +28 -0
  34. package/dist/cli/features/conform/output.js.map +1 -0
  35. package/dist/cli/features/export/command.d.ts +2 -0
  36. package/dist/cli/features/export/command.d.ts.map +1 -1
  37. package/dist/cli/features/export/command.js +8 -2
  38. package/dist/cli/features/export/command.js.map +1 -1
  39. package/dist/cli/features/export/index.d.ts +1 -0
  40. package/dist/cli/features/export/index.d.ts.map +1 -1
  41. package/dist/cli/features/export/index.js +1 -0
  42. package/dist/cli/features/export/index.js.map +1 -1
  43. package/dist/cli/features/export/output.d.ts +8 -0
  44. package/dist/cli/features/export/output.d.ts.map +1 -0
  45. package/dist/cli/features/export/output.js +14 -0
  46. package/dist/cli/features/export/output.js.map +1 -0
  47. package/dist/cli/features/extract/command.d.ts +9 -0
  48. package/dist/cli/features/extract/command.d.ts.map +1 -1
  49. package/dist/cli/features/extract/command.js +20 -1
  50. package/dist/cli/features/extract/command.js.map +1 -1
  51. package/dist/cli/features/extract/index.d.ts +2 -0
  52. package/dist/cli/features/extract/index.d.ts.map +1 -1
  53. package/dist/cli/features/extract/index.js +1 -0
  54. package/dist/cli/features/extract/index.js.map +1 -1
  55. package/dist/cli/features/extract/output.d.ts +22 -0
  56. package/dist/cli/features/extract/output.d.ts.map +1 -0
  57. package/dist/cli/features/extract/output.js +48 -0
  58. package/dist/cli/features/extract/output.js.map +1 -0
  59. package/dist/cli/features/init/index.d.ts +1 -0
  60. package/dist/cli/features/init/index.d.ts.map +1 -1
  61. package/dist/cli/features/init/index.js +1 -0
  62. package/dist/cli/features/init/index.js.map +1 -1
  63. package/dist/cli/features/init/output.d.ts +4 -0
  64. package/dist/cli/features/init/output.d.ts.map +1 -0
  65. package/dist/cli/features/init/output.js +9 -0
  66. package/dist/cli/features/init/output.js.map +1 -0
  67. package/dist/cli/features/replay/index.d.ts +1 -0
  68. package/dist/cli/features/replay/index.d.ts.map +1 -1
  69. package/dist/cli/features/replay/index.js +1 -0
  70. package/dist/cli/features/replay/index.js.map +1 -1
  71. package/dist/cli/features/replay/output.d.ts +10 -0
  72. package/dist/cli/features/replay/output.d.ts.map +1 -0
  73. package/dist/cli/features/replay/output.js +37 -0
  74. package/dist/cli/features/replay/output.js.map +1 -0
  75. package/dist/cli/output.d.ts +28 -0
  76. package/dist/cli/output.d.ts.map +1 -0
  77. package/dist/cli/output.js +64 -0
  78. package/dist/cli/output.js.map +1 -0
  79. package/dist/extract/engine/ts/context.d.ts.map +1 -1
  80. package/dist/extract/engine/ts/context.js +7 -1
  81. package/dist/extract/engine/ts/context.js.map +1 -1
  82. package/dist/extract/engine/ts/react-source-transitions.d.ts +4 -1
  83. package/dist/extract/engine/ts/react-source-transitions.d.ts.map +1 -1
  84. package/dist/extract/engine/ts/react-source-transitions.js +11 -2
  85. package/dist/extract/engine/ts/react-source-transitions.js.map +1 -1
  86. package/dist/extract/engine/ts/transition/expressions.d.ts +1 -1
  87. package/dist/extract/engine/ts/transition/expressions.d.ts.map +1 -1
  88. package/dist/extract/engine/ts/transition/expressions.js +12 -1
  89. package/dist/extract/engine/ts/transition/expressions.js.map +1 -1
  90. package/dist/extract/engine/ts/transition/handlers.d.ts +3 -3
  91. package/dist/extract/engine/ts/transition/handlers.d.ts.map +1 -1
  92. package/dist/extract/engine/ts/transition/handlers.js +10 -7
  93. package/dist/extract/engine/ts/transition/handlers.js.map +1 -1
  94. package/dist/extract/engine/ts/transition/statement-summary.d.ts +6 -2
  95. package/dist/extract/engine/ts/transition/statement-summary.d.ts.map +1 -1
  96. package/dist/extract/engine/ts/transition/statement-summary.js +40 -6
  97. package/dist/extract/engine/ts/transition/statement-summary.js.map +1 -1
  98. package/dist/extract/engine/ts/types.d.ts +3 -0
  99. package/dist/extract/engine/ts/types.d.ts.map +1 -1
  100. package/dist/extract/sources/jotai/derived-writes.d.ts +11 -0
  101. package/dist/extract/sources/jotai/derived-writes.d.ts.map +1 -0
  102. package/dist/extract/sources/jotai/derived-writes.js +141 -0
  103. package/dist/extract/sources/jotai/derived-writes.js.map +1 -0
  104. package/dist/extract/sources/jotai/discover.d.ts +16 -0
  105. package/dist/extract/sources/jotai/discover.d.ts.map +1 -1
  106. package/dist/extract/sources/jotai/discover.js +163 -46
  107. package/dist/extract/sources/jotai/discover.js.map +1 -1
  108. package/dist/extract/sources/jotai/domains.d.ts +14 -1
  109. package/dist/extract/sources/jotai/domains.d.ts.map +1 -1
  110. package/dist/extract/sources/jotai/domains.js +481 -70
  111. package/dist/extract/sources/jotai/domains.js.map +1 -1
  112. package/dist/extract/sources/jotai/harness.d.ts +4 -1
  113. package/dist/extract/sources/jotai/harness.d.ts.map +1 -1
  114. package/dist/extract/sources/jotai/harness.js +10 -3
  115. package/dist/extract/sources/jotai/harness.js.map +1 -1
  116. package/dist/extract/sources/jotai/hydration.d.ts +16 -0
  117. package/dist/extract/sources/jotai/hydration.d.ts.map +1 -0
  118. package/dist/extract/sources/jotai/hydration.js +116 -0
  119. package/dist/extract/sources/jotai/hydration.js.map +1 -0
  120. package/dist/extract/sources/jotai/ids.d.ts +7 -0
  121. package/dist/extract/sources/jotai/ids.d.ts.map +1 -0
  122. package/dist/extract/sources/jotai/ids.js +23 -0
  123. package/dist/extract/sources/jotai/ids.js.map +1 -0
  124. package/dist/extract/sources/jotai/imports.d.ts +23 -0
  125. package/dist/extract/sources/jotai/imports.d.ts.map +1 -0
  126. package/dist/extract/sources/jotai/imports.js +111 -0
  127. package/dist/extract/sources/jotai/imports.js.map +1 -0
  128. package/dist/extract/sources/jotai/jsx.d.ts +4 -0
  129. package/dist/extract/sources/jotai/jsx.d.ts.map +1 -0
  130. package/dist/extract/sources/jotai/jsx.js +52 -0
  131. package/dist/extract/sources/jotai/jsx.js.map +1 -0
  132. package/dist/extract/sources/jotai/plugin.d.ts.map +1 -1
  133. package/dist/extract/sources/jotai/plugin.js +9 -2
  134. package/dist/extract/sources/jotai/plugin.js.map +1 -1
  135. package/dist/extract/sources/jotai/stores.d.ts +3 -0
  136. package/dist/extract/sources/jotai/stores.d.ts.map +1 -0
  137. package/dist/extract/sources/jotai/stores.js +40 -0
  138. package/dist/extract/sources/jotai/stores.js.map +1 -0
  139. package/dist/extract/sources/jotai/transitions.d.ts.map +1 -1
  140. package/dist/extract/sources/jotai/transitions.js +16 -5
  141. package/dist/extract/sources/jotai/transitions.js.map +1 -1
  142. package/dist/extract/sources/jotai/types.d.ts +22 -0
  143. package/dist/extract/sources/jotai/types.d.ts.map +1 -0
  144. package/dist/extract/sources/jotai/types.js +86 -0
  145. package/dist/extract/sources/jotai/types.js.map +1 -0
  146. package/dist/extract/sources/jotai/writes.d.ts +23 -1
  147. package/dist/extract/sources/jotai/writes.d.ts.map +1 -1
  148. package/dist/extract/sources/jotai/writes.js +330 -89
  149. package/dist/extract/sources/jotai/writes.js.map +1 -1
  150. package/dist/extract/sources/shared/react-transition-extract.d.ts +3 -0
  151. package/dist/extract/sources/shared/react-transition-extract.d.ts.map +1 -1
  152. package/dist/extract/sources/shared/react-transition-extract.js +5 -0
  153. package/dist/extract/sources/shared/react-transition-extract.js.map +1 -1
  154. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/domains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/domains.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,14 @@ import type { AbstractDomain, ModelState, Value } from "modality-ts/core";
3
3
  export interface JotaiHarnessHooks extends HarnessHooks {
4
4
  initialState: ModelState;
5
5
  atoms?: Record<string, unknown>;
6
+ stores?: Record<string, {
7
+ get(atom: unknown): Value;
8
+ }>;
6
9
  store?: {
7
10
  get(atom: unknown): Value;
8
11
  };
9
12
  }
10
- export declare function setup(ctx: HarnessCtx & Partial<Pick<JotaiHarnessHooks, "atoms" | "store">>): JotaiHarnessHooks;
13
+ export declare function setup(ctx: HarnessCtx & Partial<Pick<JotaiHarnessHooks, "atoms" | "store" | "stores">>): JotaiHarnessHooks;
11
14
  export declare function observe(varId: string, handles: HarnessHooks): ObservedRead | "unobservable";
12
15
  export declare function witness(_domain: AbstractDomain, _varId: string): WitnessFactory | undefined;
13
16
  //# sourceMappingURL=harness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,KAAK,CACnB,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GACpE,iBAAiB,CAMnB;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,YAAY,GAAG,cAAc,CAW/B;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS,CAE5B"}
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG1E,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,KAAK,CACnB,GAAG,EAAE,UAAU,GACb,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,GAC/D,iBAAiB,CAOnB;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,YAAY,GAAG,cAAc,CAgB/B;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS,CAE5B"}
@@ -1,15 +1,22 @@
1
+ import { atomNameFromVarId, storeScopeFromVarId } from "./ids.js";
1
2
  export function setup(ctx) {
2
3
  return {
3
4
  initialState: ctx.initialState ?? {},
4
5
  ...(ctx.atoms ? { atoms: ctx.atoms } : {}),
5
6
  ...(ctx.store ? { store: ctx.store } : {}),
7
+ ...(ctx.stores ? { stores: ctx.stores } : {}),
6
8
  };
7
9
  }
8
10
  export function observe(varId, handles) {
9
11
  const jotai = handles;
10
- const atom = jotai.atoms?.[varId] ?? jotai.atoms?.[varId.replace(/^atom:/, "")];
11
- if (atom !== undefined && jotai.store)
12
- return { value: jotai.store.get(atom) };
12
+ const atomName = atomNameFromVarId(varId);
13
+ const storeScope = storeScopeFromVarId(varId);
14
+ const atom = jotai.atoms?.[varId] ??
15
+ jotai.atoms?.[atomName ?? ""] ??
16
+ (atomName ? jotai.atoms?.[`atom:${atomName}`] : undefined);
17
+ const store = (storeScope ? jotai.stores?.[storeScope] : undefined) ?? jotai.store;
18
+ if (atom !== undefined && store)
19
+ return { value: store.get(atom) };
13
20
  if (varId in jotai.initialState) {
14
21
  const initial = jotai.initialState[varId];
15
22
  if (initial !== undefined)
@@ -1 +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,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAuB,EACvB,MAAc;IAEd,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAWlE,MAAM,UAAU,KAAK,CACnB,GACgE;IAEhE,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;QAC1C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,OAAqB;IAErB,MAAM,KAAK,GAAG,OAA4B,CAAC;IAC3C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GACR,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,KAAK,GACT,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;IACvE,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACnE,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAuB,EACvB,MAAc;IAEd,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import * as ts from "typescript";
2
+ import type { SourceAnchor, Value } from "modality-ts/core";
3
+ export interface HydrationOverride {
4
+ varId: string;
5
+ initial: Value;
6
+ }
7
+ export interface HydrationDiscovery {
8
+ overrides: HydrationOverride[];
9
+ warnings: {
10
+ message: string;
11
+ source?: SourceAnchor;
12
+ }[];
13
+ }
14
+ export declare function discoverHydrationOverrides(source: ts.SourceFile, fileName: string, imports?: import("./imports.js").JotaiResolvedImports): HydrationDiscovery;
15
+ export declare function applyHydrationOverrides(decls: readonly import("modality-ts/extract/engine/spi").SourceDecl[], overrides: readonly HydrationOverride[]): import("modality-ts/extract/engine/spi").SourceDecl[];
16
+ //# sourceMappingURL=hydration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;CACxD;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,EAAE,CAAC,UAAU,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,8CAA8B,GACpC,kBAAkB,CAiEpB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,OAAO,gCAAgC,EAAE,UAAU,EAAE,EACrE,SAAS,EAAE,SAAS,iBAAiB,EAAE,GACtC,OAAO,gCAAgC,EAAE,UAAU,EAAE,CAevD"}
@@ -0,0 +1,116 @@
1
+ import * as ts from "typescript";
2
+ import { literalValue, propertyName } from "../../engine/ts/ast.js";
3
+ import { providerScopeFromJsx } from "./jsx.js";
4
+ import { isHookCall, resolveJotaiImports } from "./imports.js";
5
+ import { atomVarId } from "./ids.js";
6
+ export function discoverHydrationOverrides(source, fileName, imports = resolveJotaiImports(source)) {
7
+ const overrides = [];
8
+ const warnings = [];
9
+ if (!imports.hooks.size)
10
+ return { overrides, warnings };
11
+ const visit = (node, storeScope) => {
12
+ if (ts.isCallExpression(node) &&
13
+ isHookCall(node, imports.hooks, "useHydrateAtoms")) {
14
+ const valuesArg = node.arguments[0];
15
+ const optionsArg = node.arguments[1];
16
+ let scopedStore = storeScope;
17
+ if (optionsArg && ts.isObjectLiteralExpression(optionsArg)) {
18
+ for (const prop of optionsArg.properties) {
19
+ if (!ts.isPropertyAssignment(prop))
20
+ continue;
21
+ const name = propertyName(prop.name);
22
+ if (name === "store" && ts.isIdentifier(prop.initializer)) {
23
+ scopedStore = prop.initializer.text;
24
+ }
25
+ if (name === "dangerouslyForceHydrate" &&
26
+ prop.initializer.kind === ts.SyntaxKind.TrueKeyword) {
27
+ warnings.push({
28
+ message: "Jotai dangerouslyForceHydrate concurrent semantics not modeled",
29
+ source: anchor(source, fileName, node),
30
+ });
31
+ }
32
+ }
33
+ }
34
+ if (!valuesArg)
35
+ return;
36
+ const pairs = hydrationPairs(valuesArg);
37
+ if (!pairs) {
38
+ warnings.push({
39
+ message: "Jotai useHydrateAtoms dynamic values unsupported",
40
+ source: anchor(source, fileName, node),
41
+ });
42
+ return;
43
+ }
44
+ for (const [atomName, value] of pairs) {
45
+ if (value === undefined) {
46
+ warnings.push({
47
+ message: `Jotai useHydrateAtoms dynamic value for ${atomName} unsupported`,
48
+ source: anchor(source, fileName, node),
49
+ });
50
+ continue;
51
+ }
52
+ overrides.push({
53
+ varId: atomVarId(atomName, scopedStore),
54
+ initial: value,
55
+ });
56
+ }
57
+ }
58
+ if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node)) {
59
+ const providerScope = providerScopeFromJsx(node, imports, source);
60
+ const childScope = providerScope ?? storeScope;
61
+ ts.forEachChild(node, (child) => visit(child, childScope));
62
+ return;
63
+ }
64
+ ts.forEachChild(node, (child) => visit(child, storeScope));
65
+ };
66
+ visit(source, undefined);
67
+ return { overrides, warnings };
68
+ }
69
+ export function applyHydrationOverrides(decls, overrides) {
70
+ if (overrides.length === 0)
71
+ return [...decls];
72
+ const overrideMap = new Map(overrides.map((entry) => [entry.varId, entry.initial]));
73
+ return decls.map((decl) => {
74
+ if (!decl.var)
75
+ return decl;
76
+ const override = overrideMap.get(decl.var.id);
77
+ if (override === undefined)
78
+ return decl;
79
+ return {
80
+ ...decl,
81
+ var: { ...decl.var, initial: override },
82
+ metadata: { ...decl.metadata, hydrated: true },
83
+ };
84
+ });
85
+ }
86
+ function hydrationPairs(expression) {
87
+ if (ts.isArrayLiteralExpression(expression)) {
88
+ const pairs = [];
89
+ for (const element of expression.elements) {
90
+ if (!ts.isArrayLiteralExpression(element) ||
91
+ element.elements.length < 2) {
92
+ return undefined;
93
+ }
94
+ const atom = element.elements[0];
95
+ const value = element.elements[1];
96
+ if (!atom || !ts.isIdentifier(atom) || !value)
97
+ return undefined;
98
+ const lit = literalValue(value);
99
+ pairs.push([atom.text, lit]);
100
+ }
101
+ return pairs;
102
+ }
103
+ if (ts.isNewExpression(expression) &&
104
+ ts.isIdentifier(expression.expression) &&
105
+ expression.expression.text === "Map" &&
106
+ expression.arguments?.[0] &&
107
+ ts.isArrayLiteralExpression(expression.arguments[0])) {
108
+ return hydrationPairs(expression.arguments[0]);
109
+ }
110
+ return undefined;
111
+ }
112
+ function anchor(source, fileName, node) {
113
+ const pos = source.getLineAndCharacterOfPosition(node.getStart(source));
114
+ return { file: fileName, line: pos.line + 1, column: pos.character + 1 };
115
+ }
116
+ //# sourceMappingURL=hydration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/hydration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function atomVarId(atomName: string, storeScope?: string): string;
2
+ export declare function familyVarId(familyName: string, param: string): string;
3
+ export declare function providerStoreScope(componentName: string): string;
4
+ export declare function sanitizeFamilyParam(param: string): string;
5
+ export declare function atomNameFromVarId(varId: string): string | undefined;
6
+ export declare function storeScopeFromVarId(varId: string): string | undefined;
7
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/ids.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE"}
@@ -0,0 +1,23 @@
1
+ export function atomVarId(atomName, storeScope) {
2
+ if (!storeScope)
3
+ return `atom:${atomName}`;
4
+ return `atom:${atomName}@store:${storeScope}`;
5
+ }
6
+ export function familyVarId(familyName, param) {
7
+ return `atom-family:${familyName}:${sanitizeFamilyParam(param)}`;
8
+ }
9
+ export function providerStoreScope(componentName) {
10
+ return `provider:${componentName}`;
11
+ }
12
+ export function sanitizeFamilyParam(param) {
13
+ return JSON.stringify(param);
14
+ }
15
+ export function atomNameFromVarId(varId) {
16
+ const match = /^(?:atom|atom-family):([^@]+)/.exec(varId);
17
+ return match?.[1];
18
+ }
19
+ export function storeScopeFromVarId(varId) {
20
+ const match = /@store:(.+)$/.exec(varId);
21
+ return match?.[1];
22
+ }
23
+ //# sourceMappingURL=ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/ids.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,UAAmB;IAC7D,IAAI,CAAC,UAAU;QAAE,OAAO,QAAQ,QAAQ,EAAE,CAAC;IAC3C,OAAO,QAAQ,QAAQ,UAAU,UAAU,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,KAAa;IAC3D,OAAO,eAAe,UAAU,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,OAAO,YAAY,aAAa,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as ts from "typescript";
2
+ export declare const JOTAI_CORE_MODULES: Set<string>;
3
+ export declare const JOTAI_UTIL_MODULES: Set<string>;
4
+ export declare const JOTAI_MODULES: Set<string>;
5
+ export declare const ATOM_CREATOR_SYMBOLS: Set<string>;
6
+ export declare const HOOK_SYMBOLS: Set<string>;
7
+ export declare const STORE_SYMBOLS: Set<string>;
8
+ export interface JotaiResolvedImports {
9
+ atomCreators: Map<string, string>;
10
+ hooks: Map<string, string>;
11
+ storeCreators: Map<string, string>;
12
+ utils: Map<string, string>;
13
+ resetSymbol: string | undefined;
14
+ providerTag: string | undefined;
15
+ }
16
+ export declare function resolveJotaiImports(source: ts.SourceFile): JotaiResolvedImports;
17
+ export declare function isJotaiModuleSpecifier(moduleSpecifier: ts.Expression): boolean;
18
+ export declare function moduleSpecifierText(moduleSpecifier: ts.Expression): string | undefined;
19
+ export declare function isAtomCreatorCall(node: ts.Expression, atomCreators: ReadonlyMap<string, string>): node is ts.CallExpression;
20
+ export declare function atomCreatorName(call: ts.CallExpression, atomCreators: ReadonlyMap<string, string>): string | undefined;
21
+ export declare function isHookCall(node: ts.Expression, hooks: ReadonlyMap<string, string>, importedName: string): node is ts.CallExpression;
22
+ export declare function hookImportedName(node: ts.CallExpression, hooks: ReadonlyMap<string, string>): string | undefined;
23
+ //# sourceMappingURL=imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,eAAO,MAAM,kBAAkB,aAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,aAI7B,CAAC;AAEH,eAAO,MAAM,aAAa,aAGxB,CAAC;AAEH,eAAO,MAAM,oBAAoB,aAW/B,CAAC;AAEH,eAAO,MAAM,YAAY,aAMvB,CAAC;AAEH,eAAO,MAAM,aAAa,aAA8C,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,EAAE,CAAC,UAAU,GACpB,oBAAoB,CA6CtB;AAED,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,EAAE,CAAC,UAAU,GAC7B,OAAO,CAGT;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,EAAE,CAAC,UAAU,GAC7B,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,IAAI,IAAI,EAAE,CAAC,cAAc,CAM3B;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,YAAY,EAAE,MAAM,GACnB,IAAI,IAAI,EAAE,CAAC,cAAc,CAI3B;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,GAAG,SAAS,CAGpB"}
@@ -0,0 +1,111 @@
1
+ import * as ts from "typescript";
2
+ export const JOTAI_CORE_MODULES = new Set([
3
+ "jotai",
4
+ "jotai/react",
5
+ "jotai/vanilla",
6
+ ]);
7
+ export const JOTAI_UTIL_MODULES = new Set([
8
+ "jotai/utils",
9
+ "jotai/vanilla/utils",
10
+ "jotai-family",
11
+ ]);
12
+ export const JOTAI_MODULES = new Set([
13
+ ...JOTAI_CORE_MODULES,
14
+ ...JOTAI_UTIL_MODULES,
15
+ ]);
16
+ export const ATOM_CREATOR_SYMBOLS = new Set([
17
+ "atom",
18
+ "atomWithStorage",
19
+ "atomWithLazy",
20
+ "atomWithReset",
21
+ "atomWithDefault",
22
+ "atomWithRefresh",
23
+ "loadable",
24
+ "unwrap",
25
+ "atomWithObservable",
26
+ "atomFamily",
27
+ ]);
28
+ export const HOOK_SYMBOLS = new Set([
29
+ "useAtom",
30
+ "useSetAtom",
31
+ "useStore",
32
+ "useHydrateAtoms",
33
+ "useResetAtom",
34
+ ]);
35
+ export const STORE_SYMBOLS = new Set(["createStore", "getDefaultStore"]);
36
+ export function resolveJotaiImports(source) {
37
+ const atomCreators = new Map();
38
+ const hooks = new Map();
39
+ const storeCreators = new Map();
40
+ const utils = new Map();
41
+ let resetSymbol;
42
+ let providerTag;
43
+ for (const statement of source.statements) {
44
+ if (!ts.isImportDeclaration(statement))
45
+ continue;
46
+ const moduleName = moduleSpecifierText(statement.moduleSpecifier);
47
+ if (!moduleName || !JOTAI_MODULES.has(moduleName))
48
+ continue;
49
+ const bindings = statement.importClause?.namedBindings;
50
+ if (!bindings || !ts.isNamedImports(bindings))
51
+ continue;
52
+ for (const specifier of bindings.elements) {
53
+ const imported = specifier.propertyName?.text ?? specifier.name.text;
54
+ const local = specifier.name.text;
55
+ if (ATOM_CREATOR_SYMBOLS.has(imported)) {
56
+ atomCreators.set(local, imported);
57
+ }
58
+ if (HOOK_SYMBOLS.has(imported)) {
59
+ hooks.set(local, imported);
60
+ }
61
+ if (STORE_SYMBOLS.has(imported)) {
62
+ storeCreators.set(local, imported);
63
+ }
64
+ if (imported === "createJSONStorage" ||
65
+ imported === "RESET" ||
66
+ imported === "Provider") {
67
+ utils.set(local, imported);
68
+ }
69
+ if (imported === "RESET")
70
+ resetSymbol = local;
71
+ if (imported === "Provider")
72
+ providerTag = local;
73
+ }
74
+ }
75
+ return {
76
+ atomCreators,
77
+ hooks,
78
+ storeCreators,
79
+ utils,
80
+ resetSymbol,
81
+ providerTag,
82
+ };
83
+ }
84
+ export function isJotaiModuleSpecifier(moduleSpecifier) {
85
+ const text = moduleSpecifierText(moduleSpecifier);
86
+ return text !== undefined && JOTAI_MODULES.has(text);
87
+ }
88
+ export function moduleSpecifierText(moduleSpecifier) {
89
+ return ts.isStringLiteral(moduleSpecifier) ? moduleSpecifier.text : undefined;
90
+ }
91
+ export function isAtomCreatorCall(node, atomCreators) {
92
+ return (ts.isCallExpression(node) &&
93
+ ts.isIdentifier(node.expression) &&
94
+ atomCreators.has(node.expression.text));
95
+ }
96
+ export function atomCreatorName(call, atomCreators) {
97
+ if (!ts.isIdentifier(call.expression))
98
+ return undefined;
99
+ return atomCreators.get(call.expression.text);
100
+ }
101
+ export function isHookCall(node, hooks, importedName) {
102
+ if (!ts.isCallExpression(node) || !ts.isIdentifier(node.expression))
103
+ return false;
104
+ return hooks.get(node.expression.text) === importedName;
105
+ }
106
+ export function hookImportedName(node, hooks) {
107
+ if (!ts.isIdentifier(node.expression))
108
+ return undefined;
109
+ return hooks.get(node.expression.text);
110
+ }
111
+ //# sourceMappingURL=imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as ts from "typescript";
2
+ import type { resolveJotaiImports } from "./imports.js";
3
+ export declare function providerScopeFromJsx(node: ts.JsxElement | ts.JsxSelfClosingElement, imports: ReturnType<typeof resolveJotaiImports>, source: ts.SourceFile): string | undefined;
4
+ //# sourceMappingURL=jsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,EAC9C,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC/C,MAAM,EAAE,EAAE,CAAC,UAAU,GACpB,MAAM,GAAG,SAAS,CAqBpB"}
@@ -0,0 +1,52 @@
1
+ import * as ts from "typescript";
2
+ import { componentNameFor } from "../../engine/ts/ast.js";
3
+ import { providerStoreScope } from "./ids.js";
4
+ export function providerScopeFromJsx(node, imports, source) {
5
+ const tag = jsxTagName(node);
6
+ if (!tag)
7
+ return undefined;
8
+ const isProvider = tag === imports.providerTag ||
9
+ tag === "Provider" ||
10
+ tag.endsWith(".Provider");
11
+ if (!isProvider)
12
+ return undefined;
13
+ const attrs = jsxAttributes(node);
14
+ const storeAttr = attrs.get("store");
15
+ if (!storeAttr) {
16
+ const component = enclosingComponentName(node, source);
17
+ return component ? providerStoreScope(component) : "provider:anonymous";
18
+ }
19
+ if (ts.isJsxExpression(storeAttr) && storeAttr.expression) {
20
+ if (ts.isIdentifier(storeAttr.expression)) {
21
+ return storeAttr.expression.text;
22
+ }
23
+ return undefined;
24
+ }
25
+ return undefined;
26
+ }
27
+ function jsxTagName(node) {
28
+ if (ts.isJsxSelfClosingElement(node))
29
+ return node.tagName.getText();
30
+ return node.openingElement.tagName.getText();
31
+ }
32
+ function jsxAttributes(node) {
33
+ const attrs = new Map();
34
+ const opening = ts.isJsxSelfClosingElement(node) ? node : node.openingElement;
35
+ for (const attr of opening.attributes.properties) {
36
+ if (!ts.isJsxAttribute(attr) || !ts.isIdentifier(attr.name))
37
+ continue;
38
+ attrs.set(attr.name.text, attr.initializer);
39
+ }
40
+ return attrs;
41
+ }
42
+ function enclosingComponentName(node, source) {
43
+ let current = node.parent;
44
+ while (current) {
45
+ const name = componentNameFor(current);
46
+ if (name)
47
+ return name;
48
+ current = current.parent;
49
+ }
50
+ return undefined;
51
+ }
52
+ //# sourceMappingURL=jsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,UAAU,oBAAoB,CAClC,IAA8C,EAC9C,OAA+C,EAC/C,MAAqB;IAErB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,UAAU,GACd,GAAG,KAAK,OAAO,CAAC,WAAW;QAC3B,GAAG,KAAK,UAAU;QAClB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAC1E,CAAC;IACD,IAAI,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QAC1D,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;QACnC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CACjB,IAA8C;IAE9C,IAAI,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACpE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CACpB,IAA8C;IAE9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4C,CAAC;IAClE,MAAM,OAAO,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACtE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAa,EACb,MAAqB;IAErB,IAAI,OAAO,GAAwB,IAAI,CAAC,MAAM,CAAC;IAC/C,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAQxE,wBAAgB,WAAW,IAAI,iBAAiB,CAe/C;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AASxC,wBAAgB,WAAW,IAAI,iBAAiB,CAiB/C;AAYD,eAAe,WAAW,CAAC"}
@@ -1,19 +1,26 @@
1
1
  import * as harness from "./harness.js";
2
- import { discoverJotaiAtoms } from "./discover.js";
2
+ import { discoverJotaiAtomsDetailed } from "./discover.js";
3
3
  import { discoverJotaiSafetyWarnings, discoverJotaiWriteChannels, } from "./writes.js";
4
4
  export function jotaiSource() {
5
5
  return {
6
6
  id: "jotai",
7
7
  version: "0.1.0",
8
8
  packageNames: ["jotai"],
9
- discover: (ctx) => discoverJotaiAtoms(ctx.sourceText, ctx.fileName),
9
+ discover: (ctx) => discoverJotaiAtomsDetailed(ctx.sourceText, ctx.fileName).decls,
10
10
  writeChannels: (ctx) => discoverJotaiWriteChannels(ctx.sourceText, ctx.fileName),
11
11
  safetyWarnings: (ctx) => discoverJotaiSafetyWarnings(ctx.sourceText, ctx.fileName),
12
+ summarizeWrite: summarizeJotaiWrite,
12
13
  harness,
13
14
  conformance: {
14
15
  testedVersions: "jotai>=2",
15
16
  },
16
17
  };
17
18
  }
19
+ function summarizeJotaiWrite(call, _ctx) {
20
+ if (call.callee.endsWith(".setShouldRemove")) {
21
+ return { kind: "seq", effects: [] };
22
+ }
23
+ return "unsupported";
24
+ }
18
25
  export default jotaiSource;
19
26
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,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,CAChB,0BAA0B,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK;QAChE,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,cAAc,EAAE,mBAAmB;QACnC,OAAO;QACP,WAAW,EAAE;YACX,cAAc,EAAE,UAAU;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAc,EACd,IAAW;IAEX,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as ts from "typescript";
2
+ export declare function discoverComponentStoreScopes(source: ts.SourceFile, imports?: import("./imports.js").JotaiResolvedImports): Map<string, string>;
3
+ //# sourceMappingURL=stores.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/stores.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,EAAE,CAAC,UAAU,EACrB,OAAO,8CAA8B,GACpC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcrB"}
@@ -0,0 +1,40 @@
1
+ import * as ts from "typescript";
2
+ import { resolveJotaiImports } from "./imports.js";
3
+ import { providerScopeFromJsx } from "./jsx.js";
4
+ export function discoverComponentStoreScopes(source, imports = resolveJotaiImports(source)) {
5
+ const scopes = new Map();
6
+ const visit = (node, inheritedScope) => {
7
+ let scope = inheritedScope;
8
+ if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node)) {
9
+ const providerScope = providerScopeFromJsx(node, imports, source);
10
+ if (providerScope)
11
+ scope = providerScope;
12
+ const childTag = jsxChildComponentName(node);
13
+ if (childTag && scope)
14
+ scopes.set(childTag, scope);
15
+ }
16
+ ts.forEachChild(node, (child) => visit(child, scope));
17
+ };
18
+ visit(source, undefined);
19
+ return scopes;
20
+ }
21
+ function jsxChildComponentName(node) {
22
+ if (ts.isJsxSelfClosingElement(node)) {
23
+ const tag = node.tagName.getText();
24
+ return tag[0] === tag[0]?.toUpperCase() ? tag : undefined;
25
+ }
26
+ for (const child of node.children) {
27
+ if (ts.isJsxSelfClosingElement(child)) {
28
+ const tag = child.tagName.getText();
29
+ if (tag[0] === tag[0]?.toUpperCase())
30
+ return tag;
31
+ }
32
+ if (ts.isJsxElement(child)) {
33
+ const tag = child.openingElement.tagName.getText();
34
+ if (tag[0] === tag[0]?.toUpperCase())
35
+ return tag;
36
+ }
37
+ }
38
+ return undefined;
39
+ }
40
+ //# sourceMappingURL=stores.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/stores.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,UAAU,4BAA4B,CAC1C,MAAqB,EACrB,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,cAAuB,EAAQ,EAAE;QAC7D,IAAI,KAAK,GAAG,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,aAAa;gBAAE,KAAK,GAAG,aAAa,CAAC;YACzC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAA8C;IAE9C,IAAI,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;gBAAE,OAAO,GAAG,CAAC;QACnD,CAAC;QACD,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;gBAAE,OAAO,GAAG,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}