@visual-platform/next 0.2.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 +258 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +310 -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;
|
|
@@ -123,10 +185,11 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
123
185
|
defaultLocale: string;
|
|
124
186
|
translations: Record<string, Record<string, string>>;
|
|
125
187
|
theme?: string | undefined;
|
|
188
|
+
designSystemId?: string | undefined;
|
|
126
189
|
data?: {
|
|
127
190
|
name: string;
|
|
128
191
|
label?: string | undefined;
|
|
129
|
-
source: "app" | "table";
|
|
192
|
+
source: "app" | "appSource" | "table";
|
|
130
193
|
shape: "list" | "object";
|
|
131
194
|
fields: import("@visual-platform/contracts").DataField[];
|
|
132
195
|
sample?: unknown;
|
|
@@ -143,7 +206,81 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
143
206
|
locale?: string | undefined;
|
|
144
207
|
} | undefined;
|
|
145
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;
|
|
146
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;
|
|
147
284
|
disabledLocales?: string[] | undefined;
|
|
148
285
|
childrenSlot?: {
|
|
149
286
|
nodeId: string;
|
|
@@ -164,6 +301,76 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
164
301
|
unicodeRange?: string | undefined;
|
|
165
302
|
}[];
|
|
166
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;
|
|
332
|
+
systems?: Record<string, {
|
|
333
|
+
vars: Record<string, string>;
|
|
334
|
+
themes: Record<string, Record<string, string>>;
|
|
335
|
+
fonts: {
|
|
336
|
+
family: string;
|
|
337
|
+
faces: {
|
|
338
|
+
weight: number;
|
|
339
|
+
style: "italic" | "normal";
|
|
340
|
+
url: string;
|
|
341
|
+
format: "opentype" | "truetype" | "woff" | "woff2";
|
|
342
|
+
unicodeRange?: string | undefined;
|
|
343
|
+
}[];
|
|
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;
|
|
373
|
+
}> | undefined;
|
|
167
374
|
} | null | undefined;
|
|
168
375
|
styles?: string | null | undefined;
|
|
169
376
|
locales?: Record<string, {
|
|
@@ -172,6 +379,34 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
172
379
|
dir: "ltr" | "rtl";
|
|
173
380
|
}> | null | undefined;
|
|
174
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;
|
|
175
410
|
} | null>;
|
|
176
411
|
VisualPage: (props: {
|
|
177
412
|
locale: string;
|
|
@@ -179,7 +414,7 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
179
414
|
mode?: "production" | "preview";
|
|
180
415
|
data?: Record<string, unknown>;
|
|
181
416
|
handlers?: VisualServerHandlers;
|
|
182
|
-
} & 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)>;
|
|
183
418
|
VisualComponent: (props: {
|
|
184
419
|
id: string;
|
|
185
420
|
locale?: string;
|
|
@@ -188,12 +423,28 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
188
423
|
theme?: string;
|
|
189
424
|
fallback?: ReactNode;
|
|
190
425
|
handlers?: VisualServerHandlers;
|
|
191
|
-
} & RenderingOptions) => Promise<import("react").JSX.Element>;
|
|
426
|
+
} & RenderingOptions & SourceRouteProps) => Promise<string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | null | undefined>;
|
|
192
427
|
generateMetadata: (locale: string, slug: string | string[] | undefined, opts?: {
|
|
193
428
|
titleTemplate?: string;
|
|
194
429
|
baseUrl?: string;
|
|
195
430
|
} & RenderingOptions) => Promise<Metadata>;
|
|
196
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>;
|
|
197
448
|
locales: () => Promise<{
|
|
198
449
|
code: string;
|
|
199
450
|
name: string;
|
|
@@ -236,5 +487,7 @@ export declare function createVisualNext(config: VisualNextConfig): {
|
|
|
236
487
|
}>;
|
|
237
488
|
};
|
|
238
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";
|
|
239
492
|
export type { VisualRegistry, VisualNodeProps, VisualEvent, VisualEventData, EventKind } from "@visual-platform/runtime-core";
|
|
240
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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"}
|