@devite/nuxt-sanity 2.9.0 → 2.10.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/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/client/DefaultSanityClient.js +1 -1
- package/dist/runtime/client/MinimalSanityClient.js +1 -1
- package/dist/runtime/composables/query.d.ts +1 -1
- package/dist/runtime/composables/query.js +1 -1
- package/dist/runtime/composables/useSanityVisualEditingState.js +1 -1
- package/dist/runtime/plugins/visual-editing.client.d.ts +0 -0
- package/dist/runtime/plugins/visual-editing.client.js +22 -0
- package/dist/runtime/plugins/visual-editing.server.d.ts +0 -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/cache/query.js +1 -1
- package/dist/types.d.mts +7 -1
- package/dist/types.d.ts +7 -1
- package/package.json +14 -14
- package/dist/runtime/plugins/visual-editing.d.ts +0 -2
- package/dist/runtime/plugins/visual-editing.js +0 -29
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.0";
|
|
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") },
|
|
@@ -9,7 +9,7 @@ class MinimalSanityClient extends SanityClient {
|
|
|
9
9
|
super({
|
|
10
10
|
...config,
|
|
11
11
|
perspective: config.perspective || "raw",
|
|
12
|
-
useCdn: config.perspective === "
|
|
12
|
+
useCdn: config.perspective === "drafts" ? false : config.useCdn
|
|
13
13
|
});
|
|
14
14
|
this.queryPath = `/v${config.apiVersion}/data/query/${config.dataset}`;
|
|
15
15
|
this.fetchOptions = {
|
|
@@ -4,7 +4,7 @@ import type { EncodeDataAttributeFunction } from '@sanity/core-loader/encode-dat
|
|
|
4
4
|
import { type Ref } from 'vue';
|
|
5
5
|
export interface UseSanityQueryOptions<T> extends AsyncDataOptions<T> {
|
|
6
6
|
client?: 'default' | 'minimal';
|
|
7
|
-
perspective?: '
|
|
7
|
+
perspective?: 'drafts' | 'published' | 'raw';
|
|
8
8
|
}
|
|
9
9
|
export interface SanityQueryResponse<T> {
|
|
10
10
|
data: T;
|
|
@@ -13,7 +13,7 @@ export function useSanityQuery(query, _params = {}, options = {}, lazy = false)
|
|
|
13
13
|
const sanityConfig = defu(import.meta.server ? $config.sanity : {}, $config.public.sanity);
|
|
14
14
|
const visualEditingEnabled = useSanityVisualEditingState().enabled;
|
|
15
15
|
const clientType = visualEditingEnabled ? "default" : options.client || (sanityConfig.minimalClient ? "minimal" : "default");
|
|
16
|
-
const perspective = options.perspective || (visualEditingEnabled ? "
|
|
16
|
+
const perspective = options.perspective || (visualEditingEnabled ? "drafts" : "published");
|
|
17
17
|
const reactiveParams = _params ? reactive(_params) : void 0;
|
|
18
18
|
if (reactiveParams) {
|
|
19
19
|
options.watch ||= [];
|
|
@@ -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() {
|
|
File without changes
|
|
@@ -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
|
+
});
|
|
File without changes
|
|
@@ -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
|
+
});
|
|
@@ -17,7 +17,7 @@ export default defineEventHandler(async (event) => {
|
|
|
17
17
|
throw createError({ statusCode: 400, statusMessage: "Missing query parameter" });
|
|
18
18
|
const params = Array.from(queryParams).filter(([key]) => key.startsWith("$"));
|
|
19
19
|
const perspective = queryParams.get("perspective") || useRuntimeConfig().public.sanity.perspective;
|
|
20
|
-
if (typeof perspective === "string" && !["
|
|
20
|
+
if (typeof perspective === "string" && !["drafts", "published", "raw"].includes(perspective))
|
|
21
21
|
throw createError({ statusCode: 400, statusMessage: "Invalid perspective" });
|
|
22
22
|
const hashedQuery = hash(query + JSON.stringify(params) + (perspective || ""));
|
|
23
23
|
const dataCache = useStorage("sanityData");
|
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.0",
|
|
4
4
|
"description": "Advanced Sanity integration for Nuxt.js.",
|
|
5
5
|
"repository": "devite-io/nuxt-sanity",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,29 +22,29 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@nuxt/image": "^1.
|
|
26
|
-
"@portabletext/vue": "^1.0.
|
|
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.
|
|
25
|
+
"@nuxt/image": "^1.10.0",
|
|
26
|
+
"@portabletext/vue": "^1.0.12",
|
|
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
|
-
"ohash": "^1.1.
|
|
34
|
+
"ohash": "^1.1.6",
|
|
35
35
|
"unstorage": "^1.15.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@nuxt/eslint-config": "^0.7.6",
|
|
39
|
-
"@nuxt/kit": "^3.
|
|
39
|
+
"@nuxt/kit": "^3.16.2",
|
|
40
40
|
"@nuxt/module-builder": "^0.8.4",
|
|
41
|
-
"@nuxt/schema": "^3.
|
|
42
|
-
"@nuxt/test-utils": "^3.
|
|
41
|
+
"@nuxt/schema": "^3.16.2",
|
|
42
|
+
"@nuxt/test-utils": "^3.17.2",
|
|
43
43
|
"@types/node": "latest",
|
|
44
44
|
"changelogen": "^0.5.7",
|
|
45
|
-
"eslint": "^9.
|
|
45
|
+
"eslint": "^9.24.0",
|
|
46
46
|
"h3": "^1.15.1",
|
|
47
|
-
"nuxt": "^3.
|
|
47
|
+
"nuxt": "^3.16.2",
|
|
48
48
|
"typescript": "5.6.3",
|
|
49
49
|
"vite": "6.0.1",
|
|
50
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
|
-
});
|