@visual-platform/contracts 0.3.0 → 0.4.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 (52) hide show
  1. package/dist/app-sources.d.ts +206 -0
  2. package/dist/app-sources.d.ts.map +1 -0
  3. package/dist/app-sources.js +287 -0
  4. package/dist/app-sources.js.map +1 -0
  5. package/dist/component.d.ts +95 -0
  6. package/dist/component.d.ts.map +1 -1
  7. package/dist/component.js +20 -1
  8. package/dist/component.js.map +1 -1
  9. package/dist/data.d.ts +55 -2
  10. package/dist/data.d.ts.map +1 -1
  11. package/dist/data.js +17 -2
  12. package/dist/data.js.map +1 -1
  13. package/dist/design.d.ts +144 -0
  14. package/dist/design.d.ts.map +1 -1
  15. package/dist/design.js +9 -1
  16. package/dist/design.js.map +1 -1
  17. package/dist/events.d.ts +40 -1
  18. package/dist/events.d.ts.map +1 -1
  19. package/dist/events.js +17 -0
  20. package/dist/events.js.map +1 -1
  21. package/dist/flow-sim.d.ts +36 -0
  22. package/dist/flow-sim.d.ts.map +1 -0
  23. package/dist/flow-sim.js +128 -0
  24. package/dist/flow-sim.js.map +1 -0
  25. package/dist/flows.d.ts +267 -0
  26. package/dist/flows.d.ts.map +1 -0
  27. package/dist/flows.js +387 -0
  28. package/dist/flows.js.map +1 -0
  29. package/dist/index.d.ts +5 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +5 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/motion.d.ts +161 -0
  34. package/dist/motion.d.ts.map +1 -0
  35. package/dist/motion.js +228 -0
  36. package/dist/motion.js.map +1 -0
  37. package/dist/page-document.d.ts +128 -0
  38. package/dist/page-document.d.ts.map +1 -1
  39. package/dist/page-document.js +12 -1
  40. package/dist/page-document.js.map +1 -1
  41. package/dist/published.d.ts +365 -0
  42. package/dist/published.d.ts.map +1 -1
  43. package/dist/published.js +5 -0
  44. package/dist/published.js.map +1 -1
  45. package/dist/sources.d.ts +170 -0
  46. package/dist/sources.d.ts.map +1 -0
  47. package/dist/sources.js +236 -0
  48. package/dist/sources.js.map +1 -0
  49. package/dist/tables.d.ts.map +1 -1
  50. package/dist/tables.js +2 -1
  51. package/dist/tables.js.map +1 -1
  52. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../src/published.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,EAAG,IAAa,CAAC;AAEnD,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0B7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,cAAc;;;;;;;;;;;iBAGzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;iBAA2E,CAAC;AAEvG,4HAA4H;AAC5H,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,gIAAgI;AAChI,eAAO,MAAM,oBAAoB;;;;;;;iBAAwE,CAAC;AAC1G,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../src/published.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,EAAG,IAAa,CAAC;AAEnD,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4B7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,cAAc;;;;;;;;;;;iBAGzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;iBAA2E,CAAC;AAEvG,4HAA4H;AAC5H,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,gIAAgI;AAChI,eAAO,MAAM,oBAAoB;;;;;;;iBAAwE,CAAC;AAC1G,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
package/dist/published.js CHANGED
@@ -4,6 +4,7 @@ import { PageDocumentSchema } from "./page-document.js";
4
4
  import { PageSeoSchema } from "./seo.js";
5
5
  import { DesignSnapshotSchema } from "./design.js";
6
6
  import { ComponentDocumentSchema } from "./component.js";
7
+ import { SourcePlanSchema } from "./sources.js";
7
8
  /** Published API contract `/v1` (blueprint 71 §3). Shared by apps/delivery-api and the SDK. */
8
9
  export const PUBLISHED_API_VERSION = "v1";
9
10
  export const ReleaseRefSchema = z.object({
@@ -32,6 +33,8 @@ export const ResolvedPageSchema = z.object({
32
33
  defaultLocale: z.string().nullable().optional(),
33
34
  /** Results of the page's data-table inputs (ADR-041), by input name. */
34
35
  data: z.record(z.string(), z.unknown()).optional(),
36
+ /** App-resolved data inputs the page reads, in dependency layers (ADR-048). Older APIs omit it → SDK computes it. */
37
+ sourcePlan: SourcePlanSchema.optional(),
35
38
  /** Design pinned by the release (tokens, themes, fonts). Absent/null → SDK default tokens. */
36
39
  design: DesignSnapshotSchema.nullable().optional(),
37
40
  /** Compiled CSS for the Tailwind classes in the release, scoped to [data-vp-root] (ADR-029). */
@@ -54,6 +57,8 @@ export const ResolvedComponentSchema = z.object({
54
57
  locales: z.lazy(() => LocaleMapSchema).nullable().optional(),
55
58
  /** Results of the component's data-table inputs (ADR-041). */
56
59
  data: z.record(z.string(), z.unknown()).optional(),
60
+ /** App-resolved data inputs of the component (ADR-048). */
61
+ sourcePlan: SourcePlanSchema.optional(),
57
62
  });
58
63
  /** `GET /v1/projects/:projectId/classes` — Tailwind classes used by the current release (for apps that build their own CSS). */
59
64
  export const ReleaseClassesSchema = z.object({ release: ReleaseRefSchema, classes: z.array(z.string()) });
@@ -1 +1 @@
1
- {"version":3,"file":"published.js","sourceRoot":"","sources":["../src/published.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"published.js","sourceRoot":"","sources":["../src/published.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import { z } from "zod";
2
+ import { type DataInput } from "./data.js";
3
+ import type { ComponentNode } from "./page-document.js";
4
+ /**
5
+ * App sources (ADR-048, blueprint 67). A data input with `source: "appSource"` names a source the
6
+ * customer app registered (`sourceRef`) and how each of its params gets a value. The app's Next.js
7
+ * server resolves it — never the platform, never the browser. Only references live in documents.
8
+ */
9
+ export declare const PARAM_KINDS: readonly ["literal", "page-locale", "route-param", "query-param", "context", "source"];
10
+ export type ParamKind = (typeof PARAM_KINDS)[number];
11
+ export declare const ParamBindingSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
12
+ kind: z.ZodLiteral<"literal">;
13
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
14
+ }, z.core.$strict>, z.ZodObject<{
15
+ kind: z.ZodLiteral<"page-locale">;
16
+ }, z.core.$strict>, z.ZodObject<{
17
+ kind: z.ZodLiteral<"route-param">;
18
+ name: z.ZodString;
19
+ }, z.core.$strict>, z.ZodObject<{
20
+ kind: z.ZodLiteral<"query-param">;
21
+ name: z.ZodString;
22
+ }, z.core.$strict>, z.ZodObject<{
23
+ kind: z.ZodLiteral<"context">;
24
+ key: z.ZodString;
25
+ }, z.core.$strict>, z.ZodObject<{
26
+ kind: z.ZodLiteral<"source">;
27
+ path: z.ZodString;
28
+ }, z.core.$strict>], "kind">;
29
+ export type ParamBinding = z.infer<typeof ParamBindingSchema>;
30
+ export declare const ParamBindingsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
31
+ kind: z.ZodLiteral<"literal">;
32
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
33
+ }, z.core.$strict>, z.ZodObject<{
34
+ kind: z.ZodLiteral<"page-locale">;
35
+ }, z.core.$strict>, z.ZodObject<{
36
+ kind: z.ZodLiteral<"route-param">;
37
+ name: z.ZodString;
38
+ }, z.core.$strict>, z.ZodObject<{
39
+ kind: z.ZodLiteral<"query-param">;
40
+ name: z.ZodString;
41
+ }, z.core.$strict>, z.ZodObject<{
42
+ kind: z.ZodLiteral<"context">;
43
+ key: z.ZodString;
44
+ }, z.core.$strict>, z.ZodObject<{
45
+ kind: z.ZodLiteral<"source">;
46
+ path: z.ZodString;
47
+ }, z.core.$strict>], "kind">>;
48
+ export type ParamBindings = z.infer<typeof ParamBindingsSchema>;
49
+ export declare const SOURCE_FALLBACKS: readonly ["empty", "hide", "sample"];
50
+ export type SourceFallback = (typeof SOURCE_FALLBACKS)[number];
51
+ /** Input names a data input depends on (its `source` params). */
52
+ export declare function inputDependencies(input: Pick<DataInput, "params">): string[];
53
+ /** Cycle among data inputs' `source` params, as a path (a → b → a), or null. */
54
+ export declare function findSourceCycle(inputs: readonly Pick<DataInput, "name" | "params">[]): string[] | null;
55
+ export type SourcePlanEntry = {
56
+ /** Data input name (the scope key components bind to). */
57
+ input: string;
58
+ /** "appSource": chosen in Studio (must be registered) · "app": legacy input matched by name (may be passed by the route). */
59
+ kind: "app" | "appSource";
60
+ /** Registered app source; for legacy `source: "app"` inputs it is the input name itself. */
61
+ sourceRef: string;
62
+ params: ParamBindings;
63
+ fallback: SourceFallback;
64
+ /** Data inputs that must be resolved before this one. */
65
+ dependsOn: string[];
66
+ };
67
+ /** Inputs grouped in layers: every input of a layer depends only on earlier layers. */
68
+ export type SourcePlan = {
69
+ layers: SourcePlanEntry[][];
70
+ contextKeys: string[];
71
+ };
72
+ export declare class SourceCycleError extends Error {
73
+ readonly cycle: string[];
74
+ readonly code = "SOURCE_CYCLE";
75
+ constructor(cycle: string[]);
76
+ }
77
+ /**
78
+ * What the app must resolve for a page/component: app-resolved inputs (`appSource` and legacy `app`)
79
+ * that the nodes read, plus the inputs those depend on — in dependency layers. Computed once per
80
+ * release (delivery) so rendering never walks the tree for it. Throws SourceCycleError.
81
+ */
82
+ export declare function sourcePlan(inputs: readonly DataInput[] | undefined, nodes: readonly ComponentNode[]): SourcePlan;
83
+ /** Root names a showIf condition reads ("plans.length > 3" → plans). */
84
+ export declare function showIfInputs(expr: string): string[];
85
+ /**
86
+ * Inputs still read by the nodes once `scope` is known: a block whose showIf reads only known inputs
87
+ * and is false is skipped with its children (its sources need not be fetched). Inside a Repeat the
88
+ * conditions depend on the item, so everything there counts as read.
89
+ */
90
+ export declare function neededInputs(nodes: readonly ComponentNode[], scope: Record<string, unknown>): Set<string>;
91
+ /** Where param values come from at render time (all optional; missing → undefined). */
92
+ export type ParamEnv = {
93
+ locale?: string | undefined;
94
+ route?: Record<string, unknown> | undefined;
95
+ query?: Record<string, string | string[] | undefined> | undefined;
96
+ context?: ((key: string) => unknown) | undefined;
97
+ scope?: Record<string, unknown> | undefined;
98
+ };
99
+ /** Raw (unvalidated) param values of an input. The app validates them with the source's params schema. */
100
+ export declare function bindParams(params: ParamBindings, env: ParamEnv): Record<string, unknown>;
101
+ /** Deterministic JSON (sorted keys, undefined dropped): the dedupe/cache key of a source call. */
102
+ export declare function stableKey(value: unknown): string;
103
+ export declare const SourcePlanEntrySchema: z.ZodObject<{
104
+ input: z.ZodString;
105
+ kind: z.ZodEnum<{
106
+ app: "app";
107
+ appSource: "appSource";
108
+ }>;
109
+ sourceRef: z.ZodString;
110
+ params: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
111
+ kind: z.ZodLiteral<"literal">;
112
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
113
+ }, z.core.$strict>, z.ZodObject<{
114
+ kind: z.ZodLiteral<"page-locale">;
115
+ }, z.core.$strict>, z.ZodObject<{
116
+ kind: z.ZodLiteral<"route-param">;
117
+ name: z.ZodString;
118
+ }, z.core.$strict>, z.ZodObject<{
119
+ kind: z.ZodLiteral<"query-param">;
120
+ name: z.ZodString;
121
+ }, z.core.$strict>, z.ZodObject<{
122
+ kind: z.ZodLiteral<"context">;
123
+ key: z.ZodString;
124
+ }, z.core.$strict>, z.ZodObject<{
125
+ kind: z.ZodLiteral<"source">;
126
+ path: z.ZodString;
127
+ }, z.core.$strict>], "kind">>;
128
+ fallback: z.ZodEnum<{
129
+ empty: "empty";
130
+ hide: "hide";
131
+ sample: "sample";
132
+ }>;
133
+ dependsOn: z.ZodArray<z.ZodString>;
134
+ }, z.core.$strip>;
135
+ export declare const SourcePlanSchema: z.ZodObject<{
136
+ layers: z.ZodArray<z.ZodArray<z.ZodObject<{
137
+ input: z.ZodString;
138
+ kind: z.ZodEnum<{
139
+ app: "app";
140
+ appSource: "appSource";
141
+ }>;
142
+ sourceRef: z.ZodString;
143
+ params: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
144
+ kind: z.ZodLiteral<"literal">;
145
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
146
+ }, z.core.$strict>, z.ZodObject<{
147
+ kind: z.ZodLiteral<"page-locale">;
148
+ }, z.core.$strict>, z.ZodObject<{
149
+ kind: z.ZodLiteral<"route-param">;
150
+ name: z.ZodString;
151
+ }, z.core.$strict>, z.ZodObject<{
152
+ kind: z.ZodLiteral<"query-param">;
153
+ name: z.ZodString;
154
+ }, z.core.$strict>, z.ZodObject<{
155
+ kind: z.ZodLiteral<"context">;
156
+ key: z.ZodString;
157
+ }, z.core.$strict>, z.ZodObject<{
158
+ kind: z.ZodLiteral<"source">;
159
+ path: z.ZodString;
160
+ }, z.core.$strict>], "kind">>;
161
+ fallback: z.ZodEnum<{
162
+ empty: "empty";
163
+ hide: "hide";
164
+ sample: "sample";
165
+ }>;
166
+ dependsOn: z.ZodArray<z.ZodString>;
167
+ }, z.core.$strip>>>;
168
+ contextKeys: z.ZodArray<z.ZodString>;
169
+ }, z.core.$strip>;
170
+ //# sourceMappingURL=sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ import { z } from "zod";
2
+ // data.ts imports this file lazily (DataInputSchema); only use data.ts exports inside functions here.
3
+ import { nodeVisible, REPEAT_TYPE, usedDataInputs } from "./data.js";
4
+ import { parseFilter } from "./tables.js";
5
+ /**
6
+ * App sources (ADR-048, blueprint 67). A data input with `source: "appSource"` names a source the
7
+ * customer app registered (`sourceRef`) and how each of its params gets a value. The app's Next.js
8
+ * server resolves it — never the platform, never the browser. Only references live in documents.
9
+ */
10
+ export const PARAM_KINDS = ["literal", "page-locale", "route-param", "query-param", "context", "source"];
11
+ const PARAM_NAME = /^[A-Za-z_][A-Za-z0-9_]{0,39}$/;
12
+ /** route/query/context names: dotted names and indexes only (slug.0, user.tier). */
13
+ /** Same syntax as DataPathSchema (kept local: no top-level use of data.ts, which imports this file). */
14
+ const DATA_PATH = /^[A-Za-z_][A-Za-z0-9_]*(\.([A-Za-z0-9_]+|\{locale\})){0,9}$/;
15
+ const DOTTED = /^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z0-9_]+){0,4}$/;
16
+ export const ParamBindingSchema = z.discriminatedUnion("kind", [
17
+ z.object({ kind: z.literal("literal"), value: z.union([z.string().max(500), z.number(), z.boolean(), z.null()]) }).strict(),
18
+ z.object({ kind: z.literal("page-locale") }).strict(),
19
+ /** A route segment param of the Next route, e.g. "slug.0" or "category". */
20
+ z.object({ kind: z.literal("route-param"), name: z.string().regex(DOTTED) }).strict(),
21
+ /** A URL query parameter; the value only ever reaches the source's typed params (validated by the app). */
22
+ z.object({ kind: z.literal("query-param"), name: z.string().regex(PARAM_NAME) }).strict(),
23
+ /** A key of the app context (static first, request context only when needed). */
24
+ z.object({ kind: z.literal("context"), key: z.string().regex(DOTTED) }).strict(),
25
+ /** A value of another data input of the same page, e.g. product.id → resolved first. */
26
+ z.object({ kind: z.literal("source"), path: z.string().max(200).regex(DATA_PATH) }).strict(),
27
+ ]);
28
+ export const ParamBindingsSchema = z.record(z.string().regex(PARAM_NAME), ParamBindingSchema)
29
+ .refine((r) => Object.keys(r).length <= 20, "at most 20 params per data input");
30
+ export const SOURCE_FALLBACKS = ["empty", "hide", "sample"];
31
+ /** Input names a data input depends on (its `source` params). */
32
+ export function inputDependencies(input) {
33
+ const out = new Set();
34
+ for (const p of Object.values(input.params ?? {}))
35
+ if (p.kind === "source")
36
+ out.add(p.path.split(".")[0]);
37
+ return [...out];
38
+ }
39
+ /** Cycle among data inputs' `source` params, as a path (a → b → a), or null. */
40
+ export function findSourceCycle(inputs) {
41
+ const deps = new Map(inputs.map((i) => [i.name, inputDependencies(i)]));
42
+ const state = new Map();
43
+ const stack = [];
44
+ const visit = (n) => {
45
+ if (state.get(n) === 2)
46
+ return null;
47
+ if (state.get(n) === 1)
48
+ return [...stack.slice(stack.indexOf(n)), n];
49
+ state.set(n, 1);
50
+ stack.push(n);
51
+ for (const d of deps.get(n) ?? []) {
52
+ if (deps.has(d)) {
53
+ const c = visit(d);
54
+ if (c)
55
+ return c;
56
+ }
57
+ }
58
+ stack.pop();
59
+ state.set(n, 2);
60
+ return null;
61
+ };
62
+ for (const i of inputs) {
63
+ const c = visit(i.name);
64
+ if (c)
65
+ return c;
66
+ }
67
+ return null;
68
+ }
69
+ export class SourceCycleError extends Error {
70
+ cycle;
71
+ code = "SOURCE_CYCLE";
72
+ constructor(cycle) {
73
+ super(`data inputs depend on each other: ${cycle.join(" → ")}`);
74
+ this.cycle = cycle;
75
+ }
76
+ }
77
+ /**
78
+ * What the app must resolve for a page/component: app-resolved inputs (`appSource` and legacy `app`)
79
+ * that the nodes read, plus the inputs those depend on — in dependency layers. Computed once per
80
+ * release (delivery) so rendering never walks the tree for it. Throws SourceCycleError.
81
+ */
82
+ export function sourcePlan(inputs, nodes) {
83
+ const appInputs = new Map((inputs ?? []).filter((i) => i.source === "app" || i.source === "appSource").map((i) => [i.name, i]));
84
+ const needed = new Set();
85
+ const add = (name) => {
86
+ const i = appInputs.get(name);
87
+ if (!i || needed.has(name))
88
+ return;
89
+ needed.add(name);
90
+ for (const d of inputDependencies(i))
91
+ add(d);
92
+ };
93
+ for (const n of usedDataInputs(nodes))
94
+ add(n);
95
+ const chosen = [...needed].map((n) => appInputs.get(n));
96
+ const cycle = findSourceCycle(chosen);
97
+ if (cycle)
98
+ throw new SourceCycleError(cycle);
99
+ const layers = [];
100
+ const done = new Set();
101
+ let rest = chosen;
102
+ while (rest.length) {
103
+ const ready = rest.filter((i) => inputDependencies(i).every((d) => done.has(d) || !needed.has(d)));
104
+ layers.push(ready.map((i) => ({
105
+ input: i.name, kind: i.source, sourceRef: i.sourceRef ?? i.name, params: i.params ?? {},
106
+ fallback: i.fallback ?? "empty", dependsOn: inputDependencies(i).filter((d) => needed.has(d)),
107
+ })));
108
+ for (const i of ready)
109
+ done.add(i.name);
110
+ rest = rest.filter((i) => !done.has(i.name));
111
+ }
112
+ const contextKeys = [...new Set(chosen.flatMap((i) => Object.values(i.params ?? {}).flatMap((p) => (p.kind === "context" ? [p.key] : []))))].sort();
113
+ return { layers, contextKeys };
114
+ }
115
+ /** Root names a showIf condition reads ("plans.length > 3" → plans). */
116
+ export function showIfInputs(expr) {
117
+ let f;
118
+ try {
119
+ f = parseFilter(expr);
120
+ }
121
+ catch {
122
+ return [];
123
+ }
124
+ const out = new Set();
125
+ const walk = (x) => { if (!x)
126
+ return; if ("and" in x)
127
+ x.and.forEach(walk);
128
+ else if ("or" in x)
129
+ x.or.forEach(walk);
130
+ else if ("not" in x)
131
+ walk(x.not);
132
+ else
133
+ out.add(x.field.split(".")[0]); };
134
+ walk(f);
135
+ return [...out];
136
+ }
137
+ /**
138
+ * Inputs still read by the nodes once `scope` is known: a block whose showIf reads only known inputs
139
+ * and is false is skipped with its children (its sources need not be fetched). Inside a Repeat the
140
+ * conditions depend on the item, so everything there counts as read.
141
+ */
142
+ export function neededInputs(nodes, scope) {
143
+ const out = new Set();
144
+ const add = (p) => { if (typeof p === "string" && p) {
145
+ const r = p.split(".")[0];
146
+ if (r !== "item" && r !== "index")
147
+ out.add(r);
148
+ } };
149
+ const walk = (list, inRepeat) => {
150
+ for (const n of list) {
151
+ if (n.showIf) {
152
+ const roots = showIfInputs(n.showIf);
153
+ roots.forEach((r) => { if (r !== "item" && r !== "index")
154
+ out.add(r); });
155
+ const decidable = !inRepeat && roots.length > 0 && roots.every((r) => r in scope);
156
+ if (decidable && !nodeVisible(n, scope))
157
+ continue;
158
+ }
159
+ if (n.type === REPEAT_TYPE)
160
+ add(n.props.source);
161
+ for (const b of Object.values(n.bind ?? {}))
162
+ add(b.path);
163
+ for (const kids of Object.values(n.slots ?? {}))
164
+ walk(kids, inRepeat || n.type === REPEAT_TYPE);
165
+ }
166
+ };
167
+ walk(nodes, false);
168
+ return out;
169
+ }
170
+ const readDotted = (obj, path) => {
171
+ let cur = obj;
172
+ for (const seg of path.split(".")) {
173
+ if (cur === null || cur === undefined)
174
+ return undefined;
175
+ if (Array.isArray(cur))
176
+ cur = /^\d+$/.test(seg) ? cur[Number(seg)] : undefined;
177
+ else if (typeof cur === "object")
178
+ cur = Object.prototype.hasOwnProperty.call(cur, seg) ? cur[seg] : undefined;
179
+ else
180
+ return undefined;
181
+ }
182
+ return cur;
183
+ };
184
+ /** Raw (unvalidated) param values of an input. The app validates them with the source's params schema. */
185
+ export function bindParams(params, env) {
186
+ const out = {};
187
+ for (const [name, p] of Object.entries(params)) {
188
+ let v;
189
+ switch (p.kind) {
190
+ case "literal":
191
+ v = p.value;
192
+ break;
193
+ case "page-locale":
194
+ v = env.locale;
195
+ break;
196
+ case "route-param":
197
+ v = readDotted(env.route, p.name);
198
+ break;
199
+ case "query-param": {
200
+ const q = env.query?.[p.name];
201
+ v = Array.isArray(q) ? q[0] : q;
202
+ if (typeof v === "string" && v.length > 200)
203
+ v = v.slice(0, 200);
204
+ break;
205
+ }
206
+ case "context":
207
+ v = env.context?.(p.key);
208
+ break;
209
+ case "source":
210
+ v = readDotted(env.scope, p.path);
211
+ break;
212
+ }
213
+ if (v !== undefined)
214
+ out[name] = v;
215
+ }
216
+ return out;
217
+ }
218
+ /** Deterministic JSON (sorted keys, undefined dropped): the dedupe/cache key of a source call. */
219
+ export function stableKey(value) {
220
+ const norm = (v) => {
221
+ if (Array.isArray(v))
222
+ return v.map((x) => (x === undefined ? null : norm(x)));
223
+ if (v && typeof v === "object" && !(v instanceof Date)) {
224
+ return Object.fromEntries(Object.keys(v).sort().flatMap((k) => (v[k] === undefined ? [] : [[k, norm(v[k])]])));
225
+ }
226
+ return v;
227
+ };
228
+ return JSON.stringify(norm(value)) ?? "null";
229
+ }
230
+ // ---------- published plan (delivery → SDK) ----------
231
+ export const SourcePlanEntrySchema = z.object({
232
+ input: z.string(), kind: z.enum(["app", "appSource"]), sourceRef: z.string(), params: ParamBindingsSchema,
233
+ fallback: z.enum(SOURCE_FALLBACKS), dependsOn: z.array(z.string()),
234
+ });
235
+ export const SourcePlanSchema = z.object({ layers: z.array(z.array(SourcePlanEntrySchema)), contextKeys: z.array(z.string()) });
236
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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"}
package/dist/tables.js CHANGED
@@ -246,7 +246,8 @@ function tokenize(src) {
246
246
  i += v[0].length;
247
247
  continue;
248
248
  }
249
- const id = /^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z][a-zA-Z0-9_-]*)?/.exec(src.slice(i));
249
+ // Dotted paths up to 7 segments (category.slug, steps.cart.data.count, products.0.name); tables validate columns later.
250
+ const id = /^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z0-9_][a-zA-Z0-9_-]*){0,6}/.exec(src.slice(i));
250
251
  if (id) {
251
252
  const w = id[0];
252
253
  out.push(KW.has(w.toLowerCase()) ? { t: "kw", v: w.toLowerCase() } : { t: "id", v: w });