@sanity/cli 8.20.0 → 8.22.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.
Files changed (85) hide show
  1. package/README.md +106 -47
  2. package/codemods/dashboard.js +111 -0
  3. package/dist/actions/build/buildApp.js +1 -1
  4. package/dist/actions/build/buildApp.js.map +1 -1
  5. package/dist/actions/build/buildStudio.js +1 -1
  6. package/dist/actions/build/buildStudio.js.map +1 -1
  7. package/dist/actions/codemods/dashboard.js +113 -0
  8. package/dist/actions/codemods/dashboard.js.map +1 -0
  9. package/dist/actions/codemods/index.js +2 -0
  10. package/dist/actions/codemods/index.js.map +1 -1
  11. package/dist/actions/codemods/types.js.map +1 -1
  12. package/dist/actions/deploy/deployApp.js +13 -6
  13. package/dist/actions/deploy/deployApp.js.map +1 -1
  14. package/dist/actions/deploy/deployChecks.js +12 -7
  15. package/dist/actions/deploy/deployChecks.js.map +1 -1
  16. package/dist/actions/deploy/deployRunner.js +14 -8
  17. package/dist/actions/deploy/deployRunner.js.map +1 -1
  18. package/dist/actions/deploy/deployStudio.js +39 -4
  19. package/dist/actions/deploy/deployStudio.js.map +1 -1
  20. package/dist/actions/deploy/resolveDeployTarget.js +7 -6
  21. package/dist/actions/deploy/resolveDeployTarget.js.map +1 -1
  22. package/dist/actions/init/project/promptForAppTemplateSetup.js +22 -0
  23. package/dist/actions/init/project/promptForAppTemplateSetup.js.map +1 -1
  24. package/dist/actions/schema/listSchemas.js +2 -3
  25. package/dist/actions/schema/listSchemas.js.map +1 -1
  26. package/dist/actions/tokens/formatTokenAccess.js +18 -0
  27. package/dist/actions/tokens/formatTokenAccess.js.map +1 -0
  28. package/dist/actions/tokens/grants.js +12 -0
  29. package/dist/actions/tokens/grants.js.map +1 -1
  30. package/dist/actions/tokens/types.js.map +1 -1
  31. package/dist/actions/typegen/generateResourceTypes.js +11 -8
  32. package/dist/actions/typegen/generateResourceTypes.js.map +1 -1
  33. package/dist/actions/typegen/watchResourceTypes.js +208 -0
  34. package/dist/actions/typegen/watchResourceTypes.js.map +1 -0
  35. package/dist/actions/undeploy/runUndeploy.js +14 -8
  36. package/dist/actions/undeploy/runUndeploy.js.map +1 -1
  37. package/dist/commands/codemod.js +15 -4
  38. package/dist/commands/codemod.js.map +1 -1
  39. package/dist/commands/context/get.js +3 -8
  40. package/dist/commands/context/get.js.map +1 -1
  41. package/dist/commands/context/imports/download.js +3 -8
  42. package/dist/commands/context/imports/download.js.map +1 -1
  43. package/dist/commands/context/imports/get.js +3 -8
  44. package/dist/commands/context/imports/get.js.map +1 -1
  45. package/dist/commands/context/imports/list.js +3 -8
  46. package/dist/commands/context/imports/list.js.map +1 -1
  47. package/dist/commands/context/jobs/get.js +8 -8
  48. package/dist/commands/context/jobs/get.js.map +1 -1
  49. package/dist/commands/context/list.js +2 -6
  50. package/dist/commands/context/list.js.map +1 -1
  51. package/dist/commands/deploy.js +1 -0
  52. package/dist/commands/deploy.js.map +1 -1
  53. package/dist/commands/doctor.js +2 -1
  54. package/dist/commands/doctor.js.map +1 -1
  55. package/dist/commands/openapi/list.js +2 -4
  56. package/dist/commands/openapi/list.js.map +1 -1
  57. package/dist/commands/projects/create.js +3 -6
  58. package/dist/commands/projects/create.js.map +1 -1
  59. package/dist/commands/schemas/list.js +1 -3
  60. package/dist/commands/schemas/list.js.map +1 -1
  61. package/dist/commands/tokens/create.js +2 -5
  62. package/dist/commands/tokens/create.js.map +1 -1
  63. package/dist/commands/tokens/delete.js +38 -30
  64. package/dist/commands/tokens/delete.js.map +1 -1
  65. package/dist/commands/tokens/list.js +27 -25
  66. package/dist/commands/tokens/list.js.map +1 -1
  67. package/dist/commands/tokens/rotate.js +2 -5
  68. package/dist/commands/tokens/rotate.js.map +1 -1
  69. package/dist/commands/typegen/generate.js +83 -45
  70. package/dist/commands/typegen/generate.js.map +1 -1
  71. package/dist/commands/undeploy.js +1 -0
  72. package/dist/commands/undeploy.js.map +1 -1
  73. package/dist/commands/whoami.js +5 -11
  74. package/dist/commands/whoami.js.map +1 -1
  75. package/dist/exports/invokeSanityCli/index.js +26 -6
  76. package/dist/exports/invokeSanityCli/index.js.map +1 -1
  77. package/dist/generated/apiRoutes.js +11 -26
  78. package/dist/generated/apiRoutes.js.map +1 -1
  79. package/dist/services/tokens.js +32 -22
  80. package/dist/services/tokens.js.map +1 -1
  81. package/dist/telemetry/init.telemetry.js.map +1 -1
  82. package/dist/util/resolveTokenScope.js +24 -0
  83. package/dist/util/resolveTokenScope.js.map +1 -0
  84. package/oclif.manifest.json +2027 -1964
  85. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/telemetry/init.telemetry.ts"],"sourcesContent":["import {defineTrace} from '@sanity/telemetry'\n\nimport {type EditorName} from '../actions/mcp/editorConfigs.js'\n\ninterface StartStep {\n flags: Record<string, boolean | number | string | undefined>\n step: 'start'\n}\n\ninterface LoginStep {\n step: 'login'\n\n alreadyLoggedIn?: boolean\n}\n\ninterface FetchJourneyConfigStep {\n datasetName: string\n displayName: string\n isFirstProject: boolean\n projectId: string\n step: 'fetchJourneyConfig'\n}\n\ninterface CreateOrSelectProjectStep {\n projectId: string\n selectedOption: 'create' | 'none' | 'select'\n step: 'createOrSelectProject'\n}\n\ninterface CreateOrSelectDatasetStep {\n datasetName: string\n selectedOption: 'create' | 'none' | 'select'\n step: 'createOrSelectDataset'\n\n visibility?: 'private' | 'public'\n}\n\ninterface UseDefaultPlanCoupon {\n selectedOption: 'no' | 'yes'\n step: 'useDefaultPlanCoupon'\n\n coupon?: string\n}\n\ninterface UseDefaultPlanId {\n selectedOption: 'no' | 'yes'\n step: 'useDefaultPlanId'\n\n planId?: string\n}\n\ninterface UseDetectedFrameworkStep {\n selectedOption: 'no' | 'yes'\n step: 'useDetectedFramework'\n\n detectedFramework?: string\n}\n\ninterface UseTypeScriptStep {\n selectedOption: 'no' | 'yes'\n step: 'useTypeScript'\n}\n\ninterface SelectTemplateStep {\n selectedOption: string\n step: 'selectProjectTemplate'\n}\ninterface ImportTemplateDatasetStep {\n selectedOption: 'no' | 'yes'\n step: 'importTemplateDataset'\n}\n\ninterface SendCommunityInviteStep {\n selectedOption: 'no' | 'yes'\n step: 'sendCommunityInvite'\n}\n\ninterface SelectPackageManagerStep {\n selectedOption: string\n step: 'selectPackageManager'\n}\n\ninterface MCPSetupStep {\n configuredEditors: EditorName[]\n detectedEditors: EditorName[]\n skipped: boolean\n step: 'mcpSetup'\n}\n\ninterface SkillsSetupStep {\n /** `--agent` values that received the Sanity skills bundle */\n installedAgents: string[]\n skipped: boolean\n step: 'skillsSetup'\n}\n\ninterface ConfigureAppProjectStep {\n selectedOption: 'create' | 'existing' | 'skip'\n step: 'configureAppProject'\n}\n\nexport type InitStepResult =\n | ConfigureAppProjectStep\n | CreateOrSelectDatasetStep\n | CreateOrSelectProjectStep\n | FetchJourneyConfigStep\n | ImportTemplateDatasetStep\n | LoginStep\n | MCPSetupStep\n | SelectPackageManagerStep\n | SelectTemplateStep\n | SendCommunityInviteStep\n | SkillsSetupStep\n | StartStep\n | UseDefaultPlanCoupon\n | UseDefaultPlanId\n | UseDetectedFrameworkStep\n | UseTypeScriptStep\n\nexport const CLIInitStepCompleted = defineTrace<InitStepResult>({\n description: 'User completed a step in the CLI init flow',\n name: 'CLI Init Step Completed',\n version: 1,\n})\n"],"names":["defineTrace","CLIInitStepCompleted","description","name","version"],"mappings":"AAAA,SAAQA,WAAW,QAAO,oBAAmB;AAuH7C,OAAO,MAAMC,uBAAuBD,YAA4B;IAC9DE,aAAa;IACbC,MAAM;IACNC,SAAS;AACX,GAAE"}
1
+ {"version":3,"sources":["../../src/telemetry/init.telemetry.ts"],"sourcesContent":["import {defineTrace} from '@sanity/telemetry'\n\nimport {type EditorName} from '../actions/mcp/editorConfigs.js'\n\ninterface StartStep {\n flags: Record<string, boolean | number | string | undefined>\n step: 'start'\n}\n\ninterface LoginStep {\n step: 'login'\n\n alreadyLoggedIn?: boolean\n}\n\ninterface FetchJourneyConfigStep {\n datasetName: string\n displayName: string\n isFirstProject: boolean\n projectId: string\n step: 'fetchJourneyConfig'\n}\n\ninterface CreateOrSelectProjectStep {\n projectId: string\n selectedOption: 'create' | 'none' | 'select'\n step: 'createOrSelectProject'\n}\n\ninterface CreateOrSelectDatasetStep {\n datasetName: string\n selectedOption: 'create' | 'none' | 'select' | 'skip'\n step: 'createOrSelectDataset'\n\n visibility?: 'private' | 'public'\n}\n\ninterface UseDefaultPlanCoupon {\n selectedOption: 'no' | 'yes'\n step: 'useDefaultPlanCoupon'\n\n coupon?: string\n}\n\ninterface UseDefaultPlanId {\n selectedOption: 'no' | 'yes'\n step: 'useDefaultPlanId'\n\n planId?: string\n}\n\ninterface UseDetectedFrameworkStep {\n selectedOption: 'no' | 'yes'\n step: 'useDetectedFramework'\n\n detectedFramework?: string\n}\n\ninterface UseTypeScriptStep {\n selectedOption: 'no' | 'yes'\n step: 'useTypeScript'\n}\n\ninterface SelectTemplateStep {\n selectedOption: string\n step: 'selectProjectTemplate'\n}\ninterface ImportTemplateDatasetStep {\n selectedOption: 'no' | 'yes'\n step: 'importTemplateDataset'\n}\n\ninterface SendCommunityInviteStep {\n selectedOption: 'no' | 'yes'\n step: 'sendCommunityInvite'\n}\n\ninterface SelectPackageManagerStep {\n selectedOption: string\n step: 'selectPackageManager'\n}\n\ninterface MCPSetupStep {\n configuredEditors: EditorName[]\n detectedEditors: EditorName[]\n skipped: boolean\n step: 'mcpSetup'\n}\n\ninterface SkillsSetupStep {\n /** `--agent` values that received the Sanity skills bundle */\n installedAgents: string[]\n skipped: boolean\n step: 'skillsSetup'\n}\n\ninterface ConfigureAppProjectStep {\n selectedOption: 'create' | 'existing' | 'skip'\n step: 'configureAppProject'\n}\n\nexport type InitStepResult =\n | ConfigureAppProjectStep\n | CreateOrSelectDatasetStep\n | CreateOrSelectProjectStep\n | FetchJourneyConfigStep\n | ImportTemplateDatasetStep\n | LoginStep\n | MCPSetupStep\n | SelectPackageManagerStep\n | SelectTemplateStep\n | SendCommunityInviteStep\n | SkillsSetupStep\n | StartStep\n | UseDefaultPlanCoupon\n | UseDefaultPlanId\n | UseDetectedFrameworkStep\n | UseTypeScriptStep\n\nexport const CLIInitStepCompleted = defineTrace<InitStepResult>({\n description: 'User completed a step in the CLI init flow',\n name: 'CLI Init Step Completed',\n version: 1,\n})\n"],"names":["defineTrace","CLIInitStepCompleted","description","name","version"],"mappings":"AAAA,SAAQA,WAAW,QAAO,oBAAmB;AAuH7C,OAAO,MAAMC,uBAAuBD,YAA4B;IAC9DE,aAAa;IACbC,MAAM;IACNC,SAAS;AACX,GAAE"}
@@ -0,0 +1,24 @@
1
+ import { promptForProject } from '../prompts/promptForProject.js';
2
+ export async function resolveTokenScope(options) {
3
+ const { getProjectId, grant, organization } = options;
4
+ if (organization) return {
5
+ resourceId: organization,
6
+ resourceType: 'organization'
7
+ };
8
+ const projectId = await getProjectId({
9
+ fallback: ()=>promptForProject({
10
+ requiredPermissions: [
11
+ {
12
+ grant,
13
+ permission: 'sanity.project.tokens'
14
+ }
15
+ ]
16
+ })
17
+ });
18
+ return {
19
+ resourceId: projectId,
20
+ resourceType: 'project'
21
+ };
22
+ }
23
+
24
+ //# sourceMappingURL=resolveTokenScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/resolveTokenScope.ts"],"sourcesContent":["import {type SanityCommandInterface} from '@sanity/cli-core'\n\nimport {type TokenScope} from '../actions/tokens/types.js'\nimport {promptForProject} from '../prompts/promptForProject.js'\n\nexport async function resolveTokenScope(options: {\n getProjectId: SanityCommandInterface['getProjectId']\n grant: 'delete' | 'read'\n organization?: string\n}): Promise<TokenScope> {\n const {getProjectId, grant, organization} = options\n if (organization) return {resourceId: organization, resourceType: 'organization'}\n\n const projectId = await getProjectId({\n fallback: () =>\n promptForProject({requiredPermissions: [{grant, permission: 'sanity.project.tokens'}]}),\n })\n return {resourceId: projectId, resourceType: 'project'}\n}\n"],"names":["promptForProject","resolveTokenScope","options","getProjectId","grant","organization","resourceId","resourceType","projectId","fallback","requiredPermissions","permission"],"mappings":"AAGA,SAAQA,gBAAgB,QAAO,iCAAgC;AAE/D,OAAO,eAAeC,kBAAkBC,OAIvC;IACC,MAAM,EAACC,YAAY,EAAEC,KAAK,EAAEC,YAAY,EAAC,GAAGH;IAC5C,IAAIG,cAAc,OAAO;QAACC,YAAYD;QAAcE,cAAc;IAAc;IAEhF,MAAMC,YAAY,MAAML,aAAa;QACnCM,UAAU,IACRT,iBAAiB;gBAACU,qBAAqB;oBAAC;wBAACN;wBAAOO,YAAY;oBAAuB;iBAAE;YAAA;IACzF;IACA,OAAO;QAACL,YAAYE;QAAWD,cAAc;IAAS;AACxD"}