modality-ts 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +84 -0
  3. package/dist/checker/encode/index.d.ts +2 -0
  4. package/dist/checker/encode/index.d.ts.map +1 -0
  5. package/dist/checker/encode/index.js +2 -0
  6. package/dist/checker/encode/index.js.map +1 -0
  7. package/dist/checker/index.d.ts +6 -0
  8. package/dist/checker/index.d.ts.map +1 -0
  9. package/dist/checker/index.js +6 -0
  10. package/dist/checker/index.js.map +1 -0
  11. package/dist/checker/monitors/index.d.ts +2 -0
  12. package/dist/checker/monitors/index.d.ts.map +1 -0
  13. package/dist/checker/monitors/index.js +2 -0
  14. package/dist/checker/monitors/index.js.map +1 -0
  15. package/dist/checker/search/eval.d.ts +16 -0
  16. package/dist/checker/search/eval.d.ts.map +1 -0
  17. package/dist/checker/search/eval.js +254 -0
  18. package/dist/checker/search/eval.js.map +1 -0
  19. package/dist/checker/search/index.d.ts +43 -0
  20. package/dist/checker/search/index.d.ts.map +1 -0
  21. package/dist/checker/search/index.js +532 -0
  22. package/dist/checker/search/index.js.map +1 -0
  23. package/dist/checker/slicing/index.d.ts +2 -0
  24. package/dist/checker/slicing/index.d.ts.map +1 -0
  25. package/dist/checker/slicing/index.js +2 -0
  26. package/dist/checker/slicing/index.js.map +1 -0
  27. package/dist/checker/traces/index.d.ts +2 -0
  28. package/dist/checker/traces/index.d.ts.map +1 -0
  29. package/dist/checker/traces/index.js +2 -0
  30. package/dist/checker/traces/index.js.map +1 -0
  31. package/dist/extraction/index.d.ts +31 -0
  32. package/dist/extraction/index.d.ts.map +1 -0
  33. package/dist/extraction/index.js +2254 -0
  34. package/dist/extraction/index.js.map +1 -0
  35. package/dist/extraction/pipeline/index.d.ts +45 -0
  36. package/dist/extraction/pipeline/index.d.ts.map +1 -0
  37. package/dist/extraction/pipeline/index.js +101 -0
  38. package/dist/extraction/pipeline/index.js.map +1 -0
  39. package/dist/extraction/spi/index.d.ts +99 -0
  40. package/dist/extraction/spi/index.d.ts.map +1 -0
  41. package/dist/extraction/spi/index.js +2 -0
  42. package/dist/extraction/spi/index.js.map +1 -0
  43. package/dist/harness/index.d.ts +109 -0
  44. package/dist/harness/index.d.ts.map +1 -0
  45. package/dist/harness/index.js +377 -0
  46. package/dist/harness/index.js.map +1 -0
  47. package/dist/kernel/artifacts/index.d.ts +11 -0
  48. package/dist/kernel/artifacts/index.d.ts.map +1 -0
  49. package/dist/kernel/artifacts/index.js +127 -0
  50. package/dist/kernel/artifacts/index.js.map +1 -0
  51. package/dist/kernel/index.d.ts +10 -0
  52. package/dist/kernel/index.d.ts.map +1 -0
  53. package/dist/kernel/index.js +10 -0
  54. package/dist/kernel/index.js.map +1 -0
  55. package/dist/kernel/ir/canonical.d.ts +5 -0
  56. package/dist/kernel/ir/canonical.d.ts.map +1 -0
  57. package/dist/kernel/ir/canonical.js +47 -0
  58. package/dist/kernel/ir/canonical.js.map +1 -0
  59. package/dist/kernel/ir/domains.d.ts +9 -0
  60. package/dist/kernel/ir/domains.d.ts.map +1 -0
  61. package/dist/kernel/ir/domains.js +102 -0
  62. package/dist/kernel/ir/domains.js.map +1 -0
  63. package/dist/kernel/ir/types.d.ts +224 -0
  64. package/dist/kernel/ir/types.d.ts.map +1 -0
  65. package/dist/kernel/ir/types.js +2 -0
  66. package/dist/kernel/ir/types.js.map +1 -0
  67. package/dist/kernel/ir/validator.d.ts +11 -0
  68. package/dist/kernel/ir/validator.d.ts.map +1 -0
  69. package/dist/kernel/ir/validator.js +674 -0
  70. package/dist/kernel/ir/validator.js.map +1 -0
  71. package/dist/kernel/overlay/index.d.ts +18 -0
  72. package/dist/kernel/overlay/index.d.ts.map +1 -0
  73. package/dist/kernel/overlay/index.js +59 -0
  74. package/dist/kernel/overlay/index.js.map +1 -0
  75. package/dist/kernel/props/index.d.ts +71 -0
  76. package/dist/kernel/props/index.d.ts.map +1 -0
  77. package/dist/kernel/props/index.js +122 -0
  78. package/dist/kernel/props/index.js.map +1 -0
  79. package/dist/kernel/report/types.d.ts +115 -0
  80. package/dist/kernel/report/types.d.ts.map +1 -0
  81. package/dist/kernel/report/types.js +2 -0
  82. package/dist/kernel/report/types.js.map +1 -0
  83. package/dist/kernel/trace/types.d.ts +19 -0
  84. package/dist/kernel/trace/types.d.ts.map +1 -0
  85. package/dist/kernel/trace/types.js +2 -0
  86. package/dist/kernel/trace/types.js.map +1 -0
  87. package/dist/modality/check.d.ts +3 -0
  88. package/dist/modality/check.d.ts.map +1 -0
  89. package/dist/modality/check.js +2 -0
  90. package/dist/modality/check.js.map +1 -0
  91. package/dist/modality/ci.d.ts +3 -0
  92. package/dist/modality/ci.d.ts.map +1 -0
  93. package/dist/modality/ci.js +2 -0
  94. package/dist/modality/ci.js.map +1 -0
  95. package/dist/modality/cli.d.ts +3 -0
  96. package/dist/modality/cli.d.ts.map +1 -0
  97. package/dist/modality/cli.js +223 -0
  98. package/dist/modality/cli.js.map +1 -0
  99. package/dist/modality/codegen/model.d.ts +3 -0
  100. package/dist/modality/codegen/model.d.ts.map +1 -0
  101. package/dist/modality/codegen/model.js +59 -0
  102. package/dist/modality/codegen/model.js.map +1 -0
  103. package/dist/modality/codegen/replay-test.d.ts +10 -0
  104. package/dist/modality/codegen/replay-test.d.ts.map +1 -0
  105. package/dist/modality/codegen/replay-test.js +104 -0
  106. package/dist/modality/codegen/replay-test.js.map +1 -0
  107. package/dist/modality/conform.d.ts +3 -0
  108. package/dist/modality/conform.d.ts.map +1 -0
  109. package/dist/modality/conform.js +2 -0
  110. package/dist/modality/conform.js.map +1 -0
  111. package/dist/modality/export-tla.d.ts +3 -0
  112. package/dist/modality/export-tla.d.ts.map +1 -0
  113. package/dist/modality/export-tla.js +2 -0
  114. package/dist/modality/export-tla.js.map +1 -0
  115. package/dist/modality/extract.d.ts +3 -0
  116. package/dist/modality/extract.d.ts.map +1 -0
  117. package/dist/modality/extract.js +2 -0
  118. package/dist/modality/extract.js.map +1 -0
  119. package/dist/modality/features/check/command.d.ts +23 -0
  120. package/dist/modality/features/check/command.d.ts.map +1 -0
  121. package/dist/modality/features/check/command.js +174 -0
  122. package/dist/modality/features/check/command.js.map +1 -0
  123. package/dist/modality/features/check/index.d.ts +3 -0
  124. package/dist/modality/features/check/index.d.ts.map +1 -0
  125. package/dist/modality/features/check/index.js +2 -0
  126. package/dist/modality/features/check/index.js.map +1 -0
  127. package/dist/modality/features/ci/command.d.ts +23 -0
  128. package/dist/modality/features/ci/command.d.ts.map +1 -0
  129. package/dist/modality/features/ci/command.js +176 -0
  130. package/dist/modality/features/ci/command.js.map +1 -0
  131. package/dist/modality/features/ci/index.d.ts +3 -0
  132. package/dist/modality/features/ci/index.d.ts.map +1 -0
  133. package/dist/modality/features/ci/index.js +2 -0
  134. package/dist/modality/features/ci/index.js.map +1 -0
  135. package/dist/modality/features/conform/command.d.ts +35 -0
  136. package/dist/modality/features/conform/command.d.ts.map +1 -0
  137. package/dist/modality/features/conform/command.js +162 -0
  138. package/dist/modality/features/conform/command.js.map +1 -0
  139. package/dist/modality/features/conform/index.d.ts +3 -0
  140. package/dist/modality/features/conform/index.d.ts.map +1 -0
  141. package/dist/modality/features/conform/index.js +2 -0
  142. package/dist/modality/features/conform/index.js.map +1 -0
  143. package/dist/modality/features/export/command.d.ts +13 -0
  144. package/dist/modality/features/export/command.d.ts.map +1 -0
  145. package/dist/modality/features/export/command.js +250 -0
  146. package/dist/modality/features/export/command.js.map +1 -0
  147. package/dist/modality/features/export/index.d.ts +3 -0
  148. package/dist/modality/features/export/index.d.ts.map +1 -0
  149. package/dist/modality/features/export/index.js +2 -0
  150. package/dist/modality/features/export/index.js.map +1 -0
  151. package/dist/modality/features/extract/command.d.ts +37 -0
  152. package/dist/modality/features/extract/command.d.ts.map +1 -0
  153. package/dist/modality/features/extract/command.js +443 -0
  154. package/dist/modality/features/extract/command.js.map +1 -0
  155. package/dist/modality/features/extract/index.d.ts +3 -0
  156. package/dist/modality/features/extract/index.d.ts.map +1 -0
  157. package/dist/modality/features/extract/index.js +2 -0
  158. package/dist/modality/features/extract/index.js.map +1 -0
  159. package/dist/modality/features/replay/command.d.ts +16 -0
  160. package/dist/modality/features/replay/command.d.ts.map +1 -0
  161. package/dist/modality/features/replay/command.js +50 -0
  162. package/dist/modality/features/replay/command.js.map +1 -0
  163. package/dist/modality/features/replay/index.d.ts +3 -0
  164. package/dist/modality/features/replay/index.d.ts.map +1 -0
  165. package/dist/modality/features/replay/index.js +2 -0
  166. package/dist/modality/features/replay/index.js.map +1 -0
  167. package/dist/modality/overlay.d.ts +3 -0
  168. package/dist/modality/overlay.d.ts.map +1 -0
  169. package/dist/modality/overlay.js +9 -0
  170. package/dist/modality/overlay.js.map +1 -0
  171. package/dist/modality/registry/index.d.ts +22 -0
  172. package/dist/modality/registry/index.d.ts.map +1 -0
  173. package/dist/modality/registry/index.js +89 -0
  174. package/dist/modality/registry/index.js.map +1 -0
  175. package/dist/modality/replay.d.ts +3 -0
  176. package/dist/modality/replay.d.ts.map +1 -0
  177. package/dist/modality/replay.js +2 -0
  178. package/dist/modality/replay.js.map +1 -0
  179. package/dist/runtime/index.d.ts +53 -0
  180. package/dist/runtime/index.d.ts.map +1 -0
  181. package/dist/runtime/index.js +83 -0
  182. package/dist/runtime/index.js.map +1 -0
  183. package/dist/sources/jotai/harness.d.ts +13 -0
  184. package/dist/sources/jotai/harness.d.ts.map +1 -0
  185. package/dist/sources/jotai/harness.js +20 -0
  186. package/dist/sources/jotai/harness.js.map +1 -0
  187. package/dist/sources/jotai/index.d.ts +11 -0
  188. package/dist/sources/jotai/index.d.ts.map +1 -0
  189. package/dist/sources/jotai/index.js +405 -0
  190. package/dist/sources/jotai/index.js.map +1 -0
  191. package/dist/sources/router/harness.d.ts +9 -0
  192. package/dist/sources/router/harness.d.ts.map +1 -0
  193. package/dist/sources/router/harness.js +32 -0
  194. package/dist/sources/router/harness.js.map +1 -0
  195. package/dist/sources/router/index.d.ts +15 -0
  196. package/dist/sources/router/index.d.ts.map +1 -0
  197. package/dist/sources/router/index.js +41 -0
  198. package/dist/sources/router/index.js.map +1 -0
  199. package/dist/sources/swr/harness.d.ts +12 -0
  200. package/dist/sources/swr/harness.d.ts.map +1 -0
  201. package/dist/sources/swr/harness.js +25 -0
  202. package/dist/sources/swr/harness.js.map +1 -0
  203. package/dist/sources/swr/index.d.ts +51 -0
  204. package/dist/sources/swr/index.d.ts.map +1 -0
  205. package/dist/sources/swr/index.js +428 -0
  206. package/dist/sources/swr/index.js.map +1 -0
  207. package/dist/sources/use-state/harness.d.ts +12 -0
  208. package/dist/sources/use-state/harness.d.ts.map +1 -0
  209. package/dist/sources/use-state/harness.js +19 -0
  210. package/dist/sources/use-state/harness.js.map +1 -0
  211. package/dist/sources/use-state/index.d.ts +9 -0
  212. package/dist/sources/use-state/index.d.ts.map +1 -0
  213. package/dist/sources/use-state/index.js +248 -0
  214. package/dist/sources/use-state/index.js.map +1 -0
  215. package/package.json +136 -0
@@ -0,0 +1,248 @@
1
+ import * as ts from "typescript";
2
+ import * as harness from "./harness.js";
3
+ export function useStateSource() {
4
+ return {
5
+ id: "use-state",
6
+ version: "0.1.0",
7
+ packageNames: ["react"],
8
+ discover: (ctx) => discoverUseState(ctx.sourceText, ctx.fileName, ctx.route),
9
+ writeChannels: (ctx) => discoverUseStateWriteChannels(ctx.sourceText, ctx.fileName),
10
+ harness,
11
+ conformance: {
12
+ testedVersions: "react>=18"
13
+ }
14
+ };
15
+ }
16
+ export default useStateSource;
17
+ export function discoverUseState(sourceText, fileName = "App.tsx", route = "/") {
18
+ const source = ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
19
+ const decls = [];
20
+ const visit = (node, componentName) => {
21
+ const component = componentNameFor(node) ?? componentName;
22
+ if (ts.isVariableDeclaration(node) && ts.isArrayBindingPattern(node.name) && node.initializer && isUseStateCall(node.initializer)) {
23
+ const stateName = node.name.elements[0];
24
+ const setterName = node.name.elements[1];
25
+ if (ts.isBindingElement(stateName) && ts.isIdentifier(stateName.name)) {
26
+ const componentId = component ?? "Anonymous";
27
+ const domain = inferUseStateDomain(node.initializer);
28
+ const varId = `local:${componentId}.${stateName.name.text}`;
29
+ const origin = { file: fileName, ...lineAndColumn(source, node) };
30
+ const variable = {
31
+ id: varId,
32
+ domain,
33
+ origin,
34
+ scope: { kind: "route-local", route },
35
+ initial: initialValueForUseState(node.initializer, domain)
36
+ };
37
+ decls.push({
38
+ id: varId,
39
+ kind: "useState",
40
+ var: variable,
41
+ origin,
42
+ metadata: {
43
+ component: componentId,
44
+ stateName: stateName.name.text,
45
+ ...(setterName && ts.isBindingElement(setterName) && ts.isIdentifier(setterName.name) ? { setterName: setterName.name.text } : {})
46
+ }
47
+ });
48
+ }
49
+ }
50
+ ts.forEachChild(node, (child) => visit(child, component));
51
+ };
52
+ visit(source, undefined);
53
+ return decls;
54
+ }
55
+ export function discoverUseStateWriteChannels(sourceText, fileName = "App.tsx") {
56
+ return discoverUseState(sourceText, fileName, "/").flatMap((decl) => {
57
+ const setterName = decl.metadata?.setterName;
58
+ if (typeof setterName !== "string" || !decl.var)
59
+ return [];
60
+ return [{
61
+ id: `${decl.id}.setter`,
62
+ varId: decl.var.id,
63
+ symbolName: setterName,
64
+ source: decl.origin
65
+ }];
66
+ });
67
+ }
68
+ export function inferDomainFromTypeNode(node) {
69
+ if (!node)
70
+ return { kind: "tokens", count: 1 };
71
+ switch (node.kind) {
72
+ case ts.SyntaxKind.BooleanKeyword:
73
+ return { kind: "bool" };
74
+ case ts.SyntaxKind.StringKeyword:
75
+ case ts.SyntaxKind.NumberKeyword:
76
+ case ts.SyntaxKind.AnyKeyword:
77
+ case ts.SyntaxKind.UnknownKeyword:
78
+ return { kind: "tokens", count: 1 };
79
+ case ts.SyntaxKind.LiteralType:
80
+ return domainFromLiteralType(node);
81
+ case ts.SyntaxKind.UnionType:
82
+ return domainFromUnion(node);
83
+ case ts.SyntaxKind.TypeLiteral:
84
+ return domainFromTypeLiteral(node);
85
+ case ts.SyntaxKind.ArrayType:
86
+ return { kind: "lengthCat" };
87
+ case ts.SyntaxKind.TypeReference:
88
+ return domainFromTypeReference(node);
89
+ default:
90
+ return { kind: "tokens", count: 1 };
91
+ }
92
+ }
93
+ function inferUseStateDomain(call) {
94
+ const typeArg = call.typeArguments?.[0];
95
+ if (typeArg)
96
+ return inferDomainFromTypeNode(typeArg);
97
+ const initial = call.arguments[0];
98
+ if (!initial)
99
+ return { kind: "tokens", count: 1 };
100
+ if (initial.kind === ts.SyntaxKind.TrueKeyword || initial.kind === ts.SyntaxKind.FalseKeyword)
101
+ return { kind: "bool" };
102
+ if (ts.isStringLiteral(initial))
103
+ return { kind: "enum", values: [initial.text] };
104
+ if (ts.isNumericLiteral(initial))
105
+ return { kind: "boundedInt", min: Number(initial.text), max: Number(initial.text) };
106
+ if (initial.kind === ts.SyntaxKind.NullKeyword)
107
+ return { kind: "option", inner: { kind: "tokens", count: 1 } };
108
+ if (ts.isArrayLiteralExpression(initial))
109
+ return { kind: "lengthCat" };
110
+ return { kind: "tokens", count: 1 };
111
+ }
112
+ function initialValueForUseState(call, domain) {
113
+ const initial = call.arguments[0];
114
+ if (!initial)
115
+ return firstValue(domain);
116
+ if (initial.kind === ts.SyntaxKind.TrueKeyword)
117
+ return true;
118
+ if (initial.kind === ts.SyntaxKind.FalseKeyword)
119
+ return false;
120
+ if (ts.isStringLiteral(initial))
121
+ return initial.text;
122
+ if (ts.isNumericLiteral(initial))
123
+ return Number(initial.text);
124
+ if (initial.kind === ts.SyntaxKind.NullKeyword)
125
+ return null;
126
+ if (ts.isArrayLiteralExpression(initial))
127
+ return initial.elements.length === 0 ? "0" : initial.elements.length === 1 ? "1" : "many";
128
+ return firstValue(domain);
129
+ }
130
+ function domainFromLiteralType(node) {
131
+ const lit = node.literal;
132
+ if (lit.kind === ts.SyntaxKind.TrueKeyword || lit.kind === ts.SyntaxKind.FalseKeyword)
133
+ return { kind: "bool" };
134
+ if (ts.isStringLiteral(lit))
135
+ return { kind: "enum", values: [lit.text] };
136
+ if (ts.isNumericLiteral(lit))
137
+ return { kind: "boundedInt", min: Number(lit.text), max: Number(lit.text) };
138
+ if (lit.kind === ts.SyntaxKind.NullKeyword)
139
+ return { kind: "option", inner: { kind: "tokens", count: 1 } };
140
+ return { kind: "tokens", count: 1 };
141
+ }
142
+ function domainFromUnion(node) {
143
+ const nonNull = node.types.filter((part) => part.kind !== ts.SyntaxKind.UndefinedKeyword && !(ts.isLiteralTypeNode(part) && part.literal.kind === ts.SyntaxKind.NullKeyword));
144
+ if (nonNull.length !== node.types.length && nonNull.length === 1) {
145
+ return { kind: "option", inner: inferDomainFromTypeNode(nonNull[0]) };
146
+ }
147
+ const literalValues = [];
148
+ const numericValues = [];
149
+ for (const part of node.types) {
150
+ if (!ts.isLiteralTypeNode(part))
151
+ return taggedUnionFrom(node) ?? { kind: "tokens", count: 1 };
152
+ const lit = part.literal;
153
+ if (ts.isStringLiteral(lit))
154
+ literalValues.push(lit.text);
155
+ else if (ts.isNumericLiteral(lit))
156
+ numericValues.push(Number(lit.text));
157
+ else
158
+ return taggedUnionFrom(node) ?? { kind: "tokens", count: 1 };
159
+ }
160
+ if (numericValues.length === node.types.length)
161
+ return { kind: "boundedInt", min: Math.min(...numericValues), max: Math.max(...numericValues) };
162
+ return { kind: "enum", values: literalValues };
163
+ }
164
+ function taggedUnionFrom(node) {
165
+ const members = node.types.filter(ts.isTypeLiteralNode);
166
+ if (members.length !== node.types.length)
167
+ return undefined;
168
+ const tagCandidates = new Map();
169
+ for (const member of members) {
170
+ for (const prop of member.members.filter(ts.isPropertySignature)) {
171
+ if (!prop.type || !ts.isIdentifier(prop.name) || !ts.isLiteralTypeNode(prop.type) || !ts.isStringLiteral(prop.type.literal))
172
+ continue;
173
+ const set = tagCandidates.get(prop.name.text) ?? new Set();
174
+ set.add(prop.type.literal.text);
175
+ tagCandidates.set(prop.name.text, set);
176
+ }
177
+ }
178
+ const tag = [...tagCandidates].find(([, values]) => values.size === members.length)?.[0];
179
+ if (!tag)
180
+ return undefined;
181
+ const variants = {};
182
+ for (const member of members) {
183
+ const tagProp = member.members.find((prop) => ts.isPropertySignature(prop) && ts.isIdentifier(prop.name) && prop.name.text === tag);
184
+ if (!tagProp?.type || !ts.isLiteralTypeNode(tagProp.type) || !ts.isStringLiteral(tagProp.type.literal))
185
+ return undefined;
186
+ variants[tagProp.type.literal.text] = domainFromTypeLiteral(member, tag);
187
+ }
188
+ return { kind: "tagged", tag, variants };
189
+ }
190
+ function domainFromTypeLiteral(node, omitField) {
191
+ const fields = {};
192
+ for (const member of node.members) {
193
+ if (!ts.isPropertySignature(member) || !member.type || !ts.isIdentifier(member.name) || member.name.text === omitField)
194
+ continue;
195
+ fields[member.name.text] = inferDomainFromTypeNode(member.type);
196
+ }
197
+ return { kind: "record", fields };
198
+ }
199
+ function domainFromTypeReference(node) {
200
+ const name = node.typeName.getText();
201
+ if ((name === "Array" || name === "ReadonlyArray") && node.typeArguments?.length === 1)
202
+ return { kind: "lengthCat" };
203
+ if (name === "Record")
204
+ return { kind: "tokens", count: 1 };
205
+ return { kind: "tokens", count: 1 };
206
+ }
207
+ function isUseStateCall(node) {
208
+ return ts.isCallExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === "useState";
209
+ }
210
+ function componentNameFor(node) {
211
+ if (ts.isFunctionDeclaration(node) && node.name && startsUppercase(node.name.text))
212
+ return node.name.text;
213
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && startsUppercase(node.name.text))
214
+ return node.name.text;
215
+ return undefined;
216
+ }
217
+ function startsUppercase(value) {
218
+ return /^[A-Z]/.test(value);
219
+ }
220
+ function firstValue(domain) {
221
+ switch (domain.kind) {
222
+ case "bool":
223
+ return false;
224
+ case "enum":
225
+ return domain.values[0] ?? "";
226
+ case "boundedInt":
227
+ return domain.min;
228
+ case "option":
229
+ return null;
230
+ case "record":
231
+ return Object.fromEntries(Object.entries(domain.fields).map(([key, field]) => [key, firstValue(field)]));
232
+ case "tagged": {
233
+ const [tagValue, variant] = Object.entries(domain.variants)[0] ?? ["unknown", { kind: "record", fields: {} }];
234
+ return { ...firstValue(variant), [domain.tag]: tagValue };
235
+ }
236
+ case "tokens":
237
+ return domain.names?.[0] ?? "tok1";
238
+ case "lengthCat":
239
+ return "0";
240
+ case "boundedList":
241
+ return [];
242
+ }
243
+ }
244
+ function lineAndColumn(source, node) {
245
+ const pos = source.getLineAndCharacterOfPosition(node.getStart(source));
246
+ return { line: pos.line + 1, column: pos.character + 1 };
247
+ }
248
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sources/use-state/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,136 @@
1
+ {
2
+ "name": "modality-ts",
3
+ "version": "0.0.0",
4
+ "description": "Model-checking-based testing tools for React state-transition bugs.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Harineko0/modality-ts.git"
9
+ },
10
+ "type": "module",
11
+ "types": "./dist/modality/cli.d.ts",
12
+ "files": [
13
+ "dist/**",
14
+ "README.md",
15
+ "LICENSE"
16
+ ],
17
+ "bin": {
18
+ "modality": "dist/modality/cli.js"
19
+ },
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/modality/cli.d.ts",
23
+ "default": "./dist/modality/cli.js"
24
+ },
25
+ "./check": {
26
+ "types": "./dist/modality/check.d.ts",
27
+ "default": "./dist/modality/check.js"
28
+ },
29
+ "./ci": {
30
+ "types": "./dist/modality/ci.d.ts",
31
+ "default": "./dist/modality/ci.js"
32
+ },
33
+ "./conform": {
34
+ "types": "./dist/modality/conform.d.ts",
35
+ "default": "./dist/modality/conform.js"
36
+ },
37
+ "./extract": {
38
+ "types": "./dist/modality/extract.d.ts",
39
+ "default": "./dist/modality/extract.js"
40
+ },
41
+ "./replay": {
42
+ "types": "./dist/modality/replay.d.ts",
43
+ "default": "./dist/modality/replay.js"
44
+ },
45
+ "./export-tla": {
46
+ "types": "./dist/modality/export-tla.d.ts",
47
+ "default": "./dist/modality/export-tla.js"
48
+ },
49
+ "./kernel": {
50
+ "types": "./dist/kernel/index.d.ts",
51
+ "default": "./dist/kernel/index.js"
52
+ },
53
+ "./kernel/props": {
54
+ "types": "./dist/kernel/props/index.d.ts",
55
+ "default": "./dist/kernel/props/index.js"
56
+ },
57
+ "./checker": {
58
+ "types": "./dist/checker/index.d.ts",
59
+ "default": "./dist/checker/index.js"
60
+ },
61
+ "./extraction": {
62
+ "types": "./dist/extraction/index.d.ts",
63
+ "default": "./dist/extraction/index.js"
64
+ },
65
+ "./extraction/pipeline": {
66
+ "types": "./dist/extraction/pipeline/index.d.ts",
67
+ "default": "./dist/extraction/pipeline/index.js"
68
+ },
69
+ "./extraction/spi": {
70
+ "types": "./dist/extraction/spi/index.d.ts",
71
+ "default": "./dist/extraction/spi/index.js"
72
+ },
73
+ "./harness": {
74
+ "types": "./dist/harness/index.d.ts",
75
+ "default": "./dist/harness/index.js"
76
+ },
77
+ "./runtime": {
78
+ "types": "./dist/runtime/index.d.ts",
79
+ "default": "./dist/runtime/index.js"
80
+ },
81
+ "./source-jotai": {
82
+ "types": "./dist/sources/jotai/index.d.ts",
83
+ "default": "./dist/sources/jotai/index.js"
84
+ },
85
+ "./source-jotai/harness": {
86
+ "types": "./dist/sources/jotai/harness.d.ts",
87
+ "default": "./dist/sources/jotai/harness.js"
88
+ },
89
+ "./source-router": {
90
+ "types": "./dist/sources/router/index.d.ts",
91
+ "default": "./dist/sources/router/index.js"
92
+ },
93
+ "./source-router/harness": {
94
+ "types": "./dist/sources/router/harness.d.ts",
95
+ "default": "./dist/sources/router/harness.js"
96
+ },
97
+ "./source-swr": {
98
+ "types": "./dist/sources/swr/index.d.ts",
99
+ "default": "./dist/sources/swr/index.js"
100
+ },
101
+ "./source-swr/harness": {
102
+ "types": "./dist/sources/swr/harness.d.ts",
103
+ "default": "./dist/sources/swr/harness.js"
104
+ },
105
+ "./source-use-state": {
106
+ "types": "./dist/sources/use-state/index.d.ts",
107
+ "default": "./dist/sources/use-state/index.js"
108
+ },
109
+ "./source-use-state/harness": {
110
+ "types": "./dist/sources/use-state/harness.d.ts",
111
+ "default": "./dist/sources/use-state/harness.js"
112
+ }
113
+ },
114
+ "packageManager": "pnpm@10.12.4",
115
+ "scripts": {
116
+ "architecture": "depcruise --config tools/depcruise.config.cjs src",
117
+ "build": "tsc -b",
118
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
119
+ "ci:examples": "tsx tools/examples-ci.ts",
120
+ "demo": "vitest run test/modality/demo-acceptance.test.ts",
121
+ "phase7": "tsx tools/phase7-differential.ts",
122
+ "publish:npm": "npm publish --access public",
123
+ "test": "vitest run",
124
+ "typecheck": "tsc -b"
125
+ },
126
+ "dependencies": {
127
+ "typescript": "^5.9.3"
128
+ },
129
+ "devDependencies": {
130
+ "@types/node": "^24.10.1",
131
+ "dependency-cruiser": "^17.4.3",
132
+ "jsdom": "^29.1.1",
133
+ "tsx": "^4.20.6",
134
+ "vitest": "^4.0.14"
135
+ }
136
+ }