@nuxtjs/prismic 3.2.1 → 3.3.1

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 (45) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -7
  3. package/dist/client/200.html +11 -11
  4. package/dist/client/404.html +11 -11
  5. package/dist/client/_nuxt/{Lz2p7R1y.js → B4G-IZst.js} +1 -1
  6. package/dist/client/_nuxt/BXaKOz4R.js +2 -0
  7. package/dist/client/_nuxt/{D54RSGlc.js → Bn9u41Uw.js} +1 -1
  8. package/dist/client/_nuxt/{ChHt1xqE.js → CpxYXSTt.js} +1 -1
  9. package/dist/client/_nuxt/D2P5wF0N.js +1 -0
  10. package/dist/client/_nuxt/DCUMl-h9.js +24 -0
  11. package/dist/client/_nuxt/builds/latest.json +1 -1
  12. package/dist/client/_nuxt/builds/meta/90726dd4-ebfb-46c1-9125-67d088c2862d.json +1 -0
  13. package/dist/client/_nuxt/entry.CtO0E-QA.css +1 -0
  14. package/dist/client/_nuxt/error-404.luvduoeL.css +1 -0
  15. package/dist/client/_nuxt/error-500.C5gpBh_R.css +1 -0
  16. package/dist/client/_nuxt/index.14_QEbrK.css +1 -0
  17. package/dist/client/index.html +11 -11
  18. package/dist/module.json +6 -2
  19. package/dist/module.mjs +54 -18
  20. package/dist/runtime/{preview.vue → PrismicPreview.vue} +3 -2
  21. package/dist/runtime/plugin.client.d.ts +0 -2
  22. package/dist/runtime/{plugin.client.mjs → plugin.client.js} +1 -1
  23. package/dist/runtime/plugin.d.ts +0 -2
  24. package/dist/types.d.mts +40 -0
  25. package/dist/types.d.ts +40 -0
  26. package/package.json +34 -37
  27. package/src/devtools/index.ts +14 -13
  28. package/src/devtools/types.ts +6 -6
  29. package/src/lib/fileExists.ts +2 -1
  30. package/src/module.ts +87 -28
  31. package/src/runtime/{preview.vue → PrismicPreview.vue} +3 -2
  32. package/src/runtime/plugin.client.ts +1 -1
  33. package/src/runtime/plugin.ts +15 -14
  34. package/src/runtime/usePrismicPreview.ts +1 -1
  35. package/src/types.ts +9 -9
  36. package/dist/client/_nuxt/C7iAG9wF.js +0 -1
  37. package/dist/client/_nuxt/CeI64nSh.js +0 -2
  38. package/dist/client/_nuxt/Cjy23aWT.js +0 -29
  39. package/dist/client/_nuxt/builds/meta/4cf6b9d4-082b-4191-a00f-b315b1452682.json +0 -1
  40. package/dist/client/_nuxt/entry.CDGvsxww.css +0 -1
  41. package/dist/client/_nuxt/error-404.Cp3iMWid.css +0 -1
  42. package/dist/client/_nuxt/error-500.OT9K-Srj.css +0 -1
  43. package/dist/client/_nuxt/index.ofkS6DTB.css +0 -1
  44. /package/dist/runtime/{plugin.mjs → plugin.js} +0 -0
  45. /package/dist/runtime/{usePrismicPreview.mjs → usePrismicPreview.js} +0 -0
package/dist/module.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  import { join } from 'node:path';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { existsSync } from 'node:fs';
2
4
  import { defu } from 'defu';
3
- import { defineNuxtModule, createResolver, addPlugin, addComponent, addImports, extendPages, addTemplate } from '@nuxt/kit';
5
+ import { defineNuxtModule, getNuxtVersion, createResolver, addPlugin, addComponent, addImports, extendPages, addTemplate } from '@nuxt/kit';
4
6
  import * as prismicVue from '@prismicio/vue';
5
- import { existsSync } from 'node:fs';
6
- import { readFile } from 'node:fs/promises';
7
7
  import { onDevToolsInitialized, extendServerRpc, startSubprocess } from '@nuxt/devtools-kit';
8
8
  import { resolve } from 'pathe';
9
9
  import terminate from 'terminate';
@@ -127,21 +127,33 @@ const module = defineNuxtModule({
127
127
  meta: {
128
128
  name: "@nuxtjs/prismic",
129
129
  configKey: "prismic",
130
- compatibility: { nuxt: "^3.7.0" }
130
+ compatibility: { nuxt: ">=3.7.0" }
131
+ },
132
+ defaults: (nuxt) => {
133
+ let prismicFiles = {
134
+ client: "~/app/prismic/client",
135
+ linkResolver: "~/app/prismic/linkResolver",
136
+ richTextSerializer: "~/app/prismic/richTextSerializer"
137
+ };
138
+ if (nuxt.options?.future?.compatibilityVersion === 4 || getNuxtVersion(nuxt).startsWith("4")) {
139
+ prismicFiles = {
140
+ client: "~/prismic/client",
141
+ linkResolver: "~/prismic/linkResolver",
142
+ richTextSerializer: "~/prismic/richTextSerializer"
143
+ };
144
+ }
145
+ return {
146
+ endpoint: "",
147
+ environment: "",
148
+ clientConfig: {},
149
+ ...prismicFiles,
150
+ injectComponents: true,
151
+ components: {},
152
+ preview: "/preview",
153
+ toolbar: true,
154
+ devtools: true
155
+ };
131
156
  },
132
- defaults: (_nuxt) => ({
133
- endpoint: "",
134
- environment: "",
135
- clientConfig: {},
136
- client: "~/app/prismic/client",
137
- linkResolver: "~/app/prismic/linkResolver",
138
- richTextSerializer: "~/app/prismic/richTextSerializer",
139
- injectComponents: true,
140
- components: {},
141
- preview: "/preview",
142
- toolbar: true,
143
- devtools: true
144
- }),
145
157
  hooks: {},
146
158
  setup(options, nuxt) {
147
159
  nuxt.options.runtimeConfig.public ||= {};
@@ -223,7 +235,7 @@ const module = defineNuxtModule({
223
235
  name: "prismic-preview",
224
236
  path: moduleOptions.preview,
225
237
  // Checked before
226
- file: resolver.resolve("runtime/preview.vue")
238
+ file: resolver.resolve("runtime/PrismicPreview.vue")
227
239
  });
228
240
  });
229
241
  }
@@ -231,6 +243,30 @@ const module = defineNuxtModule({
231
243
  logger.warn("`toolbar` option is disabled but `preview` is enabled. Previews won't work unless you manually load the toolbar.");
232
244
  }
233
245
  }
246
+ nuxt.hook("eslint:config:addons", (addons) => {
247
+ addons.push({
248
+ name: "@nuxtjs/prismic",
249
+ async getConfigs() {
250
+ const configPath = resolver.resolve(nuxt.options.rootDir, "slicemachine.config.json");
251
+ const configs = [];
252
+ try {
253
+ if (existsSync(configPath)) {
254
+ const config = JSON.parse(await readFile(configPath, "utf-8"));
255
+ if (config && "libraries" in config && Array.isArray(config.libraries)) {
256
+ configs.push(JSON.stringify({
257
+ files: config.libraries.map((library) => `${library.replace("./", "")}/**/index.vue`),
258
+ rules: {
259
+ "vue/multi-word-component-names": "off"
260
+ }
261
+ }));
262
+ }
263
+ }
264
+ } catch (error) {
265
+ }
266
+ return { configs };
267
+ }
268
+ });
269
+ });
234
270
  }
235
271
  });
236
272
 
@@ -3,7 +3,8 @@
3
3
  <figure>
4
4
  <img
5
5
  src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAiIGhlaWdodD0iMzYiPgogIDxwYXRoIGZpbGw9IiMyMTI3MzUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTM1LjUzOCAxOC43NGwtMi42NTUtMi42NmExLjEyNiAxLjEyNiAwIDAgMS0uMzI5LS43OTZ2LTMuMjU2YzAtMy4wMDktLjMxMy00LjEtLjktNS4yYTYuMTI3IDYuMTI3IDAgMCAwLTIuNTQ2LTIuNTUxYy0xLjA5Ny0uNTg5LTIuMTg2LS45MDItNS4xODgtLjkwMmgtNC4yOTVhLjIyNS4yMjUgMCAwIDEtLjE1OC0uMzg0TDIyLjEyMi4zM2MuMjEtLjIxMS40OTYtLjMzLjc5NC0uMzNoMS40OTNjNC4wMDMgMCA1LjQ1NS40MTggNi45MTkgMS4yMDJhOC4xNjkgOC4xNjkgMCAwIDEgMy4zOTQgMy40MDJjLjc4MyAxLjQ2NyAxLjIgMi45MjIgMS4yIDYuOTMzdjcuMDQ1YS4yMjUuMjI1IDAgMCAxLS4zODQuMTU5ek0xNy4yMjIgMzUuNjE3bDIuNjU1LTIuNjYxYy4yMS0uMjExLjQ5Ni0uMzMuNzk0LS4zM2gzLjI0OWMzLjAwMiAwIDQuMDktLjMxMyA1LjE4OC0uOTAyYTYuMTI3IDYuMTI3IDAgMCAwIDIuNTQ2LTIuNTUxYy41ODctMS4xLjktMi4xOTEuOS01LjJ2LTQuMzA0YS4yMjUuMjI1IDAgMCAxIC4zODMtLjE1OWwyLjY1NiAyLjY2MWMuMjEuMjExLjMyOS40OTguMzI5Ljc5NnYxLjQ5N2MwIDQuMDExLS40MTcgNS40NjYtMS4yIDYuOTMzYTguMTY5IDguMTY5IDAgMCAxLTMuMzk0IDMuNDAyQzI5Ljg2NCAzNS41ODIgMjguNDEyIDM2IDI0LjQwOSAzNkgxNy4zOGEuMjI1LjIyNSAwIDAgMS0uMTU4LS4zODR6TS4zODMgMTcuMjU5TDMuMDQgMTkuOTJjLjIxLjIxMS4zMjkuNDk4LjMyOS43OTZ2My4yNTZjMCAzLjAwOS4zMTIgNC4xLjkgNS4yYTYuMTI3IDYuMTI3IDAgMCAwIDIuNTQ1IDIuNTUxYzEuMDk4LjU4OSAyLjE4Ny45MDIgNS4xODkuOTAyaDQuMjk0YS4yMjUuMjI1IDAgMCAxIC4xNi4zODRsLTIuNjU3IDIuNjYxYy0uMjEuMjExLS40OTYuMzMtLjc5My4zM2gtMS40OTRjLTQuMDAzIDAtNS40NTQtLjQxOC02LjkxOC0xLjIwMkE4LjE2OSA4LjE2OSAwIDAgMSAxLjIgMzEuMzk2Qy40MTcgMjkuOTI5IDAgMjguNDc0IDAgMjQuNDYzdi03LjA0NWEuMjI1LjIyNSAwIDAgMSAuMzgzLS4xNTl6TTE2LjA0NSAzLjA0NWMtLjIxMS4yMTEtLjQ5Ni4zMy0uNzk0LjMzaC0zLjI0OWMtMy4wMDIgMC00LjA5MS4zMTMtNS4xODkuOTAyYTYuMTI3IDYuMTI3IDAgMCAwLTIuNTQ2IDIuNTUxYy0uNTg3IDEuMS0uOSAyLjE5MS0uOSA1LjJ2NC4zMDRhLjIyNS4yMjUgMCAwIDEtLjM4My4xNTlMLjMzIDEzLjgzQTEuMTI2IDEuMTI2IDAgMCAxIDAgMTMuMDM0di0xLjQ5N2MwLTQuMDExLjQxNy01LjQ2NiAxLjItNi45MzNhOC4xNjkgOC4xNjkgMCAwIDEgMy4zOTQtMy40MDJDNi4wNTguNDE4IDcuNTEgMCAxMS41MTIgMGg3LjAzYS4yMjUuMjI1IDAgMCAxIC4xNTguMzg0bC0yLjY1NSAyLjY2MXptMTMuODg0IDEwLjA5MWwtMy42Mi0zLjQ2OGMtLjI0LS4yNC0uNTItLjQxNC0uODE5LS41MjNBMi4yMzYgMi4yMzYgMCAwIDAgMjQuNjk2IDlIMTQuMDFhLjIyNS4yMjUgMCAwIDEtLjE1OS0uMzg0bDIuNjU5LTIuNjYyYy4yMS0uMjEuNDk1LS4zMjkuNzkzLS4zMjloOC41MTZjMi40OCAwIDQuNDkgMi4wMTUgNC40OSA0LjV2Mi44NDlhLjIyNS4yMjUgMCAwIDEtLjM4LjE2MnptLTcuMTE1IDE2Ljg2MWwzLjQ2LTMuNjI5Yy4yNC0uMjQuNDE0LS41Mi41MjMtLjgyYTIuMjUgMi4yNSAwIDAgMCAuMTQ0LS43OTV2LTEwLjcxYS4yMjUuMjI1IDAgMCAxIC4zODQtLjE1OWwyLjY1NiAyLjY2NGMuMjEuMjExLjMyOC40OTcuMzI4Ljc5NnY4LjUzNGMwIDIuNDg1LTIuMDEgNC41LTQuNDkgNC41aC0yLjg0M2EuMjI1LjIyNSAwIDAgMS0uMTYyLS4zOHpNNS45OTIgMjIuODY0bDMuNjIyIDMuNDY4Yy4yMzkuMjQuNTIuNDE0LjgxOC41MjMuMjQ2LjA5NC41MTQuMTQ1Ljc5NC4xNDVoMTAuNjg2YS4yMjUuMjI1IDAgMCAxIC4xNTguMzg0bC0yLjY1OCAyLjY2MmMtLjIxLjIxLS40OTYuMzI5LS43OTMuMzI5aC04LjUxNmE0LjQ5NSA0LjQ5NSAwIDAgMS00LjQ5LTQuNXYtMi44NDlhLjIyNS4yMjUgMCAwIDEgLjM4LS4xNjJ6bTcuMTE2LTE2Ljg1OWwtMy40NjEgMy42M2MtLjI0LjI0LS40MTMuNTItLjUyMi44MmEyLjI1IDIuMjUgMCAwIDAtLjE0NS43OTV2MTAuNzFhLjIyNS4yMjUgMCAwIDEtLjM4My4xNThsLTIuNjU2LTIuNjY0YTEuMTI2IDEuMTI2IDAgMCAxLS4zMjgtLjc5NXYtOC41MzRjMC0yLjQ4NSAyLjAxLTQuNSA0LjQ5LTQuNWgyLjg0M2EuMjI1LjIyNSAwIDAgMSAuMTYyLjM4em0zMy4xMDUgNC4zNzloLjg2OGMuNTkzIDAgMS4wNzQuNDggMS4wNzQgMS4wNzR2MS4wMTZjMCAuMDMyLjAyNi4wNTcuMDU3LjA1Ny40OTUtLjg3NSAxLjE2LTEuNTEgMS45OTgtMS45MDlhNi4yMzYgNi4yMzYgMCAwIDEgMi43MS0uNTk2YzEuMDQ3IDAgMS45ODkuMTk0IDIuODI2LjU4Mi44MzcuMzg3IDEuNTUuOTIgMi4xNCAxLjU5NWE2Ljg5NiA2Ljg5NiAwIDAgMSAxLjM0IDIuMzg2Yy4zMDUuOTE1LjQ1NyAxLjkuNDU3IDIuOTUzYTguNzk1IDguNzk1IDAgMCAxLS40ODUgMi45NTMgNy40MTggNy40MTggMCAwIDEtMS4zNTUgMi4zODYgNi4yNjkgNi4yNjkgMCAwIDEtMi4wOTcgMS41OTUgNi4xODIgNi4xODIgMCAwIDEtMi42ODMuNTgyYy0uNjQ3IDAtMS4yMTctLjA3LTEuNzEyLS4yMDlhNS43NTEgNS43NTEgMCAwIDEtMS4zMTItLjUzNyA1LjI1MiA1LjI1MiAwIDAgMS0uOTctLjcgNS4wMTIgNS4wMTIgMCAwIDEtLjY1Ny0uNzMxLjA4Ni4wODYgMCAwIDAtLjA4Ni4wODV2Ny4yMjRhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwM2ExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0xMC4wNDYgNy4xNThjMC0uNTU3LS4wOS0xLjA5NC0uMjctMS42MWE0LjA3OCA0LjA3OCAwIDAgMC0uOC0xLjM3MyAzLjk5IDMuOTkgMCAwIDAtMS4yNy0uOTU0Yy0uNDk0LS4yMzktMS4wNTUtLjM1OC0xLjY4My0uMzU4LS42MjggMC0xLjE5LjEyLTEuNjg0LjM1OGEzLjk5IDMuOTkgMCAwIDAtMS4yNy45NTQgNC4wNzggNC4wNzggMCAwIDAtLjc5OSAxLjM3MiA0Ljg0NSA0Ljg0NSAwIDAgMC0uMjcgMS42MWMwIC41NTguMDkgMS4wOTQuMjcgMS42MTEuMTgxLjUxNy40NDcuOTc1LjggMS4zNzJhMy45OSAzLjk5IDAgMCAwIDEuMjcuOTU1Yy40OTQuMjM4IDEuMDU1LjM1OCAxLjY4My4zNTguNjI4IDAgMS4xODktLjEyIDEuNjgzLS4zNThhMy45OSAzLjk5IDAgMCAwIDEuMjctLjk1NWMuMzUyLS4zOTcuNjE4LS44NTUuOC0xLjM3Mi4xOC0uNTE3LjI3LTEuMDUzLjI3LTEuNjF6bTguMzU5LTcuMTU4aC45OGMuNjI2IDAgMS4xMzQuNTA3IDEuMTM0IDEuMTMzdjEuMDc3YzAgLjAzMS4wMjUuMDU3LjA1Ny4wNTcuMzgtLjgzNi45MjItMS40ODIgMS42MjYtMS45MzkuNzA0LS40NTcgMS41MTMtLjY4NiAyLjQyNi0uNjg2LjIwOSAwIC40MTQuMDIuNjEzLjA2YS43NjIuNzYyIDAgMCAxIC42MTQuNzQ3djEuOTY0YS43MTUuNzE1IDAgMCAxLS44NDIuNzA0IDQuNTggNC41OCAwIDAgMC0uODEzLS4wNzVjLS44IDAtMS40NDEuMTU0LTEuOTI2LjQ2Mi0uNDg1LjMwOS0uODU2LjY2MS0xLjExMyAxLjA2YTMuNiAzLjYgMCAwIDAtLjUxNCAxLjE5MmMtLjA4Ni4zOTgtLjEyOC42OTYtLjEyOC44OTV2Ni4zNTVhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0xMS41ODUgMGguODA0Yy43MjMgMCAxLjMxLjU4NyAxLjMxIDEuMzFWMjMuMzlhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0tMS43OTUtNC44NjJjMC0uNTc2LjIwNC0xLjA3OC42MTMtMS41MDYuNDEtLjQyNy45MjgtLjY0MSAxLjU1NS0uNjQxLjYyOCAwIDEuMTU2LjIwNCAxLjU4NC42MTEuNDI4LjQwOC42NDIuOTIuNjQyIDEuNTM2IDAgLjYxNy0uMjE0IDEuMTI5LS42NDIgMS41MzYtLjQyOC40MDgtLjk1Ni42MTItMS41ODQuNjEyLS42MjcgMC0xLjE0Ni0uMjE0LTEuNTU1LS42NDFhMi4xMDggMi4xMDggMCAwIDEtLjYxMy0xLjUwN3ptMTQuNzUzIDguMTMzYy0uNjk1LS41MS0xLjMxNC0uNzY2LTEuODU1LS43NjYtLjQ1NyAwLS45MDQuMTItMS4zNDIuMzU4LS40MzcuMjM5LS42NTYuNjI2LS42NTYgMS4xNjMgMCAuNDM4LjE4Ljc1Ni41NDIuOTU1LjM2Mi4xOTguODE4LjM2OCAxLjM3LjUwNy41NTIuMTM5IDEuMTQ2LjI4MyAxLjc4My40MzIuNjM4LjE1IDEuMjMyLjM3OCAxLjc4NC42ODYuNTUyLjMwOCAxLjAwOC43MyAxLjM3IDEuMjY4LjM2MS41MzcuNTQyIDEuMjcyLjU0MiAyLjIwNyAwIC44NTUtLjE3NiAxLjU3NS0uNTI4IDIuMTYyYTQuMjQxIDQuMjQxIDAgMCAxLTEuMzcgMS40MTcgNS45MjcgNS45MjcgMCAwIDEtMS44OTcuNzc1IDkuNTUzIDkuNTUzIDAgMCAxLTIuMTEyLjIzOWMtMS4wNjUgMC0yLjA0NS0uMTYtMi45NC0uNDc3LS4zNS0uMTI1LS43Ny0uMzc1LTEuMjYtLjc1MWExLjMxIDEuMzEgMCAwIDEtLjExOS0xLjk3NmwuMzU1LS4zNDhhMS4zMSAxLjMxIDAgMCAxIDEuNzgzLS4wNDhjLjIwOC4xODMuMzg4LjMyNC41NC40MjMuNTA0LjMyOSAxLjExOC40OTMgMS44NC40OTMuMjQ4IDAgLjUwNS0uMDMuNzcxLS4wOS4yNjctLjA2LjUxNC0uMTU5Ljc0Mi0uMjk4LjIyOC0uMTQuNDE0LS4zMTMuNTU3LS41MjIuMTQyLS4yMDkuMjE0LS40NTIuMjE0LS43MyAwLS40OTgtLjE4MS0uODY2LS41NDMtMS4xMDQtLjM2MS0uMjM5LS44MTgtLjQzMy0xLjM3LS41ODJhMjguNzQ2IDI4Ljc0NiAwIDAgMC0xLjc4My0uNDE3IDYuNzA3IDYuNzA3IDAgMCAxLTEuNzgzLS42MjcgMy43OTUgMy43OTUgMCAwIDEtMS4zNy0xLjIwOGMtLjM2MS0uNTE3LS41NDItMS4yMzMtLjU0Mi0yLjE0NyAwLS43OTUuMTU3LTEuNDg2LjQ3LTIuMDczYTQuMjY1IDQuMjY1IDAgMCAxIDEuMjQyLTEuNDQ2IDUuMjU2IDUuMjU2IDAgMCAxIDEuNzctLjgzNiA3Ljc3MyA3Ljc3MyAwIDAgMSAyLjAyNS0uMjY4Yy45MTMgMCAxLjgxNy4xNjQgMi43MTEuNDkyLjMyNC4xMTkuNjg1LjMzOSAxLjA4NC42NmExLjMxIDEuMzEgMCAwIDEgLjA3NSAxLjk3NWwtLjQyNi40MDFhMS4zMSAxLjMxIDAgMCAxLTEuNjc0LjEwMXptNy43ODctMy4yNzFoLjYzM2MuNzIzIDAgMS4zMS41ODcgMS4zMSAxLjMxdi45MjdhNS42MDIgNS42MDIgMCAwIDEgMS41MjctMS44MDVjLjY3NS0uNTI3IDEuNTgzLS43OSAyLjcyNS0uNzkgMi4xNSAwIDMuNTc2Ljg4NSA0LjI4IDIuNjU0LjQ5NS0uOTE0IDEuMTEzLTEuNTg1IDEuODU1LTIuMDEzLjc0Mi0uNDI3IDEuNjI2LS42NDEgMi42NTQtLjY0MS45MTMgMCAxLjY4My4xNTkgMi4zMTEuNDc3YTQuMDg0IDQuMDg0IDAgMCAxIDEuNTI3IDEuMzEyYy4zOS41NTcuNjcgMS4yMDguODQxIDEuOTU0LjE3Mi43NDYuMjU3IDEuNTQ2LjI1NyAyLjR2Ny4yMmExLjMxIDEuMzEgMCAwIDEtMS4zMSAxLjMxaC0uODA0YTEuMzEgMS4zMSAwIDAgMS0xLjMxLTEuMzF2LTYuODAyYzAtLjQzNy0uMDM4LS44Ni0uMTE0LTEuMjY3YTMuMTExIDMuMTExIDAgMCAwLS40LTEuMDc0IDIuMDYyIDIuMDYyIDAgMCAwLS43Ny0uNzNjLS4zMjQtLjE4LS43NDItLjI2OS0xLjI1Ni0uMjY5LS41MzIgMC0uOTg0LjEwNC0xLjM1NS4zMTNhMi42ODYgMi42ODYgMCAwIDAtLjkxMy44MzUgMy41MDggMy41MDggMCAwIDAtLjUxNCAxLjE5MyA1Ljk0IDUuOTQgMCAwIDAtLjE1NyAxLjM1N3Y2LjQ0NWExLjMxIDEuMzEgMCAwIDEtMS4zMSAxLjMxaC0uODA0YTEuMzEgMS4zMSAwIDAgMS0xLjMxLTEuMzF2LTcuMjJjMC0uODk1LS4xOC0xLjYwNi0uNTQyLTIuMTMzLS4zNjItLjUyNi0uOTYtLjc5LTEuNzk4LS43OS0uNTcgMC0xLjA1MS4xLTEuNDQxLjI5OC0uMzkuMi0uNzEzLjQ2OC0uOTcuODA2YTMuMjYgMy4yNiAwIDAgMC0uNTU3IDEuMTYzIDUuNDEzIDUuNDEzIDAgMCAwLS4xNyAxLjM3MnY2LjUwNGExLjMxIDEuMzEgMCAwIDEtMS4zMTEgMS4zMWgtLjgwNGExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg3LTEuMzEgMS4zMS0xLjMxem0yNS40NTQgMGguODAzYy43MjQgMCAxLjMxLjU4NyAxLjMxIDEuMzFWMjMuMzlhMS4zMSAxLjMxIDAgMCAxLTEuMzEgMS4zMWgtLjgwM2ExLjMxIDEuMzEgMCAwIDEtMS4zMS0xLjMxVjExLjY5NGMwLS43MjMuNTg2LTEuMzEgMS4zMS0xLjMxem0tMS43OTYtNC44NjJjMC0uNTc2LjIwNS0xLjA3OC42MTQtMS41MDYuNDA5LS40MjcuOTI3LS42NDEgMS41NTUtLjY0MS42MjggMCAxLjE1Ni4yMDQgMS41ODQuNjExLjQyOC40MDguNjQyLjkyLjY0MiAxLjUzNiAwIC42MTctLjIxNCAxLjEyOS0uNjQyIDEuNTM2LS40MjguNDA4LS45NTYuNjEyLTEuNTg0LjYxMi0uNjI4IDAtMS4xNDYtLjIxNC0xLjU1NS0uNjQxYTIuMTA4IDIuMTA4IDAgMCAxLS42MTQtMS41MDd6bTE2Ljc1MSA4LjM3M2EzLjU2NCAzLjU2NCAwIDAgMC0uMzcxLS4yNiAyLjYwNyAyLjYwNyAwIDAgMC0xLjM0Mi0uMzg4Yy0uNjI3IDAtMS4xODkuMTItMS42ODMuMzU4YTMuOTkgMy45OSAwIDAgMC0xLjI3Ljk1NCA0LjA3OCA0LjA3OCAwIDAgMC0uNzk5IDEuMzcyIDQuODQ1IDQuODQ1IDAgMCAwLS4yNzEgMS42MWMwIC41NTguMDkgMS4wOTQuMjcxIDEuNjExLjE4LjUxNy40NDcuOTc1LjggMS4zNzJhMy45OSAzLjk5IDAgMCAwIDEuMjY5Ljk1NWMuNDk0LjIzOCAxLjA1Ni4zNTggMS42ODMuMzU4LjUzMyAwIDEuMDI4LS4xMTUgMS40ODQtLjM0My4wOTMtLjA0Ny4xOTMtLjExLjMtLjE4OWExLjMxIDEuMzEgMCAwIDEgMS43NTYuMTg1bC41Mi41ODRhMS4yNDggMS4yNDggMCAwIDEtLjMwNyAxLjkxIDcuOTggNy45OCAwIDAgMS0yLjY2OC45N2MtLjQxOS4wNjktLjc4LjEwNC0xLjA4NS4xMDRhNy45MDQgNy45MDQgMCAwIDEtMi45MS0uNTM3QTYuOTM4IDYuOTM4IDAgMCAxIDEzMC4zNjUgMjNhNy4yMyA3LjIzIDAgMCAxLTEuNTgzLTIuMzcxYy0uMzktLjkyNS0uNTg1LTEuOTU0LS41ODUtMy4wODcgMC0xLjEzMy4xOTUtMi4xNjIuNTg1LTMuMDg3YTcuMjMgNy4yMyAwIDAgMSAxLjU4My0yLjM3MSA2LjkzOCA2LjkzOCAwIDAgMSAyLjM2OS0xLjUyMSA3LjkwNCA3LjkwNCAwIDAgMSAyLjkxLS41MzdjLjg3NiAwIDEuNzU1LjE3NCAyLjY0LjUyMi4zMzcuMTMzLjczNS4zNyAxLjE5My43MTFhMS4zMSAxLjMxIDAgMCAxIC4xNjQgMS45NTdsLS41My41NTNhMS4zMSAxLjMxIDAgMCAxLTEuNzU0LjEyNnoiLz4KPC9zdmc+"
6
- alt="Prismic">
6
+ alt="Prismic"
7
+ >
7
8
  <figcaption>
8
9
  Loading preview...
9
10
  </figcaption>
@@ -15,7 +16,7 @@
15
16
  import { useHead, usePrismicPreview } from '#imports'
16
17
 
17
18
  useHead({
18
- title: 'Prismic Preview - Loading'
19
+ title: 'Prismic Preview - Loading',
19
20
  })
20
21
 
21
22
  usePrismicPreview()
@@ -1,2 +0,0 @@
1
- declare const _default: any;
2
- export default _default;
@@ -1,5 +1,5 @@
1
1
  import { defineNuxtPlugin, refreshNuxtData, useRuntimeConfig } from "#imports";
2
- export default defineNuxtPlugin((nuxtApp) => {
2
+ export default defineNuxtPlugin((_nuxtApp) => {
3
3
  const options = useRuntimeConfig().public.prismic;
4
4
  if (options.preview) {
5
5
  window.addEventListener("prismicPreviewUpdate", (event) => {
@@ -1,2 +0,0 @@
1
- declare const _default: any;
2
- export default _default;
package/dist/types.d.mts CHANGED
@@ -1,8 +1,48 @@
1
1
 
2
2
  import type { } from './module.js'
3
3
 
4
+ export interface ModuleOptions {
5
+ /** @default "" */
6
+ endpoint: string,
4
7
 
8
+ /** @default "" */
9
+ environment: string,
5
10
 
11
+ clientConfig: any,
12
+
13
+ /** @default "~/app/prismic/client" */
14
+ client: string,
15
+
16
+ /** @default "~/app/prismic/linkResolver" */
17
+ linkResolver: string,
18
+
19
+ /** @default "~/app/prismic/richTextSerializer" */
20
+ richTextSerializer: string,
21
+
22
+ /** @default true */
23
+ injectComponents: boolean,
24
+
25
+ components: any,
26
+
27
+ /** @default "/preview" */
28
+ preview: string,
29
+
30
+ /** @default true */
31
+ toolbar: boolean,
32
+
33
+ /** @default true */
34
+ devtools: boolean,
35
+ }
36
+
37
+ declare module '@nuxt/schema' {
38
+ interface NuxtConfig { ['prismic']?: Partial<ModuleOptions> }
39
+ interface NuxtOptions { ['prismic']?: ModuleOptions }
40
+ }
41
+
42
+ declare module 'nuxt/schema' {
43
+ interface NuxtConfig { ['prismic']?: Partial<ModuleOptions> }
44
+ interface NuxtOptions { ['prismic']?: ModuleOptions }
45
+ }
6
46
 
7
47
 
8
48
  export type { PrismicModuleOptions, default } from './module.js'
package/dist/types.d.ts CHANGED
@@ -1,8 +1,48 @@
1
1
 
2
2
  import type { } from './module'
3
3
 
4
+ export interface ModuleOptions {
5
+ /** @default "" */
6
+ endpoint: string,
4
7
 
8
+ /** @default "" */
9
+ environment: string,
5
10
 
11
+ clientConfig: any,
12
+
13
+ /** @default "~/app/prismic/client" */
14
+ client: string,
15
+
16
+ /** @default "~/app/prismic/linkResolver" */
17
+ linkResolver: string,
18
+
19
+ /** @default "~/app/prismic/richTextSerializer" */
20
+ richTextSerializer: string,
21
+
22
+ /** @default true */
23
+ injectComponents: boolean,
24
+
25
+ components: any,
26
+
27
+ /** @default "/preview" */
28
+ preview: string,
29
+
30
+ /** @default true */
31
+ toolbar: boolean,
32
+
33
+ /** @default true */
34
+ devtools: boolean,
35
+ }
36
+
37
+ declare module '@nuxt/schema' {
38
+ interface NuxtConfig { ['prismic']?: Partial<ModuleOptions> }
39
+ interface NuxtOptions { ['prismic']?: ModuleOptions }
40
+ }
41
+
42
+ declare module 'nuxt/schema' {
43
+ interface NuxtConfig { ['prismic']?: Partial<ModuleOptions> }
44
+ interface NuxtOptions { ['prismic']?: ModuleOptions }
45
+ }
6
46
 
7
47
 
8
48
  export type { PrismicModuleOptions, default } from './module'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxtjs/prismic",
3
- "version": "3.2.1",
4
- "description": "Easily connect your Nuxt 3 application to your content hosted on Prismic",
3
+ "version": "3.3.1",
4
+ "description": "Easily connect your Nuxt application to your content hosted on Prismic",
5
5
  "keywords": [
6
6
  "nuxt",
7
7
  "module",
@@ -19,14 +19,14 @@
19
19
  "type": "module",
20
20
  "exports": {
21
21
  ".": {
22
- "require": "./dist/module.cjs",
23
- "import": "./dist/module.mjs"
22
+ "types": "./dist/types.d.ts",
23
+ "import": "./dist/module.mjs",
24
+ "require": "./dist/module.cjs"
24
25
  },
25
26
  "./runtime/*": "./dist/runtime/*",
26
27
  "./package.json": "./package.json"
27
28
  },
28
29
  "main": "dist/module.cjs",
29
- "module": "dist/module.mjs",
30
30
  "types": "dist/types.d.ts",
31
31
  "files": [
32
32
  "dist",
@@ -34,28 +34,28 @@
34
34
  ],
35
35
  "scripts": {
36
36
  "build": "npm run build:module && npm run build:client",
37
- "dev": "nuxi dev playground",
38
- "dev:build": "nuxi build playground",
39
- "dev:preview": "nuxi preview playground",
40
- "dev:generate": "nuxi generate playground",
41
- "build:client": "nuxi generate client",
37
+ "build:client": "nuxt generate client",
42
38
  "build:module": "nuxt-module-build build",
43
- "lint": "eslint --ext .js,.ts .",
44
- "prepare": "nuxi prepare playground && npm run build",
39
+ "dev": "nuxt dev playground",
40
+ "dev:build": "nuxt build playground",
41
+ "dev:preview": "nuxt preview playground",
42
+ "dev:generate": "nuxt generate playground",
43
+ "prepare": "nuxt prepare playground && npm run build",
45
44
  "release": "npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
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",
47
47
  "release:rc:dry": "standard-version --release-as major --prerelease rc --dry-run",
48
- "release:dry": "standard-version --dry-run",
49
- "test": "npm run types && npm run lint && npm run unit && npm run build",
50
- "types": "tsc --noEmit",
48
+ "lint": "eslint .",
49
+ "typecheck": "tsc --noEmit",
51
50
  "unit": "vitest run --coverage",
52
- "unit:watch": "vitest watch"
51
+ "unit:watch": "vitest watch",
52
+ "test": "npm run typecheck && npm run lint && npm run unit && npm run build"
53
53
  },
54
54
  "dependencies": {
55
- "@nuxt/devtools-kit": "^1.1.5",
56
- "@nuxt/kit": "^3.11.1",
57
- "@prismicio/client": "^7.4.0",
58
- "@prismicio/vue": "^4.2.1",
55
+ "@nuxt/devtools-kit": "^1.3.3",
56
+ "@nuxt/kit": "^3.12.1",
57
+ "@prismicio/client": "^7.5.0",
58
+ "@prismicio/vue": "^4.2.2",
59
59
  "birpc": "0.2.17",
60
60
  "consola": "^3.2.3",
61
61
  "defu": "^6.1.4",
@@ -64,20 +64,20 @@
64
64
  "terminate": "^2.6.1"
65
65
  },
66
66
  "devDependencies": {
67
- "@iconify-json/carbon": "^1.1.31",
68
- "@iconify-json/logos": "^1.1.42",
69
- "@nuxt/devtools-ui-kit": "^1.1.5",
70
- "@nuxt/module-builder": "^0.5.5",
71
- "@nuxt/schema": "^3.11.1",
72
- "@nuxtjs/eslint-config-typescript": "^12.1.0",
73
- "@unocss/preset-icons": "^0.58.9",
74
- "@vitest/coverage-v8": "^1.4.0",
75
- "eslint": "^8.57.0",
76
- "mock-fs": "^5.2.0",
77
- "nuxt": "^3.11.1",
67
+ "@iconify-json/carbon": "^1.1.35",
68
+ "@iconify-json/logos": "^1.1.43",
69
+ "@nuxt/devtools-ui-kit": "^1.3.3",
70
+ "@nuxt/eslint-config": "^0.3.13",
71
+ "@nuxt/module-builder": "^0.7.1",
72
+ "@nuxt/schema": "^3.12.1",
73
+ "@unocss/preset-icons": "^0.61.0",
74
+ "@vitest/coverage-v8": "^1.6.0",
75
+ "eslint": "^9.4.0",
76
+ "memfs": "^4.9.2",
77
+ "nuxt": "^3.12.1",
78
78
  "standard-version": "^9.5.0",
79
- "typescript": "^5.4.3",
80
- "vitest": "^1.4.0"
79
+ "typescript": "^5.4.5",
80
+ "vitest": "^1.6.0"
81
81
  },
82
82
  "engines": {
83
83
  "node": ">=16.10.0"
@@ -85,8 +85,5 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "workspaces": [
89
- "./",
90
- "./client"
91
- ]
88
+ "packageManager": "pnpm@9.3.0"
92
89
  }
@@ -11,7 +11,7 @@ import {
11
11
  RPC_NAMESPACE,
12
12
  SliceMachineStatus,
13
13
  type ISlicemachineServerFunctions,
14
- type ISlicemachineClientFunctions
14
+ type ISlicemachineClientFunctions,
15
15
  } from './types'
16
16
 
17
17
  const DEVTOOLS_UI_ROUTE = '/__prismic-client'
@@ -40,10 +40,11 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
40
40
  const sirv = await import('sirv').then(r => r.default || r)
41
41
  server.middlewares.use(
42
42
  DEVTOOLS_UI_ROUTE,
43
- sirv(clientPath, { dev: true, single: true })
43
+ sirv(clientPath, { dev: true, single: true }),
44
44
  )
45
45
  })
46
- } else {
46
+ }
47
+ else {
47
48
  // In local development, start a separate Nuxt Server and proxy to serve the client
48
49
  nuxt.hook('vite:extendConfig', (config) => {
49
50
  config.server = config.server || {}
@@ -52,7 +53,7 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
52
53
  target: `http://localhost:${DEVTOOLS_UI_LOCAL_PORT}${DEVTOOLS_UI_ROUTE}`,
53
54
  changeOrigin: true,
54
55
  followRedirects: true,
55
- rewrite: path => path.replace(DEVTOOLS_UI_ROUTE, '')
56
+ rewrite: path => path.replace(DEVTOOLS_UI_ROUTE, ''),
56
57
  }
57
58
  })
58
59
  }
@@ -68,7 +69,7 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
68
69
  const rpc = extendServerRpc<ISlicemachineClientFunctions, ISlicemachineServerFunctions>(
69
70
  RPC_NAMESPACE,
70
71
  {
71
- async getSlicemachineConfig () {
72
+ async getSlicemachineConfig() {
72
73
  const configPath = resolve(nuxt.options.rootDir, 'slicemachine.config.json')
73
74
 
74
75
  if (existsSync(configPath)) {
@@ -78,32 +79,32 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
78
79
  return null
79
80
  },
80
81
 
81
- isSliceMachineStarted () {
82
+ isSliceMachineStarted() {
82
83
  return subProcess !== null
83
84
  },
84
85
 
85
- startSliceMachine () {
86
+ startSliceMachine() {
86
87
  stopSubprocess()
87
88
 
88
89
  subProcess = startSubprocess({
89
90
  command: 'npx',
90
91
  args: ['start-slicemachine'],
91
- cwd: nuxt.options.rootDir
92
+ cwd: nuxt.options.rootDir,
92
93
  }, {
93
94
  id: 'slicemachine',
94
95
  name: 'SliceMachine',
95
- icon: 'cib:prismic'
96
+ icon: 'cib:prismic',
96
97
  }, nuxt)
97
98
 
98
99
  rpc.broadcast.updateStatus(SliceMachineStatus.STARTED)
99
100
  return SliceMachineStatus.STARTED
100
101
  },
101
- stopSliceMachine () {
102
+ stopSliceMachine() {
102
103
  stopSubprocess()
103
104
 
104
105
  rpc.broadcast.updateStatus(SliceMachineStatus.STOPPED)
105
106
  return SliceMachineStatus.STOPPED
106
- }
107
+ },
107
108
  })
108
109
  })
109
110
 
@@ -118,8 +119,8 @@ export const setupDevToolsUI = (nuxt: Nuxt, resolver: Resolver) => {
118
119
  // iframe view
119
120
  view: {
120
121
  type: 'iframe',
121
- src: DEVTOOLS_UI_ROUTE
122
- }
122
+ src: DEVTOOLS_UI_ROUTE,
123
+ },
123
124
  })
124
125
  })
125
126
  }
@@ -4,18 +4,18 @@ export const RPC_NAMESPACE = 'prismic-slicemachine-rpc'
4
4
 
5
5
  export enum SliceMachineStatus {
6
6
  STARTED,
7
- STOPPED
7
+ STOPPED,
8
8
  }
9
9
 
10
10
  export interface ISlicemachineClientFunctions {
11
- updateStatus(status: SliceMachineStatus) : void
11
+ updateStatus(status: SliceMachineStatus): void
12
12
  }
13
13
 
14
14
  export interface ISlicemachineServerFunctions {
15
- getSlicemachineConfig() : Promise<Object | null>
16
- isSliceMachineStarted() : boolean
17
- startSliceMachine() : SliceMachineStatus
18
- stopSliceMachine() : SliceMachineStatus
15
+ getSlicemachineConfig(): Promise<object | null>
16
+ isSliceMachineStarted(): boolean
17
+ startSliceMachine(): SliceMachineStatus
18
+ stopSliceMachine(): SliceMachineStatus
19
19
  }
20
20
 
21
21
  export type RPCServerType = BirpcReturn<ISlicemachineClientFunctions, ISlicemachineServerFunctions>
@@ -3,7 +3,8 @@ import { existsSync } from 'node:fs'
3
3
  export const fileExists = (path?: string, extensions = ['js', 'ts']): string | null => {
4
4
  if (!path) {
5
5
  return null
6
- } else if (existsSync(path)) {
6
+ }
7
+ else if (existsSync(path)) {
7
8
  // If path already contains/forces the extension
8
9
  return path
9
10
  }