@nuxtjs/prismic 4.0.0-rc.0 → 4.0.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/README.md +1 -1
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/{BwDnglls.js → BMD6bpEv.js} +1 -1
- package/dist/client/_nuxt/BQB6UGbx.js +25 -0
- package/dist/client/_nuxt/{DxMA0H2w.js → CkG7IjgS.js} +1 -1
- package/dist/client/_nuxt/{DvaDQa27.js → H1okkFcd.js} +1 -1
- package/dist/client/_nuxt/{BOqGriGk.js → RYS3n4u0.js} +1 -1
- package/dist/client/_nuxt/{u6mwQ-HO.js → V_weDLQm.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/ef21bbff-0463-480b-852c-adffad3f33b7.json +1 -0
- package/dist/client/_nuxt/error-404.smTsHvdw.css +1 -0
- package/dist/client/_nuxt/error-500.Bo-s0s94.css +1 -0
- package/dist/client/index.html +1 -1
- package/dist/module.d.mts +34 -3
- package/dist/module.d.ts +34 -3
- package/dist/module.json +1 -1
- package/dist/module.mjs +20 -4
- package/dist/runtime/plugin.js +7 -1
- package/package.json +17 -17
- package/src/module.ts +23 -4
- package/src/runtime/plugin.ts +9 -0
- package/src/types.ts +45 -4
- package/dist/client/_nuxt/Cjc5ajGl.js +0 -25
- package/dist/client/_nuxt/builds/meta/f20f9d9d-3734-4545-aeaf-d50ec9b93ae0.json +0 -1
- package/dist/client/_nuxt/error-404.qJ5VHzRy.css +0 -1
- package/dist/client/_nuxt/error-500.DcsVtvy-.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as b,c as f,n as $,o as l,p as m,a as o,q as _,s as y,u as C,w as e,d as s,t as N,v as a,x as B,y as j,z as T,b as i,A as D}from"./
|
|
1
|
+
import{m as b,c as f,n as $,o as l,p as m,a as o,q as _,s as y,u as C,w as e,d as s,t as N,v as a,x as B,y as j,z as T,b as i,A as D}from"./BQB6UGbx.js";import{_ as I}from"./BMD6bpEv.js";import{_ as x}from"./DlAUqK2U.js";const O=b({__name:"NIcon",props:{icon:{}},setup(c){return(n,u)=>(l(),f("div",{class:$(["n-icon",n.icon])},null,2))}}),v=Object.assign(O,{__name:"NIcon"}),z={class:"n-tip n-tip-base"},V=b({__name:"NTip",props:{icon:{}},setup(c){return(n,u)=>{const p=v;return l(),f("div",z,[m(n.$slots,"icon",{},()=>[n.icon?(l(),_(p,{key:0,icon:n.icon,class:"n-tip-icon"},null,8,["icon"])):y("",!0)]),o("div",null,[m(n.$slots,"default")])])}}}),A=Object.assign(V,{__name:"NTip"}),M={key:0,target:"_blank",href:"http://localhost:9999"},P=b({__name:"SlicemachineStatusTip",props:{running:{type:Boolean}},setup(c){const n=c,u=C(()=>n.running?"Slicemachine has been started and available at":"Slicemachine has not been started yet");return(p,g)=>{const h=A;return l(),_(h,{n:p.running?"green":"yellow"},{default:e(()=>[s(N(a(u))+" ",1),p.running?(l(),f("a",M,"http://localhost:9999")):y("",!0)]),_:1},8,["n"])}}}),R=Object.assign(P,{__name:"SlicemachineStatusTip"}),q=b({__name:"NButton",props:{to:{},icon:{},border:{type:Boolean,default:!0},disabled:{type:Boolean},type:{default:"button"}},setup(c){return(n,u)=>{const p=v;return l(),_(j(n.to?a(I):"button"),B({to:n.to},{...n.$attrs,...!n.to&&{type:n.type},...n.disabled?{disabled:!0}:{tabindex:0}},{class:[[{"n-button-base active:n-button-active focus-visible:n-focus-base hover:n-button-hover":n.border},{"n-icon-button":!n.$slots.default}],"n-button n-transition n-disabled:n-disabled"]}),{default:e(()=>[m(n.$slots,"icon",{},()=>[n.icon?(l(),_(p,{key:0,icon:n.icon,class:$({"n-button-icon":n.$slots.default})},null,8,["icon","class"])):y("",!0)]),m(n.$slots,"default")]),_:3},16,["to","class"])}}}),E=Object.assign(q,{__name:"NButton"}),F={},L={class:"n-card n-card-base"};function G(c,n){return l(),f("div",L,[m(c.$slots,"default")])}const H=Object.assign(x(F,[["render",G]]),{__name:"NCard"}),J={class:"relative p-4 n-bg-base space-y-4"},K={class:"grid grid-cols-2 grid-auto-flow gap-4"},Q={class:"flex gap-2"},U={class:"flex gap-2 flex-wrap"},W={class:"flex gap-2 flex-wrap"},X={class:"flex gap-2 flex-wrap"},Y=b({__name:"index",props:{rpc:{}},async setup(c){let n,u;const p=c,{status:g,start:h,stop:S,config:d}=([n,u]=T(()=>D(p.rpc)),n=await n,u(),n);return(Z,t)=>{const w=R,r=E,k=H;return l(),f("div",J,[t[16]||(t[16]=o("header",null,[o("h1",{class:"inline-block rounded border border-zinc-600 bg-zinc-900 p-1.5 heading text-m"},[o("span",{class:"i-simple-icons:prismic align-sub"}),s(" @nuxtjs/prismic ")])],-1)),o("main",K,[i(k,{class:"col-span-2 p-4 space-y-4"},{default:e(()=>[t[1]||(t[1]=o("h2",{class:"text-m heading"},[o("span",{class:"i-carbon:tools-alt align-sub"}),s(" Slicemachine ")],-1)),o("section",Q,[i(w,{running:a(g).running,class:"flex-1"},null,8,["running"]),i(r,{onClick:t[0]||(t[0]=tt=>a(g).running?a(S)():a(h)())},{default:e(()=>[s(N(a(g).running?"Stop":"Start")+" Slicemachine ",1)]),_:1})])]),_:1}),i(k,{class:"p-4 space-y-4"},{default:e(()=>[t[9]||(t[9]=o("h2",{class:"text-m heading"},[o("span",{class:"i-carbon:notebook-reference align-sub"}),s(" Documentation ")],-1)),t[10]||(t[10]=o("h3",null,"Nuxt",-1)),o("p",U,[i(r,{to:"https://prismic.io/docs/content-modeling",icon:"i-carbon-ruler-alt",target:"_blank"},{default:e(()=>t[2]||(t[2]=[s(" Model Content ")])),_:1}),i(r,{to:"https://prismic.io/docs/nuxt-3-define-routes",icon:"i-carbon-3d-curve-manual",target:"_blank"},{default:e(()=>t[3]||(t[3]=[s(" Define Routes ")])),_:1}),i(r,{to:"https://prismic.io/docs/nuxt-3-fetch-data",icon:"i-carbon-download",target:"_blank"},{default:e(()=>t[4]||(t[4]=[s(" Fetch Data ")])),_:1}),i(r,{to:"https://prismic.io/docs/nuxt-3-template-content",icon:"i-carbon-paint-brush",target:"_blank"},{default:e(()=>t[5]||(t[5]=[s(" Template Content ")])),_:1})]),t[11]||(t[11]=o("h3",null,"APIs",-1)),o("p",W,[i(r,{to:"https://prismic.io/docs/technical-reference/prismicio-client",icon:"i-carbon-satellite-radar",target:"_blank"},{default:e(()=>t[6]||(t[6]=[s(" @prismicio/client ")])),_:1}),i(r,{to:"https://prismic.io/docs/technical-reference/prismicio-vue",icon:"i-carbon-logo-vue",target:"_blank"},{default:e(()=>t[7]||(t[7]=[s(" @prismicio/vue ")])),_:1}),i(r,{to:"https://prismic.nuxtjs.org/",icon:"i-simple-icons-nuxtdotjs",target:"_blank"},{default:e(()=>t[8]||(t[8]=[s(" @nuxtjs/prismic ")])),_:1})])]),_:1}),a(d)&&"repositoryName"in a(d)&&a(d).repositoryName?(l(),_(k,{key:0,class:"p-4 space-y-4"},{default:e(()=>[t[15]||(t[15]=o("h2",{class:"text-m heading"},[o("span",{class:"i-carbon:tools-alt align-sub"}),s(" Repository ")],-1)),o("p",X,[i(r,{to:`https://${a(d).repositoryName}.prismic.io/builder/working`,icon:"i-carbon-book",target:"_blank"},{default:e(()=>t[12]||(t[12]=[s(" Documents ")])),_:1},8,["to"]),i(r,{to:`https://${a(d).repositoryName}.prismic.io/builder/medias`,icon:"i-carbon-image",target:"_blank"},{default:e(()=>t[13]||(t[13]=[s(" Media Library ")])),_:1},8,["to"]),i(r,{to:`https://${a(d).repositoryName}.prismic.io/settings/repository`,icon:"i-carbon-settings",target:"_blank"},{default:e(()=>t[14]||(t[14]=[s(" Settings ")])),_:1},8,["to"])])]),_:1})):y("",!0)])])}}}),et=x(Y,[["__scopeId","data-v-469b968a"]]);export{et as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as a}from"./
|
|
1
|
+
import{_ as a}from"./BMD6bpEv.js";import{_ as i}from"./DlAUqK2U.js";import{u}from"./CkG7IjgS.js";import{o as c,c as l,a as e,t as r,b as d,w as p,d as f}from"./BQB6UGbx.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},h=["textContent"],b=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return u({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[{children:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{children:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return c(),l("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.statusCode)},null,8,h),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,b),e("div",x,[d(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:p(()=>[f(r(t.backHome),1)]),_:1})])])])}}},N=i(y,[["__scopeId","data-v-3ed4f09e"]]);export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"ef21bbff-0463-480b-852c-adffad3f33b7","timestamp":1737402150546}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"ef21bbff-0463-480b-852c-adffad3f33b7","timestamp":1737402150546,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-3ed4f09e]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-3ed4f09e]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-3ed4f09e]{background-color:#ffffff4d}.gradient-border[data-v-3ed4f09e]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-3ed4f09e]{background-color:#1414144d}.gradient-border[data-v-3ed4f09e]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-3ed4f09e]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-3ed4f09e]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-3ed4f09e]{position:fixed}.left-0[data-v-3ed4f09e]{left:0}.right-0[data-v-3ed4f09e]{right:0}.z-10[data-v-3ed4f09e]{z-index:10}.z-20[data-v-3ed4f09e]{z-index:20}.grid[data-v-3ed4f09e]{display:grid}.mb-16[data-v-3ed4f09e]{margin-bottom:4rem}.mb-8[data-v-3ed4f09e]{margin-bottom:2rem}.max-w-520px[data-v-3ed4f09e]{max-width:520px}.min-h-screen[data-v-3ed4f09e]{min-height:100vh}.w-full[data-v-3ed4f09e]{width:100%}.flex[data-v-3ed4f09e]{display:flex}.cursor-pointer[data-v-3ed4f09e]{cursor:pointer}.place-content-center[data-v-3ed4f09e]{place-content:center}.items-center[data-v-3ed4f09e]{align-items:center}.justify-center[data-v-3ed4f09e]{justify-content:center}.overflow-hidden[data-v-3ed4f09e]{overflow:hidden}.bg-white[data-v-3ed4f09e]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-3ed4f09e]{padding-left:1rem;padding-right:1rem}.px-8[data-v-3ed4f09e]{padding-left:2rem;padding-right:2rem}.py-2[data-v-3ed4f09e]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-3ed4f09e]{text-align:center}.text-8xl[data-v-3ed4f09e]{font-size:6rem;line-height:1}.text-xl[data-v-3ed4f09e]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-3ed4f09e]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-3ed4f09e]{font-weight:300}.font-medium[data-v-3ed4f09e]{font-weight:500}.leading-tight[data-v-3ed4f09e]{line-height:1.25}.font-sans[data-v-3ed4f09e]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-3ed4f09e]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-3ed4f09e]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-3ed4f09e]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-3ed4f09e]{padding-left:0;padding-right:0}.sm\:px-6[data-v-3ed4f09e]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-3ed4f09e]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-3ed4f09e]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-3ed4f09e]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-23c92f8d]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-23c92f8d]{position:fixed}.-bottom-1\/2[data-v-23c92f8d]{bottom:-50%}.left-0[data-v-23c92f8d]{left:0}.right-0[data-v-23c92f8d]{right:0}.grid[data-v-23c92f8d]{display:grid}.mb-16[data-v-23c92f8d]{margin-bottom:4rem}.mb-8[data-v-23c92f8d]{margin-bottom:2rem}.h-1\/2[data-v-23c92f8d]{height:50%}.max-w-520px[data-v-23c92f8d]{max-width:520px}.min-h-screen[data-v-23c92f8d]{min-height:100vh}.place-content-center[data-v-23c92f8d]{place-content:center}.overflow-hidden[data-v-23c92f8d]{overflow:hidden}.bg-white[data-v-23c92f8d]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-23c92f8d]{padding-left:2rem;padding-right:2rem}.text-center[data-v-23c92f8d]{text-align:center}.text-8xl[data-v-23c92f8d]{font-size:6rem;line-height:1}.text-xl[data-v-23c92f8d]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-23c92f8d]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-23c92f8d]{font-weight:300}.font-medium[data-v-23c92f8d]{font-weight:500}.leading-tight[data-v-23c92f8d]{line-height:1.25}.font-sans[data-v-23c92f8d]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-23c92f8d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-23c92f8d]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-23c92f8d]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-23c92f8d]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-23c92f8d]{font-size:2.25rem;line-height:2.5rem}}
|
package/dist/client/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__prismic-client/_nuxt/entry.BC9BDAld.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__prismic-client/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__prismic-client/_nuxt/entry.BC9BDAld.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__prismic-client/_nuxt/BQB6UGbx.js"><link rel="prefetch" as="style" crossorigin href="/__prismic-client/_nuxt/error-404.smTsHvdw.css"><link rel="prefetch" as="script" crossorigin href="/__prismic-client/_nuxt/V_weDLQm.js"><link rel="prefetch" as="script" crossorigin href="/__prismic-client/_nuxt/BMD6bpEv.js"><link rel="prefetch" as="script" crossorigin href="/__prismic-client/_nuxt/DlAUqK2U.js"><link rel="prefetch" as="script" crossorigin href="/__prismic-client/_nuxt/CkG7IjgS.js"><link rel="prefetch" as="style" crossorigin href="/__prismic-client/_nuxt/error-500.Bo-s0s94.css"><link rel="prefetch" as="script" crossorigin href="/__prismic-client/_nuxt/H1okkFcd.js"><script type="module" src="/__prismic-client/_nuxt/BQB6UGbx.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1737402154203,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__prismic-client",buildId:"ef21bbff-0463-480b-852c-adffad3f33b7",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/module.d.mts
CHANGED
|
@@ -7,7 +7,7 @@ import { PrismicPluginOptions } from '@prismicio/vue';
|
|
|
7
7
|
* @see Module documentation: {@link https://prismic.nuxtjs.org}
|
|
8
8
|
* @see Prismic documentation: {@link https://prismic.io/docs/nuxt-3-setup}
|
|
9
9
|
*/
|
|
10
|
-
type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | 'linkResolver' | '
|
|
10
|
+
type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | 'linkResolver' | 'richTextSerializer' | 'components'> & {
|
|
11
11
|
/**
|
|
12
12
|
* A Prismic repository endpoint to init the module's `@prismicio/client`
|
|
13
13
|
* instance used to fetch content from a Prismic repository with.
|
|
@@ -59,6 +59,8 @@ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | '
|
|
|
59
59
|
* An optional path to a file exporting an HTML serializer to customize
|
|
60
60
|
* the way rich text fields are rendered.
|
|
61
61
|
*
|
|
62
|
+
* @deprecated Use `components.richTextComponents` instead.
|
|
63
|
+
*
|
|
62
64
|
* @see HTML serializer documentation {@link https://prismic.io/docs/rich-text}
|
|
63
65
|
*/
|
|
64
66
|
richTextSerializer?: string;
|
|
@@ -73,7 +75,7 @@ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | '
|
|
|
73
75
|
*/
|
|
74
76
|
preview?: string | false;
|
|
75
77
|
/**
|
|
76
|
-
* Whether
|
|
78
|
+
* Whether to inject Prismic toolbar script.
|
|
77
79
|
*
|
|
78
80
|
* @remarks
|
|
79
81
|
* The toolbar script is required for previews to work.
|
|
@@ -82,11 +84,40 @@ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | '
|
|
|
82
84
|
*/
|
|
83
85
|
toolbar?: boolean;
|
|
84
86
|
/**
|
|
85
|
-
* Whether
|
|
87
|
+
* Whether to enable Prismic Nuxt DevTools integration.
|
|
86
88
|
*
|
|
87
89
|
* @defaultValue `true`
|
|
88
90
|
*/
|
|
89
91
|
devtools?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Options used by Prismic Vue components.
|
|
94
|
+
*/
|
|
95
|
+
components?: Omit<Required<PrismicPluginOptions>['components'], 'richTextComponents' | 'linkRel' | 'sliceZoneDefaultComponent' | 'linkInternalComponent' | 'linkExternalComponent'> & {
|
|
96
|
+
/**
|
|
97
|
+
* An optional path to a file exporting the `rel` attribute to apply on links.
|
|
98
|
+
* It can export a function to use the link's metadata to determine the `rel` value.
|
|
99
|
+
*
|
|
100
|
+
* @defaultValue `"noreferrer"` for external links.
|
|
101
|
+
*/
|
|
102
|
+
linkRel?: string;
|
|
103
|
+
/**
|
|
104
|
+
* An optional path to a file exporting a map of Rich Text block types to Vue Components.
|
|
105
|
+
* It is used to render Rich Text or title fields.
|
|
106
|
+
*
|
|
107
|
+
* @see Templating Rich Text and title fields from Prismic {@link https://prismic.io/docs/rich-text}
|
|
108
|
+
*/
|
|
109
|
+
richTextComponents?: string;
|
|
110
|
+
/**
|
|
111
|
+
* An optional path to a file exporting a component or a functional component rendered
|
|
112
|
+
* if a component mapping from the `components` prop cannot be found.
|
|
113
|
+
*
|
|
114
|
+
* @remarks
|
|
115
|
+
* Components will be rendered using the {@link SliceComponentProps} interface.
|
|
116
|
+
*
|
|
117
|
+
* @defaultValue `null` when `process.env.NODE_ENV === "production"` else {@link TODOSliceComponent}
|
|
118
|
+
*/
|
|
119
|
+
sliceZoneDefaultComponent?: string;
|
|
120
|
+
};
|
|
90
121
|
};
|
|
91
122
|
|
|
92
123
|
declare module '@nuxt/schema' {
|
package/dist/module.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { PrismicPluginOptions } from '@prismicio/vue';
|
|
|
7
7
|
* @see Module documentation: {@link https://prismic.nuxtjs.org}
|
|
8
8
|
* @see Prismic documentation: {@link https://prismic.io/docs/nuxt-3-setup}
|
|
9
9
|
*/
|
|
10
|
-
type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | 'linkResolver' | '
|
|
10
|
+
type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | 'linkResolver' | 'richTextSerializer' | 'components'> & {
|
|
11
11
|
/**
|
|
12
12
|
* A Prismic repository endpoint to init the module's `@prismicio/client`
|
|
13
13
|
* instance used to fetch content from a Prismic repository with.
|
|
@@ -59,6 +59,8 @@ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | '
|
|
|
59
59
|
* An optional path to a file exporting an HTML serializer to customize
|
|
60
60
|
* the way rich text fields are rendered.
|
|
61
61
|
*
|
|
62
|
+
* @deprecated Use `components.richTextComponents` instead.
|
|
63
|
+
*
|
|
62
64
|
* @see HTML serializer documentation {@link https://prismic.io/docs/rich-text}
|
|
63
65
|
*/
|
|
64
66
|
richTextSerializer?: string;
|
|
@@ -73,7 +75,7 @@ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | '
|
|
|
73
75
|
*/
|
|
74
76
|
preview?: string | false;
|
|
75
77
|
/**
|
|
76
|
-
* Whether
|
|
78
|
+
* Whether to inject Prismic toolbar script.
|
|
77
79
|
*
|
|
78
80
|
* @remarks
|
|
79
81
|
* The toolbar script is required for previews to work.
|
|
@@ -82,11 +84,40 @@ type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'client' | '
|
|
|
82
84
|
*/
|
|
83
85
|
toolbar?: boolean;
|
|
84
86
|
/**
|
|
85
|
-
* Whether
|
|
87
|
+
* Whether to enable Prismic Nuxt DevTools integration.
|
|
86
88
|
*
|
|
87
89
|
* @defaultValue `true`
|
|
88
90
|
*/
|
|
89
91
|
devtools?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Options used by Prismic Vue components.
|
|
94
|
+
*/
|
|
95
|
+
components?: Omit<Required<PrismicPluginOptions>['components'], 'richTextComponents' | 'linkRel' | 'sliceZoneDefaultComponent' | 'linkInternalComponent' | 'linkExternalComponent'> & {
|
|
96
|
+
/**
|
|
97
|
+
* An optional path to a file exporting the `rel` attribute to apply on links.
|
|
98
|
+
* It can export a function to use the link's metadata to determine the `rel` value.
|
|
99
|
+
*
|
|
100
|
+
* @defaultValue `"noreferrer"` for external links.
|
|
101
|
+
*/
|
|
102
|
+
linkRel?: string;
|
|
103
|
+
/**
|
|
104
|
+
* An optional path to a file exporting a map of Rich Text block types to Vue Components.
|
|
105
|
+
* It is used to render Rich Text or title fields.
|
|
106
|
+
*
|
|
107
|
+
* @see Templating Rich Text and title fields from Prismic {@link https://prismic.io/docs/rich-text}
|
|
108
|
+
*/
|
|
109
|
+
richTextComponents?: string;
|
|
110
|
+
/**
|
|
111
|
+
* An optional path to a file exporting a component or a functional component rendered
|
|
112
|
+
* if a component mapping from the `components` prop cannot be found.
|
|
113
|
+
*
|
|
114
|
+
* @remarks
|
|
115
|
+
* Components will be rendered using the {@link SliceComponentProps} interface.
|
|
116
|
+
*
|
|
117
|
+
* @defaultValue `null` when `process.env.NODE_ENV === "production"` else {@link TODOSliceComponent}
|
|
118
|
+
*/
|
|
119
|
+
sliceZoneDefaultComponent?: string;
|
|
120
|
+
};
|
|
90
121
|
};
|
|
91
122
|
|
|
92
123
|
declare module '@nuxt/schema' {
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -135,12 +135,22 @@ const module = defineNuxtModule({
|
|
|
135
135
|
linkResolver: "~/app/prismic/linkResolver",
|
|
136
136
|
richTextSerializer: "~/app/prismic/richTextSerializer"
|
|
137
137
|
};
|
|
138
|
+
let prismicComponentsFiles = {
|
|
139
|
+
linkRel: "~/app/prismic/linkRel",
|
|
140
|
+
richTextComponents: "~/app/prismic/richTextComponents",
|
|
141
|
+
sliceZoneDefaultComponent: "~/app/prismic/sliceZoneDefaultComponent"
|
|
142
|
+
};
|
|
138
143
|
if (nuxt.options?.future?.compatibilityVersion === 4 || getNuxtVersion(nuxt).startsWith("4")) {
|
|
139
144
|
prismicFiles = {
|
|
140
145
|
client: "~/prismic/client",
|
|
141
146
|
linkResolver: "~/prismic/linkResolver",
|
|
142
147
|
richTextSerializer: "~/prismic/richTextSerializer"
|
|
143
148
|
};
|
|
149
|
+
prismicComponentsFiles = {
|
|
150
|
+
linkRel: "~/prismic/linkRel",
|
|
151
|
+
richTextComponents: "~/prismic/richTextComponents",
|
|
152
|
+
sliceZoneDefaultComponent: "~/prismic/sliceZoneDefaultComponent"
|
|
153
|
+
};
|
|
144
154
|
}
|
|
145
155
|
return {
|
|
146
156
|
endpoint: "",
|
|
@@ -148,7 +158,7 @@ const module = defineNuxtModule({
|
|
|
148
158
|
clientConfig: {},
|
|
149
159
|
...prismicFiles,
|
|
150
160
|
injectComponents: true,
|
|
151
|
-
components:
|
|
161
|
+
components: prismicComponentsFiles,
|
|
152
162
|
preview: "/preview",
|
|
153
163
|
toolbar: true,
|
|
154
164
|
devtools: true
|
|
@@ -163,12 +173,15 @@ const module = defineNuxtModule({
|
|
|
163
173
|
if (nuxt.options.devtools && options.devtools) {
|
|
164
174
|
setupDevToolsUI(nuxt, resolver);
|
|
165
175
|
}
|
|
166
|
-
const proxyUserFileWithUndefinedFallback = (filename, path,
|
|
176
|
+
const proxyUserFileWithUndefinedFallback = (filename, path, deprecated) => {
|
|
167
177
|
const resolvedFilename = `prismic/proxy/${filename}.ts`;
|
|
168
178
|
const resolvedPath = path.replace(/^(~~|@@)/, nuxt.options.rootDir).replace(/^(~|@)/, nuxt.options.srcDir);
|
|
169
|
-
const maybeUserFile = fileExists(resolvedPath,
|
|
179
|
+
const maybeUserFile = fileExists(resolvedPath, ["js", "mjs", "ts", "vue"]);
|
|
170
180
|
if (maybeUserFile) {
|
|
171
181
|
logger.info(`Using user-defined \`${filename}\` at \`${maybeUserFile.replace(nuxt.options.srcDir, "~").replace(nuxt.options.rootDir, "~~").replace(/\\/g, "/")}\``);
|
|
182
|
+
if (deprecated) {
|
|
183
|
+
logger.warn(`\`${filename}\` is deprecated and will be removed in a future version.${typeof deprecated === "string" ? `${deprecated}` : ""}`);
|
|
184
|
+
}
|
|
172
185
|
addTemplate({
|
|
173
186
|
filename: resolvedFilename,
|
|
174
187
|
getContents: () => `export { default } from '${path}'`
|
|
@@ -188,7 +201,10 @@ const module = defineNuxtModule({
|
|
|
188
201
|
return;
|
|
189
202
|
}
|
|
190
203
|
proxyUserFileWithUndefinedFallback("linkResolver", moduleOptions.linkResolver);
|
|
191
|
-
proxyUserFileWithUndefinedFallback("richTextSerializer", moduleOptions.richTextSerializer);
|
|
204
|
+
proxyUserFileWithUndefinedFallback("richTextSerializer", moduleOptions.richTextSerializer, "Use `components.richTextComponents` instead.");
|
|
205
|
+
proxyUserFileWithUndefinedFallback("linkRel", moduleOptions.components.linkRel);
|
|
206
|
+
proxyUserFileWithUndefinedFallback("richTextComponents", moduleOptions.components.richTextComponents);
|
|
207
|
+
proxyUserFileWithUndefinedFallback("sliceZoneDefaultComponent", moduleOptions.components.sliceZoneDefaultComponent);
|
|
192
208
|
nuxt.options.build.transpile.push(resolver.resolve("runtime"), "@nuxtjs/prismic", "@prismicio/vue");
|
|
193
209
|
nuxt.options.vite.optimizeDeps ||= {};
|
|
194
210
|
nuxt.options.vite.optimizeDeps.exclude ||= [];
|
package/dist/runtime/plugin.js
CHANGED
|
@@ -6,6 +6,9 @@ import { useCookie, useRequestEvent, onNuxtReady, refreshNuxtData, useHead, useR
|
|
|
6
6
|
import _client from "#build/prismic/proxy/client";
|
|
7
7
|
import linkResolver from "#build/prismic/proxy/linkResolver";
|
|
8
8
|
import richTextSerializer from "#build/prismic/proxy/richTextSerializer";
|
|
9
|
+
import linkRel from "#build/prismic/proxy/linkRel";
|
|
10
|
+
import richTextComponents from "#build/prismic/proxy/richTextComponents";
|
|
11
|
+
import sliceZoneDefaultComponent from "#build/prismic/proxy/sliceZoneDefaultComponent";
|
|
9
12
|
export default defineNuxtPlugin({
|
|
10
13
|
name: "prismic:setup",
|
|
11
14
|
parallel: true,
|
|
@@ -38,7 +41,10 @@ export default defineNuxtPlugin({
|
|
|
38
41
|
components: {
|
|
39
42
|
linkInternalComponent: NuxtLink,
|
|
40
43
|
linkExternalComponent: NuxtLink,
|
|
41
|
-
...options.components
|
|
44
|
+
...options.components,
|
|
45
|
+
linkRel,
|
|
46
|
+
richTextComponents,
|
|
47
|
+
sliceZoneDefaultComponent
|
|
42
48
|
}
|
|
43
49
|
});
|
|
44
50
|
nuxtApp.vueApp.use(prismicPlugin);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxtjs/prismic",
|
|
3
|
-
"version": "4.0.0
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Easily connect your Nuxt application to your content hosted on Prismic",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nuxt",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"dev:build": "nuxt build playground",
|
|
41
41
|
"dev:preview": "nuxt preview playground",
|
|
42
42
|
"dev:generate": "nuxt generate playground",
|
|
43
|
-
"prepare": "nuxt prepare playground
|
|
43
|
+
"prepare": "nuxt prepare playground",
|
|
44
44
|
"release": "npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
|
|
45
45
|
"release:dry": "standard-version --dry-run",
|
|
46
46
|
"release:rc": "npm run test && standard-version --release-as major --prerelease rc && git push --follow-tags && npm run build && npm publish --tag rc",
|
|
@@ -53,31 +53,31 @@
|
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@nuxt/devtools-kit": "^1.7.0",
|
|
56
|
-
"@nuxt/kit": "^3.15.
|
|
57
|
-
"@prismicio/client": "^7.
|
|
58
|
-
"@prismicio/vue": "^5.0.0
|
|
59
|
-
"birpc": "0.
|
|
56
|
+
"@nuxt/kit": "^3.15.2",
|
|
57
|
+
"@prismicio/client": "^7.15.1",
|
|
58
|
+
"@prismicio/vue": "^5.0.0",
|
|
59
|
+
"birpc": "2.0.19",
|
|
60
60
|
"defu": "^6.1.4",
|
|
61
|
-
"pathe": "^
|
|
61
|
+
"pathe": "^2.0.2",
|
|
62
62
|
"sirv": "^3.0.0",
|
|
63
63
|
"terminate": "^2.8.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@iconify-json/carbon": "^1.2.5",
|
|
67
67
|
"@iconify-json/logos": "^1.2.4",
|
|
68
|
-
"@iconify-json/simple-icons": "^1.2.
|
|
68
|
+
"@iconify-json/simple-icons": "^1.2.21",
|
|
69
69
|
"@nuxt/devtools-ui-kit": "^1.7.0",
|
|
70
|
-
"@nuxt/eslint-config": "^0.7.
|
|
70
|
+
"@nuxt/eslint-config": "^0.7.5",
|
|
71
71
|
"@nuxt/module-builder": "^0.8.4",
|
|
72
|
-
"@nuxt/schema": "^3.15.
|
|
73
|
-
"@unocss/preset-icons": "^
|
|
74
|
-
"@vitest/coverage-v8": "^
|
|
75
|
-
"eslint": "^9.
|
|
76
|
-
"memfs": "^4.
|
|
77
|
-
"nuxt": "^3.15.
|
|
72
|
+
"@nuxt/schema": "^3.15.2",
|
|
73
|
+
"@unocss/preset-icons": "^65.4.2",
|
|
74
|
+
"@vitest/coverage-v8": "^3.0.2",
|
|
75
|
+
"eslint": "^9.18.0",
|
|
76
|
+
"memfs": "^4.17.0",
|
|
77
|
+
"nuxt": "^3.15.2",
|
|
78
78
|
"standard-version": "^9.5.0",
|
|
79
|
-
"typescript": "^5.7.
|
|
80
|
-
"vitest": "^
|
|
79
|
+
"typescript": "^5.7.3",
|
|
80
|
+
"vitest": "^3.0.2"
|
|
81
81
|
},
|
|
82
82
|
"engines": {
|
|
83
83
|
"node": ">=16.10.0"
|
package/src/module.ts
CHANGED
|
@@ -49,6 +49,12 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
49
49
|
richTextSerializer: '~/app/prismic/richTextSerializer',
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
let prismicComponentsFiles = {
|
|
53
|
+
linkRel: '~/app/prismic/linkRel',
|
|
54
|
+
richTextComponents: '~/app/prismic/richTextComponents',
|
|
55
|
+
sliceZoneDefaultComponent: '~/app/prismic/sliceZoneDefaultComponent',
|
|
56
|
+
}
|
|
57
|
+
|
|
52
58
|
// Nuxt 4 sets `app` as its `srcDir`, so we're just using the `prismic` folder there.
|
|
53
59
|
if (
|
|
54
60
|
nuxt.options?.future?.compatibilityVersion === 4
|
|
@@ -59,6 +65,11 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
59
65
|
linkResolver: '~/prismic/linkResolver',
|
|
60
66
|
richTextSerializer: '~/prismic/richTextSerializer',
|
|
61
67
|
}
|
|
68
|
+
prismicComponentsFiles = {
|
|
69
|
+
linkRel: '~/prismic/linkRel',
|
|
70
|
+
richTextComponents: '~/prismic/richTextComponents',
|
|
71
|
+
sliceZoneDefaultComponent: '~/prismic/sliceZoneDefaultComponent',
|
|
72
|
+
}
|
|
62
73
|
}
|
|
63
74
|
|
|
64
75
|
return {
|
|
@@ -67,7 +78,7 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
67
78
|
clientConfig: {},
|
|
68
79
|
...prismicFiles,
|
|
69
80
|
injectComponents: true,
|
|
70
|
-
components:
|
|
81
|
+
components: prismicComponentsFiles,
|
|
71
82
|
preview: '/preview',
|
|
72
83
|
toolbar: true,
|
|
73
84
|
devtools: true,
|
|
@@ -88,14 +99,17 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
88
99
|
|
|
89
100
|
// Add runtime user code
|
|
90
101
|
const proxyUserFileWithUndefinedFallback
|
|
91
|
-
= (filename: string, path: string,
|
|
102
|
+
= (filename: string, path: string, deprecated?: boolean | string): boolean => {
|
|
92
103
|
const resolvedFilename = `prismic/proxy/${filename}.ts`
|
|
93
104
|
const resolvedPath = path.replace(/^(~~|@@)/, nuxt.options.rootDir).replace(/^(~|@)/, nuxt.options.srcDir)
|
|
94
|
-
const maybeUserFile = fileExists(resolvedPath,
|
|
105
|
+
const maybeUserFile = fileExists(resolvedPath, ['js', 'mjs', 'ts', 'vue'])
|
|
95
106
|
|
|
96
107
|
if (maybeUserFile) {
|
|
97
108
|
// If user file exists, proxy it with vfs
|
|
98
109
|
logger.info(`Using user-defined \`${filename}\` at \`${maybeUserFile.replace(nuxt.options.srcDir, '~').replace(nuxt.options.rootDir, '~~').replace(/\\/g, '/')}\``)
|
|
110
|
+
if (deprecated) {
|
|
111
|
+
logger.warn(`\`${filename}\` is deprecated and will be removed in a future version.${typeof deprecated === 'string' ? `${deprecated}` : ''}`)
|
|
112
|
+
}
|
|
99
113
|
|
|
100
114
|
addTemplate({
|
|
101
115
|
filename: resolvedFilename,
|
|
@@ -121,7 +135,12 @@ export default defineNuxtModule<PrismicModuleOptions>({
|
|
|
121
135
|
return
|
|
122
136
|
}
|
|
123
137
|
proxyUserFileWithUndefinedFallback('linkResolver', moduleOptions.linkResolver!)
|
|
124
|
-
proxyUserFileWithUndefinedFallback('richTextSerializer', moduleOptions.richTextSerializer
|
|
138
|
+
proxyUserFileWithUndefinedFallback('richTextSerializer', moduleOptions.richTextSerializer!, 'Use `components.richTextComponents` instead.')
|
|
139
|
+
|
|
140
|
+
// Components
|
|
141
|
+
proxyUserFileWithUndefinedFallback('linkRel', moduleOptions.components!.linkRel!)
|
|
142
|
+
proxyUserFileWithUndefinedFallback('richTextComponents', moduleOptions.components!.richTextComponents!)
|
|
143
|
+
proxyUserFileWithUndefinedFallback('sliceZoneDefaultComponent', moduleOptions.components!.sliceZoneDefaultComponent!)
|
|
125
144
|
|
|
126
145
|
nuxt.options.build.transpile.push(resolver.resolve('runtime'), '@nuxtjs/prismic', '@prismicio/vue')
|
|
127
146
|
nuxt.options.vite.optimizeDeps ||= {}
|
package/src/runtime/plugin.ts
CHANGED
|
@@ -12,6 +12,12 @@ import _client from '#build/prismic/proxy/client'
|
|
|
12
12
|
import linkResolver from '#build/prismic/proxy/linkResolver'
|
|
13
13
|
// @ts-expect-error vfs cannot be resolved here
|
|
14
14
|
import richTextSerializer from '#build/prismic/proxy/richTextSerializer'
|
|
15
|
+
// @ts-expect-error vfs cannot be resolved here
|
|
16
|
+
import linkRel from '#build/prismic/proxy/linkRel'
|
|
17
|
+
// @ts-expect-error vfs cannot be resolved here
|
|
18
|
+
import richTextComponents from '#build/prismic/proxy/richTextComponents'
|
|
19
|
+
// @ts-expect-error vfs cannot be resolved here
|
|
20
|
+
import sliceZoneDefaultComponent from '#build/prismic/proxy/sliceZoneDefaultComponent'
|
|
15
21
|
|
|
16
22
|
export default defineNuxtPlugin({
|
|
17
23
|
name: 'prismic:setup',
|
|
@@ -51,6 +57,9 @@ export default defineNuxtPlugin({
|
|
|
51
57
|
linkInternalComponent: NuxtLink,
|
|
52
58
|
linkExternalComponent: NuxtLink,
|
|
53
59
|
...options.components,
|
|
60
|
+
linkRel,
|
|
61
|
+
richTextComponents,
|
|
62
|
+
sliceZoneDefaultComponent,
|
|
54
63
|
},
|
|
55
64
|
})
|
|
56
65
|
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2
|
+
import type { PrismicPluginOptions, SliceComponentProps, TODOSliceComponent } from '@prismicio/vue'
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* `@nuxtjs/prismic` module options.
|
|
@@ -6,7 +7,10 @@ import type { PrismicPluginOptions } from '@prismicio/vue'
|
|
|
6
7
|
* @see Module documentation: {@link https://prismic.nuxtjs.org}
|
|
7
8
|
* @see Prismic documentation: {@link https://prismic.io/docs/nuxt-3-setup}
|
|
8
9
|
*/
|
|
9
|
-
export type PrismicModuleOptions = Omit<
|
|
10
|
+
export type PrismicModuleOptions = Omit<
|
|
11
|
+
PrismicPluginOptions,
|
|
12
|
+
'endpoint' | 'client' | 'linkResolver' | 'richTextSerializer' | 'components'
|
|
13
|
+
> & {
|
|
10
14
|
/**
|
|
11
15
|
* A Prismic repository endpoint to init the module's `@prismicio/client`
|
|
12
16
|
* instance used to fetch content from a Prismic repository with.
|
|
@@ -62,6 +66,8 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
|
|
|
62
66
|
* An optional path to a file exporting an HTML serializer to customize
|
|
63
67
|
* the way rich text fields are rendered.
|
|
64
68
|
*
|
|
69
|
+
* @deprecated Use `components.richTextComponents` instead.
|
|
70
|
+
*
|
|
65
71
|
* @see HTML serializer documentation {@link https://prismic.io/docs/rich-text}
|
|
66
72
|
*/
|
|
67
73
|
richTextSerializer?: string
|
|
@@ -78,7 +84,7 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
|
|
|
78
84
|
preview?: string | false
|
|
79
85
|
|
|
80
86
|
/**
|
|
81
|
-
* Whether
|
|
87
|
+
* Whether to inject Prismic toolbar script.
|
|
82
88
|
*
|
|
83
89
|
* @remarks
|
|
84
90
|
* The toolbar script is required for previews to work.
|
|
@@ -88,9 +94,44 @@ export type PrismicModuleOptions = Omit<PrismicPluginOptions, 'endpoint' | 'clie
|
|
|
88
94
|
toolbar?: boolean
|
|
89
95
|
|
|
90
96
|
/**
|
|
91
|
-
* Whether
|
|
97
|
+
* Whether to enable Prismic Nuxt DevTools integration.
|
|
92
98
|
*
|
|
93
99
|
* @defaultValue `true`
|
|
94
100
|
*/
|
|
95
101
|
devtools?: boolean
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Options used by Prismic Vue components.
|
|
105
|
+
*/
|
|
106
|
+
components?: Omit<
|
|
107
|
+
Required<PrismicPluginOptions>['components'],
|
|
108
|
+
'richTextComponents' | 'linkRel' | 'sliceZoneDefaultComponent' | 'linkInternalComponent' | 'linkExternalComponent'
|
|
109
|
+
> & {
|
|
110
|
+
/**
|
|
111
|
+
* An optional path to a file exporting the `rel` attribute to apply on links.
|
|
112
|
+
* It can export a function to use the link's metadata to determine the `rel` value.
|
|
113
|
+
*
|
|
114
|
+
* @defaultValue `"noreferrer"` for external links.
|
|
115
|
+
*/
|
|
116
|
+
linkRel?: string
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* An optional path to a file exporting a map of Rich Text block types to Vue Components.
|
|
120
|
+
* It is used to render Rich Text or title fields.
|
|
121
|
+
*
|
|
122
|
+
* @see Templating Rich Text and title fields from Prismic {@link https://prismic.io/docs/rich-text}
|
|
123
|
+
*/
|
|
124
|
+
richTextComponents?: string
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* An optional path to a file exporting a component or a functional component rendered
|
|
128
|
+
* if a component mapping from the `components` prop cannot be found.
|
|
129
|
+
*
|
|
130
|
+
* @remarks
|
|
131
|
+
* Components will be rendered using the {@link SliceComponentProps} interface.
|
|
132
|
+
*
|
|
133
|
+
* @defaultValue `null` when `process.env.NODE_ENV === "production"` else {@link TODOSliceComponent}
|
|
134
|
+
*/
|
|
135
|
+
sliceZoneDefaultComponent?: string
|
|
136
|
+
}
|
|
96
137
|
}
|