modality-ts 0.0.9 → 0.0.10
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.
- package/README.md +9 -7
- package/dist/cli/cli.js +59 -39
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/defaults.d.ts +13 -0
- package/dist/cli/defaults.d.ts.map +1 -0
- package/dist/cli/defaults.js +57 -0
- package/dist/cli/defaults.js.map +1 -0
- package/dist/cli/features/check/command.d.ts +1 -0
- package/dist/cli/features/check/command.d.ts.map +1 -1
- package/dist/cli/features/check/command.js +16 -12
- package/dist/cli/features/check/command.js.map +1 -1
- package/dist/cli/features/extract/command.d.ts +2 -1
- package/dist/cli/features/extract/command.d.ts.map +1 -1
- package/dist/cli/features/extract/command.js +76 -5
- package/dist/cli/features/extract/command.js.map +1 -1
- package/dist/cli/features/init/command.d.ts +9 -0
- package/dist/cli/features/init/command.d.ts.map +1 -0
- package/dist/cli/features/init/command.js +23 -0
- package/dist/cli/features/init/command.js.map +1 -0
- package/dist/cli/features/init/index.d.ts +3 -0
- package/dist/cli/features/init/index.d.ts.map +1 -0
- package/dist/cli/features/init/index.js +2 -0
- package/dist/cli/features/init/index.js.map +1 -0
- package/dist/extract/engine/ts/transition/async.d.ts +1 -0
- package/dist/extract/engine/ts/transition/async.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/async.js +32 -0
- package/dist/extract/engine/ts/transition/async.js.map +1 -1
- package/dist/extract/engine/ts/transition/effects.d.ts +2 -23
- package/dist/extract/engine/ts/transition/effects.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/effects.js +5 -169
- package/dist/extract/engine/ts/transition/effects.js.map +1 -1
- package/dist/extract/engine/ts/transition/expressions.d.ts +1 -0
- package/dist/extract/engine/ts/transition/expressions.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/expressions.js +21 -0
- package/dist/extract/engine/ts/transition/expressions.js.map +1 -1
- package/dist/extract/engine/ts/transition/guards.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/guards.js +10 -1
- package/dist/extract/engine/ts/transition/guards.js.map +1 -1
- package/dist/extract/engine/ts/transition/handlers.d.ts +2 -23
- package/dist/extract/engine/ts/transition/handlers.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/handlers.js +43 -187
- package/dist/extract/engine/ts/transition/handlers.js.map +1 -1
- package/dist/extract/engine/ts/transition/locals.d.ts +4 -0
- package/dist/extract/engine/ts/transition/locals.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/locals.js +26 -16
- package/dist/extract/engine/ts/transition/locals.js.map +1 -1
- package/dist/extract/engine/ts/transition/statement-summary.d.ts +34 -0
- package/dist/extract/engine/ts/transition/statement-summary.d.ts.map +1 -0
- package/dist/extract/engine/ts/transition/statement-summary.js +502 -0
- package/dist/extract/engine/ts/transition/statement-summary.js.map +1 -0
- package/dist/extract/engine/ts/transition/timers.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/timers.js +3 -15
- package/dist/extract/engine/ts/transition/timers.js.map +1 -1
- package/dist/extract/sources/jotai/index.d.ts +3 -3
- package/dist/extract/sources/jotai/index.d.ts.map +1 -1
- package/dist/extract/sources/jotai/index.js +2 -18
- package/dist/extract/sources/jotai/index.js.map +1 -1
- package/dist/extract/sources/jotai/plugin.d.ts +4 -0
- package/dist/extract/sources/jotai/plugin.d.ts.map +1 -0
- package/dist/extract/sources/jotai/plugin.js +19 -0
- package/dist/extract/sources/jotai/plugin.js.map +1 -0
- package/dist/extract/sources/jotai/transitions.d.ts +15 -0
- package/dist/extract/sources/jotai/transitions.d.ts.map +1 -0
- package/dist/extract/sources/jotai/transitions.js +44 -0
- package/dist/extract/sources/jotai/transitions.js.map +1 -0
- package/dist/extract/sources/shared/react-transition-extract.d.ts +13 -0
- package/dist/extract/sources/shared/react-transition-extract.d.ts.map +1 -0
- package/dist/extract/sources/shared/react-transition-extract.js +22 -0
- package/dist/extract/sources/shared/react-transition-extract.js.map +1 -0
- package/dist/extract/sources/swr/index.d.ts +3 -3
- package/dist/extract/sources/swr/index.d.ts.map +1 -1
- package/dist/extract/sources/swr/index.js +2 -20
- package/dist/extract/sources/swr/index.js.map +1 -1
- package/dist/extract/sources/swr/plugin.d.ts +4 -0
- package/dist/extract/sources/swr/plugin.d.ts.map +1 -0
- package/dist/extract/sources/swr/plugin.js +21 -0
- package/dist/extract/sources/swr/plugin.js.map +1 -0
- package/dist/extract/sources/swr/transitions.d.ts +15 -0
- package/dist/extract/sources/swr/transitions.d.ts.map +1 -0
- package/dist/extract/sources/swr/transitions.js +43 -0
- package/dist/extract/sources/swr/transitions.js.map +1 -0
- package/dist/extract/sources/use-state/transitions.d.ts.map +1 -1
- package/dist/extract/sources/use-state/transitions.js +16 -9
- package/dist/extract/sources/use-state/transitions.js.map +1 -1
- package/package.json +1 -1
|
@@ -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=plugin.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StateVarDecl } from "modality-ts/core";
|
|
2
|
+
import type { RouterPlugin, StateSourcePlugin, WriteChannel } from "modality-ts/extract/engine/spi";
|
|
3
|
+
import type { ExtractedModelSkeleton } from "../use-state/types.js";
|
|
4
|
+
export interface JotaiExtractionOptions {
|
|
5
|
+
route?: string;
|
|
6
|
+
fileName?: string;
|
|
7
|
+
effectApis?: readonly string[];
|
|
8
|
+
routePatterns?: readonly string[];
|
|
9
|
+
stateVars?: readonly StateVarDecl[];
|
|
10
|
+
writeChannels?: readonly WriteChannel[];
|
|
11
|
+
sourcePlugins?: readonly StateSourcePlugin[];
|
|
12
|
+
routerPlugin?: RouterPlugin;
|
|
13
|
+
}
|
|
14
|
+
export declare function extractJotaiSkeleton(sourceText: string, options?: JotaiExtractionOptions): ExtractedModelSkeleton;
|
|
15
|
+
//# sourceMappingURL=transitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQpE,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,sBAA2B,GACnC,sBAAsB,CAwCxB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { extractSharedReactTransitions } from "../shared/react-transition-extract.js";
|
|
2
|
+
import { discoverJotaiAtoms } from "./discover.js";
|
|
3
|
+
import { discoverJotaiSafetyWarnings, discoverJotaiWriteChannels, } from "./writes.js";
|
|
4
|
+
import { jotaiSource } from "./plugin.js";
|
|
5
|
+
export function extractJotaiSkeleton(sourceText, options = {}) {
|
|
6
|
+
const fileName = options.fileName ?? "App.tsx";
|
|
7
|
+
const route = options.route ?? "/";
|
|
8
|
+
const discovered = discoverJotaiAtoms(sourceText, fileName);
|
|
9
|
+
const vars = [
|
|
10
|
+
...discovered
|
|
11
|
+
.map((decl) => decl.var)
|
|
12
|
+
.filter((decl) => Boolean(decl)),
|
|
13
|
+
...(options.stateVars ?? []),
|
|
14
|
+
];
|
|
15
|
+
const writeChannels = [
|
|
16
|
+
...discoverJotaiWriteChannels(sourceText, fileName),
|
|
17
|
+
...(options.writeChannels ?? []),
|
|
18
|
+
];
|
|
19
|
+
const sourcePlugins = [
|
|
20
|
+
jotaiSource(),
|
|
21
|
+
...(options.sourcePlugins ?? []),
|
|
22
|
+
];
|
|
23
|
+
const safetyWarnings = discoverJotaiSafetyWarnings(sourceText, fileName).map((warning) => ({
|
|
24
|
+
message: warning.message,
|
|
25
|
+
...(warning.source ? { line: warning.source.line } : {}),
|
|
26
|
+
}));
|
|
27
|
+
const { transitions, warnings = [] } = extractSharedReactTransitions({
|
|
28
|
+
sourceText,
|
|
29
|
+
fileName,
|
|
30
|
+
route,
|
|
31
|
+
effectApis: options.effectApis ?? [],
|
|
32
|
+
routePatterns: options.routePatterns ?? [],
|
|
33
|
+
stateVars: vars,
|
|
34
|
+
...(writeChannels.length > 0 ? { writeChannels } : {}),
|
|
35
|
+
sourcePlugins,
|
|
36
|
+
...(options.routerPlugin ? { routerPlugin: options.routerPlugin } : {}),
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
vars,
|
|
40
|
+
transitions: [...transitions],
|
|
41
|
+
warnings: [...safetyWarnings, ...warnings],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=transitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/transitions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa1C,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,UAAkC,EAAE;IAEpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;IACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG;QACX,GAAG,UAAU;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACvB,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;KAC7B,CAAC;IACF,MAAM,aAAa,GAAG;QACpB,GAAG,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC;QACnD,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;KACjC,CAAC;IACF,MAAM,aAAa,GAAG;QACpB,WAAW,EAAE;QACb,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;KACjC,CAAC;IACF,MAAM,cAAc,GAAG,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAC1E,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC,CACH,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,6BAA6B,CAAC;QACnE,UAAU;QACV,QAAQ;QACR,KAAK;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;QAC1C,SAAS,EAAE,IAAI;QACf,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,aAAa;QACb,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC,CAAC;IACH,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC;QAC7B,QAAQ,EAAE,CAAC,GAAG,cAAc,EAAE,GAAG,QAAQ,CAAC;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Value } from "modality-ts/core";
|
|
2
|
+
import type { ExtractCtx, SourceExtractionResult, WriteChannel } from "../../engine/spi/index.js";
|
|
3
|
+
export type SharedReactTransitionCtx = Omit<ExtractCtx, "stateVars" | "writeChannels"> & {
|
|
4
|
+
stateVars?: readonly ExtractCtx["stateVars"][number][];
|
|
5
|
+
writeChannels?: readonly WriteChannel[];
|
|
6
|
+
asyncOutcomes?: Record<string, {
|
|
7
|
+
success: Value;
|
|
8
|
+
error?: Value;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
export declare function extractSharedReactTransitions(ctx: SharedReactTransitionCtx): SourceExtractionResult;
|
|
12
|
+
export declare function extractSharedReactTransitionInventory(ctx: SharedReactTransitionCtx): import("../../engine/ts/react-source-transitions.js").ReactSourceTransitionResult;
|
|
13
|
+
//# sourceMappingURL=react-transition-extract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-transition-extract.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/shared/react-transition-extract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACV,UAAU,EACV,sBAAsB,EACtB,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,UAAU,EACV,WAAW,GAAG,eAAe,CAC9B,GAAG;IACF,SAAS,CAAC,EAAE,SAAS,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACnE,CAAC;AAkBF,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,wBAAwB,GAC5B,sBAAsB,CAMxB;AAED,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,wBAAwB,qFAM9B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { extractReactSourceTransitions } from "../../engine/ts/react-source-transitions.js";
|
|
2
|
+
function reactSourceTransitionOptions(ctx) {
|
|
3
|
+
return {
|
|
4
|
+
route: ctx.route,
|
|
5
|
+
fileName: ctx.fileName,
|
|
6
|
+
effectApis: ctx.effectApis,
|
|
7
|
+
routePatterns: ctx.routePatterns,
|
|
8
|
+
asyncOutcomes: ctx.asyncOutcomes,
|
|
9
|
+
sourcePlugins: ctx.sourcePlugins,
|
|
10
|
+
...(ctx.stateVars ? { stateVars: ctx.stateVars } : {}),
|
|
11
|
+
...(ctx.writeChannels ? { writeChannels: ctx.writeChannels } : {}),
|
|
12
|
+
...(ctx.routerPlugin ? { routerPlugin: ctx.routerPlugin } : {}),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function extractSharedReactTransitions(ctx) {
|
|
16
|
+
const { transitions, warnings } = extractReactSourceTransitions(ctx.sourceText, reactSourceTransitionOptions(ctx));
|
|
17
|
+
return { transitions, warnings };
|
|
18
|
+
}
|
|
19
|
+
export function extractSharedReactTransitionInventory(ctx) {
|
|
20
|
+
return extractReactSourceTransitions(ctx.sourceText, reactSourceTransitionOptions(ctx));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=react-transition-extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-transition-extract.js","sourceRoot":"","sources":["../../../../src/extract/sources/shared/react-transition-extract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAiB5F,SAAS,4BAA4B,CACnC,GAA6B;IAE7B,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,GAA6B;IAE7B,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,6BAA6B,CAC7D,GAAG,CAAC,UAAU,EACd,4BAA4B,CAAC,GAAG,CAAC,CAClC,CAAC;IACF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,GAA6B;IAE7B,OAAO,6BAA6B,CAClC,GAAG,CAAC,UAAU,EACd,4BAA4B,CAAC,GAAG,CAAC,CAClC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
export { swrSource, default } from "./plugin.js";
|
|
2
|
+
export { extractSwrSkeleton } from "./transitions.js";
|
|
3
|
+
export type { SwrExtractionOptions } from "./transitions.js";
|
|
2
4
|
export { createSwrKeyWindowTemplate, createSwrTemplate, outcomeFor, swrVarId, swrVars, swrView, swrWindowEntryId, swrWindowEvictedSummaryId, swrWindowView, } from "./template.js";
|
|
3
5
|
export type { SwrKeyWindowEntry, SwrKeyWindowTemplateOptions, SwrTemplateOptions, SwrView, } from "./template.js";
|
|
4
|
-
export declare function swrSource(): StateSourcePlugin;
|
|
5
|
-
export default swrSource;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/swr/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/swr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,EAClB,OAAO,GACR,MAAM,eAAe,CAAC"}
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { templateForSwrDecl } from "./template.js";
|
|
4
|
-
import { discoverSwrReadChannels } from "./writes.js";
|
|
1
|
+
export { swrSource, default } from "./plugin.js";
|
|
2
|
+
export { extractSwrSkeleton } from "./transitions.js";
|
|
5
3
|
export { createSwrKeyWindowTemplate, createSwrTemplate, outcomeFor, swrVarId, swrVars, swrView, swrWindowEntryId, swrWindowEvictedSummaryId, swrWindowView, } from "./template.js";
|
|
6
|
-
export function swrSource() {
|
|
7
|
-
return {
|
|
8
|
-
id: "swr",
|
|
9
|
-
version: "0.1.0",
|
|
10
|
-
packageNames: ["swr"],
|
|
11
|
-
discover: (ctx) => discoverSwrHooks(ctx.sourceText, ctx.fileName),
|
|
12
|
-
writeChannels: (ctx) => discoverSwrReadChannels(ctx.sourceText, ctx.fileName),
|
|
13
|
-
template: (decl) => templateForSwrDecl(decl),
|
|
14
|
-
harness,
|
|
15
|
-
conformance: {
|
|
16
|
-
templateProbes: [],
|
|
17
|
-
testedVersions: "swr>=2",
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export default swrSource;
|
|
22
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extract/sources/swr/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extract/sources/swr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,GACd,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/swr/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAMxE,wBAAgB,SAAS,IAAI,iBAAiB,CAe7C;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as harness from "./harness.js";
|
|
2
|
+
import { discoverSwrHooks } from "./discover.js";
|
|
3
|
+
import { templateForSwrDecl } from "./template.js";
|
|
4
|
+
import { discoverSwrReadChannels } from "./writes.js";
|
|
5
|
+
export function swrSource() {
|
|
6
|
+
return {
|
|
7
|
+
id: "swr",
|
|
8
|
+
version: "0.1.0",
|
|
9
|
+
packageNames: ["swr"],
|
|
10
|
+
discover: (ctx) => discoverSwrHooks(ctx.sourceText, ctx.fileName),
|
|
11
|
+
writeChannels: (ctx) => discoverSwrReadChannels(ctx.sourceText, ctx.fileName),
|
|
12
|
+
template: (decl) => templateForSwrDecl(decl),
|
|
13
|
+
harness,
|
|
14
|
+
conformance: {
|
|
15
|
+
templateProbes: [],
|
|
16
|
+
testedVersions: "swr>=2",
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export default swrSource;
|
|
21
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/extract/sources/swr/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,CAAC,KAAK,CAAC;QACrB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;QACjE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CACrB,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;QACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAC5C,OAAO;QACP,WAAW,EAAE;YACX,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,QAAQ;SACzB;KACF,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StateVarDecl } from "modality-ts/core";
|
|
2
|
+
import type { RouterPlugin, StateSourcePlugin, WriteChannel } from "modality-ts/extract/engine/spi";
|
|
3
|
+
import type { ExtractedModelSkeleton } from "../use-state/types.js";
|
|
4
|
+
export interface SwrExtractionOptions {
|
|
5
|
+
route?: string;
|
|
6
|
+
fileName?: string;
|
|
7
|
+
effectApis?: readonly string[];
|
|
8
|
+
routePatterns?: readonly string[];
|
|
9
|
+
stateVars?: readonly StateVarDecl[];
|
|
10
|
+
writeChannels?: readonly WriteChannel[];
|
|
11
|
+
sourcePlugins?: readonly StateSourcePlugin[];
|
|
12
|
+
routerPlugin?: RouterPlugin;
|
|
13
|
+
}
|
|
14
|
+
export declare function extractSwrSkeleton(sourceText: string, options?: SwrExtractionOptions): ExtractedModelSkeleton;
|
|
15
|
+
//# sourceMappingURL=transitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/swr/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAMpE,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,sBAAsB,CAsCxB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { extractSharedReactTransitions } from "../shared/react-transition-extract.js";
|
|
2
|
+
import { discoverSwrHooks } from "./discover.js";
|
|
3
|
+
import { swrSource } from "./plugin.js";
|
|
4
|
+
import { templateForSwrDecl } from "./template.js";
|
|
5
|
+
import { discoverSwrReadChannels } from "./writes.js";
|
|
6
|
+
export function extractSwrSkeleton(sourceText, options = {}) {
|
|
7
|
+
const fileName = options.fileName ?? "App.tsx";
|
|
8
|
+
const route = options.route ?? "/";
|
|
9
|
+
const decls = discoverSwrHooks(sourceText, fileName);
|
|
10
|
+
const templateFragments = decls.map((decl) => templateForSwrDecl(decl));
|
|
11
|
+
const vars = [
|
|
12
|
+
...decls
|
|
13
|
+
.map((decl) => decl.var)
|
|
14
|
+
.filter((decl) => Boolean(decl)),
|
|
15
|
+
...templateFragments.flatMap((fragment) => fragment.vars),
|
|
16
|
+
...(options.stateVars ?? []),
|
|
17
|
+
];
|
|
18
|
+
const writeChannels = [
|
|
19
|
+
...discoverSwrReadChannels(sourceText, fileName),
|
|
20
|
+
...(options.writeChannels ?? []),
|
|
21
|
+
];
|
|
22
|
+
const sourcePlugins = [swrSource(), ...(options.sourcePlugins ?? [])];
|
|
23
|
+
const { transitions, warnings = [] } = extractSharedReactTransitions({
|
|
24
|
+
sourceText,
|
|
25
|
+
fileName,
|
|
26
|
+
route,
|
|
27
|
+
effectApis: options.effectApis ?? [],
|
|
28
|
+
routePatterns: options.routePatterns ?? [],
|
|
29
|
+
stateVars: vars,
|
|
30
|
+
...(writeChannels.length > 0 ? { writeChannels } : {}),
|
|
31
|
+
sourcePlugins,
|
|
32
|
+
...(options.routerPlugin ? { routerPlugin: options.routerPlugin } : {}),
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
vars,
|
|
36
|
+
transitions: [
|
|
37
|
+
...transitions,
|
|
38
|
+
...templateFragments.flatMap((fragment) => fragment.transitions),
|
|
39
|
+
],
|
|
40
|
+
warnings: [...warnings],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=transitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/extract/sources/swr/transitions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAatD,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;IACnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,kBAAkB,CAAC,IAAI,CAAC,CACzB,CAAC;IACF,MAAM,IAAI,GAAG;QACX,GAAG,KAAK;aACL,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACvB,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;KAC7B,CAAC;IACF,MAAM,aAAa,GAAG;QACpB,GAAG,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC;QAChD,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;KACjC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,6BAA6B,CAAC;QACnE,UAAU;QACV,QAAQ;QACR,KAAK;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;QAC1C,SAAS,EAAE,IAAI;QACf,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,aAAa;QACb,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC,CAAC;IACH,OAAO;QACL,IAAI;QACJ,WAAW,EAAE;YACX,GAAG,WAAW;YACd,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;SACjE;QACD,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/use-state/transitions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAE1B;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAA8B,GACtC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/use-state/transitions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAE1B;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAA8B,GACtC,sBAAsB,CAqBxB"}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { extractSharedReactTransitionInventory } from "../shared/react-transition-extract.js";
|
|
2
2
|
export function extractUseStateVars(sourceText, options = {}) {
|
|
3
3
|
return extractUseStateSkeleton(sourceText, options);
|
|
4
4
|
}
|
|
5
5
|
export function extractUseStateSkeleton(sourceText, options = {}) {
|
|
6
6
|
const fileName = options.fileName ?? "App.tsx";
|
|
7
7
|
const route = options.route ?? "/";
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const ctx = {
|
|
9
|
+
sourceText,
|
|
10
10
|
fileName,
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
route,
|
|
12
|
+
effectApis: options.effectApis ?? [],
|
|
13
|
+
routePatterns: options.routePatterns ?? [],
|
|
13
14
|
asyncOutcomes: options.asyncOutcomes,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
sourcePlugins: options.sourcePlugins ?? [],
|
|
16
|
+
...(options.stateVars ? { stateVars: options.stateVars } : {}),
|
|
17
|
+
...(options.writeChannels ? { writeChannels: options.writeChannels } : {}),
|
|
17
18
|
...(options.routerPlugin ? { routerPlugin: options.routerPlugin } : {}),
|
|
18
|
-
}
|
|
19
|
+
};
|
|
20
|
+
const result = extractSharedReactTransitionInventory(ctx);
|
|
21
|
+
return {
|
|
22
|
+
vars: result.vars,
|
|
23
|
+
transitions: result.transitions,
|
|
24
|
+
warnings: result.warnings,
|
|
25
|
+
};
|
|
19
26
|
}
|
|
20
27
|
//# sourceMappingURL=transitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/extract/sources/use-state/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/extract/sources/use-state/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,uCAAuC,CAAC;AAO9F,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,UAAqC,EAAE;IAEvC,OAAO,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,UAAqC,EAAE;IAEvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;IACnC,MAAM,GAAG,GAAG;QACV,UAAU;QACV,QAAQ;QACR,KAAK;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;QAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;QAC1C,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;IACF,MAAM,MAAM,GAAG,qCAAqC,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC"}
|