@prismicio/next 2.2.3-pr.136.19d76d2 → 2.2.4-pr.114.343dd9b

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 (79) hide show
  1. package/dist/PrismicNextLink.d.cts +3 -3
  2. package/dist/PrismicNextLink.d.ts +3 -3
  3. package/dist/cacheTagPrismicPages.cjs +23 -0
  4. package/dist/cacheTagPrismicPages.cjs.map +1 -0
  5. package/dist/cacheTagPrismicPages.d.cts +19 -0
  6. package/dist/cacheTagPrismicPages.d.cts.map +1 -0
  7. package/dist/cacheTagPrismicPages.d.ts +19 -0
  8. package/dist/cacheTagPrismicPages.d.ts.map +1 -0
  9. package/dist/cacheTagPrismicPages.js +22 -0
  10. package/dist/cacheTagPrismicPages.js.map +1 -0
  11. package/dist/enableAutoPreviews.cjs +2 -16
  12. package/dist/enableAutoPreviews.cjs.map +1 -1
  13. package/dist/enableAutoPreviews.d.cts.map +1 -1
  14. package/dist/enableAutoPreviews.d.ts.map +1 -1
  15. package/dist/enableAutoPreviews.js +2 -15
  16. package/dist/enableAutoPreviews.js.map +1 -1
  17. package/dist/exitPreview.cjs +5 -2
  18. package/dist/exitPreview.cjs.map +1 -1
  19. package/dist/exitPreview.d.cts +1 -1
  20. package/dist/exitPreview.d.cts.map +1 -1
  21. package/dist/exitPreview.d.ts +1 -1
  22. package/dist/exitPreview.d.ts.map +1 -1
  23. package/dist/exitPreview.js +4 -2
  24. package/dist/exitPreview.js.map +1 -1
  25. package/dist/getPreviewRef.cjs +38 -0
  26. package/dist/getPreviewRef.cjs.map +1 -0
  27. package/dist/getPreviewRef.d.cts +22 -0
  28. package/dist/getPreviewRef.d.cts.map +1 -0
  29. package/dist/getPreviewRef.d.ts +22 -0
  30. package/dist/getPreviewRef.d.ts.map +1 -0
  31. package/dist/getPreviewRef.js +37 -0
  32. package/dist/getPreviewRef.js.map +1 -0
  33. package/dist/getPrismicCacheTags.cjs +31 -0
  34. package/dist/getPrismicCacheTags.cjs.map +1 -0
  35. package/dist/getPrismicCacheTags.d.cts +16 -0
  36. package/dist/getPrismicCacheTags.d.cts.map +1 -0
  37. package/dist/getPrismicCacheTags.d.ts +16 -0
  38. package/dist/getPrismicCacheTags.d.ts.map +1 -0
  39. package/dist/getPrismicCacheTags.js +30 -0
  40. package/dist/getPrismicCacheTags.js.map +1 -0
  41. package/dist/index.cjs +8 -0
  42. package/dist/index.d.cts +5 -1
  43. package/dist/index.d.ts +5 -1
  44. package/dist/index.js +5 -1
  45. package/dist/lib/devMsg.cjs +1 -1
  46. package/dist/lib/devMsg.cjs.map +1 -1
  47. package/dist/lib/devMsg.js +1 -1
  48. package/dist/lib/devMsg.js.map +1 -1
  49. package/dist/package.cjs +1 -1
  50. package/dist/package.js +1 -1
  51. package/dist/pages/SliceSimulator.cjs.map +1 -1
  52. package/dist/pages/SliceSimulator.d.cts +1 -1
  53. package/dist/pages/SliceSimulator.d.ts +1 -1
  54. package/dist/pages/SliceSimulator.js.map +1 -1
  55. package/dist/pages/exitPreview.cjs +1 -1
  56. package/dist/pages/exitPreview.cjs.map +1 -1
  57. package/dist/pages/exitPreview.d.cts +1 -1
  58. package/dist/pages/exitPreview.d.ts +1 -1
  59. package/dist/pages/exitPreview.js +1 -1
  60. package/dist/pages/exitPreview.js.map +1 -1
  61. package/dist/revalidatePrismicPages.cjs +20 -0
  62. package/dist/revalidatePrismicPages.cjs.map +1 -0
  63. package/dist/revalidatePrismicPages.d.cts +14 -0
  64. package/dist/revalidatePrismicPages.d.cts.map +1 -0
  65. package/dist/revalidatePrismicPages.d.ts +14 -0
  66. package/dist/revalidatePrismicPages.d.ts.map +1 -0
  67. package/dist/revalidatePrismicPages.js +19 -0
  68. package/dist/revalidatePrismicPages.js.map +1 -0
  69. package/package.json +11 -11
  70. package/src/cacheTagPrismicPages.ts +20 -0
  71. package/src/enableAutoPreviews.ts +4 -33
  72. package/src/exitPreview.ts +8 -2
  73. package/src/getPreviewRef.ts +51 -0
  74. package/src/getPrismicCacheTags.ts +46 -0
  75. package/src/index.ts +8 -0
  76. package/src/lib/devMsg.ts +1 -1
  77. package/src/pages/SliceSimulator.tsx +1 -1
  78. package/src/pages/exitPreview.ts +1 -1
  79. package/src/revalidatePrismicPages.ts +19 -0
package/dist/index.cjs CHANGED
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_exitPreview = require("./exitPreview.cjs");
3
3
  const require_PrismicPreview = require("./PrismicPreview.cjs");
4
4
  const require_PrismicNextLink = require("./PrismicNextLink.cjs");
5
+ const require_getPreviewRef = require("./getPreviewRef.cjs");
5
6
  const require_enableAutoPreviews = require("./enableAutoPreviews.cjs");
6
7
  const require_redirectToPreviewURL = require("./redirectToPreviewURL.cjs");
7
8
  const require_imgixLoader = require("./imgixLoader.cjs");
@@ -9,13 +10,20 @@ const require_PrismicNextImage = require("./PrismicNextImage.cjs");
9
10
  const require_getSlices = require("./getSlices.cjs");
10
11
  const require_SliceSimulator = require("./SliceSimulator.cjs");
11
12
  const require_createLocaleRedirect = require("./createLocaleRedirect.cjs");
13
+ const require_getPrismicCacheTags = require("./getPrismicCacheTags.cjs");
14
+ const require_cacheTagPrismicPages = require("./cacheTagPrismicPages.cjs");
15
+ const require_revalidatePrismicPages = require("./revalidatePrismicPages.cjs");
12
16
  exports.PrismicNextImage = require_PrismicNextImage.PrismicNextImage;
13
17
  exports.PrismicNextLink = require_PrismicNextLink.PrismicNextLink;
14
18
  exports.PrismicPreview = require_PrismicPreview.PrismicPreview;
15
19
  exports.SliceSimulator = require_SliceSimulator.SliceSimulator;
20
+ exports.cacheTagPrismicPages = require_cacheTagPrismicPages.cacheTagPrismicPages;
16
21
  exports.createLocaleRedirect = require_createLocaleRedirect.createLocaleRedirect;
17
22
  exports.enableAutoPreviews = require_enableAutoPreviews.enableAutoPreviews;
18
23
  exports.exitPreview = require_exitPreview.exitPreview;
24
+ exports.getPreviewRef = require_getPreviewRef.getPreviewRef;
25
+ exports.getPrismicCacheTags = require_getPrismicCacheTags.getPrismicCacheTags;
19
26
  exports.getSlices = require_getSlices.getSlices;
20
27
  exports.imgixLoader = require_imgixLoader.imgixLoader;
21
28
  exports.redirectToPreviewURL = require_redirectToPreviewURL.redirectToPreviewURL;
29
+ exports.revalidatePrismicPages = require_revalidatePrismicPages.revalidatePrismicPages;
package/dist/index.d.cts CHANGED
@@ -2,6 +2,7 @@ import { exitPreview } from "./exitPreview.cjs";
2
2
  import { PrismicPreview, PrismicPreviewProps } from "./PrismicPreview.cjs";
3
3
  import { PrismicNextLink, PrismicNextLinkProps } from "./PrismicNextLink.cjs";
4
4
  import { EnableAutoPreviewsConfig, enableAutoPreviews } from "./enableAutoPreviews.cjs";
5
+ import { getPreviewRef } from "./getPreviewRef.cjs";
5
6
  import { CreateClientConfig } from "./types.cjs";
6
7
  import { RedirectToPreviewURLConfig, redirectToPreviewURL } from "./redirectToPreviewURL.cjs";
7
8
  import { PrismicNextImage, PrismicNextImageProps } from "./PrismicNextImage.cjs";
@@ -9,4 +10,7 @@ import { SliceSimulator, SliceSimulatorParams, SliceSimulatorProps } from "./Sli
9
10
  import { getSlices } from "./getSlices.cjs";
10
11
  import { imgixLoader } from "./imgixLoader.cjs";
11
12
  import { CreateLocaleRedirectConfig, createLocaleRedirect } from "./createLocaleRedirect.cjs";
12
- export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, SliceSimulator, type SliceSimulatorParams, type SliceSimulatorProps, createLocaleRedirect, enableAutoPreviews, exitPreview, getSlices, imgixLoader, redirectToPreviewURL };
13
+ import { getPrismicCacheTags } from "./getPrismicCacheTags.cjs";
14
+ import { cacheTagPrismicPages } from "./cacheTagPrismicPages.cjs";
15
+ import { revalidatePrismicPages } from "./revalidatePrismicPages.cjs";
16
+ export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, SliceSimulator, type SliceSimulatorParams, type SliceSimulatorProps, cacheTagPrismicPages, createLocaleRedirect, enableAutoPreviews, exitPreview, getPreviewRef, getPrismicCacheTags, getSlices, imgixLoader, redirectToPreviewURL, revalidatePrismicPages };
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { exitPreview } from "./exitPreview.js";
2
2
  import { PrismicPreview, PrismicPreviewProps } from "./PrismicPreview.js";
3
3
  import { PrismicNextLink, PrismicNextLinkProps } from "./PrismicNextLink.js";
4
4
  import { EnableAutoPreviewsConfig, enableAutoPreviews } from "./enableAutoPreviews.js";
5
+ import { getPreviewRef } from "./getPreviewRef.js";
5
6
  import { CreateClientConfig } from "./types.js";
6
7
  import { RedirectToPreviewURLConfig, redirectToPreviewURL } from "./redirectToPreviewURL.js";
7
8
  import { PrismicNextImage, PrismicNextImageProps } from "./PrismicNextImage.js";
@@ -9,4 +10,7 @@ import { SliceSimulator, SliceSimulatorParams, SliceSimulatorProps } from "./Sli
9
10
  import { getSlices } from "./getSlices.js";
10
11
  import { imgixLoader } from "./imgixLoader.js";
11
12
  import { CreateLocaleRedirectConfig, createLocaleRedirect } from "./createLocaleRedirect.js";
12
- export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, SliceSimulator, type SliceSimulatorParams, type SliceSimulatorProps, createLocaleRedirect, enableAutoPreviews, exitPreview, getSlices, imgixLoader, redirectToPreviewURL };
13
+ import { getPrismicCacheTags } from "./getPrismicCacheTags.js";
14
+ import { cacheTagPrismicPages } from "./cacheTagPrismicPages.js";
15
+ import { revalidatePrismicPages } from "./revalidatePrismicPages.js";
16
+ export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, SliceSimulator, type SliceSimulatorParams, type SliceSimulatorProps, cacheTagPrismicPages, createLocaleRedirect, enableAutoPreviews, exitPreview, getPreviewRef, getPrismicCacheTags, getSlices, imgixLoader, redirectToPreviewURL, revalidatePrismicPages };
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { exitPreview } from "./exitPreview.js";
2
2
  import { PrismicPreview } from "./PrismicPreview.js";
3
3
  import { PrismicNextLink } from "./PrismicNextLink.js";
4
+ import { getPreviewRef } from "./getPreviewRef.js";
4
5
  import { enableAutoPreviews } from "./enableAutoPreviews.js";
5
6
  import { redirectToPreviewURL } from "./redirectToPreviewURL.js";
6
7
  import { imgixLoader } from "./imgixLoader.js";
@@ -8,4 +9,7 @@ import { PrismicNextImage } from "./PrismicNextImage.js";
8
9
  import { getSlices } from "./getSlices.js";
9
10
  import { SliceSimulator } from "./SliceSimulator.js";
10
11
  import { createLocaleRedirect } from "./createLocaleRedirect.js";
11
- export { PrismicNextImage, PrismicNextLink, PrismicPreview, SliceSimulator, createLocaleRedirect, enableAutoPreviews, exitPreview, getSlices, imgixLoader, redirectToPreviewURL };
12
+ import { getPrismicCacheTags } from "./getPrismicCacheTags.js";
13
+ import { cacheTagPrismicPages } from "./cacheTagPrismicPages.js";
14
+ import { revalidatePrismicPages } from "./revalidatePrismicPages.js";
15
+ export { PrismicNextImage, PrismicNextLink, PrismicPreview, SliceSimulator, cacheTagPrismicPages, createLocaleRedirect, enableAutoPreviews, exitPreview, getPreviewRef, getPrismicCacheTags, getSlices, imgixLoader, redirectToPreviewURL, revalidatePrismicPages };
@@ -4,7 +4,7 @@ const require_package = require("../package.cjs");
4
4
  * Returns a `prismic.dev/msg` URL for a given message slug.
5
5
  *
6
6
  * @example
7
- * ```ts
7
+ * ;```ts
8
8
  * devMsg("missing-param")
9
9
  * // => "https://prismic.dev/msg/next/v1.2.3/missing-param"
10
10
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"devMsg.cjs","names":["version"],"sources":["../../src/lib/devMsg.ts"],"sourcesContent":["import { version } from \"../../package.json\"\n\n/**\n * Returns a `prismic.dev/msg` URL for a given message slug.\n *\n * @example\n * \t```ts\n * \tdevMsg(\"missing-param\")\n * \t// => \"https://prismic.dev/msg/next/v1.2.3/missing-param\"\n * \t```\n *\n * @param slug - Slug for the message. This corresponds to a Markdown file in the Git repository's\n * `/messages` directory.\n * @returns The `prismic.dev/msg` URL for the given slug.\n */\nexport const devMsg = (slug: string): string => {\n\treturn `https://prismic.dev/msg/next/v${version}/${slug}`\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAa,UAAU,SAAyB;AAC/C,QAAO,iCAAiCA,gBAAAA,QAAQ,GAAG"}
1
+ {"version":3,"file":"devMsg.cjs","names":["version"],"sources":["../../src/lib/devMsg.ts"],"sourcesContent":["import { version } from \"../../package.json\"\n\n/**\n * Returns a `prismic.dev/msg` URL for a given message slug.\n *\n * @example\n * \t;```ts\n * \tdevMsg(\"missing-param\")\n * \t// => \"https://prismic.dev/msg/next/v1.2.3/missing-param\"\n * \t```\n *\n * @param slug - Slug for the message. This corresponds to a Markdown file in the Git repository's\n * `/messages` directory.\n * @returns The `prismic.dev/msg` URL for the given slug.\n */\nexport const devMsg = (slug: string): string => {\n\treturn `https://prismic.dev/msg/next/v${version}/${slug}`\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAa,UAAU,SAAyB;AAC/C,QAAO,iCAAiCA,gBAAAA,QAAQ,GAAG"}
@@ -4,7 +4,7 @@ import { version } from "../package.js";
4
4
  * Returns a `prismic.dev/msg` URL for a given message slug.
5
5
  *
6
6
  * @example
7
- * ```ts
7
+ * ;```ts
8
8
  * devMsg("missing-param")
9
9
  * // => "https://prismic.dev/msg/next/v1.2.3/missing-param"
10
10
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"devMsg.js","names":[],"sources":["../../src/lib/devMsg.ts"],"sourcesContent":["import { version } from \"../../package.json\"\n\n/**\n * Returns a `prismic.dev/msg` URL for a given message slug.\n *\n * @example\n * \t```ts\n * \tdevMsg(\"missing-param\")\n * \t// => \"https://prismic.dev/msg/next/v1.2.3/missing-param\"\n * \t```\n *\n * @param slug - Slug for the message. This corresponds to a Markdown file in the Git repository's\n * `/messages` directory.\n * @returns The `prismic.dev/msg` URL for the given slug.\n */\nexport const devMsg = (slug: string): string => {\n\treturn `https://prismic.dev/msg/next/v${version}/${slug}`\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAa,UAAU,SAAyB;AAC/C,QAAO,iCAAiC,QAAQ,GAAG"}
1
+ {"version":3,"file":"devMsg.js","names":[],"sources":["../../src/lib/devMsg.ts"],"sourcesContent":["import { version } from \"../../package.json\"\n\n/**\n * Returns a `prismic.dev/msg` URL for a given message slug.\n *\n * @example\n * \t;```ts\n * \tdevMsg(\"missing-param\")\n * \t// => \"https://prismic.dev/msg/next/v1.2.3/missing-param\"\n * \t```\n *\n * @param slug - Slug for the message. This corresponds to a Markdown file in the Git repository's\n * `/messages` directory.\n * @returns The `prismic.dev/msg` URL for the given slug.\n */\nexport const devMsg = (slug: string): string => {\n\treturn `https://prismic.dev/msg/next/v${version}/${slug}`\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAa,UAAU,SAAyB;AAC/C,QAAO,iCAAiC,QAAQ,GAAG"}
package/dist/package.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "2.2.3-pr.136.19d76d2";
2
+ var version = "2.2.4-pr.114.343dd9b";
3
3
  //#endregion
4
4
  Object.defineProperty(exports, "version", {
5
5
  enumerable: true,
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "2.2.3-pr.136.19d76d2";
2
+ var version = "2.2.4-pr.114.343dd9b";
3
3
  //#endregion
4
4
  export { version };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"SliceSimulator.cjs","names":["SimulatorManager","StateEventType","SliceSimulatorWrapper"],"sources":["../../src/pages/SliceSimulator.tsx"],"sourcesContent":["import {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\n} from \"@prismicio/simulator/kit\"\nimport type {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSliceSimulatorState,\n} from \"@prismicio/simulator/kit\"\nimport { useEffect, useState } from \"react\"\nimport type { ComponentType, FC } from \"react\"\n\nimport { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\"\n\nconst simulatorManager = new SimulatorManager()\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"]\n}\n\nexport type SliceSimulatorProps = BaseSliceSimulatorProps & {\n\t/**\n\t * React component to render simulated Slices.\n\t *\n\t * @example\n\t * \t```tsx\n\t * \timport { SliceSimulator } from \"@slicemachine/adapter-next/simulator\"\n\t * \timport { SliceZone } from \"@prismicio/react\"\n\t *\n\t * \timport { components } from \"../slices\"\n\t *\n\t * \t;<SliceSimulator\n\t * \t\tsliceZone={({ slices }) => <SliceZone slices={slices} components={components} />}\n\t * \t/>\n\t * \t```\n\t */\n\tsliceZone: ComponentType<SliceSimulatorSliceZoneProps>\n\tclassName?: string\n}\n\n/**\n * Simulate slices in isolation. The slice simulator enables live slice development in Slice Machine\n * and live previews in the Page Builder.\n */\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\tsliceZone: SliceZoneComp,\n}) => {\n\tconst [slices, setSlices] = useState(() => getDefaultSlices())\n\tconst [message, setMessage] = useState(() => getDefaultMessage())\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(_slices) => {\n\t\t\t\tsetSlices(_slices)\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t)\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(_message) => {\n\t\t\t\tsetMessage(_message)\n\t\t\t},\n\t\t\t\"simulator-message\",\n\t\t)\n\n\t\tsimulatorManager.init()\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\")\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\")\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={slices.length > 0}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<SliceZoneComp slices={slices} />\n\t\t</SliceSimulatorWrapper>\n\t)\n}\n"],"mappings":";;;;;;AAeA,MAAM,mBAAmB,IAAIA,yBAAAA,kBAAkB;;;;;AA8B/C,MAAa,kBAA2C,EACvD,YACA,QACA,WACA,WAAW,oBACN;CACL,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,iBAAA,GAAA,yBAAA,mBAA8C,CAAC;CAC9D,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,iBAAA,GAAA,yBAAA,oBAAgD,CAAC;AAEjE,EAAA,GAAA,MAAA,iBAAgB;AACf,mBAAiB,MAAM,GACtBC,yBAAAA,eAAe,SACd,YAAY;AACZ,aAAU,QAAQ;KAEnB,mBACA;AACD,mBAAiB,MAAM,GACtBA,yBAAAA,eAAe,UACd,aAAa;AACb,cAAW,SAAS;KAErB,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAIA,yBAAAA,eAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAIA,yBAAAA,eAAe,SAAS,oBAAoB;;IAEtE,EAAE,CAAC;AAEN,QACC,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,uBAAD;EACU;EACT,WAAW,OAAO,SAAS;EACf;EACJ;EACG;YAEX,iBAAA,GAAA,kBAAA,KAAC,eAAD,EAAuB,QAAU,CAAA;EACV,CAAA"}
1
+ {"version":3,"file":"SliceSimulator.cjs","names":["SimulatorManager","StateEventType","SliceSimulatorWrapper"],"sources":["../../src/pages/SliceSimulator.tsx"],"sourcesContent":["import {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\n} from \"@prismicio/simulator/kit\"\nimport type {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSliceSimulatorState,\n} from \"@prismicio/simulator/kit\"\nimport { useEffect, useState } from \"react\"\nimport type { ComponentType, FC } from \"react\"\n\nimport { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\"\n\nconst simulatorManager = new SimulatorManager()\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"]\n}\n\nexport type SliceSimulatorProps = BaseSliceSimulatorProps & {\n\t/**\n\t * React component to render simulated Slices.\n\t *\n\t * @example\n\t * \t;```tsx\n\t * \timport { SliceSimulator } from \"@slicemachine/adapter-next/simulator\"\n\t * \timport { SliceZone } from \"@prismicio/react\"\n\t *\n\t * \timport { components } from \"../slices\"\n\t *\n\t * \t;<SliceSimulator\n\t * \t\tsliceZone={({ slices }) => <SliceZone slices={slices} components={components} />}\n\t * \t/>\n\t * \t```\n\t */\n\tsliceZone: ComponentType<SliceSimulatorSliceZoneProps>\n\tclassName?: string\n}\n\n/**\n * Simulate slices in isolation. The slice simulator enables live slice development in Slice Machine\n * and live previews in the Page Builder.\n */\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\tsliceZone: SliceZoneComp,\n}) => {\n\tconst [slices, setSlices] = useState(() => getDefaultSlices())\n\tconst [message, setMessage] = useState(() => getDefaultMessage())\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(_slices) => {\n\t\t\t\tsetSlices(_slices)\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t)\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(_message) => {\n\t\t\t\tsetMessage(_message)\n\t\t\t},\n\t\t\t\"simulator-message\",\n\t\t)\n\n\t\tsimulatorManager.init()\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\")\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\")\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={slices.length > 0}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<SliceZoneComp slices={slices} />\n\t\t</SliceSimulatorWrapper>\n\t)\n}\n"],"mappings":";;;;;;AAeA,MAAM,mBAAmB,IAAIA,yBAAAA,kBAAkB;;;;;AA8B/C,MAAa,kBAA2C,EACvD,YACA,QACA,WACA,WAAW,oBACN;CACL,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,iBAAA,GAAA,yBAAA,mBAA8C,CAAC;CAC9D,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,iBAAA,GAAA,yBAAA,oBAAgD,CAAC;AAEjE,EAAA,GAAA,MAAA,iBAAgB;AACf,mBAAiB,MAAM,GACtBC,yBAAAA,eAAe,SACd,YAAY;AACZ,aAAU,QAAQ;KAEnB,mBACA;AACD,mBAAiB,MAAM,GACtBA,yBAAAA,eAAe,UACd,aAAa;AACb,cAAW,SAAS;KAErB,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAIA,yBAAAA,eAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAIA,yBAAAA,eAAe,SAAS,oBAAoB;;IAEtE,EAAE,CAAC;AAEN,QACC,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,uBAAD;EACU;EACT,WAAW,OAAO,SAAS;EACf;EACJ;EACG;YAEX,iBAAA,GAAA,kBAAA,KAAC,eAAD,EAAuB,QAAU,CAAA;EACV,CAAA"}
@@ -10,7 +10,7 @@ type SliceSimulatorProps$1 = SliceSimulatorProps & {
10
10
  * React component to render simulated Slices.
11
11
  *
12
12
  * @example
13
- * ```tsx
13
+ * ;```tsx
14
14
  * import { SliceSimulator } from "@slicemachine/adapter-next/simulator"
15
15
  * import { SliceZone } from "@prismicio/react"
16
16
  *
@@ -10,7 +10,7 @@ type SliceSimulatorProps$1 = SliceSimulatorProps & {
10
10
  * React component to render simulated Slices.
11
11
  *
12
12
  * @example
13
- * ```tsx
13
+ * ;```tsx
14
14
  * import { SliceSimulator } from "@slicemachine/adapter-next/simulator"
15
15
  * import { SliceZone } from "@prismicio/react"
16
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SliceSimulator.js","names":[],"sources":["../../src/pages/SliceSimulator.tsx"],"sourcesContent":["import {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\n} from \"@prismicio/simulator/kit\"\nimport type {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSliceSimulatorState,\n} from \"@prismicio/simulator/kit\"\nimport { useEffect, useState } from \"react\"\nimport type { ComponentType, FC } from \"react\"\n\nimport { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\"\n\nconst simulatorManager = new SimulatorManager()\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"]\n}\n\nexport type SliceSimulatorProps = BaseSliceSimulatorProps & {\n\t/**\n\t * React component to render simulated Slices.\n\t *\n\t * @example\n\t * \t```tsx\n\t * \timport { SliceSimulator } from \"@slicemachine/adapter-next/simulator\"\n\t * \timport { SliceZone } from \"@prismicio/react\"\n\t *\n\t * \timport { components } from \"../slices\"\n\t *\n\t * \t;<SliceSimulator\n\t * \t\tsliceZone={({ slices }) => <SliceZone slices={slices} components={components} />}\n\t * \t/>\n\t * \t```\n\t */\n\tsliceZone: ComponentType<SliceSimulatorSliceZoneProps>\n\tclassName?: string\n}\n\n/**\n * Simulate slices in isolation. The slice simulator enables live slice development in Slice Machine\n * and live previews in the Page Builder.\n */\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\tsliceZone: SliceZoneComp,\n}) => {\n\tconst [slices, setSlices] = useState(() => getDefaultSlices())\n\tconst [message, setMessage] = useState(() => getDefaultMessage())\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(_slices) => {\n\t\t\t\tsetSlices(_slices)\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t)\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(_message) => {\n\t\t\t\tsetMessage(_message)\n\t\t\t},\n\t\t\t\"simulator-message\",\n\t\t)\n\n\t\tsimulatorManager.init()\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\")\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\")\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={slices.length > 0}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<SliceZoneComp slices={slices} />\n\t\t</SliceSimulatorWrapper>\n\t)\n}\n"],"mappings":";;;;;AAeA,MAAM,mBAAmB,IAAI,kBAAkB;;;;;AA8B/C,MAAa,kBAA2C,EACvD,YACA,QACA,WACA,WAAW,oBACN;CACL,MAAM,CAAC,QAAQ,aAAa,eAAe,kBAAkB,CAAC;CAC9D,MAAM,CAAC,SAAS,cAAc,eAAe,mBAAmB,CAAC;AAEjE,iBAAgB;AACf,mBAAiB,MAAM,GACtB,eAAe,SACd,YAAY;AACZ,aAAU,QAAQ;KAEnB,mBACA;AACD,mBAAiB,MAAM,GACtB,eAAe,UACd,aAAa;AACb,cAAW,SAAS;KAErB,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAI,eAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAI,eAAe,SAAS,oBAAoB;;IAEtE,EAAE,CAAC;AAEN,QACC,oBAAC,uBAAD;EACU;EACT,WAAW,OAAO,SAAS;EACf;EACJ;EACG;YAEX,oBAAC,eAAD,EAAuB,QAAU,CAAA;EACV,CAAA"}
1
+ {"version":3,"file":"SliceSimulator.js","names":[],"sources":["../../src/pages/SliceSimulator.tsx"],"sourcesContent":["import {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\n} from \"@prismicio/simulator/kit\"\nimport type {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSliceSimulatorState,\n} from \"@prismicio/simulator/kit\"\nimport { useEffect, useState } from \"react\"\nimport type { ComponentType, FC } from \"react\"\n\nimport { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\"\n\nconst simulatorManager = new SimulatorManager()\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"]\n}\n\nexport type SliceSimulatorProps = BaseSliceSimulatorProps & {\n\t/**\n\t * React component to render simulated Slices.\n\t *\n\t * @example\n\t * \t;```tsx\n\t * \timport { SliceSimulator } from \"@slicemachine/adapter-next/simulator\"\n\t * \timport { SliceZone } from \"@prismicio/react\"\n\t *\n\t * \timport { components } from \"../slices\"\n\t *\n\t * \t;<SliceSimulator\n\t * \t\tsliceZone={({ slices }) => <SliceZone slices={slices} components={components} />}\n\t * \t/>\n\t * \t```\n\t */\n\tsliceZone: ComponentType<SliceSimulatorSliceZoneProps>\n\tclassName?: string\n}\n\n/**\n * Simulate slices in isolation. The slice simulator enables live slice development in Slice Machine\n * and live previews in the Page Builder.\n */\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\tsliceZone: SliceZoneComp,\n}) => {\n\tconst [slices, setSlices] = useState(() => getDefaultSlices())\n\tconst [message, setMessage] = useState(() => getDefaultMessage())\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(_slices) => {\n\t\t\t\tsetSlices(_slices)\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t)\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(_message) => {\n\t\t\t\tsetMessage(_message)\n\t\t\t},\n\t\t\t\"simulator-message\",\n\t\t)\n\n\t\tsimulatorManager.init()\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\")\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\")\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={slices.length > 0}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<SliceZoneComp slices={slices} />\n\t\t</SliceSimulatorWrapper>\n\t)\n}\n"],"mappings":";;;;;AAeA,MAAM,mBAAmB,IAAI,kBAAkB;;;;;AA8B/C,MAAa,kBAA2C,EACvD,YACA,QACA,WACA,WAAW,oBACN;CACL,MAAM,CAAC,QAAQ,aAAa,eAAe,kBAAkB,CAAC;CAC9D,MAAM,CAAC,SAAS,cAAc,eAAe,mBAAmB,CAAC;AAEjE,iBAAgB;AACf,mBAAiB,MAAM,GACtB,eAAe,SACd,YAAY;AACZ,aAAU,QAAQ;KAEnB,mBACA;AACD,mBAAiB,MAAM,GACtB,eAAe,UACd,aAAa;AACb,cAAW,SAAS;KAErB,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAI,eAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAI,eAAe,SAAS,oBAAoB;;IAEtE,EAAE,CAAC;AAEN,QACC,oBAAC,uBAAD;EACU;EACT,WAAW,OAAO,SAAS;EACf;EACJ;EACG;YAEX,oBAAC,eAAD,EAAuB,QAAU,CAAA;EACV,CAAA"}
@@ -4,7 +4,7 @@
4
4
  * route.
5
5
  *
6
6
  * @example
7
- * ```typescript
7
+ * ;```typescript
8
8
  * // src/pages/api/exit-preview.js
9
9
  *
10
10
  * import { exitPreview } from "@prismicio/next"
@@ -1 +1 @@
1
- {"version":3,"file":"exitPreview.cjs","names":[],"sources":["../../src/pages/exitPreview.ts"],"sourcesContent":["import type { NextApiRequestLike, NextApiResponseLike } from \"./types\"\n\n/** Configuration for `exitPreview()`. */\nexport type ExitPreviewAPIRouteConfig = {\n\t/**\n\t * The `req` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\treq?: NextApiRequestLike\n\n\t/**\n\t * The `res` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\tres: NextApiResponseLike\n}\n\n/**\n * Ends a Prismic preview session within a Next.js app. This function should be used in an API\n * route.\n *\n * @example\n * \t```typescript\n * \t// src/pages/api/exit-preview.js\n *\n * \timport { exitPreview } from \"@prismicio/next\"\n *\n * \texport default function handler(_req, res) {\n * \t\treturn exitPreview({ res })\n * \t}\n * \t```\n */\nexport function exitPreview(config: ExitPreviewAPIRouteConfig): void {\n\tconfig.res.clearPreviewData()\n\n\t// `Cache-Control` header is used to prevent CDN-level caching.\n\tconfig.res.setHeader(\"Cache-Control\", \"no-store\")\n\n\tconfig.res.json({ success: true })\n\n\treturn\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,SAAgB,YAAY,QAAyC;AACpE,QAAO,IAAI,kBAAkB;AAG7B,QAAO,IAAI,UAAU,iBAAiB,WAAW;AAEjD,QAAO,IAAI,KAAK,EAAE,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"exitPreview.cjs","names":[],"sources":["../../src/pages/exitPreview.ts"],"sourcesContent":["import type { NextApiRequestLike, NextApiResponseLike } from \"./types\"\n\n/** Configuration for `exitPreview()`. */\nexport type ExitPreviewAPIRouteConfig = {\n\t/**\n\t * The `req` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\treq?: NextApiRequestLike\n\n\t/**\n\t * The `res` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\tres: NextApiResponseLike\n}\n\n/**\n * Ends a Prismic preview session within a Next.js app. This function should be used in an API\n * route.\n *\n * @example\n * \t;```typescript\n * \t// src/pages/api/exit-preview.js\n *\n * \timport { exitPreview } from \"@prismicio/next\"\n *\n * \texport default function handler(_req, res) {\n * \t\treturn exitPreview({ res })\n * \t}\n * \t```\n */\nexport function exitPreview(config: ExitPreviewAPIRouteConfig): void {\n\tconfig.res.clearPreviewData()\n\n\t// `Cache-Control` header is used to prevent CDN-level caching.\n\tconfig.res.setHeader(\"Cache-Control\", \"no-store\")\n\n\tconfig.res.json({ success: true })\n\n\treturn\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,SAAgB,YAAY,QAAyC;AACpE,QAAO,IAAI,kBAAkB;AAG7B,QAAO,IAAI,UAAU,iBAAiB,WAAW;AAEjD,QAAO,IAAI,KAAK,EAAE,SAAS,MAAM,CAAC"}
@@ -21,7 +21,7 @@ type ExitPreviewAPIRouteConfig = {
21
21
  * route.
22
22
  *
23
23
  * @example
24
- * ```typescript
24
+ * ;```typescript
25
25
  * // src/pages/api/exit-preview.js
26
26
  *
27
27
  * import { exitPreview } from "@prismicio/next"
@@ -21,7 +21,7 @@ type ExitPreviewAPIRouteConfig = {
21
21
  * route.
22
22
  *
23
23
  * @example
24
- * ```typescript
24
+ * ;```typescript
25
25
  * // src/pages/api/exit-preview.js
26
26
  *
27
27
  * import { exitPreview } from "@prismicio/next"
@@ -4,7 +4,7 @@
4
4
  * route.
5
5
  *
6
6
  * @example
7
- * ```typescript
7
+ * ;```typescript
8
8
  * // src/pages/api/exit-preview.js
9
9
  *
10
10
  * import { exitPreview } from "@prismicio/next"
@@ -1 +1 @@
1
- {"version":3,"file":"exitPreview.js","names":[],"sources":["../../src/pages/exitPreview.ts"],"sourcesContent":["import type { NextApiRequestLike, NextApiResponseLike } from \"./types\"\n\n/** Configuration for `exitPreview()`. */\nexport type ExitPreviewAPIRouteConfig = {\n\t/**\n\t * The `req` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\treq?: NextApiRequestLike\n\n\t/**\n\t * The `res` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\tres: NextApiResponseLike\n}\n\n/**\n * Ends a Prismic preview session within a Next.js app. This function should be used in an API\n * route.\n *\n * @example\n * \t```typescript\n * \t// src/pages/api/exit-preview.js\n *\n * \timport { exitPreview } from \"@prismicio/next\"\n *\n * \texport default function handler(_req, res) {\n * \t\treturn exitPreview({ res })\n * \t}\n * \t```\n */\nexport function exitPreview(config: ExitPreviewAPIRouteConfig): void {\n\tconfig.res.clearPreviewData()\n\n\t// `Cache-Control` header is used to prevent CDN-level caching.\n\tconfig.res.setHeader(\"Cache-Control\", \"no-store\")\n\n\tconfig.res.json({ success: true })\n\n\treturn\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,SAAgB,YAAY,QAAyC;AACpE,QAAO,IAAI,kBAAkB;AAG7B,QAAO,IAAI,UAAU,iBAAiB,WAAW;AAEjD,QAAO,IAAI,KAAK,EAAE,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"exitPreview.js","names":[],"sources":["../../src/pages/exitPreview.ts"],"sourcesContent":["import type { NextApiRequestLike, NextApiResponseLike } from \"./types\"\n\n/** Configuration for `exitPreview()`. */\nexport type ExitPreviewAPIRouteConfig = {\n\t/**\n\t * The `req` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\treq?: NextApiRequestLike\n\n\t/**\n\t * The `res` object from a Next.js API route.\n\t *\n\t * @see Next.js API route docs: \\<https://nextjs.org/docs/api-routes/introduction\\>\n\t */\n\tres: NextApiResponseLike\n}\n\n/**\n * Ends a Prismic preview session within a Next.js app. This function should be used in an API\n * route.\n *\n * @example\n * \t;```typescript\n * \t// src/pages/api/exit-preview.js\n *\n * \timport { exitPreview } from \"@prismicio/next\"\n *\n * \texport default function handler(_req, res) {\n * \t\treturn exitPreview({ res })\n * \t}\n * \t```\n */\nexport function exitPreview(config: ExitPreviewAPIRouteConfig): void {\n\tconfig.res.clearPreviewData()\n\n\t// `Cache-Control` header is used to prevent CDN-level caching.\n\tconfig.res.setHeader(\"Cache-Control\", \"no-store\")\n\n\tconfig.res.json({ success: true })\n\n\treturn\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,SAAgB,YAAY,QAAyC;AACpE,QAAO,IAAI,kBAAkB;AAG7B,QAAO,IAAI,UAAU,iBAAiB,WAAW;AAEjD,QAAO,IAAI,KAAK,EAAE,SAAS,MAAM,CAAC"}
@@ -0,0 +1,20 @@
1
+ require("./_virtual/_rolldown/runtime.cjs");
2
+ const require_getPrismicCacheTags = require("./getPrismicCacheTags.cjs");
3
+ let next_cache_js = require("next/cache.js");
4
+ //#region src/revalidatePrismicPages.ts
5
+ /**
6
+ * Immediately revalidates a set of Prismic pages given a list of their IDs. The list of IDs
7
+ * typically comes from a Prismic webhook triggered when publishing content.
8
+ *
9
+ * @param ids - A list of Prismic page IDs to revalidate.
10
+ * @experimental
11
+ *
12
+ * @see {@link https://nextjs.org/docs/app/api-reference/functions/revalidateTag}
13
+ */
14
+ function revalidatePrismicPages(ids) {
15
+ for (const id of ids) (0, next_cache_js.revalidateTag)(require_getPrismicCacheTags.buildPrismicCacheTag(id), { expire: 0 });
16
+ }
17
+ //#endregion
18
+ exports.revalidatePrismicPages = revalidatePrismicPages;
19
+
20
+ //# sourceMappingURL=revalidatePrismicPages.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revalidatePrismicPages.cjs","names":["buildPrismicCacheTag"],"sources":["../src/revalidatePrismicPages.ts"],"sourcesContent":["import { revalidateTag } from \"next/cache\"\n\nimport { buildPrismicCacheTag } from \"./getPrismicCacheTags\"\n\n/**\n * Immediately revalidates a set of Prismic pages given a list of their IDs. The list of IDs\n * typically comes from a Prismic webhook triggered when publishing content.\n *\n * @param ids - A list of Prismic page IDs to revalidate.\n * @experimental\n *\n * @see {@link https://nextjs.org/docs/app/api-reference/functions/revalidateTag}\n */\nexport function revalidatePrismicPages(ids: string[]): void {\n\tfor (const id of ids) {\n\t\tconst tag = buildPrismicCacheTag(id)\n\t\trevalidateTag(tag, { expire: 0 })\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,SAAgB,uBAAuB,KAAqB;AAC3D,MAAK,MAAM,MAAM,IAEhB,EAAA,GAAA,cAAA,eADYA,4BAAAA,qBAAqB,GAAG,EACjB,EAAE,QAAQ,GAAG,CAAC"}
@@ -0,0 +1,14 @@
1
+ //#region src/revalidatePrismicPages.d.ts
2
+ /**
3
+ * Immediately revalidates a set of Prismic pages given a list of their IDs. The list of IDs
4
+ * typically comes from a Prismic webhook triggered when publishing content.
5
+ *
6
+ * @param ids - A list of Prismic page IDs to revalidate.
7
+ * @experimental
8
+ *
9
+ * @see {@link https://nextjs.org/docs/app/api-reference/functions/revalidateTag}
10
+ */
11
+ declare function revalidatePrismicPages(ids: string[]): void;
12
+ //#endregion
13
+ export { revalidatePrismicPages };
14
+ //# sourceMappingURL=revalidatePrismicPages.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revalidatePrismicPages.d.cts","names":[],"sources":["../src/revalidatePrismicPages.ts"],"mappings":";;AAaA;;;;;;;;iBAAgB,sBAAA,CAAuB,GAAA"}
@@ -0,0 +1,14 @@
1
+ //#region src/revalidatePrismicPages.d.ts
2
+ /**
3
+ * Immediately revalidates a set of Prismic pages given a list of their IDs. The list of IDs
4
+ * typically comes from a Prismic webhook triggered when publishing content.
5
+ *
6
+ * @param ids - A list of Prismic page IDs to revalidate.
7
+ * @experimental
8
+ *
9
+ * @see {@link https://nextjs.org/docs/app/api-reference/functions/revalidateTag}
10
+ */
11
+ declare function revalidatePrismicPages(ids: string[]): void;
12
+ //#endregion
13
+ export { revalidatePrismicPages };
14
+ //# sourceMappingURL=revalidatePrismicPages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revalidatePrismicPages.d.ts","names":[],"sources":["../src/revalidatePrismicPages.ts"],"mappings":";;AAaA;;;;;;;;iBAAgB,sBAAA,CAAuB,GAAA"}
@@ -0,0 +1,19 @@
1
+ import { buildPrismicCacheTag } from "./getPrismicCacheTags.js";
2
+ import { revalidateTag } from "next/cache.js";
3
+ //#region src/revalidatePrismicPages.ts
4
+ /**
5
+ * Immediately revalidates a set of Prismic pages given a list of their IDs. The list of IDs
6
+ * typically comes from a Prismic webhook triggered when publishing content.
7
+ *
8
+ * @param ids - A list of Prismic page IDs to revalidate.
9
+ * @experimental
10
+ *
11
+ * @see {@link https://nextjs.org/docs/app/api-reference/functions/revalidateTag}
12
+ */
13
+ function revalidatePrismicPages(ids) {
14
+ for (const id of ids) revalidateTag(buildPrismicCacheTag(id), { expire: 0 });
15
+ }
16
+ //#endregion
17
+ export { revalidatePrismicPages };
18
+
19
+ //# sourceMappingURL=revalidatePrismicPages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revalidatePrismicPages.js","names":[],"sources":["../src/revalidatePrismicPages.ts"],"sourcesContent":["import { revalidateTag } from \"next/cache\"\n\nimport { buildPrismicCacheTag } from \"./getPrismicCacheTags\"\n\n/**\n * Immediately revalidates a set of Prismic pages given a list of their IDs. The list of IDs\n * typically comes from a Prismic webhook triggered when publishing content.\n *\n * @param ids - A list of Prismic page IDs to revalidate.\n * @experimental\n *\n * @see {@link https://nextjs.org/docs/app/api-reference/functions/revalidateTag}\n */\nexport function revalidatePrismicPages(ids: string[]): void {\n\tfor (const id of ids) {\n\t\tconst tag = buildPrismicCacheTag(id)\n\t\trevalidateTag(tag, { expire: 0 })\n\t}\n}\n"],"mappings":";;;;;;;;;;;;AAaA,SAAgB,uBAAuB,KAAqB;AAC3D,MAAK,MAAM,MAAM,IAEhB,eADY,qBAAqB,GAAG,EACjB,EAAE,QAAQ,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismicio/next",
3
- "version": "2.2.3-pr.136.19d76d2",
3
+ "version": "2.2.4-pr.114.343dd9b",
4
4
  "description": "Helpers to integrate Prismic into Next.js apps",
5
5
  "keywords": [
6
6
  "next",
@@ -53,21 +53,21 @@
53
53
  "types": "tsc --noEmit"
54
54
  },
55
55
  "dependencies": {
56
- "@prismicio/simulator": "^0.2.0",
56
+ "@prismicio/simulator": "^0.2.2",
57
57
  "imgix-url-builder": "^0.0.6",
58
58
  "lz-string": "^1.5.0"
59
59
  },
60
60
  "devDependencies": {
61
- "@playwright/test": "^1.58.2",
62
- "@prismicio/client": "^7.12.0",
63
- "@types/node": "^25.5.0",
61
+ "@playwright/test": "^1.59.1",
62
+ "@prismicio/client": "^7.21.8",
63
+ "@types/node": "^25.5.2",
64
64
  "@types/react": "^19.2.14",
65
- "next": "16.2.1",
66
- "oxfmt": "^0.43.0",
67
- "oxlint": "^1.58.0",
68
- "playwright": "^1.58.2",
69
- "react": "^19.2.4",
70
- "react-dom": "^19.2.4",
65
+ "next": "16.2.3",
66
+ "oxfmt": "^0.44.0",
67
+ "oxlint": "^1.59.0",
68
+ "playwright": "^1.59.1",
69
+ "react": "^19.2.5",
70
+ "react-dom": "^19.2.5",
71
71
  "tsdown": "^0.21.7",
72
72
  "typescript": "^6.0.2"
73
73
  },
@@ -0,0 +1,20 @@
1
+ import type { PrismicDocument } from "@prismicio/client"
2
+ import { cacheTag } from "next/cache"
3
+
4
+ import { getPrismicCacheTags } from "./getPrismicCacheTags"
5
+
6
+ /**
7
+ * Tags the current cache entry with cache tags for a set of Prismic pages so they can be
8
+ * revalidated when their content changes.
9
+ *
10
+ * Linked documents (via content relationships) are tagged as well, so the cache entry is
11
+ * revalidated when any of its nested documents change.
12
+ *
13
+ * @param pages - A set of Prismic pages used to tag the cache entry.
14
+ * @experimental
15
+ *
16
+ * @see {@link https://nextjs.org/docs/app/api-reference/functions/cacheTag}
17
+ */
18
+ export function cacheTagPrismicPages(pages: PrismicDocument[]): void {
19
+ cacheTag(...getPrismicCacheTags(pages))
20
+ }
@@ -1,4 +1,6 @@
1
- import { type Client, cookie as prismicCookie } from "@prismicio/client"
1
+ import type { Client } from "@prismicio/client"
2
+
3
+ import { getPreviewRef } from "./getPreviewRef"
2
4
 
3
5
  /** Configuration for `enableAutoPreviews`. */
4
6
  export type EnableAutoPreviewsConfig = {
@@ -17,36 +19,5 @@ export type EnableAutoPreviewsConfig = {
17
19
  export function enableAutoPreviews(config: EnableAutoPreviewsConfig): void {
18
20
  // We use a function value so the cookie is checked on every
19
21
  // request. We don't have a static value to read from.
20
- config.client.queryContentFromRef(async () => {
21
- // Need this to avoid the following Next.js build-time error:
22
- // You're importing a component that needs next/headers. That only works
23
- // in a Server Component which is not supported in the pages/ directory.
24
- const { cookies, draftMode } = await import("next/headers")
25
-
26
- let isDraftModeEnabled = false
27
- try {
28
- isDraftModeEnabled = (await draftMode()).isEnabled
29
- } catch {
30
- // `draftMode()` may have been called in a palce that
31
- // does not have access to its async storage. This
32
- // occurs in places like `generateStaticParams()`. We
33
- // can ignore this case.
34
- return
35
- }
36
- if (!isDraftModeEnabled) {
37
- return
38
- }
39
-
40
- const cookie = (await cookies()).get(prismicCookie.preview)?.value
41
- if (!cookie) {
42
- return
43
- }
44
-
45
- const isActiveCookie = cookie.includes("websitePreviewId=")
46
- if (!isActiveCookie) {
47
- return
48
- }
49
-
50
- return cookie
51
- })
22
+ config.client.queryContentFromRef(() => getPreviewRef())
52
23
  }
@@ -1,9 +1,11 @@
1
+ import { cookie as prismicCookie } from "@prismicio/client"
2
+
1
3
  /**
2
4
  * Ends a Prismic preview session within a Next.js app. This function should be used in a Router
3
5
  * Handler.
4
6
  *
5
7
  * @example
6
- * ```typescript
8
+ * ;```typescript
7
9
  * // src/app/api/exit-preview/route.js
8
10
  *
9
11
  * import { exitPreview } from "@prismicio/next"
@@ -17,10 +19,14 @@ export async function exitPreview(): Promise<Response> {
17
19
  // Need this to avoid the following Next.js build-time error:
18
20
  // You're importing a component that needs next/headers. That only works
19
21
  // in a Server Component which is not supported in the pages/ directory.
20
- const { draftMode } = await import("next/headers")
22
+ const { cookies, draftMode } = await import("next/headers")
21
23
 
22
24
  ;(await draftMode()).disable()
23
25
 
26
+ // `redirectToPreviewURL` writes the preview cookie, so `exitPreview`
27
+ // clears it to close the preview-cookie loop.
28
+ ;(await cookies()).delete(prismicCookie.preview)
29
+
24
30
  // `Cache-Control` header is used to prevent CDN-level caching.
25
31
  return new Response(JSON.stringify({ success: true }), {
26
32
  headers: {
@@ -0,0 +1,51 @@
1
+ import { cookie as prismicCookie } from "@prismicio/client"
2
+
3
+ /**
4
+ * Reads the Prismic preview ref for the current request when an active preview session exists.
5
+ *
6
+ * This is the read-side counterpart to `redirectToPreviewURL`, which writes the preview cookie. Use
7
+ * it with Next.js Cache Components to read the ref _outside_ a cached function and pass it _in_ as
8
+ * an argument so it becomes part of the cache key:
9
+ *
10
+ * @example
11
+ * ;```typescript
12
+ * import { getPreviewRef } from "@prismicio/next"
13
+ *
14
+ * const page = await fetchPage(uid, await getPreviewRef())
15
+ * ```
16
+ *
17
+ * @returns The active preview ref, or `undefined` if no preview session is active.
18
+ * @experimental
19
+ */
20
+ export async function getPreviewRef(): Promise<string | undefined> {
21
+ // Need this to avoid the following Next.js build-time error:
22
+ // You're importing a component that needs next/headers. That only works
23
+ // in a Server Component which is not supported in the pages/ directory.
24
+ const { cookies, draftMode } = await import("next/headers")
25
+
26
+ let isDraftModeEnabled = false
27
+ try {
28
+ isDraftModeEnabled = (await draftMode()).isEnabled
29
+ } catch {
30
+ // `draftMode()` may have been called in a place that
31
+ // does not have access to its async storage. This
32
+ // occurs in places like `generateStaticParams()`. We
33
+ // can ignore this case.
34
+ return
35
+ }
36
+ if (!isDraftModeEnabled) {
37
+ return
38
+ }
39
+
40
+ const cookie = (await cookies()).get(prismicCookie.preview)?.value
41
+ if (!cookie) {
42
+ return
43
+ }
44
+
45
+ const isActiveCookie = cookie.includes("websitePreviewId=")
46
+ if (!isActiveCookie) {
47
+ return
48
+ }
49
+
50
+ return cookie
51
+ }
@@ -0,0 +1,46 @@
1
+ import type { PrismicDocument } from "@prismicio/client"
2
+
3
+ const CACHE_TAG_PREFIX = "prismic/"
4
+
5
+ /**
6
+ * Generates cache tags for a set of Prismic pages. Tags for linked pages (e.g. a content
7
+ * relationship) are included to ensure all related content can be revalidated.
8
+ *
9
+ * @param pages - A set of Prismic pages used to tag the function.
10
+ * @experimental
11
+ *
12
+ * @see {@link https://nextjs.org/docs/app/api-reference/functions/cacheTag}
13
+ */
14
+ export function getPrismicCacheTags(pages: PrismicDocument[]): string[] {
15
+ const ids = [...new Set(getPrismicDocumentIDs(pages))]
16
+ return ids.map((id) => buildPrismicCacheTag(id))
17
+ }
18
+
19
+ export function buildPrismicCacheTag(id: string): string {
20
+ return `${CACHE_TAG_PREFIX}${id}`
21
+ }
22
+
23
+ function getPrismicDocumentIDs(input: unknown): string[] {
24
+ if (typeof input !== "object" || input == null) return []
25
+
26
+ if (Array.isArray(input)) return input.flatMap((item) => getPrismicDocumentIDs(item))
27
+
28
+ if ("id" in input && typeof input.id === "string") {
29
+ // Document
30
+ // Content relationship or link
31
+ if (
32
+ ("href" in input &&
33
+ typeof input.href === "string" &&
34
+ input.href.includes("/api/v2/documents/search?")) ||
35
+ ("link_type" in input && input.link_type === "Document")
36
+ ) {
37
+ if ("data" in input && typeof input.data === "object" && input.data !== null) {
38
+ return [input.id, ...getPrismicDocumentIDs(input.data)]
39
+ } else {
40
+ return [input.id]
41
+ }
42
+ }
43
+ }
44
+
45
+ return Object.values(input).flatMap((input) => getPrismicDocumentIDs(input))
46
+ }
package/src/index.ts CHANGED
@@ -9,6 +9,8 @@ export type { PrismicNextLinkProps } from "./PrismicNextLink"
9
9
  export { enableAutoPreviews } from "./enableAutoPreviews"
10
10
  export type { EnableAutoPreviewsConfig } from "./enableAutoPreviews"
11
11
 
12
+ export { getPreviewRef } from "./getPreviewRef"
13
+
12
14
  export { redirectToPreviewURL } from "./redirectToPreviewURL"
13
15
  export type { RedirectToPreviewURLConfig } from "./redirectToPreviewURL"
14
16
 
@@ -26,3 +28,9 @@ export type { CreateClientConfig } from "./types"
26
28
 
27
29
  export { createLocaleRedirect } from "./createLocaleRedirect"
28
30
  export type { CreateLocaleRedirectConfig } from "./createLocaleRedirect"
31
+
32
+ export { getPrismicCacheTags } from "./getPrismicCacheTags"
33
+
34
+ export { cacheTagPrismicPages } from "./cacheTagPrismicPages"
35
+
36
+ export { revalidatePrismicPages } from "./revalidatePrismicPages"
package/src/lib/devMsg.ts CHANGED
@@ -4,7 +4,7 @@ import { version } from "../../package.json"
4
4
  * Returns a `prismic.dev/msg` URL for a given message slug.
5
5
  *
6
6
  * @example
7
- * ```ts
7
+ * ;```ts
8
8
  * devMsg("missing-param")
9
9
  * // => "https://prismic.dev/msg/next/v1.2.3/missing-param"
10
10
  * ```
@@ -24,7 +24,7 @@ export type SliceSimulatorProps = BaseSliceSimulatorProps & {
24
24
  * React component to render simulated Slices.
25
25
  *
26
26
  * @example
27
- * ```tsx
27
+ * ;```tsx
28
28
  * import { SliceSimulator } from "@slicemachine/adapter-next/simulator"
29
29
  * import { SliceZone } from "@prismicio/react"
30
30
  *