@visual-platform/next 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.
- package/dist/adapters.d.ts +51 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +79 -0
- package/dist/adapters.js.map +1 -0
- package/dist/client.d.ts +54 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +114 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +243 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +309 -11
- package/dist/index.js.map +1 -1
- package/dist/sources-entry.d.ts +4 -0
- package/dist/sources-entry.d.ts.map +1 -0
- package/dist/sources-entry.js +4 -0
- package/dist/sources-entry.js.map +1 -0
- package/dist/sources.d.ts +248 -0
- package/dist/sources.d.ts.map +1 -0
- package/dist/sources.js +352 -0
- package/dist/sources.js.map +1 -0
- package/dist/tokens.d.ts +17 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +52 -0
- package/dist/tokens.js.map +1 -0
- package/package.json +12 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { type ResolvedPage } from "@visual-platform/contracts";
|
|
1
|
+
import { type ComponentNode, type ResolvedPage } from "@visual-platform/contracts";
|
|
2
2
|
import { type VisualEventData, type VisualRegistry } from "@visual-platform/runtime-core";
|
|
3
3
|
import type { Metadata } from "next";
|
|
4
4
|
import { type ReactNode } from "react";
|
|
5
|
+
import { sourceTag, type ActionDefinition, type SourceEntry, type SourceError, type VisualContextConfig, type VisualContextValue } from "./sources.js";
|
|
5
6
|
export type VisualNextConfig = {
|
|
6
7
|
/** Published API base URL, e.g. process.env.VISUAL_API_URL. */
|
|
7
8
|
apiUrl: string;
|
|
@@ -9,6 +10,16 @@ export type VisualNextConfig = {
|
|
|
9
10
|
/** Public project key from the admin (Integrations → API keys), e.g. process.env.VISUAL_PROJECT_KEY. */
|
|
10
11
|
apiKey?: string;
|
|
11
12
|
registry: VisualRegistry;
|
|
13
|
+
/**
|
|
14
|
+
* Where Studio page links (button/nav "link to page") go in this app, e.g.
|
|
15
|
+
* `({ pageKey, locale, anchor }) => \`/${locale}/campaign/${pageKey}${anchor ? \`#${anchor}\` : ""}\``.
|
|
16
|
+
* Runs on the server; only same-site paths, #anchors or https URLs are used. Default: `/<pageKey>`.
|
|
17
|
+
*/
|
|
18
|
+
pageHref?: (link: {
|
|
19
|
+
pageKey: string;
|
|
20
|
+
anchor?: string | undefined;
|
|
21
|
+
locale?: string | undefined;
|
|
22
|
+
}) => string | undefined;
|
|
12
23
|
/** Seconds before Next refetches (stale-while-revalidate). Webhook revalidation is immediate. Default 60. */
|
|
13
24
|
revalidate?: number;
|
|
14
25
|
/** Validate API responses with zod (default: in development only). */
|
|
@@ -30,6 +41,55 @@ export type VisualNextConfig = {
|
|
|
30
41
|
* request) and kept until the publish webhook or the next build.
|
|
31
42
|
*/
|
|
32
43
|
rendering?: Rendering;
|
|
44
|
+
/**
|
|
45
|
+
* Data the app registers once (ADR-048): pages read them by name, the SDK resolves — on this server —
|
|
46
|
+
* only the sources a page uses. A plain value is read as is; a function or defineSource({ resolve }) is called.
|
|
47
|
+
* sources: { siteConfig: appConfig, products: defineSource({ params, resolve: ({ params }) => cms.products(params) }) }
|
|
48
|
+
*/
|
|
49
|
+
sources?: Record<string, SourceEntry>;
|
|
50
|
+
/** App context for source params and private sources: `static` (cache-safe) and `request` (cookies/session → per request). */
|
|
51
|
+
context?: VisualContextConfig;
|
|
52
|
+
/** A source failed, timed out or got invalid params/shape; the page used its fallback. Default: console.warn. */
|
|
53
|
+
onSourceError?: (e: SourceError & {
|
|
54
|
+
page?: string;
|
|
55
|
+
}) => void;
|
|
56
|
+
/** Default source timeout in ms (1500). */
|
|
57
|
+
sourceTimeout?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Context for the browser (`useVisual()`): a cache-safe subset of the static context, e.g.
|
|
60
|
+
* (ctx) => ({ currency: ctx.currency }). Per-visitor data goes through a `load: "client"` source instead.
|
|
61
|
+
*/
|
|
62
|
+
expose?: (staticContext: VisualContextValue) => Record<string, unknown>;
|
|
63
|
+
/** Route that serves client sources (`visual.sourcesHandler()`). Default "/api/visual/sources". */
|
|
64
|
+
sourcesEndpoint?: string;
|
|
65
|
+
/** Secret for client-source handles. Default process.env.VISUAL_SOURCE_SECRET (≥ 32 chars). */
|
|
66
|
+
sourceSecret?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Server Actions Studio events can trigger by name (ADR-048 P4): { onAddToCart: defineAction({ input, from, run, revalidates }) }.
|
|
69
|
+
* Needs `actionRunner`: your one "use server" function that calls visual.runAction.
|
|
70
|
+
*/
|
|
71
|
+
actions?: Record<string, ActionDefinition<any, any>>;
|
|
72
|
+
/**
|
|
73
|
+
* // app/visual-actions.ts
|
|
74
|
+
* "use server";
|
|
75
|
+
* import { visual } from "@/visual";
|
|
76
|
+
* export async function runVisualAction(name: string, event: unknown) { return visual.runAction(name, event); }
|
|
77
|
+
*/
|
|
78
|
+
actionRunner?: (name: string, event: unknown) => Promise<unknown>;
|
|
79
|
+
/** Development panel listing resolved sources (default: on in development). */
|
|
80
|
+
debug?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Rate limit for `sourcesHandler` shared by all your instances (e.g. Upstash/Redis): return false to refuse.
|
|
83
|
+
* Default: 120 requests per minute per client IP, counted per server instance.
|
|
84
|
+
*/
|
|
85
|
+
rateLimit?: (key: string, request: Request) => boolean | Promise<boolean>;
|
|
86
|
+
};
|
|
87
|
+
/** Route values for source params of kind route-param / query-param. */
|
|
88
|
+
export type SourceRouteProps = {
|
|
89
|
+
/** Route params, e.g. `await params` — `slug` and `locale` are filled in from the other props. */
|
|
90
|
+
params?: Record<string, unknown>;
|
|
91
|
+
/** `await searchParams` — only reaches sources through their typed params. */
|
|
92
|
+
searchParams?: Record<string, string | string[] | undefined>;
|
|
33
93
|
};
|
|
34
94
|
export type Rendering = "isr" | "static";
|
|
35
95
|
/** Per page/component override of the caching mode. */
|
|
@@ -44,6 +104,8 @@ export declare const visualTags: {
|
|
|
44
104
|
project: (projectId: string) => string;
|
|
45
105
|
page: (projectId: string, locale: string, path: string) => string;
|
|
46
106
|
component: (projectId: string, id: string) => string;
|
|
107
|
+
/** An app source (ADR-048): `visual.revalidateSource(name)` or `visual.sourceWebhook(secret)`. */
|
|
108
|
+
source: typeof sourceTag;
|
|
47
109
|
};
|
|
48
110
|
/**
|
|
49
111
|
* Next.js App Router integration (blueprint 61). Call once at module scope:
|
|
@@ -108,7 +170,7 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
108
170
|
versionNumber: number;
|
|
109
171
|
document: {
|
|
110
172
|
schemaVersion: 1;
|
|
111
|
-
nodes:
|
|
173
|
+
nodes: ComponentNode[];
|
|
112
174
|
props: {
|
|
113
175
|
name: string;
|
|
114
176
|
label: string;
|
|
@@ -127,7 +189,7 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
127
189
|
data?: {
|
|
128
190
|
name: string;
|
|
129
191
|
label?: string | undefined;
|
|
130
|
-
source: "app" | "table";
|
|
192
|
+
source: "app" | "appSource" | "table";
|
|
131
193
|
shape: "list" | "object";
|
|
132
194
|
fields: import("@visual-platform/contracts").DataField[];
|
|
133
195
|
sample?: unknown;
|
|
@@ -144,7 +206,81 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
144
206
|
locale?: string | undefined;
|
|
145
207
|
} | undefined;
|
|
146
208
|
single?: boolean | undefined;
|
|
209
|
+
sourceRef?: string | undefined;
|
|
210
|
+
params?: Record<string, {
|
|
211
|
+
kind: "literal";
|
|
212
|
+
value: string | number | boolean | null;
|
|
213
|
+
} | {
|
|
214
|
+
kind: "page-locale";
|
|
215
|
+
} | {
|
|
216
|
+
kind: "route-param";
|
|
217
|
+
name: string;
|
|
218
|
+
} | {
|
|
219
|
+
kind: "query-param";
|
|
220
|
+
name: string;
|
|
221
|
+
} | {
|
|
222
|
+
kind: "context";
|
|
223
|
+
key: string;
|
|
224
|
+
} | {
|
|
225
|
+
kind: "source";
|
|
226
|
+
path: string;
|
|
227
|
+
}> | undefined;
|
|
228
|
+
fallback?: "empty" | "hide" | "sample" | undefined;
|
|
147
229
|
}[] | undefined;
|
|
230
|
+
flows?: {
|
|
231
|
+
name: string;
|
|
232
|
+
label?: string | undefined;
|
|
233
|
+
description?: string | undefined;
|
|
234
|
+
params?: {
|
|
235
|
+
name: string;
|
|
236
|
+
label?: string | undefined;
|
|
237
|
+
type: "boolean" | "number" | "text";
|
|
238
|
+
required?: boolean | undefined;
|
|
239
|
+
}[] | undefined;
|
|
240
|
+
steps: import("@visual-platform/contracts").FlowStep[];
|
|
241
|
+
onError?: import("@visual-platform/contracts").FlowStep[] | undefined;
|
|
242
|
+
}[] | undefined;
|
|
243
|
+
lifecycle?: {
|
|
244
|
+
mount?: string | undefined;
|
|
245
|
+
unmount?: string | undefined;
|
|
246
|
+
visible?: string | undefined;
|
|
247
|
+
leave?: string | undefined;
|
|
248
|
+
visibleOnce?: boolean | undefined;
|
|
249
|
+
every?: {
|
|
250
|
+
run: string;
|
|
251
|
+
ms: number;
|
|
252
|
+
max?: number | undefined;
|
|
253
|
+
} | undefined;
|
|
254
|
+
} | undefined;
|
|
255
|
+
animation?: {
|
|
256
|
+
entrance?: {
|
|
257
|
+
duration?: number | undefined;
|
|
258
|
+
delay?: number | undefined;
|
|
259
|
+
easing?: string | undefined;
|
|
260
|
+
preset: string;
|
|
261
|
+
trigger?: "mount" | "visible" | undefined;
|
|
262
|
+
once?: boolean | undefined;
|
|
263
|
+
} | undefined;
|
|
264
|
+
hover?: {
|
|
265
|
+
preset: string;
|
|
266
|
+
duration?: number | undefined;
|
|
267
|
+
easing?: string | undefined;
|
|
268
|
+
} | undefined;
|
|
269
|
+
loop?: {
|
|
270
|
+
duration?: number | undefined;
|
|
271
|
+
delay?: number | undefined;
|
|
272
|
+
easing?: string | undefined;
|
|
273
|
+
preset: string;
|
|
274
|
+
iterations?: number | "infinite" | undefined;
|
|
275
|
+
} | undefined;
|
|
276
|
+
scroll?: {
|
|
277
|
+
preset: string;
|
|
278
|
+
range?: "cover" | "enter" | "exit" | undefined;
|
|
279
|
+
} | undefined;
|
|
280
|
+
stagger?: {
|
|
281
|
+
ms: number;
|
|
282
|
+
} | undefined;
|
|
283
|
+
} | undefined;
|
|
148
284
|
disabledLocales?: string[] | undefined;
|
|
149
285
|
childrenSlot?: {
|
|
150
286
|
nodeId: string;
|
|
@@ -165,6 +301,34 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
165
301
|
unicodeRange?: string | undefined;
|
|
166
302
|
}[];
|
|
167
303
|
}[];
|
|
304
|
+
motion?: {
|
|
305
|
+
presets?: Record<string, {
|
|
306
|
+
label?: string | undefined;
|
|
307
|
+
kind: "emphasis" | "entrance" | "hover" | "loop";
|
|
308
|
+
frames: {
|
|
309
|
+
at: number;
|
|
310
|
+
opacity?: number | undefined;
|
|
311
|
+
x?: number | undefined;
|
|
312
|
+
y?: number | undefined;
|
|
313
|
+
unit?: "%" | "px" | undefined;
|
|
314
|
+
scale?: number | undefined;
|
|
315
|
+
rotate?: number | undefined;
|
|
316
|
+
blur?: number | undefined;
|
|
317
|
+
}[];
|
|
318
|
+
duration: number;
|
|
319
|
+
easing: string;
|
|
320
|
+
delay?: number | undefined;
|
|
321
|
+
iterations?: number | "infinite" | undefined;
|
|
322
|
+
alternate?: boolean | undefined;
|
|
323
|
+
}> | undefined;
|
|
324
|
+
durations?: {
|
|
325
|
+
fast: number;
|
|
326
|
+
normal: number;
|
|
327
|
+
slow: number;
|
|
328
|
+
} | undefined;
|
|
329
|
+
easings?: Record<string, string> | undefined;
|
|
330
|
+
disabled?: boolean | undefined;
|
|
331
|
+
} | undefined;
|
|
168
332
|
systems?: Record<string, {
|
|
169
333
|
vars: Record<string, string>;
|
|
170
334
|
themes: Record<string, Record<string, string>>;
|
|
@@ -178,6 +342,34 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
178
342
|
unicodeRange?: string | undefined;
|
|
179
343
|
}[];
|
|
180
344
|
}[];
|
|
345
|
+
motion?: {
|
|
346
|
+
presets?: Record<string, {
|
|
347
|
+
label?: string | undefined;
|
|
348
|
+
kind: "emphasis" | "entrance" | "hover" | "loop";
|
|
349
|
+
frames: {
|
|
350
|
+
at: number;
|
|
351
|
+
opacity?: number | undefined;
|
|
352
|
+
x?: number | undefined;
|
|
353
|
+
y?: number | undefined;
|
|
354
|
+
unit?: "%" | "px" | undefined;
|
|
355
|
+
scale?: number | undefined;
|
|
356
|
+
rotate?: number | undefined;
|
|
357
|
+
blur?: number | undefined;
|
|
358
|
+
}[];
|
|
359
|
+
duration: number;
|
|
360
|
+
easing: string;
|
|
361
|
+
delay?: number | undefined;
|
|
362
|
+
iterations?: number | "infinite" | undefined;
|
|
363
|
+
alternate?: boolean | undefined;
|
|
364
|
+
}> | undefined;
|
|
365
|
+
durations?: {
|
|
366
|
+
fast: number;
|
|
367
|
+
normal: number;
|
|
368
|
+
slow: number;
|
|
369
|
+
} | undefined;
|
|
370
|
+
easings?: Record<string, string> | undefined;
|
|
371
|
+
disabled?: boolean | undefined;
|
|
372
|
+
} | undefined;
|
|
181
373
|
}> | undefined;
|
|
182
374
|
} | null | undefined;
|
|
183
375
|
styles?: string | null | undefined;
|
|
@@ -187,6 +379,34 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
187
379
|
dir: "ltr" | "rtl";
|
|
188
380
|
}> | null | undefined;
|
|
189
381
|
data?: Record<string, unknown> | undefined;
|
|
382
|
+
sourcePlan?: {
|
|
383
|
+
layers: {
|
|
384
|
+
input: string;
|
|
385
|
+
kind: "app" | "appSource";
|
|
386
|
+
sourceRef: string;
|
|
387
|
+
params: Record<string, {
|
|
388
|
+
kind: "literal";
|
|
389
|
+
value: string | number | boolean | null;
|
|
390
|
+
} | {
|
|
391
|
+
kind: "page-locale";
|
|
392
|
+
} | {
|
|
393
|
+
kind: "route-param";
|
|
394
|
+
name: string;
|
|
395
|
+
} | {
|
|
396
|
+
kind: "query-param";
|
|
397
|
+
name: string;
|
|
398
|
+
} | {
|
|
399
|
+
kind: "context";
|
|
400
|
+
key: string;
|
|
401
|
+
} | {
|
|
402
|
+
kind: "source";
|
|
403
|
+
path: string;
|
|
404
|
+
}>;
|
|
405
|
+
fallback: "empty" | "hide" | "sample";
|
|
406
|
+
dependsOn: string[];
|
|
407
|
+
}[][];
|
|
408
|
+
contextKeys: string[];
|
|
409
|
+
} | undefined;
|
|
190
410
|
} | null>;
|
|
191
411
|
VisualPage: (props: {
|
|
192
412
|
locale: string;
|
|
@@ -194,7 +414,7 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
194
414
|
mode?: "production" | "preview";
|
|
195
415
|
data?: Record<string, unknown>;
|
|
196
416
|
handlers?: VisualServerHandlers;
|
|
197
|
-
} & RenderingOptions) => Promise<import("react").JSX.Element>;
|
|
417
|
+
} & RenderingOptions & SourceRouteProps) => Promise<import("react").JSX.Element | Iterable<ReactNode> | (string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined)>;
|
|
198
418
|
VisualComponent: (props: {
|
|
199
419
|
id: string;
|
|
200
420
|
locale?: string;
|
|
@@ -203,12 +423,28 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
203
423
|
theme?: string;
|
|
204
424
|
fallback?: ReactNode;
|
|
205
425
|
handlers?: VisualServerHandlers;
|
|
206
|
-
} & RenderingOptions) => Promise<import("react").JSX.Element>;
|
|
426
|
+
} & RenderingOptions & SourceRouteProps) => Promise<string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | null | undefined>;
|
|
207
427
|
generateMetadata: (locale: string, slug: string | string[] | undefined, opts?: {
|
|
208
428
|
titleTemplate?: string;
|
|
209
429
|
baseUrl?: string;
|
|
210
430
|
} & RenderingOptions) => Promise<Metadata>;
|
|
211
431
|
revalidateHandler: (secret: string) => (request: Request) => Promise<Response>;
|
|
432
|
+
revalidateSource: (name: string) => void;
|
|
433
|
+
sourceWebhook: (secret: string) => (request: Request) => Promise<Response>;
|
|
434
|
+
sourcesHandler: () => (request: Request) => Promise<Response>;
|
|
435
|
+
previewDataHandler: (secret: string) => (request: Request) => Promise<Response>;
|
|
436
|
+
runAction: (boundName: string, event: unknown) => Promise<{
|
|
437
|
+
ok: true;
|
|
438
|
+
data: unknown;
|
|
439
|
+
revalidated: string[];
|
|
440
|
+
} | {
|
|
441
|
+
ok: false;
|
|
442
|
+
error: string;
|
|
443
|
+
}>;
|
|
444
|
+
getContext: (opts: {
|
|
445
|
+
locale: string;
|
|
446
|
+
request?: boolean;
|
|
447
|
+
}) => Promise<VisualContextValue>;
|
|
212
448
|
locales: () => Promise<{
|
|
213
449
|
code: string;
|
|
214
450
|
name: string;
|
|
@@ -251,5 +487,7 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
251
487
|
}>;
|
|
252
488
|
};
|
|
253
489
|
export { createVisualRegistry } from "@visual-platform/runtime-core";
|
|
490
|
+
export { ActionError, defineAction, defineSource } from "./sources.js";
|
|
491
|
+
export type { ActionDefinition, ActionRunArgs, SourceDefinition, SourceEntry, SourceError, SourceResolveArgs, SourceVisibility, StandardSchema, VisualContextConfig, VisualContextValue, VisualSourceHandle } from "./sources.js";
|
|
254
492
|
export type { VisualRegistry, VisualNodeProps, VisualEvent, VisualEventData, EventKind } from "@visual-platform/runtime-core";
|
|
255
493
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|