@devite/nuxt-sanity 2.9.1 → 2.10.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.
- package/dist/module.d.mts +2 -1
- package/dist/module.d.ts +2 -1
- package/dist/module.json +2 -2
- package/dist/module.mjs +8 -3
- package/dist/runtime/composables/useSanityVisualEditingState.js +1 -1
- package/dist/runtime/plugins/visual-editing.client.js +22 -0
- package/dist/runtime/plugins/visual-editing.server.d.ts +2 -0
- package/dist/runtime/plugins/visual-editing.server.js +11 -0
- package/dist/runtime/server/routes/cache/query.d.ts +1 -1
- package/dist/runtime/server/routes/proxy.js +6 -2
- package/dist/runtime/utils/visualEditing/subscribeToChanges.d.ts +1 -1
- package/dist/runtime/utils/visualEditing/subscribeToChanges.js +1 -2
- package/dist/types.d.mts +7 -1
- package/dist/types.d.ts +7 -1
- package/package.json +11 -13
- package/dist/runtime/plugins/visual-editing.js +0 -29
- /package/dist/runtime/plugins/{visual-editing.d.ts → visual-editing.client.d.ts} +0 -0
package/dist/module.d.mts
CHANGED
|
@@ -122,4 +122,5 @@ type SanityArray<T> = Array<T & {
|
|
|
122
122
|
|
|
123
123
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
124
124
|
|
|
125
|
-
export {
|
|
125
|
+
export { _default as default };
|
|
126
|
+
export type { GlobalSEO, Home, LinkExternal, LinkInternal, ModuleOptions, NotFound, Page, RichText, SEO, SanityArray, SanityModule, SanityVisualEditingMode, SanityVisualEditingRefreshHandler, VisualEditingOptions };
|
package/dist/module.d.ts
CHANGED
|
@@ -122,4 +122,5 @@ type SanityArray<T> = Array<T & {
|
|
|
122
122
|
|
|
123
123
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
124
124
|
|
|
125
|
-
export {
|
|
125
|
+
export { _default as default };
|
|
126
|
+
export type { GlobalSEO, Home, LinkExternal, LinkInternal, ModuleOptions, NotFound, Page, RichText, SEO, SanityArray, SanityModule, SanityVisualEditingMode, SanityVisualEditingRefreshHandler, VisualEditingOptions };
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { defineNuxtModule, createResolver, addPlugin, addServerHandler, addImpor
|
|
|
3
3
|
import defu from 'defu';
|
|
4
4
|
|
|
5
5
|
const name = "@devite/nuxt-sanity";
|
|
6
|
-
const version = "2.
|
|
6
|
+
const version = "2.10.1";
|
|
7
7
|
|
|
8
8
|
const CONFIG_KEY = "sanity";
|
|
9
9
|
const module = defineNuxtModule({
|
|
@@ -55,15 +55,19 @@ const module = defineNuxtModule({
|
|
|
55
55
|
nuxt.options.vite.optimizeDeps = defu(nuxt.options.vite.optimizeDeps, {
|
|
56
56
|
include: [
|
|
57
57
|
`${name} > @sanity/visual-editing > @sanity/mutate > lodash/groupBy.js`,
|
|
58
|
+
`${name} > @sanity/visual-editing > @sanity/mutate > lodash/startCase.js`,
|
|
58
59
|
`${name} > @sanity/visual-editing > react`,
|
|
59
60
|
`${name} > @sanity/visual-editing > react/jsx-runtime`,
|
|
61
|
+
`${name} > @sanity/visual-editing > react-is`,
|
|
60
62
|
`${name} > @sanity/visual-editing > react-dom`,
|
|
61
63
|
`${name} > @sanity/visual-editing > react-dom/client`,
|
|
62
|
-
|
|
64
|
+
`${name} > @sanity/visual-editing > react-compiler-runtime`,
|
|
65
|
+
`${name} > @sanity/visual-editing > styled-components`,
|
|
63
66
|
"@sanity/client"
|
|
64
67
|
]
|
|
65
68
|
});
|
|
66
|
-
addPlugin({ src: resolve("runtime/plugins/visual-editing") });
|
|
69
|
+
addPlugin({ mode: "client", src: resolve("runtime/plugins/visual-editing.client") });
|
|
70
|
+
addPlugin({ mode: "server", src: resolve("runtime/plugins/visual-editing.server") });
|
|
67
71
|
if (typeof visualEditingConfig.previewMode === "object") {
|
|
68
72
|
addServerHandler({
|
|
69
73
|
method: "get",
|
|
@@ -165,6 +169,7 @@ const module = defineNuxtModule({
|
|
|
165
169
|
// composables
|
|
166
170
|
{ name: "useSanityQuery", from: resolve("runtime/composables/query") },
|
|
167
171
|
{ name: "useLazySanityQuery", from: resolve("runtime/composables/query") },
|
|
172
|
+
{ name: "useSanityVisualEditingState", from: resolve("runtime/composables/useSanityVisualEditingState") },
|
|
168
173
|
// helper methods
|
|
169
174
|
{ name: "resolveImageAssetById", from: resolve("runtime/utils/resolveImageAssetById") },
|
|
170
175
|
{ name: "resolveInternalLink", from: resolve("runtime/utils/resolveInternalLink") },
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { reactive } from "vue";
|
|
2
2
|
import { useState } from "#imports";
|
|
3
3
|
export const useSanityVisualEditingState = () => {
|
|
4
|
-
const enabled = useState("
|
|
4
|
+
const enabled = useState("_sanity_visual_editing", () => false);
|
|
5
5
|
return reactive({
|
|
6
6
|
enabled,
|
|
7
7
|
isInFrame() {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useSanityVisualEditingState } from "../composables/useSanityVisualEditingState.js";
|
|
2
|
+
import useSanityClient from "../utils/useSanityClient.js";
|
|
3
|
+
import { defineNuxtPlugin, useRuntimeConfig } from "#imports";
|
|
4
|
+
export default defineNuxtPlugin(() => {
|
|
5
|
+
if (!useSanityVisualEditingState().enabled) return;
|
|
6
|
+
const $config = useRuntimeConfig();
|
|
7
|
+
const { visualEditing } = $config.public.sanity;
|
|
8
|
+
switch (visualEditing?.mode) {
|
|
9
|
+
case "live-visual-editing":
|
|
10
|
+
case "visual-editing":
|
|
11
|
+
import("../utils/visualEditing/enableVisualEditing.js").then(({ enableVisualEditing }) => enableVisualEditing({
|
|
12
|
+
refresh: visualEditing?.refresh,
|
|
13
|
+
zIndex: visualEditing?.zIndex
|
|
14
|
+
}));
|
|
15
|
+
if (visualEditing?.mode === "live-visual-editing") {
|
|
16
|
+
useSanityClient(true, "default", $config.public.sanity).then((client) => {
|
|
17
|
+
client.queryStore?.enableLiveMode({ client: client.client });
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useSanityVisualEditingState } from "../composables/useSanityVisualEditingState.js";
|
|
2
|
+
import { defineNuxtPlugin, useCookie, useRuntimeConfig } from "#imports";
|
|
3
|
+
export default defineNuxtPlugin(() => {
|
|
4
|
+
const visualEditingState = useSanityVisualEditingState();
|
|
5
|
+
const $config = useRuntimeConfig();
|
|
6
|
+
const previewModeId = $config.sanity.visualEditing.previewModeId;
|
|
7
|
+
if ($config.public.sanity.visualEditing?.previewMode && previewModeId) {
|
|
8
|
+
const previewModeCookie = useCookie("__sanity_preview");
|
|
9
|
+
visualEditingState.enabled = previewModeId === previewModeCookie.value;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
@@ -8,12 +8,16 @@ export default defineEventHandler(async (event) => {
|
|
|
8
8
|
statusMessage: "This route is only available in preview mode"
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
|
-
const { query, params = {} } = await readBody(event);
|
|
11
|
+
const { query, params = {}, options } = await readBody(event);
|
|
12
12
|
if (!query) {
|
|
13
13
|
return createError({
|
|
14
14
|
statusCode: 400,
|
|
15
15
|
statusMessage: `Field "query" is required`
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
return await useSanityClient("default").fetch(
|
|
18
|
+
return (await useSanityClient("default")).fetch(
|
|
19
|
+
query,
|
|
20
|
+
params,
|
|
21
|
+
options ?? void 0
|
|
22
|
+
);
|
|
19
23
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Reactive } from 'vue';
|
|
2
2
|
import type { ContentSourceMap, QueryParams } from '@sanity/client';
|
|
3
3
|
import type { EncodeDataAttributeFunction } from '@sanity/core-loader/encode-data-attribute';
|
|
4
4
|
import type { SanityClient } from '#imports';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { toRaw } from "vue";
|
|
2
1
|
import { defineEncodeDataAttribute } from "@sanity/core-loader/encode-data-attribute";
|
|
3
2
|
export const subscribeToChanges = (query, params, client, updateData) => {
|
|
4
3
|
let unsubscribe = () => {
|
|
5
4
|
};
|
|
6
5
|
function setupFetcher(cb) {
|
|
7
6
|
unsubscribe();
|
|
8
|
-
const deepClonedParams = params ? JSON.parse(JSON.stringify(
|
|
7
|
+
const deepClonedParams = params ? JSON.parse(JSON.stringify(params)) : void 0;
|
|
9
8
|
const fetcher = client.queryStore.createFetcherStore(query, deepClonedParams, void 0);
|
|
10
9
|
unsubscribe = fetcher.subscribe((newSnapshot) => {
|
|
11
10
|
if (newSnapshot.data) {
|
package/dist/types.d.mts
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { NuxtModule } from '@nuxt/schema'
|
|
2
|
+
|
|
3
|
+
import type { default as Module } from './module.js'
|
|
4
|
+
|
|
5
|
+
export type ModuleOptions = typeof Module extends NuxtModule<infer O> ? Partial<O> : Record<string, any>
|
|
6
|
+
|
|
7
|
+
export { default } from './module.js'
|
package/dist/types.d.ts
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { NuxtModule } from '@nuxt/schema'
|
|
2
|
+
|
|
3
|
+
import type { default as Module } from './module'
|
|
4
|
+
|
|
5
|
+
export type ModuleOptions = typeof Module extends NuxtModule<infer O> ? Partial<O> : Record<string, any>
|
|
6
|
+
|
|
7
|
+
export { default } from './module'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devite/nuxt-sanity",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"description": "Advanced Sanity integration for Nuxt.js.",
|
|
5
5
|
"repository": "devite-io/nuxt-sanity",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,31 +22,29 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@nuxt/image": "^1.
|
|
25
|
+
"@nuxt/image": "^1.10.0",
|
|
26
26
|
"@portabletext/vue": "^1.0.12",
|
|
27
|
-
"@sanity/client": "^6.28.
|
|
28
|
-
"@sanity/core-loader": "^1.
|
|
29
|
-
"@sanity/preview-url-secret": "^2.1.
|
|
30
|
-
"@sanity/types": "^3.
|
|
31
|
-
"@sanity/visual-editing": "^2.13.
|
|
27
|
+
"@sanity/client": "^6.28.4",
|
|
28
|
+
"@sanity/core-loader": "^1.8.1",
|
|
29
|
+
"@sanity/preview-url-secret": "^2.1.7",
|
|
30
|
+
"@sanity/types": "^3.82.0",
|
|
31
|
+
"@sanity/visual-editing": "^2.13.15",
|
|
32
32
|
"defu": "^6.1.4",
|
|
33
33
|
"ofetch": "^1.4.1",
|
|
34
34
|
"ohash": "^1.1.6",
|
|
35
|
-
"react": "^19.0.0",
|
|
36
|
-
"react-dom": "^19.0.0",
|
|
37
35
|
"unstorage": "^1.15.0"
|
|
38
36
|
},
|
|
39
37
|
"devDependencies": {
|
|
40
38
|
"@nuxt/eslint-config": "^0.7.6",
|
|
41
|
-
"@nuxt/kit": "^3.16.
|
|
39
|
+
"@nuxt/kit": "^3.16.2",
|
|
42
40
|
"@nuxt/module-builder": "^0.8.4",
|
|
43
|
-
"@nuxt/schema": "^3.16.
|
|
41
|
+
"@nuxt/schema": "^3.16.2",
|
|
44
42
|
"@nuxt/test-utils": "^3.17.2",
|
|
45
43
|
"@types/node": "latest",
|
|
46
44
|
"changelogen": "^0.5.7",
|
|
47
|
-
"eslint": "^9.
|
|
45
|
+
"eslint": "^9.24.0",
|
|
48
46
|
"h3": "^1.15.1",
|
|
49
|
-
"nuxt": "^3.16.
|
|
47
|
+
"nuxt": "^3.16.2",
|
|
50
48
|
"typescript": "5.6.3",
|
|
51
49
|
"vite": "6.0.1",
|
|
52
50
|
"vitest": "^2.1.9",
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { useSanityVisualEditingState } from "../composables/useSanityVisualEditingState.js";
|
|
2
|
-
import useSanityClient from "../utils/useSanityClient.js";
|
|
3
|
-
import { defineNuxtPlugin, useCookie, useRuntimeConfig } from "#imports";
|
|
4
|
-
export default defineNuxtPlugin(async () => {
|
|
5
|
-
const visualEditingState = useSanityVisualEditingState();
|
|
6
|
-
const $config = useRuntimeConfig();
|
|
7
|
-
const { visualEditing } = $config.public.sanity;
|
|
8
|
-
if (import.meta.server) {
|
|
9
|
-
const previewModeId = $config.sanity.visualEditing.previewModeId;
|
|
10
|
-
if (visualEditing?.previewMode && previewModeId) {
|
|
11
|
-
const previewModeCookie = useCookie("__sanity_preview");
|
|
12
|
-
visualEditingState.enabled = previewModeId === previewModeCookie.value;
|
|
13
|
-
}
|
|
14
|
-
} else if (visualEditingState.enabled) {
|
|
15
|
-
switch (visualEditing?.mode) {
|
|
16
|
-
case "live-visual-editing":
|
|
17
|
-
case "visual-editing":
|
|
18
|
-
import("../utils/visualEditing/enableVisualEditing.js").then(({ enableVisualEditing }) => enableVisualEditing({
|
|
19
|
-
refresh: visualEditing?.refresh,
|
|
20
|
-
zIndex: visualEditing?.zIndex
|
|
21
|
-
}));
|
|
22
|
-
if (visualEditing?.mode === "live-visual-editing") {
|
|
23
|
-
const client = await useSanityClient(true, "default", $config.public.sanity);
|
|
24
|
-
client.queryStore?.enableLiveMode({ client: client.client });
|
|
25
|
-
}
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
});
|
|
File without changes
|