@sanity/cli 6.2.0 → 6.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/README.md +299 -303
- package/dist/SanityHelp.js +38 -0
- package/dist/SanityHelp.js.map +1 -1
- package/dist/actions/auth/login/getProvider.js +9 -4
- package/dist/actions/auth/login/getProvider.js.map +1 -1
- package/dist/actions/auth/login/getSSOProvider.js +21 -2
- package/dist/actions/auth/login/getSSOProvider.js.map +1 -1
- package/dist/actions/auth/login/login.js +5 -4
- package/dist/actions/auth/login/login.js.map +1 -1
- package/dist/actions/build/buildApp.js +1 -0
- package/dist/actions/build/buildApp.js.map +1 -1
- package/dist/actions/build/buildStaticFiles.js +2 -1
- package/dist/actions/build/buildStaticFiles.js.map +1 -1
- package/dist/actions/build/renderDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +2 -2
- package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -1
- package/dist/actions/build/renderDocumentWorker/types.js.map +1 -1
- package/dist/actions/build/writeSanityRuntime.js +3 -2
- package/dist/actions/build/writeSanityRuntime.js.map +1 -1
- package/dist/actions/deploy/deployStudio.js +53 -3
- package/dist/actions/deploy/deployStudio.js.map +1 -1
- package/dist/actions/deploy/findUserApplicationForStudio.js +10 -4
- package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -1
- package/dist/actions/dev/startAppDevServer.js +2 -0
- package/dist/actions/dev/startAppDevServer.js.map +1 -1
- package/dist/actions/init/git.js +5 -2
- package/dist/actions/init/git.js.map +1 -1
- package/dist/actions/init/remoteTemplate.js +3 -1
- package/dist/actions/init/remoteTemplate.js.map +1 -1
- package/dist/actions/init/templates/nextjs/index.js +1 -1
- package/dist/actions/init/templates/nextjs/index.js.map +1 -1
- package/dist/actions/manifest/extractAppManifest.js +3 -1
- package/dist/actions/manifest/extractAppManifest.js.map +1 -1
- package/dist/actions/manifest/schemaTypeTransformer.js +2 -1
- package/dist/actions/manifest/schemaTypeTransformer.js.map +1 -1
- package/dist/actions/telemetry/setConsent.js +6 -2
- package/dist/actions/telemetry/setConsent.js.map +1 -1
- package/dist/commands/datasets/alias/create.js +0 -4
- package/dist/commands/datasets/alias/create.js.map +1 -1
- package/dist/commands/datasets/alias/delete.js +1 -5
- package/dist/commands/datasets/alias/delete.js.map +1 -1
- package/dist/commands/datasets/alias/link.js +0 -4
- package/dist/commands/datasets/alias/link.js.map +1 -1
- package/dist/commands/datasets/alias/unlink.js +0 -4
- package/dist/commands/datasets/alias/unlink.js.map +1 -1
- package/dist/commands/datasets/copy.js +1 -1
- package/dist/commands/datasets/copy.js.map +1 -1
- package/dist/commands/datasets/import.js +45 -15
- package/dist/commands/datasets/import.js.map +1 -1
- package/dist/commands/deploy.js +3 -0
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.js +10 -9
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +14 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +6 -8
- package/dist/commands/logout.js.map +1 -1
- package/dist/hooks/prerun/setupTelemetry.js +1 -1
- package/dist/hooks/prerun/setupTelemetry.js.map +1 -1
- package/dist/server/devServer.js +2 -1
- package/dist/server/devServer.js.map +1 -1
- package/dist/services/telemetry.js +23 -2
- package/dist/services/telemetry.js.map +1 -1
- package/dist/util/compareDependencyVersions.js +3 -1
- package/dist/util/compareDependencyVersions.js.map +1 -1
- package/dist/util/createExpiringConfig.js +0 -3
- package/dist/util/createExpiringConfig.js.map +1 -1
- package/dist/util/getCliVersion.js +3 -1
- package/dist/util/getCliVersion.js.map +1 -1
- package/dist/util/packageManager/packageManagerChoice.js +1 -2
- package/dist/util/packageManager/packageManagerChoice.js.map +1 -1
- package/dist/util/telemetry/logger.js +13 -0
- package/dist/util/telemetry/logger.js.map +1 -1
- package/oclif.manifest.json +282 -272
- package/package.json +27 -27
- package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js +0 -540
- package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js.map +0 -1
- package/dist/actions/graphql/__tests__/fixtures/test-studio.js +0 -1143
- package/dist/actions/graphql/__tests__/fixtures/test-studio.js.map +0 -1
- package/dist/actions/graphql/__tests__/fixtures/union-refs.js +0 -591
- package/dist/actions/graphql/__tests__/fixtures/union-refs.js.map +0 -1
- package/dist/actions/graphql/__tests__/helpers.js +0 -23
- package/dist/actions/graphql/__tests__/helpers.js.map +0 -1
- package/dist/actions/manifest/__tests__/resolveSchemaIcon.test.js +0 -157
- package/dist/actions/manifest/__tests__/resolveSchemaIcon.test.js.map +0 -1
- package/dist/actions/media/__tests__/createMockClient.js +0 -32
- package/dist/actions/media/__tests__/createMockClient.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/actions/graphql/__tests__/fixtures/union-refs.ts"],"sourcesContent":["import {Schema} from '@sanity/schema'\n\nconst root = {\n name: 'title',\n of: [\n {\n to: [{type: 'union'}, {type: 'a'}],\n type: 'reference',\n },\n ],\n type: 'array',\n}\n\nconst union = {\n fields: [\n {\n name: 'body',\n of: [\n {\n to: [{type: 'a'}, {type: 'b'}, {type: 'union'}],\n type: 'reference',\n },\n {type: 'a'},\n ],\n type: 'array',\n },\n ],\n name: 'union',\n type: 'document',\n}\n\nconst a = {\n fields: [{name: 'title', type: 'string'}],\n name: 'a',\n type: 'document',\n}\nconst b = {\n fields: [{name: 'title', type: 'string'}],\n name: 'b',\n type: 'document',\n}\n\nexport default Schema.compile({\n types: [\n root,\n union,\n a,\n b,\n {\n fields: [\n {\n name: 'lat',\n title: 'Latitude',\n type: 'number',\n },\n {\n name: 'lng',\n title: 'Longitude',\n type: 'number',\n },\n {\n name: 'alt',\n title: 'Altitude',\n type: 'number',\n },\n ],\n name: 'geopoint',\n title: 'Geographical Point',\n type: 'object',\n },\n {\n fields: [\n {\n name: 'originalFilename',\n readOnly: true,\n title: 'Original file name',\n type: 'string',\n },\n {\n name: 'label',\n title: 'Label',\n type: 'string',\n },\n {\n name: 'title',\n title: 'Title',\n type: 'string',\n },\n {\n name: 'description',\n title: 'Description',\n type: 'string',\n },\n {\n name: 'altText',\n title: 'Alternative text',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'sha1hash',\n readOnly: true,\n title: 'SHA1 hash',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'extension',\n readOnly: true,\n title: 'File extension',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'mimeType',\n readOnly: true,\n title: 'Mime type',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'size',\n readOnly: true,\n title: 'File size in bytes',\n type: 'number',\n },\n {\n fieldset: 'system',\n name: 'assetId',\n readOnly: true,\n title: 'Asset ID',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'path',\n readOnly: true,\n title: 'Path',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'url',\n readOnly: true,\n title: 'Url',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'source',\n readOnly: true,\n title: 'Source',\n type: 'sanity.assetSourceData',\n },\n ],\n fieldsets: [\n {\n description: 'These fields are managed by the system and not editable',\n name: 'system',\n title: 'System fields',\n },\n ],\n name: 'sanity.fileAsset',\n orderings: [\n {\n by: [{direction: 'desc', field: 'size'}],\n name: 'fileSizeDesc',\n title: 'File size',\n },\n ],\n preview: {\n prepare(doc: Record<string, unknown>) {\n return {\n subtitle: `${doc.mimeType} (${((doc.size as number) / 1024 / 1024).toFixed(2)} MB)`,\n title: (doc.title as string) || ((doc.path as string) ?? '').split('/').at(-1),\n }\n },\n select: {\n mimeType: 'mimeType',\n path: 'path',\n size: 'size',\n title: 'originalFilename',\n },\n },\n title: 'File',\n type: 'document',\n },\n {\n fields: [\n {\n name: 'x',\n type: 'number',\n },\n {\n name: 'y',\n type: 'number',\n },\n {\n name: 'height',\n type: 'number',\n },\n {\n name: 'width',\n type: 'number',\n },\n ],\n name: 'sanity.imageHotspot',\n title: 'Image hotspot',\n type: 'object',\n },\n {\n fields: [\n {\n name: 'location',\n type: 'geopoint',\n },\n {\n fieldset: 'extra',\n name: 'dimensions',\n title: 'Dimensions',\n type: 'sanity.imageDimensions',\n },\n {\n fieldset: 'extra',\n name: 'palette',\n title: 'Palette',\n type: 'sanity.imagePalette',\n },\n {\n name: 'lqip',\n readOnly: true,\n title: 'LQIP (Low-Quality Image Placeholder)',\n type: 'string',\n },\n {\n name: 'blurHash',\n readOnly: true,\n title: 'BlurHash',\n type: 'string',\n },\n {\n name: 'thumbHash',\n readOnly: true,\n title: 'ThumbHash',\n type: 'string',\n },\n {\n name: 'hasAlpha',\n readOnly: true,\n title: 'Has alpha channel',\n type: 'boolean',\n },\n {\n name: 'isOpaque',\n readOnly: true,\n title: 'Is opaque',\n type: 'boolean',\n },\n ],\n fieldsets: [\n {\n name: 'extra',\n options: {\n collapsable: true,\n },\n title: 'Extra metadata…',\n },\n ],\n name: 'sanity.imageMetadata',\n title: 'Image metadata',\n type: 'object',\n },\n {\n fields: [\n {\n description: 'A canonical name for the source this asset is originating from',\n name: 'name',\n title: 'Source name',\n type: 'string',\n },\n {\n description:\n 'The unique ID for the asset within the originating source so you can programatically find back to it',\n name: 'id',\n title: 'Asset Source ID',\n type: 'string',\n },\n {\n description: 'A URL to find more information about this asset in the originating source',\n name: 'url',\n title: 'Asset information URL',\n type: 'string',\n },\n ],\n name: 'sanity.assetSourceData',\n title: 'Asset Source Data',\n type: 'object',\n },\n {\n fields: [\n {\n name: 'top',\n type: 'number',\n },\n {\n name: 'bottom',\n type: 'number',\n },\n {\n name: 'left',\n type: 'number',\n },\n {\n name: 'right',\n type: 'number',\n },\n ],\n name: 'sanity.imageCrop',\n title: 'Image crop',\n type: 'object',\n },\n {\n fields: [\n {name: 'height', readOnly: true, title: 'Height', type: 'number'},\n {name: 'width', readOnly: true, title: 'Width', type: 'number'},\n {name: 'aspectRatio', readOnly: true, title: 'Aspect ratio', type: 'number'},\n ],\n name: 'sanity.imageDimensions',\n title: 'Image dimensions',\n type: 'object',\n },\n {\n fields: [\n {name: 'darkMuted', title: 'Dark Muted', type: 'sanity.imagePaletteSwatch'},\n {name: 'lightVibrant', title: 'Light Vibrant', type: 'sanity.imagePaletteSwatch'},\n {name: 'darkVibrant', title: 'Dark Vibrant', type: 'sanity.imagePaletteSwatch'},\n {name: 'vibrant', title: 'Vibrant', type: 'sanity.imagePaletteSwatch'},\n {name: 'dominant', title: 'Dominant', type: 'sanity.imagePaletteSwatch'},\n {name: 'lightMuted', title: 'Light Muted', type: 'sanity.imagePaletteSwatch'},\n {name: 'muted', title: 'Muted', type: 'sanity.imagePaletteSwatch'},\n ],\n name: 'sanity.imagePalette',\n title: 'Image palette',\n type: 'object',\n },\n {\n fields: [\n {name: 'background', readOnly: true, title: 'Background', type: 'string'},\n {name: 'foreground', readOnly: true, title: 'Foreground', type: 'string'},\n {name: 'population', readOnly: true, title: 'Population', type: 'number'},\n {name: 'title', readOnly: true, title: 'String', type: 'string'},\n ],\n name: 'sanity.imagePaletteSwatch',\n title: 'Image palette swatch',\n type: 'object',\n },\n {\n fields: [\n {\n name: 'originalFilename',\n readOnly: true,\n title: 'Original file name',\n type: 'string',\n },\n {\n name: 'label',\n title: 'Label',\n type: 'string',\n },\n {\n name: 'title',\n title: 'Title',\n type: 'string',\n },\n {\n name: 'description',\n title: 'Description',\n type: 'string',\n },\n {\n name: 'altText',\n title: 'Alternative text',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'sha1hash',\n readOnly: true,\n title: 'SHA1 hash',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'extension',\n readOnly: true,\n title: 'File extension',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'mimeType',\n readOnly: true,\n title: 'Mime type',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'size',\n readOnly: true,\n title: 'File size in bytes',\n type: 'number',\n },\n {\n fieldset: 'system',\n name: 'assetId',\n readOnly: true,\n title: 'Asset ID',\n type: 'string',\n },\n {\n fieldset: 'system',\n hidden: true,\n name: 'uploadId',\n readOnly: true,\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'path',\n readOnly: true,\n title: 'Path',\n type: 'string',\n },\n {\n fieldset: 'system',\n name: 'url',\n readOnly: true,\n title: 'Url',\n type: 'string',\n },\n {\n name: 'metadata',\n title: 'Metadata',\n type: 'sanity.imageMetadata',\n },\n {\n fieldset: 'system',\n name: 'source',\n readOnly: true,\n title: 'Source',\n type: 'sanity.assetSourceData',\n },\n ],\n fieldsets: [\n {\n description: 'These fields are managed by the system and not editable',\n name: 'system',\n title: 'System fields',\n },\n ],\n name: 'sanity.imageAsset',\n orderings: [\n {\n by: [{direction: 'desc', field: 'size'}],\n name: 'fileSizeDesc',\n title: 'File size',\n },\n ],\n preview: {\n prepare(doc: Record<string, unknown>) {\n return {\n media: {asset: {_ref: doc.id}},\n subtitle: `${doc.mimeType} (${((doc.size as number) / 1024 / 1024).toFixed(2)} MB)`,\n title: (doc.title as string) || ((doc.path as string) ?? '').split('/').at(-1),\n }\n },\n select: {\n id: '_id',\n mimeType: 'mimeType',\n size: 'size',\n title: 'originalFilename',\n },\n },\n title: 'Image',\n type: 'document',\n },\n ],\n})\n"],"names":["Schema","root","name","of","to","type","union","fields","a","b","compile","types","title","readOnly","fieldset","fieldsets","description","orderings","by","direction","field","preview","prepare","doc","subtitle","mimeType","size","toFixed","path","split","at","select","options","collapsable","hidden","media","asset","_ref","id"],"mappings":"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BACR;gBACA;oBACEH,MAAM;oBACNG,MAAM;gBACR;aACD;YACDH,MAAM;YACNU,OAAO;YACPP,MAAM;QACR;QACA;YACEE,QAAQ;gBACN;oBACEL,MAAM;oBACNG,MAAM;gBACR;gBACA;oBACES,UAAU;oBACVZ,MAAM;oBACNU,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACES,UAAU;oBACVZ,MAAM;oBACNU,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNW,UAAU;oBACVD,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNW,UAAU;oBACVD,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNW,UAAU;oBACVD,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNW,UAAU;oBACVD,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNW,UAAU;oBACVD,OAAO;oBACPP,MAAM;gBACR;aACD;YACDU,WAAW;gBACT;oBACEb,MAAM;oBACN8B,SAAS;wBACPC,aAAa;oBACf;oBACArB,OAAO;gBACT;aACD;YACDV,MAAM;YACNU,OAAO;YACPP,MAAM;QACR;QACA;YACEE,QAAQ;gBACN;oBACES,aAAa;oBACbd,MAAM;oBACNU,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACEW,aACE;oBACFd,MAAM;oBACNU,OAAO;oBACPP,MAAM;gBACR;gBACA;oBACEW,aAAa;oBACbd,MAAM;oBACNU,OAAO;oBACPP,MAAM;gBACR;aACD;YACDH,MAAM;YACNU,OAAO;YACPP,MAAM;QACR;QACA;YACEE,QAAQ;gBACN;oBACEL,MAAM;oBACNG,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNG,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNG,MAAM;gBACR;gBACA;oBACEH,MAAM;oBACNG,MAAM;gBACR;aACD;YACDH,MAAM;YACNU,OAAO;YACPP,MAAM;QACR;QACA;YACEE,QAAQ;gBACN;oBAACL,MAAM;oBAAUW,UAAU;oBAAMD,OAAO;oBAAUP,MAAM;gBAAQ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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import orderBy from 'lodash-es/orderBy.js';
|
|
2
|
-
export function sortGraphQLSchema(schema) {
|
|
3
|
-
const interfaces = orderBy(schema.interfaces, (iface)=>iface.name).map((iface)=>({
|
|
4
|
-
...iface,
|
|
5
|
-
fields: orderBy(iface.fields, (field)=>field.fieldName)
|
|
6
|
-
}));
|
|
7
|
-
const queries = orderBy(schema.queries, (query)=>query.fieldName).map((query)=>({
|
|
8
|
-
...query,
|
|
9
|
-
args: orderBy(query.args, (arg)=>arg.name)
|
|
10
|
-
}));
|
|
11
|
-
const types = orderBy(schema.types, (type)=>type.name).map((type)=>({
|
|
12
|
-
...type,
|
|
13
|
-
fields: orderBy('fields' in type ? type.fields : [], (field)=>field.fieldName)
|
|
14
|
-
}));
|
|
15
|
-
return {
|
|
16
|
-
generation: schema.generation,
|
|
17
|
-
interfaces,
|
|
18
|
-
queries,
|
|
19
|
-
types
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/graphql/__tests__/helpers.ts"],"sourcesContent":["import orderBy from 'lodash-es/orderBy.js'\n\nimport {type GeneratedApiSpecification} from '../types.js'\n\nexport function sortGraphQLSchema(schema: GeneratedApiSpecification) {\n const interfaces = orderBy(schema.interfaces, (iface) => iface.name).map((iface) => ({\n ...iface,\n fields: orderBy(iface.fields, (field) => field.fieldName),\n }))\n const queries = orderBy(schema.queries, (query) => query.fieldName).map((query) => ({\n ...query,\n args: orderBy(query.args, (arg) => arg.name),\n }))\n\n const types = orderBy(schema.types, (type) => type.name).map((type) => ({\n ...type,\n fields: orderBy(\n 'fields' in type ? (type.fields as {fieldName: string}[]) : [],\n (field) => field.fieldName,\n ),\n }))\n\n return {generation: schema.generation, interfaces, queries, types}\n}\n"],"names":["orderBy","sortGraphQLSchema","schema","interfaces","iface","name","map","fields","field","fieldName","queries","query","args","arg","types","type","generation"],"mappings":"AAAA,OAAOA,aAAa,uBAAsB;AAI1C,OAAO,SAASC,kBAAkBC,MAAiC;IACjE,MAAMC,aAAaH,QAAQE,OAAOC,UAAU,EAAE,CAACC,QAAUA,MAAMC,IAAI,EAAEC,GAAG,CAAC,CAACF,QAAW,CAAA;YACnF,GAAGA,KAAK;YACRG,QAAQP,QAAQI,MAAMG,MAAM,EAAE,CAACC,QAAUA,MAAMC,SAAS;QAC1D,CAAA;IACA,MAAMC,UAAUV,QAAQE,OAAOQ,OAAO,EAAE,CAACC,QAAUA,MAAMF,SAAS,EAAEH,GAAG,CAAC,CAACK,QAAW,CAAA;YAClF,GAAGA,KAAK;YACRC,MAAMZ,QAAQW,MAAMC,IAAI,EAAE,CAACC,MAAQA,IAAIR,IAAI;QAC7C,CAAA;IAEA,MAAMS,QAAQd,QAAQE,OAAOY,KAAK,EAAE,CAACC,OAASA,KAAKV,IAAI,EAAEC,GAAG,CAAC,CAACS,OAAU,CAAA;YACtE,GAAGA,IAAI;YACPR,QAAQP,QACN,YAAYe,OAAQA,KAAKR,MAAM,GAA6B,EAAE,EAC9D,CAACC,QAAUA,MAAMC,SAAS;QAE9B,CAAA;IAEA,OAAO;QAACO,YAAYd,OAAOc,UAAU;QAAEb;QAAYO;QAASI;IAAK;AACnE"}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { createElement } from 'react';
|
|
3
|
-
import { afterEach, describe, expect, test, vi } from 'vitest';
|
|
4
|
-
import { resolveSchemaIcon } from '../resolveSchemaIcon.js';
|
|
5
|
-
const mockResolveLocalPackage = vi.hoisted(()=>vi.fn());
|
|
6
|
-
const mockResolveLocalPackageFrom = vi.hoisted(()=>vi.fn());
|
|
7
|
-
const mockResolveLocalPackagePath = vi.hoisted(()=>vi.fn());
|
|
8
|
-
vi.mock('@sanity/cli-core', async (importOriginal)=>{
|
|
9
|
-
const actual = await importOriginal();
|
|
10
|
-
return {
|
|
11
|
-
...actual,
|
|
12
|
-
resolveLocalPackage: mockResolveLocalPackage,
|
|
13
|
-
resolveLocalPackageFrom: mockResolveLocalPackageFrom,
|
|
14
|
-
resolveLocalPackagePath: mockResolveLocalPackagePath
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
const MockThemeProvider = ({ children })=>/*#__PURE__*/ _jsx(_Fragment, {
|
|
18
|
-
children: children
|
|
19
|
-
});
|
|
20
|
-
function setupMocks() {
|
|
21
|
-
const mockTheme = {
|
|
22
|
-
color: 'mock-theme'
|
|
23
|
-
};
|
|
24
|
-
const buildTheme = vi.fn().mockReturnValue(mockTheme);
|
|
25
|
-
const createDefaultIcon = vi.fn().mockReturnValue(/*#__PURE__*/ createElement('span', null, 'default'));
|
|
26
|
-
const fakeSanityUrl = new URL('file:///studio/project/node_modules/sanity/dist/index.js');
|
|
27
|
-
mockResolveLocalPackagePath.mockImplementation((pkg)=>{
|
|
28
|
-
if (pkg === 'sanity') return fakeSanityUrl;
|
|
29
|
-
throw new Error(`Unexpected resolveLocalPackagePath call: ${pkg}`);
|
|
30
|
-
});
|
|
31
|
-
mockResolveLocalPackageFrom.mockImplementation(async (pkg, parentUrl)=>{
|
|
32
|
-
if (parentUrl !== fakeSanityUrl) {
|
|
33
|
-
throw new Error(`Unexpected parent URL: ${parentUrl.href}`);
|
|
34
|
-
}
|
|
35
|
-
switch(pkg){
|
|
36
|
-
case '@sanity/ui':
|
|
37
|
-
{
|
|
38
|
-
return {
|
|
39
|
-
ThemeProvider: MockThemeProvider
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
case '@sanity/ui/theme':
|
|
43
|
-
{
|
|
44
|
-
return {
|
|
45
|
-
buildTheme
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
default:
|
|
49
|
-
{
|
|
50
|
-
throw new Error(`Unexpected resolveLocalPackageFrom call: ${pkg}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
mockResolveLocalPackage.mockImplementation(async (pkg)=>{
|
|
55
|
-
switch(pkg){
|
|
56
|
-
case 'sanity':
|
|
57
|
-
{
|
|
58
|
-
return {
|
|
59
|
-
createDefaultIcon
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
default:
|
|
63
|
-
{
|
|
64
|
-
throw new Error(`Unexpected resolveLocalPackage call: ${pkg}`);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
return {
|
|
69
|
-
buildTheme,
|
|
70
|
-
createDefaultIcon,
|
|
71
|
-
fakeSanityUrl,
|
|
72
|
-
mockTheme
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
describe('resolveSchemaIcon', ()=>{
|
|
76
|
-
const workDir = '/studio/project';
|
|
77
|
-
afterEach(()=>{
|
|
78
|
-
vi.clearAllMocks();
|
|
79
|
-
});
|
|
80
|
-
test('resolves @sanity/ui via sanity package location', async ()=>{
|
|
81
|
-
const { fakeSanityUrl } = setupMocks();
|
|
82
|
-
await resolveSchemaIcon({
|
|
83
|
-
title: 'Test',
|
|
84
|
-
workDir
|
|
85
|
-
});
|
|
86
|
-
expect(mockResolveLocalPackagePath).toHaveBeenCalledWith('sanity', workDir);
|
|
87
|
-
expect(mockResolveLocalPackageFrom).toHaveBeenCalledWith('@sanity/ui', fakeSanityUrl);
|
|
88
|
-
});
|
|
89
|
-
test('resolves @sanity/ui/theme via sanity package location', async ()=>{
|
|
90
|
-
const { fakeSanityUrl } = setupMocks();
|
|
91
|
-
await resolveSchemaIcon({
|
|
92
|
-
title: 'Test',
|
|
93
|
-
workDir
|
|
94
|
-
});
|
|
95
|
-
expect(mockResolveLocalPackageFrom).toHaveBeenCalledWith('@sanity/ui/theme', fakeSanityUrl);
|
|
96
|
-
});
|
|
97
|
-
test('resolves sanity from the studio workDir when no icon is provided', async ()=>{
|
|
98
|
-
setupMocks();
|
|
99
|
-
await resolveSchemaIcon({
|
|
100
|
-
title: 'Test',
|
|
101
|
-
workDir
|
|
102
|
-
});
|
|
103
|
-
expect(mockResolveLocalPackage).toHaveBeenCalledWith('sanity', workDir);
|
|
104
|
-
});
|
|
105
|
-
test('does not resolve sanity package when a valid component icon is provided', async ()=>{
|
|
106
|
-
setupMocks();
|
|
107
|
-
const CustomIcon = ()=>/*#__PURE__*/ _jsx("span", {
|
|
108
|
-
children: "custom"
|
|
109
|
-
});
|
|
110
|
-
await resolveSchemaIcon({
|
|
111
|
-
icon: CustomIcon,
|
|
112
|
-
title: 'Test',
|
|
113
|
-
workDir
|
|
114
|
-
});
|
|
115
|
-
expect(mockResolveLocalPackage).not.toHaveBeenCalledWith('sanity', workDir);
|
|
116
|
-
});
|
|
117
|
-
test('does not resolve sanity package when a React element icon is provided', async ()=>{
|
|
118
|
-
setupMocks();
|
|
119
|
-
const elementIcon = /*#__PURE__*/ createElement('svg', null, /*#__PURE__*/ createElement('path', {
|
|
120
|
-
d: 'M0 0'
|
|
121
|
-
}));
|
|
122
|
-
await resolveSchemaIcon({
|
|
123
|
-
icon: elementIcon,
|
|
124
|
-
title: 'Test',
|
|
125
|
-
workDir
|
|
126
|
-
});
|
|
127
|
-
expect(mockResolveLocalPackage).not.toHaveBeenCalledWith('sanity', workDir);
|
|
128
|
-
});
|
|
129
|
-
test('wraps output with the resolved ThemeProvider and built theme', async ()=>{
|
|
130
|
-
const { mockTheme } = setupMocks();
|
|
131
|
-
const result = await resolveSchemaIcon({
|
|
132
|
-
title: 'Test',
|
|
133
|
-
workDir
|
|
134
|
-
});
|
|
135
|
-
expect(result.type).toBe(MockThemeProvider);
|
|
136
|
-
expect(result.props).toHaveProperty('theme', mockTheme);
|
|
137
|
-
});
|
|
138
|
-
test('calls createDefaultIcon with title and subtitle when no icon is provided', async ()=>{
|
|
139
|
-
const { createDefaultIcon } = setupMocks();
|
|
140
|
-
await resolveSchemaIcon({
|
|
141
|
-
subtitle: 'document',
|
|
142
|
-
title: 'My Type',
|
|
143
|
-
workDir
|
|
144
|
-
});
|
|
145
|
-
expect(createDefaultIcon).toHaveBeenCalledWith('My Type', 'document');
|
|
146
|
-
});
|
|
147
|
-
test('passes empty string as subtitle default to createDefaultIcon', async ()=>{
|
|
148
|
-
const { createDefaultIcon } = setupMocks();
|
|
149
|
-
await resolveSchemaIcon({
|
|
150
|
-
title: 'My Type',
|
|
151
|
-
workDir
|
|
152
|
-
});
|
|
153
|
-
expect(createDefaultIcon).toHaveBeenCalledWith('My Type', '');
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
//# sourceMappingURL=resolveSchemaIcon.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/manifest/__tests__/resolveSchemaIcon.test.tsx"],"sourcesContent":["import {createElement, type ReactNode} from 'react'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {resolveSchemaIcon} from '../resolveSchemaIcon.js'\n\nconst mockResolveLocalPackage = vi.hoisted(() => vi.fn())\nconst mockResolveLocalPackageFrom = vi.hoisted(() => vi.fn())\nconst mockResolveLocalPackagePath = vi.hoisted(() => vi.fn())\n\nvi.mock('@sanity/cli-core', async (importOriginal) => {\n const actual = await importOriginal<typeof import('@sanity/cli-core')>()\n return {\n ...actual,\n resolveLocalPackage: mockResolveLocalPackage,\n resolveLocalPackageFrom: mockResolveLocalPackageFrom,\n resolveLocalPackagePath: mockResolveLocalPackagePath,\n }\n})\n\nconst MockThemeProvider = ({children}: {children: ReactNode}) => <>{children}</>\n\nfunction setupMocks() {\n const mockTheme = {color: 'mock-theme'}\n const buildTheme = vi.fn().mockReturnValue(mockTheme)\n const createDefaultIcon = vi.fn().mockReturnValue(createElement('span', null, 'default'))\n const fakeSanityUrl = new URL('file:///studio/project/node_modules/sanity/dist/index.js')\n\n mockResolveLocalPackagePath.mockImplementation((pkg: string) => {\n if (pkg === 'sanity') return fakeSanityUrl\n throw new Error(`Unexpected resolveLocalPackagePath call: ${pkg}`)\n })\n\n mockResolveLocalPackageFrom.mockImplementation(async (pkg: string, parentUrl: URL) => {\n if (parentUrl !== fakeSanityUrl) {\n throw new Error(`Unexpected parent URL: ${parentUrl.href}`)\n }\n switch (pkg) {\n case '@sanity/ui': {\n return {ThemeProvider: MockThemeProvider}\n }\n case '@sanity/ui/theme': {\n return {buildTheme}\n }\n default: {\n throw new Error(`Unexpected resolveLocalPackageFrom call: ${pkg}`)\n }\n }\n })\n\n mockResolveLocalPackage.mockImplementation(async (pkg: string) => {\n switch (pkg) {\n case 'sanity': {\n return {createDefaultIcon}\n }\n default: {\n throw new Error(`Unexpected resolveLocalPackage call: ${pkg}`)\n }\n }\n })\n\n return {buildTheme, createDefaultIcon, fakeSanityUrl, mockTheme}\n}\n\ndescribe('resolveSchemaIcon', () => {\n const workDir = '/studio/project'\n\n afterEach(() => {\n vi.clearAllMocks()\n })\n\n test('resolves @sanity/ui via sanity package location', async () => {\n const {fakeSanityUrl} = setupMocks()\n\n await resolveSchemaIcon({title: 'Test', workDir})\n\n expect(mockResolveLocalPackagePath).toHaveBeenCalledWith('sanity', workDir)\n expect(mockResolveLocalPackageFrom).toHaveBeenCalledWith('@sanity/ui', fakeSanityUrl)\n })\n\n test('resolves @sanity/ui/theme via sanity package location', async () => {\n const {fakeSanityUrl} = setupMocks()\n\n await resolveSchemaIcon({title: 'Test', workDir})\n\n expect(mockResolveLocalPackageFrom).toHaveBeenCalledWith('@sanity/ui/theme', fakeSanityUrl)\n })\n\n test('resolves sanity from the studio workDir when no icon is provided', async () => {\n setupMocks()\n\n await resolveSchemaIcon({title: 'Test', workDir})\n\n expect(mockResolveLocalPackage).toHaveBeenCalledWith('sanity', workDir)\n })\n\n test('does not resolve sanity package when a valid component icon is provided', async () => {\n setupMocks()\n const CustomIcon = () => <span>custom</span>\n\n await resolveSchemaIcon({icon: CustomIcon, title: 'Test', workDir})\n\n expect(mockResolveLocalPackage).not.toHaveBeenCalledWith('sanity', workDir)\n })\n\n test('does not resolve sanity package when a React element icon is provided', async () => {\n setupMocks()\n const elementIcon = createElement('svg', null, createElement('path', {d: 'M0 0'}))\n\n await resolveSchemaIcon({icon: elementIcon, title: 'Test', workDir})\n\n expect(mockResolveLocalPackage).not.toHaveBeenCalledWith('sanity', workDir)\n })\n\n test('wraps output with the resolved ThemeProvider and built theme', async () => {\n const {mockTheme} = setupMocks()\n\n const result = await resolveSchemaIcon({title: 'Test', workDir})\n\n expect(result.type).toBe(MockThemeProvider)\n expect(result.props).toHaveProperty('theme', mockTheme)\n })\n\n test('calls createDefaultIcon with title and subtitle when no icon is provided', async () => {\n const {createDefaultIcon} = setupMocks()\n\n await resolveSchemaIcon({subtitle: 'document', title: 'My Type', workDir})\n\n expect(createDefaultIcon).toHaveBeenCalledWith('My Type', 'document')\n })\n\n test('passes empty string as subtitle default to createDefaultIcon', async () => {\n const {createDefaultIcon} = setupMocks()\n\n await resolveSchemaIcon({title: 'My Type', workDir})\n\n expect(createDefaultIcon).toHaveBeenCalledWith('My Type', '')\n })\n})\n"],"names":["createElement","afterEach","describe","expect","test","vi","resolveSchemaIcon","mockResolveLocalPackage","hoisted","fn","mockResolveLocalPackageFrom","mockResolveLocalPackagePath","mock","importOriginal","actual","resolveLocalPackage","resolveLocalPackageFrom","resolveLocalPackagePath","MockThemeProvider","children","setupMocks","mockTheme","color","buildTheme","mockReturnValue","createDefaultIcon","fakeSanityUrl","URL","mockImplementation","pkg","Error","parentUrl","href","ThemeProvider","workDir","clearAllMocks","title","toHaveBeenCalledWith","CustomIcon","span","icon","not","elementIcon","d","result","type","toBe","props","toHaveProperty","subtitle"],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
/**
|
|
4
|
-
* A very naive mock Sanity Client implementation that caters to this exact use case.
|
|
5
|
-
*/ export function createMockClient() {
|
|
6
|
-
const transactions = {};
|
|
7
|
-
const mockClient = {
|
|
8
|
-
observable: {
|
|
9
|
-
transaction () {
|
|
10
|
-
const transactionId = randomUUID();
|
|
11
|
-
const operations = [];
|
|
12
|
-
transactions[transactionId] = operations;
|
|
13
|
-
return {
|
|
14
|
-
commit: ()=>of([]),
|
|
15
|
-
patch (documentId, operation) {
|
|
16
|
-
operations.push({
|
|
17
|
-
documentId,
|
|
18
|
-
operation
|
|
19
|
-
});
|
|
20
|
-
return this;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
return {
|
|
27
|
-
client: mockClient,
|
|
28
|
-
transactions
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=createMockClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/media/__tests__/createMockClient.ts"],"sourcesContent":["import {randomUUID} from 'node:crypto'\n\nimport {type PatchOperations, type SanityClient} from '@sanity/client'\nimport {of} from 'rxjs'\n\n/**\n * A very naive mock Sanity Client implementation that caters to this exact use case.\n */\nexport function createMockClient(): {\n client: SanityClient\n transactions: Record<string, {documentId: string; operation: PatchOperations}[]>\n} {\n const transactions: Record<string, {documentId: string; operation: PatchOperations}[]> = {}\n\n const mockClient = {\n observable: {\n transaction() {\n const transactionId = randomUUID()\n const operations: {documentId: string; operation: PatchOperations}[] = []\n transactions[transactionId] = operations\n\n return {\n commit: () => of([]),\n patch(documentId: string, operation: PatchOperations) {\n operations.push({documentId, operation})\n return this\n },\n }\n },\n },\n } as unknown as SanityClient\n\n return {\n client: mockClient,\n transactions,\n }\n}\n"],"names":["randomUUID","of","createMockClient","transactions","mockClient","observable","transaction","transactionId","operations","commit","patch","documentId","operation","push","client"],"mappings":"AAAA,SAAQA,UAAU,QAAO,cAAa;AAGtC,SAAQC,EAAE,QAAO,OAAM;AAEvB;;CAEC,GACD,OAAO,SAASC;IAId,MAAMC,eAAmF,CAAC;IAE1F,MAAMC,aAAa;QACjBC,YAAY;YACVC;gBACE,MAAMC,gBAAgBP;gBACtB,MAAMQ,aAAiE,EAAE;gBACzEL,YAAY,CAACI,cAAc,GAAGC;gBAE9B,OAAO;oBACLC,QAAQ,IAAMR,GAAG,EAAE;oBACnBS,OAAMC,UAAkB,EAAEC,SAA0B;wBAClDJ,WAAWK,IAAI,CAAC;4BAACF;4BAAYC;wBAAS;wBACtC,OAAO,IAAI;oBACb;gBACF;YACF;QACF;IACF;IAEA,OAAO;QACLE,QAAQV;QACRD;IACF;AACF"}
|