bsmnt 0.9.0 → 0.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/application/add-integration/index.d.ts.map +1 -1
- package/dist/application/add-integration/index.js +19 -2
- package/dist/application/add-integration/index.js.map +1 -1
- package/dist/infrastructure/integrations/ensure-studio-headers.d.ts +6 -0
- package/dist/infrastructure/integrations/ensure-studio-headers.d.ts.map +1 -0
- package/dist/infrastructure/integrations/ensure-studio-headers.js +153 -0
- package/dist/infrastructure/integrations/ensure-studio-headers.js.map +1 -0
- package/dist/modules/features/cms/sanity/config.d.ts.map +1 -1
- package/dist/modules/features/cms/sanity/config.js +2 -1
- package/dist/modules/features/cms/sanity/config.js.map +1 -1
- package/dist/modules/features/cms/sanity-pagebuilder/config.d.ts.map +1 -1
- package/dist/modules/features/cms/sanity-pagebuilder/config.js +2 -1
- package/dist/modules/features/cms/sanity-pagebuilder/config.js.map +1 -1
- package/package.json +2 -2
- package/src/modules/features/cms/sanity/files/app/api/blog/[slug]/route.ts +4 -1
- package/src/modules/features/cms/sanity/files/app/sitemap.md/route.ts +2 -1
- package/src/modules/features/cms/sanity/files/components/ui/sanity-image/index.tsx +19 -5
- package/src/modules/features/cms/sanity/files/lib/integrations/sanity/README.md +31 -0
- package/src/modules/features/cms/sanity/files/proxy.ts +9 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/app/api/[[...slug]]/route.ts +8 -3
- package/src/modules/features/cms/sanity-pagebuilder/files/app/sitemap.md/route.ts +7 -1
- package/src/modules/features/cms/sanity-pagebuilder/files/components/ui/sanity-image/index.tsx +15 -5
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/slug-field.tsx +13 -7
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/slug-notices.tsx +135 -0
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/live/index.tsx +1 -1
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/markdown-proxy.config.ts +1 -1
- package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/redirect.ts +35 -4
- package/src/modules/features/cms/sanity-pagebuilder/files/proxy.ts +9 -0
- package/src/templates/next-default/.env.example +2 -0
- package/src/templates/next-default/app/robots.ts +2 -3
- package/src/templates/next-default/next.config.ts +36 -2
- package/src/templates/next-default/package.json +9 -9
- package/src/templates/next-experiments/.env.example +2 -0
- package/src/templates/next-experiments/app/robots.ts +2 -3
- package/src/templates/next-experiments/next.config.ts +36 -2
- package/src/templates/next-experiments/package.json +9 -9
- package/src/templates/next-pagebuilder/.env.example +2 -0
- package/src/templates/next-pagebuilder/README.md +31 -0
- package/src/templates/next-pagebuilder/app/(content)/[[...slug]]/page.tsx +24 -9
- package/src/templates/next-pagebuilder/app/robots.ts +2 -3
- package/src/templates/next-pagebuilder/app/sitemap.xml/route.ts +6 -3
- package/src/templates/next-pagebuilder/components/page-builder/components/content-collection/skeleton.tsx +53 -0
- package/src/templates/next-pagebuilder/components/page-builder/renderer.tsx +7 -1
- package/src/templates/next-pagebuilder/next.config.ts +33 -2
- package/src/templates/next-pagebuilder/package.json +4 -4
- package/src/templates/next-webgl/.env.example +2 -0
- package/src/templates/next-webgl/app/robots.ts +2 -3
- package/src/templates/next-webgl/next.config.ts +36 -2
- package/src/templates/next-webgl/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAGN,KAAK,aAAa,EAClB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAGN,KAAK,aAAa,EAClB,MAAM,6BAA6B,CAAC;AA8BrC,MAAM,WAAW,qBAAqB;IACrC,YAAY,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IAC/C,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AA2DD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACvC,WAAW,EAAE,aAAa,EAC1B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,OAAO,EACtB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,IAAI,CAAC,CAoLf;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,aAAa,EAC1B,IAAI,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,oBAAoB,CAmCtB;AA0ED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DvE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CACnC,OAAO,GAAE,qBAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CAuFf"}
|
|
@@ -10,6 +10,7 @@ import { buildLocalSkillInstallCommand, buildSkillInstallCommand, getSkillInstal
|
|
|
10
10
|
import { getSanityMcpManualInstruction, registerSanityMcp, } from "../../infrastructure/agents/register-sanity-mcp.js";
|
|
11
11
|
import { applyDotenvxArtifacts, ensureNextConfigTracing, setupDotenvx, } from "../../infrastructure/create/setup-dotenvx.js";
|
|
12
12
|
import { setupSanity } from "../../infrastructure/create/setup-sanity.js";
|
|
13
|
+
import { ensureStudioHeaders } from "../../infrastructure/integrations/ensure-studio-headers.js";
|
|
13
14
|
import { injectIntegration } from "../../infrastructure/integrations/inject-integration.js";
|
|
14
15
|
import { sanityConfig } from "../../modules/features/cms/sanity/config.js";
|
|
15
16
|
import { hubspotConfig } from "../../modules/features/forms/hubspot/config.js";
|
|
@@ -154,6 +155,16 @@ export async function installIntegration(integration, targetDir, usesSrcPrefix,
|
|
|
154
155
|
console.log(pc.yellow(`\n Sanity auto-setup skipped: ${message}`));
|
|
155
156
|
console.log(pc.dim(" You can set up Sanity manually later.\n"));
|
|
156
157
|
}
|
|
158
|
+
// Templates already ship the split; an existing project won't, and
|
|
159
|
+
// next.config.ts has no merger to do it.
|
|
160
|
+
const studioHeaders = await ensureStudioHeaders(targetDir);
|
|
161
|
+
if (studioHeaders === "patched") {
|
|
162
|
+
console.log(pc.green(" Split next.config's headers() to allow the Sanity Dashboard iframe."));
|
|
163
|
+
}
|
|
164
|
+
else if (studioHeaders === "manual") {
|
|
165
|
+
console.log(pc.yellow(" ⚠ Add a /studio/:path* headers() rule so the Sanity Dashboard can embed the Studio:"));
|
|
166
|
+
console.log(pc.dim(' { source: "/studio/:path*", headers: [{ key: "Content-Security-Policy", value: "frame-ancestors \'self\' https://*.sanity.io;" }] } — and drop X-Frame-Options for that rule entirely.'));
|
|
167
|
+
}
|
|
157
168
|
}
|
|
158
169
|
// Next steps. Suppressed when another flow (e.g. create) aggregates them into
|
|
159
170
|
// a single block.
|
|
@@ -182,7 +193,10 @@ export function getIntegrationNextSteps(integration, opts = {}) {
|
|
|
182
193
|
if (opts.sanitySetupDone) {
|
|
183
194
|
return {
|
|
184
195
|
setup: ["Run: bun sanity:typegen"],
|
|
185
|
-
postLaunch: [
|
|
196
|
+
postLaunch: [
|
|
197
|
+
"Open Sanity Studio at /studio",
|
|
198
|
+
"To embed the Studio in the Sanity Dashboard, register its full URL (e.g. https://example.com/studio) in Manage — see the README's Sanity Dashboard section",
|
|
199
|
+
],
|
|
186
200
|
};
|
|
187
201
|
}
|
|
188
202
|
return {
|
|
@@ -190,7 +204,10 @@ export function getIntegrationNextSteps(integration, opts = {}) {
|
|
|
190
204
|
"Create a Sanity project at https://sanity.io/manage and add credentials to .env.local (NEXT_PUBLIC_SANITY_PROJECT_ID, NEXT_PUBLIC_SANITY_DATASET, SANITY_API_READ_TOKEN)",
|
|
191
205
|
"Run: bun sanity:typegen",
|
|
192
206
|
],
|
|
193
|
-
postLaunch: [
|
|
207
|
+
postLaunch: [
|
|
208
|
+
"Open Sanity Studio at /studio",
|
|
209
|
+
"To embed the Studio in the Sanity Dashboard, register its full URL (e.g. https://example.com/studio) in Manage — see the README's Sanity Dashboard section",
|
|
210
|
+
],
|
|
194
211
|
};
|
|
195
212
|
}
|
|
196
213
|
if (integration === "hubspot") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Split the old site-wide rule in two. Null when the shape isn't an exact match — never guesses. */
|
|
2
|
+
export declare function patchStudioHeaders(content: string): string | null;
|
|
3
|
+
export type EnsureStudioHeadersResult = "patched" | "already" | "manual";
|
|
4
|
+
/** Patch a project's next.config in place. "manual" means the caller should print guidance instead. */
|
|
5
|
+
export declare function ensureStudioHeaders(targetDir: string): Promise<EnsureStudioHeadersResult>;
|
|
6
|
+
//# sourceMappingURL=ensure-studio-headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-studio-headers.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/integrations/ensure-studio-headers.ts"],"names":[],"mappings":"AAqHA,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjE;AAyBD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE,uGAAuG;AACvG,wBAAsB,mBAAmB,CACxC,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,yBAAyB,CAAC,CAepC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
const NEXT_CONFIG_CANDIDATES = [
|
|
4
|
+
"next.config.ts",
|
|
5
|
+
"next.config.mts",
|
|
6
|
+
"next.config.js",
|
|
7
|
+
"next.config.mjs",
|
|
8
|
+
"next.config.cjs",
|
|
9
|
+
];
|
|
10
|
+
const SANITY_FRAME_ANCESTORS = "frame-ancestors 'self' https://*.sanity.io";
|
|
11
|
+
const STUDIO_SOURCE = 'source: "/studio/:path*"';
|
|
12
|
+
const X_FRAME_OPTIONS_KEY = 'key: "X-Frame-Options"';
|
|
13
|
+
// Matched verbatim rather than by regex, so we only ever rewrite a shape bsmnt
|
|
14
|
+
// itself produced.
|
|
15
|
+
const OLD_RULE = ` {
|
|
16
|
+
source: "/(.*)",
|
|
17
|
+
headers: [
|
|
18
|
+
{
|
|
19
|
+
key: "X-Content-Type-Options",
|
|
20
|
+
value: "nosniff",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
key: "Content-Security-Policy",
|
|
24
|
+
value: "frame-ancestors 'self';",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: "X-Frame-Options",
|
|
28
|
+
value: "SAMEORIGIN",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: "X-XSS-Protection",
|
|
32
|
+
value: "1; mode=block",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
key: "X-DNS-Prefetch-Control",
|
|
36
|
+
value: "on",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: "Strict-Transport-Security",
|
|
40
|
+
value: "max-age=63072000; includeSubDomains; preload",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
key: "Permissions-Policy",
|
|
44
|
+
value: "camera=(), microphone=(), geolocation=()",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},`;
|
|
48
|
+
const NEW_RULES = ` {
|
|
49
|
+
// Excludes /studio* — must stay mutually exclusive with the rule below.
|
|
50
|
+
source: "/((?!studio(?:/|$)).*)",
|
|
51
|
+
headers: [
|
|
52
|
+
{
|
|
53
|
+
key: "X-Content-Type-Options",
|
|
54
|
+
value: "nosniff",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: "Content-Security-Policy",
|
|
58
|
+
value: "frame-ancestors 'self';",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: "X-Frame-Options",
|
|
62
|
+
value: "SAMEORIGIN",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
key: "X-XSS-Protection",
|
|
66
|
+
value: "1; mode=block",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
key: "X-DNS-Prefetch-Control",
|
|
70
|
+
value: "on",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
key: "Strict-Transport-Security",
|
|
74
|
+
value: "max-age=63072000; includeSubDomains; preload",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
key: "Permissions-Policy",
|
|
78
|
+
value: "camera=(), microphone=(), geolocation=()",
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
// X-Frame-Options can't allow a third-party origin, and Next can't unset
|
|
84
|
+
// it from another rule — the iframe needs it absent, not overridden.
|
|
85
|
+
${STUDIO_SOURCE},
|
|
86
|
+
headers: [
|
|
87
|
+
{
|
|
88
|
+
key: "X-Content-Type-Options",
|
|
89
|
+
value: "nosniff",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
key: "Content-Security-Policy",
|
|
93
|
+
value: "${SANITY_FRAME_ANCESTORS};",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
key: "X-XSS-Protection",
|
|
97
|
+
value: "1; mode=block",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
key: "X-DNS-Prefetch-Control",
|
|
101
|
+
value: "on",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
key: "Strict-Transport-Security",
|
|
105
|
+
value: "max-age=63072000; includeSubDomains; preload",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
key: "Permissions-Policy",
|
|
109
|
+
value: "camera=(), microphone=(), geolocation=()",
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},`;
|
|
113
|
+
/** Split the old site-wide rule in two. Null when the shape isn't an exact match — never guesses. */
|
|
114
|
+
export function patchStudioHeaders(content) {
|
|
115
|
+
if (!content.includes(OLD_RULE))
|
|
116
|
+
return null;
|
|
117
|
+
return content.replace(OLD_RULE, NEW_RULES);
|
|
118
|
+
}
|
|
119
|
+
async function findNextConfig(targetDir) {
|
|
120
|
+
for (const name of NEXT_CONFIG_CANDIDATES) {
|
|
121
|
+
const candidate = path.join(targetDir, name);
|
|
122
|
+
if (await fs.pathExists(candidate))
|
|
123
|
+
return candidate;
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
// Scoped to the rule's own span: the CSP alone isn't enough, since an
|
|
128
|
+
// X-Frame-Options on that same rule still blocks the iframe.
|
|
129
|
+
function hasStudioExemption(content) {
|
|
130
|
+
const start = content.indexOf(STUDIO_SOURCE);
|
|
131
|
+
if (start === -1)
|
|
132
|
+
return false;
|
|
133
|
+
const rest = content.slice(start + STUDIO_SOURCE.length);
|
|
134
|
+
const nextRule = rest.indexOf("source:");
|
|
135
|
+
const rule = nextRule === -1 ? rest : rest.slice(0, nextRule);
|
|
136
|
+
return (rule.includes(SANITY_FRAME_ANCESTORS) && !rule.includes(X_FRAME_OPTIONS_KEY));
|
|
137
|
+
}
|
|
138
|
+
/** Patch a project's next.config in place. "manual" means the caller should print guidance instead. */
|
|
139
|
+
export async function ensureStudioHeaders(targetDir) {
|
|
140
|
+
const configPath = await findNextConfig(targetDir);
|
|
141
|
+
if (!configPath)
|
|
142
|
+
return "manual";
|
|
143
|
+
const content = await fs.readFile(configPath, "utf-8");
|
|
144
|
+
// Known shape first: a leftover site-wide rule still re-adds X-Frame-Options
|
|
145
|
+
// to /studio, even when a hand-written studio rule sits alongside it.
|
|
146
|
+
const patched = patchStudioHeaders(content);
|
|
147
|
+
if (patched !== null) {
|
|
148
|
+
await fs.writeFile(configPath, patched);
|
|
149
|
+
return "patched";
|
|
150
|
+
}
|
|
151
|
+
return hasStudioExemption(content) ? "already" : "manual";
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=ensure-studio-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-studio-headers.js","sourceRoot":"","sources":["../../../src/infrastructure/integrations/ensure-studio-headers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,sBAAsB,GAAG;IAC9B,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;CACjB,CAAC;AAEF,MAAM,sBAAsB,GAAG,4CAA4C,CAAC;AAC5E,MAAM,aAAa,GAAG,0BAA0B,CAAC;AACjD,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAErD,+EAA+E;AAC/E,mBAAmB;AACnB,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCV,CAAC;AAER,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqCV,aAAa;;;;;;;;oBAQD,sBAAsB;;;;;;;;;;;;;;;;;;;OAmBnC,CAAC;AAER,qGAAqG;AACrG,MAAM,UAAU,kBAAkB,CAAC,OAAe;IACjD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC9C,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,sEAAsE;AACtE,6DAA6D;AAC7D,SAAS,kBAAkB,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE9D,OAAO,CACN,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAC5E,CAAC;AACH,CAAC;AAID,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,SAAiB;IAEjB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU;QAAE,OAAO,QAAQ,CAAC;IAEjC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEvD,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,uBA+D1B,CAAC"}
|
|
@@ -13,11 +13,12 @@ export const sanityConfig = {
|
|
|
13
13
|
"@sanity/image-url": "^2.1.1",
|
|
14
14
|
"@sanity/visual-editing": "^5.4.3",
|
|
15
15
|
"@sanity/vision": "^5.30.0",
|
|
16
|
-
"next-sanity": "^13.
|
|
16
|
+
"next-sanity": "^13.3.1",
|
|
17
17
|
sanity: "^5.30.0",
|
|
18
18
|
"sanity-plugin-media": "^2.3.0",
|
|
19
19
|
},
|
|
20
20
|
devDependencies: {
|
|
21
|
+
"@sanity/browserslist-config": "^1.0.5",
|
|
21
22
|
"schema-dts": "^2.0.0",
|
|
22
23
|
},
|
|
23
24
|
scripts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,YAAY,GAA4B;IACpD,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,wBAAwB,EAAE,QAAQ;QAClC,qBAAqB,EAAE,SAAS;QAChC,qBAAqB,EAAE,QAAQ;QAC/B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,QAAQ;QAC7B,wBAAwB,EAAE,QAAQ;QAClC,gBAAgB,EAAE,SAAS;QAC3B,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,YAAY,GAA4B;IACpD,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,wBAAwB,EAAE,QAAQ;QAClC,qBAAqB,EAAE,SAAS;QAChC,qBAAqB,EAAE,QAAQ;QAC/B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,QAAQ;QAC7B,wBAAwB,EAAE,QAAQ;QAClC,gBAAgB,EAAE,SAAS;QAC3B,aAAa,EAAE,SAAS;QACxB,MAAM,EAAE,SAAS;QACjB,qBAAqB,EAAE,QAAQ;KAC/B;IAED,eAAe,EAAE;QAChB,6BAA6B,EAAE,QAAQ;QACvC,YAAY,EAAE,QAAQ;KACtB;IAED,OAAO,EAAE;QACR,gBAAgB,EACf,wFAAwF;QACzF,gBAAgB,EACf,0LAA0L;QAC3L,MAAM,EAAE,wBAAwB;QAChC,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,wBAAwB;QAClC,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,uCAAuC;KACrD;IAED,aAAa,EAAE;QACd,yBAAyB;QACzB,mBAAmB;QACnB,4BAA4B;QAC5B,oBAAoB;QACpB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,uBAAuB;QACvB,wCAAwC;QACxC,8BAA8B;QAC9B,gCAAgC;QAChC,iCAAiC;QACjC,4BAA4B;QAC5B,UAAU;KACV;IAED,UAAU,EAAE;QACX,gBAAgB;QAChB,0BAA0B;QAC1B,uCAAuC;QACvC,0BAA0B;QAC1B,WAAW;KACX;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,kCAAkC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,kCAAkC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,EAAE,kCAgDrC,CAAC"}
|
|
@@ -15,11 +15,12 @@ export const sanityPagebuilderConfig = {
|
|
|
15
15
|
"@sanity/ui": "^3.1.14",
|
|
16
16
|
"@sanity/vision": "^5.30.0",
|
|
17
17
|
"@sanity/visual-editing": "^5.4.3",
|
|
18
|
-
"next-sanity": "^13.
|
|
18
|
+
"next-sanity": "^13.3.1",
|
|
19
19
|
sanity: "^5.30.0",
|
|
20
20
|
"sanity-plugin-media": "^4.1.1",
|
|
21
21
|
},
|
|
22
22
|
devDependencies: {
|
|
23
|
+
"@sanity/browserslist-config": "^1.0.5",
|
|
23
24
|
"schema-dts": "^2.0.0",
|
|
24
25
|
},
|
|
25
26
|
scripts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,CAAC,MAAM,uBAAuB,GAAuC;IAC1E,IAAI,EAAE,oBAAoB;IAE1B,YAAY,EAAE;QACb,uBAAuB,EAAE,SAAS;QAClC,qBAAqB,EAAE,QAAQ;QAC/B,qBAAqB,EAAE,QAAQ;QAC/B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,QAAQ;QAC7B,eAAe,EAAE,QAAQ;QACzB,YAAY,EAAE,SAAS;QACvB,gBAAgB,EAAE,SAAS;QAC3B,wBAAwB,EAAE,QAAQ;QAClC,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/modules/features/cms/sanity-pagebuilder/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,CAAC,MAAM,uBAAuB,GAAuC;IAC1E,IAAI,EAAE,oBAAoB;IAE1B,YAAY,EAAE;QACb,uBAAuB,EAAE,SAAS;QAClC,qBAAqB,EAAE,QAAQ;QAC/B,qBAAqB,EAAE,QAAQ;QAC/B,eAAe,EAAE,QAAQ;QACzB,mBAAmB,EAAE,QAAQ;QAC7B,eAAe,EAAE,QAAQ;QACzB,YAAY,EAAE,SAAS;QACvB,gBAAgB,EAAE,SAAS;QAC3B,wBAAwB,EAAE,QAAQ;QAClC,aAAa,EAAE,SAAS;QACxB,MAAM,EAAE,SAAS;QACjB,qBAAqB,EAAE,QAAQ;KAC/B;IAED,eAAe,EAAE;QAChB,6BAA6B,EAAE,QAAQ;QACvC,YAAY,EAAE,QAAQ;KACtB;IAED,OAAO,EAAE;QACR,gBAAgB,EACf,wFAAwF;QACzF,gBAAgB,EAAE,qCAAqC;QACvD,MAAM,EAAE,wBAAwB;QAChC,QAAQ,EAAE,wBAAwB;KAClC;IAED,aAAa,EAAE;QACd,yBAAyB;QACzB,uCAAuC;QACvC,6BAA6B;QAC7B,uBAAuB;QACvB,uBAAuB;QACvB,kBAAkB;QAClB,sBAAsB;QACtB,+BAA+B;QAC/B,YAAY;QACZ,SAAS;QACT,cAAc;QACd,gBAAgB;QAChB,UAAU;QACV,mBAAmB;QACnB,4BAA4B;KAC5B;CACD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bsmnt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"packageManager": "bun@1.3.14",
|
|
5
5
|
"description": "CLI to scaffold basement projects and add integrations",
|
|
6
6
|
"type": "module",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"commander": "^13.1.0",
|
|
82
82
|
"dotenv": "^17.4.2",
|
|
83
83
|
"fs-extra": "^11.3.3",
|
|
84
|
-
"next-sanity": "^13.
|
|
84
|
+
"next-sanity": "^13.3.1",
|
|
85
85
|
"ora": "^9.1.0",
|
|
86
86
|
"picocolors": "^1.1.1",
|
|
87
87
|
"prompts": "^2.4.2",
|
|
@@ -4,6 +4,7 @@ import { SanityFetch } from "@/lib/integrations/sanity/live";
|
|
|
4
4
|
import { ARTICLE_QUERY } from "@/lib/integrations/sanity/queries";
|
|
5
5
|
import type { Article } from "@/lib/integrations/sanity/sanity.types";
|
|
6
6
|
import { portableTextToMarkdown } from "@/lib/utils/portable-text-to-markdown";
|
|
7
|
+
import { getBaseUrl } from "@/lib/utils/url";
|
|
7
8
|
|
|
8
9
|
export async function GET(
|
|
9
10
|
_request: Request,
|
|
@@ -16,7 +17,8 @@ export async function GET(
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
const slug = rawSlug.slice(0, -3);
|
|
19
|
-
const baseUrl =
|
|
20
|
+
const baseUrl = getBaseUrl().replace(/\/$/, "");
|
|
21
|
+
const canonicalPath = `/blog/${slug}`;
|
|
20
22
|
|
|
21
23
|
if (!isSanityConfigured()) {
|
|
22
24
|
return new NextResponse("# 404 Not Found\n\nCMS not configured.", {
|
|
@@ -64,6 +66,7 @@ export async function GET(
|
|
|
64
66
|
"Content-Type": "text/markdown; charset=utf-8",
|
|
65
67
|
Vary: "Accept",
|
|
66
68
|
"X-Content-Type-Options": "nosniff",
|
|
69
|
+
Link: `<${baseUrl}${canonicalPath}>; rel="canonical"`,
|
|
67
70
|
},
|
|
68
71
|
});
|
|
69
72
|
} catch (error) {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { NextResponse } from "next/server";
|
|
2
2
|
import { isSanityConfigured } from "@/lib/integrations/check-integration";
|
|
3
|
+
import { getBaseUrl } from "@/lib/utils/url";
|
|
3
4
|
|
|
4
5
|
export async function GET() {
|
|
5
|
-
const baseUrl =
|
|
6
|
+
const baseUrl = getBaseUrl();
|
|
6
7
|
|
|
7
8
|
if (!isSanityConfigured()) {
|
|
8
9
|
return new NextResponse(
|
|
@@ -4,13 +4,13 @@ import { urlForImage } from "@/lib/integrations/sanity/utils/image";
|
|
|
4
4
|
|
|
5
5
|
interface SanityImageProps extends Omit<ImageProps, "src" | "aspectRatio"> {
|
|
6
6
|
image: {
|
|
7
|
-
asset
|
|
7
|
+
asset?: {
|
|
8
8
|
_ref: string;
|
|
9
9
|
_type: "reference";
|
|
10
10
|
};
|
|
11
11
|
alt?: string;
|
|
12
12
|
hotspot?: object;
|
|
13
|
-
crop?:
|
|
13
|
+
crop?: { left?: number; right?: number; top?: number; bottom?: number };
|
|
14
14
|
};
|
|
15
15
|
maxWidth?: number;
|
|
16
16
|
}
|
|
@@ -19,18 +19,32 @@ export function SanityImage({
|
|
|
19
19
|
image,
|
|
20
20
|
maxWidth = 1920,
|
|
21
21
|
alt,
|
|
22
|
+
fill,
|
|
22
23
|
...props
|
|
23
24
|
}: SanityImageProps) {
|
|
24
25
|
if (!image?.asset) return null;
|
|
25
26
|
|
|
27
|
+
// getImageDimensions is uncropped; the URL builder applies the crop.
|
|
28
|
+
// Rounding order must match @sanity/image-url: origin first, then subtract.
|
|
26
29
|
const { width, height } = getImageDimensions(image.asset);
|
|
27
|
-
const
|
|
30
|
+
const { left = 0, right = 0, top = 0, bottom = 0 } = image.crop ?? {};
|
|
31
|
+
const cropLeft = Math.round(left * width);
|
|
32
|
+
const cropTop = Math.round(top * height);
|
|
33
|
+
const sourceWidth = Math.round(width - right * width - cropLeft);
|
|
34
|
+
const sourceHeight = Math.round(height - bottom * height - cropTop);
|
|
35
|
+
|
|
36
|
+
const imageProps = fill
|
|
37
|
+
? { fill: true }
|
|
38
|
+
: { width: sourceWidth, height: sourceHeight };
|
|
28
39
|
|
|
29
40
|
return (
|
|
30
41
|
<Image
|
|
31
|
-
src={urlForImage(image)
|
|
42
|
+
src={urlForImage(image)
|
|
43
|
+
.width(Math.min(maxWidth, sourceWidth))
|
|
44
|
+
.url()}
|
|
32
45
|
alt={alt || image.alt || ""}
|
|
33
|
-
aspectRatio={
|
|
46
|
+
aspectRatio={sourceWidth / sourceHeight}
|
|
47
|
+
{...imageProps}
|
|
34
48
|
{...props}
|
|
35
49
|
/>
|
|
36
50
|
);
|
|
@@ -128,6 +128,37 @@ export const landing = defineType({
|
|
|
128
128
|
|
|
129
129
|
See [ARCHITECTURE.md](../../../ARCHITECTURE.md) for cache gotchas.
|
|
130
130
|
|
|
131
|
+
## Sanity Dashboard (Studio in an iframe)
|
|
132
|
+
|
|
133
|
+
The Studio at `/studio` can be embedded in the Sanity Dashboard
|
|
134
|
+
(`https://www.sanity.io/@<org>/studio/<appId>/<workspace>`), which loads it in an
|
|
135
|
+
iframe from `www.sanity.io`. Three things have to be true for that to work:
|
|
136
|
+
|
|
137
|
+
1. **Headers.** `next.config.ts` already exempts `/studio/:path*` from the
|
|
138
|
+
site-wide `X-Frame-Options` / `frame-ancestors 'self'` headers, sending
|
|
139
|
+
`frame-ancestors 'self' https://*.sanity.io` there instead and dropping
|
|
140
|
+
`X-Frame-Options` entirely for that path (it has no "allow this origin"
|
|
141
|
+
form — it must be absent, not overridden). Nothing to do here unless
|
|
142
|
+
you've hand-edited `headers()`.
|
|
143
|
+
2. **Bridge script.** Already wired in: `next-sanity/studio`'s `NextStudio`
|
|
144
|
+
re-exports `NextStudioWithBridge`, which renders the
|
|
145
|
+
`core.sanity-cdn.com/bridge.js` tag the Dashboard needs. Don't hand-roll
|
|
146
|
+
that script tag, and don't switch the Studio route to
|
|
147
|
+
`next-sanity/studio/client-component` (the bridge-less variant).
|
|
148
|
+
3. **Registered URL.** In [Sanity Manage](https://sanity.io/manage), the
|
|
149
|
+
Studio application's URL must be the **full path**
|
|
150
|
+
(`https://example.com/studio`), not just the domain. This can't be set
|
|
151
|
+
from code — either click through Manage, or run
|
|
152
|
+
`sanity deploy --external --url https://example.com/studio --yes` from
|
|
153
|
+
`lib/integrations/sanity`. Writing it via the API needs the
|
|
154
|
+
`sanity.project.deployStudio` grant, which read/write tokens don't have.
|
|
155
|
+
|
|
156
|
+
Verify against a production build (`bun build && bun start`), not dev. One trap:
|
|
157
|
+
the Dashboard reports `Failed to load iframe due to X-Frame-Options: SAMEORIGIN`
|
|
158
|
+
for *any* framing failure, including a wrong registered URL with already-correct
|
|
159
|
+
headers. Trust the browser console's `Framing '<url>' violates …` line instead —
|
|
160
|
+
it names the URL actually being framed.
|
|
161
|
+
|
|
131
162
|
## Troubleshooting
|
|
132
163
|
|
|
133
164
|
**Visual editor not loading:**
|
|
@@ -14,6 +14,15 @@ export function proxy(request: NextRequest) {
|
|
|
14
14
|
return NextResponse.next();
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
// Collapse repeated slashes before any rewrite, or the rewrite below would
|
|
18
|
+
// mask the alias (e.g. /blog//foo.md silently resolving to /blog/foo.md).
|
|
19
|
+
const collapsedPathname = pathname.replace(/\/{2,}/g, "/");
|
|
20
|
+
if (collapsedPathname !== pathname) {
|
|
21
|
+
const url = request.nextUrl.clone();
|
|
22
|
+
url.pathname = collapsedPathname;
|
|
23
|
+
return NextResponse.redirect(url, 308);
|
|
24
|
+
}
|
|
25
|
+
|
|
17
26
|
// 1. Rewrite .md extension URLs to API routes
|
|
18
27
|
// e.g. /blog/my-post.md → /api/blog/my-post.md
|
|
19
28
|
for (const route of mdExtensionRoutes) {
|
|
@@ -8,6 +8,9 @@ import { getBaseUrl } from "@/lib/utils/base-url";
|
|
|
8
8
|
|
|
9
9
|
type PageResult = NonNullable<PAGE_QUERY_RESULT>;
|
|
10
10
|
|
|
11
|
+
const isValidSegment = (segment: string) =>
|
|
12
|
+
segment.length > 0 && segment !== "." && segment !== "..";
|
|
13
|
+
|
|
11
14
|
const getSlugPath = (slugParts?: string[]) => {
|
|
12
15
|
if (!slugParts?.length) return null;
|
|
13
16
|
|
|
@@ -18,8 +21,9 @@ const getSlugPath = (slugParts?: string[]) => {
|
|
|
18
21
|
const pathSegments = [...slugParts];
|
|
19
22
|
pathSegments[pathSegments.length - 1] = lastSegment.slice(0, -3);
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
if (!pathSegments.every(isValidSegment)) return null;
|
|
25
|
+
|
|
26
|
+
const slug = pathSegments.join("/");
|
|
23
27
|
|
|
24
28
|
return slug === "index" ? null : slug;
|
|
25
29
|
};
|
|
@@ -57,7 +61,7 @@ export async function GET(
|
|
|
57
61
|
|
|
58
62
|
const page = data as PageResult | null;
|
|
59
63
|
|
|
60
|
-
const baseUrl = getBaseUrl();
|
|
64
|
+
const baseUrl = getBaseUrl().replace(/\/$/, "");
|
|
61
65
|
|
|
62
66
|
if (!page) {
|
|
63
67
|
return new NextResponse("# 404 Not Found\n\nPage not found.", {
|
|
@@ -94,6 +98,7 @@ export async function GET(
|
|
|
94
98
|
"Content-Type": "text/markdown; charset=utf-8",
|
|
95
99
|
Vary: "Accept",
|
|
96
100
|
"X-Content-Type-Options": "nosniff",
|
|
101
|
+
Link: `<${baseUrl}${canonicalPath}>; rel="canonical"`,
|
|
97
102
|
},
|
|
98
103
|
},
|
|
99
104
|
);
|
|
@@ -113,7 +113,13 @@ export const GET = async () => {
|
|
|
113
113
|
|
|
114
114
|
if (pages.length === 0) parts.push("No content published yet.", "");
|
|
115
115
|
|
|
116
|
-
return new NextResponse(parts.join("\n")
|
|
116
|
+
return new NextResponse(parts.join("\n"), {
|
|
117
|
+
headers: {
|
|
118
|
+
"Content-Type": "text/markdown; charset=utf-8",
|
|
119
|
+
"X-Content-Type-Options": "nosniff",
|
|
120
|
+
"Cache-Control": "public, s-maxage=3600, stale-while-revalidate=600",
|
|
121
|
+
},
|
|
122
|
+
});
|
|
117
123
|
} catch (error) {
|
|
118
124
|
console.error("Error generating sitemap.md:", error);
|
|
119
125
|
return new NextResponse("# Sitemap\n\nError fetching content.", {
|
package/src/modules/features/cms/sanity-pagebuilder/files/components/ui/sanity-image/index.tsx
CHANGED
|
@@ -10,7 +10,7 @@ interface SanityImageProps extends Omit<ImageProps, "src" | "aspectRatio"> {
|
|
|
10
10
|
};
|
|
11
11
|
alt?: string;
|
|
12
12
|
hotspot?: object;
|
|
13
|
-
crop?:
|
|
13
|
+
crop?: { left?: number; right?: number; top?: number; bottom?: number };
|
|
14
14
|
};
|
|
15
15
|
maxWidth?: number;
|
|
16
16
|
}
|
|
@@ -24,16 +24,26 @@ export function SanityImage({
|
|
|
24
24
|
}: SanityImageProps) {
|
|
25
25
|
if (!image?.asset) return null;
|
|
26
26
|
|
|
27
|
+
// getImageDimensions is uncropped; the URL builder applies the crop.
|
|
28
|
+
// Rounding order must match @sanity/image-url: origin first, then subtract.
|
|
27
29
|
const { width, height } = getImageDimensions(image.asset);
|
|
28
|
-
const
|
|
30
|
+
const { left = 0, right = 0, top = 0, bottom = 0 } = image.crop ?? {};
|
|
31
|
+
const cropLeft = Math.round(left * width);
|
|
32
|
+
const cropTop = Math.round(top * height);
|
|
33
|
+
const sourceWidth = Math.round(width - right * width - cropLeft);
|
|
34
|
+
const sourceHeight = Math.round(height - bottom * height - cropTop);
|
|
29
35
|
|
|
30
|
-
const imageProps = fill
|
|
36
|
+
const imageProps = fill
|
|
37
|
+
? { fill: true }
|
|
38
|
+
: { width: sourceWidth, height: sourceHeight };
|
|
31
39
|
|
|
32
40
|
return (
|
|
33
41
|
<Image
|
|
34
|
-
src={urlForImage(image)
|
|
42
|
+
src={urlForImage(image)
|
|
43
|
+
.width(Math.min(maxWidth, sourceWidth))
|
|
44
|
+
.url()}
|
|
35
45
|
alt={alt || image.alt || ""}
|
|
36
|
-
aspectRatio={
|
|
46
|
+
aspectRatio={sourceWidth / sourceHeight}
|
|
37
47
|
{...imageProps}
|
|
38
48
|
{...props}
|
|
39
49
|
/>
|