@amplifyup/sdk 0.1.33 → 0.1.35
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 +30 -1
- package/dist/AmplifyRenderer.d.mts +1 -1
- package/dist/AmplifyRenderer.d.ts +1 -1
- package/dist/AmplifyRenderer.js +30 -5
- package/dist/AmplifyRenderer.js.map +1 -1
- package/dist/AmplifyRenderer.mjs +30 -5
- package/dist/AmplifyRenderer.mjs.map +1 -1
- package/dist/index.d.mts +14 -2
- package/dist/index.d.ts +14 -2
- package/dist/index.js +208 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +201 -11
- package/dist/index.mjs.map +1 -1
- package/dist/middleware.d.mts +22 -0
- package/dist/middleware.d.ts +22 -0
- package/dist/middleware.js +198 -0
- package/dist/middleware.js.map +1 -0
- package/dist/middleware.mjs +193 -0
- package/dist/middleware.mjs.map +1 -0
- package/dist/query-6BmINKLR.d.mts +157 -0
- package/dist/query-DjIuJ71C.d.ts +157 -0
- package/dist/react.d.mts +7 -3
- package/dist/react.d.ts +7 -3
- package/dist/react.js +272 -19
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +267 -20
- package/dist/react.mjs.map +1 -1
- package/dist/server.d.mts +42 -5
- package/dist/server.d.ts +42 -5
- package/dist/server.js +278 -7
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +265 -8
- package/dist/server.mjs.map +1 -1
- package/dist/{types-npF_lNoq.d.mts → types-CBoVIFI8.d.mts} +6 -0
- package/dist/{types-npF_lNoq.d.ts → types-CBoVIFI8.d.ts} +6 -0
- package/package.json +6 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { f as AmplifyUpTarget } from './types-CBoVIFI8.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* On-request variant selection (tier 3).
|
|
5
|
+
*
|
|
6
|
+
* Decisions happen on AmplifyUp Edge. The client asks after the view has
|
|
7
|
+
* rendered; the Worker returns variant keys only. Profile data never leaves
|
|
8
|
+
* the edge. This helper is the JS wrapper around POST /v1/select — the same
|
|
9
|
+
* wire format is the contract for Flutter / native / .NET clients. No DOM
|
|
10
|
+
* or Next.js assumptions.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
interface SelectVariantsResult {
|
|
14
|
+
siteId: string;
|
|
15
|
+
view: string;
|
|
16
|
+
variantKeys: Record<string, string>;
|
|
17
|
+
meta?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
declare class SelectVariantsError extends Error {
|
|
20
|
+
status: number;
|
|
21
|
+
body: unknown;
|
|
22
|
+
constructor(message: string, status: number, body?: unknown);
|
|
23
|
+
}
|
|
24
|
+
interface FetchEdgeSelectOptions {
|
|
25
|
+
edgeUrl: string;
|
|
26
|
+
trackingId?: string;
|
|
27
|
+
site?: string;
|
|
28
|
+
view: string;
|
|
29
|
+
anonId: string;
|
|
30
|
+
zones?: string[];
|
|
31
|
+
/** Request-local facts the edge cannot observe (app version, screen class). */
|
|
32
|
+
context?: Record<string, unknown>;
|
|
33
|
+
fetch?: typeof fetch;
|
|
34
|
+
signal?: AbortSignal;
|
|
35
|
+
}
|
|
36
|
+
declare function fetchEdgeSelect(options: FetchEdgeSelectOptions): Promise<SelectVariantsResult>;
|
|
37
|
+
interface SelectVariantsOptions {
|
|
38
|
+
trackingId?: string;
|
|
39
|
+
site?: string;
|
|
40
|
+
view: string;
|
|
41
|
+
anonId: string;
|
|
42
|
+
zones?: string[];
|
|
43
|
+
context?: Record<string, unknown>;
|
|
44
|
+
target?: AmplifyUpTarget;
|
|
45
|
+
edgeUrl?: string;
|
|
46
|
+
fetch?: typeof fetch;
|
|
47
|
+
signal?: AbortSignal;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Ask Edge to decide deferred rules for a view. Returns variant keys to pass
|
|
51
|
+
* to `/v1/resolve?variants=`.
|
|
52
|
+
*/
|
|
53
|
+
declare function selectVariants(options: SelectVariantsOptions): Promise<SelectVariantsResult>;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Runtime content queries.
|
|
57
|
+
*
|
|
58
|
+
* Page resolve covers data known at Deploy. Visitor-triggered data — search,
|
|
59
|
+
* load more, pickers — runs here: the browser asks AmplifyUp, AmplifyUp asks
|
|
60
|
+
* the CMS. Only entities published with the page can be queried.
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
type QueryFilterOp = 'eq' | 'neq' | 'in' | 'nin' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains' | 'exists';
|
|
64
|
+
interface QueryFilter {
|
|
65
|
+
field: string;
|
|
66
|
+
op: QueryFilterOp;
|
|
67
|
+
value?: unknown;
|
|
68
|
+
}
|
|
69
|
+
interface QuerySort {
|
|
70
|
+
field: string;
|
|
71
|
+
dir: 'asc' | 'desc';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Provider-neutral query. AmplifyUp compiles this for the connected CMS —
|
|
75
|
+
* it never contains CMS query syntax. Same shape Composer saves on a
|
|
76
|
+
* query connection, and the shape returned in `{field}Pagination.spec`.
|
|
77
|
+
*/
|
|
78
|
+
interface QuerySpec {
|
|
79
|
+
providerId: string;
|
|
80
|
+
entity: string;
|
|
81
|
+
filter: QueryFilter[];
|
|
82
|
+
sort: QuerySort[];
|
|
83
|
+
limit: number;
|
|
84
|
+
offset: number;
|
|
85
|
+
}
|
|
86
|
+
/** Pagination meta added to list props when a query connection is paginated. */
|
|
87
|
+
interface QueryPagination {
|
|
88
|
+
hasMore: boolean;
|
|
89
|
+
limit: number;
|
|
90
|
+
offset: number;
|
|
91
|
+
nextOffset: number;
|
|
92
|
+
spec: QuerySpec;
|
|
93
|
+
}
|
|
94
|
+
interface QueryResult<T = Record<string, unknown>> {
|
|
95
|
+
results: T[];
|
|
96
|
+
count: number;
|
|
97
|
+
hasMore: boolean;
|
|
98
|
+
limit: number;
|
|
99
|
+
offset: number;
|
|
100
|
+
nextOffset: number;
|
|
101
|
+
/** True when a content source failed and results may be incomplete. */
|
|
102
|
+
degraded?: boolean;
|
|
103
|
+
}
|
|
104
|
+
declare class QueryContentError extends Error {
|
|
105
|
+
status: number;
|
|
106
|
+
body: unknown;
|
|
107
|
+
constructor(message: string, status: number, body?: unknown);
|
|
108
|
+
}
|
|
109
|
+
interface FetchEdgeQueryOptions {
|
|
110
|
+
edgeUrl: string;
|
|
111
|
+
trackingId: string;
|
|
112
|
+
/** Published route the query belongs to (provides sources + entity mapping). */
|
|
113
|
+
route: string;
|
|
114
|
+
spec: QuerySpec;
|
|
115
|
+
siteId?: string | null;
|
|
116
|
+
fetch?: typeof fetch;
|
|
117
|
+
signal?: AbortSignal;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Low-level runtime query against a known Edge URL.
|
|
121
|
+
* Most callers should use `queryContent`, which resolves the URL for them.
|
|
122
|
+
*/
|
|
123
|
+
declare function fetchEdgeQuery<T = Record<string, unknown>>(options: FetchEdgeQueryOptions): Promise<QueryResult<T>>;
|
|
124
|
+
interface QueryContentOptions {
|
|
125
|
+
trackingId: string;
|
|
126
|
+
/** Published route the query belongs to, e.g. '/insights'. */
|
|
127
|
+
route: string;
|
|
128
|
+
spec: QuerySpec;
|
|
129
|
+
siteId?: string | null;
|
|
130
|
+
target?: AmplifyUpTarget;
|
|
131
|
+
fetch?: typeof fetch;
|
|
132
|
+
signal?: AbortSignal;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Run a content query at request time (search, load more, pickers).
|
|
136
|
+
*
|
|
137
|
+
* Start from the published spec on a paginated list prop so filters and sort
|
|
138
|
+
* stay owned by Composer:
|
|
139
|
+
*
|
|
140
|
+
* ```ts
|
|
141
|
+
* const next = await queryContent({
|
|
142
|
+
* trackingId,
|
|
143
|
+
* route: '/insights',
|
|
144
|
+
* spec: { ...postsPagination.spec, offset: postsPagination.nextOffset },
|
|
145
|
+
* });
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
declare function queryContent<T = Record<string, unknown>>(options: QueryContentOptions): Promise<QueryResult<T>>;
|
|
149
|
+
/** Convenience: next page from pagination meta on a list prop. */
|
|
150
|
+
declare function nextPageSpec(pagination: QueryPagination): QuerySpec;
|
|
151
|
+
/**
|
|
152
|
+
* Convenience: same published query, filtered by a visitor's search term.
|
|
153
|
+
* Resets to the first page. Empty terms return the unfiltered spec.
|
|
154
|
+
*/
|
|
155
|
+
declare function searchSpec(pagination: QueryPagination, field: string, term: string): QuerySpec;
|
|
156
|
+
|
|
157
|
+
export { type FetchEdgeSelectOptions as F, QueryContentError as Q, SelectVariantsError as S, type SelectVariantsOptions as a, type SelectVariantsResult as b, fetchEdgeQuery as c, searchSpec as d, type QueryContentOptions as e, fetchEdgeSelect as f, type FetchEdgeQueryOptions as g, type QueryResult as h, type QueryPagination as i, type QuerySpec as j, type QueryFilter as k, type QueryFilterOp as l, type QuerySort as m, nextPageSpec as n, queryContent as q, selectVariants as s };
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { f as AmplifyUpTarget } from './types-CBoVIFI8.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* On-request variant selection (tier 3).
|
|
5
|
+
*
|
|
6
|
+
* Decisions happen on AmplifyUp Edge. The client asks after the view has
|
|
7
|
+
* rendered; the Worker returns variant keys only. Profile data never leaves
|
|
8
|
+
* the edge. This helper is the JS wrapper around POST /v1/select — the same
|
|
9
|
+
* wire format is the contract for Flutter / native / .NET clients. No DOM
|
|
10
|
+
* or Next.js assumptions.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
interface SelectVariantsResult {
|
|
14
|
+
siteId: string;
|
|
15
|
+
view: string;
|
|
16
|
+
variantKeys: Record<string, string>;
|
|
17
|
+
meta?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
declare class SelectVariantsError extends Error {
|
|
20
|
+
status: number;
|
|
21
|
+
body: unknown;
|
|
22
|
+
constructor(message: string, status: number, body?: unknown);
|
|
23
|
+
}
|
|
24
|
+
interface FetchEdgeSelectOptions {
|
|
25
|
+
edgeUrl: string;
|
|
26
|
+
trackingId?: string;
|
|
27
|
+
site?: string;
|
|
28
|
+
view: string;
|
|
29
|
+
anonId: string;
|
|
30
|
+
zones?: string[];
|
|
31
|
+
/** Request-local facts the edge cannot observe (app version, screen class). */
|
|
32
|
+
context?: Record<string, unknown>;
|
|
33
|
+
fetch?: typeof fetch;
|
|
34
|
+
signal?: AbortSignal;
|
|
35
|
+
}
|
|
36
|
+
declare function fetchEdgeSelect(options: FetchEdgeSelectOptions): Promise<SelectVariantsResult>;
|
|
37
|
+
interface SelectVariantsOptions {
|
|
38
|
+
trackingId?: string;
|
|
39
|
+
site?: string;
|
|
40
|
+
view: string;
|
|
41
|
+
anonId: string;
|
|
42
|
+
zones?: string[];
|
|
43
|
+
context?: Record<string, unknown>;
|
|
44
|
+
target?: AmplifyUpTarget;
|
|
45
|
+
edgeUrl?: string;
|
|
46
|
+
fetch?: typeof fetch;
|
|
47
|
+
signal?: AbortSignal;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Ask Edge to decide deferred rules for a view. Returns variant keys to pass
|
|
51
|
+
* to `/v1/resolve?variants=`.
|
|
52
|
+
*/
|
|
53
|
+
declare function selectVariants(options: SelectVariantsOptions): Promise<SelectVariantsResult>;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Runtime content queries.
|
|
57
|
+
*
|
|
58
|
+
* Page resolve covers data known at Deploy. Visitor-triggered data — search,
|
|
59
|
+
* load more, pickers — runs here: the browser asks AmplifyUp, AmplifyUp asks
|
|
60
|
+
* the CMS. Only entities published with the page can be queried.
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
type QueryFilterOp = 'eq' | 'neq' | 'in' | 'nin' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains' | 'exists';
|
|
64
|
+
interface QueryFilter {
|
|
65
|
+
field: string;
|
|
66
|
+
op: QueryFilterOp;
|
|
67
|
+
value?: unknown;
|
|
68
|
+
}
|
|
69
|
+
interface QuerySort {
|
|
70
|
+
field: string;
|
|
71
|
+
dir: 'asc' | 'desc';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Provider-neutral query. AmplifyUp compiles this for the connected CMS —
|
|
75
|
+
* it never contains CMS query syntax. Same shape Composer saves on a
|
|
76
|
+
* query connection, and the shape returned in `{field}Pagination.spec`.
|
|
77
|
+
*/
|
|
78
|
+
interface QuerySpec {
|
|
79
|
+
providerId: string;
|
|
80
|
+
entity: string;
|
|
81
|
+
filter: QueryFilter[];
|
|
82
|
+
sort: QuerySort[];
|
|
83
|
+
limit: number;
|
|
84
|
+
offset: number;
|
|
85
|
+
}
|
|
86
|
+
/** Pagination meta added to list props when a query connection is paginated. */
|
|
87
|
+
interface QueryPagination {
|
|
88
|
+
hasMore: boolean;
|
|
89
|
+
limit: number;
|
|
90
|
+
offset: number;
|
|
91
|
+
nextOffset: number;
|
|
92
|
+
spec: QuerySpec;
|
|
93
|
+
}
|
|
94
|
+
interface QueryResult<T = Record<string, unknown>> {
|
|
95
|
+
results: T[];
|
|
96
|
+
count: number;
|
|
97
|
+
hasMore: boolean;
|
|
98
|
+
limit: number;
|
|
99
|
+
offset: number;
|
|
100
|
+
nextOffset: number;
|
|
101
|
+
/** True when a content source failed and results may be incomplete. */
|
|
102
|
+
degraded?: boolean;
|
|
103
|
+
}
|
|
104
|
+
declare class QueryContentError extends Error {
|
|
105
|
+
status: number;
|
|
106
|
+
body: unknown;
|
|
107
|
+
constructor(message: string, status: number, body?: unknown);
|
|
108
|
+
}
|
|
109
|
+
interface FetchEdgeQueryOptions {
|
|
110
|
+
edgeUrl: string;
|
|
111
|
+
trackingId: string;
|
|
112
|
+
/** Published route the query belongs to (provides sources + entity mapping). */
|
|
113
|
+
route: string;
|
|
114
|
+
spec: QuerySpec;
|
|
115
|
+
siteId?: string | null;
|
|
116
|
+
fetch?: typeof fetch;
|
|
117
|
+
signal?: AbortSignal;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Low-level runtime query against a known Edge URL.
|
|
121
|
+
* Most callers should use `queryContent`, which resolves the URL for them.
|
|
122
|
+
*/
|
|
123
|
+
declare function fetchEdgeQuery<T = Record<string, unknown>>(options: FetchEdgeQueryOptions): Promise<QueryResult<T>>;
|
|
124
|
+
interface QueryContentOptions {
|
|
125
|
+
trackingId: string;
|
|
126
|
+
/** Published route the query belongs to, e.g. '/insights'. */
|
|
127
|
+
route: string;
|
|
128
|
+
spec: QuerySpec;
|
|
129
|
+
siteId?: string | null;
|
|
130
|
+
target?: AmplifyUpTarget;
|
|
131
|
+
fetch?: typeof fetch;
|
|
132
|
+
signal?: AbortSignal;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Run a content query at request time (search, load more, pickers).
|
|
136
|
+
*
|
|
137
|
+
* Start from the published spec on a paginated list prop so filters and sort
|
|
138
|
+
* stay owned by Composer:
|
|
139
|
+
*
|
|
140
|
+
* ```ts
|
|
141
|
+
* const next = await queryContent({
|
|
142
|
+
* trackingId,
|
|
143
|
+
* route: '/insights',
|
|
144
|
+
* spec: { ...postsPagination.spec, offset: postsPagination.nextOffset },
|
|
145
|
+
* });
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
declare function queryContent<T = Record<string, unknown>>(options: QueryContentOptions): Promise<QueryResult<T>>;
|
|
149
|
+
/** Convenience: next page from pagination meta on a list prop. */
|
|
150
|
+
declare function nextPageSpec(pagination: QueryPagination): QuerySpec;
|
|
151
|
+
/**
|
|
152
|
+
* Convenience: same published query, filtered by a visitor's search term.
|
|
153
|
+
* Resets to the first page. Empty terms return the unfiltered spec.
|
|
154
|
+
*/
|
|
155
|
+
declare function searchSpec(pagination: QueryPagination, field: string, term: string): QuerySpec;
|
|
156
|
+
|
|
157
|
+
export { type FetchEdgeSelectOptions as F, QueryContentError as Q, SelectVariantsError as S, type SelectVariantsOptions as a, type SelectVariantsResult as b, fetchEdgeQuery as c, searchSpec as d, type QueryContentOptions as e, fetchEdgeSelect as f, type FetchEdgeQueryOptions as g, type QueryResult as h, type QueryPagination as i, type QuerySpec as j, type QueryFilter as k, type QueryFilterOp as l, type QuerySort as m, nextPageSpec as n, queryContent as q, selectVariants as s };
|
package/dist/react.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React, { ReactNode } from 'react';
|
|
3
|
-
import { P as PageConfig, b as AmplifyUpConfig, C as ContentSource, A as AmplifyContentMeta } from './types-
|
|
4
|
-
export { Z as ZoneConfig } from './types-
|
|
3
|
+
import { P as PageConfig, b as AmplifyUpConfig, C as ContentSource, A as AmplifyContentMeta } from './types-CBoVIFI8.mjs';
|
|
4
|
+
export { Z as ZoneConfig } from './types-CBoVIFI8.mjs';
|
|
5
5
|
export { AmplifyRenderer } from './AmplifyRenderer.mjs';
|
|
6
|
+
export { Q as QueryContentError, e as QueryContentOptions, k as QueryFilter, l as QueryFilterOp, i as QueryPagination, h as QueryResult, m as QuerySort, j as QuerySpec, S as SelectVariantsError, a as SelectVariantsOptions, b as SelectVariantsResult, n as nextPageSpec, q as queryContent, d as searchSpec, s as selectVariants } from './query-6BmINKLR.mjs';
|
|
6
7
|
export { i as isComposerPreview, a as isPreviewRequest, b as isWorkingContentRequest } from './preview-_vHmzRen.mjs';
|
|
7
8
|
export { fetchPageConfigServer } from './server.mjs';
|
|
8
9
|
|
|
@@ -19,7 +20,7 @@ interface AmplifyPageContentProps {
|
|
|
19
20
|
fallback?: ReactNode;
|
|
20
21
|
/** Maps AmplifyUp component IDs to your React components. */
|
|
21
22
|
renderComponent: RenderComponentFn;
|
|
22
|
-
/**
|
|
23
|
+
/** SSG/ISR layout from the server. Client overlay applies only when variants differ. */
|
|
23
24
|
pageConfig?: PageConfig | null;
|
|
24
25
|
/**
|
|
25
26
|
* Force Composer mode (e.g. from SSR `?preview=true`). Ensures the page slot
|
|
@@ -37,6 +38,9 @@ interface AmplifyPageContentProps {
|
|
|
37
38
|
/**
|
|
38
39
|
* Hybrid page wrapper: Composer shows only the AmplifyUp layout canvas;
|
|
39
40
|
* normal visits show the configured layout or your native `fallback`.
|
|
41
|
+
*
|
|
42
|
+
* Live pages paint the SSG/ISR layout first. Client Edge resolve (visitor id)
|
|
43
|
+
* overlays only when the personalized tree differs from that static HTML.
|
|
40
44
|
*/
|
|
41
45
|
declare function AmplifyPageContent({ fallback, renderComponent, pageConfig: pageConfigProp, forceComposerPreview, previewLoadingComponent, previewEmptyComponent, loadingComponent, emptyComponent, errorComponent, }: AmplifyPageContentProps): react_jsx_runtime.JSX.Element | null;
|
|
42
46
|
|
package/dist/react.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React, { ReactNode } from 'react';
|
|
3
|
-
import { P as PageConfig, b as AmplifyUpConfig, C as ContentSource, A as AmplifyContentMeta } from './types-
|
|
4
|
-
export { Z as ZoneConfig } from './types-
|
|
3
|
+
import { P as PageConfig, b as AmplifyUpConfig, C as ContentSource, A as AmplifyContentMeta } from './types-CBoVIFI8.js';
|
|
4
|
+
export { Z as ZoneConfig } from './types-CBoVIFI8.js';
|
|
5
5
|
export { AmplifyRenderer } from './AmplifyRenderer.js';
|
|
6
|
+
export { Q as QueryContentError, e as QueryContentOptions, k as QueryFilter, l as QueryFilterOp, i as QueryPagination, h as QueryResult, m as QuerySort, j as QuerySpec, S as SelectVariantsError, a as SelectVariantsOptions, b as SelectVariantsResult, n as nextPageSpec, q as queryContent, d as searchSpec, s as selectVariants } from './query-DjIuJ71C.js';
|
|
6
7
|
export { i as isComposerPreview, a as isPreviewRequest, b as isWorkingContentRequest } from './preview-_vHmzRen.js';
|
|
7
8
|
export { fetchPageConfigServer } from './server.js';
|
|
8
9
|
|
|
@@ -19,7 +20,7 @@ interface AmplifyPageContentProps {
|
|
|
19
20
|
fallback?: ReactNode;
|
|
20
21
|
/** Maps AmplifyUp component IDs to your React components. */
|
|
21
22
|
renderComponent: RenderComponentFn;
|
|
22
|
-
/**
|
|
23
|
+
/** SSG/ISR layout from the server. Client overlay applies only when variants differ. */
|
|
23
24
|
pageConfig?: PageConfig | null;
|
|
24
25
|
/**
|
|
25
26
|
* Force Composer mode (e.g. from SSR `?preview=true`). Ensures the page slot
|
|
@@ -37,6 +38,9 @@ interface AmplifyPageContentProps {
|
|
|
37
38
|
/**
|
|
38
39
|
* Hybrid page wrapper: Composer shows only the AmplifyUp layout canvas;
|
|
39
40
|
* normal visits show the configured layout or your native `fallback`.
|
|
41
|
+
*
|
|
42
|
+
* Live pages paint the SSG/ISR layout first. Client Edge resolve (visitor id)
|
|
43
|
+
* overlays only when the personalized tree differs from that static HTML.
|
|
40
44
|
*/
|
|
41
45
|
declare function AmplifyPageContent({ fallback, renderComponent, pageConfig: pageConfigProp, forceComposerPreview, previewLoadingComponent, previewEmptyComponent, loadingComponent, emptyComponent, errorComponent, }: AmplifyPageContentProps): react_jsx_runtime.JSX.Element | null;
|
|
42
46
|
|