@sanity/cli 6.4.0 → 6.5.1

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 (116) hide show
  1. package/README.md +201 -103
  2. package/dist/actions/build/buildApp.js +46 -17
  3. package/dist/actions/build/buildApp.js.map +1 -1
  4. package/dist/actions/build/buildStaticFiles.js +3 -1
  5. package/dist/actions/build/buildStaticFiles.js.map +1 -1
  6. package/dist/actions/build/buildStudio.js +80 -30
  7. package/dist/actions/build/buildStudio.js.map +1 -1
  8. package/dist/actions/build/buildVendorDependencies.js +10 -9
  9. package/dist/actions/build/buildVendorDependencies.js.map +1 -1
  10. package/dist/actions/build/checkRequiredDependencies.js +6 -9
  11. package/dist/actions/build/checkRequiredDependencies.js.map +1 -1
  12. package/dist/actions/build/checkStudioDependencyVersions.js +10 -11
  13. package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -1
  14. package/dist/actions/build/getAutoUpdatesImportMap.js +9 -0
  15. package/dist/actions/build/getAutoUpdatesImportMap.js.map +1 -1
  16. package/dist/actions/build/getViteConfig.js +4 -2
  17. package/dist/actions/build/getViteConfig.js.map +1 -1
  18. package/dist/actions/build/renderDocument.js.map +1 -1
  19. package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js +34 -14
  20. package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js.map +1 -1
  21. package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js +2 -2
  22. package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js.map +1 -1
  23. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +2 -2
  24. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -1
  25. package/dist/actions/codemods/reactIconsV3.js +3 -3
  26. package/dist/actions/codemods/reactIconsV3.js.map +1 -1
  27. package/dist/actions/deploy/deployApp.js +1 -1
  28. package/dist/actions/deploy/deployApp.js.map +1 -1
  29. package/dist/actions/deploy/deployStudio.js +1 -2
  30. package/dist/actions/deploy/deployStudio.js.map +1 -1
  31. package/dist/actions/dev/startStudioDevServer.js +3 -4
  32. package/dist/actions/dev/startStudioDevServer.js.map +1 -1
  33. package/dist/actions/doctor/types.js.map +1 -1
  34. package/dist/actions/graphql/resolveGraphQLApisFromWorkspaces.js.map +1 -1
  35. package/dist/actions/init/bootstrapTemplate.js.map +1 -1
  36. package/dist/actions/init/checkNextJsReactCompatibility.js +3 -3
  37. package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -1
  38. package/dist/actions/init/initAction.js +287 -0
  39. package/dist/actions/init/initAction.js.map +1 -0
  40. package/dist/actions/init/initApp.js +7 -16
  41. package/dist/actions/init/initApp.js.map +1 -1
  42. package/dist/actions/init/initError.js +10 -0
  43. package/dist/actions/init/initError.js.map +1 -0
  44. package/dist/actions/init/initHelpers.js +3 -12
  45. package/dist/actions/init/initHelpers.js.map +1 -1
  46. package/dist/actions/init/initNextJs.js +17 -20
  47. package/dist/actions/init/initNextJs.js.map +1 -1
  48. package/dist/actions/init/initStudio.js +11 -20
  49. package/dist/actions/init/initStudio.js.map +1 -1
  50. package/dist/actions/init/plan/getPlan.js +15 -0
  51. package/dist/actions/init/plan/getPlan.js.map +1 -0
  52. package/dist/actions/init/plan/verifyCoupon.js +35 -0
  53. package/dist/actions/init/plan/verifyCoupon.js.map +1 -0
  54. package/dist/actions/init/plan/verifyPlan.js +34 -0
  55. package/dist/actions/init/plan/verifyPlan.js.map +1 -0
  56. package/dist/actions/init/project/createProjectFromName.js +44 -0
  57. package/dist/actions/init/project/createProjectFromName.js.map +1 -0
  58. package/dist/actions/init/project/getOrCreateDataset.js +126 -0
  59. package/dist/actions/init/project/getOrCreateDataset.js.map +1 -0
  60. package/dist/actions/init/project/getOrCreateProject.js +128 -0
  61. package/dist/actions/init/project/getOrCreateProject.js.map +1 -0
  62. package/dist/actions/init/project/getProjectDetails.js +87 -0
  63. package/dist/actions/init/project/getProjectDetails.js.map +1 -0
  64. package/dist/actions/init/project/getProjectOutputPath.js +17 -0
  65. package/dist/actions/init/project/getProjectOutputPath.js.map +1 -0
  66. package/dist/actions/init/project/promptForAppTemplateSetup.js +112 -0
  67. package/dist/actions/init/project/promptForAppTemplateSetup.js.map +1 -0
  68. package/dist/actions/init/project/promptForProjectCreation.js +40 -0
  69. package/dist/actions/init/project/promptForProjectCreation.js.map +1 -0
  70. package/dist/actions/init/project/promptUserForNewOrganization.js +12 -0
  71. package/dist/actions/init/project/promptUserForNewOrganization.js.map +1 -0
  72. package/dist/actions/init/project/promptUserForOrganization.js +38 -0
  73. package/dist/actions/init/project/promptUserForOrganization.js.map +1 -0
  74. package/dist/actions/init/scaffoldTemplate.js +23 -29
  75. package/dist/actions/init/scaffoldTemplate.js.map +1 -1
  76. package/dist/actions/init/types.js +47 -1
  77. package/dist/actions/init/types.js.map +1 -1
  78. package/dist/actions/manifest/extractAppManifest.js +3 -2
  79. package/dist/actions/manifest/extractAppManifest.js.map +1 -1
  80. package/dist/actions/manifest/types.js +9 -1
  81. package/dist/actions/manifest/types.js.map +1 -1
  82. package/dist/actions/manifest/writeManifestFile.js +1 -2
  83. package/dist/actions/manifest/writeManifestFile.js.map +1 -1
  84. package/dist/actions/schema/uploadSchemaToLexicon.js +1 -2
  85. package/dist/actions/schema/uploadSchemaToLexicon.js.map +1 -1
  86. package/dist/actions/versions/buildPackageArray.js +3 -3
  87. package/dist/actions/versions/buildPackageArray.js.map +1 -1
  88. package/dist/actions/versions/findSanityModulesVersions.js +3 -3
  89. package/dist/actions/versions/findSanityModulesVersions.js.map +1 -1
  90. package/dist/commands/datasets/copy.js.map +1 -1
  91. package/dist/commands/init.js +11 -911
  92. package/dist/commands/init.js.map +1 -1
  93. package/dist/constants.js +8 -0
  94. package/dist/constants.js.map +1 -0
  95. package/dist/server/previewServer.js +1 -1
  96. package/dist/server/previewServer.js.map +1 -1
  97. package/dist/server/vite/plugin-sanity-build-entries.js +2 -1
  98. package/dist/server/vite/plugin-sanity-build-entries.js.map +1 -1
  99. package/dist/services/datasets.js.map +1 -1
  100. package/dist/services/userApplications.js.map +1 -1
  101. package/dist/telemetry/init.telemetry.js.map +1 -1
  102. package/dist/util/compareDependencyVersions.js +5 -6
  103. package/dist/util/compareDependencyVersions.js.map +1 -1
  104. package/dist/util/createExpiringConfig.js +1 -1
  105. package/dist/util/createExpiringConfig.js.map +1 -1
  106. package/dist/util/packageManager/installationInfo/analyzeIssues.js +7 -7
  107. package/dist/util/packageManager/installationInfo/analyzeIssues.js.map +1 -1
  108. package/dist/util/packageManager/installationInfo/types.js.map +1 -1
  109. package/dist/util/packageManager/packageManagerChoice.js +2 -2
  110. package/dist/util/packageManager/packageManagerChoice.js.map +1 -1
  111. package/dist/util/packageManager/preferredPm.js +106 -0
  112. package/dist/util/packageManager/preferredPm.js.map +1 -0
  113. package/oclif.manifest.json +526 -526
  114. package/package.json +27 -26
  115. package/dist/util/getLocalPackageVersion.js +0 -55
  116. package/dist/util/getLocalPackageVersion.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/cli",
3
- "version": "6.4.0",
3
+ "version": "6.5.1",
4
4
  "description": "Sanity CLI tool for managing Sanity projects and organizations",
5
5
  "keywords": [
6
6
  "cli",
@@ -52,22 +52,22 @@
52
52
  "access": "public"
53
53
  },
54
54
  "dependencies": {
55
- "@oclif/core": "^4.10.5",
56
- "@oclif/plugin-help": "^6.2.44",
57
- "@oclif/plugin-not-found": "^3.2.80",
58
- "@sanity/client": "^7.21.0",
59
- "@sanity/codegen": "^6.0.2",
55
+ "@oclif/core": "^4.10.6",
56
+ "@oclif/plugin-help": "^6.2.45",
57
+ "@oclif/plugin-not-found": "^3.2.81",
58
+ "@sanity/client": "^7.22.0",
59
+ "@sanity/codegen": "^6.0.3",
60
60
  "@sanity/descriptors": "^1.3.0",
61
61
  "@sanity/export": "^6.1.0",
62
62
  "@sanity/generate-help-url": "^4.0.0",
63
63
  "@sanity/id-utils": "^1.0.0",
64
64
  "@sanity/import": "^6.0.1",
65
- "@sanity/migrate": "^6.1.1",
66
- "@sanity/runtime-cli": "^14.12.0",
67
- "@sanity/schema": "^5.20.0",
65
+ "@sanity/migrate": "^6.1.2",
66
+ "@sanity/runtime-cli": "^15.0.2",
67
+ "@sanity/schema": "^5.23.0",
68
68
  "@sanity/telemetry": "^0.9.0",
69
69
  "@sanity/template-validator": "^3.1.0",
70
- "@sanity/types": "^5.20.0",
70
+ "@sanity/types": "^5.23.0",
71
71
  "@sanity/ui": "^3.1.14",
72
72
  "@sanity/worker-channels": "^2.0.0",
73
73
  "@vercel/frameworks": "3.21.1",
@@ -81,7 +81,7 @@
81
81
  "execa": "^9.6.0",
82
82
  "form-data": "^4.0.5",
83
83
  "get-latest-version": "^6.0.1",
84
- "groq-js": "^1.29.0",
84
+ "groq-js": "^1.30.1",
85
85
  "gunzip-maybe": "^1.4.2",
86
86
  "import-meta-resolve": "^4.2.0",
87
87
  "is-installed-globally": "^1.0.0",
@@ -99,7 +99,6 @@
99
99
  "peek-stream": "^1.1.3",
100
100
  "picomatch": "^4.0.4",
101
101
  "pluralize-esm": "^9.0.5",
102
- "preferred-pm": "^5.0.0",
103
102
  "pretty-ms": "^9.3.0",
104
103
  "promise-props-recursive": "^2.0.2",
105
104
  "react": "^19.2.4",
@@ -117,21 +116,22 @@
117
116
  "typeid-js": "^1.2.0",
118
117
  "vite": "^7.3.2",
119
118
  "which": "^6.0.1",
120
- "yaml": "^2.8.3",
119
+ "yaml": "^2.8.4",
121
120
  "zod": "^4.3.6",
122
- "@sanity/cli-core": "^1.3.1"
121
+ "@sanity/cli-core": "^1.3.2"
123
122
  },
124
123
  "devDependencies": {
125
- "@eslint/compat": "^2.0.3",
126
- "@sanity/pkg-utils": "^10.4.14",
124
+ "@eslint/compat": "^2.0.5",
125
+ "@sanity/pkg-utils": "^10.4.18",
127
126
  "@swc/cli": "^0.8.1",
128
- "@swc/core": "^1.15.26",
127
+ "@swc/core": "^1.15.33",
129
128
  "@types/debug": "^4.1.13",
130
129
  "@types/gunzip-maybe": "^1.4.3",
130
+ "@types/jsdom": "^28.0.1",
131
131
  "@types/lodash-es": "^4.17.12",
132
132
  "@types/minimist": "^1.2.5",
133
133
  "@types/node": "^20.19.39",
134
- "@types/picomatch": "^4.0.2",
134
+ "@types/picomatch": "^4.0.3",
135
135
  "@types/react": "^19.2.14",
136
136
  "@types/react-dom": "^19.2.3",
137
137
  "@types/react-is": "^19.2.0",
@@ -139,21 +139,22 @@
139
139
  "@types/tar-fs": "^2.0.4",
140
140
  "@types/tar-stream": "^3.1.4",
141
141
  "@types/which": "^3.0.4",
142
- "@vitest/coverage-istanbul": "^4.1.4",
142
+ "@vitest/coverage-istanbul": "^4.1.5",
143
143
  "babel-plugin-react-compiler": "^1.0.0",
144
- "eslint": "^10.1.0",
145
- "nock": "^14.0.12",
144
+ "eslint": "^10.2.1",
145
+ "jsdom": "^29.0.2",
146
+ "nock": "^14.0.14",
146
147
  "oclif": "^4.23.0",
147
148
  "publint": "^0.3.18",
148
149
  "rimraf": "^6.0.1",
149
- "sanity": "^5.20.0",
150
+ "sanity": "^5.23.0",
150
151
  "typescript": "^5.9.3",
151
152
  "vite-tsconfig-paths": "^6.1.1",
152
- "vitest": "^4.1.4",
153
- "@repo/package.config": "0.0.1",
154
- "@sanity/cli-test": "0.3.1",
153
+ "vitest": "^4.1.5",
155
154
  "@repo/tsconfig": "3.70.0",
156
- "@sanity/eslint-config-cli": "1.1.0"
155
+ "@repo/package.config": "0.0.1",
156
+ "@sanity/cli-test": "0.3.3",
157
+ "@sanity/eslint-config-cli": "1.1.1"
157
158
  },
158
159
  "engines": {
159
160
  "node": ">=20.19.1 <22 || >=22.12"
@@ -1,55 +0,0 @@
1
- import { dirname, join, normalize, resolve } from 'node:path';
2
- import { fileURLToPath, pathToFileURL } from 'node:url';
3
- import { readPackageJson } from '@sanity/cli-core';
4
- import { moduleResolve } from 'import-meta-resolve';
5
- /**
6
- * Get the version of a package installed locally.
7
- *
8
- * @param moduleName - The name of the package in npm.
9
- * @param workDir - The working directory to resolve the module from. (aka project root)
10
- * @returns The version of the package installed locally.
11
- * @internal
12
- */ export async function getLocalPackageVersion(moduleName, workDir) {
13
- try {
14
- const packageDir = getLocalPackageDir(moduleName, workDir);
15
- return (await readPackageJson(join(packageDir, 'package.json'))).version;
16
- } catch {
17
- return null;
18
- }
19
- }
20
- /**
21
- * Resolve the filesystem directory of a locally installed package using Node
22
- * module resolution. Works correctly with hoisted packages in monorepos/workspaces,
23
- * pnpm symlinks, and other non-standard node_modules layouts.
24
- *
25
- * @param moduleName - The name of the package in npm.
26
- * @param workDir - The working directory to resolve the module from. (aka project root)
27
- * @returns The absolute path to the package directory.
28
- * @internal
29
- */ export function getLocalPackageDir(moduleName, workDir) {
30
- // Handle import.meta.url being passed instead of a directory path
31
- const dir = workDir.startsWith('file://') ? dirname(fileURLToPath(workDir)) : workDir;
32
- const dirUrl = pathToFileURL(resolve(dir, 'noop.js'));
33
- try {
34
- const packageJsonUrl = moduleResolve(`${moduleName}/package.json`, dirUrl);
35
- return dirname(fileURLToPath(packageJsonUrl));
36
- } catch (err) {
37
- if (!isErrPackagePathNotExported(err)) {
38
- throw err;
39
- }
40
- }
41
- // Fallback: resolve main entry point and derive package root
42
- const mainUrl = moduleResolve(moduleName, dirUrl);
43
- const mainPath = fileURLToPath(mainUrl);
44
- const normalizedName = normalize(moduleName);
45
- const idx = mainPath.lastIndexOf(normalizedName);
46
- if (idx === -1) {
47
- throw new Error(`Could not determine package directory for '${moduleName}'`);
48
- }
49
- return mainPath.slice(0, idx + normalizedName.length);
50
- }
51
- function isErrPackagePathNotExported(err) {
52
- return err instanceof Error && 'code' in err && err.code === 'ERR_PACKAGE_PATH_NOT_EXPORTED';
53
- }
54
-
55
- //# sourceMappingURL=getLocalPackageVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/util/getLocalPackageVersion.ts"],"sourcesContent":["import {dirname, join, normalize, resolve} from 'node:path'\nimport {fileURLToPath, pathToFileURL} from 'node:url'\n\nimport {readPackageJson} from '@sanity/cli-core'\nimport {moduleResolve} from 'import-meta-resolve'\n\n/**\n * Get the version of a package installed locally.\n *\n * @param moduleName - The name of the package in npm.\n * @param workDir - The working directory to resolve the module from. (aka project root)\n * @returns The version of the package installed locally.\n * @internal\n */\nexport async function getLocalPackageVersion(\n moduleName: string,\n workDir: string,\n): Promise<string | null> {\n try {\n const packageDir = getLocalPackageDir(moduleName, workDir)\n return (await readPackageJson(join(packageDir, 'package.json'))).version\n } catch {\n return null\n }\n}\n\n/**\n * Resolve the filesystem directory of a locally installed package using Node\n * module resolution. Works correctly with hoisted packages in monorepos/workspaces,\n * pnpm symlinks, and other non-standard node_modules layouts.\n *\n * @param moduleName - The name of the package in npm.\n * @param workDir - The working directory to resolve the module from. (aka project root)\n * @returns The absolute path to the package directory.\n * @internal\n */\nexport function getLocalPackageDir(moduleName: string, workDir: string): string {\n // Handle import.meta.url being passed instead of a directory path\n const dir = workDir.startsWith('file://') ? dirname(fileURLToPath(workDir)) : workDir\n const dirUrl = pathToFileURL(resolve(dir, 'noop.js'))\n\n try {\n const packageJsonUrl = moduleResolve(`${moduleName}/package.json`, dirUrl)\n return dirname(fileURLToPath(packageJsonUrl))\n } catch (err: unknown) {\n if (!isErrPackagePathNotExported(err)) {\n throw err\n }\n }\n\n // Fallback: resolve main entry point and derive package root\n const mainUrl = moduleResolve(moduleName, dirUrl)\n const mainPath = fileURLToPath(mainUrl)\n const normalizedName = normalize(moduleName)\n const idx = mainPath.lastIndexOf(normalizedName)\n if (idx === -1) {\n throw new Error(`Could not determine package directory for '${moduleName}'`)\n }\n return mainPath.slice(0, idx + normalizedName.length)\n}\n\nfunction isErrPackagePathNotExported(err: unknown): boolean {\n return err instanceof Error && 'code' in err && err.code === 'ERR_PACKAGE_PATH_NOT_EXPORTED'\n}\n"],"names":["dirname","join","normalize","resolve","fileURLToPath","pathToFileURL","readPackageJson","moduleResolve","getLocalPackageVersion","moduleName","workDir","packageDir","getLocalPackageDir","version","dir","startsWith","dirUrl","packageJsonUrl","err","isErrPackagePathNotExported","mainUrl","mainPath","normalizedName","idx","lastIndexOf","Error","slice","length","code"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,IAAI,EAAEC,SAAS,EAAEC,OAAO,QAAO,YAAW;AAC3D,SAAQC,aAAa,EAAEC,aAAa,QAAO,WAAU;AAErD,SAAQC,eAAe,QAAO,mBAAkB;AAChD,SAAQC,aAAa,QAAO,sBAAqB;AAEjD;;;;;;;CAOC,GACD,OAAO,eAAeC,uBACpBC,UAAkB,EAClBC,OAAe;IAEf,IAAI;QACF,MAAMC,aAAaC,mBAAmBH,YAAYC;QAClD,OAAO,AAAC,CAAA,MAAMJ,gBAAgBL,KAAKU,YAAY,gBAAe,EAAGE,OAAO;IAC1E,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA;;;;;;;;;CASC,GACD,OAAO,SAASD,mBAAmBH,UAAkB,EAAEC,OAAe;IACpE,kEAAkE;IAClE,MAAMI,MAAMJ,QAAQK,UAAU,CAAC,aAAaf,QAAQI,cAAcM,YAAYA;IAC9E,MAAMM,SAASX,cAAcF,QAAQW,KAAK;IAE1C,IAAI;QACF,MAAMG,iBAAiBV,cAAc,GAAGE,WAAW,aAAa,CAAC,EAAEO;QACnE,OAAOhB,QAAQI,cAAca;IAC/B,EAAE,OAAOC,KAAc;QACrB,IAAI,CAACC,4BAA4BD,MAAM;YACrC,MAAMA;QACR;IACF;IAEA,6DAA6D;IAC7D,MAAME,UAAUb,cAAcE,YAAYO;IAC1C,MAAMK,WAAWjB,cAAcgB;IAC/B,MAAME,iBAAiBpB,UAAUO;IACjC,MAAMc,MAAMF,SAASG,WAAW,CAACF;IACjC,IAAIC,QAAQ,CAAC,GAAG;QACd,MAAM,IAAIE,MAAM,CAAC,2CAA2C,EAAEhB,WAAW,CAAC,CAAC;IAC7E;IACA,OAAOY,SAASK,KAAK,CAAC,GAAGH,MAAMD,eAAeK,MAAM;AACtD;AAEA,SAASR,4BAA4BD,GAAY;IAC/C,OAAOA,eAAeO,SAAS,UAAUP,OAAOA,IAAIU,IAAI,KAAK;AAC/D"}