sanity 3.77.2-server-side-schemas.18 → 3.77.2-server-side-schemas.21

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.
@@ -18,7 +18,9 @@ const SANITY_WORKSPACE_SCHEMA_ID = "sanity.workspace.schema", printSchemaList =
18
18
  output.print(chalk__default.default.cyan(printRow(headings))), rows.forEach((row) => output.print(printRow(row)));
19
19
  };
20
20
  async function storeSchemaAction(args, context) {
21
- const flags = args.extOptions, {
21
+ const flags = args.extOptions;
22
+ if (typeof flags.id == "boolean") throw new Error("Id is empty");
23
+ const {
22
24
  apiClient,
23
25
  output
24
26
  } = context, client = apiClient({
@@ -1 +1 @@
1
- {"version":3,"file":"schemaListAction.js","sources":["../../src/_internal/cli/actions/schema/schemaListAction.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} from 'lodash'\n\nexport interface SchemaListFlags {\n json: boolean\n id: string\n}\n\ntype PrintSchemaListArgs = {\n schemas: SanityDocument[]\n output: CliOutputter\n dataset: string\n projectId: string\n}\n\nexport const SANITY_WORKSPACE_SCHEMA_ID = 'sanity.workspace.schema'\n\nconst printSchemaList = ({schemas, output, dataset, projectId}: PrintSchemaListArgs) => {\n const ordered = sortBy(\n schemas.map(({_createdAt: createdAt, _id: id, workspace}) => {\n return [id, workspace.title, dataset, projectId, createdAt].map(String)\n }),\n ['createdAt'],\n )\n const headings = ['Id', 'Title', '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 storeSchemaAction(\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 const dataset = client.config().dataset\n\n if (!projectId || !dataset) {\n output.error('Project ID and Dataset must be defined.')\n return\n }\n\n let schemas: SanityDocument[]\n\n if (flags.id) {\n // Fetch a specific schema by id\n schemas = await client\n .withConfig({\n dataset: dataset,\n projectId: projectId,\n })\n .fetch<SanityDocument[]>(`*[_type == $type && _id == $id]`, {\n id: flags.id,\n type: SANITY_WORKSPACE_SCHEMA_ID,\n })\n } else {\n // Fetch all schemas\n schemas = await client\n .withConfig({\n dataset: dataset,\n projectId: projectId,\n })\n .fetch<SanityDocument[]>(`*[_type == $type]`, {\n type: SANITY_WORKSPACE_SCHEMA_ID,\n })\n }\n\n if (schemas.length === 0) {\n if (flags.id) {\n output.error(`No schema found with id: ${flags.id}`)\n } else {\n output.error(`No schemas found`)\n }\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, output, dataset, projectId})\n }\n}\n"],"names":["SANITY_WORKSPACE_SCHEMA_ID","printSchemaList","schemas","output","dataset","projectId","ordered","sortBy","map","_createdAt","createdAt","_id","id","workspace","title","String","headings","rows","reverse","maxWidths","reduce","max","row","current","index","Math","size","str","printRow","col","i","padEnd","join","print","chalk","cyan","forEach","storeSchemaAction","args","context","flags","extOptions","apiClient","client","requireUser","requireProject","withConfig","apiVersion","config","error","fetch","type","length","json","JSON","stringify"],"mappings":";;;;;;AAiBO,MAAMA,6BAA6B,2BAEpCC,kBAAkBA,CAAC;AAAA,EAACC;AAAAA,EAASC;AAAAA,EAAQC;AAAAA,EAASC;AAA8B,MAAM;AACtF,QAAMC,UAAUC,gBAAAA,QACdL,QAAQM,IAAI,CAAC;AAAA,IAACC,YAAYC;AAAAA,IAAWC,KAAKC;AAAAA,IAAIC;AAAAA,EAAAA,MACrC,CAACD,IAAIC,UAAUC,OAAOV,SAASC,WAAWK,SAAS,EAAEF,IAAIO,MAAM,CACvE,GACD,CAAC,WAAW,CACd,GACMC,WAAW,CAAC,MAAM,SAAS,WAAW,aAAa,WAAW,GAC9DC,OAAOX,QAAQY,QAAQ,GAEvBC,YAAYF,KAAKG,OACrB,CAACC,KAAKC,QAAQA,IAAId,IAAI,CAACe,SAASC,UAAUC,KAAKJ,IAAIK,cAAAA,QAAKH,OAAO,GAAGF,IAAIG,KAAK,CAAC,CAAC,GAC7ER,SAASR,IAAKmB,CAAQD,QAAAA,cAAAA,QAAKC,GAAG,CAAC,CACjC,GAEMC,WAAYN,SAAkBA,IAAId,IAAI,CAACqB,KAAKC,MAAM,GAAGD,GAAG,GAAGE,OAAOZ,UAAUW,CAAC,CAAC,CAAC,EAAEE,KAAK,KAAK;AAEjG7B,SAAO8B,MAAMC,eAAMC,QAAAA,KAAKP,SAASZ,QAAQ,CAAC,CAAC,GAC3CC,KAAKmB,QAASd,SAAQnB,OAAO8B,MAAML,SAASN,GAAG,CAAC,CAAC;AACnD;AAE8Be,eAAAA,kBAC5BC,MACAC,SACe;AACTC,QAAAA,QAAQF,KAAKG,YACb;AAAA,IAACC;AAAAA,IAAWvC;AAAAA,EAAAA,IAAUoC,SACtBI,SAASD,UAAU;AAAA,IACvBE,aAAa;AAAA,IACbC,gBAAgB;AAAA,EACjB,CAAA,EAAEC,WAAW;AAAA,IAACC,YAAY;AAAA,EAAA,CAAc,GAEnC1C,YAAYsC,OAAOK,SAAS3C,WAC5BD,UAAUuC,OAAOK,OAAAA,EAAS5C;AAE5B,MAAA,CAACC,aAAa,CAACD,SAAS;AAC1BD,WAAO8C,MAAM,yCAAyC;AACtD;AAAA,EAAA;AAGE/C,MAAAA;AAyBJ,MAvBIsC,MAAM5B,KAERV,UAAU,MAAMyC,OACbG,WAAW;AAAA,IACV1C;AAAAA,IACAC;AAAAA,EAAAA,CACD,EACA6C,MAAwB,mCAAmC;AAAA,IAC1DtC,IAAI4B,MAAM5B;AAAAA,IACVuC,MAAMnD;AAAAA,EACP,CAAA,IAGHE,UAAU,MAAMyC,OACbG,WAAW;AAAA,IACV1C;AAAAA,IACAC;AAAAA,EAAAA,CACD,EACA6C,MAAwB,qBAAqB;AAAA,IAC5CC,MAAMnD;AAAAA,EAAAA,CACP,GAGDE,QAAQkD,WAAW,GAAG;AACpBZ,UAAM5B,KACRT,OAAO8C,MAAM,4BAA4BT,MAAM5B,EAAE,EAAE,IAEnDT,OAAO8C,MAAM,kBAAkB;AAEjC;AAAA,EAAA;AAGET,QAAMa,OACRlD,OAAO8B,MAAM,GAAGqB,KAAKC,UAAUf,MAAM5B,KAAKV,QAAQ,CAAC,IAAIA,SAAS,MAAM,CAAC,CAAC,EAAE,IAE1ED,gBAAgB;AAAA,IAACC;AAAAA,IAASC;AAAAA,IAAQC;AAAAA,IAASC;AAAAA,EAAAA,CAAU;AAEzD;;;"}
1
+ {"version":3,"file":"schemaListAction.js","sources":["../../src/_internal/cli/actions/schema/schemaListAction.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} from 'lodash'\n\nexport interface SchemaListFlags {\n json: boolean\n id: string\n}\n\ntype PrintSchemaListArgs = {\n schemas: SanityDocument[]\n output: CliOutputter\n dataset: string\n projectId: string\n}\n\nexport const SANITY_WORKSPACE_SCHEMA_ID = 'sanity.workspace.schema'\n\nconst printSchemaList = ({schemas, output, dataset, projectId}: PrintSchemaListArgs) => {\n const ordered = sortBy(\n schemas.map(({_createdAt: createdAt, _id: id, workspace}) => {\n return [id, workspace.title, dataset, projectId, createdAt].map(String)\n }),\n ['createdAt'],\n )\n const headings = ['Id', 'Title', '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 storeSchemaAction(\n args: CliCommandArguments<SchemaListFlags>,\n context: CliCommandContext,\n): Promise<void> {\n const flags = args.extOptions\n if (typeof flags.id === 'boolean') throw new Error('Id is empty')\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 const dataset = client.config().dataset\n\n if (!projectId || !dataset) {\n output.error('Project ID and Dataset must be defined.')\n return\n }\n\n let schemas: SanityDocument[]\n\n if (flags.id) {\n // Fetch a specific schema by id\n schemas = await client\n .withConfig({\n dataset: dataset,\n projectId: projectId,\n })\n .fetch<SanityDocument[]>(`*[_type == $type && _id == $id]`, {\n id: flags.id,\n type: SANITY_WORKSPACE_SCHEMA_ID,\n })\n } else {\n // Fetch all schemas\n schemas = await client\n .withConfig({\n dataset: dataset,\n projectId: projectId,\n })\n .fetch<SanityDocument[]>(`*[_type == $type]`, {\n type: SANITY_WORKSPACE_SCHEMA_ID,\n })\n }\n\n if (schemas.length === 0) {\n if (flags.id) {\n output.error(`No schema found with id: ${flags.id}`)\n } else {\n output.error(`No schemas found`)\n }\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, output, dataset, projectId})\n }\n}\n"],"names":["SANITY_WORKSPACE_SCHEMA_ID","printSchemaList","schemas","output","dataset","projectId","ordered","sortBy","map","_createdAt","createdAt","_id","id","workspace","title","String","headings","rows","reverse","maxWidths","reduce","max","row","current","index","Math","size","str","printRow","col","i","padEnd","join","print","chalk","cyan","forEach","storeSchemaAction","args","context","flags","extOptions","Error","apiClient","client","requireUser","requireProject","withConfig","apiVersion","config","error","fetch","type","length","json","JSON","stringify"],"mappings":";;;;;;AAiBO,MAAMA,6BAA6B,2BAEpCC,kBAAkBA,CAAC;AAAA,EAACC;AAAAA,EAASC;AAAAA,EAAQC;AAAAA,EAASC;AAA8B,MAAM;AACtF,QAAMC,UAAUC,gBAAAA,QACdL,QAAQM,IAAI,CAAC;AAAA,IAACC,YAAYC;AAAAA,IAAWC,KAAKC;AAAAA,IAAIC;AAAAA,EAAAA,MACrC,CAACD,IAAIC,UAAUC,OAAOV,SAASC,WAAWK,SAAS,EAAEF,IAAIO,MAAM,CACvE,GACD,CAAC,WAAW,CACd,GACMC,WAAW,CAAC,MAAM,SAAS,WAAW,aAAa,WAAW,GAC9DC,OAAOX,QAAQY,QAAQ,GAEvBC,YAAYF,KAAKG,OACrB,CAACC,KAAKC,QAAQA,IAAId,IAAI,CAACe,SAASC,UAAUC,KAAKJ,IAAIK,cAAAA,QAAKH,OAAO,GAAGF,IAAIG,KAAK,CAAC,CAAC,GAC7ER,SAASR,IAAKmB,CAAQD,QAAAA,cAAAA,QAAKC,GAAG,CAAC,CACjC,GAEMC,WAAYN,SAAkBA,IAAId,IAAI,CAACqB,KAAKC,MAAM,GAAGD,GAAG,GAAGE,OAAOZ,UAAUW,CAAC,CAAC,CAAC,EAAEE,KAAK,KAAK;AAEjG7B,SAAO8B,MAAMC,eAAMC,QAAAA,KAAKP,SAASZ,QAAQ,CAAC,CAAC,GAC3CC,KAAKmB,QAASd,SAAQnB,OAAO8B,MAAML,SAASN,GAAG,CAAC,CAAC;AACnD;AAE8Be,eAAAA,kBAC5BC,MACAC,SACe;AACf,QAAMC,QAAQF,KAAKG;AACnB,MAAI,OAAOD,MAAM5B,MAAO,UAAiB,OAAA,IAAI8B,MAAM,aAAa;AAC1D,QAAA;AAAA,IAACC;AAAAA,IAAWxC;AAAAA,EAAAA,IAAUoC,SACtBK,SAASD,UAAU;AAAA,IACvBE,aAAa;AAAA,IACbC,gBAAgB;AAAA,EACjB,CAAA,EAAEC,WAAW;AAAA,IAACC,YAAY;AAAA,EAAA,CAAc,GAEnC3C,YAAYuC,OAAOK,SAAS5C,WAC5BD,UAAUwC,OAAOK,OAAAA,EAAS7C;AAE5B,MAAA,CAACC,aAAa,CAACD,SAAS;AAC1BD,WAAO+C,MAAM,yCAAyC;AACtD;AAAA,EAAA;AAGEhD,MAAAA;AAyBJ,MAvBIsC,MAAM5B,KAERV,UAAU,MAAM0C,OACbG,WAAW;AAAA,IACV3C;AAAAA,IACAC;AAAAA,EAAAA,CACD,EACA8C,MAAwB,mCAAmC;AAAA,IAC1DvC,IAAI4B,MAAM5B;AAAAA,IACVwC,MAAMpD;AAAAA,EACP,CAAA,IAGHE,UAAU,MAAM0C,OACbG,WAAW;AAAA,IACV3C;AAAAA,IACAC;AAAAA,EAAAA,CACD,EACA8C,MAAwB,qBAAqB;AAAA,IAC5CC,MAAMpD;AAAAA,EAAAA,CACP,GAGDE,QAAQmD,WAAW,GAAG;AACpBb,UAAM5B,KACRT,OAAO+C,MAAM,4BAA4BV,MAAM5B,EAAE,EAAE,IAEnDT,OAAO+C,MAAM,kBAAkB;AAEjC;AAAA,EAAA;AAGEV,QAAMc,OACRnD,OAAO8B,MAAM,GAAGsB,KAAKC,UAAUhB,MAAM5B,KAAKV,QAAQ,CAAC,IAAIA,SAAS,MAAM,CAAC,CAAC,EAAE,IAE1ED,gBAAgB;AAAA,IAACC;AAAAA,IAASC;AAAAA,IAAQC;AAAAA,IAASC;AAAAA,EAAAA,CAAU;AAEzD;;;"}
@@ -5,7 +5,11 @@ function _interopDefaultCompat(e) {
5
5
  }
6
6
  var path__default = /* @__PURE__ */ _interopDefaultCompat(path), chalk__default = /* @__PURE__ */ _interopDefaultCompat(chalk);
7
7
  async function storeSchemasAction(args, context) {
8
- const flags = args.extOptions, schemaRequired = flags["schema-required"], workspaceName = flags.workspace, idPrefix = flags["id-prefix"], verbose = flags.verbose, {
8
+ const flags = args.extOptions;
9
+ if (typeof flags.path == "boolean") throw new Error("Path is empty");
10
+ if (typeof flags["id-prefix"] == "boolean") throw new Error("Id prefix is empty");
11
+ if (typeof flags.workspace == "boolean") throw new Error("Workspace is empty");
12
+ const schemaRequired = flags["schema-required"], workspaceName = flags.workspace, idPrefix = flags["id-prefix"], verbose = flags.verbose, {
9
13
  output,
10
14
  workDir,
11
15
  apiClient
@@ -25,7 +29,7 @@ async function storeSchemasAction(args, context) {
25
29
  }
26
30
  let storedCount = 0, error;
27
31
  const saveSchema = async (workspace) => {
28
- const id = `${idPrefix || schemaListAction.SANITY_WORKSPACE_SCHEMA_ID}.${workspace.name}`;
32
+ const id = `${idPrefix ? `${idPrefix}.` : ""}${schemaListAction.SANITY_WORKSPACE_SCHEMA_ID}.${workspace.name}`;
29
33
  try {
30
34
  if (workspace.projectId !== projectId)
31
35
  throw new Error(`\u21B3 No permissions to store schema for workspace ${workspace.name} with projectId: ${workspace.projectId}`);
@@ -41,10 +45,9 @@ async function storeSchemasAction(args, context) {
41
45
  }).commit(), storedCount++, spinner.text = `Stored ${storedCount} schemas so far...`, verbose && spinner.succeed(`Schema stored for workspace '${workspace.name}'`);
42
46
  } catch (err) {
43
47
  if (error = err, spinner.fail(`Error storing schema for workspace '${workspace.name}':
44
- ${chalk__default.default.red(`- ${err.message}`)}`), schemaRequired) throw err;
48
+ ${chalk__default.default.red(`${err.message}`)}`), schemaRequired) throw err;
45
49
  } finally {
46
- verbose && output.print(chalk__default.default.gray(`\u21B3 schemaId: ${id}, projectId: ${projectId}, dataset: ${workspace.dataset}, workspace: ${workspace.name}
47
- `));
50
+ verbose && output.print(chalk__default.default.gray(`\u21B3 schemaId: ${id}, projectId: ${projectId}, dataset: ${workspace.dataset}`));
48
51
  }
49
52
  };
50
53
  if (workspaceName) {
@@ -62,7 +65,7 @@ ${chalk__default.default.red(`- ${err.message}`)}`), schemaRequired) throw err;
62
65
  if (schemaRequired) throw err;
63
66
  return err;
64
67
  } finally {
65
- output.print(`List stored schemas with: ${chalk__default.default.cyan("sanity schema list")}`);
68
+ output.print(`${chalk__default.default.gray("\u21B3 List stored schemas with:")} ${chalk__default.default.cyan("sanity schema list")}`);
66
69
  }
67
70
  }
68
71
  exports.default = storeSchemasAction;
@@ -1 +1 @@
1
- {"version":3,"file":"storeSchemasAction.js","sources":["../../src/_internal/cli/actions/schema/storeSchemasAction.ts"],"sourcesContent":["import {readFileSync} from 'node:fs'\nimport path, {join, resolve} from 'node:path'\n\nimport {type CliCommandArguments, type CliCommandContext} from '@sanity/cli'\nimport chalk from 'chalk'\n\nimport {\n type CreateManifest,\n type ManifestSchemaType,\n type ManifestWorkspaceFile,\n} from '../../../manifest/manifestTypes'\nimport {MANIFEST_FILENAME} from '../manifest/extractManifestAction'\nimport {SANITY_WORKSPACE_SCHEMA_ID} 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 default async function storeSchemasAction(\n args: CliCommandArguments<StoreManifestSchemasFlags>,\n context: CliCommandContext,\n): Promise<Error | undefined> {\n const flags = args.extOptions\n const schemaRequired = flags['schema-required']\n const workspaceName = flags.workspace\n const idPrefix = flags['id-prefix']\n const verbose = flags.verbose\n const {output, workDir, apiClient} = context\n\n const defaultOutputDir = resolve(join(workDir, 'dist'))\n\n const outputDir = resolve(defaultOutputDir)\n const defaultStaticPath = join(outputDir, 'static')\n\n const staticPath = flags.path ?? defaultStaticPath\n\n const spinner = output.spinner({}).start('Storing schemas')\n\n try {\n const manifestPath = path.resolve(process.cwd(), staticPath)\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 let manifest: CreateManifest\n\n try {\n manifest = JSON.parse(readFileSync(`${manifestPath}/${MANIFEST_FILENAME}`, 'utf-8'))\n } catch (error) {\n spinner.fail(`Manifest not found at ${manifestPath}/${MANIFEST_FILENAME}`)\n output.error(error)\n throw error\n }\n\n let storedCount = 0\n\n let error: Error | undefined\n\n const saveSchema = async (workspace: ManifestWorkspaceFile) => {\n const id = `${idPrefix || SANITY_WORKSPACE_SCHEMA_ID}.${workspace.name}`\n try {\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 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_ID, _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(\n `↳ schemaId: ${id}, projectId: ${projectId}, dataset: ${workspace.dataset}, workspace: ${workspace.name}\\n`,\n ),\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) => 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): 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(`List stored schemas with: ${chalk.cyan('sanity schema list')}`)\n }\n}\n"],"names":["storeSchemasAction","args","context","flags","extOptions","schemaRequired","workspaceName","workspace","idPrefix","verbose","output","workDir","apiClient","defaultOutputDir","resolve","join","outputDir","defaultStaticPath","staticPath","path","spinner","start","manifestPath","process","cwd","client","requireUser","requireProject","withConfig","apiVersion","projectId","config","manifest","JSON","parse","readFileSync","MANIFEST_FILENAME","error","fail","storedCount","saveSchema","id","SANITY_WORKSPACE_SCHEMA_ID","name","Error","schema","dataset","transaction","createOrReplace","_type","_id","commit","text","succeed","err","chalk","red","message","print","gray","workspaceToSave","workspaces","find","Promise","all","map","length","cyan"],"mappings":"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"}
1
+ {"version":3,"file":"storeSchemasAction.js","sources":["../../src/_internal/cli/actions/schema/storeSchemasAction.ts"],"sourcesContent":["import {readFileSync} from 'node:fs'\nimport path, {join, resolve} from 'node:path'\n\nimport {type CliCommandArguments, type CliCommandContext} from '@sanity/cli'\nimport chalk from 'chalk'\n\nimport {\n type CreateManifest,\n type ManifestSchemaType,\n type ManifestWorkspaceFile,\n} from '../../../manifest/manifestTypes'\nimport {MANIFEST_FILENAME} from '../manifest/extractManifestAction'\nimport {SANITY_WORKSPACE_SCHEMA_ID} 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 default async function storeSchemasAction(\n args: CliCommandArguments<StoreManifestSchemasFlags>,\n context: CliCommandContext,\n): Promise<Error | undefined> {\n const flags = args.extOptions\n if (typeof flags.path === 'boolean') throw new Error('Path is empty')\n if (typeof flags['id-prefix'] === 'boolean') throw new Error('Id prefix is empty')\n if (typeof flags.workspace === 'boolean') throw new Error('Workspace is empty')\n\n const schemaRequired = flags['schema-required']\n const workspaceName = flags.workspace\n const idPrefix = flags['id-prefix']\n const verbose = flags.verbose\n const {output, workDir, apiClient} = context\n\n const defaultOutputDir = resolve(join(workDir, 'dist'))\n\n const outputDir = resolve(defaultOutputDir)\n const defaultStaticPath = join(outputDir, 'static')\n\n const staticPath = flags.path ?? defaultStaticPath\n\n const spinner = output.spinner({}).start('Storing schemas')\n\n try {\n const manifestPath = path.resolve(process.cwd(), staticPath)\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 let manifest: CreateManifest\n\n try {\n manifest = JSON.parse(readFileSync(`${manifestPath}/${MANIFEST_FILENAME}`, 'utf-8'))\n } catch (error) {\n spinner.fail(`Manifest not found at ${manifestPath}/${MANIFEST_FILENAME}`)\n output.error(error)\n throw error\n }\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_ID}.${workspace.name}`\n try {\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 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_ID, _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) => 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): 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":["storeSchemasAction","args","context","flags","extOptions","path","Error","workspace","schemaRequired","workspaceName","idPrefix","verbose","output","workDir","apiClient","defaultOutputDir","resolve","join","outputDir","defaultStaticPath","staticPath","spinner","start","manifestPath","process","cwd","client","requireUser","requireProject","withConfig","apiVersion","projectId","config","manifest","JSON","parse","readFileSync","MANIFEST_FILENAME","error","fail","storedCount","saveSchema","id","SANITY_WORKSPACE_SCHEMA_ID","name","schema","dataset","transaction","createOrReplace","_type","_id","commit","text","succeed","err","chalk","red","message","print","gray","workspaceToSave","workspaces","find","Promise","all","map","length","cyan"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const SANITY_VERSION = "3.77.2-server-side-schemas.18+2f9d85d5e5";
2
+ const SANITY_VERSION = "3.77.2-server-side-schemas.21+15f4ca087f";
3
3
  exports.SANITY_VERSION = SANITY_VERSION;
4
4
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,4 @@
1
- const SANITY_VERSION = "3.77.2-server-side-schemas.18+2f9d85d5e5";
1
+ const SANITY_VERSION = "3.77.2-server-side-schemas.21+15f4ca087f";
2
2
  export {
3
3
  SANITY_VERSION
4
4
  };
@@ -1,4 +1,4 @@
1
- const SANITY_VERSION = "3.77.2-server-side-schemas.18+2f9d85d5e5";
1
+ const SANITY_VERSION = "3.77.2-server-side-schemas.21+15f4ca087f";
2
2
  export {
3
3
  SANITY_VERSION
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sanity",
3
- "version": "3.77.2-server-side-schemas.18+2f9d85d5e5",
3
+ "version": "3.77.2-server-side-schemas.21+15f4ca087f",
4
4
  "description": "Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches",
5
5
  "keywords": [
6
6
  "sanity",
@@ -160,11 +160,11 @@
160
160
  "@rexxars/react-json-inspector": "^9.0.1",
161
161
  "@sanity/asset-utils": "^2.0.6",
162
162
  "@sanity/bifur-client": "^0.4.1",
163
- "@sanity/cli": "3.77.2-server-side-schemas.18+2f9d85d5e5",
163
+ "@sanity/cli": "3.77.2-server-side-schemas.21+15f4ca087f",
164
164
  "@sanity/client": "^6.28.1",
165
165
  "@sanity/color": "^3.0.0",
166
166
  "@sanity/comlink": "^3.0.1",
167
- "@sanity/diff": "3.77.2-server-side-schemas.18+2f9d85d5e5",
167
+ "@sanity/diff": "3.77.2-server-side-schemas.21+15f4ca087f",
168
168
  "@sanity/diff-match-patch": "^3.1.1",
169
169
  "@sanity/diff-patch": "^5.0.0",
170
170
  "@sanity/eventsource": "^5.0.0",
@@ -174,15 +174,15 @@
174
174
  "@sanity/import": "^3.37.9",
175
175
  "@sanity/insert-menu": "^1.1.3",
176
176
  "@sanity/logos": "^2.1.13",
177
- "@sanity/migrate": "3.77.2-server-side-schemas.18+2f9d85d5e5",
178
- "@sanity/mutator": "3.77.2-server-side-schemas.18+2f9d85d5e5",
177
+ "@sanity/migrate": "3.77.2-server-side-schemas.21+15f4ca087f",
178
+ "@sanity/mutator": "3.77.2-server-side-schemas.21+15f4ca087f",
179
179
  "@sanity/presentation-comlink": "^1.0.8",
180
180
  "@sanity/preview-url-secret": "^2.1.4",
181
- "@sanity/schema": "3.77.2-server-side-schemas.18+2f9d85d5e5",
181
+ "@sanity/schema": "3.77.2-server-side-schemas.21+15f4ca087f",
182
182
  "@sanity/telemetry": "^0.7.7",
183
- "@sanity/types": "3.77.2-server-side-schemas.18+2f9d85d5e5",
183
+ "@sanity/types": "3.77.2-server-side-schemas.21+15f4ca087f",
184
184
  "@sanity/ui": "^2.14.3",
185
- "@sanity/util": "3.77.2-server-side-schemas.18+2f9d85d5e5",
185
+ "@sanity/util": "3.77.2-server-side-schemas.21+15f4ca087f",
186
186
  "@sanity/uuid": "^3.0.2",
187
187
  "@sentry/react": "^8.33.0",
188
188
  "@tanstack/react-table": "^8.16.0",
@@ -280,7 +280,7 @@
280
280
  "@repo/dev-aliases": "3.77.1",
281
281
  "@repo/package.config": "3.77.1",
282
282
  "@repo/test-config": "3.77.1",
283
- "@sanity/codegen": "3.77.2-server-side-schemas.18+2f9d85d5e5",
283
+ "@sanity/codegen": "3.77.2-server-side-schemas.21+15f4ca087f",
284
284
  "@sanity/generate-help-url": "^3.0.0",
285
285
  "@sanity/pkg-utils": "6.13.4",
286
286
  "@sanity/tsdoc": "1.0.169",
@@ -325,5 +325,5 @@
325
325
  "engines": {
326
326
  "node": ">=18"
327
327
  },
328
- "gitHead": "2f9d85d5e5516d8ee7ed366c12681d5152aa9456"
328
+ "gitHead": "15f4ca087f91a9b547e7d8e79d0abe3020273898"
329
329
  }
@@ -43,6 +43,7 @@ export default async function storeSchemaAction(
43
43
  context: CliCommandContext,
44
44
  ): Promise<void> {
45
45
  const flags = args.extOptions
46
+ if (typeof flags.id === 'boolean') throw new Error('Id is empty')
46
47
  const {apiClient, output} = context
47
48
  const client = apiClient({
48
49
  requireUser: true,
@@ -25,6 +25,10 @@ export default async function storeSchemasAction(
25
25
  context: CliCommandContext,
26
26
  ): Promise<Error | undefined> {
27
27
  const flags = args.extOptions
28
+ if (typeof flags.path === 'boolean') throw new Error('Path is empty')
29
+ if (typeof flags['id-prefix'] === 'boolean') throw new Error('Id prefix is empty')
30
+ if (typeof flags.workspace === 'boolean') throw new Error('Workspace is empty')
31
+
28
32
  const schemaRequired = flags['schema-required']
29
33
  const workspaceName = flags.workspace
30
34
  const idPrefix = flags['id-prefix']
@@ -64,7 +68,7 @@ export default async function storeSchemasAction(
64
68
  let error: Error | undefined
65
69
 
66
70
  const saveSchema = async (workspace: ManifestWorkspaceFile) => {
67
- const id = `${idPrefix || SANITY_WORKSPACE_SCHEMA_ID}.${workspace.name}`
71
+ const id = `${idPrefix ? `${idPrefix}.` : ''}${SANITY_WORKSPACE_SCHEMA_ID}.${workspace.name}`
68
72
  try {
69
73
  if (workspace.projectId !== projectId) {
70
74
  throw new Error(
@@ -88,15 +92,13 @@ export default async function storeSchemasAction(
88
92
  } catch (err) {
89
93
  error = err
90
94
  spinner.fail(
91
- `Error storing schema for workspace '${workspace.name}':\n${chalk.red(`- ${err.message}`)}`,
95
+ `Error storing schema for workspace '${workspace.name}':\n${chalk.red(`${err.message}`)}`,
92
96
  )
93
97
  if (schemaRequired) throw err
94
98
  } finally {
95
99
  if (verbose) {
96
100
  output.print(
97
- chalk.gray(
98
- `↳ schemaId: ${id}, projectId: ${projectId}, dataset: ${workspace.dataset}, workspace: ${workspace.name}\n`,
99
- ),
101
+ chalk.gray(`↳ schemaId: ${id}, projectId: ${projectId}, dataset: ${workspace.dataset}`),
100
102
  )
101
103
  }
102
104
  }
@@ -129,6 +131,6 @@ export default async function storeSchemasAction(
129
131
  if (schemaRequired) throw err
130
132
  return err
131
133
  } finally {
132
- output.print(`List stored schemas with: ${chalk.cyan('sanity schema list')}`)
134
+ output.print(`${chalk.gray('↳ List stored schemas with:')} ${chalk.cyan('sanity schema list')}`)
133
135
  }
134
136
  }