sanity 3.77.3-server-side-schemas.15 → 3.77.3-server-side-schemas.16
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/lib/_chunks-cjs/_internal.js +420 -142
- package/lib/_chunks-cjs/_internal.js.map +1 -1
- package/lib/_chunks-cjs/buildAction.js +2 -2
- package/lib/_chunks-cjs/buildAction.js.map +1 -1
- package/lib/_chunks-cjs/deleteSchemaAction.js +6 -4
- package/lib/_chunks-cjs/deleteSchemaAction.js.map +1 -1
- package/lib/_chunks-cjs/deployAction.js +3 -3
- package/lib/_chunks-cjs/deployAction.js.map +1 -1
- package/lib/_chunks-cjs/devAction.js +2 -2
- package/lib/_chunks-cjs/devAction.js.map +1 -1
- package/lib/_chunks-cjs/version.js +1 -1
- package/lib/_chunks-es/version.mjs +1 -1
- package/lib/_legacy/version.esm.js +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/index.d.ts +3 -3
- package/lib/structure.d.mts +1 -1
- package/lib/structure.d.ts +1 -1
- package/package.json +10 -10
- package/src/_internal/cli/actions/manifest/extractManifestAction.ts +3 -3
- package/src/_internal/cli/actions/schema/deleteSchemaAction.ts +16 -7
- package/src/_internal/cli/actions/schema/schemaListAction.ts +23 -9
- package/src/_internal/cli/actions/schema/storeSchemasAction.ts +60 -13
- package/src/_internal/cli/commands/app/deployCommand.ts +2 -0
- package/src/_internal/cli/commands/index.ts +12 -4
- package/src/_internal/cli/commands/schema/deleteSchemaCommand.ts +1 -1
- package/src/_internal/cli/commands/schema/schemaListCommand.ts +1 -1
- package/src/_internal/cli/commands/schema/storeSchemaCommand.ts +6 -5
- package/lib/_chunks-cjs/extractManifestAction.js +0 -99
- package/lib/_chunks-cjs/extractManifestAction.js.map +0 -1
- package/lib/_chunks-cjs/storeSchemasAction.js +0 -147
- package/lib/_chunks-cjs/storeSchemasAction.js.map +0 -1
- package/lib/_chunks-cjs/timing.js +0 -22
- package/lib/_chunks-cjs/timing.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"storeSchemasAction.js","sources":["../../src/_internal/cli/actions/schema/schemaListAction.ts","../../src/_internal/cli/actions/schema/storeSchemasAction.ts"],"sourcesContent":["import {type CliCommandArguments, type CliCommandContext, type CliOutputter} from '@sanity/cli'\nimport {type SanityDocument} from '@sanity/client'\nimport chalk from 'chalk'\nimport {size, sortBy, uniqBy} from 'lodash'\n\nimport {type ManifestWorkspaceFile} from '../../../manifest/manifestTypes'\nimport {getManifestPath, readManifest, throwIfProjectIdMismatch} from './storeSchemasAction'\n\nexport interface SchemaListFlags {\n json: boolean\n id: string\n path: string\n}\n\ntype PrintSchemaListArgs = {\n schemas: SanityDocument[]\n output: CliOutputter\n dataset: string\n projectId: string\n path: string\n}\n\nexport const SANITY_WORKSPACE_SCHEMA_TYPE = 'sanity.workspace.schema'\n\nconst printSchemaList = ({\n schemas,\n output,\n}: Omit<PrintSchemaListArgs, 'path' | 'dataset' | 'projectId'>) => {\n const ordered = sortBy(\n schemas.map(({_createdAt: createdAt, _id: id, workspace}) => {\n return [id, workspace.name, workspace.dataset, workspace.projectId, createdAt].map(String)\n }),\n ['createdAt'],\n )\n const headings = ['Id', 'Workspace', 'Dataset', 'ProjectId', 'CreatedAt']\n const rows = ordered.reverse()\n\n const maxWidths = rows.reduce(\n (max, row) => row.map((current, index) => Math.max(size(current), max[index])),\n headings.map((str) => size(str)),\n )\n\n const printRow = (row: string[]) => row.map((col, i) => `${col}`.padEnd(maxWidths[i])).join(' ')\n\n output.print(chalk.cyan(printRow(headings)))\n rows.forEach((row) => output.print(printRow(row)))\n}\n\nexport default async function fetchSchemaAction(\n args: CliCommandArguments<SchemaListFlags>,\n context: CliCommandContext,\n): Promise<void> {\n const flags = args.extOptions\n const {apiClient, output} = context\n const client = apiClient({\n requireUser: true,\n requireProject: true,\n }).withConfig({apiVersion: 'v2024-08-01'})\n\n const projectId = client.config().projectId\n\n if (!projectId) {\n output.error('Project ID must be defined.')\n return\n }\n\n const manifestPath = getManifestPath(context, flags.path)\n const manifest = readManifest(manifestPath, output)\n\n // Gather all schemas\n const results = await Promise.allSettled(\n uniqBy<ManifestWorkspaceFile>(manifest.workspaces, 'dataset').map(async (workspace) => {\n throwIfProjectIdMismatch(workspace, projectId)\n if (flags.id) {\n // Fetch a specific schema by id\n return await client\n .withConfig({\n dataset: workspace.dataset,\n projectId: workspace.projectId,\n })\n .getDocument(flags.id)\n }\n // Fetch all schemas\n return await client\n .withConfig({\n dataset: workspace.dataset,\n projectId: workspace.projectId,\n useCdn: false,\n })\n .fetch<SanityDocument[]>(`*[_type == $type]`, {\n type: SANITY_WORKSPACE_SCHEMA_TYPE,\n })\n }),\n )\n\n // Log errors and collect successful results\n const schemas = results\n .map((result, index) => {\n if (result.status === 'rejected') {\n const workspace = manifest.workspaces[index]\n output.error(\n chalk.red(\n `Failed to fetch schemas for workspace '${workspace.name}': ${result.reason.message}`,\n ),\n )\n return []\n }\n return result.value\n })\n .flat()\n\n if (schemas.length === 0) {\n output.error(`No schemas found`)\n return\n }\n\n if (flags.json) {\n output.print(`${JSON.stringify(flags.id ? schemas[0] : schemas, null, 2)}`)\n } else {\n printSchemaList({schemas: schemas as SanityDocument[], output})\n }\n}\n","import {readFileSync} from 'node:fs'\nimport path, {join, resolve} from 'node:path'\n\nimport {type CliCommandArguments, type CliCommandContext, type CliOutputter} from '@sanity/cli'\nimport chalk from 'chalk'\nimport {type Ora} from 'ora'\n\nimport {type ManifestSchemaType, type ManifestWorkspaceFile} from '../../../manifest/manifestTypes'\nimport {MANIFEST_FILENAME} from '../manifest/extractManifestAction'\nimport {SANITY_WORKSPACE_SCHEMA_TYPE} from './schemaListAction'\n\nexport interface StoreManifestSchemasFlags {\n 'path'?: string\n 'workspace'?: string\n 'id-prefix'?: string\n 'schema-required'?: boolean\n 'verbose'?: boolean\n}\n\nexport const getManifestPath = (context: CliCommandContext, customPath?: string) => {\n const defaultOutputDir = resolve(join(context.workDir, 'dist'))\n\n const outputDir = resolve(defaultOutputDir)\n const defaultStaticPath = join(outputDir, 'static')\n\n const staticPath = customPath ?? defaultStaticPath\n const manifestPath = path.resolve(process.cwd(), staticPath)\n return manifestPath\n}\n\nexport const readManifest = (readPath: string, output?: CliOutputter, spinner?: Ora) => {\n try {\n return JSON.parse(readFileSync(`${readPath}/${MANIFEST_FILENAME}`, 'utf-8'))\n } catch (error) {\n const errorMessage = `Manifest not found at ${readPath}/${MANIFEST_FILENAME}`\n if (spinner) spinner.fail(errorMessage)\n if (output) output.error(errorMessage)\n throw error\n }\n}\n\n// At the moment schema store deos not support studios where workspaces have multiple projects\nexport const throwIfProjectIdMismatch = (\n workspace: ManifestWorkspaceFile,\n projectId: string,\n): void => {\n if (workspace.projectId !== projectId) {\n throw new Error(\n `↳ No permissions to store schema for workspace ${workspace.name} with projectId: ${workspace.projectId}`,\n )\n }\n}\n\nexport default async function storeSchemasAction(\n args: CliCommandArguments<StoreManifestSchemasFlags>,\n context: CliCommandContext,\n): Promise<Error | undefined> {\n const flags = args.extOptions\n\n const schemaRequired = flags['schema-required']\n const workspaceName = flags.workspace\n const idPrefix = flags['id-prefix']\n const verbose = flags.verbose\n\n if (typeof flags.path === 'boolean') throw new Error('Path is empty')\n if (typeof idPrefix === 'boolean') throw new Error('Id prefix is empty')\n if (typeof workspaceName === 'boolean') throw new Error('Workspace is empty')\n\n const {output, apiClient} = context\n\n const spinner = output.spinner({}).start('Storing schemas')\n\n const manifestPath = getManifestPath(context, flags.path)\n\n try {\n const client = apiClient({\n requireUser: true,\n requireProject: true,\n }).withConfig({apiVersion: 'v2024-08-01'})\n\n const projectId = client.config().projectId\n if (!projectId) throw new Error('Project ID is not defined')\n\n const manifest = readManifest(manifestPath, output, spinner)\n\n let storedCount = 0\n\n let error: Error | undefined\n\n const saveSchema = async (workspace: ManifestWorkspaceFile) => {\n const id = `${idPrefix ? `${idPrefix}.` : ''}${SANITY_WORKSPACE_SCHEMA_TYPE}.${workspace.name}`\n try {\n throwIfProjectIdMismatch(workspace, projectId)\n const schema = JSON.parse(\n readFileSync(`${manifestPath}/${workspace.schema}`, 'utf-8'),\n ) as ManifestSchemaType\n await client\n .withConfig({\n dataset: workspace.dataset,\n projectId: workspace.projectId,\n })\n .transaction()\n .createOrReplace({_type: SANITY_WORKSPACE_SCHEMA_TYPE, _id: id, workspace, schema})\n .commit()\n storedCount++\n spinner.text = `Stored ${storedCount} schemas so far...`\n if (verbose) spinner.succeed(`Schema stored for workspace '${workspace.name}'`)\n } catch (err) {\n error = err\n spinner.fail(\n `Error storing schema for workspace '${workspace.name}':\\n${chalk.red(`${err.message}`)}`,\n )\n if (schemaRequired) throw err\n } finally {\n if (verbose) {\n output.print(\n chalk.gray(`↳ schemaId: ${id}, projectId: ${projectId}, dataset: ${workspace.dataset}`),\n )\n }\n }\n }\n\n // If a workspace name is provided, only save the schema for that workspace\n if (workspaceName) {\n const workspaceToSave = manifest.workspaces.find(\n (workspace: ManifestWorkspaceFile) => workspace.name === workspaceName,\n )\n if (!workspaceToSave) {\n spinner.fail(`Workspace ${workspaceName} not found in manifest`)\n throw new Error(`Workspace ${workspaceName} not found in manifest: projectID: ${projectId}`)\n }\n await saveSchema(workspaceToSave as ManifestWorkspaceFile)\n spinner.succeed(`Stored 1 schemas`)\n } else {\n await Promise.all(\n manifest.workspaces.map(async (workspace: ManifestWorkspaceFile): Promise<void> => {\n await saveSchema(workspace)\n }),\n )\n spinner.succeed(`Stored ${storedCount}/${manifest.workspaces.length} schemas`)\n }\n\n if (error) throw error\n return undefined\n } catch (err) {\n // if this flag is set, throw the error and exit without deploying otherwise just log the error\n if (schemaRequired) throw err\n return err\n } finally {\n output.print(`${chalk.gray('↳ List stored schemas with:')} ${chalk.cyan('sanity schema list')}`)\n }\n}\n"],"names":["SANITY_WORKSPACE_SCHEMA_TYPE","printSchemaList","schemas","output","ordered","sortBy","map","_createdAt","createdAt","_id","id","workspace","name","dataset","projectId","String","headings","rows","reverse","maxWidths","reduce","max","row","current","index","Math","size","str","printRow","col","i","padEnd","join","print","chalk","cyan","forEach","fetchSchemaAction","args","context","flags","extOptions","apiClient","client","requireUser","requireProject","withConfig","apiVersion","config","error","manifestPath","getManifestPath","path","manifest","readManifest","Promise","allSettled","uniqBy","workspaces","throwIfProjectIdMismatch","getDocument","useCdn","fetch","type","result","status","red","reason","message","value","flat","length","json","JSON","stringify","customPath","defaultOutputDir","resolve","workDir","outputDir","defaultStaticPath","staticPath","process","cwd","readPath","spinner","parse","readFileSync","MANIFEST_FILENAME","errorMessage","fail","Error","storeSchemasAction","schemaRequired","workspaceName","idPrefix","verbose","start","storedCount","saveSchema","schema","transaction","createOrReplace","_type","commit","text","succeed","err","gray","workspaceToSave","find","all"],"mappings":"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"}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var node_perf_hooks = require("node:perf_hooks");
|
3
|
-
function getTimer() {
|
4
|
-
const timings = {}, startTimes = {};
|
5
|
-
function start(name) {
|
6
|
-
if (typeof startTimes[name] < "u")
|
7
|
-
throw new Error(`Timer "${name}" already started, cannot overwrite`);
|
8
|
-
startTimes[name] = node_perf_hooks.performance.now();
|
9
|
-
}
|
10
|
-
function end(name) {
|
11
|
-
if (typeof startTimes[name] > "u")
|
12
|
-
throw new Error(`Timer "${name}" never started, cannot end`);
|
13
|
-
return timings[name] = node_perf_hooks.performance.now() - startTimes[name], timings[name];
|
14
|
-
}
|
15
|
-
return {
|
16
|
-
start,
|
17
|
-
end,
|
18
|
-
getTimings: () => timings
|
19
|
-
};
|
20
|
-
}
|
21
|
-
exports.getTimer = getTimer;
|
22
|
-
//# sourceMappingURL=timing.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"timing.js","sources":["../../src/_internal/cli/util/timing.ts"],"sourcesContent":["import {performance} from 'node:perf_hooks'\n\nexport interface TimeMeasurer {\n start: (name: string) => void\n end: (name: string) => number\n getTimings: () => Record<string, number>\n}\n\nexport function getTimer(): TimeMeasurer {\n const timings: Record<string, number> = {}\n const startTimes: Record<string, number> = {}\n\n function start(name: string): void {\n if (typeof startTimes[name] !== 'undefined') {\n throw new Error(`Timer \"${name}\" already started, cannot overwrite`)\n }\n\n startTimes[name] = performance.now()\n }\n\n function end(name: string): number {\n if (typeof startTimes[name] === 'undefined') {\n throw new Error(`Timer \"${name}\" never started, cannot end`)\n }\n\n timings[name] = performance.now() - startTimes[name]\n return timings[name]\n }\n\n return {start, end, getTimings: () => timings}\n}\n"],"names":["getTimer","timings","startTimes","start","name","Error","performance","now","end","getTimings"],"mappings":";;AAQO,SAASA,WAAyB;AACvC,QAAMC,UAAkC,IAClCC,aAAqC,CAAC;AAE5C,WAASC,MAAMC,MAAoB;AAC7B,QAAA,OAAOF,WAAWE,IAAI,IAAM;AAC9B,YAAM,IAAIC,MAAM,UAAUD,IAAI,qCAAqC;AAG1DA,eAAAA,IAAI,IAAIE,gBAAAA,YAAYC,IAAI;AAAA,EAAA;AAGrC,WAASC,IAAIJ,MAAsB;AAC7B,QAAA,OAAOF,WAAWE,IAAI,IAAM;AAC9B,YAAM,IAAIC,MAAM,UAAUD,IAAI,6BAA6B;AAGrDA,WAAAA,QAAAA,IAAI,IAAIE,4BAAYC,QAAQL,WAAWE,IAAI,GAC5CH,QAAQG,IAAI;AAAA,EAAA;AAGd,SAAA;AAAA,IAACD;AAAAA,IAAOK;AAAAA,IAAKC,YAAYA,MAAMR;AAAAA,EAAO;AAC/C;;"}
|