@uniformdev/canvas-next-rsc 19.69.0 → 19.73.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/UniformComposition-38e22896.d.ts +61 -0
- package/dist/component.d.mts +76 -0
- package/dist/component.d.ts +76 -0
- package/dist/component.js +218 -0
- package/dist/component.mjs +182 -0
- package/dist/config.d.mts +6 -0
- package/dist/config.d.ts +6 -1
- package/dist/config.js +56 -29
- package/dist/config.mjs +41 -0
- package/dist/handler.d.mts +12 -0
- package/dist/handler.d.ts +12 -2
- package/dist/handler.js +703 -2
- package/dist/handler.mjs +682 -0
- package/dist/{client/manifestClient.d.ts → index.d.mts} +100 -18
- package/dist/index.d.ts +243 -23
- package/dist/index.esm.js +977 -0
- package/dist/index.js +1013 -29
- package/dist/index.mjs +977 -0
- package/package.json +23 -15
- package/dist/actions/updateContext.d.ts +0 -2
- package/dist/actions/updateContext.js +0 -17
- package/dist/client/canvasClient.d.ts +0 -5
- package/dist/client/canvasClient.js +0 -53
- package/dist/client/manifestClient.js +0 -33
- package/dist/client/projectMapClient.d.ts +0 -5
- package/dist/client/projectMapClient.js +0 -17
- package/dist/client/routeClient.d.ts +0 -5
- package/dist/client/routeClient.js +0 -68
- package/dist/components/DefaultNotImplementedComponent.d.ts +0 -2
- package/dist/components/DefaultNotImplementedComponent.js +0 -45
- package/dist/components/GoogleTagManagerAnalytics.d.ts +0 -3
- package/dist/components/GoogleTagManagerAnalytics.js +0 -44
- package/dist/components/UniformComponent.d.ts +0 -25
- package/dist/components/UniformComponent.js +0 -14
- package/dist/components/UniformComposition.d.ts +0 -40
- package/dist/components/UniformComposition.js +0 -35
- package/dist/components/UniformContext.d.ts +0 -8
- package/dist/components/UniformContext.js +0 -19
- package/dist/components/UniformRichText.d.ts +0 -38
- package/dist/components/UniformRichText.js +0 -15
- package/dist/components/UniformRichTextNode.d.ts +0 -10
- package/dist/components/UniformRichTextNode.js +0 -49
- package/dist/components/UniformScript.d.ts +0 -3
- package/dist/components/UniformScript.js +0 -49
- package/dist/components/UniformSlot.d.ts +0 -40
- package/dist/components/UniformSlot.js +0 -38
- package/dist/components/UniformText.d.ts +0 -6
- package/dist/components/UniformText.js +0 -5
- package/dist/components/__tests__/evaluateComposition.spec.d.ts +0 -1
- package/dist/components/__tests__/evaluateComposition.spec.js +0 -80
- package/dist/components/convertComponentToProps.d.ts +0 -14
- package/dist/components/convertComponentToProps.js +0 -22
- package/dist/components/evaluateComposition.d.ts +0 -22
- package/dist/components/evaluateComposition.js +0 -183
- package/dist/components/getEnrichmentTags.d.ts +0 -3
- package/dist/components/getEnrichmentTags.js +0 -13
- package/dist/components/getUniformContext.d.ts +0 -6
- package/dist/components/getUniformContext.js +0 -17
- package/dist/components/nodes/HeadingRichTextNode.d.ts +0 -2
- package/dist/components/nodes/HeadingRichTextNode.js +0 -6
- package/dist/components/nodes/LinebreakRichTextNode.d.ts +0 -2
- package/dist/components/nodes/LinebreakRichTextNode.js +0 -4
- package/dist/components/nodes/LinkRichTextNode.d.ts +0 -2
- package/dist/components/nodes/LinkRichTextNode.js +0 -6
- package/dist/components/nodes/ListItemRichTextNode.d.ts +0 -2
- package/dist/components/nodes/ListItemRichTextNode.js +0 -5
- package/dist/components/nodes/ListRichTextNode.d.ts +0 -2
- package/dist/components/nodes/ListRichTextNode.js +0 -6
- package/dist/components/nodes/ParagraphRichTextNode.d.ts +0 -2
- package/dist/components/nodes/ParagraphRichTextNode.js +0 -6
- package/dist/components/nodes/TabRichTextNode.d.ts +0 -2
- package/dist/components/nodes/TabRichTextNode.js +0 -4
- package/dist/components/nodes/TextRichTextNode.d.ts +0 -2
- package/dist/components/nodes/TextRichTextNode.js +0 -9
- package/dist/components/renderComponent.d.ts +0 -15
- package/dist/components/renderComponent.js +0 -52
- package/dist/components/resolvePath.d.ts +0 -5
- package/dist/components/resolvePath.js +0 -34
- package/dist/components/retrieveRoute.d.ts +0 -141
- package/dist/components/retrieveRoute.js +0 -146
- package/dist/components/types.d.ts +0 -11
- package/dist/components/types.js +0 -1
- package/dist/config/helpers.d.ts +0 -17
- package/dist/config/helpers.js +0 -34
- package/dist/config/models.d.ts +0 -51
- package/dist/config/models.js +0 -1
- package/dist/cookie/index.d.ts +0 -12
- package/dist/cookie/index.js +0 -21
- package/dist/handler/createPreviewGETRouteHandler.d.ts +0 -1
- package/dist/handler/createPreviewGETRouteHandler.js +0 -43
- package/dist/handler/createPreviewPOSTRouteHandler.d.ts +0 -1
- package/dist/handler/createPreviewPOSTRouteHandler.js +0 -88
- package/dist/handler/createUniformRouteHandler.d.ts +0 -4
- package/dist/handler/createUniformRouteHandler.js +0 -10
- package/dist/handler/helpers.d.ts +0 -19
- package/dist/handler/helpers.js +0 -148
- package/dist/handler/messages/handleCompositionChanged.d.ts +0 -2
- package/dist/handler/messages/handleCompositionChanged.js +0 -9
- package/dist/handler/messages/handleCompositionDeleted.d.ts +0 -2
- package/dist/handler/messages/handleCompositionDeleted.js +0 -9
- package/dist/handler/messages/handleCompositionPublished.d.ts +0 -2
- package/dist/handler/messages/handleCompositionPublished.js +0 -9
- package/dist/handler/messages/handleManifestPublished.d.ts +0 -2
- package/dist/handler/messages/handleManifestPublished.js +0 -10
- package/dist/handler/messages/handleProjectMapNodeDelete.d.ts +0 -2
- package/dist/handler/messages/handleProjectMapNodeDelete.js +0 -21
- package/dist/handler/messages/handleProjectMapNodeInsert.d.ts +0 -2
- package/dist/handler/messages/handleProjectMapNodeInsert.js +0 -21
- package/dist/handler/messages/handleProjectMapNodeUpdate.d.ts +0 -2
- package/dist/handler/messages/handleProjectMapNodeUpdate.js +0 -22
- package/dist/handler/messages/handleRedirectDelete.d.ts +0 -2
- package/dist/handler/messages/handleRedirectDelete.js +0 -15
- package/dist/handler/messages/handleRedirectInsert.d.ts +0 -2
- package/dist/handler/messages/handleRedirectInsert.js +0 -15
- package/dist/handler/messages/handleRedirectUpdate.d.ts +0 -2
- package/dist/handler/messages/handleRedirectUpdate.js +0 -15
- package/dist/hooks/useForgetMe.d.ts +0 -4
- package/dist/hooks/useForgetMe.js +0 -10
- package/dist/hooks/useToggleConsent.d.ts +0 -7
- package/dist/hooks/useToggleConsent.js +0 -22
- package/dist/hooks/useUniformContext.d.ts +0 -1
- package/dist/hooks/useUniformContext.js +0 -3
- package/dist/models/index.d.ts +0 -30
- package/dist/models/index.js +0 -1
- package/dist/register/componentStore.d.ts +0 -1
- package/dist/register/componentStore.js +0 -2
- package/dist/register/componentStoreResolver.d.ts +0 -2
- package/dist/register/componentStoreResolver.js +0 -5
- package/dist/register/createComponentStore.d.ts +0 -12
- package/dist/register/createComponentStore.js +0 -13
- package/dist/register/createComponentStoreResolver.d.ts +0 -9
- package/dist/register/createComponentStoreResolver.js +0 -9
- package/dist/register/getTypeWithVariant.d.ts +0 -1
- package/dist/register/getTypeWithVariant.js +0 -1
- package/dist/register/registerUniformComponent.d.ts +0 -6
- package/dist/register/registerUniformComponent.js +0 -8
- package/dist/resolve/resolveChildren.d.ts +0 -10
- package/dist/resolve/resolveChildren.js +0 -20
- package/dist/score/index.d.ts +0 -3
- package/dist/score/index.js +0 -114
- package/dist/utils/__tests__/apply.spec.d.ts +0 -1
- package/dist/utils/__tests__/apply.spec.js +0 -358
- package/dist/utils/__tests__/diff.spec.d.ts +0 -1
- package/dist/utils/__tests__/diff.spec.js +0 -394
- package/dist/utils/apply.d.ts +0 -6
- package/dist/utils/apply.js +0 -124
- package/dist/utils/comp.d.ts +0 -16
- package/dist/utils/comp.js +0 -65
- package/dist/utils/diff.d.ts +0 -44
- package/dist/utils/diff.js +0 -144
- package/dist/utils/draft.d.ts +0 -12
- package/dist/utils/draft.js +0 -22
- package/dist/utils/tag.d.ts +0 -2
- package/dist/utils/tag.js +0 -7
- package/dist/utils/url.d.ts +0 -1
- package/dist/utils/url.js +0 -10
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { CANVAS_DRAFT_STATE, generateHash } from '@uniformdev/canvas';
|
|
2
|
-
import { revalidateTag } from 'next/cache';
|
|
3
|
-
import { NextResponse } from 'next/server';
|
|
4
|
-
import { getCanvasClient } from '../client/canvasClient';
|
|
5
|
-
import { diff } from '../utils/diff';
|
|
6
|
-
import { isSvixMessage } from './helpers';
|
|
7
|
-
import { handleCompositionChanged } from './messages/handleCompositionChanged';
|
|
8
|
-
import { handleCompositionDeleted } from './messages/handleCompositionDeleted';
|
|
9
|
-
import { handleCompositionPublished } from './messages/handleCompositionPublished';
|
|
10
|
-
import { handleManifestPublished } from './messages/handleManifestPublished';
|
|
11
|
-
import { handleProjectMapNodeDelete } from './messages/handleProjectMapNodeDelete';
|
|
12
|
-
import { handleProjectMapNodeInsert } from './messages/handleProjectMapNodeInsert';
|
|
13
|
-
import { handleProjectMapNodeUpdate } from './messages/handleProjectMapNodeUpdate';
|
|
14
|
-
import { handleRedirectDelete } from './messages/handleRedirectDelete';
|
|
15
|
-
import { handleRedirectInsert } from './messages/handleRedirectInsert';
|
|
16
|
-
import { handleRedirectUpdate } from './messages/handleRedirectUpdate';
|
|
17
|
-
export const createPreviewPOSTRouteHandler = () => {
|
|
18
|
-
return async (request) => {
|
|
19
|
-
const { looksLikeMessage, validation } = await isSvixMessage(request);
|
|
20
|
-
if (looksLikeMessage) {
|
|
21
|
-
if (!validation) {
|
|
22
|
-
return new Response('This looks like a webhook request but the validation failed.', { status: 401 });
|
|
23
|
-
}
|
|
24
|
-
return handleSvixMessage(request);
|
|
25
|
-
}
|
|
26
|
-
if (!process.env.UNIFORM_PREVIEW_SECRET) {
|
|
27
|
-
return new Response('No preview secret is configured', { status: 401 });
|
|
28
|
-
}
|
|
29
|
-
const message = (await request.json());
|
|
30
|
-
if (!(message === null || message === void 0 ? void 0 : message.composition) || !(message === null || message === void 0 ? void 0 : message.hash)) {
|
|
31
|
-
return new Response('Invalid message', { status: 401 });
|
|
32
|
-
}
|
|
33
|
-
const { composition, hash } = message;
|
|
34
|
-
const calculatedHash = generateHash({
|
|
35
|
-
composition,
|
|
36
|
-
secret: process.env.UNIFORM_PREVIEW_SECRET,
|
|
37
|
-
});
|
|
38
|
-
if (hash !== calculatedHash) {
|
|
39
|
-
return new Response('Invalid hash', { status: 401 });
|
|
40
|
-
}
|
|
41
|
-
const canvasClient = await getCanvasClient();
|
|
42
|
-
const { composition: existingComposition } = await canvasClient.getCompositionById({
|
|
43
|
-
compositionId: composition._id,
|
|
44
|
-
state: CANVAS_DRAFT_STATE,
|
|
45
|
-
withComponentIDs: true,
|
|
46
|
-
});
|
|
47
|
-
const compositionDiff = diff(existingComposition, composition);
|
|
48
|
-
return NextResponse.json({
|
|
49
|
-
composition,
|
|
50
|
-
existingComposition,
|
|
51
|
-
diff: compositionDiff,
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
const handleSvixMessage = async (request) => {
|
|
56
|
-
const handlers = [
|
|
57
|
-
handleProjectMapNodeUpdate,
|
|
58
|
-
handleProjectMapNodeInsert,
|
|
59
|
-
handleProjectMapNodeDelete,
|
|
60
|
-
handleCompositionDeleted,
|
|
61
|
-
handleCompositionChanged,
|
|
62
|
-
handleCompositionPublished,
|
|
63
|
-
handleRedirectInsert,
|
|
64
|
-
handleRedirectUpdate,
|
|
65
|
-
handleRedirectDelete,
|
|
66
|
-
handleManifestPublished,
|
|
67
|
-
];
|
|
68
|
-
let tags = undefined;
|
|
69
|
-
const jsonBody = await request.json();
|
|
70
|
-
for (let i = 0; i < handlers.length; i++) {
|
|
71
|
-
const handler = handlers[i];
|
|
72
|
-
const result = await handler(jsonBody);
|
|
73
|
-
if (result) {
|
|
74
|
-
tags = result.tags;
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (tags === null || tags === void 0 ? void 0 : tags.length) {
|
|
79
|
-
for (let i = 0; i < tags.length; i++) {
|
|
80
|
-
const tag = tags[i];
|
|
81
|
-
revalidateTag(tag);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return new Response(JSON.stringify({
|
|
85
|
-
handled: typeof tags !== 'undefined',
|
|
86
|
-
tags,
|
|
87
|
-
}));
|
|
88
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { createPreviewGETRouteHandler } from './createPreviewGETRouteHandler';
|
|
2
|
-
import { createPreviewPOSTRouteHandler } from './createPreviewPOSTRouteHandler';
|
|
3
|
-
export const createUniformRouteHandler = () => {
|
|
4
|
-
const GET = createPreviewGETRouteHandler();
|
|
5
|
-
const POST = createPreviewPOSTRouteHandler();
|
|
6
|
-
return {
|
|
7
|
-
GET,
|
|
8
|
-
POST,
|
|
9
|
-
};
|
|
10
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export declare const isSvixMessage: (request: Request) => Promise<{
|
|
2
|
-
looksLikeMessage: boolean;
|
|
3
|
-
validation: boolean;
|
|
4
|
-
}>;
|
|
5
|
-
export declare const processCompositionChange: (compositionId: string) => Promise<{
|
|
6
|
-
tags: string[];
|
|
7
|
-
}>;
|
|
8
|
-
export declare const buildProjectMapNodePaths: (path: string) => string[];
|
|
9
|
-
export declare const getPathName: (url: string) => string;
|
|
10
|
-
export declare const processRedirectChange: (sourceUrl: string) => Promise<{
|
|
11
|
-
tags: string[];
|
|
12
|
-
}>;
|
|
13
|
-
export declare const processEdgeConfigChange: ({ source_url }: {
|
|
14
|
-
source_url: string;
|
|
15
|
-
}) => Promise<void>;
|
|
16
|
-
export type MessageHandlerResponse = {
|
|
17
|
-
tags: string[];
|
|
18
|
-
};
|
|
19
|
-
export type SvixMessageHandler = (body: any) => Promise<MessageHandlerResponse | undefined>;
|
package/dist/handler/helpers.js
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { parseConnectionString } from '@vercel/edge-config';
|
|
2
|
-
import { Webhook } from 'svix';
|
|
3
|
-
import { getProjectMapClient } from '../client/projectMapClient';
|
|
4
|
-
import { getRouteClient } from '../client/routeClient';
|
|
5
|
-
import { getServerConfig } from '../config/helpers';
|
|
6
|
-
import { buildCompositionTag, buildPathTag } from '../utils/tag';
|
|
7
|
-
export const isSvixMessage = async (request) => {
|
|
8
|
-
const requiredHeaders = ['svix-id', 'svix-timestamp', 'svix-signature'];
|
|
9
|
-
const hasAllRequiredHeaders = requiredHeaders.every((header) => request.headers.has(header));
|
|
10
|
-
if (!hasAllRequiredHeaders) {
|
|
11
|
-
return {
|
|
12
|
-
looksLikeMessage: false,
|
|
13
|
-
validation: false,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
if (typeof process.env.UNIFORM_WEBHOOK_SECRET !== 'undefined') {
|
|
17
|
-
// https://docs.svix.com/receiving/verifying-payloads/how
|
|
18
|
-
const payload = await request.clone().text();
|
|
19
|
-
const headers = Object.fromEntries(request.headers.entries());
|
|
20
|
-
const wh = new Webhook(process.env.UNIFORM_WEBHOOK_SECRET);
|
|
21
|
-
try {
|
|
22
|
-
wh.verify(payload, headers);
|
|
23
|
-
}
|
|
24
|
-
catch (err) {
|
|
25
|
-
return {
|
|
26
|
-
looksLikeMessage: true,
|
|
27
|
-
validation: false,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
looksLikeMessage: true,
|
|
33
|
-
validation: true,
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
export const processCompositionChange = async (compositionId) => {
|
|
37
|
-
const projectMapClient = getProjectMapClient({
|
|
38
|
-
revalidate: 0,
|
|
39
|
-
});
|
|
40
|
-
const { nodes } = await projectMapClient.getNodes({
|
|
41
|
-
compositionId,
|
|
42
|
-
});
|
|
43
|
-
const tags = [];
|
|
44
|
-
if (nodes) {
|
|
45
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
46
|
-
const node = nodes[i];
|
|
47
|
-
await processEdgeConfigChange({
|
|
48
|
-
source_url: node.path,
|
|
49
|
-
});
|
|
50
|
-
tags.push(...buildProjectMapNodePaths(node.path));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
tags.push(buildCompositionTag(compositionId));
|
|
54
|
-
return {
|
|
55
|
-
tags,
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
export const buildProjectMapNodePaths = (path) => {
|
|
59
|
-
const tags = [];
|
|
60
|
-
const isDynamic = path.includes(':');
|
|
61
|
-
if (!isDynamic) {
|
|
62
|
-
tags.push(buildPathTag(path));
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
const pieces = path.split('/');
|
|
66
|
-
const invalidatePieces = [];
|
|
67
|
-
for (let j = 0; j < pieces.length; j++) {
|
|
68
|
-
const piece = pieces[j];
|
|
69
|
-
if (piece.startsWith(':')) {
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
invalidatePieces.push(piece);
|
|
73
|
-
}
|
|
74
|
-
const toInvalidate = invalidatePieces.join('/');
|
|
75
|
-
tags.push(buildPathTag(toInvalidate));
|
|
76
|
-
}
|
|
77
|
-
return tags;
|
|
78
|
-
};
|
|
79
|
-
export const getPathName = (url) => {
|
|
80
|
-
try {
|
|
81
|
-
const { pathname } = new URL(url);
|
|
82
|
-
return pathname;
|
|
83
|
-
}
|
|
84
|
-
catch (_a) {
|
|
85
|
-
return url;
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
export const processRedirectChange = async (sourceUrl) => {
|
|
89
|
-
const tags = [];
|
|
90
|
-
const pathName = getPathName(sourceUrl);
|
|
91
|
-
tags.push(buildPathTag(pathName));
|
|
92
|
-
return {
|
|
93
|
-
tags,
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
export const processEdgeConfigChange = async ({ source_url }) => {
|
|
97
|
-
var _a, _b;
|
|
98
|
-
if (!process.env.UNIFORM_VERCEL_EDGE_CONFIG_TOKEN) {
|
|
99
|
-
// eslint-disable-next-line no-console
|
|
100
|
-
console.warn('UNIFORM_VERCEL_EDGE_CONFIG_TOKEN is not set, skipping edge redirect upsert');
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
const config = getServerConfig();
|
|
104
|
-
const routeClient = getRouteClient({
|
|
105
|
-
revalidate: -1,
|
|
106
|
-
});
|
|
107
|
-
const route = await routeClient.getRoute({
|
|
108
|
-
path: source_url,
|
|
109
|
-
});
|
|
110
|
-
let valueToStore = undefined;
|
|
111
|
-
const shouldSaveRedirect = route.type === 'redirect' && ((_a = config.experimental) === null || _a === void 0 ? void 0 : _a.edgeRedirects);
|
|
112
|
-
const shouldSaveComposition = route.type === 'composition' && ((_b = config.experimental) === null || _b === void 0 ? void 0 : _b.edgeCompositions);
|
|
113
|
-
if (shouldSaveRedirect || shouldSaveComposition) {
|
|
114
|
-
valueToStore = route;
|
|
115
|
-
}
|
|
116
|
-
const sourcePath = getPathName(source_url);
|
|
117
|
-
const soucrcePathKey = buildPathTag(sourcePath);
|
|
118
|
-
const { id } = parseConnectionString(process.env.EDGE_CONFIG) || {};
|
|
119
|
-
if (!id) {
|
|
120
|
-
// eslint-disable-next-line no-console
|
|
121
|
-
console.warn('EDGE_CONFIG is not set or not a connection string, skipping edge redirect upsert');
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
const url = new URL(`https://api.vercel.com/v1/edge-config/${id}/items`);
|
|
125
|
-
if (process.env.UNIFORM_VERCEL_EDGE_CONFIG_TEAM_ID) {
|
|
126
|
-
url.searchParams.set('teamId', process.env.UNIFORM_VERCEL_EDGE_CONFIG_TEAM_ID);
|
|
127
|
-
}
|
|
128
|
-
const response = await fetch(url.toString(), {
|
|
129
|
-
method: 'PATCH',
|
|
130
|
-
headers: {
|
|
131
|
-
'Content-Type': 'application/json',
|
|
132
|
-
Authorization: `Bearer ${process.env.UNIFORM_VERCEL_EDGE_CONFIG_TOKEN}`,
|
|
133
|
-
},
|
|
134
|
-
body: JSON.stringify({
|
|
135
|
-
items: [
|
|
136
|
-
{
|
|
137
|
-
operation: valueToStore ? 'upsert' : 'delete',
|
|
138
|
-
key: soucrcePathKey.replace(/\W+/g, ''),
|
|
139
|
-
value: valueToStore !== null && valueToStore !== void 0 ? valueToStore : null,
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
}),
|
|
143
|
-
});
|
|
144
|
-
if (!response.ok) {
|
|
145
|
-
// eslint-disable-next-line no-console
|
|
146
|
-
console.warn(`Failed to upsert edge redirect for ${source_url}`, await response.text());
|
|
147
|
-
}
|
|
148
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CompositionChangedDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { processCompositionChange } from '../helpers';
|
|
3
|
-
export const handleCompositionChanged = async (body) => {
|
|
4
|
-
const parsed = CompositionChangedDefinition.schema.safeParse(body);
|
|
5
|
-
if (!parsed.success) {
|
|
6
|
-
return undefined;
|
|
7
|
-
}
|
|
8
|
-
return processCompositionChange(parsed.data.id);
|
|
9
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CompositionDeletedDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { processCompositionChange } from '../helpers';
|
|
3
|
-
export const handleCompositionDeleted = async (body) => {
|
|
4
|
-
const parsed = CompositionDeletedDefinition.schema.safeParse(body);
|
|
5
|
-
if (!parsed.success) {
|
|
6
|
-
return undefined;
|
|
7
|
-
}
|
|
8
|
-
return processCompositionChange(parsed.data.id);
|
|
9
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CompositionPublishedDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { processCompositionChange } from '../helpers';
|
|
3
|
-
export const handleCompositionPublished = async (body) => {
|
|
4
|
-
const parsed = CompositionPublishedDefinition.schema.safeParse(body);
|
|
5
|
-
if (!parsed.success) {
|
|
6
|
-
return undefined;
|
|
7
|
-
}
|
|
8
|
-
return processCompositionChange(parsed.data.id);
|
|
9
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ManifestPublishedDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
export const handleManifestPublished = async (body) => {
|
|
3
|
-
const parsed = ManifestPublishedDefinition.schema.safeParse(body);
|
|
4
|
-
if (!parsed.success) {
|
|
5
|
-
return undefined;
|
|
6
|
-
}
|
|
7
|
-
return {
|
|
8
|
-
tags: ['manifest'],
|
|
9
|
-
};
|
|
10
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ProjectMapNodeDeleteDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { getServerConfig } from '../../config/helpers';
|
|
3
|
-
import { buildProjectMapNodePaths, processEdgeConfigChange } from '../helpers';
|
|
4
|
-
export const handleProjectMapNodeDelete = async (body) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const parsed = ProjectMapNodeDeleteDefinition.schema.safeParse(body);
|
|
7
|
-
if (!parsed.success) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const tags = [];
|
|
11
|
-
tags.push(...buildProjectMapNodePaths(parsed.data.path));
|
|
12
|
-
const config = getServerConfig();
|
|
13
|
-
if ((_a = config.experimental) === null || _a === void 0 ? void 0 : _a.edgeCompositions) {
|
|
14
|
-
await processEdgeConfigChange({
|
|
15
|
-
source_url: parsed.data.path,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
tags,
|
|
20
|
-
};
|
|
21
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ProjectMapNodeInsertDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { getServerConfig } from '../../config/helpers';
|
|
3
|
-
import { buildProjectMapNodePaths, processEdgeConfigChange } from '../helpers';
|
|
4
|
-
export const handleProjectMapNodeInsert = async (body) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const parsed = ProjectMapNodeInsertDefinition.schema.safeParse(body);
|
|
7
|
-
if (!parsed.success) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const tags = [];
|
|
11
|
-
tags.push(...buildProjectMapNodePaths(parsed.data.path));
|
|
12
|
-
const config = getServerConfig();
|
|
13
|
-
if ((_a = config.experimental) === null || _a === void 0 ? void 0 : _a.edgeCompositions) {
|
|
14
|
-
await processEdgeConfigChange({
|
|
15
|
-
source_url: parsed.data.path,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
tags,
|
|
20
|
-
};
|
|
21
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ProjectMapNodeUpdateDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { getServerConfig } from '../../config/helpers';
|
|
3
|
-
import { buildProjectMapNodePaths, processEdgeConfigChange } from '../helpers';
|
|
4
|
-
export const handleProjectMapNodeUpdate = async (body) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const parsed = ProjectMapNodeUpdateDefinition.schema.safeParse(body);
|
|
7
|
-
if (!parsed.success) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const tags = [];
|
|
11
|
-
tags.push(...buildProjectMapNodePaths(parsed.data.path));
|
|
12
|
-
tags.push(...buildProjectMapNodePaths(parsed.data.previous_path));
|
|
13
|
-
const config = getServerConfig();
|
|
14
|
-
if ((_a = config.experimental) === null || _a === void 0 ? void 0 : _a.edgeCompositions) {
|
|
15
|
-
await processEdgeConfigChange({
|
|
16
|
-
source_url: parsed.data.path,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
tags,
|
|
21
|
-
};
|
|
22
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { RedirectDeleteDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { getServerConfig } from '../../config/helpers';
|
|
3
|
-
import { processEdgeConfigChange, processRedirectChange } from '../helpers';
|
|
4
|
-
export const handleRedirectDelete = async (body) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const parsed = RedirectDeleteDefinition.schema.safeParse(body);
|
|
7
|
-
if (!parsed.success) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const config = getServerConfig();
|
|
11
|
-
if ((_a = config.experimental) === null || _a === void 0 ? void 0 : _a.edgeRedirects) {
|
|
12
|
-
await processEdgeConfigChange(parsed.data);
|
|
13
|
-
}
|
|
14
|
-
return processRedirectChange(parsed.data.source_url);
|
|
15
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { RedirectInsertDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { getServerConfig } from '../../config/helpers';
|
|
3
|
-
import { processEdgeConfigChange, processRedirectChange } from '../helpers';
|
|
4
|
-
export const handleRedirectInsert = async (body) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const parsed = RedirectInsertDefinition.schema.safeParse(body);
|
|
7
|
-
if (!parsed.success) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const config = getServerConfig();
|
|
11
|
-
if ((_a = config.experimental) === null || _a === void 0 ? void 0 : _a.edgeRedirects) {
|
|
12
|
-
await processEdgeConfigChange(parsed.data);
|
|
13
|
-
}
|
|
14
|
-
return processRedirectChange(parsed.data.source_url);
|
|
15
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { RedirectUpdateDefinition } from '@uniformdev/webhooks';
|
|
2
|
-
import { getServerConfig } from '../../config/helpers';
|
|
3
|
-
import { processEdgeConfigChange, processRedirectChange } from '../helpers';
|
|
4
|
-
export const handleRedirectUpdate = async (body) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const parsed = RedirectUpdateDefinition.schema.safeParse(body);
|
|
7
|
-
if (!parsed.success) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const config = getServerConfig();
|
|
11
|
-
if ((_a = config.experimental) === null || _a === void 0 ? void 0 : _a.edgeRedirects) {
|
|
12
|
-
await processEdgeConfigChange(parsed.data);
|
|
13
|
-
}
|
|
14
|
-
return processRedirectChange(parsed.data.source_url);
|
|
15
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { removeUniformCookie, setUniformCookie } from '../cookie';
|
|
3
|
-
import { useUniformContext } from './useUniformContext';
|
|
4
|
-
/**
|
|
5
|
-
* Indicates whether or not a user has provided consent, and provides a function to toggle consent.
|
|
6
|
-
*/
|
|
7
|
-
export const useToggleConsent = () => {
|
|
8
|
-
const { cookieValue } = useUniformContext();
|
|
9
|
-
const hasConsent = !!cookieValue;
|
|
10
|
-
return {
|
|
11
|
-
consent: hasConsent,
|
|
12
|
-
toggleConsent: () => {
|
|
13
|
-
if (hasConsent) {
|
|
14
|
-
removeUniformCookie();
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
setUniformCookie('~~');
|
|
18
|
-
}
|
|
19
|
-
window.location.reload();
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useUniformContext: () => import("../components/UniformContext").UniformContextProps;
|
package/dist/models/index.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ComponentInstance, ComponentParameter } from '@uniformdev/canvas';
|
|
2
|
-
export interface TestComponent {
|
|
3
|
-
slots?: {
|
|
4
|
-
test?: ComponentInstance[];
|
|
5
|
-
};
|
|
6
|
-
parameters: {
|
|
7
|
-
test?: ComponentParameter<string | undefined>;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export interface PersonalizeComponent {
|
|
11
|
-
slots?: {
|
|
12
|
-
pz?: ComponentInstance[];
|
|
13
|
-
};
|
|
14
|
-
parameters: {
|
|
15
|
-
trackingEventName?: ComponentParameter<string>;
|
|
16
|
-
count?: ComponentParameter<string | number>;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
export type SeenUniformComponent = SeenPersonalizationComponent | SeenTestComponent;
|
|
20
|
-
export interface SeenPersonalizationComponent {
|
|
21
|
-
id: string;
|
|
22
|
-
type: 'personalization';
|
|
23
|
-
variants: string[];
|
|
24
|
-
control: boolean;
|
|
25
|
-
}
|
|
26
|
-
export interface SeenTestComponent {
|
|
27
|
-
id: string;
|
|
28
|
-
type: 'test';
|
|
29
|
-
variant: string | undefined;
|
|
30
|
-
}
|
package/dist/models/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const componentStore: import("./createComponentStore").ComponentStore;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ComponentProps } from '../components/UniformComponent';
|
|
3
|
-
export declare const NOT_IMPLEMENTED_COMPONENT = "__not_implemented__";
|
|
4
|
-
export declare const createComponentStore: () => ComponentStore;
|
|
5
|
-
export type ComponentStore = {
|
|
6
|
-
register: (options: {
|
|
7
|
-
type: string;
|
|
8
|
-
variantId?: string;
|
|
9
|
-
component: React.ComponentType<ComponentProps<any>>;
|
|
10
|
-
}) => void;
|
|
11
|
-
get: (type: string, variantId?: string) => React.ComponentType<ComponentProps<any>> | undefined;
|
|
12
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getTypeWithVariant } from './getTypeWithVariant';
|
|
2
|
-
export const NOT_IMPLEMENTED_COMPONENT = '__not_implemented__';
|
|
3
|
-
export const createComponentStore = () => {
|
|
4
|
-
const components = new Map();
|
|
5
|
-
return {
|
|
6
|
-
register: ({ type, component, variantId }) => {
|
|
7
|
-
components.set(getTypeWithVariant(type, variantId), component);
|
|
8
|
-
},
|
|
9
|
-
get: (type, variantId) => {
|
|
10
|
-
return components.get(getTypeWithVariant(type, variantId));
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { type ComponentInstance } from '@uniformdev/canvas';
|
|
3
|
-
import { ComponentProps } from '../components/UniformComponent';
|
|
4
|
-
import { ComponentStore } from './createComponentStore';
|
|
5
|
-
type RenderComponentResolver = (component: ComponentInstance) => React.ComponentType<ComponentProps<any>> | null;
|
|
6
|
-
export declare const createComponentStoreResolver: (options: {
|
|
7
|
-
store: ComponentStore;
|
|
8
|
-
}) => RenderComponentResolver;
|
|
9
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { DefaultNotImplementedComponent } from '../components/DefaultNotImplementedComponent';
|
|
2
|
-
import { getTypeWithVariant } from './getTypeWithVariant';
|
|
3
|
-
export const createComponentStoreResolver = ({ store }) => {
|
|
4
|
-
return (component) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const resolved = (_a = store.get(getTypeWithVariant(component.type, component.variant))) !== null && _a !== void 0 ? _a : store.get(getTypeWithVariant(component.type));
|
|
7
|
-
return resolved || DefaultNotImplementedComponent;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getTypeWithVariant: (type: string, variantId?: string) => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const getTypeWithVariant = (type, variantId) => `${type}${variantId ? `__${variantId}` : ''}`;
|