@decocms/nextjs 8.5.1 → 8.6.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 (46) hide show
  1. package/README.md +81 -14
  2. package/dist/assignments.d.ts +95 -0
  3. package/dist/assignments.d.ts.map +1 -0
  4. package/dist/assignments.js +229 -0
  5. package/dist/assignments.js.map +1 -0
  6. package/dist/draft.d.ts +9 -7
  7. package/dist/draft.d.ts.map +1 -1
  8. package/dist/draft.js +10 -8
  9. package/dist/draft.js.map +1 -1
  10. package/dist/drafts.d.ts +29 -60
  11. package/dist/drafts.d.ts.map +1 -1
  12. package/dist/drafts.js +38 -117
  13. package/dist/drafts.js.map +1 -1
  14. package/dist/index.d.ts +5 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +5 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/instrumentation/index.d.ts +1 -1
  19. package/dist/instrumentation/index.js +3 -3
  20. package/dist/instrumentation/index.js.map +1 -1
  21. package/dist/proxy/index.d.ts +134 -30
  22. package/dist/proxy/index.d.ts.map +1 -1
  23. package/dist/proxy/index.js +169 -37
  24. package/dist/proxy/index.js.map +1 -1
  25. package/dist/server/index.d.ts +59 -20
  26. package/dist/server/index.d.ts.map +1 -1
  27. package/dist/server/index.js +129 -25
  28. package/dist/server/index.js.map +1 -1
  29. package/dist/server/slot.d.ts +19 -4
  30. package/dist/server/slot.d.ts.map +1 -1
  31. package/dist/server/slot.js +3 -9
  32. package/dist/server/slot.js.map +1 -1
  33. package/dist/visitor.d.ts +16 -0
  34. package/dist/visitor.d.ts.map +1 -0
  35. package/dist/visitor.js +16 -0
  36. package/dist/visitor.js.map +1 -0
  37. package/package.json +3 -3
  38. package/src/assignments.ts +278 -0
  39. package/src/draft.ts +10 -8
  40. package/src/drafts.ts +38 -126
  41. package/src/index.ts +5 -2
  42. package/src/instrumentation/index.ts +3 -3
  43. package/src/proxy/index.ts +269 -56
  44. package/src/server/index.ts +152 -33
  45. package/src/server/slot.ts +18 -5
  46. package/src/visitor.ts +16 -0
package/dist/drafts.d.ts CHANGED
@@ -1,67 +1,33 @@
1
1
  /**
2
- * Which hosts may render drafts: v7's allowlist (`@decocms/blocks` 7.x
3
- * `cms/draftSource.ts`: `readAllowedHosts`, `isDraftHostAllowed`,
4
- * `isDraftPreviewEnabled`), ported as is. v7 read its override from the
5
- * `DECO_ALLOWED_PREVIEW_HOSTS` variable; here it is the `previewHosts` option,
6
- * and the site passes the same options to the proxy (`decideDraft`) and to
7
- * its pages (`bindDraft`).
2
+ * Which hosts may render drafts: the ones the CMS allows (`cms.readVersion`):
3
+ * the addresses Studio writes into the current release's metadata, plus
4
+ * `createCMS`'s `preview.hosts`; every host while the site has published no
5
+ * list, or with no `site` and no `preview.hosts`. The site declares nothing
6
+ * here (PO 2026-10-22). The proxy
7
+ * (`decideDraft`) and the pages (`bindDraft`) ask the same CMS.
8
8
  *
9
- * - The site's own preview hosts: the ones it declares, in the `CMS` block or
10
- * as `createCMS({ preview: { hosts } })` (matched as `cms.draftPointer`
11
- * matches them). A site that declares none has none, as in v7: blocks'
12
- * own default (every host) doesn't count as a declaration.
13
- * - The hosts Deco runs the site on, named after the site and always added:
14
- * `<site>.deco.site` and `<site>.deco-cx.workers.dev`, exact.
15
- * - `previewHosts: [...]` replaces the site's own list (the inferred hosts are
16
- * still added); `previewHosts: "none"` turns previews off on every host.
17
- *
18
- * Hosts compare exactly, lowercased, port included (`localhost:3000`). The
19
- * host is the one the visitor asked for: `x-forwarded-host` behind a proxy,
20
- * else `host`.
9
+ * The host is the one the visitor asked for: `x-forwarded-host` behind a
10
+ * proxy, else `host`.
21
11
  *
22
12
  * The draft itself is the capability: a host check only bounds where a draft
23
13
  * link works. A request the check refuses gets the release, never an error.
24
14
  *
15
+ * What a link carries is a version, as `cms.readVersion` reads it: a draft
16
+ * pointer, or a published release's commit SHA (Studio's "Preview this
17
+ * version"), with the preview's moment and switched tests and campaigns
18
+ * (`__at`, `__test`, `__campaign`; `parseVersion` from `@decocms/blocks`).
19
+ * Both pass the same host check: a visitor on the live site never picks a
20
+ * version.
21
+ *
25
22
  * No React, no Next.js and no module state: the proxy and the pages share it.
26
23
  */
27
- import { type CMS, type RequestLike } from "@decocms/blocks";
28
- export interface PreviewPolicy {
29
- /** The site's name: `<site>.deco.site` and `<site>.deco-cx.workers.dev` may preview. */
30
- site?: string;
31
- /** Replaces the `CMS` block's preview hosts; `"none"` turns previews off everywhere. */
32
- previewHosts?: readonly string[] | "none";
33
- }
34
- /** The hosts Deco runs `site` on, which may always preview (unless previews are off). */
35
- export declare function inferredPreviewHosts(site: string | undefined): string[];
36
- /**
37
- * Whether `host` may preview without asking the CMS: `true` (an override or
38
- * inferred host), `false` (previews off, or the override leaves it out), or
39
- * `"cms"` when only the site's declared preview hosts can say (none declared:
40
- * `false`, see {@link declaresPreviewHosts}).
41
- */
42
- export declare function previewHostDecision(host: string, policy: PreviewPolicy): boolean | "cms";
43
- /**
44
- * Whether any host may preview (v7's `isDraftPreviewEnabled`): a page checks
45
- * it before it reads the request's headers, so a site with previews off never
46
- * turns a static page dynamic. `false` for `previewHosts: "none"`; `true` with
47
- * a site name or an override list; otherwise whether the site declares
48
- * preview hosts and they allow any.
49
- */
50
- export declare function isDraftPreviewEnabled(cms: Pick<CMS, "settings" | "forRelease">, policy: PreviewPolicy): Promise<boolean>;
51
- /**
52
- * Whether the site declares its own preview hosts: in the `CMS` block, or as
53
- * `createCMS`'s `preview.hosts`. When it declares none, `cms.settings()`
54
- * reports blocks' default, every host (`["*"]`), which v7 never had: there,
55
- * a site without a list previewed only on its Deco hosts. The saved `CMS`
56
- * block tells an explicit `["*"]` from that default.
57
- */
58
- export declare function declaresPreviewHosts(cms: Pick<CMS, "settings" | "forRelease">): Promise<boolean>;
24
+ import { type CMS, type RequestLike, type RequestVersion } from "@decocms/blocks";
59
25
  /**
60
- * The pointer a request carries, as `@decocms/blocks` reads it: `?__draft=`
61
- * first, then the draft cookie; `null` for `?__draft=off` and for a value
62
- * that doesn't parse.
26
+ * What a request's Studio link asks for, as `@decocms/blocks` reads it:
27
+ * `?__draft=` first, then the draft cookie; `null` for `?__draft=off` and
28
+ * for a value that doesn't parse.
63
29
  */
64
- export declare function readDraftPointer(request: RequestLike): string | null;
30
+ export declare function readDraftVersion(request: RequestLike): RequestVersion | null;
65
31
  /** Whether the request carries a draft signal at all: without one the CMS is never asked. */
66
32
  export declare function hasDraftSignal(request: RequestLike): boolean;
67
33
  /** The host the visitor asked for: the first `x-forwarded-host`, else `host`. */
@@ -76,11 +42,11 @@ export declare function requestHost(headers: {
76
42
  */
77
43
  export declare function requestLike(headers: Headers, pathAndQuery: string, fallbackHost?: string): RequestLike | null;
78
44
  /**
79
- * The draft `request` renders under `policy`, or `null` for the release: the
80
- * pointer it carries, on a host the policy (or, when only it can say, the
81
- * `CMS` block) allows.
45
+ * What `request` renders (a draft pointer or a release's commit SHA, with
46
+ * the preview's moment and switched tests and campaigns), or `null` for the
47
+ * current release: what its Studio link carries, on a host the CMS allows.
82
48
  */
83
- export declare function allowedDraft(cms: Pick<CMS, "draftPointer" | "settings" | "forRelease">, request: RequestLike, policy: PreviewPolicy): Promise<string | null>;
49
+ export declare function allowedDraft(cms: Pick<CMS, "readVersion">, request: RequestLike): Promise<RequestVersion | null>;
84
50
  /**
85
51
  * The draft cookie: the same `Set-Cookie` `cms.draftCookie` writes (a test
86
52
  * holds the two together). Studio frames the site cross-site, hence
@@ -89,6 +55,9 @@ export declare function allowedDraft(cms: Pick<CMS, "draftPointer" | "settings"
89
55
  export declare function draftCookie(value: string, extra?: string[]): string;
90
56
  /** Whether the request ends a preview (`?__draft=off`): the cookie goes on any host. */
91
57
  export declare function endsPreview(request: RequestLike): boolean;
92
- /** Whether the request's own `?__draft=` carries `pointer` (a draft link, not the cookie). */
93
- export declare function fromDraftLink(request: RequestLike, pointer: string): boolean;
58
+ /**
59
+ * The request's own `?__draft=` value when it is a version (a draft link,
60
+ * not the cookie): the value its cookie stores; `null` otherwise.
61
+ */
62
+ export declare function draftLinkValue(request: RequestLike): string | null;
94
63
  //# sourceMappingURL=drafts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../src/drafts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,KAAK,GAAG,EAAqB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGhF,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;CAC3C;AAED,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAGvE;AAOD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,GAAG,KAAK,CAQxF;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY,CAAC,EACzC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CAUlB;AA8BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAMpE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAI5D;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAIxF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,WAAW,GAAG,IAAI,CAQpB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC,EAC1D,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,MAAM,CAUvE;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E"}
1
+ {"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../src/drafts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,KAAK,GAAG,EAAgB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA2BhG;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAM5E;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAI5D;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAIxF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,WAAW,GAAG,IAAI,CAQpB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAIhC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,MAAM,CAUvE;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAGlE"}
package/dist/drafts.js CHANGED
@@ -1,100 +1,28 @@
1
1
  /**
2
- * Which hosts may render drafts: v7's allowlist (`@decocms/blocks` 7.x
3
- * `cms/draftSource.ts`: `readAllowedHosts`, `isDraftHostAllowed`,
4
- * `isDraftPreviewEnabled`), ported as is. v7 read its override from the
5
- * `DECO_ALLOWED_PREVIEW_HOSTS` variable; here it is the `previewHosts` option,
6
- * and the site passes the same options to the proxy (`decideDraft`) and to
7
- * its pages (`bindDraft`).
2
+ * Which hosts may render drafts: the ones the CMS allows (`cms.readVersion`):
3
+ * the addresses Studio writes into the current release's metadata, plus
4
+ * `createCMS`'s `preview.hosts`; every host while the site has published no
5
+ * list, or with no `site` and no `preview.hosts`. The site declares nothing
6
+ * here (PO 2026-10-22). The proxy
7
+ * (`decideDraft`) and the pages (`bindDraft`) ask the same CMS.
8
8
  *
9
- * - The site's own preview hosts: the ones it declares, in the `CMS` block or
10
- * as `createCMS({ preview: { hosts } })` (matched as `cms.draftPointer`
11
- * matches them). A site that declares none has none, as in v7: blocks'
12
- * own default (every host) doesn't count as a declaration.
13
- * - The hosts Deco runs the site on, named after the site and always added:
14
- * `<site>.deco.site` and `<site>.deco-cx.workers.dev`, exact.
15
- * - `previewHosts: [...]` replaces the site's own list (the inferred hosts are
16
- * still added); `previewHosts: "none"` turns previews off on every host.
17
- *
18
- * Hosts compare exactly, lowercased, port included (`localhost:3000`). The
19
- * host is the one the visitor asked for: `x-forwarded-host` behind a proxy,
20
- * else `host`.
9
+ * The host is the one the visitor asked for: `x-forwarded-host` behind a
10
+ * proxy, else `host`.
21
11
  *
22
12
  * The draft itself is the capability: a host check only bounds where a draft
23
13
  * link works. A request the check refuses gets the release, never an error.
24
14
  *
15
+ * What a link carries is a version, as `cms.readVersion` reads it: a draft
16
+ * pointer, or a published release's commit SHA (Studio's "Preview this
17
+ * version"), with the preview's moment and switched tests and campaigns
18
+ * (`__at`, `__test`, `__campaign`; `parseVersion` from `@decocms/blocks`).
19
+ * Both pass the same host check: a visitor on the live site never picks a
20
+ * version.
21
+ *
25
22
  * No React, no Next.js and no module state: the proxy and the pages share it.
26
23
  */
27
- import { parseDraftPointer } from "@decocms/blocks";
24
+ import { parseVersion } from "@decocms/blocks";
28
25
  import { DRAFT_COOKIE, DRAFT_PARAM } from "./draft.js";
29
- /** The hosts Deco runs `site` on, which may always preview (unless previews are off). */
30
- export function inferredPreviewHosts(site) {
31
- const s = (site ?? "").trim().toLowerCase();
32
- return s ? [`${s}.deco.site`, `${s}.deco-cx.workers.dev`] : [];
33
- }
34
- function overrideHosts(policy) {
35
- if (policy.previewHosts === "none")
36
- return ["none"];
37
- return (policy.previewHosts ?? []).map((h) => h.trim().toLowerCase()).filter(Boolean);
38
- }
39
- /**
40
- * Whether `host` may preview without asking the CMS: `true` (an override or
41
- * inferred host), `false` (previews off, or the override leaves it out), or
42
- * `"cms"` when only the site's declared preview hosts can say (none declared:
43
- * `false`, see {@link declaresPreviewHosts}).
44
- */
45
- export function previewHostDecision(host, policy) {
46
- const override = overrideHosts(policy);
47
- if (override.includes("none"))
48
- return false;
49
- const h = host.trim().toLowerCase();
50
- if (h === "")
51
- return false;
52
- if (inferredPreviewHosts(policy.site).includes(h))
53
- return true;
54
- if (policy.previewHosts !== undefined)
55
- return override.includes(h);
56
- return "cms";
57
- }
58
- /**
59
- * Whether any host may preview (v7's `isDraftPreviewEnabled`): a page checks
60
- * it before it reads the request's headers, so a site with previews off never
61
- * turns a static page dynamic. `false` for `previewHosts: "none"`; `true` with
62
- * a site name or an override list; otherwise whether the site declares
63
- * preview hosts and they allow any.
64
- */
65
- export async function isDraftPreviewEnabled(cms, policy) {
66
- const override = overrideHosts(policy);
67
- if (override.includes("none"))
68
- return false;
69
- if (inferredPreviewHosts(policy.site).length > 0)
70
- return true;
71
- if (policy.previewHosts !== undefined)
72
- return override.length > 0;
73
- return (await declaresPreviewHosts(cms)) && (await cms.settings()).preview.hosts.length > 0;
74
- }
75
- /**
76
- * Whether the site declares its own preview hosts: in the `CMS` block, or as
77
- * `createCMS`'s `preview.hosts`. When it declares none, `cms.settings()`
78
- * reports blocks' default, every host (`["*"]`), which v7 never had: there,
79
- * a site without a list previewed only on its Deco hosts. The saved `CMS`
80
- * block tells an explicit `["*"]` from that default.
81
- */
82
- export async function declaresPreviewHosts(cms) {
83
- const { hosts } = (await cms.settings()).preview;
84
- if (hosts.length !== 1 || hosts[0] !== "*")
85
- return true;
86
- try {
87
- const [block] = await cms.forRelease().resolve("CMS", { run: false });
88
- const preview = isRecord(block) ? block.preview : undefined;
89
- return isRecord(preview) && ("hosts" in preview || "__resolveType" in preview);
90
- }
91
- catch {
92
- return false;
93
- }
94
- }
95
- function isRecord(value) {
96
- return typeof value === "object" && value !== null && !Array.isArray(value);
97
- }
98
26
  const DRAFT_OFF = "off";
99
27
  function draftParam(request) {
100
28
  try {
@@ -121,18 +49,18 @@ function readCookie(header, name) {
121
49
  return null;
122
50
  }
123
51
  /**
124
- * The pointer a request carries, as `@decocms/blocks` reads it: `?__draft=`
125
- * first, then the draft cookie; `null` for `?__draft=off` and for a value
126
- * that doesn't parse.
52
+ * What a request's Studio link asks for, as `@decocms/blocks` reads it:
53
+ * `?__draft=` first, then the draft cookie; `null` for `?__draft=off` and
54
+ * for a value that doesn't parse.
127
55
  */
128
- export function readDraftPointer(request) {
56
+ export function readDraftVersion(request) {
129
57
  const param = draftParam(request);
130
58
  if (param === DRAFT_OFF)
131
59
  return null;
132
- if (param && parseDraftPointer(param) !== null)
133
- return param;
134
- const cookie = readCookie(request.headers.get("cookie"), DRAFT_COOKIE);
135
- return cookie && parseDraftPointer(cookie) !== null ? cookie : null;
60
+ const fromLink = param ? parseVersion(param) : null;
61
+ if (fromLink !== null)
62
+ return fromLink;
63
+ return parseVersion(readCookie(request.headers.get("cookie"), DRAFT_COOKIE));
136
64
  }
137
65
  /** Whether the request carries a draft signal at all: without one the CMS is never asked. */
138
66
  export function hasDraftSignal(request) {
@@ -162,26 +90,15 @@ export function requestLike(headers, pathAndQuery, fallbackHost) {
162
90
  }
163
91
  }
164
92
  /**
165
- * The draft `request` renders under `policy`, or `null` for the release: the
166
- * pointer it carries, on a host the policy (or, when only it can say, the
167
- * `CMS` block) allows.
93
+ * What `request` renders (a draft pointer or a release's commit SHA, with
94
+ * the preview's moment and switched tests and campaigns), or `null` for the
95
+ * current release: what its Studio link carries, on a host the CMS allows.
168
96
  */
169
- export async function allowedDraft(cms, request, policy) {
170
- const pointer = readDraftPointer(request);
171
- if (pointer === null)
97
+ export async function allowedDraft(cms, request) {
98
+ const read = readDraftVersion(request);
99
+ if (read === null)
172
100
  return null;
173
- let host;
174
- try {
175
- host = new URL(request.url).host;
176
- }
177
- catch {
178
- return null;
179
- }
180
- const decision = previewHostDecision(host, policy);
181
- const allowed = decision === "cms"
182
- ? (await declaresPreviewHosts(cms)) && (await cms.draftPointer(request)) !== null
183
- : decision;
184
- return allowed ? pointer : null;
101
+ return (await cms.readVersion(request)) === null ? null : read;
185
102
  }
186
103
  /**
187
104
  * The draft cookie: the same `Set-Cookie` `cms.draftCookie` writes (a test
@@ -203,8 +120,12 @@ export function draftCookie(value, extra = []) {
203
120
  export function endsPreview(request) {
204
121
  return draftParam(request) === DRAFT_OFF;
205
122
  }
206
- /** Whether the request's own `?__draft=` carries `pointer` (a draft link, not the cookie). */
207
- export function fromDraftLink(request, pointer) {
208
- return draftParam(request) === pointer;
123
+ /**
124
+ * The request's own `?__draft=` value when it is a version (a draft link,
125
+ * not the cookie): the value its cookie stores; `null` otherwise.
126
+ */
127
+ export function draftLinkValue(request) {
128
+ const param = draftParam(request);
129
+ return param && param !== DRAFT_OFF && parseVersion(param) !== null ? param : null;
209
130
  }
210
131
  //# sourceMappingURL=drafts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drafts.js","sourceRoot":"","sources":["../src/drafts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drafts.js","sourceRoot":"","sources":["../src/drafts.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,7 +11,8 @@
11
11
  * Outside Studio's frame, "." opens the page in Studio's editor.
12
12
  * - `StudioPage`: rendered inside each CMS page, `<StudioPage pathTemplate={page.path} />`,
13
13
  * tells the bridge which page "." opens (the root layout doesn't re-render per page).
14
- * - `DRAFT_PARAM`, `DRAFT_COOKIE`, `DRAFT_HEADER`, `draftResponseHeaders`,
14
+ * - `DRAFT_PARAM`, `DRAFT_COOKIE`, `VERSION_HEADER`, `draftResponseHeaders`,
15
+ * `VISITOR_HEADER`, `ASSIGNMENTS_HEADER`,
15
16
  * `STUDIO_ORIGINS`, `STUDIO_FRAME_ANCESTORS`, `isStudioOrigin`: for a site
16
17
  * that needs them in its own code (a route that sets its own headers, a CSP
17
18
  * it writes itself). The package's own copy: it never imports
@@ -22,8 +23,10 @@
22
23
  * loads React.
23
24
  */
24
25
  export { DraftBadge, StudioPage, type StudioPageInfo } from "@decocms/blocks/preview";
26
+ export { ASSIGNMENTS_HEADER } from "./assignments.ts";
25
27
  export { DraftPreviewIndicator, type DraftPreviewIndicatorProps, } from "./DraftPreviewIndicator.tsx";
26
- export { DRAFT_COOKIE, DRAFT_HEADER, DRAFT_PARAM, draftResponseHeaders } from "./draft.ts";
28
+ export { DRAFT_COOKIE, DRAFT_PARAM, draftResponseHeaders, VERSION_HEADER } from "./draft.ts";
27
29
  export { StudioBridge, type StudioBridgeProps } from "./StudioBridge.ts";
28
30
  export { isStudioOrigin, STUDIO_FRAME_ANCESTORS, STUDIO_ORIGINS } from "./studio.ts";
31
+ export { VISITOR_HEADER } from "./visitor.ts";
29
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -11,7 +11,8 @@
11
11
  * Outside Studio's frame, "." opens the page in Studio's editor.
12
12
  * - `StudioPage`: rendered inside each CMS page, `<StudioPage pathTemplate={page.path} />`,
13
13
  * tells the bridge which page "." opens (the root layout doesn't re-render per page).
14
- * - `DRAFT_PARAM`, `DRAFT_COOKIE`, `DRAFT_HEADER`, `draftResponseHeaders`,
14
+ * - `DRAFT_PARAM`, `DRAFT_COOKIE`, `VERSION_HEADER`, `draftResponseHeaders`,
15
+ * `VISITOR_HEADER`, `ASSIGNMENTS_HEADER`,
15
16
  * `STUDIO_ORIGINS`, `STUDIO_FRAME_ANCESTORS`, `isStudioOrigin`: for a site
16
17
  * that needs them in its own code (a route that sets its own headers, a CSP
17
18
  * it writes itself). The package's own copy: it never imports
@@ -22,8 +23,10 @@
22
23
  * loads React.
23
24
  */
24
25
  export { DraftBadge, StudioPage } from "@decocms/blocks/preview";
26
+ export { ASSIGNMENTS_HEADER } from "./assignments.js";
25
27
  export { DraftPreviewIndicator, } from "./DraftPreviewIndicator.js";
26
- export { DRAFT_COOKIE, DRAFT_HEADER, DRAFT_PARAM, draftResponseHeaders } from "./draft.js";
28
+ export { DRAFT_COOKIE, DRAFT_PARAM, draftResponseHeaders, VERSION_HEADER } from "./draft.js";
27
29
  export { StudioBridge } from "./StudioBridge.js";
28
30
  export { isStudioOrigin, STUDIO_FRAME_ANCESTORS, STUDIO_ORIGINS } from "./studio.js";
31
+ export { VISITOR_HEADER } from "./visitor.js";
29
32
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAuB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,qBAAqB,GAEtB,MAAM,4BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAuB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,qBAAqB,GAEtB,MAAM,4BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -24,7 +24,7 @@
24
24
  * Labels: `http.route` is Next's route template (`unmatched` when Next names
25
25
  * none); RSC requests count under their page's route, as the requests they
26
26
  * are. `cache` is `DRAFT` for a draft render (the proxy forwarded
27
- * `x-deco-draft`, or the request was rewritten onto `/_draft`) and otherwise
27
+ * `x-deco-version`, or the request was rewritten onto `/_draft`) and otherwise
28
28
  * `BYPASS`: Next decides its cache (`x-nextjs-cache`) on the response, which
29
29
  * the span never sees.
30
30
  */
@@ -24,12 +24,12 @@
24
24
  * Labels: `http.route` is Next's route template (`unmatched` when Next names
25
25
  * none); RSC requests count under their page's route, as the requests they
26
26
  * are. `cache` is `DRAFT` for a draft render (the proxy forwarded
27
- * `x-deco-draft`, or the request was rewritten onto `/_draft`) and otherwise
27
+ * `x-deco-version`, or the request was rewritten onto `/_draft`) and otherwise
28
28
  * `BYPASS`: Next decides its cache (`x-nextjs-cache`) on the response, which
29
29
  * the span never sees.
30
30
  */
31
31
  import { recordServerRequest } from "@decocms/blocks/metrics";
32
- import { DRAFT_HEADER, DRAFT_ROUTE_PREFIX } from "../draft.js";
32
+ import { DRAFT_ROUTE_PREFIX, VERSION_HEADER } from "../draft.js";
33
33
  /** The span type Next.js gives its one root span per request. */
34
34
  const ROOT_SPAN_TYPE = "BaseServer.handleRequest";
35
35
  const REGISTERED = Symbol.for("decocms.nextjs.instrumentation");
@@ -185,7 +185,7 @@ function draftPropagator(DRAFT) {
185
185
  inject() { },
186
186
  extract(context, carrier, getter) {
187
187
  try {
188
- const value = getter.get(carrier, DRAFT_HEADER);
188
+ const value = getter.get(carrier, VERSION_HEADER);
189
189
  return value !== undefined && value !== "" ? context.setValue(DRAFT, true) : context;
190
190
  }
191
191
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instrumentation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instrumentation/index.ts"],"names":[],"mappings":"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"}