@sanity/cli 7.2.3 → 7.3.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/bin/run.js +3 -12
- package/dist/actions/auth/authServer.js +37 -20
- package/dist/actions/auth/authServer.js.map +1 -1
- package/dist/actions/backup/assertDatasetExist.js +3 -3
- package/dist/actions/backup/assertDatasetExist.js.map +1 -1
- package/dist/actions/build/buildApp.js +15 -5
- package/dist/actions/build/buildApp.js.map +1 -1
- package/dist/actions/build/buildStaticFiles.js +57 -5
- package/dist/actions/build/buildStaticFiles.js.map +1 -1
- package/dist/actions/build/buildStudio.js +13 -5
- package/dist/actions/build/buildStudio.js.map +1 -1
- package/dist/actions/build/handlePrereleaseVersions.js +2 -2
- package/dist/actions/build/handlePrereleaseVersions.js.map +1 -1
- package/dist/actions/dataset/resolveDataset.js +2 -2
- package/dist/actions/dataset/resolveDataset.js.map +1 -1
- package/dist/actions/deploy/deployApp.js +43 -5
- package/dist/actions/deploy/deployApp.js.map +1 -1
- package/dist/actions/deploy/deployStudio.js +14 -2
- package/dist/actions/deploy/deployStudio.js.map +1 -1
- package/dist/actions/deploy/viewDeployment.js +32 -0
- package/dist/actions/deploy/viewDeployment.js.map +1 -0
- package/dist/actions/dev/devAction.js +219 -4
- package/dist/actions/dev/devAction.js.map +1 -1
- package/dist/actions/dev/registration/deriveInterfaces.js +46 -0
- package/dist/actions/dev/registration/deriveInterfaces.js.map +1 -0
- package/dist/actions/dev/registration/extractDevServerManifest.js +30 -0
- package/dist/actions/dev/registration/extractDevServerManifest.js.map +1 -0
- package/dist/actions/dev/registration/interfaceSetId.js +41 -0
- package/dist/actions/dev/registration/interfaceSetId.js.map +1 -0
- package/dist/actions/dev/registration/startDevManifestWatcher.js +104 -0
- package/dist/actions/dev/registration/startDevManifestWatcher.js.map +1 -0
- package/dist/actions/dev/registration/startDevServerRegistration.js +121 -0
- package/dist/actions/dev/registration/startDevServerRegistration.js.map +1 -0
- package/dist/actions/dev/servers/getDashboardAppUrl.js.map +1 -0
- package/dist/actions/dev/servers/getDevServerConfig.js +45 -0
- package/dist/actions/dev/servers/getDevServerConfig.js.map +1 -0
- package/dist/actions/dev/servers/startAppDevServer.js +78 -0
- package/dist/actions/dev/servers/startAppDevServer.js.map +1 -0
- package/dist/actions/dev/{startStudioDevServer.js → servers/startStudioDevServer.js} +20 -16
- package/dist/actions/dev/servers/startStudioDevServer.js.map +1 -0
- package/dist/actions/dev/types.js +7 -1
- package/dist/actions/dev/types.js.map +1 -1
- package/dist/actions/dev/workbench/startWorkbenchDevServer.js +276 -0
- package/dist/actions/dev/workbench/startWorkbenchDevServer.js.map +1 -0
- package/dist/actions/dev/workbench/writeWorkbenchRuntime.js +66 -0
- package/dist/actions/dev/workbench/writeWorkbenchRuntime.js.map +1 -0
- package/dist/actions/init/bootstrapLocalTemplate.js +15 -3
- package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -1
- package/dist/actions/init/bootstrapTemplate.js +3 -2
- package/dist/actions/init/bootstrapTemplate.js.map +1 -1
- package/dist/actions/init/createAppCliConfig.js +5 -2
- package/dist/actions/init/createAppCliConfig.js.map +1 -1
- package/dist/actions/init/createCliConfig.js +5 -3
- package/dist/actions/init/createCliConfig.js.map +1 -1
- package/dist/actions/init/createStudioConfig.js.map +1 -1
- package/dist/actions/init/initAction.js +11 -4
- package/dist/actions/init/initAction.js.map +1 -1
- package/dist/actions/init/initApp.js +2 -1
- package/dist/actions/init/initApp.js.map +1 -1
- package/dist/actions/init/initStudio.js +2 -1
- package/dist/actions/init/initStudio.js.map +1 -1
- package/dist/actions/init/scaffoldTemplate.js +3 -2
- package/dist/actions/init/scaffoldTemplate.js.map +1 -1
- package/dist/actions/init/templates/pageBuilder.js +1 -1
- package/dist/actions/init/templates/pageBuilder.js.map +1 -1
- package/dist/actions/init/types.js +1 -0
- package/dist/actions/init/types.js.map +1 -1
- package/dist/actions/manifest/{extractAppManifest.js → extractCoreAppManifest.js} +30 -11
- package/dist/actions/manifest/extractCoreAppManifest.js.map +1 -0
- package/dist/actions/manifest/extractManifest.js +7 -7
- package/dist/actions/manifest/extractManifest.js.map +1 -1
- package/dist/actions/manifest/iconResolver.js +2 -3
- package/dist/actions/manifest/iconResolver.js.map +1 -1
- package/dist/actions/manifest/sanitizeIcon.js +13 -0
- package/dist/actions/manifest/sanitizeIcon.js.map +1 -0
- package/dist/actions/manifest/types.js +4 -9
- package/dist/actions/manifest/types.js.map +1 -1
- package/dist/actions/manifest/writeManifestFile.js +1 -1
- package/dist/actions/manifest/writeManifestFile.js.map +1 -1
- package/dist/actions/mcp/editorConfigs.js +26 -2
- package/dist/actions/mcp/editorConfigs.js.map +1 -1
- package/dist/actions/mcp/setupMCP.js +24 -25
- package/dist/actions/mcp/setupMCP.js.map +1 -1
- package/dist/actions/mcp/types.js.map +1 -1
- package/dist/actions/skills/configureSkills.js +49 -0
- package/dist/actions/skills/configureSkills.js.map +1 -0
- package/dist/actions/skills/readSkillState.js +40 -5
- package/dist/actions/skills/readSkillState.js.map +1 -1
- package/dist/actions/skills/setupSkills.js +47 -6
- package/dist/actions/skills/setupSkills.js.map +1 -1
- package/dist/actions/skills/skillCandidates.js +40 -0
- package/dist/actions/skills/skillCandidates.js.map +1 -0
- package/dist/actions/telemetry/telemetryDisclosure.js +2 -3
- package/dist/actions/telemetry/telemetryDisclosure.js.map +1 -1
- package/dist/actions/tokens/validateRole.js +3 -3
- package/dist/actions/tokens/validateRole.js.map +1 -1
- package/dist/commands/backups/disable.js +1 -1
- package/dist/commands/backups/disable.js.map +1 -1
- package/dist/commands/backups/download.js +1 -1
- package/dist/commands/backups/download.js.map +1 -1
- package/dist/commands/backups/enable.js +1 -1
- package/dist/commands/backups/enable.js.map +1 -1
- package/dist/commands/backups/list.js +1 -1
- package/dist/commands/backups/list.js.map +1 -1
- package/dist/commands/datasets/embeddings/disable.js +1 -0
- package/dist/commands/datasets/embeddings/disable.js.map +1 -1
- package/dist/commands/datasets/embeddings/enable.js +1 -0
- package/dist/commands/datasets/embeddings/enable.js.map +1 -1
- package/dist/commands/datasets/embeddings/status.js +1 -0
- package/dist/commands/datasets/embeddings/status.js.map +1 -1
- package/dist/commands/dev.js +11 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/init.js +7 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/manifest/extract.js +7 -2
- package/dist/commands/manifest/extract.js.map +1 -1
- package/dist/commands/mcp/configure.js +1 -0
- package/dist/commands/mcp/configure.js.map +1 -1
- package/dist/commands/skills/install.js +40 -0
- package/dist/commands/skills/install.js.map +1 -0
- package/dist/commands/tokens/add.js +1 -1
- package/dist/commands/tokens/add.js.map +1 -1
- package/dist/exports/index.d.ts +6 -0
- package/dist/exports/index.js +8 -0
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/runtime.d.ts +41 -0
- package/dist/exports/runtime.js +13 -0
- package/dist/exports/runtime.js.map +1 -0
- package/dist/hooks/prerun/setupTelemetry.js +3 -1
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -1
- package/dist/server/devServer.js +8 -3
- package/dist/server/devServer.js.map +1 -1
- package/dist/services/documents.js +0 -1
- package/dist/services/documents.js.map +1 -1
- package/dist/telemetry/skills.telemetry.js +8 -0
- package/dist/telemetry/skills.telemetry.js.map +1 -0
- package/dist/util/compareDependencyVersions.js +1 -1
- package/dist/util/compareDependencyVersions.js.map +1 -1
- package/dist/util/determineIsApp.js +12 -1
- package/dist/util/determineIsApp.js.map +1 -1
- package/dist/util/getSharedServerConfig.js +2 -1
- package/dist/util/getSharedServerConfig.js.map +1 -1
- package/dist/util/resolveReactStrictMode.js +11 -0
- package/dist/util/resolveReactStrictMode.js.map +1 -0
- package/oclif.config.js +2 -1
- package/oclif.manifest.json +146 -113
- package/package.json +26 -17
- package/templates/page-builder/schemaTypes/index.js +1 -1
- package/dist/actions/build/checkRequiredDependencies.js +0 -124
- package/dist/actions/build/checkRequiredDependencies.js.map +0 -1
- package/dist/actions/build/getAutoUpdatesImportMap.js +0 -66
- package/dist/actions/build/getAutoUpdatesImportMap.js.map +0 -1
- package/dist/actions/dev/getDashboardAppUrl.js.map +0 -1
- package/dist/actions/dev/getDevServerConfig.js +0 -32
- package/dist/actions/dev/getDevServerConfig.js.map +0 -1
- package/dist/actions/dev/startAppDevServer.js +0 -59
- package/dist/actions/dev/startAppDevServer.js.map +0 -1
- package/dist/actions/dev/startStudioDevServer.js.map +0 -1
- package/dist/actions/manifest/extractAppManifest.js.map +0 -1
- /package/dist/actions/dev/{getDashboardAppUrl.js → servers/getDashboardAppUrl.js} +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { DefinedService } from "@sanity/workbench-cli";
|
|
2
|
+
import { DefinedView } from "@sanity/workbench-cli";
|
|
3
|
+
import { InterfaceType } from "@sanity/workbench-cli";
|
|
4
|
+
import { PanelComponent } from "@sanity/workbench-cli";
|
|
5
|
+
import { PanelViewComponents } from "@sanity/workbench-cli";
|
|
6
|
+
import { PanelViewProps } from "@sanity/workbench-cli";
|
|
7
|
+
import { ServiceCallback } from "@sanity/workbench-cli";
|
|
8
|
+
import { ServiceContext } from "@sanity/workbench-cli";
|
|
9
|
+
import { ServiceInfo } from "@sanity/workbench-cli";
|
|
10
|
+
import { ServiceType } from "@sanity/workbench-cli";
|
|
11
|
+
import { unstable_defineService } from "@sanity/workbench-cli";
|
|
12
|
+
import { unstable_defineView } from "@sanity/workbench-cli";
|
|
13
|
+
import { ViewComponentsByType } from "@sanity/workbench-cli";
|
|
14
|
+
|
|
15
|
+
export { DefinedService };
|
|
16
|
+
|
|
17
|
+
export { DefinedView };
|
|
18
|
+
|
|
19
|
+
export { InterfaceType };
|
|
20
|
+
|
|
21
|
+
export { PanelComponent };
|
|
22
|
+
|
|
23
|
+
export { PanelViewComponents };
|
|
24
|
+
|
|
25
|
+
export { PanelViewProps };
|
|
26
|
+
|
|
27
|
+
export { ServiceCallback };
|
|
28
|
+
|
|
29
|
+
export { ServiceContext };
|
|
30
|
+
|
|
31
|
+
export { ServiceInfo };
|
|
32
|
+
|
|
33
|
+
export { ServiceType };
|
|
34
|
+
|
|
35
|
+
export { unstable_defineService };
|
|
36
|
+
|
|
37
|
+
export { unstable_defineView };
|
|
38
|
+
|
|
39
|
+
export { ViewComponentsByType };
|
|
40
|
+
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Browser-safe runtime authoring helpers for the module-federation extension API.
|
|
2
|
+
//
|
|
3
|
+
// View/service src files bundle to the browser, so this entry re-exports ONLY
|
|
4
|
+
// from dependency-light, browser-safe modules — it must never import
|
|
5
|
+
// `@sanity/cli-core` or anything Node-only, or it would drag the CLI into the
|
|
6
|
+
// frontend bundle. The `sanity` runtime package re-exports from here, so the
|
|
7
|
+
// same constraint protects it.
|
|
8
|
+
//
|
|
9
|
+
// `unstable_defineApp` is config-time (Node) and stays on the main `@sanity/cli`
|
|
10
|
+
// entry; only the runtime helpers live here.
|
|
11
|
+
export { unstable_defineService, unstable_defineView } from '@sanity/workbench-cli';
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/exports/runtime.ts"],"sourcesContent":["// Browser-safe runtime authoring helpers for the module-federation extension API.\n//\n// View/service src files bundle to the browser, so this entry re-exports ONLY\n// from dependency-light, browser-safe modules — it must never import\n// `@sanity/cli-core` or anything Node-only, or it would drag the CLI into the\n// frontend bundle. The `sanity` runtime package re-exports from here, so the\n// same constraint protects it.\n//\n// `unstable_defineApp` is config-time (Node) and stays on the main `@sanity/cli`\n// entry; only the runtime helpers live here.\nexport type {\n DefinedService,\n DefinedView,\n InterfaceType,\n PanelComponent,\n PanelViewComponents,\n PanelViewProps,\n ServiceCallback,\n ServiceContext,\n ServiceInfo,\n ServiceType,\n ViewComponentsByType,\n} from '@sanity/workbench-cli'\nexport {unstable_defineService, unstable_defineView} from '@sanity/workbench-cli'\n"],"names":["unstable_defineService","unstable_defineView"],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,8EAA8E;AAC9E,qEAAqE;AACrE,8EAA8E;AAC9E,6EAA6E;AAC7E,+BAA+B;AAC/B,EAAE;AACF,iFAAiF;AACjF,6CAA6C;AAc7C,SAAQA,sBAAsB,EAAEC,mBAAmB,QAAO,wBAAuB"}
|
|
@@ -11,7 +11,9 @@ import { parseArguments } from '../../util/parseArguments.js';
|
|
|
11
11
|
import { createTelemetryStore } from '../../util/telemetry/createTelemetryStore.js';
|
|
12
12
|
export const setupTelemetry = async function({ config }) {
|
|
13
13
|
// Show telemetry disclosure
|
|
14
|
-
telemetryDisclosure(
|
|
14
|
+
telemetryDisclosure({
|
|
15
|
+
logToStderr: (message)=>process.stderr.write(`${message}\n`)
|
|
16
|
+
});
|
|
15
17
|
const sessionId = createSessionId();
|
|
16
18
|
const telemetry = createTelemetryStore(sessionId, {
|
|
17
19
|
resolveConsent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/prerun/setupTelemetry.ts"],"sourcesContent":["import {spawn} from 'node:child_process'\nimport {fileURLToPath} from 'node:url'\n\nimport {type Hook} from '@oclif/core'\nimport {\n type CliConfig,\n debug,\n findProjectRoot,\n getCliConfig,\n setCliTelemetry,\n} from '@sanity/cli-core'\nimport {createSessionId} from '@sanity/telemetry'\n\nimport {resolveConsent} from '../../actions/telemetry/resolveConsent.js'\nimport {telemetryDebug} from '../../actions/telemetry/telemetryDebug.js'\nimport {telemetryDisclosure} from '../../actions/telemetry/telemetryDisclosure.js'\nimport {CliCommandTelemetry, type CLITraceData} from '../../telemetry/cli.telemetry.js'\nimport {detectRuntime} from '../../util/detectRuntime.js'\nimport {parseArguments} from '../../util/parseArguments.js'\nimport {createTelemetryStore} from '../../util/telemetry/createTelemetryStore.js'\n\nexport const setupTelemetry: Hook.Prerun = async function ({config}) {\n // Show telemetry disclosure\n telemetryDisclosure()\n\n const sessionId = createSessionId()\n\n const telemetry = createTelemetryStore(sessionId, {\n resolveConsent,\n })\n\n let cliConfig: CliConfig | undefined\n try {\n const projectRoot = await findProjectRoot(process.cwd())\n cliConfig = await getCliConfig(projectRoot.directory)\n } catch {\n // Accept not finding a project root and/or CLI config\n }\n\n telemetry.updateUserProperties({\n cliVersion: config.version,\n cpuArchitecture: process.arch,\n dataset: cliConfig?.api?.dataset,\n machinePlatform: process.platform,\n projectId: cliConfig?.api?.projectId,\n runtime: detectRuntime(),\n runtimeVersion: process.version,\n })\n\n const args = parseArguments()\n\n const traceOptions: CLITraceData = {\n commandArguments: args.argsWithoutOptions,\n coreOptions: {\n debug: args.coreOptions.debug ?? undefined,\n help: args.coreOptions.help ?? undefined,\n version: args.coreOptions.version ?? undefined,\n },\n extraArguments: args.extraArguments,\n groupOrCommand: args.groupOrCommand,\n }\n\n telemetryDebug('Starting command trace', traceOptions)\n\n const cliCommandTrace = telemetry.trace(CliCommandTelemetry, traceOptions)\n cliCommandTrace.start()\n\n // Set the global telemetry store and trace error reporter\n setCliTelemetry(cliCommandTrace.newContext(args.groupOrCommand), {\n reportTraceError: (error) => cliCommandTrace.error(error),\n })\n\n // Handle process exit - complete trace on success, spawn worker to flush telemetry.\n // On non-zero exit, the trace is either already errored (from SanityCommand.catch)\n // or it was a user abort (SIGINT/ctrl+c) — left incomplete, matching old CLI behavior.\n process.once('exit', (status) => {\n if (status === 0) {\n cliCommandTrace.complete()\n }\n\n const workerPath = fileURLToPath(new URL('flushTelemetry.worker.js', import.meta.url))\n telemetryDebug(`Spawning \"${process.execPath} ${workerPath}\"`)\n\n // Spawn detached worker to flush all telemetry files\n // unref will ensure the child process can keep doing work even after the parent process exits\n spawn(process.execPath, [workerPath], {\n detached: true,\n env: {\n ...process.env,\n SANITY_TELEMETRY_PROJECT_ID: cliConfig?.api?.projectId || '',\n },\n // If debug is enabled, spawn the worker with stdio inherit to see the output\n stdio: debug.enabled || telemetryDebug.enabled ? 'inherit' : 'ignore',\n }).unref()\n })\n}\n"],"names":["spawn","fileURLToPath","debug","findProjectRoot","getCliConfig","setCliTelemetry","createSessionId","resolveConsent","telemetryDebug","telemetryDisclosure","CliCommandTelemetry","detectRuntime","parseArguments","createTelemetryStore","setupTelemetry","config","sessionId","telemetry","cliConfig","projectRoot","
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/prerun/setupTelemetry.ts"],"sourcesContent":["import {spawn} from 'node:child_process'\nimport {fileURLToPath} from 'node:url'\n\nimport {type Hook} from '@oclif/core'\nimport {\n type CliConfig,\n debug,\n findProjectRoot,\n getCliConfig,\n setCliTelemetry,\n} from '@sanity/cli-core'\nimport {createSessionId} from '@sanity/telemetry'\n\nimport {resolveConsent} from '../../actions/telemetry/resolveConsent.js'\nimport {telemetryDebug} from '../../actions/telemetry/telemetryDebug.js'\nimport {telemetryDisclosure} from '../../actions/telemetry/telemetryDisclosure.js'\nimport {CliCommandTelemetry, type CLITraceData} from '../../telemetry/cli.telemetry.js'\nimport {detectRuntime} from '../../util/detectRuntime.js'\nimport {parseArguments} from '../../util/parseArguments.js'\nimport {createTelemetryStore} from '../../util/telemetry/createTelemetryStore.js'\n\nexport const setupTelemetry: Hook.Prerun = async function ({config}) {\n // Show telemetry disclosure\n telemetryDisclosure({logToStderr: (message) => process.stderr.write(`${message}\\n`)})\n\n const sessionId = createSessionId()\n\n const telemetry = createTelemetryStore(sessionId, {\n resolveConsent,\n })\n\n let cliConfig: CliConfig | undefined\n try {\n const projectRoot = await findProjectRoot(process.cwd())\n cliConfig = await getCliConfig(projectRoot.directory)\n } catch {\n // Accept not finding a project root and/or CLI config\n }\n\n telemetry.updateUserProperties({\n cliVersion: config.version,\n cpuArchitecture: process.arch,\n dataset: cliConfig?.api?.dataset,\n machinePlatform: process.platform,\n projectId: cliConfig?.api?.projectId,\n runtime: detectRuntime(),\n runtimeVersion: process.version,\n })\n\n const args = parseArguments()\n\n const traceOptions: CLITraceData = {\n commandArguments: args.argsWithoutOptions,\n coreOptions: {\n debug: args.coreOptions.debug ?? undefined,\n help: args.coreOptions.help ?? undefined,\n version: args.coreOptions.version ?? undefined,\n },\n extraArguments: args.extraArguments,\n groupOrCommand: args.groupOrCommand,\n }\n\n telemetryDebug('Starting command trace', traceOptions)\n\n const cliCommandTrace = telemetry.trace(CliCommandTelemetry, traceOptions)\n cliCommandTrace.start()\n\n // Set the global telemetry store and trace error reporter\n setCliTelemetry(cliCommandTrace.newContext(args.groupOrCommand), {\n reportTraceError: (error) => cliCommandTrace.error(error),\n })\n\n // Handle process exit - complete trace on success, spawn worker to flush telemetry.\n // On non-zero exit, the trace is either already errored (from SanityCommand.catch)\n // or it was a user abort (SIGINT/ctrl+c) — left incomplete, matching old CLI behavior.\n process.once('exit', (status) => {\n if (status === 0) {\n cliCommandTrace.complete()\n }\n\n const workerPath = fileURLToPath(new URL('flushTelemetry.worker.js', import.meta.url))\n telemetryDebug(`Spawning \"${process.execPath} ${workerPath}\"`)\n\n // Spawn detached worker to flush all telemetry files\n // unref will ensure the child process can keep doing work even after the parent process exits\n spawn(process.execPath, [workerPath], {\n detached: true,\n env: {\n ...process.env,\n SANITY_TELEMETRY_PROJECT_ID: cliConfig?.api?.projectId || '',\n },\n // If debug is enabled, spawn the worker with stdio inherit to see the output\n stdio: debug.enabled || telemetryDebug.enabled ? 'inherit' : 'ignore',\n }).unref()\n })\n}\n"],"names":["spawn","fileURLToPath","debug","findProjectRoot","getCliConfig","setCliTelemetry","createSessionId","resolveConsent","telemetryDebug","telemetryDisclosure","CliCommandTelemetry","detectRuntime","parseArguments","createTelemetryStore","setupTelemetry","config","logToStderr","message","process","stderr","write","sessionId","telemetry","cliConfig","projectRoot","cwd","directory","updateUserProperties","cliVersion","version","cpuArchitecture","arch","dataset","api","machinePlatform","platform","projectId","runtime","runtimeVersion","args","traceOptions","commandArguments","argsWithoutOptions","coreOptions","undefined","help","extraArguments","groupOrCommand","cliCommandTrace","trace","start","newContext","reportTraceError","error","once","status","complete","workerPath","URL","url","execPath","detached","env","SANITY_TELEMETRY_PROJECT_ID","stdio","enabled","unref"],"mappings":"AAAA,SAAQA,KAAK,QAAO,qBAAoB;AACxC,SAAQC,aAAa,QAAO,WAAU;AAGtC,SAEEC,KAAK,EACLC,eAAe,EACfC,YAAY,EACZC,eAAe,QACV,mBAAkB;AACzB,SAAQC,eAAe,QAAO,oBAAmB;AAEjD,SAAQC,cAAc,QAAO,4CAA2C;AACxE,SAAQC,cAAc,QAAO,4CAA2C;AACxE,SAAQC,mBAAmB,QAAO,iDAAgD;AAClF,SAAQC,mBAAmB,QAA0B,mCAAkC;AACvF,SAAQC,aAAa,QAAO,8BAA6B;AACzD,SAAQC,cAAc,QAAO,+BAA8B;AAC3D,SAAQC,oBAAoB,QAAO,+CAA8C;AAEjF,OAAO,MAAMC,iBAA8B,eAAgB,EAACC,MAAM,EAAC;IACjE,4BAA4B;IAC5BN,oBAAoB;QAACO,aAAa,CAACC,UAAYC,QAAQC,MAAM,CAACC,KAAK,CAAC,GAAGH,QAAQ,EAAE,CAAC;IAAC;IAEnF,MAAMI,YAAYf;IAElB,MAAMgB,YAAYT,qBAAqBQ,WAAW;QAChDd;IACF;IAEA,IAAIgB;IACJ,IAAI;QACF,MAAMC,cAAc,MAAMrB,gBAAgBe,QAAQO,GAAG;QACrDF,YAAY,MAAMnB,aAAaoB,YAAYE,SAAS;IACtD,EAAE,OAAM;IACN,sDAAsD;IACxD;IAEAJ,UAAUK,oBAAoB,CAAC;QAC7BC,YAAYb,OAAOc,OAAO;QAC1BC,iBAAiBZ,QAAQa,IAAI;QAC7BC,SAAST,WAAWU,KAAKD;QACzBE,iBAAiBhB,QAAQiB,QAAQ;QACjCC,WAAWb,WAAWU,KAAKG;QAC3BC,SAAS1B;QACT2B,gBAAgBpB,QAAQW,OAAO;IACjC;IAEA,MAAMU,OAAO3B;IAEb,MAAM4B,eAA6B;QACjCC,kBAAkBF,KAAKG,kBAAkB;QACzCC,aAAa;YACXzC,OAAOqC,KAAKI,WAAW,CAACzC,KAAK,IAAI0C;YACjCC,MAAMN,KAAKI,WAAW,CAACE,IAAI,IAAID;YAC/Bf,SAASU,KAAKI,WAAW,CAACd,OAAO,IAAIe;QACvC;QACAE,gBAAgBP,KAAKO,cAAc;QACnCC,gBAAgBR,KAAKQ,cAAc;IACrC;IAEAvC,eAAe,0BAA0BgC;IAEzC,MAAMQ,kBAAkB1B,UAAU2B,KAAK,CAACvC,qBAAqB8B;IAC7DQ,gBAAgBE,KAAK;IAErB,0DAA0D;IAC1D7C,gBAAgB2C,gBAAgBG,UAAU,CAACZ,KAAKQ,cAAc,GAAG;QAC/DK,kBAAkB,CAACC,QAAUL,gBAAgBK,KAAK,CAACA;IACrD;IAEA,oFAAoF;IACpF,mFAAmF;IACnF,uFAAuF;IACvFnC,QAAQoC,IAAI,CAAC,QAAQ,CAACC;QACpB,IAAIA,WAAW,GAAG;YAChBP,gBAAgBQ,QAAQ;QAC1B;QAEA,MAAMC,aAAaxD,cAAc,IAAIyD,IAAI,4BAA4B,YAAYC,GAAG;QACpFnD,eAAe,CAAC,UAAU,EAAEU,QAAQ0C,QAAQ,CAAC,CAAC,EAAEH,WAAW,CAAC,CAAC;QAE7D,qDAAqD;QACrD,8FAA8F;QAC9FzD,MAAMkB,QAAQ0C,QAAQ,EAAE;YAACH;SAAW,EAAE;YACpCI,UAAU;YACVC,KAAK;gBACH,GAAG5C,QAAQ4C,GAAG;gBACdC,6BAA6BxC,WAAWU,KAAKG,aAAa;YAC5D;YACA,6EAA6E;YAC7E4B,OAAO9D,MAAM+D,OAAO,IAAIzD,eAAeyD,OAAO,GAAG,YAAY;QAC/D,GAAGC,KAAK;IACV;AACF,EAAC"}
|
package/dist/server/devServer.js
CHANGED
|
@@ -6,14 +6,15 @@ import { serverDebug } from './serverDebug.js';
|
|
|
6
6
|
import { sanityTypegenPlugin } from './vite/plugin-typegen.js';
|
|
7
7
|
const debug = serverDebug.extend('dev');
|
|
8
8
|
export async function startDevServer(options) {
|
|
9
|
-
const { appTitle, basePath, cwd, entry, httpHost, httpPort, isApp, reactCompiler, reactStrictMode, schemaExtraction, typegen, vite: extendViteConfig } = options;
|
|
9
|
+
const { appTitle, basePath, cwd, entry, httpHost, httpPort, isApp, isWorkbenchApp, reactCompiler, reactStrictMode, schemaExtraction, services, typegen, views, vite: extendViteConfig } = options;
|
|
10
10
|
debug('Writing Sanity runtime files');
|
|
11
|
-
const watcher = await writeSanityRuntime({
|
|
11
|
+
const { entries, watcher } = await writeSanityRuntime({
|
|
12
12
|
appTitle,
|
|
13
13
|
basePath,
|
|
14
14
|
cwd,
|
|
15
15
|
entry,
|
|
16
16
|
isApp,
|
|
17
|
+
isWorkbenchApp,
|
|
17
18
|
reactStrictMode,
|
|
18
19
|
watch: true
|
|
19
20
|
});
|
|
@@ -41,15 +42,19 @@ export async function startDevServer(options) {
|
|
|
41
42
|
],
|
|
42
43
|
basePath,
|
|
43
44
|
cwd,
|
|
45
|
+
entries,
|
|
44
46
|
getEnvironmentVariables,
|
|
45
47
|
isApp,
|
|
48
|
+
isWorkbenchApp,
|
|
46
49
|
mode: 'development',
|
|
47
50
|
reactCompiler,
|
|
48
51
|
schemaExtraction,
|
|
49
52
|
server: {
|
|
50
53
|
host: httpHost,
|
|
51
54
|
port: httpPort
|
|
52
|
-
}
|
|
55
|
+
},
|
|
56
|
+
services,
|
|
57
|
+
views
|
|
53
58
|
});
|
|
54
59
|
// Extend Vite configuration with user-provided config
|
|
55
60
|
if (extendViteConfig) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/server/devServer.ts"],"sourcesContent":["import {\n extendViteConfigWithUserConfig,\n getViteConfig,\n writeSanityRuntime,\n} from '@sanity/cli-build/_internal/build'\nimport {CliConfig, getCliTelemetry, type UserViteConfig} from '@sanity/cli-core'\nimport {type PluginOptions as ReactCompilerConfig} from 'babel-plugin-react-compiler'\nimport {type FSWatcher} from 'chokidar'\nimport {createServer, type InlineConfig, type ViteDevServer} from 'vite'\n\nimport {\n getAppEnvironmentVariables,\n getStudioEnvironmentVariables,\n} from '../actions/build/getEnvironmentVariables.js'\nimport {serverDebug} from './serverDebug.js'\nimport {sanityTypegenPlugin} from './vite/plugin-typegen.js'\n\nconst debug = serverDebug.extend('dev')\n\nexport interface DevServerOptions {\n basePath: string\n cwd: string\n httpPort: number\n\n reactCompiler: ReactCompilerConfig | undefined\n reactStrictMode: boolean | undefined\n\n staticPath: string\n\n appTitle?: string\n entry?: string\n httpHost?: string\n isApp?: boolean\n projectName?: string\n schemaExtraction?: CliConfig['schemaExtraction']\n typegen?: CliConfig['typegen']\n vite?: UserViteConfig\n}\n\ninterface DevServer {\n close(): Promise<void>\n server: ViteDevServer\n\n watcher?: FSWatcher\n}\n\nexport async function startDevServer(options: DevServerOptions): Promise<DevServer> {\n const {\n appTitle,\n basePath,\n cwd,\n entry,\n httpHost,\n httpPort,\n isApp,\n reactCompiler,\n reactStrictMode,\n schemaExtraction,\n typegen,\n vite: extendViteConfig,\n } = options\n\n debug('Writing Sanity runtime files')\n const watcher = await writeSanityRuntime({\n appTitle,\n basePath,\n cwd,\n entry,\n isApp,\n reactStrictMode,\n watch: true,\n })\n\n debug('Resolving vite config')\n const mode = 'development'\n\n function getEnvironmentVariables() {\n return isApp\n ? getAppEnvironmentVariables({jsonEncode: true, prefix: 'process.env.'})\n : getStudioEnvironmentVariables({jsonEncode: true, prefix: 'process.env.'})\n }\n\n let viteConfig: InlineConfig = await getViteConfig({\n additionalPlugins: [\n // Add typegen when enabled\n ...(typegen?.enabled\n ? [\n sanityTypegenPlugin({\n config: typegen,\n telemetryLogger: getCliTelemetry(),\n workDir: cwd,\n }),\n ]\n : []),\n ],\n basePath,\n cwd,\n getEnvironmentVariables,\n isApp,\n mode: 'development',\n reactCompiler,\n schemaExtraction,\n server: {host: httpHost, port: httpPort},\n })\n\n // Extend Vite configuration with user-provided config\n if (extendViteConfig) {\n viteConfig = await extendViteConfigWithUserConfig(\n {command: 'serve', mode},\n viteConfig,\n extendViteConfig,\n )\n }\n\n debug('Creating vite server')\n const server = await createServer(viteConfig)\n\n debug('Listening on specified port')\n await server.listen()\n\n return {\n close: async () => {\n if (watcher) {\n await watcher.close()\n }\n await server.close()\n },\n server,\n watcher,\n }\n}\n"],"names":["extendViteConfigWithUserConfig","getViteConfig","writeSanityRuntime","getCliTelemetry","createServer","getAppEnvironmentVariables","getStudioEnvironmentVariables","serverDebug","sanityTypegenPlugin","debug","extend","startDevServer","options","appTitle","basePath","cwd","entry","httpHost","httpPort","isApp","reactCompiler","reactStrictMode","schemaExtraction","typegen","vite","extendViteConfig","watcher","watch","mode","getEnvironmentVariables","jsonEncode","prefix","viteConfig","additionalPlugins","enabled","config","telemetryLogger","workDir","server","host","port","command","listen","close"],"mappings":"AAAA,SACEA,8BAA8B,EAC9BC,aAAa,EACbC,kBAAkB,QACb,oCAAmC;AAC1C,SAAmBC,eAAe,QAA4B,mBAAkB;
|
|
1
|
+
{"version":3,"sources":["../../src/server/devServer.ts"],"sourcesContent":["import {\n extendViteConfigWithUserConfig,\n getViteConfig,\n writeSanityRuntime,\n} from '@sanity/cli-build/_internal/build'\nimport {CliConfig, getCliTelemetry, type UserViteConfig} from '@sanity/cli-core'\nimport {type DefineAppInput} from '@sanity/workbench-cli'\nimport {type PluginOptions as ReactCompilerConfig} from 'babel-plugin-react-compiler'\nimport {type FSWatcher} from 'chokidar'\nimport {createServer, type InlineConfig, type ViteDevServer} from 'vite'\n\nimport {\n getAppEnvironmentVariables,\n getStudioEnvironmentVariables,\n} from '../actions/build/getEnvironmentVariables.js'\nimport {serverDebug} from './serverDebug.js'\nimport {sanityTypegenPlugin} from './vite/plugin-typegen.js'\n\nconst debug = serverDebug.extend('dev')\n\nexport interface DevServerOptions {\n basePath: string\n cwd: string\n httpPort: number\n\n reactCompiler: ReactCompilerConfig | undefined\n reactStrictMode: boolean | undefined\n\n staticPath: string\n\n appTitle?: string\n entry?: string\n httpHost?: string\n isApp?: boolean\n isWorkbenchApp?: boolean\n projectName?: string\n schemaExtraction?: CliConfig['schemaExtraction']\n services?: DefineAppInput['services']\n typegen?: CliConfig['typegen']\n views?: DefineAppInput['views']\n vite?: UserViteConfig\n}\n\ninterface DevServer {\n close(): Promise<void>\n server: ViteDevServer\n\n watcher?: FSWatcher\n}\n\nexport async function startDevServer(options: DevServerOptions): Promise<DevServer> {\n const {\n appTitle,\n basePath,\n cwd,\n entry,\n httpHost,\n httpPort,\n isApp,\n isWorkbenchApp,\n reactCompiler,\n reactStrictMode,\n schemaExtraction,\n services,\n typegen,\n views,\n vite: extendViteConfig,\n } = options\n\n debug('Writing Sanity runtime files')\n const {entries, watcher} = await writeSanityRuntime({\n appTitle,\n basePath,\n cwd,\n entry,\n isApp,\n isWorkbenchApp,\n reactStrictMode,\n watch: true,\n })\n\n debug('Resolving vite config')\n const mode = 'development'\n\n function getEnvironmentVariables() {\n return isApp\n ? getAppEnvironmentVariables({jsonEncode: true, prefix: 'process.env.'})\n : getStudioEnvironmentVariables({jsonEncode: true, prefix: 'process.env.'})\n }\n\n let viteConfig: InlineConfig = await getViteConfig({\n additionalPlugins: [\n // Add typegen when enabled\n ...(typegen?.enabled\n ? [\n sanityTypegenPlugin({\n config: typegen,\n telemetryLogger: getCliTelemetry(),\n workDir: cwd,\n }),\n ]\n : []),\n ],\n basePath,\n cwd,\n entries,\n getEnvironmentVariables,\n isApp,\n isWorkbenchApp,\n mode: 'development',\n reactCompiler,\n schemaExtraction,\n server: {host: httpHost, port: httpPort},\n services,\n views,\n })\n\n // Extend Vite configuration with user-provided config\n if (extendViteConfig) {\n viteConfig = await extendViteConfigWithUserConfig(\n {command: 'serve', mode},\n viteConfig,\n extendViteConfig,\n )\n }\n\n debug('Creating vite server')\n const server = await createServer(viteConfig)\n\n debug('Listening on specified port')\n await server.listen()\n\n return {\n close: async () => {\n if (watcher) {\n await watcher.close()\n }\n await server.close()\n },\n server,\n watcher,\n }\n}\n"],"names":["extendViteConfigWithUserConfig","getViteConfig","writeSanityRuntime","getCliTelemetry","createServer","getAppEnvironmentVariables","getStudioEnvironmentVariables","serverDebug","sanityTypegenPlugin","debug","extend","startDevServer","options","appTitle","basePath","cwd","entry","httpHost","httpPort","isApp","isWorkbenchApp","reactCompiler","reactStrictMode","schemaExtraction","services","typegen","views","vite","extendViteConfig","entries","watcher","watch","mode","getEnvironmentVariables","jsonEncode","prefix","viteConfig","additionalPlugins","enabled","config","telemetryLogger","workDir","server","host","port","command","listen","close"],"mappings":"AAAA,SACEA,8BAA8B,EAC9BC,aAAa,EACbC,kBAAkB,QACb,oCAAmC;AAC1C,SAAmBC,eAAe,QAA4B,mBAAkB;AAIhF,SAAQC,YAAY,QAA8C,OAAM;AAExE,SACEC,0BAA0B,EAC1BC,6BAA6B,QACxB,8CAA6C;AACpD,SAAQC,WAAW,QAAO,mBAAkB;AAC5C,SAAQC,mBAAmB,QAAO,2BAA0B;AAE5D,MAAMC,QAAQF,YAAYG,MAAM,CAAC;AAgCjC,OAAO,eAAeC,eAAeC,OAAyB;IAC5D,MAAM,EACJC,QAAQ,EACRC,QAAQ,EACRC,GAAG,EACHC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,cAAc,EACdC,aAAa,EACbC,eAAe,EACfC,gBAAgB,EAChBC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACLC,MAAMC,gBAAgB,EACvB,GAAGhB;IAEJH,MAAM;IACN,MAAM,EAACoB,OAAO,EAAEC,OAAO,EAAC,GAAG,MAAM5B,mBAAmB;QAClDW;QACAC;QACAC;QACAC;QACAG;QACAC;QACAE;QACAS,OAAO;IACT;IAEAtB,MAAM;IACN,MAAMuB,OAAO;IAEb,SAASC;QACP,OAAOd,QACHd,2BAA2B;YAAC6B,YAAY;YAAMC,QAAQ;QAAc,KACpE7B,8BAA8B;YAAC4B,YAAY;YAAMC,QAAQ;QAAc;IAC7E;IAEA,IAAIC,aAA2B,MAAMnC,cAAc;QACjDoC,mBAAmB;YACjB,2BAA2B;eACvBZ,SAASa,UACT;gBACE9B,oBAAoB;oBAClB+B,QAAQd;oBACRe,iBAAiBrC;oBACjBsC,SAAS1B;gBACX;aACD,GACD,EAAE;SACP;QACDD;QACAC;QACAc;QACAI;QACAd;QACAC;QACAY,MAAM;QACNX;QACAE;QACAmB,QAAQ;YAACC,MAAM1B;YAAU2B,MAAM1B;QAAQ;QACvCM;QACAE;IACF;IAEA,sDAAsD;IACtD,IAAIE,kBAAkB;QACpBQ,aAAa,MAAMpC,+BACjB;YAAC6C,SAAS;YAASb;QAAI,GACvBI,YACAR;IAEJ;IAEAnB,MAAM;IACN,MAAMiC,SAAS,MAAMtC,aAAagC;IAElC3B,MAAM;IACN,MAAMiC,OAAOI,MAAM;IAEnB,OAAO;QACLC,OAAO;YACL,IAAIjB,SAAS;gBACX,MAAMA,QAAQiB,KAAK;YACrB;YACA,MAAML,OAAOK,KAAK;QACpB;QACAL;QACAZ;IACF;AACF"}
|
|
@@ -27,7 +27,6 @@ function getDocumentsClient({ dataset, projectId }) {
|
|
|
27
27
|
const exportUrl = new URL(client.getUrl(`/data/export/${dataset}`, false));
|
|
28
28
|
const { token } = client.config();
|
|
29
29
|
const response = await fetch(exportUrl, {
|
|
30
|
-
// eslint-disable-next-line n/no-unsupported-features/node-builtins -- Headers is stable in modern Node.js
|
|
31
30
|
headers: new Headers({
|
|
32
31
|
...token && {
|
|
33
32
|
Authorization: `Bearer ${token}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/documents.ts"],"sourcesContent":["import {getProjectCliClient} from '@sanity/cli-core'\n\nexport const DOCUMENTS_API_VERSION = 'v2021-03-25'\n\n/**\n * Response from the document availability endpoint\n */\nexport interface AvailabilityResponse {\n omitted: {id: string; reason: 'existence' | 'permission'}[]\n}\n\ninterface DocumentsClientOptions {\n dataset: string\n projectId: string\n}\n\nfunction getDocumentsClient({dataset, projectId}: DocumentsClientOptions) {\n return getProjectCliClient({\n apiVersion: DOCUMENTS_API_VERSION,\n dataset,\n projectId,\n requireUser: true,\n })\n}\n\ninterface GetDocumentCountOptions {\n dataset: string\n projectId: string\n}\n\n/**\n * Get the total count of documents in the dataset\n */\nexport async function getDocumentCount({\n dataset,\n projectId,\n}: GetDocumentCountOptions): Promise<number> {\n const client = await getDocumentsClient({dataset, projectId})\n return client.fetch('length(*)')\n}\n\ninterface ExportDocumentsOptions {\n dataset: string\n projectId: string\n}\n\n/**\n * Export all documents from the dataset as a streaming response\n */\nexport async function exportDocuments({\n dataset,\n projectId,\n}: ExportDocumentsOptions): Promise<Response> {\n const client = await getDocumentsClient({dataset, projectId})\n const exportUrl = new URL(client.getUrl(`/data/export/${dataset}`, false))\n\n const {token} = client.config()\n const response = await fetch(exportUrl, {\n
|
|
1
|
+
{"version":3,"sources":["../../src/services/documents.ts"],"sourcesContent":["import {getProjectCliClient} from '@sanity/cli-core'\n\nexport const DOCUMENTS_API_VERSION = 'v2021-03-25'\n\n/**\n * Response from the document availability endpoint\n */\nexport interface AvailabilityResponse {\n omitted: {id: string; reason: 'existence' | 'permission'}[]\n}\n\ninterface DocumentsClientOptions {\n dataset: string\n projectId: string\n}\n\nfunction getDocumentsClient({dataset, projectId}: DocumentsClientOptions) {\n return getProjectCliClient({\n apiVersion: DOCUMENTS_API_VERSION,\n dataset,\n projectId,\n requireUser: true,\n })\n}\n\ninterface GetDocumentCountOptions {\n dataset: string\n projectId: string\n}\n\n/**\n * Get the total count of documents in the dataset\n */\nexport async function getDocumentCount({\n dataset,\n projectId,\n}: GetDocumentCountOptions): Promise<number> {\n const client = await getDocumentsClient({dataset, projectId})\n return client.fetch('length(*)')\n}\n\ninterface ExportDocumentsOptions {\n dataset: string\n projectId: string\n}\n\n/**\n * Export all documents from the dataset as a streaming response\n */\nexport async function exportDocuments({\n dataset,\n projectId,\n}: ExportDocumentsOptions): Promise<Response> {\n const client = await getDocumentsClient({dataset, projectId})\n const exportUrl = new URL(client.getUrl(`/data/export/${dataset}`, false))\n\n const {token} = client.config()\n const response = await fetch(exportUrl, {\n headers: new Headers({...(token && {Authorization: `Bearer ${token}`})}),\n })\n\n return response\n}\n\ninterface CheckDocumentAvailabilityOptions {\n dataset: string\n documentIds: string[]\n projectId: string\n}\n\n/**\n * Check the availability/existence of documents by their IDs\n */\nexport async function checkDocumentAvailability({\n dataset,\n documentIds,\n projectId,\n}: CheckDocumentAvailabilityOptions): Promise<AvailabilityResponse> {\n const client = await getDocumentsClient({dataset, projectId})\n return client.request<AvailabilityResponse>({\n json: true,\n query: {excludeContent: 'true'},\n tag: 'documents-availability',\n uri: client.getDataUrl('doc', documentIds.join(',')),\n })\n}\n"],"names":["getProjectCliClient","DOCUMENTS_API_VERSION","getDocumentsClient","dataset","projectId","apiVersion","requireUser","getDocumentCount","client","fetch","exportDocuments","exportUrl","URL","getUrl","token","config","response","headers","Headers","Authorization","checkDocumentAvailability","documentIds","request","json","query","excludeContent","tag","uri","getDataUrl","join"],"mappings":"AAAA,SAAQA,mBAAmB,QAAO,mBAAkB;AAEpD,OAAO,MAAMC,wBAAwB,cAAa;AAclD,SAASC,mBAAmB,EAACC,OAAO,EAAEC,SAAS,EAAyB;IACtE,OAAOJ,oBAAoB;QACzBK,YAAYJ;QACZE;QACAC;QACAE,aAAa;IACf;AACF;AAOA;;CAEC,GACD,OAAO,eAAeC,iBAAiB,EACrCJ,OAAO,EACPC,SAAS,EACe;IACxB,MAAMI,SAAS,MAAMN,mBAAmB;QAACC;QAASC;IAAS;IAC3D,OAAOI,OAAOC,KAAK,CAAC;AACtB;AAOA;;CAEC,GACD,OAAO,eAAeC,gBAAgB,EACpCP,OAAO,EACPC,SAAS,EACc;IACvB,MAAMI,SAAS,MAAMN,mBAAmB;QAACC;QAASC;IAAS;IAC3D,MAAMO,YAAY,IAAIC,IAAIJ,OAAOK,MAAM,CAAC,CAAC,aAAa,EAAEV,SAAS,EAAE;IAEnE,MAAM,EAACW,KAAK,EAAC,GAAGN,OAAOO,MAAM;IAC7B,MAAMC,WAAW,MAAMP,MAAME,WAAW;QACtCM,SAAS,IAAIC,QAAQ;YAAC,GAAIJ,SAAS;gBAACK,eAAe,CAAC,OAAO,EAAEL,OAAO;YAAA,CAAC;QAAC;IACxE;IAEA,OAAOE;AACT;AAQA;;CAEC,GACD,OAAO,eAAeI,0BAA0B,EAC9CjB,OAAO,EACPkB,WAAW,EACXjB,SAAS,EACwB;IACjC,MAAMI,SAAS,MAAMN,mBAAmB;QAACC;QAASC;IAAS;IAC3D,OAAOI,OAAOc,OAAO,CAAuB;QAC1CC,MAAM;QACNC,OAAO;YAACC,gBAAgB;QAAM;QAC9BC,KAAK;QACLC,KAAKnB,OAAOoB,UAAU,CAAC,OAAOP,YAAYQ,IAAI,CAAC;IACjD;AACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineTrace } from '@sanity/telemetry';
|
|
2
|
+
export const SkillsInstallTrace = defineTrace({
|
|
3
|
+
description: 'User completed Sanity agent skills installation via CLI',
|
|
4
|
+
name: 'CLI Skills Install Completed',
|
|
5
|
+
version: 1
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=skills.telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/telemetry/skills.telemetry.ts"],"sourcesContent":["import {defineTrace} from '@sanity/telemetry'\n\nimport {type EditorName} from '../actions/mcp/editorConfigs.js'\n\ninterface SkillsInstallTraceData {\n detectedEditors: EditorName[]\n installedAgents: string[]\n}\n\nexport const SkillsInstallTrace = defineTrace<SkillsInstallTraceData>({\n description: 'User completed Sanity agent skills installation via CLI',\n name: 'CLI Skills Install Completed',\n version: 1,\n})\n"],"names":["defineTrace","SkillsInstallTrace","description","name","version"],"mappings":"AAAA,SAAQA,WAAW,QAAO,oBAAmB;AAS7C,OAAO,MAAMC,qBAAqBD,YAAoC;IACpEE,aAAa;IACbC,MAAM;IACNC,SAAS;AACX,GAAE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
import { getModuleUrl } from '@sanity/cli-build/_internal/build';
|
|
2
3
|
import { getLocalPackageVersion, readPackageJson } from '@sanity/cli-core';
|
|
3
4
|
import { createRequester } from '@sanity/cli-core/request';
|
|
4
5
|
import { coerce, eq, prerelease, parse as semverParse } from 'semver';
|
|
5
|
-
import { getModuleUrl } from '../actions/build/getAutoUpdatesImportMap.js';
|
|
6
6
|
const defaultRequester = createRequester({
|
|
7
7
|
middleware: {
|
|
8
8
|
httpErrors: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/compareDependencyVersions.ts"],"sourcesContent":["import path from 'node:path'\n\nimport {getLocalPackageVersion, readPackageJson} from '@sanity/cli-core'\nimport {createRequester} from '@sanity/cli-core/request'\nimport {coerce, eq, prerelease, parse as semverParse} from 'semver'\n\
|
|
1
|
+
{"version":3,"sources":["../../src/util/compareDependencyVersions.ts"],"sourcesContent":["import path from 'node:path'\n\nimport {getModuleUrl} from '@sanity/cli-build/_internal/build'\nimport {getLocalPackageVersion, readPackageJson} from '@sanity/cli-core'\nimport {createRequester} from '@sanity/cli-core/request'\nimport {coerce, eq, prerelease, parse as semverParse} from 'semver'\n\nconst defaultRequester = createRequester({\n middleware: {httpErrors: false, promise: {onlyBody: false}},\n})\n\ninterface CompareDependencyVersions {\n installed: string\n pkg: string\n remote: string\n}\n\nexport interface UnresolvedPrerelease {\n pkg: string\n version: string\n}\n\ninterface CompareDependencyVersionsResult {\n mismatched: Array<CompareDependencyVersions>\n unresolvedPrerelease: Array<UnresolvedPrerelease>\n}\n\ninterface CompareDependencyVersionsOptions {\n /** When provided, uses the app-specific module endpoint instead of the default endpoint. */\n appId?: string\n /** Optional requester for dependency injection (primarily for testing). */\n requester?: typeof defaultRequester\n}\n\n/**\n * @internal\n *\n * Compares the versions of dependencies in the studio or app with their remote versions.\n *\n * This function reads the package.json file in the provided working directory, and compares the versions of the dependencies\n * specified in the `autoUpdatesImports` parameter with their remote versions. If the versions do not match, the dependency is\n * added to a list of failed dependencies, which is returned by the function.\n *\n * The failed dependencies are anything that does not strictly match the remote version.\n * This means that if a version is lower or greater by even a patch it will be marked as failed.\n *\n * @param packages - An array of packages with their name and version to compare against remote.\n * @param workDir - The path to the working directory containing the package.json file.\n * @param options - Optional configuration for version comparison.\n *\n * @returns A promise that resolves to an object containing `mismatched` (packages whose local and remote versions differ)\n * and `unresolvedPrerelease` (packages with prerelease versions that could not be resolved remotely).\n *\n * @throws Throws an error if the remote version of a non-prerelease package cannot be fetched, or if the local version\n * of a package cannot be parsed.\n */\nexport async function compareDependencyVersions(\n packages: {name: string; version: string}[],\n workDir: string,\n {appId, requester = defaultRequester}: CompareDependencyVersionsOptions = {},\n): Promise<CompareDependencyVersionsResult> {\n const manifest = await readPackageJson(path.join(workDir, 'package.json'), {\n skipSchemaValidation: true,\n })\n const dependencies = {...manifest?.dependencies, ...manifest?.devDependencies}\n\n const mismatched: Array<CompareDependencyVersions> = []\n const unresolvedPrerelease: Array<UnresolvedPrerelease> = []\n\n for (const pkg of packages) {\n // Skip packages that are not declared in the local package.json\n if (!dependencies[pkg.name]) {\n continue\n }\n\n const resolvedVersion = await getRemoteResolvedVersion(getModuleUrl(pkg, {appId}), requester)\n\n if (resolvedVersion === null) {\n if (prerelease(pkg.version)) {\n unresolvedPrerelease.push({pkg: pkg.name, version: pkg.version})\n continue\n }\n throw new Error(\n `Failed to resolve remote version for ${pkg.name}@${pkg.version}: package not found`,\n )\n }\n\n const packageVersion = await getLocalPackageVersion(pkg.name, workDir)\n\n const manifestVersion = dependencies[pkg.name]\n\n const installed = coerce(packageVersion ? semverParse(packageVersion) : coerce(manifestVersion))\n\n if (!installed) {\n throw new Error(`Failed to parse installed version for ${pkg.name}`)\n }\n\n if (!eq(resolvedVersion, installed.version)) {\n mismatched.push({\n installed: installed.version,\n pkg: pkg.name,\n remote: resolvedVersion,\n })\n }\n }\n\n return {mismatched, unresolvedPrerelease}\n}\n\nasync function getRemoteResolvedVersion(\n url: string,\n request: typeof defaultRequester,\n): Promise<string | null> {\n let response\n try {\n response = await request({\n maxRedirects: 0,\n method: 'HEAD',\n url,\n })\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n throw new Error(`Failed to fetch remote version for ${url}: ${message}`, {cause: err})\n }\n\n // 302 is expected, but lets also handle 2xx\n if (response.statusCode < 400) {\n const resolved = response.headers['x-resolved-version']\n if (!resolved) {\n throw new Error(`Missing 'x-resolved-version' header on response from HEAD ${url}`)\n }\n return resolved\n }\n\n if (response.statusCode === 404) {\n return null\n }\n\n throw new Error(`Unexpected HTTP response: ${response.statusCode} ${response.statusMessage}`)\n}\n"],"names":["path","getModuleUrl","getLocalPackageVersion","readPackageJson","createRequester","coerce","eq","prerelease","parse","semverParse","defaultRequester","middleware","httpErrors","promise","onlyBody","compareDependencyVersions","packages","workDir","appId","requester","manifest","join","skipSchemaValidation","dependencies","devDependencies","mismatched","unresolvedPrerelease","pkg","name","resolvedVersion","getRemoteResolvedVersion","version","push","Error","packageVersion","manifestVersion","installed","remote","url","request","response","maxRedirects","method","err","message","String","cause","statusCode","resolved","headers","statusMessage"],"mappings":"AAAA,OAAOA,UAAU,YAAW;AAE5B,SAAQC,YAAY,QAAO,oCAAmC;AAC9D,SAAQC,sBAAsB,EAAEC,eAAe,QAAO,mBAAkB;AACxE,SAAQC,eAAe,QAAO,2BAA0B;AACxD,SAAQC,MAAM,EAAEC,EAAE,EAAEC,UAAU,EAAEC,SAASC,WAAW,QAAO,SAAQ;AAEnE,MAAMC,mBAAmBN,gBAAgB;IACvCO,YAAY;QAACC,YAAY;QAAOC,SAAS;YAACC,UAAU;QAAK;IAAC;AAC5D;AAyBA;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,eAAeC,0BACpBC,QAA2C,EAC3CC,OAAe,EACf,EAACC,KAAK,EAAEC,YAAYT,gBAAgB,EAAmC,GAAG,CAAC,CAAC;IAE5E,MAAMU,WAAW,MAAMjB,gBAAgBH,KAAKqB,IAAI,CAACJ,SAAS,iBAAiB;QACzEK,sBAAsB;IACxB;IACA,MAAMC,eAAe;QAAC,GAAGH,UAAUG,YAAY;QAAE,GAAGH,UAAUI,eAAe;IAAA;IAE7E,MAAMC,aAA+C,EAAE;IACvD,MAAMC,uBAAoD,EAAE;IAE5D,KAAK,MAAMC,OAAOX,SAAU;QAC1B,gEAAgE;QAChE,IAAI,CAACO,YAAY,CAACI,IAAIC,IAAI,CAAC,EAAE;YAC3B;QACF;QAEA,MAAMC,kBAAkB,MAAMC,yBAAyB7B,aAAa0B,KAAK;YAACT;QAAK,IAAIC;QAEnF,IAAIU,oBAAoB,MAAM;YAC5B,IAAItB,WAAWoB,IAAII,OAAO,GAAG;gBAC3BL,qBAAqBM,IAAI,CAAC;oBAACL,KAAKA,IAAIC,IAAI;oBAAEG,SAASJ,IAAII,OAAO;gBAAA;gBAC9D;YACF;YACA,MAAM,IAAIE,MACR,CAAC,qCAAqC,EAAEN,IAAIC,IAAI,CAAC,CAAC,EAAED,IAAII,OAAO,CAAC,mBAAmB,CAAC;QAExF;QAEA,MAAMG,iBAAiB,MAAMhC,uBAAuByB,IAAIC,IAAI,EAAEX;QAE9D,MAAMkB,kBAAkBZ,YAAY,CAACI,IAAIC,IAAI,CAAC;QAE9C,MAAMQ,YAAY/B,OAAO6B,iBAAiBzB,YAAYyB,kBAAkB7B,OAAO8B;QAE/E,IAAI,CAACC,WAAW;YACd,MAAM,IAAIH,MAAM,CAAC,sCAAsC,EAAEN,IAAIC,IAAI,EAAE;QACrE;QAEA,IAAI,CAACtB,GAAGuB,iBAAiBO,UAAUL,OAAO,GAAG;YAC3CN,WAAWO,IAAI,CAAC;gBACdI,WAAWA,UAAUL,OAAO;gBAC5BJ,KAAKA,IAAIC,IAAI;gBACbS,QAAQR;YACV;QACF;IACF;IAEA,OAAO;QAACJ;QAAYC;IAAoB;AAC1C;AAEA,eAAeI,yBACbQ,GAAW,EACXC,OAAgC;IAEhC,IAAIC;IACJ,IAAI;QACFA,WAAW,MAAMD,QAAQ;YACvBE,cAAc;YACdC,QAAQ;YACRJ;QACF;IACF,EAAE,OAAOK,KAAK;QACZ,MAAMC,UAAUD,eAAeV,QAAQU,IAAIC,OAAO,GAAGC,OAAOF;QAC5D,MAAM,IAAIV,MAAM,CAAC,mCAAmC,EAAEK,IAAI,EAAE,EAAEM,SAAS,EAAE;YAACE,OAAOH;QAAG;IACtF;IAEA,4CAA4C;IAC5C,IAAIH,SAASO,UAAU,GAAG,KAAK;QAC7B,MAAMC,WAAWR,SAASS,OAAO,CAAC,qBAAqB;QACvD,IAAI,CAACD,UAAU;YACb,MAAM,IAAIf,MAAM,CAAC,0DAA0D,EAAEK,KAAK;QACpF;QACA,OAAOU;IACT;IAEA,IAAIR,SAASO,UAAU,KAAK,KAAK;QAC/B,OAAO;IACT;IAEA,MAAM,IAAId,MAAM,CAAC,0BAA0B,EAAEO,SAASO,UAAU,CAAC,CAAC,EAAEP,SAASU,aAAa,EAAE;AAC9F"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
+
import { isWorkbenchApp } from '@sanity/cli-core';
|
|
1
2
|
/**
|
|
2
|
-
* Determine if the current project is an app.
|
|
3
|
+
* Determine if the current project is an app (as opposed to a studio).
|
|
4
|
+
*
|
|
5
|
+
* For workbench apps (`unstable_defineApp`), this is driven by the resolved
|
|
6
|
+
* `applicationType` — a studio is not an app, everything else is. The
|
|
7
|
+
* `applicationType` is settled at config-load time (explicit, or inferred from
|
|
8
|
+
* the presence of a `sanity.config.*`). Legacy configs fall back to the
|
|
9
|
+
* presence of an `app` field.
|
|
3
10
|
*
|
|
4
11
|
* @returns `true` if the current project is an app, `false` otherwise.
|
|
5
12
|
*/ export function determineIsApp(cliConfig) {
|
|
13
|
+
const app = cliConfig?.app;
|
|
14
|
+
if (isWorkbenchApp(app)) {
|
|
15
|
+
return app.applicationType !== 'studio';
|
|
16
|
+
}
|
|
6
17
|
return Boolean(cliConfig && 'app' in cliConfig);
|
|
7
18
|
}
|
|
8
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/determineIsApp.ts"],"sourcesContent":["import {type CliConfig} from '@sanity/cli-core'\n\n/**\n * Determine if the current project is an app.\n *\n * @returns `true` if the current project is an app, `false` otherwise.\n */\nexport function determineIsApp(cliConfig: CliConfig): boolean {\n return Boolean(cliConfig && 'app' in cliConfig)\n}\n"],"names":["determineIsApp","cliConfig","Boolean"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/util/determineIsApp.ts"],"sourcesContent":["import {type CliConfig, isWorkbenchApp} from '@sanity/cli-core'\n\n/**\n * Determine if the current project is an app (as opposed to a studio).\n *\n * For workbench apps (`unstable_defineApp`), this is driven by the resolved\n * `applicationType` — a studio is not an app, everything else is. The\n * `applicationType` is settled at config-load time (explicit, or inferred from\n * the presence of a `sanity.config.*`). Legacy configs fall back to the\n * presence of an `app` field.\n *\n * @returns `true` if the current project is an app, `false` otherwise.\n */\nexport function determineIsApp(cliConfig: CliConfig): boolean {\n const app = cliConfig?.app\n if (isWorkbenchApp(app)) {\n return app.applicationType !== 'studio'\n }\n return Boolean(cliConfig && 'app' in cliConfig)\n}\n"],"names":["isWorkbenchApp","determineIsApp","cliConfig","app","applicationType","Boolean"],"mappings":"AAAA,SAAwBA,cAAc,QAAO,mBAAkB;AAE/D;;;;;;;;;;CAUC,GACD,OAAO,SAASC,eAAeC,SAAoB;IACjD,MAAMC,MAAMD,WAAWC;IACvB,IAAIH,eAAeG,MAAM;QACvB,OAAOA,IAAIC,eAAe,KAAK;IACjC;IACA,OAAOC,QAAQH,aAAa,SAASA;AACvC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getSanityEnvVar } from '@sanity/cli-core';
|
|
2
|
+
import { determineIsApp } from './determineIsApp.js';
|
|
2
3
|
import { ensureTrailingSlash } from './ensureTrailingSlash.js';
|
|
3
4
|
import { toInt } from './toInt.js';
|
|
4
5
|
/**
|
|
@@ -12,7 +13,7 @@ import { toInt } from './toInt.js';
|
|
|
12
13
|
* - Default configuration
|
|
13
14
|
*/ export function getSharedServerConfig({ cliConfig, flags, workDir }) {
|
|
14
15
|
// Order of preference: CLI flags, environment variables, user build config, default config
|
|
15
|
-
const isApp = cliConfig
|
|
16
|
+
const isApp = cliConfig ? determineIsApp(cliConfig) : false;
|
|
16
17
|
const httpHost = flags.host || getSanityEnvVar('SERVER_HOSTNAME', isApp ?? false) || cliConfig?.server?.hostname || 'localhost';
|
|
17
18
|
const httpPort = toInt(flags.port || getSanityEnvVar('SERVER_PORT', isApp ?? false) || cliConfig?.server?.port, 3333);
|
|
18
19
|
const basePath = ensureTrailingSlash(getSanityEnvVar('BASEPATH', isApp ?? false) ?? (cliConfig?.project?.basePath || '/'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/getSharedServerConfig.ts"],"sourcesContent":["import {type CliConfig, getSanityEnvVar} from '@sanity/cli-core'\n\nimport {ensureTrailingSlash} from './ensureTrailingSlash.js'\nimport {toInt} from './toInt.js'\n\ninterface GetSharedServerConfigOptions {\n flags: {host?: string; port?: number | string}\n workDir: string\n\n cliConfig?: CliConfig\n}\n\nexport interface GetSharedServerConfigResult {\n basePath: string\n cwd: string\n httpHost: string\n httpPort: number\n schemaExtraction: CliConfig['schemaExtraction']\n vite: CliConfig['vite']\n\n entry?: string\n isApp?: boolean\n}\n\n/**\n * @internal\n *\n * Resolves the shared configuration for the dev/preview server using:\n *\n * - CLI flags\n * - Environment variables\n * - User build config\n * - Default configuration\n */\nexport function getSharedServerConfig({\n cliConfig,\n flags,\n workDir,\n}: GetSharedServerConfigOptions): GetSharedServerConfigResult {\n // Order of preference: CLI flags, environment variables, user build config, default config\n const isApp = cliConfig
|
|
1
|
+
{"version":3,"sources":["../../src/util/getSharedServerConfig.ts"],"sourcesContent":["import {type CliConfig, getSanityEnvVar} from '@sanity/cli-core'\n\nimport {determineIsApp} from './determineIsApp.js'\nimport {ensureTrailingSlash} from './ensureTrailingSlash.js'\nimport {toInt} from './toInt.js'\n\ninterface GetSharedServerConfigOptions {\n flags: {host?: string; port?: number | string}\n workDir: string\n\n cliConfig?: CliConfig\n}\n\nexport interface GetSharedServerConfigResult {\n basePath: string\n cwd: string\n httpHost: string\n httpPort: number\n schemaExtraction: CliConfig['schemaExtraction']\n vite: CliConfig['vite']\n\n entry?: string\n isApp?: boolean\n}\n\n/**\n * @internal\n *\n * Resolves the shared configuration for the dev/preview server using:\n *\n * - CLI flags\n * - Environment variables\n * - User build config\n * - Default configuration\n */\nexport function getSharedServerConfig({\n cliConfig,\n flags,\n workDir,\n}: GetSharedServerConfigOptions): GetSharedServerConfigResult {\n // Order of preference: CLI flags, environment variables, user build config, default config\n const isApp = cliConfig ? determineIsApp(cliConfig) : false\n\n const httpHost =\n flags.host ||\n getSanityEnvVar('SERVER_HOSTNAME', isApp ?? false) ||\n cliConfig?.server?.hostname ||\n 'localhost'\n\n const httpPort = toInt(\n flags.port || getSanityEnvVar('SERVER_PORT', isApp ?? false) || cliConfig?.server?.port,\n 3333,\n )\n\n const basePath = ensureTrailingSlash(\n getSanityEnvVar('BASEPATH', isApp ?? false) ?? (cliConfig?.project?.basePath || '/'),\n )\n\n const entry = cliConfig?.app?.entry\n\n return {\n basePath,\n cwd: workDir,\n entry,\n httpHost,\n httpPort,\n isApp,\n schemaExtraction: cliConfig?.schemaExtraction,\n vite: cliConfig?.vite,\n }\n}\n"],"names":["getSanityEnvVar","determineIsApp","ensureTrailingSlash","toInt","getSharedServerConfig","cliConfig","flags","workDir","isApp","httpHost","host","server","hostname","httpPort","port","basePath","project","entry","app","cwd","schemaExtraction","vite"],"mappings":"AAAA,SAAwBA,eAAe,QAAO,mBAAkB;AAEhE,SAAQC,cAAc,QAAO,sBAAqB;AAClD,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,KAAK,QAAO,aAAY;AAqBhC;;;;;;;;;CASC,GACD,OAAO,SAASC,sBAAsB,EACpCC,SAAS,EACTC,KAAK,EACLC,OAAO,EACsB;IAC7B,2FAA2F;IAC3F,MAAMC,QAAQH,YAAYJ,eAAeI,aAAa;IAEtD,MAAMI,WACJH,MAAMI,IAAI,IACVV,gBAAgB,mBAAmBQ,SAAS,UAC5CH,WAAWM,QAAQC,YACnB;IAEF,MAAMC,WAAWV,MACfG,MAAMQ,IAAI,IAAId,gBAAgB,eAAeQ,SAAS,UAAUH,WAAWM,QAAQG,MACnF;IAGF,MAAMC,WAAWb,oBACfF,gBAAgB,YAAYQ,SAAS,UAAWH,CAAAA,WAAWW,SAASD,YAAY,GAAE;IAGpF,MAAME,QAAQZ,WAAWa,KAAKD;IAE9B,OAAO;QACLF;QACAI,KAAKZ;QACLU;QACAR;QACAI;QACAL;QACAY,kBAAkBf,WAAWe;QAC7BC,MAAMhB,WAAWgB;IACnB;AACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function resolveReactStrictMode(cliConfig) {
|
|
2
|
+
if (process.env.SANITY_STUDIO_REACT_STRICT_MODE) {
|
|
3
|
+
return process.env.SANITY_STUDIO_REACT_STRICT_MODE === 'true';
|
|
4
|
+
}
|
|
5
|
+
// Pass `undefined` through when unset so the studio runtime falls back to its
|
|
6
|
+
// own default. `Boolean()` here would force strict mode off, diverging from
|
|
7
|
+
// the behaviour on `main`.
|
|
8
|
+
return cliConfig?.reactStrictMode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=resolveReactStrictMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/resolveReactStrictMode.ts"],"sourcesContent":["import {type CliConfig} from '@sanity/cli-core'\n\nexport function resolveReactStrictMode(cliConfig?: CliConfig): boolean | undefined {\n if (process.env.SANITY_STUDIO_REACT_STRICT_MODE) {\n return process.env.SANITY_STUDIO_REACT_STRICT_MODE === 'true'\n }\n // Pass `undefined` through when unset so the studio runtime falls back to its\n // own default. `Boolean()` here would force strict mode off, diverging from\n // the behaviour on `main`.\n return cliConfig?.reactStrictMode\n}\n"],"names":["resolveReactStrictMode","cliConfig","process","env","SANITY_STUDIO_REACT_STRICT_MODE","reactStrictMode"],"mappings":"AAEA,OAAO,SAASA,uBAAuBC,SAAqB;IAC1D,IAAIC,QAAQC,GAAG,CAACC,+BAA+B,EAAE;QAC/C,OAAOF,QAAQC,GAAG,CAACC,+BAA+B,KAAK;IACzD;IACA,8EAA8E;IAC9E,4EAA4E;IAC5E,2BAA2B;IAC3B,OAAOH,WAAWI;AACpB"}
|
package/oclif.config.js
CHANGED
|
@@ -22,11 +22,12 @@ export default {
|
|
|
22
22
|
graphql: {description: 'Manage GraphQL APIs for your project'},
|
|
23
23
|
hooks: {description: 'Manage webhooks for your project'},
|
|
24
24
|
manifest: {description: 'Extract studio configuration as JSON manifests'},
|
|
25
|
-
mcp: {description: 'Configure Sanity MCP server for AI
|
|
25
|
+
mcp: {description: 'Configure Sanity MCP server for AI agents'},
|
|
26
26
|
media: {description: 'Manage media assets and aspect definitions'},
|
|
27
27
|
openapi: {description: 'Manage OpenAPI specifications'},
|
|
28
28
|
projects: {description: 'Manage Sanity projects'},
|
|
29
29
|
schemas: {description: 'Manage and validate schemas'},
|
|
30
|
+
skills: {description: 'Install Sanity agent skills for AI agents'},
|
|
30
31
|
telemetry: {description: 'Manage telemetry consent'},
|
|
31
32
|
tokens: {description: 'Manage API tokens for your project'},
|
|
32
33
|
users: {description: 'Manage project users and invitations'},
|