@sanity/cli 5.9.0-next.8 → 6.0.0-alpha.11

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 (919) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3212 -2
  3. package/bin/run.cmd +3 -0
  4. package/bin/run.js +33 -0
  5. package/codemods/deskRename.js +115 -96
  6. package/codemods/partsTypeDirective.js +7 -7
  7. package/codemods/reactIconsV3.js +78 -51
  8. package/dist/SanityHelp.js +43 -0
  9. package/dist/SanityHelp.js.map +1 -0
  10. package/dist/actions/auth/authServer.js +153 -0
  11. package/dist/actions/auth/authServer.js.map +1 -0
  12. package/dist/actions/auth/getProviderName.js +15 -0
  13. package/dist/actions/auth/getProviderName.js.map +1 -0
  14. package/dist/actions/auth/login/getProvider.js +54 -0
  15. package/dist/actions/auth/login/getProvider.js.map +1 -0
  16. package/dist/actions/auth/login/getSSOProvider.js +30 -0
  17. package/dist/actions/auth/login/getSSOProvider.js.map +1 -0
  18. package/dist/actions/auth/login/login.js +101 -0
  19. package/dist/actions/auth/login/login.js.map +1 -0
  20. package/dist/actions/auth/login/promptProviders.js +23 -0
  21. package/dist/actions/auth/login/promptProviders.js.map +1 -0
  22. package/dist/actions/auth/login/samlProviderToLoginProvider.js +15 -0
  23. package/dist/actions/auth/login/samlProviderToLoginProvider.js.map +1 -0
  24. package/dist/actions/auth/types.js +7 -0
  25. package/dist/actions/auth/types.js.map +1 -0
  26. package/dist/actions/backup/archiveDir.js +43 -0
  27. package/dist/actions/backup/archiveDir.js.map +1 -0
  28. package/dist/actions/backup/assertDatasetExist.js +16 -0
  29. package/dist/actions/backup/assertDatasetExist.js.map +1 -0
  30. package/dist/actions/backup/backupDownloadDebug.js +4 -0
  31. package/dist/actions/backup/backupDownloadDebug.js.map +1 -0
  32. package/dist/actions/backup/cleanupTmpDir.js +19 -0
  33. package/dist/actions/backup/cleanupTmpDir.js.map +1 -0
  34. package/dist/actions/backup/constants.js +3 -0
  35. package/dist/actions/backup/constants.js.map +1 -0
  36. package/dist/actions/backup/downloadAsset.js +54 -0
  37. package/dist/actions/backup/downloadAsset.js.map +1 -0
  38. package/dist/actions/backup/downloadDocument.js +32 -0
  39. package/dist/actions/backup/downloadDocument.js.map +1 -0
  40. package/dist/actions/backup/fetchNextBackupPage.js +48 -0
  41. package/dist/actions/backup/fetchNextBackupPage.js.map +1 -0
  42. package/dist/actions/backup/progressSpinner.js +40 -0
  43. package/dist/actions/backup/progressSpinner.js.map +1 -0
  44. package/dist/actions/build/buildApp.js +159 -0
  45. package/dist/actions/build/buildApp.js.map +1 -0
  46. package/dist/actions/build/buildDebug.js +4 -0
  47. package/dist/actions/build/buildDebug.js.map +1 -0
  48. package/dist/actions/build/buildStaticFiles.js +82 -0
  49. package/dist/actions/build/buildStaticFiles.js.map +1 -0
  50. package/dist/actions/build/buildStudio.js +202 -0
  51. package/dist/actions/build/buildStudio.js.map +1 -0
  52. package/dist/actions/build/buildVendorDependencies.js +179 -0
  53. package/dist/actions/build/buildVendorDependencies.js.map +1 -0
  54. package/dist/actions/build/checkRequiredDependencies.js +122 -0
  55. package/dist/actions/build/checkRequiredDependencies.js.map +1 -0
  56. package/dist/actions/build/checkStudioDependencyVersions.js +154 -0
  57. package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -0
  58. package/dist/actions/build/createExternalFromImportMap.js +11 -0
  59. package/dist/actions/build/createExternalFromImportMap.js.map +1 -0
  60. package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js +13 -0
  61. package/dist/actions/build/decorateIndexWithAutoGeneratedWarning.js.map +1 -0
  62. package/dist/actions/build/decorateIndexWithBridgeScript.js +17 -0
  63. package/dist/actions/build/decorateIndexWithBridgeScript.js.map +1 -0
  64. package/dist/actions/build/determineBasePath.js +20 -0
  65. package/dist/actions/build/determineBasePath.js.map +1 -0
  66. package/dist/actions/build/generateWebManifest.js +27 -0
  67. package/dist/actions/build/generateWebManifest.js.map +1 -0
  68. package/dist/actions/build/getAppEnvVars.js +9 -0
  69. package/dist/actions/build/getAppEnvVars.js.map +1 -0
  70. package/dist/actions/build/getAutoUpdatesImportMap.js +57 -0
  71. package/dist/actions/build/getAutoUpdatesImportMap.js.map +1 -0
  72. package/dist/actions/build/getEntryModule.js +46 -0
  73. package/dist/actions/build/getEntryModule.js.map +1 -0
  74. package/dist/actions/build/getPossibleDocumentComponentLocations.js +11 -0
  75. package/dist/actions/build/getPossibleDocumentComponentLocations.js.map +1 -0
  76. package/dist/actions/build/getStudioEnvVars.js +9 -0
  77. package/dist/actions/build/getStudioEnvVars.js.map +1 -0
  78. package/dist/actions/build/getStudioEnvironmentVariables.js +58 -0
  79. package/dist/actions/build/getStudioEnvironmentVariables.js.map +1 -0
  80. package/dist/actions/build/getViteConfig.js +180 -0
  81. package/dist/actions/build/getViteConfig.js.map +1 -0
  82. package/dist/actions/build/normalizeBasePath.js +9 -0
  83. package/dist/actions/build/normalizeBasePath.js.map +1 -0
  84. package/dist/actions/build/renderDocument.js +54 -0
  85. package/dist/actions/build/renderDocument.js.map +1 -0
  86. package/dist/actions/build/renderDocument.worker.js +9 -0
  87. package/dist/actions/build/renderDocument.worker.js.map +1 -0
  88. package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js +59 -0
  89. package/dist/actions/build/renderDocumentWorker/addTimestampImportMapScriptToHtml.js.map +1 -0
  90. package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +61 -0
  91. package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -0
  92. package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +165 -0
  93. package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -0
  94. package/dist/actions/build/renderDocumentWorker/components/Favicons.js +28 -0
  95. package/dist/actions/build/renderDocumentWorker/components/Favicons.js.map +1 -0
  96. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +177 -0
  97. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -0
  98. package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js +51 -0
  99. package/dist/actions/build/renderDocumentWorker/components/NoJavascript.js.map +1 -0
  100. package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +41 -0
  101. package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -0
  102. package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js +55 -0
  103. package/dist/actions/build/renderDocumentWorker/getDocumentHtml.js.map +1 -0
  104. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +31 -0
  105. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -0
  106. package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js +30 -0
  107. package/dist/actions/build/renderDocumentWorker/tryLoadDocumentComponent.js.map +1 -0
  108. package/dist/actions/build/renderDocumentWorker/types.js +5 -0
  109. package/dist/actions/build/renderDocumentWorker/types.js.map +1 -0
  110. package/dist/actions/build/shouldAutoUpdate.js +35 -0
  111. package/dist/actions/build/shouldAutoUpdate.js.map +1 -0
  112. package/dist/actions/build/types.js +3 -0
  113. package/dist/actions/build/types.js.map +1 -0
  114. package/dist/actions/build/writeFavicons.js +26 -0
  115. package/dist/actions/build/writeFavicons.js.map +1 -0
  116. package/dist/actions/build/writeSanityRuntime.js +61 -0
  117. package/dist/actions/build/writeSanityRuntime.js.map +1 -0
  118. package/dist/actions/build/writeWebManifest.js +12 -0
  119. package/dist/actions/build/writeWebManifest.js.map +1 -0
  120. package/dist/actions/codemods/deskRename.js +18 -0
  121. package/dist/actions/codemods/deskRename.js.map +1 -0
  122. package/dist/actions/codemods/index.js +10 -0
  123. package/dist/actions/codemods/index.js.map +1 -0
  124. package/dist/actions/codemods/partsTypeDirective.js +27 -0
  125. package/dist/actions/codemods/partsTypeDirective.js.map +1 -0
  126. package/dist/actions/codemods/reactIconsV3.js +30 -0
  127. package/dist/actions/codemods/reactIconsV3.js.map +1 -0
  128. package/dist/actions/codemods/types.js +3 -0
  129. package/dist/actions/codemods/types.js.map +1 -0
  130. package/dist/actions/cors/filterAndValidateOrigin.js +38 -0
  131. package/dist/actions/cors/filterAndValidateOrigin.js.map +1 -0
  132. package/dist/actions/dataset/create.js +46 -0
  133. package/dist/actions/dataset/create.js.map +1 -0
  134. package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
  135. package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
  136. package/dist/actions/dataset/processAliasName.js +20 -0
  137. package/dist/actions/dataset/processAliasName.js.map +1 -0
  138. package/dist/actions/dataset/validateDatasetAliasName.js +28 -0
  139. package/dist/actions/dataset/validateDatasetAliasName.js.map +1 -0
  140. package/dist/actions/dataset/validateDatasetName.js +39 -0
  141. package/dist/actions/dataset/validateDatasetName.js.map +1 -0
  142. package/dist/actions/debug/gatherDebugInfo.js +104 -0
  143. package/dist/actions/debug/gatherDebugInfo.js.map +1 -0
  144. package/dist/actions/debug/getGlobalConfigLocation.js +7 -0
  145. package/dist/actions/debug/getGlobalConfigLocation.js.map +1 -0
  146. package/dist/actions/debug/types.js +3 -0
  147. package/dist/actions/debug/types.js.map +1 -0
  148. package/dist/actions/deploy/checkDir.js +31 -0
  149. package/dist/actions/deploy/checkDir.js.map +1 -0
  150. package/dist/actions/deploy/createStudioUserApplication.js +59 -0
  151. package/dist/actions/deploy/createStudioUserApplication.js.map +1 -0
  152. package/dist/actions/deploy/createUserApplicationForApp.js +56 -0
  153. package/dist/actions/deploy/createUserApplicationForApp.js.map +1 -0
  154. package/dist/actions/deploy/deployApp.js +162 -0
  155. package/dist/actions/deploy/deployApp.js.map +1 -0
  156. package/dist/actions/deploy/deployDebug.js +4 -0
  157. package/dist/actions/deploy/deployDebug.js.map +1 -0
  158. package/dist/actions/deploy/deployStudio.js +134 -0
  159. package/dist/actions/deploy/deployStudio.js.map +1 -0
  160. package/dist/actions/deploy/findUserApplicationForApp.js +110 -0
  161. package/dist/actions/deploy/findUserApplicationForApp.js.map +1 -0
  162. package/dist/actions/deploy/findUserApplicationForStudio.js +143 -0
  163. package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -0
  164. package/dist/actions/deploy/types.js +3 -0
  165. package/dist/actions/deploy/types.js.map +1 -0
  166. package/dist/actions/dev/devAction.js +7 -0
  167. package/dist/actions/dev/devAction.js.map +1 -0
  168. package/dist/actions/dev/devDebug.js +4 -0
  169. package/dist/actions/dev/devDebug.js.map +1 -0
  170. package/dist/actions/dev/getCoreAppUrl.js +10 -0
  171. package/dist/actions/dev/getCoreAppUrl.js.map +1 -0
  172. package/dist/actions/dev/getDevServerConfig.js +28 -0
  173. package/dist/actions/dev/getDevServerConfig.js.map +1 -0
  174. package/dist/actions/dev/startAppDevServer.js +57 -0
  175. package/dist/actions/dev/startAppDevServer.js.map +1 -0
  176. package/dist/actions/dev/startStudioDevServer.js +154 -0
  177. package/dist/actions/dev/startStudioDevServer.js.map +1 -0
  178. package/dist/actions/dev/types.js +3 -0
  179. package/dist/actions/dev/types.js.map +1 -0
  180. package/dist/actions/docs/normalizeDocsPath.js +15 -0
  181. package/dist/actions/docs/normalizeDocsPath.js.map +1 -0
  182. package/dist/actions/documents/constants.js +3 -0
  183. package/dist/actions/documents/constants.js.map +1 -0
  184. package/dist/actions/documents/editor.js +26 -0
  185. package/dist/actions/documents/editor.js.map +1 -0
  186. package/dist/actions/documents/types.js +3 -0
  187. package/dist/actions/documents/types.js.map +1 -0
  188. package/dist/actions/documents/validate.js +60 -0
  189. package/dist/actions/documents/validate.js.map +1 -0
  190. package/dist/actions/documents/validateDocuments.worker.js +251 -0
  191. package/dist/actions/documents/validateDocuments.worker.js.map +1 -0
  192. package/dist/actions/documents/validation/reporters/index.js +10 -0
  193. package/dist/actions/documents/validation/reporters/index.js.map +1 -0
  194. package/dist/actions/documents/validation/reporters/jsonReporter.js +25 -0
  195. package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -0
  196. package/dist/actions/documents/validation/reporters/ndjsonReporter.js +18 -0
  197. package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -0
  198. package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +62 -0
  199. package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -0
  200. package/dist/actions/documents/validation/reporters/prettyReporter/index.js +3 -0
  201. package/dist/actions/documents/validation/reporters/prettyReporter/index.js.map +1 -0
  202. package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js +92 -0
  203. package/dist/actions/documents/validation/reporters/prettyReporter/prettyReporter.js.map +1 -0
  204. package/dist/actions/documents/validation/reporters/prettyReporter/util.js +45 -0
  205. package/dist/actions/documents/validation/reporters/prettyReporter/util.js.map +1 -0
  206. package/dist/actions/exec/configClient.worker.js +9 -0
  207. package/dist/actions/exec/configClient.worker.js.map +1 -0
  208. package/dist/actions/exec/execScript.js +77 -0
  209. package/dist/actions/exec/execScript.js.map +1 -0
  210. package/dist/actions/exec/registerBrowserEnv.worker.js +17 -0
  211. package/dist/actions/exec/registerBrowserEnv.worker.js.map +1 -0
  212. package/dist/actions/graphql/SchemaError.js +37 -0
  213. package/dist/actions/graphql/SchemaError.js.map +1 -0
  214. package/dist/actions/graphql/extractFromSanitySchema.js +659 -0
  215. package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -0
  216. package/dist/actions/graphql/gen1/generateTypeFilters.js +226 -0
  217. package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -0
  218. package/dist/actions/graphql/gen1/generateTypeQueries.js +85 -0
  219. package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -0
  220. package/dist/actions/graphql/gen1/index.js +19 -0
  221. package/dist/actions/graphql/gen1/index.js.map +1 -0
  222. package/dist/actions/graphql/gen2/filters/booleanFilters.js +26 -0
  223. package/dist/actions/graphql/gen2/filters/booleanFilters.js.map +1 -0
  224. package/dist/actions/graphql/gen2/filters/dateFilters.js +46 -0
  225. package/dist/actions/graphql/gen2/filters/dateFilters.js.map +1 -0
  226. package/dist/actions/graphql/gen2/filters/dateTimeFilters.js +46 -0
  227. package/dist/actions/graphql/gen2/filters/dateTimeFilters.js.map +1 -0
  228. package/dist/actions/graphql/gen2/filters/documentFilters.js +21 -0
  229. package/dist/actions/graphql/gen2/filters/documentFilters.js.map +1 -0
  230. package/dist/actions/graphql/gen2/filters/floatFilters.js +46 -0
  231. package/dist/actions/graphql/gen2/filters/floatFilters.js.map +1 -0
  232. package/dist/actions/graphql/gen2/filters/idFilters.js +44 -0
  233. package/dist/actions/graphql/gen2/filters/idFilters.js.map +1 -0
  234. package/dist/actions/graphql/gen2/filters/integerFilters.js +46 -0
  235. package/dist/actions/graphql/gen2/filters/integerFilters.js.map +1 -0
  236. package/dist/actions/graphql/gen2/filters/stringFilters.js +49 -0
  237. package/dist/actions/graphql/gen2/filters/stringFilters.js.map +1 -0
  238. package/dist/actions/graphql/gen2/generateTypeFilters.js +85 -0
  239. package/dist/actions/graphql/gen2/generateTypeFilters.js.map +1 -0
  240. package/dist/actions/graphql/gen2/generateTypeQueries.js +107 -0
  241. package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -0
  242. package/dist/actions/graphql/gen2/generateTypeSortings.js +70 -0
  243. package/dist/actions/graphql/gen2/generateTypeSortings.js.map +1 -0
  244. package/dist/actions/graphql/gen2/index.js +22 -0
  245. package/dist/actions/graphql/gen2/index.js.map +1 -0
  246. package/dist/actions/graphql/gen3/filters/documentFilters.js +21 -0
  247. package/dist/actions/graphql/gen3/filters/documentFilters.js.map +1 -0
  248. package/dist/actions/graphql/gen3/generateTypeFilters.js +101 -0
  249. package/dist/actions/graphql/gen3/generateTypeFilters.js.map +1 -0
  250. package/dist/actions/graphql/gen3/generateTypeQueries.js +104 -0
  251. package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -0
  252. package/dist/actions/graphql/gen3/generateTypeSortings.js +70 -0
  253. package/dist/actions/graphql/gen3/generateTypeSortings.js.map +1 -0
  254. package/dist/actions/graphql/gen3/index.js +31 -0
  255. package/dist/actions/graphql/gen3/index.js.map +1 -0
  256. package/dist/actions/graphql/gen3/utils.js +12 -0
  257. package/dist/actions/graphql/gen3/utils.js.map +1 -0
  258. package/dist/actions/graphql/getGraphQLAPIs.js +65 -0
  259. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -0
  260. package/dist/actions/graphql/getGraphQLAPIs.worker.js +126 -0
  261. package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -0
  262. package/dist/actions/graphql/graphqlDebug.js +4 -0
  263. package/dist/actions/graphql/graphqlDebug.js.map +1 -0
  264. package/dist/actions/graphql/helpUrls.js +3 -0
  265. package/dist/actions/graphql/helpUrls.js.map +1 -0
  266. package/dist/actions/graphql/helpers.js +11 -0
  267. package/dist/actions/graphql/helpers.js.map +1 -0
  268. package/dist/actions/graphql/resolveApiGeneration.js +43 -0
  269. package/dist/actions/graphql/resolveApiGeneration.js.map +1 -0
  270. package/dist/actions/graphql/types.js +3 -0
  271. package/dist/actions/graphql/types.js.map +1 -0
  272. package/dist/actions/hook/constants.js +3 -0
  273. package/dist/actions/hook/constants.js.map +1 -0
  274. package/dist/actions/hook/formatFailure.js +29 -0
  275. package/dist/actions/hook/formatFailure.js.map +1 -0
  276. package/dist/actions/hook/types.js +3 -0
  277. package/dist/actions/hook/types.js.map +1 -0
  278. package/dist/actions/init/bootstrapLocalTemplate.js +137 -0
  279. package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -0
  280. package/dist/actions/init/bootstrapRemoteTemplate.js +109 -0
  281. package/dist/actions/init/bootstrapRemoteTemplate.js.map +1 -0
  282. package/dist/actions/init/bootstrapTemplate.js +32 -0
  283. package/dist/actions/init/bootstrapTemplate.js.map +1 -0
  284. package/dist/actions/init/checkNextJsReactCompatibility.js +21 -0
  285. package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -0
  286. package/dist/actions/init/constants.js +3 -0
  287. package/dist/actions/init/constants.js.map +1 -0
  288. package/dist/actions/init/countNestedFolders.js +6 -0
  289. package/dist/actions/init/countNestedFolders.js.map +1 -0
  290. package/dist/actions/init/createAppCliConfig.js +19 -0
  291. package/dist/actions/init/createAppCliConfig.js.map +1 -0
  292. package/dist/actions/init/createCliConfig.js +27 -0
  293. package/dist/actions/init/createCliConfig.js.map +1 -0
  294. package/dist/actions/init/createPackageManifest.js +86 -0
  295. package/dist/actions/init/createPackageManifest.js.map +1 -0
  296. package/dist/actions/init/createStudioConfig.js +41 -0
  297. package/dist/actions/init/createStudioConfig.js.map +1 -0
  298. package/dist/actions/init/determineAppTemplate.js +16 -0
  299. package/dist/actions/init/determineAppTemplate.js.map +1 -0
  300. package/dist/actions/init/env/createOrAppendEnvVars.js +25 -0
  301. package/dist/actions/init/env/createOrAppendEnvVars.js.map +1 -0
  302. package/dist/actions/init/env/parseAndUpdateEnvVars.js +42 -0
  303. package/dist/actions/init/env/parseAndUpdateEnvVars.js.map +1 -0
  304. package/dist/actions/init/env/writeEnvVarsToFile.js +49 -0
  305. package/dist/actions/init/env/writeEnvVarsToFile.js.map +1 -0
  306. package/dist/actions/init/fetchPostInitPrompt.js +30 -0
  307. package/dist/actions/init/fetchPostInitPrompt.js.map +1 -0
  308. package/dist/actions/init/git.js +65 -0
  309. package/dist/actions/init/git.js.map +1 -0
  310. package/dist/actions/init/processTemplate.js +56 -0
  311. package/dist/actions/init/processTemplate.js.map +1 -0
  312. package/dist/actions/init/remoteTemplate.js +211 -0
  313. package/dist/actions/init/remoteTemplate.js.map +1 -0
  314. package/dist/actions/init/resolvePackageManager.js +20 -0
  315. package/dist/actions/init/resolvePackageManager.js.map +1 -0
  316. package/dist/actions/init/templates/appQuickstart.js +28 -0
  317. package/dist/actions/init/templates/appQuickstart.js.map +1 -0
  318. package/dist/actions/init/templates/appSanityUi.js +30 -0
  319. package/dist/actions/init/templates/appSanityUi.js.map +1 -0
  320. package/dist/actions/init/templates/blog.js +4 -0
  321. package/dist/actions/init/templates/blog.js.map +1 -0
  322. package/dist/actions/init/templates/clean.js +4 -0
  323. package/dist/actions/init/templates/clean.js.map +1 -0
  324. package/dist/actions/init/templates/getStarted.js +35 -0
  325. package/dist/actions/init/templates/getStarted.js.map +1 -0
  326. package/dist/actions/init/templates/index.js +23 -0
  327. package/dist/actions/init/templates/index.js.map +1 -0
  328. package/dist/actions/init/templates/moviedb.js +34 -0
  329. package/dist/actions/init/templates/moviedb.js.map +1 -0
  330. package/dist/actions/init/templates/nextjs/index.js +213 -0
  331. package/dist/actions/init/templates/nextjs/index.js.map +1 -0
  332. package/dist/actions/init/templates/nextjs/schemaTypes/blog.js +247 -0
  333. package/dist/actions/init/templates/nextjs/schemaTypes/blog.js.map +1 -0
  334. package/dist/actions/init/templates/quickstart.js +4 -0
  335. package/dist/actions/init/templates/quickstart.js.map +1 -0
  336. package/dist/actions/init/templates/shopify.js +77 -0
  337. package/dist/actions/init/templates/shopify.js.map +1 -0
  338. package/dist/actions/init/templates/shopifyOnline.js +49 -0
  339. package/dist/actions/init/templates/shopifyOnline.js.map +1 -0
  340. package/dist/actions/init/types.js +3 -0
  341. package/dist/actions/init/types.js.map +1 -0
  342. package/dist/actions/init/updateInitialTemplateMetadata.js +17 -0
  343. package/dist/actions/init/updateInitialTemplateMetadata.js.map +1 -0
  344. package/dist/actions/manifest/SchemaIcon.js +21 -0
  345. package/dist/actions/manifest/SchemaIcon.js.map +1 -0
  346. package/dist/actions/manifest/extractAppManifest.js +51 -0
  347. package/dist/actions/manifest/extractAppManifest.js.map +1 -0
  348. package/dist/actions/manifest/extractManifest.js +93 -0
  349. package/dist/actions/manifest/extractManifest.js.map +1 -0
  350. package/dist/actions/manifest/extractWorkspaceManifest.js +406 -0
  351. package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -0
  352. package/dist/actions/manifest/purifyConfig.js +307 -0
  353. package/dist/actions/manifest/purifyConfig.js.map +1 -0
  354. package/dist/actions/manifest/schemaTypeHelpers.js +110 -0
  355. package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -0
  356. package/dist/actions/manifest/types.js +5 -0
  357. package/dist/actions/manifest/types.js.map +1 -0
  358. package/dist/actions/mcp/detectAvailableEditors.js +75 -0
  359. package/dist/actions/mcp/detectAvailableEditors.js.map +1 -0
  360. package/dist/actions/mcp/editorConfigs.js +147 -0
  361. package/dist/actions/mcp/editorConfigs.js.map +1 -0
  362. package/dist/actions/mcp/promptForMCPSetup.js +24 -0
  363. package/dist/actions/mcp/promptForMCPSetup.js.map +1 -0
  364. package/dist/actions/mcp/setupMCP.js +88 -0
  365. package/dist/actions/mcp/setupMCP.js.map +1 -0
  366. package/dist/actions/mcp/types.js +3 -0
  367. package/dist/actions/mcp/types.js.map +1 -0
  368. package/dist/actions/mcp/writeMCPConfig.js +41 -0
  369. package/dist/actions/mcp/writeMCPConfig.js.map +1 -0
  370. package/dist/actions/media/__tests__/createMockClient.js +32 -0
  371. package/dist/actions/media/__tests__/createMockClient.js.map +1 -0
  372. package/dist/actions/media/getMediaLibraryConfig.js +5 -0
  373. package/dist/actions/media/getMediaLibraryConfig.js.map +1 -0
  374. package/dist/actions/media/importAspects.js +112 -0
  375. package/dist/actions/media/importAspects.js.map +1 -0
  376. package/dist/actions/media/importMedia.js +213 -0
  377. package/dist/actions/media/importMedia.js.map +1 -0
  378. package/dist/actions/media/importMediaDebug.js +4 -0
  379. package/dist/actions/media/importMediaDebug.js.map +1 -0
  380. package/dist/actions/organizations/getOrganization.js +67 -0
  381. package/dist/actions/organizations/getOrganization.js.map +1 -0
  382. package/dist/actions/organizations/getOrganizationChoices.js +23 -0
  383. package/dist/actions/organizations/getOrganizationChoices.js.map +1 -0
  384. package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js +9 -0
  385. package/dist/actions/organizations/getOrganizationsWithAttachGrantInfo.js.map +1 -0
  386. package/dist/actions/organizations/hasProjectAttachGrant.js +24 -0
  387. package/dist/actions/organizations/hasProjectAttachGrant.js.map +1 -0
  388. package/dist/actions/organizations/validateOrganizationName.js +10 -0
  389. package/dist/actions/organizations/validateOrganizationName.js.map +1 -0
  390. package/dist/actions/preview/getPreviewServerConfig.js +16 -0
  391. package/dist/actions/preview/getPreviewServerConfig.js.map +1 -0
  392. package/dist/actions/preview/previewAction.js +20 -0
  393. package/dist/actions/preview/previewAction.js.map +1 -0
  394. package/dist/actions/preview/types.js +3 -0
  395. package/dist/actions/preview/types.js.map +1 -0
  396. package/dist/actions/projects/getManageUrl.js +7 -0
  397. package/dist/actions/projects/getManageUrl.js.map +1 -0
  398. package/dist/actions/projects/validateProjectName.js +11 -0
  399. package/dist/actions/projects/validateProjectName.js.map +1 -0
  400. package/dist/actions/schema/deleteSchemaAction.js +101 -0
  401. package/dist/actions/schema/deleteSchemaAction.js.map +1 -0
  402. package/dist/actions/schema/deploySchemas.js +98 -0
  403. package/dist/actions/schema/deploySchemas.js.map +1 -0
  404. package/dist/actions/schema/extractSanitySchema.worker.js +38 -0
  405. package/dist/actions/schema/extractSanitySchema.worker.js.map +1 -0
  406. package/dist/actions/schema/extractSchema.js +77 -0
  407. package/dist/actions/schema/extractSchema.js.map +1 -0
  408. package/dist/actions/schema/formatSchemaValidation.js +74 -0
  409. package/dist/actions/schema/formatSchemaValidation.js.map +1 -0
  410. package/dist/actions/schema/listSchemas.js +119 -0
  411. package/dist/actions/schema/listSchemas.js.map +1 -0
  412. package/dist/actions/schema/metafile.js +51 -0
  413. package/dist/actions/schema/metafile.js.map +1 -0
  414. package/dist/actions/schema/schemaStoreTypes.js +19 -0
  415. package/dist/actions/schema/schemaStoreTypes.js.map +1 -0
  416. package/dist/actions/schema/types.js +9 -0
  417. package/dist/actions/schema/types.js.map +1 -0
  418. package/dist/actions/schema/utils/debug.js +6 -0
  419. package/dist/actions/schema/utils/debug.js.map +1 -0
  420. package/dist/actions/schema/utils/extractValidationFromSchemaError.js +12 -0
  421. package/dist/actions/schema/utils/extractValidationFromSchemaError.js.map +1 -0
  422. package/dist/actions/schema/utils/manifestExtractor.js +33 -0
  423. package/dist/actions/schema/utils/manifestExtractor.js.map +1 -0
  424. package/dist/actions/schema/utils/manifestReader.js +71 -0
  425. package/dist/actions/schema/utils/manifestReader.js.map +1 -0
  426. package/dist/actions/schema/utils/schemaStoreOutStrings.js +11 -0
  427. package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -0
  428. package/dist/actions/schema/utils/schemaStoreValidation.js +108 -0
  429. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -0
  430. package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
  431. package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
  432. package/dist/actions/schema/utils/workspaceSchemaId.js +23 -0
  433. package/dist/actions/schema/utils/workspaceSchemaId.js.map +1 -0
  434. package/dist/actions/schema/validateAction.js +71 -0
  435. package/dist/actions/schema/validateAction.js.map +1 -0
  436. package/dist/actions/schema/validateSchema.worker.js +124 -0
  437. package/dist/actions/schema/validateSchema.worker.js.map +1 -0
  438. package/dist/actions/telemetry/getLearnMoreMessage.js +15 -0
  439. package/dist/actions/telemetry/getLearnMoreMessage.js.map +1 -0
  440. package/dist/actions/telemetry/getStatusDisplay.js +26 -0
  441. package/dist/actions/telemetry/getStatusDisplay.js.map +1 -0
  442. package/dist/actions/telemetry/getStatusMessage.js +36 -0
  443. package/dist/actions/telemetry/getStatusMessage.js.map +1 -0
  444. package/dist/actions/telemetry/resolveConsent.js +48 -0
  445. package/dist/actions/telemetry/resolveConsent.js.map +1 -0
  446. package/dist/actions/telemetry/setConsent.js +83 -0
  447. package/dist/actions/telemetry/setConsent.js.map +1 -0
  448. package/dist/actions/telemetry/telemetryDebug.js +4 -0
  449. package/dist/actions/telemetry/telemetryDebug.js.map +1 -0
  450. package/dist/actions/telemetry/telemetryDisclosure.js +33 -0
  451. package/dist/actions/telemetry/telemetryDisclosure.js.map +1 -0
  452. package/dist/actions/telemetry/telemetryLearnMoreMessage.js +15 -0
  453. package/dist/actions/telemetry/telemetryLearnMoreMessage.js.map +1 -0
  454. package/dist/actions/tokens/constants.js +5 -0
  455. package/dist/actions/tokens/constants.js.map +1 -0
  456. package/dist/actions/tokens/types.js +3 -0
  457. package/dist/actions/tokens/types.js.map +1 -0
  458. package/dist/actions/tokens/validateRole.js +23 -0
  459. package/dist/actions/tokens/validateRole.js.map +1 -0
  460. package/dist/actions/undeploy/getStudioOrAppUserApplication.js +36 -0
  461. package/dist/actions/undeploy/getStudioOrAppUserApplication.js.map +1 -0
  462. package/dist/actions/users/getMembersForProject.js +47 -0
  463. package/dist/actions/users/getMembersForProject.js.map +1 -0
  464. package/dist/actions/users/getPendingInvitations.js +15 -0
  465. package/dist/actions/users/getPendingInvitations.js.map +1 -0
  466. package/dist/actions/users/types.js +3 -0
  467. package/dist/actions/users/types.js.map +1 -0
  468. package/dist/actions/users/usersDebug.js +4 -0
  469. package/dist/actions/users/usersDebug.js.map +1 -0
  470. package/dist/actions/users/validateEmail.js +14 -0
  471. package/dist/actions/users/validateEmail.js.map +1 -0
  472. package/dist/actions/versions/buildPackageArray.js +44 -0
  473. package/dist/actions/versions/buildPackageArray.js.map +1 -0
  474. package/dist/actions/versions/filterSanityModules.js +20 -0
  475. package/dist/actions/versions/filterSanityModules.js.map +1 -0
  476. package/dist/actions/versions/findSanityModulesVersions.js +47 -0
  477. package/dist/actions/versions/findSanityModulesVersions.js.map +1 -0
  478. package/dist/actions/versions/getFormatters.js +30 -0
  479. package/dist/actions/versions/getFormatters.js.map +1 -0
  480. package/dist/actions/versions/tryFindLatestVersion.js +21 -0
  481. package/dist/actions/versions/tryFindLatestVersion.js.map +1 -0
  482. package/dist/actions/versions/types.js +5 -0
  483. package/dist/actions/versions/types.js.map +1 -0
  484. package/dist/actions/versions/versionsDebug.js +4 -0
  485. package/dist/actions/versions/versionsDebug.js.map +1 -0
  486. package/dist/commands/backup/disable.js +94 -0
  487. package/dist/commands/backup/disable.js.map +1 -0
  488. package/dist/commands/backup/download.js +291 -0
  489. package/dist/commands/backup/download.js.map +1 -0
  490. package/dist/commands/backup/enable.js +99 -0
  491. package/dist/commands/backup/enable.js.map +1 -0
  492. package/dist/commands/backup/list.js +187 -0
  493. package/dist/commands/backup/list.js.map +1 -0
  494. package/dist/commands/build.js +82 -0
  495. package/dist/commands/build.js.map +1 -0
  496. package/dist/commands/codemod.js +141 -0
  497. package/dist/commands/codemod.js.map +1 -0
  498. package/dist/commands/cors/add.js +154 -0
  499. package/dist/commands/cors/add.js.map +1 -0
  500. package/dist/commands/cors/delete.js +90 -0
  501. package/dist/commands/cors/delete.js.map +1 -0
  502. package/dist/commands/cors/list.js +40 -0
  503. package/dist/commands/cors/list.js.map +1 -0
  504. package/dist/commands/dataset/alias/create.js +118 -0
  505. package/dist/commands/dataset/alias/create.js.map +1 -0
  506. package/dist/commands/dataset/alias/delete.js +88 -0
  507. package/dist/commands/dataset/alias/delete.js.map +1 -0
  508. package/dist/commands/dataset/alias/link.js +137 -0
  509. package/dist/commands/dataset/alias/link.js.map +1 -0
  510. package/dist/commands/dataset/alias/unlink.js +98 -0
  511. package/dist/commands/dataset/alias/unlink.js.map +1 -0
  512. package/dist/commands/dataset/copy.js +369 -0
  513. package/dist/commands/dataset/copy.js.map +1 -0
  514. package/dist/commands/dataset/create.js +106 -0
  515. package/dist/commands/dataset/create.js.map +1 -0
  516. package/dist/commands/dataset/delete.js +104 -0
  517. package/dist/commands/dataset/delete.js.map +1 -0
  518. package/dist/commands/dataset/export.js +271 -0
  519. package/dist/commands/dataset/export.js.map +1 -0
  520. package/dist/commands/dataset/import.js +3 -0
  521. package/dist/commands/dataset/import.js.map +1 -0
  522. package/dist/commands/dataset/list.js +50 -0
  523. package/dist/commands/dataset/list.js.map +1 -0
  524. package/dist/commands/dataset/visibility/get.js +55 -0
  525. package/dist/commands/dataset/visibility/get.js.map +1 -0
  526. package/dist/commands/dataset/visibility/set.js +88 -0
  527. package/dist/commands/dataset/visibility/set.js.map +1 -0
  528. package/dist/commands/debug.js +93 -0
  529. package/dist/commands/debug.js.map +1 -0
  530. package/dist/commands/deploy.js +115 -0
  531. package/dist/commands/deploy.js.map +1 -0
  532. package/dist/commands/dev.js +65 -0
  533. package/dist/commands/dev.js.map +1 -0
  534. package/dist/commands/docs/browse.js +15 -0
  535. package/dist/commands/docs/browse.js.map +1 -0
  536. package/dist/commands/docs/read.js +81 -0
  537. package/dist/commands/docs/read.js.map +1 -0
  538. package/dist/commands/docs/search.js +111 -0
  539. package/dist/commands/docs/search.js.map +1 -0
  540. package/dist/commands/documents/create.js +338 -0
  541. package/dist/commands/documents/create.js.map +1 -0
  542. package/dist/commands/documents/delete.js +104 -0
  543. package/dist/commands/documents/delete.js.map +1 -0
  544. package/dist/commands/documents/get.js +85 -0
  545. package/dist/commands/documents/get.js.map +1 -0
  546. package/dist/commands/documents/query.js +105 -0
  547. package/dist/commands/documents/query.js.map +1 -0
  548. package/dist/commands/documents/validate.js +142 -0
  549. package/dist/commands/documents/validate.js.map +1 -0
  550. package/dist/commands/exec.js +54 -0
  551. package/dist/commands/exec.js.map +1 -0
  552. package/dist/commands/graphql/deploy.js +429 -0
  553. package/dist/commands/graphql/deploy.js.map +1 -0
  554. package/dist/commands/graphql/list.js +53 -0
  555. package/dist/commands/graphql/list.js.map +1 -0
  556. package/dist/commands/graphql/undeploy.js +143 -0
  557. package/dist/commands/graphql/undeploy.js.map +1 -0
  558. package/dist/commands/hook/attempt.js +66 -0
  559. package/dist/commands/hook/attempt.js.map +1 -0
  560. package/dist/commands/hook/create.js +46 -0
  561. package/dist/commands/hook/create.js.map +1 -0
  562. package/dist/commands/hook/delete.js +86 -0
  563. package/dist/commands/hook/delete.js.map +1 -0
  564. package/dist/commands/hook/list.js +46 -0
  565. package/dist/commands/hook/list.js.map +1 -0
  566. package/dist/commands/hook/logs.js +184 -0
  567. package/dist/commands/hook/logs.js.map +1 -0
  568. package/dist/commands/init.js +1389 -0
  569. package/dist/commands/init.js.map +1 -0
  570. package/dist/commands/install.js +43 -0
  571. package/dist/commands/install.js.map +1 -0
  572. package/dist/commands/learn.js +15 -0
  573. package/dist/commands/learn.js.map +1 -0
  574. package/dist/commands/login.js +50 -0
  575. package/dist/commands/login.js.map +1 -0
  576. package/dist/commands/logout.js +37 -0
  577. package/dist/commands/logout.js.map +1 -0
  578. package/dist/commands/manage.js +29 -0
  579. package/dist/commands/manage.js.map +1 -0
  580. package/dist/commands/manifest/extract.js +43 -0
  581. package/dist/commands/manifest/extract.js.map +1 -0
  582. package/dist/commands/mcp/configure.js +28 -0
  583. package/dist/commands/mcp/configure.js.map +1 -0
  584. package/dist/commands/media/create-aspect.js +88 -0
  585. package/dist/commands/media/create-aspect.js.map +1 -0
  586. package/dist/commands/media/delete-aspect.js +85 -0
  587. package/dist/commands/media/delete-aspect.js.map +1 -0
  588. package/dist/commands/media/deploy-aspect.js +151 -0
  589. package/dist/commands/media/deploy-aspect.js.map +1 -0
  590. package/dist/commands/media/export.js +210 -0
  591. package/dist/commands/media/export.js.map +1 -0
  592. package/dist/commands/media/import.js +160 -0
  593. package/dist/commands/media/import.js.map +1 -0
  594. package/dist/commands/openapi/get.js +83 -0
  595. package/dist/commands/openapi/get.js.map +1 -0
  596. package/dist/commands/openapi/list.js +80 -0
  597. package/dist/commands/openapi/list.js.map +1 -0
  598. package/dist/commands/preview.js +60 -0
  599. package/dist/commands/preview.js.map +1 -0
  600. package/dist/commands/projects/create.js +181 -0
  601. package/dist/commands/projects/create.js.map +1 -0
  602. package/dist/commands/projects/list.js +76 -0
  603. package/dist/commands/projects/list.js.map +1 -0
  604. package/dist/commands/schema/delete.js +91 -0
  605. package/dist/commands/schema/delete.js.map +1 -0
  606. package/dist/commands/schema/deploy.js +98 -0
  607. package/dist/commands/schema/deploy.js.map +1 -0
  608. package/dist/commands/schema/extract.js +46 -0
  609. package/dist/commands/schema/extract.js.map +1 -0
  610. package/dist/commands/schema/list.js +104 -0
  611. package/dist/commands/schema/list.js.map +1 -0
  612. package/dist/commands/schema/validate.js +73 -0
  613. package/dist/commands/schema/validate.js.map +1 -0
  614. package/dist/commands/telemetry/disable.js +33 -0
  615. package/dist/commands/telemetry/disable.js.map +1 -0
  616. package/dist/commands/telemetry/enable.js +33 -0
  617. package/dist/commands/telemetry/enable.js.map +1 -0
  618. package/dist/commands/telemetry/status.js +25 -0
  619. package/dist/commands/telemetry/status.js.map +1 -0
  620. package/dist/commands/tokens/add.js +135 -0
  621. package/dist/commands/tokens/add.js.map +1 -0
  622. package/dist/commands/tokens/delete.js +107 -0
  623. package/dist/commands/tokens/delete.js.map +1 -0
  624. package/dist/commands/tokens/list.js +92 -0
  625. package/dist/commands/tokens/list.js.map +1 -0
  626. package/dist/commands/undeploy.js +93 -0
  627. package/dist/commands/undeploy.js.map +1 -0
  628. package/dist/commands/users/invite.js +100 -0
  629. package/dist/commands/users/invite.js.map +1 -0
  630. package/dist/commands/users/list.js +101 -0
  631. package/dist/commands/users/list.js.map +1 -0
  632. package/dist/commands/versions.js +27 -0
  633. package/dist/commands/versions.js.map +1 -0
  634. package/dist/config/createCliConfig.js +9 -0
  635. package/dist/config/createCliConfig.js.map +1 -0
  636. package/dist/config/defineCliConfig.js +5 -0
  637. package/dist/config/defineCliConfig.js.map +1 -0
  638. package/dist/hooks/prerun/flushTelemetry.worker.js +22 -0
  639. package/dist/hooks/prerun/flushTelemetry.worker.js.map +1 -0
  640. package/dist/hooks/prerun/injectEnvVariables.js +31 -0
  641. package/dist/hooks/prerun/injectEnvVariables.js.map +1 -0
  642. package/dist/hooks/prerun/setupTelemetry.js +72 -0
  643. package/dist/hooks/prerun/setupTelemetry.js.map +1 -0
  644. package/dist/hooks/prerun/warnings.js +6 -0
  645. package/dist/hooks/prerun/warnings.js.map +1 -0
  646. package/dist/index.d.ts +2326 -0
  647. package/dist/index.js +6 -0
  648. package/dist/index.js.map +1 -0
  649. package/dist/prompts/init/nextjs.js +56 -0
  650. package/dist/prompts/init/nextjs.js.map +1 -0
  651. package/dist/prompts/init/promptForTypescript.js +9 -0
  652. package/dist/prompts/init/promptForTypescript.js.map +1 -0
  653. package/dist/prompts/promptForDataset.js +32 -0
  654. package/dist/prompts/promptForDataset.js.map +1 -0
  655. package/dist/prompts/promptForDatasetAclMode.js +27 -0
  656. package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
  657. package/dist/prompts/promptForDatasetAliasName.js +17 -0
  658. package/dist/prompts/promptForDatasetAliasName.js.map +1 -0
  659. package/dist/prompts/promptForDatasetName.js +20 -0
  660. package/dist/prompts/promptForDatasetName.js.map +1 -0
  661. package/dist/prompts/promptForDefaultConfig.js +12 -0
  662. package/dist/prompts/promptForDefaultConfig.js.map +1 -0
  663. package/dist/prompts/promptForMediaLibrary.js +37 -0
  664. package/dist/prompts/promptForMediaLibrary.js.map +1 -0
  665. package/dist/prompts/promptForOrganizationName.js +11 -0
  666. package/dist/prompts/promptForOrganizationName.js.map +1 -0
  667. package/dist/prompts/promptForProjectName.js +11 -0
  668. package/dist/prompts/promptForProjectName.js.map +1 -0
  669. package/dist/prompts/selectDataset.js +12 -0
  670. package/dist/prompts/selectDataset.js.map +1 -0
  671. package/dist/prompts/selectMediaLibrary.js +34 -0
  672. package/dist/prompts/selectMediaLibrary.js.map +1 -0
  673. package/dist/server/devServer.js +53 -0
  674. package/dist/server/devServer.js.map +1 -0
  675. package/dist/server/gracefulServerDeath.js +12 -0
  676. package/dist/server/gracefulServerDeath.js.map +1 -0
  677. package/dist/server/previewServer.js +93 -0
  678. package/dist/server/previewServer.js.map +1 -0
  679. package/dist/server/serverDebug.js +4 -0
  680. package/dist/server/serverDebug.js.map +1 -0
  681. package/dist/server/vite/plugin-sanity-basepath-redirect.js +25 -0
  682. package/dist/server/vite/plugin-sanity-basepath-redirect.js.map +1 -0
  683. package/dist/server/vite/plugin-sanity-build-entries.js +65 -0
  684. package/dist/server/vite/plugin-sanity-build-entries.js.map +1 -0
  685. package/dist/server/vite/plugin-sanity-favicons.js +72 -0
  686. package/dist/server/vite/plugin-sanity-favicons.js.map +1 -0
  687. package/dist/server/vite/plugin-sanity-runtime-rewrite.js +18 -0
  688. package/dist/server/vite/plugin-sanity-runtime-rewrite.js.map +1 -0
  689. package/dist/services/auth.js +13 -0
  690. package/dist/services/auth.js.map +1 -0
  691. package/dist/services/backup.js +51 -0
  692. package/dist/services/backup.js.map +1 -0
  693. package/dist/services/cors.js +38 -0
  694. package/dist/services/cors.js.map +1 -0
  695. package/dist/services/datasetAliases.js +64 -0
  696. package/dist/services/datasetAliases.js.map +1 -0
  697. package/dist/services/datasets.js +153 -0
  698. package/dist/services/datasets.js.map +1 -0
  699. package/dist/services/docs.js +46 -0
  700. package/dist/services/docs.js.map +1 -0
  701. package/dist/services/documents.js +56 -0
  702. package/dist/services/documents.js.map +1 -0
  703. package/dist/services/getProjectFeatures.js +16 -0
  704. package/dist/services/getProjectFeatures.js.map +1 -0
  705. package/dist/services/getUrlHeaders.js +36 -0
  706. package/dist/services/getUrlHeaders.js.map +1 -0
  707. package/dist/services/graphql.js +96 -0
  708. package/dist/services/graphql.js.map +1 -0
  709. package/dist/services/hooks.js +59 -0
  710. package/dist/services/hooks.js.map +1 -0
  711. package/dist/services/mcp.js +50 -0
  712. package/dist/services/mcp.js.map +1 -0
  713. package/dist/services/mediaLibraries.js +74 -0
  714. package/dist/services/mediaLibraries.js.map +1 -0
  715. package/dist/services/organizations.js +42 -0
  716. package/dist/services/organizations.js.map +1 -0
  717. package/dist/services/plans.js +37 -0
  718. package/dist/services/plans.js.map +1 -0
  719. package/dist/services/projects.js +119 -0
  720. package/dist/services/projects.js.map +1 -0
  721. package/dist/services/schemas.js +40 -0
  722. package/dist/services/schemas.js.map +1 -0
  723. package/dist/services/telemetry.js +80 -0
  724. package/dist/services/telemetry.js.map +1 -0
  725. package/dist/services/tokens.js +72 -0
  726. package/dist/services/tokens.js.map +1 -0
  727. package/dist/services/user.js +35 -0
  728. package/dist/services/user.js.map +1 -0
  729. package/dist/services/userApplications.js +164 -0
  730. package/dist/services/userApplications.js.map +1 -0
  731. package/dist/studioDependencies.js +24 -0
  732. package/dist/studioDependencies.js.map +1 -0
  733. package/dist/telemetry/build.telemetry.js +13 -0
  734. package/dist/telemetry/build.telemetry.js.map +1 -0
  735. package/dist/telemetry/cli.telemetry.js +8 -0
  736. package/dist/telemetry/cli.telemetry.js.map +1 -0
  737. package/dist/telemetry/extractSchema.telemetry.js +8 -0
  738. package/dist/telemetry/extractSchema.telemetry.js.map +1 -0
  739. package/dist/telemetry/init.telemetry.js +8 -0
  740. package/dist/telemetry/init.telemetry.js.map +1 -0
  741. package/dist/telemetry/login.telemetry.js +8 -0
  742. package/dist/telemetry/login.telemetry.js.map +1 -0
  743. package/dist/telemetry/mcp.telemetry.js +8 -0
  744. package/dist/telemetry/mcp.telemetry.js.map +1 -0
  745. package/dist/types.js +5 -0
  746. package/dist/types.js.map +1 -0
  747. package/dist/typings/deepSortObject.d.js +2 -0
  748. package/dist/typings/deepSortObject.d.js.map +1 -0
  749. package/dist/util/absolutify.js +26 -0
  750. package/dist/util/absolutify.js.map +1 -0
  751. package/dist/util/appId.js +58 -0
  752. package/dist/util/appId.js.map +1 -0
  753. package/dist/util/canLaunchBrowser.js +14 -0
  754. package/dist/util/canLaunchBrowser.js.map +1 -0
  755. package/dist/util/cliClient.js +41 -0
  756. package/dist/util/cliClient.js.map +1 -0
  757. package/dist/util/compareDependencyVersions.js +73 -0
  758. package/dist/util/compareDependencyVersions.js.map +1 -0
  759. package/dist/util/copy.js +37 -0
  760. package/dist/util/copy.js.map +1 -0
  761. package/dist/util/copyDir.js +63 -0
  762. package/dist/util/copyDir.js.map +1 -0
  763. package/dist/util/detectRuntime.js +20 -0
  764. package/dist/util/detectRuntime.js.map +1 -0
  765. package/dist/util/determineIsApp.js +9 -0
  766. package/dist/util/determineIsApp.js.map +1 -0
  767. package/dist/util/dirIsEmptyOrNonExistent.js +18 -0
  768. package/dist/util/dirIsEmptyOrNonExistent.js.map +1 -0
  769. package/dist/util/ensureTrailingSlash.js +12 -0
  770. package/dist/util/ensureTrailingSlash.js.map +1 -0
  771. package/dist/util/errorMessages.js +6 -0
  772. package/dist/util/errorMessages.js.map +1 -0
  773. package/dist/util/extractDocumentsFromNdjsonOrTarball.js +88 -0
  774. package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -0
  775. package/dist/util/findNdjsonEntry.js +21 -0
  776. package/dist/util/findNdjsonEntry.js.map +1 -0
  777. package/dist/util/formatSize.js +10 -0
  778. package/dist/util/formatSize.js.map +1 -0
  779. package/dist/util/frameworkPort.js +61 -0
  780. package/dist/util/frameworkPort.js.map +1 -0
  781. package/dist/util/fsUtils.js +34 -0
  782. package/dist/util/fsUtils.js.map +1 -0
  783. package/dist/util/getCliVersion.js +28 -0
  784. package/dist/util/getCliVersion.js.map +1 -0
  785. package/dist/util/getErrorMessage.js +19 -0
  786. package/dist/util/getErrorMessage.js.map +1 -0
  787. package/dist/util/getLocalPackageVersion.js +32 -0
  788. package/dist/util/getLocalPackageVersion.js.map +1 -0
  789. package/dist/util/getProjectDefaults.js +77 -0
  790. package/dist/util/getProjectDefaults.js.map +1 -0
  791. package/dist/util/getSanityEnv.js +3 -0
  792. package/dist/util/getSanityEnv.js.map +1 -0
  793. package/dist/util/getSharedServerConfig.js +31 -0
  794. package/dist/util/getSharedServerConfig.js.map +1 -0
  795. package/dist/util/getWorkspace.js +18 -0
  796. package/dist/util/getWorkspace.js.map +1 -0
  797. package/dist/util/humanFileSize.js +12 -0
  798. package/dist/util/humanFileSize.js.map +1 -0
  799. package/dist/util/importStudioConfig.js +40 -0
  800. package/dist/util/importStudioConfig.js.map +1 -0
  801. package/dist/util/isPathDirName.js +6 -0
  802. package/dist/util/isPathDirName.js.map +1 -0
  803. package/dist/util/isSanityDocumentish.js +20 -0
  804. package/dist/util/isSanityDocumentish.js.map +1 -0
  805. package/dist/util/loadEnv.js +3 -0
  806. package/dist/util/loadEnv.js.map +1 -0
  807. package/dist/util/moduleFormatUtils.js +18 -0
  808. package/dist/util/moduleFormatUtils.js.map +1 -0
  809. package/dist/util/packageManager/installPackages.js +87 -0
  810. package/dist/util/packageManager/installPackages.js.map +1 -0
  811. package/dist/util/packageManager/packageManagerChoice.js +181 -0
  812. package/dist/util/packageManager/packageManagerChoice.js.map +1 -0
  813. package/dist/util/packageManager/upgradePackages.js +69 -0
  814. package/dist/util/packageManager/upgradePackages.js.map +1 -0
  815. package/dist/util/parseArguments.js +42 -0
  816. package/dist/util/parseArguments.js.map +1 -0
  817. package/dist/util/pluralize.js +11 -0
  818. package/dist/util/pluralize.js.map +1 -0
  819. package/dist/util/readModuleVersion.js +15 -0
  820. package/dist/util/readModuleVersion.js.map +1 -0
  821. package/dist/util/readPackageJson.js +44 -0
  822. package/dist/util/readPackageJson.js.map +1 -0
  823. package/dist/util/readPackageManifest.js +46 -0
  824. package/dist/util/readPackageManifest.js.map +1 -0
  825. package/dist/util/readdirRecursive.js +24 -0
  826. package/dist/util/readdirRecursive.js.map +1 -0
  827. package/dist/util/resolveLatestVersions.js +21 -0
  828. package/dist/util/resolveLatestVersions.js.map +1 -0
  829. package/dist/util/toInt.js +9 -0
  830. package/dist/util/toInt.js.map +1 -0
  831. package/dist/util/trimHashFromVersion.js +8 -0
  832. package/dist/util/trimHashFromVersion.js.map +1 -0
  833. package/dist/util/uniqBy.js +14 -0
  834. package/dist/util/uniqBy.js.map +1 -0
  835. package/dist/util/validation/validateDocumentsUtils.js +33 -0
  836. package/dist/util/validation/validateDocumentsUtils.js.map +1 -0
  837. package/dist/util/warnAboutMissingAppId.js +15 -0
  838. package/dist/util/warnAboutMissingAppId.js.map +1 -0
  839. package/dist/util/warnOnNonProductionEnvironment.js +18 -0
  840. package/dist/util/warnOnNonProductionEnvironment.js.map +1 -0
  841. package/dist/util/workerChannels.js +172 -0
  842. package/dist/util/workerChannels.js.map +1 -0
  843. package/oclif.config.js +21 -0
  844. package/oclif.manifest.json +4154 -0
  845. package/package.json +138 -98
  846. package/templates/app-quickstart/src/App.css +3 -1
  847. package/templates/app-quickstart/src/App.tsx +1 -1
  848. package/templates/app-sanity-ui/src/App.tsx +2 -2
  849. package/templates/app-sanity-ui/src/ExampleComponent.tsx +2 -1
  850. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +3 -3
  851. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +2 -2
  852. package/templates/shopify/components/hotspots/ProductTooltip.tsx +1 -1
  853. package/templates/shopify/components/icons/Shopify.tsx +0 -2
  854. package/templates/shopify/components/inputs/CollectionHidden.tsx +0 -1
  855. package/templates/shopify/components/media/ColorTheme.tsx +1 -1
  856. package/templates/shopify/constants.ts +4 -4
  857. package/templates/shopify/plugins/customDocumentActions/index.ts +2 -2
  858. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +1 -1
  859. package/templates/shopify/schemaTypes/documents/collection.tsx +1 -2
  860. package/templates/shopify/schemaTypes/documents/page.ts +1 -1
  861. package/templates/shopify/schemaTypes/documents/product.tsx +1 -1
  862. package/templates/shopify/schemaTypes/documents/productVariant.tsx +2 -3
  863. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +0 -1
  864. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +1 -3
  865. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +0 -1
  866. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +2 -3
  867. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +1 -1
  868. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +1 -2
  869. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +1 -2
  870. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +7 -7
  871. package/templates/shopify/schemaTypes/singletons/homeType.ts +8 -8
  872. package/templates/shopify/structure/collectionStructure.ts +4 -1
  873. package/templates/shopify/structure/colorThemeStructure.ts +1 -1
  874. package/templates/shopify/structure/homeStructure.ts +2 -2
  875. package/templates/shopify/structure/index.ts +1 -1
  876. package/templates/shopify/structure/pageStructure.ts +2 -2
  877. package/templates/shopify/structure/productStructure.ts +7 -7
  878. package/templates/shopify/structure/settingStructure.ts +1 -1
  879. package/templates/shopify/utils/defineStructure.ts +1 -1
  880. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +1 -1
  881. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +1 -1
  882. package/templates/shopify-online-storefront/structure/collectionStructure.ts +4 -1
  883. package/templates/shopify-online-storefront/structure/productStructure.ts +4 -4
  884. package/templates/shopify-online-storefront/utils/defineStructure.ts +1 -1
  885. package/bin/dev.js +0 -30
  886. package/bin/sanity +0 -14
  887. package/lib/_chunks-cjs/cli.js +0 -70870
  888. package/lib/_chunks-cjs/cli.js.map +0 -1
  889. package/lib/_chunks-cjs/cliWorker.js +0 -19
  890. package/lib/_chunks-cjs/cliWorker.js.map +0 -1
  891. package/lib/_chunks-cjs/generateAction.js +0 -128
  892. package/lib/_chunks-cjs/generateAction.js.map +0 -1
  893. package/lib/_chunks-cjs/getCliConfig.js +0 -89
  894. package/lib/_chunks-cjs/getCliConfig.js.map +0 -1
  895. package/lib/_chunks-cjs/index.js +0 -31
  896. package/lib/_chunks-cjs/index.js.map +0 -1
  897. package/lib/_chunks-cjs/journeyConfig.js +0 -113
  898. package/lib/_chunks-cjs/journeyConfig.js.map +0 -1
  899. package/lib/_chunks-cjs/loadEnv.js +0 -347
  900. package/lib/_chunks-cjs/loadEnv.js.map +0 -1
  901. package/lib/_chunks-dts/types.d.ts +0 -432
  902. package/lib/cli.d.ts +0 -7
  903. package/lib/cli.js +0 -10
  904. package/lib/cli.js.map +0 -1
  905. package/lib/index.d.ts +0 -44
  906. package/lib/index.js +0 -46
  907. package/lib/index.js.map +0 -1
  908. package/lib/run.d.ts +0 -1
  909. package/lib/run.js +0 -8
  910. package/lib/run.js.map +0 -1
  911. package/lib/workers/getAndWriteJourneySchema.d.ts +0 -1
  912. package/lib/workers/getAndWriteJourneySchema.js +0 -4
  913. package/lib/workers/getAndWriteJourneySchema.js.map +0 -1
  914. package/lib/workers/getCliConfig.d.ts +0 -1
  915. package/lib/workers/getCliConfig.js +0 -10
  916. package/lib/workers/getCliConfig.js.map +0 -1
  917. package/lib/workers/typegenGenerate.d.ts +0 -18
  918. package/lib/workers/typegenGenerate.js +0 -47
  919. package/lib/workers/typegenGenerate.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/deleteSchemaAction.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {type Output} from '@sanity/cli-core'\n\nimport {deleteSchema} from '../../services/schemas.js'\nimport {isDefined} from '../manifest/schemaTypeHelpers.js'\nimport {type SchemaStoreActionResult} from './schemaStoreTypes.js'\nimport {ensureManifestExtractSatisfied} from './utils/manifestExtractor.js'\nimport {createManifestReader} from './utils/manifestReader.js'\nimport {getDatasetsOutString, getStringList} from './utils/schemaStoreOutStrings.js'\nimport {\n filterLogReadProjectIdMismatch,\n type WorkspaceSchemaId,\n} from './utils/schemaStoreValidation.js'\n\n// Native implementation instead of lodash/uniq\nfunction uniq<T>(array: T[]): T[] {\n return [...new Set(array)]\n}\n\ninterface DeleteSchemasOptions {\n extractManifest: boolean\n ids: WorkspaceSchemaId[]\n manifestDir: string\n output: Output\n projectId: string\n verbose: boolean\n workDir: string\n\n dataset?: string\n}\n\ninterface DeleteResult {\n dataset: string\n deleted: boolean\n schemaId: string\n}\n\nclass DeleteIdError extends Error {\n public dataset: string\n public id: string\n constructor(id: string, dataset: string, options?: ErrorOptions) {\n super((options?.cause as {message?: string})?.message, options)\n this.name = 'DeleteIdError'\n this.id = id\n this.dataset = dataset\n }\n}\n\n/**\n * Deletes all stored schemas matching --ids in workspace datasets.\n *\n * Workspaces are determined by on-disk manifest file – not directly from sanity.config.\n * All schema store actions require a manifest to exist, so we regenerate it by default.\n * Manifest generation can be optionally disabled with --no-manifest-extract.\n * In this case the command uses and existing file or throws when missing.\n */\nexport async function deleteSchemaAction(\n options: DeleteSchemasOptions,\n): Promise<SchemaStoreActionResult> {\n const {dataset, extractManifest, ids, manifestDir, output, projectId, verbose, workDir} = options\n\n if (\n !(await ensureManifestExtractSatisfied({\n extractManifest,\n manifestDir,\n output,\n schemaRequired: true,\n workDir,\n }))\n ) {\n return 'failure'\n }\n\n const manifest = await createManifestReader({\n manifestDir,\n output,\n workDir,\n }).getManifest()\n\n const workspaces = manifest.workspaces\n .filter((workspace) => !dataset || workspace.dataset === dataset)\n .filter((workspace) => filterLogReadProjectIdMismatch(workspace, projectId, output))\n\n const datasets = uniq(workspaces.map((w) => w.dataset))\n\n const results = await Promise.allSettled(\n datasets.flatMap((targetDataset: string) => {\n return ids.map(async ({schemaId}): Promise<DeleteResult> => {\n try {\n const deletedSchema = await deleteSchema(targetDataset, projectId, schemaId)\n return {dataset: targetDataset, deleted: deletedSchema.deleted, schemaId}\n } catch (err) {\n throw new DeleteIdError(schemaId, targetDataset, {cause: err})\n }\n })\n }),\n )\n\n const deletedIds = results\n .filter((r): r is PromiseFulfilledResult<DeleteResult> => r.status === 'fulfilled')\n .filter((r) => r.value.deleted)\n .map((r) => r.value)\n\n const notFound = uniq(\n results\n .filter((r): r is PromiseFulfilledResult<DeleteResult> => r.status === 'fulfilled')\n .filter((r) => !r.value.deleted)\n .filter((r) => !deletedIds.map(({schemaId}) => schemaId).includes(r.value.schemaId))\n .map((r) => r.value.schemaId),\n )\n\n const deleteFailureIds = uniq(\n results\n .filter((r) => r.status === 'rejected')\n .map((result) => {\n const error = result.reason\n if (error instanceof DeleteIdError) {\n output.warn(\n styleText(\n 'red',\n [\n `Failed to delete schema \"${error.id}\" in dataset \"${error.dataset}\":`,\n error.message,\n ].join('\\n'),\n ),\n )\n if (verbose) output.warn(error)\n return error.id\n }\n //hubris inc: given the try-catch wrapping the full promise \"this should never happen\"\n throw error\n }),\n )\n\n // Compare unique schema IDs deleted vs requested (not total deletions across datasets)\n const uniqueDeletedSchemaIds = uniq(deletedIds.map(({schemaId}) => schemaId))\n const success = uniqueDeletedSchemaIds.length === ids.length\n if (success) {\n output.log(`Successfully deleted ${uniqueDeletedSchemaIds.length}/${ids.length} schemas`)\n } else {\n output.error(\n [\n `Deleted ${uniqueDeletedSchemaIds.length}/${ids.length} schemas.`,\n deletedIds.length > 0\n ? `Successfully deleted ids:\\n${deletedIds\n .map(\n ({dataset: targetDataset, schemaId}) =>\n `- \"${schemaId}\" (in ${getDatasetsOutString([targetDataset])})`,\n )\n .join('\\n')}`\n : undefined,\n notFound.length > 0\n ? `Ids not found in ${getDatasetsOutString(datasets)}:\\n${getStringList(notFound)}`\n : undefined,\n ...(deleteFailureIds.length > 0\n ? [`Failed to delete ids:\\n${getStringList(deleteFailureIds)}`, 'Check logs for errors.']\n : []),\n ]\n .filter((item) => isDefined(item))\n .join('\\n'),\n )\n }\n\n return success ? 'success' : 'failure'\n}\n"],"names":["styleText","deleteSchema","isDefined","ensureManifestExtractSatisfied","createManifestReader","getDatasetsOutString","getStringList","filterLogReadProjectIdMismatch","uniq","array","Set","DeleteIdError","Error","dataset","id","options","cause","message","name","deleteSchemaAction","extractManifest","ids","manifestDir","output","projectId","verbose","workDir","schemaRequired","manifest","getManifest","workspaces","filter","workspace","datasets","map","w","results","Promise","allSettled","flatMap","targetDataset","schemaId","deletedSchema","deleted","err","deletedIds","r","status","value","notFound","includes","deleteFailureIds","result","error","reason","warn","join","uniqueDeletedSchemaIds","success","length","log","undefined","item"],"mappings":"AAAA,SAAQA,SAAS,QAAO,YAAW;AAInC,SAAQC,YAAY,QAAO,4BAA2B;AACtD,SAAQC,SAAS,QAAO,mCAAkC;AAE1D,SAAQC,8BAA8B,QAAO,+BAA8B;AAC3E,SAAQC,oBAAoB,QAAO,4BAA2B;AAC9D,SAAQC,oBAAoB,EAAEC,aAAa,QAAO,mCAAkC;AACpF,SACEC,8BAA8B,QAEzB,mCAAkC;AAEzC,+CAA+C;AAC/C,SAASC,KAAQC,KAAU;IACzB,OAAO;WAAI,IAAIC,IAAID;KAAO;AAC5B;AAoBA,MAAME,sBAAsBC;IACnBC,QAAe;IACfC,GAAU;IACjB,YAAYA,EAAU,EAAED,OAAe,EAAEE,OAAsB,CAAE;QAC/D,KAAK,CAAEA,SAASC,OAA8BC,SAASF;QACvD,IAAI,CAACG,IAAI,GAAG;QACZ,IAAI,CAACJ,EAAE,GAAGA;QACV,IAAI,CAACD,OAAO,GAAGA;IACjB;AACF;AAEA;;;;;;;CAOC,GACD,OAAO,eAAeM,mBACpBJ,OAA6B;IAE7B,MAAM,EAACF,OAAO,EAAEO,eAAe,EAAEC,GAAG,EAAEC,WAAW,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,OAAO,EAAC,GAAGX;IAE1F,IACE,CAAE,MAAMZ,+BAA+B;QACrCiB;QACAE;QACAC;QACAI,gBAAgB;QAChBD;IACF,IACA;QACA,OAAO;IACT;IAEA,MAAME,WAAW,MAAMxB,qBAAqB;QAC1CkB;QACAC;QACAG;IACF,GAAGG,WAAW;IAEd,MAAMC,aAAaF,SAASE,UAAU,CACnCC,MAAM,CAAC,CAACC,YAAc,CAACnB,WAAWmB,UAAUnB,OAAO,KAAKA,SACxDkB,MAAM,CAAC,CAACC,YAAczB,+BAA+ByB,WAAWR,WAAWD;IAE9E,MAAMU,WAAWzB,KAAKsB,WAAWI,GAAG,CAAC,CAACC,IAAMA,EAAEtB,OAAO;IAErD,MAAMuB,UAAU,MAAMC,QAAQC,UAAU,CACtCL,SAASM,OAAO,CAAC,CAACC;QAChB,OAAOnB,IAAIa,GAAG,CAAC,OAAO,EAACO,QAAQ,EAAC;YAC9B,IAAI;gBACF,MAAMC,gBAAgB,MAAMzC,aAAauC,eAAehB,WAAWiB;gBACnE,OAAO;oBAAC5B,SAAS2B;oBAAeG,SAASD,cAAcC,OAAO;oBAAEF;gBAAQ;YAC1E,EAAE,OAAOG,KAAK;gBACZ,MAAM,IAAIjC,cAAc8B,UAAUD,eAAe;oBAACxB,OAAO4B;gBAAG;YAC9D;QACF;IACF;IAGF,MAAMC,aAAaT,QAChBL,MAAM,CAAC,CAACe,IAAiDA,EAAEC,MAAM,KAAK,aACtEhB,MAAM,CAAC,CAACe,IAAMA,EAAEE,KAAK,CAACL,OAAO,EAC7BT,GAAG,CAAC,CAACY,IAAMA,EAAEE,KAAK;IAErB,MAAMC,WAAWzC,KACf4B,QACGL,MAAM,CAAC,CAACe,IAAiDA,EAAEC,MAAM,KAAK,aACtEhB,MAAM,CAAC,CAACe,IAAM,CAACA,EAAEE,KAAK,CAACL,OAAO,EAC9BZ,MAAM,CAAC,CAACe,IAAM,CAACD,WAAWX,GAAG,CAAC,CAAC,EAACO,QAAQ,EAAC,GAAKA,UAAUS,QAAQ,CAACJ,EAAEE,KAAK,CAACP,QAAQ,GACjFP,GAAG,CAAC,CAACY,IAAMA,EAAEE,KAAK,CAACP,QAAQ;IAGhC,MAAMU,mBAAmB3C,KACvB4B,QACGL,MAAM,CAAC,CAACe,IAAMA,EAAEC,MAAM,KAAK,YAC3Bb,GAAG,CAAC,CAACkB;QACJ,MAAMC,QAAQD,OAAOE,MAAM;QAC3B,IAAID,iBAAiB1C,eAAe;YAClCY,OAAOgC,IAAI,CACTvD,UACE,OACA;gBACE,CAAC,yBAAyB,EAAEqD,MAAMvC,EAAE,CAAC,cAAc,EAAEuC,MAAMxC,OAAO,CAAC,EAAE,CAAC;gBACtEwC,MAAMpC,OAAO;aACd,CAACuC,IAAI,CAAC;YAGX,IAAI/B,SAASF,OAAOgC,IAAI,CAACF;YACzB,OAAOA,MAAMvC,EAAE;QACjB;QACA,sFAAsF;QACtF,MAAMuC;IACR;IAGJ,uFAAuF;IACvF,MAAMI,yBAAyBjD,KAAKqC,WAAWX,GAAG,CAAC,CAAC,EAACO,QAAQ,EAAC,GAAKA;IACnE,MAAMiB,UAAUD,uBAAuBE,MAAM,KAAKtC,IAAIsC,MAAM;IAC5D,IAAID,SAAS;QACXnC,OAAOqC,GAAG,CAAC,CAAC,qBAAqB,EAAEH,uBAAuBE,MAAM,CAAC,CAAC,EAAEtC,IAAIsC,MAAM,CAAC,QAAQ,CAAC;IAC1F,OAAO;QACLpC,OAAO8B,KAAK,CACV;YACE,CAAC,QAAQ,EAAEI,uBAAuBE,MAAM,CAAC,CAAC,EAAEtC,IAAIsC,MAAM,CAAC,SAAS,CAAC;YACjEd,WAAWc,MAAM,GAAG,IAChB,CAAC,2BAA2B,EAAEd,WAC3BX,GAAG,CACF,CAAC,EAACrB,SAAS2B,aAAa,EAAEC,QAAQ,EAAC,GACjC,CAAC,GAAG,EAAEA,SAAS,MAAM,EAAEpC,qBAAqB;oBAACmC;iBAAc,EAAE,CAAC,CAAC,EAElEgB,IAAI,CAAC,OAAO,GACfK;YACJZ,SAASU,MAAM,GAAG,IACd,CAAC,iBAAiB,EAAEtD,qBAAqB4B,UAAU,GAAG,EAAE3B,cAAc2C,WAAW,GACjFY;eACAV,iBAAiBQ,MAAM,GAAG,IAC1B;gBAAC,CAAC,uBAAuB,EAAErD,cAAc6C,mBAAmB;gBAAE;aAAyB,GACvF,EAAE;SACP,CACEpB,MAAM,CAAC,CAAC+B,OAAS5D,UAAU4D,OAC3BN,IAAI,CAAC;IAEZ;IAEA,OAAOE,UAAU,YAAY;AAC/B"}
@@ -0,0 +1,98 @@
1
+ import { styleText } from 'node:util';
2
+ import { updateSchemas } from '../../services/schemas.js';
3
+ import { CURRENT_WORKSPACE_SCHEMA_VERSION } from '../manifest/types.js';
4
+ import { schemasDeployDebug } from './utils/debug.js';
5
+ import { ensureManifestExtractSatisfied } from './utils/manifestExtractor.js';
6
+ import { createManifestReader } from './utils/manifestReader.js';
7
+ import { FlagValidationError, SCHEMA_PERMISSION_HELP_TEXT } from './utils/schemaStoreValidation.js';
8
+ import { getWorkspaceSchemaId } from './utils/workspaceSchemaId.js';
9
+ export async function deploySchemas(options) {
10
+ const { extractManifest, manifestDir, manifestSafe, output, schemaRequired, tag, verbose, workDir, workspaceName } = options;
11
+ if (!await ensureManifestExtractSatisfied({
12
+ extractManifest,
13
+ manifestDir,
14
+ manifestSafe,
15
+ output,
16
+ schemaRequired,
17
+ workDir
18
+ })) {
19
+ return 'failure';
20
+ }
21
+ try {
22
+ const manifestReader = await createManifestReader({
23
+ manifestDir,
24
+ output,
25
+ workDir
26
+ });
27
+ const manifest = await manifestReader.getManifest();
28
+ const workspaces = manifest.workspaces.filter((workspace)=>!workspaceName || workspace.name === workspaceName);
29
+ if (workspaces.length === 0) {
30
+ const error = workspaceName ? new FlagValidationError(`Found no workspaces named "${workspaceName}"`) : new Error('Workspace array in manifest is empty.');
31
+ throw error;
32
+ }
33
+ const updateSchema = getUpdateSchema({
34
+ manifestReader,
35
+ output,
36
+ tag,
37
+ verbose
38
+ });
39
+ /* Known caveat: we _don't_ rollback failed operations or partial success */ const results = await Promise.allSettled(workspaces.map(async (workspace)=>{
40
+ await updateSchema(workspace);
41
+ }));
42
+ const fulfilledUpdates = results.filter((result)=>result.status === 'fulfilled');
43
+ const rejectedUpdates = results.filter((result)=>result.status === 'rejected');
44
+ if (rejectedUpdates.length > 0) {
45
+ throw new Error(`Failed to deploy ${rejectedUpdates.length}/${workspaces.length} schemas. Successfully deployed ${fulfilledUpdates.length}/${workspaces.length} schemas.`);
46
+ }
47
+ output.log(`Deployed ${fulfilledUpdates.length}/${workspaces.length} schemas`);
48
+ return 'success';
49
+ } catch (err) {
50
+ if (schemaRequired || err instanceof FlagValidationError) {
51
+ output.error(err.message);
52
+ } else {
53
+ output.error(`↳ Error when storing schemas:\n ${err.message}`);
54
+ }
55
+ schemasDeployDebug('Error updating schemas', err.message);
56
+ return 'failure';
57
+ } finally{
58
+ output.log(`${styleText('gray', '↳ List deployed schemas with:')} ${styleText('cyan', 'sanity schema list')}`);
59
+ }
60
+ }
61
+ function getUpdateSchema(args) {
62
+ const { manifestReader, output, tag, verbose } = args;
63
+ return async (workspace)=>{
64
+ const { dataset, projectId } = workspace;
65
+ const { idWarning, safeBaseId: id } = getWorkspaceSchemaId({
66
+ tag,
67
+ workspaceName: workspace.name
68
+ });
69
+ if (idWarning) output.warn(idWarning);
70
+ try {
71
+ const schema = await manifestReader.getWorkspaceSchema(workspace.name);
72
+ await updateSchemas(dataset, projectId, [
73
+ {
74
+ // the API will stringify the schema – we send as JSON
75
+ schema,
76
+ tag,
77
+ version: CURRENT_WORKSPACE_SCHEMA_VERSION,
78
+ workspace: {
79
+ name: workspace.name,
80
+ title: workspace.title
81
+ }
82
+ }
83
+ ]);
84
+ if (verbose) {
85
+ output.log(styleText('gray', `↳ schemaId: ${id}, projectId: ${projectId}, dataset: ${dataset}`));
86
+ }
87
+ } catch (err) {
88
+ if ('statusCode' in err && err?.statusCode === 401) {
89
+ output.warn(`↳ No permissions to write schema for workspace "${workspace.name}" in dataset "${workspace.dataset}". ${SCHEMA_PERMISSION_HELP_TEXT}:\n ${styleText('red', `${err.message}`)}`);
90
+ } else {
91
+ output.error(`↳ Error deploying schema for workspace "${workspace.name}":\n ${styleText('red', `${err.message}`)}`);
92
+ }
93
+ throw err;
94
+ }
95
+ };
96
+ }
97
+
98
+ //# sourceMappingURL=deploySchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/deploySchemas.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {type Output} from '@sanity/cli-core'\n\nimport {type DeploySchemaCommand} from '../../commands/schema/deploy'\nimport {updateSchemas} from '../../services/schemas.js'\nimport {\n CURRENT_WORKSPACE_SCHEMA_VERSION,\n type ManifestWorkspaceFile,\n type StoredWorkspaceSchema,\n} from '../manifest/types.js'\nimport {type SchemaStoreActionResult} from './schemaStoreTypes.js'\nimport {schemasDeployDebug} from './utils/debug.js'\nimport {ensureManifestExtractSatisfied} from './utils/manifestExtractor.js'\nimport {type CreateManifestReader, createManifestReader} from './utils/manifestReader.js'\nimport {FlagValidationError, SCHEMA_PERMISSION_HELP_TEXT} from './utils/schemaStoreValidation.js'\nimport {getWorkspaceSchemaId} from './utils/workspaceSchemaId.js'\n\ninterface DeploySchemasOptions {\n extractManifest: boolean\n manifestDir: string\n output: Output\n verbose: boolean\n workDir: string\n\n manifestSafe?: boolean\n schemaRequired?: boolean\n tag?: string\n workspaceName?: string\n}\n\nexport async function deploySchemas(\n options: DeploySchemasOptions,\n): Promise<SchemaStoreActionResult> {\n const {\n extractManifest,\n manifestDir,\n manifestSafe,\n output,\n schemaRequired,\n tag,\n verbose,\n workDir,\n workspaceName,\n } = options\n\n if (\n !(await ensureManifestExtractSatisfied({\n extractManifest,\n manifestDir,\n manifestSafe,\n output,\n schemaRequired,\n workDir,\n }))\n ) {\n return 'failure'\n }\n\n try {\n const manifestReader = await createManifestReader({\n manifestDir,\n output,\n workDir,\n })\n const manifest = await manifestReader.getManifest()\n const workspaces = manifest.workspaces.filter(\n (workspace) => !workspaceName || workspace.name === workspaceName,\n )\n\n if (workspaces.length === 0) {\n const error = workspaceName\n ? new FlagValidationError(`Found no workspaces named \"${workspaceName}\"`)\n : new Error('Workspace array in manifest is empty.')\n throw error\n }\n\n const updateSchema = getUpdateSchema({\n manifestReader,\n output,\n tag,\n verbose,\n })\n\n /* Known caveat: we _don't_ rollback failed operations or partial success */\n const results = await Promise.allSettled(\n workspaces.map(async (workspace: ManifestWorkspaceFile): Promise<void> => {\n await updateSchema(workspace)\n }),\n )\n\n const fulfilledUpdates = results.filter((result) => result.status === 'fulfilled')\n const rejectedUpdates = results.filter((result) => result.status === 'rejected')\n\n if (rejectedUpdates.length > 0) {\n throw new Error(\n `Failed to deploy ${rejectedUpdates.length}/${workspaces.length} schemas. Successfully deployed ${fulfilledUpdates.length}/${workspaces.length} schemas.`,\n )\n }\n\n output.log(`Deployed ${fulfilledUpdates.length}/${workspaces.length} schemas`)\n return 'success'\n } catch (err) {\n if (schemaRequired || err instanceof FlagValidationError) {\n output.error(err.message)\n } else {\n output.error(`↳ Error when storing schemas:\\n ${err.message}`)\n }\n schemasDeployDebug('Error updating schemas', err.message)\n return 'failure'\n } finally {\n output.log(\n `${styleText('gray', '↳ List deployed schemas with:')} ${styleText('cyan', 'sanity schema list')}`,\n )\n }\n}\n\nfunction getUpdateSchema(args: {\n manifestReader: CreateManifestReader\n output: DeploySchemaCommand['flags']['output']\n tag?: string\n verbose: boolean\n}): (workspace: ManifestWorkspaceFile) => Promise<void> {\n const {manifestReader, output, tag, verbose} = args\n\n return async (workspace) => {\n const {dataset, projectId} = workspace\n\n const {idWarning, safeBaseId: id} = getWorkspaceSchemaId({\n tag,\n workspaceName: workspace.name,\n })\n\n if (idWarning) output.warn(idWarning)\n\n try {\n const schema = await manifestReader.getWorkspaceSchema(workspace.name)\n\n await updateSchemas<Omit<StoredWorkspaceSchema, '_id' | '_type'>[]>(dataset, projectId, [\n {\n // the API will stringify the schema – we send as JSON\n schema,\n tag,\n version: CURRENT_WORKSPACE_SCHEMA_VERSION,\n workspace: {\n name: workspace.name,\n title: workspace.title,\n },\n },\n ])\n\n if (verbose) {\n output.log(\n styleText('gray', `↳ schemaId: ${id}, projectId: ${projectId}, dataset: ${dataset}`),\n )\n }\n } catch (err) {\n if ('statusCode' in err && err?.statusCode === 401) {\n output.warn(\n `↳ No permissions to write schema for workspace \"${workspace.name}\" in dataset \"${workspace.dataset}\". ${\n SCHEMA_PERMISSION_HELP_TEXT\n }:\\n ${styleText('red', `${err.message}`)}`,\n )\n } else {\n output.error(\n `↳ Error deploying schema for workspace \"${workspace.name}\":\\n ${styleText('red', `${err.message}`)}`,\n )\n }\n\n throw err\n }\n }\n}\n"],"names":["styleText","updateSchemas","CURRENT_WORKSPACE_SCHEMA_VERSION","schemasDeployDebug","ensureManifestExtractSatisfied","createManifestReader","FlagValidationError","SCHEMA_PERMISSION_HELP_TEXT","getWorkspaceSchemaId","deploySchemas","options","extractManifest","manifestDir","manifestSafe","output","schemaRequired","tag","verbose","workDir","workspaceName","manifestReader","manifest","getManifest","workspaces","filter","workspace","name","length","error","Error","updateSchema","getUpdateSchema","results","Promise","allSettled","map","fulfilledUpdates","result","status","rejectedUpdates","log","err","message","args","dataset","projectId","idWarning","safeBaseId","id","warn","schema","getWorkspaceSchema","version","title","statusCode"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { isMainThread, parentPort, workerData } from 'node:worker_threads';
2
+ import { getStudioWorkspaces } from '@sanity/cli-core';
3
+ import { extractSchema } from '@sanity/schema/_internal';
4
+ import { getWorkspace } from '../../util/getWorkspace.js';
5
+ import { extractSchemaWorkerData } from './types.js';
6
+ import { extractValidationFromSchemaError } from './utils/extractValidationFromSchemaError.js';
7
+ if (isMainThread || !parentPort) {
8
+ throw new Error('Should only be run in a worker!');
9
+ }
10
+ const { configPath, enforceRequiredFields, workDir, workspaceName } = extractSchemaWorkerData.parse(workerData);
11
+ try {
12
+ const workspaces = await getStudioWorkspaces(configPath);
13
+ if (workspaces.length === 0) {
14
+ throw new Error('Failed to resolve configuration');
15
+ }
16
+ const workspace = getWorkspace(workspaces, workspaceName);
17
+ const schema = extractSchema(workspace.schema, {
18
+ enforceRequiredFields
19
+ });
20
+ parentPort.postMessage({
21
+ schema,
22
+ type: 'success'
23
+ });
24
+ } catch (error) {
25
+ const validation = await extractValidationFromSchemaError(error, workDir);
26
+ parentPort.postMessage({
27
+ error: error instanceof Error ? error.message : String(error),
28
+ type: 'error',
29
+ validation
30
+ });
31
+ }
32
+ // Explicitly exit the process to avoid any dangling references from keeping
33
+ // the process alive after resolving it's main task
34
+ setImmediate(()=>{
35
+ process.exit(1);
36
+ });
37
+
38
+ //# sourceMappingURL=extractSanitySchema.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/extractSanitySchema.worker.ts"],"sourcesContent":["import {isMainThread, parentPort, workerData} from 'node:worker_threads'\n\nimport {getStudioWorkspaces} from '@sanity/cli-core'\nimport {extractSchema} from '@sanity/schema/_internal'\n\nimport {getWorkspace} from '../../util/getWorkspace.js'\nimport {extractSchemaWorkerData} from './types.js'\nimport {extractValidationFromSchemaError} from './utils/extractValidationFromSchemaError.js'\n\nif (isMainThread || !parentPort) {\n throw new Error('Should only be run in a worker!')\n}\n\nconst {configPath, enforceRequiredFields, workDir, workspaceName} =\n extractSchemaWorkerData.parse(workerData)\n\ntry {\n const workspaces = await getStudioWorkspaces(configPath)\n if (workspaces.length === 0) {\n throw new Error('Failed to resolve configuration')\n }\n\n const workspace = getWorkspace(workspaces, workspaceName)\n const schema = extractSchema(workspace.schema, {\n enforceRequiredFields,\n })\n\n parentPort.postMessage({\n schema,\n type: 'success',\n })\n} catch (error) {\n const validation = await extractValidationFromSchemaError(error, workDir)\n parentPort.postMessage({\n error: error instanceof Error ? error.message : String(error),\n type: 'error',\n validation,\n })\n}\n\n// Explicitly exit the process to avoid any dangling references from keeping\n// the process alive after resolving it's main task\nsetImmediate(() => {\n process.exit(1)\n})\n"],"names":["isMainThread","parentPort","workerData","getStudioWorkspaces","extractSchema","getWorkspace","extractSchemaWorkerData","extractValidationFromSchemaError","Error","configPath","enforceRequiredFields","workDir","workspaceName","parse","workspaces","length","workspace","schema","postMessage","type","error","validation","message","String","setImmediate","process","exit"],"mappings":"AAAA,SAAQA,YAAY,EAAEC,UAAU,EAAEC,UAAU,QAAO,sBAAqB;AAExE,SAAQC,mBAAmB,QAAO,mBAAkB;AACpD,SAAQC,aAAa,QAAO,2BAA0B;AAEtD,SAAQC,YAAY,QAAO,6BAA4B;AACvD,SAAQC,uBAAuB,QAAO,aAAY;AAClD,SAAQC,gCAAgC,QAAO,8CAA6C;AAE5F,IAAIP,gBAAgB,CAACC,YAAY;IAC/B,MAAM,IAAIO,MAAM;AAClB;AAEA,MAAM,EAACC,UAAU,EAAEC,qBAAqB,EAAEC,OAAO,EAAEC,aAAa,EAAC,GAC/DN,wBAAwBO,KAAK,CAACX;AAEhC,IAAI;IACF,MAAMY,aAAa,MAAMX,oBAAoBM;IAC7C,IAAIK,WAAWC,MAAM,KAAK,GAAG;QAC3B,MAAM,IAAIP,MAAM;IAClB;IAEA,MAAMQ,YAAYX,aAAaS,YAAYF;IAC3C,MAAMK,SAASb,cAAcY,UAAUC,MAAM,EAAE;QAC7CP;IACF;IAEAT,WAAWiB,WAAW,CAAC;QACrBD;QACAE,MAAM;IACR;AACF,EAAE,OAAOC,OAAO;IACd,MAAMC,aAAa,MAAMd,iCAAiCa,OAAOT;IACjEV,WAAWiB,WAAW,CAAC;QACrBE,OAAOA,iBAAiBZ,QAAQY,MAAME,OAAO,GAAGC,OAAOH;QACvDD,MAAM;QACNE;IACF;AACF;AAEA,4EAA4E;AAC5E,mDAAmD;AACnDG,aAAa;IACXC,QAAQC,IAAI,CAAC;AACf"}
@@ -0,0 +1,77 @@
1
+ import { mkdir, writeFile } from 'node:fs/promises';
2
+ import { join, resolve } from 'node:path';
3
+ import { exit } from '@oclif/core/errors';
4
+ import { getCliTelemetry, studioWorkerTask } from '@sanity/cli-core';
5
+ import { spinner } from '@sanity/cli-core/ux';
6
+ import { SchemaExtractedTrace } from '../../telemetry/extractSchema.telemetry.js';
7
+ import { formatSchemaValidation } from './formatSchemaValidation.js';
8
+ import { schemasExtractDebug } from './utils/debug.js';
9
+ const FILENAME = 'schema.json';
10
+ class SchemaExtractionError extends Error {
11
+ validation;
12
+ constructor(message, validation){
13
+ super(message);
14
+ this.name = 'SchemaExtractionError';
15
+ this.validation = validation;
16
+ }
17
+ }
18
+ export async function extractSchema(options) {
19
+ const { flags, output, projectRoot } = options;
20
+ const { 'enforce-required-fields': enforceRequiredFields, format, path, workspace: workspaceName } = flags;
21
+ const spin = spinner(enforceRequiredFields ? 'Extracting schema with enforced required fields' : 'Extracting schema').start();
22
+ const workDir = projectRoot.directory;
23
+ const trace = getCliTelemetry().trace(SchemaExtractedTrace);
24
+ trace.start();
25
+ try {
26
+ if (format !== 'groq-type-nodes') {
27
+ throw new Error(`Unsupported format: "${format}"`);
28
+ }
29
+ const result = await studioWorkerTask(new URL('extractSanitySchema.worker.js', import.meta.url), {
30
+ name: 'extractSanitySchema',
31
+ studioRootPath: workDir,
32
+ workerData: {
33
+ configPath: projectRoot.path,
34
+ enforceRequiredFields,
35
+ workDir,
36
+ workspaceName
37
+ }
38
+ });
39
+ if (result.type === 'error') {
40
+ throw new SchemaExtractionError(result.error, result.validation);
41
+ }
42
+ const schema = result.schema;
43
+ trace.log({
44
+ enforceRequiredFields,
45
+ schemaAllTypesCount: schema.length,
46
+ schemaDocumentTypesCount: schema.filter((type)=>type.type === 'document').length,
47
+ schemaFormat: flags.format || 'groq-type-nodes',
48
+ schemaTypesCount: schema.filter((type)=>type.type === 'type').length
49
+ });
50
+ const outputDir = path ? resolve(join(workDir, path)) : workDir;
51
+ const outputPath = join(outputDir, FILENAME);
52
+ await mkdir(outputDir, {
53
+ recursive: true
54
+ });
55
+ spin.text = `Writing schema to ${outputPath}`;
56
+ await writeFile(outputPath, `${JSON.stringify(schema, null, 2)}\n`);
57
+ spin.succeed(enforceRequiredFields ? `Extracted schema to ${outputPath} with enforced required fields` : `Extracted schema to ${outputPath}`);
58
+ trace.complete();
59
+ } catch (err) {
60
+ trace.error(err);
61
+ schemasExtractDebug('Failed to extract schema', err);
62
+ spin.fail(enforceRequiredFields ? 'Failed to extract schema with enforced required fields' : 'Failed to extract schema');
63
+ // Display validation errors if available
64
+ if (err instanceof SchemaExtractionError && err.validation && err.validation.length > 0) {
65
+ output.log('');
66
+ output.log(formatSchemaValidation(err.validation));
67
+ }
68
+ if (err instanceof Error) {
69
+ output.error(err.message, {
70
+ exit: 1
71
+ });
72
+ }
73
+ exit(1);
74
+ }
75
+ }
76
+
77
+ //# sourceMappingURL=extractSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/extractSchema.ts"],"sourcesContent":["import {mkdir, writeFile} from 'node:fs/promises'\nimport {join, resolve} from 'node:path'\n\nimport {exit} from '@oclif/core/errors'\nimport {\n getCliTelemetry,\n type Output,\n type ProjectRootResult,\n studioWorkerTask,\n} from '@sanity/cli-core'\nimport {spinner} from '@sanity/cli-core/ux'\nimport {type extractSchema as extractSchemaInternal} from '@sanity/schema/_internal'\nimport {type SchemaValidationProblemGroup} from '@sanity/types'\n\nimport {type ExtractSchemaCommand} from '../../commands/schema/extract'\nimport {SchemaExtractedTrace} from '../../telemetry/extractSchema.telemetry.js'\nimport {formatSchemaValidation} from './formatSchemaValidation.js'\nimport {type ExtractSchemaWorkerData} from './types.js'\nimport {schemasExtractDebug} from './utils/debug.js'\n\nconst FILENAME = 'schema.json'\n\nclass SchemaExtractionError extends Error {\n validation?: SchemaValidationProblemGroup[]\n\n constructor(message: string, validation?: SchemaValidationProblemGroup[]) {\n super(message)\n this.name = 'SchemaExtractionError'\n this.validation = validation\n }\n}\n\ninterface ExtractSchemaOptions {\n flags: ExtractSchemaCommand['flags']\n output: Output\n projectRoot: ProjectRootResult\n}\n\ninterface ExtractSchemaWorkerResult {\n schema: ReturnType<typeof extractSchemaInternal>\n type: 'success'\n}\n\n/** @internal */\ninterface ExtractSchemaWorkerError {\n error: string\n type: 'error'\n\n validation?: SchemaValidationProblemGroup[]\n}\n\ntype ExtractSchemaWorkerMessage = ExtractSchemaWorkerError | ExtractSchemaWorkerResult\n\nexport async function extractSchema(options: ExtractSchemaOptions): Promise<void> {\n const {flags, output, projectRoot} = options\n const {\n 'enforce-required-fields': enforceRequiredFields,\n format,\n path,\n workspace: workspaceName,\n } = flags\n const spin = spinner(\n enforceRequiredFields ? 'Extracting schema with enforced required fields' : 'Extracting schema',\n ).start()\n\n const workDir = projectRoot.directory\n\n const trace = getCliTelemetry().trace(SchemaExtractedTrace)\n trace.start()\n\n try {\n if (format !== 'groq-type-nodes') {\n throw new Error(`Unsupported format: \"${format}\"`)\n }\n\n const result = await studioWorkerTask<ExtractSchemaWorkerMessage>(\n new URL('extractSanitySchema.worker.js', import.meta.url),\n {\n name: 'extractSanitySchema',\n studioRootPath: workDir,\n workerData: {\n configPath: projectRoot.path,\n enforceRequiredFields,\n workDir,\n workspaceName,\n } satisfies ExtractSchemaWorkerData,\n },\n )\n\n if (result.type === 'error') {\n throw new SchemaExtractionError(result.error, result.validation)\n }\n\n const schema = result.schema\n\n trace.log({\n enforceRequiredFields,\n schemaAllTypesCount: schema.length,\n schemaDocumentTypesCount: schema.filter((type) => type.type === 'document').length,\n schemaFormat: flags.format || 'groq-type-nodes',\n schemaTypesCount: schema.filter((type) => type.type === 'type').length,\n })\n\n const outputDir = path ? resolve(join(workDir, path)) : workDir\n const outputPath = join(outputDir, FILENAME)\n await mkdir(outputDir, {recursive: true})\n\n spin.text = `Writing schema to ${outputPath}`\n\n await writeFile(outputPath, `${JSON.stringify(schema, null, 2)}\\n`)\n\n spin.succeed(\n enforceRequiredFields\n ? `Extracted schema to ${outputPath} with enforced required fields`\n : `Extracted schema to ${outputPath}`,\n )\n\n trace.complete()\n } catch (err) {\n trace.error(err)\n schemasExtractDebug('Failed to extract schema', err)\n spin.fail(\n enforceRequiredFields\n ? 'Failed to extract schema with enforced required fields'\n : 'Failed to extract schema',\n )\n\n // Display validation errors if available\n if (err instanceof SchemaExtractionError && err.validation && err.validation.length > 0) {\n output.log('')\n output.log(formatSchemaValidation(err.validation))\n }\n\n if (err instanceof Error) {\n output.error(err.message, {exit: 1})\n }\n\n exit(1)\n }\n}\n"],"names":["mkdir","writeFile","join","resolve","exit","getCliTelemetry","studioWorkerTask","spinner","SchemaExtractedTrace","formatSchemaValidation","schemasExtractDebug","FILENAME","SchemaExtractionError","Error","validation","message","name","extractSchema","options","flags","output","projectRoot","enforceRequiredFields","format","path","workspace","workspaceName","spin","start","workDir","directory","trace","result","URL","url","studioRootPath","workerData","configPath","type","error","schema","log","schemaAllTypesCount","length","schemaDocumentTypesCount","filter","schemaFormat","schemaTypesCount","outputDir","outputPath","recursive","text","JSON","stringify","succeed","complete","err","fail"],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { isatty } from 'node:tty';
2
+ import { styleText } from 'node:util';
3
+ import { logSymbols } from '@sanity/cli-core/ux';
4
+ const isTty = isatty(1);
5
+ const headers = {
6
+ error: isTty ? styleText([
7
+ 'bold',
8
+ 'bgRed',
9
+ 'black'
10
+ ], ' ERROR ') : styleText('red', '[ERROR]'),
11
+ warning: isTty ? styleText([
12
+ 'bold',
13
+ 'bgYellow',
14
+ 'black'
15
+ ], ' WARN ') : styleText('yellow', '[WARN]')
16
+ };
17
+ const severityValues = {
18
+ error: 0,
19
+ warning: 1
20
+ };
21
+ function formatPath(pathSegments) {
22
+ const format = ([curr, ...next], mode = 'object')=>{
23
+ if (!curr) return '';
24
+ if (curr.kind === 'property') return format(next, curr.name === 'of' ? 'array' : 'object');
25
+ const name = curr.name || `<anonymous_${curr.type}>`;
26
+ return `${mode === 'array' ? `[${name}]` : `.${name}`}${format(next)}`;
27
+ };
28
+ return format(pathSegments.slice(1)).slice(1) // removes the top-level type and leading `.`
29
+ ;
30
+ }
31
+ export function getAggregatedSeverity(groupOrGroups) {
32
+ const groups = Array.isArray(groupOrGroups) ? groupOrGroups : [
33
+ groupOrGroups
34
+ ];
35
+ return groups.flatMap((group)=>group.problems.map((problem)=>problem.severity)).includes('error') ? 'error' : 'warning';
36
+ }
37
+ export function formatSchemaValidation(validation) {
38
+ let unnamedTopLevelTypeCount = 0;
39
+ const validationByTypeMap = {};
40
+ for (const group of validation){
41
+ const [firstSegment] = group.path;
42
+ if (!firstSegment) continue;
43
+ if (firstSegment.kind !== 'type') continue;
44
+ const topLevelType = firstSegment.name || `<unnamed_${firstSegment.type}_type_${unnamedTopLevelTypeCount++}>`;
45
+ if (!validationByTypeMap[topLevelType]) {
46
+ validationByTypeMap[topLevelType] = [];
47
+ }
48
+ validationByTypeMap[topLevelType].push(group);
49
+ }
50
+ const validationByType = Object.entries(validationByTypeMap);
51
+ const formatted = validationByType.toSorted((a, b)=>{
52
+ const [aType, aGroups] = a;
53
+ const [bType, bGroups] = b;
54
+ const aValue = severityValues[getAggregatedSeverity(aGroups)];
55
+ const bValue = severityValues[getAggregatedSeverity(bGroups)];
56
+ if (aValue === bValue) return aType.localeCompare(bType, 'en-US');
57
+ return aValue - bValue;
58
+ }).map(([topLevelType, groups])=>{
59
+ const formattedTopLevelType = isTty ? styleText([
60
+ 'bgWhite',
61
+ 'black'
62
+ ], ` ${topLevelType} `) : `[${topLevelType}]`;
63
+ const header = `${headers[getAggregatedSeverity(groups)]} ${formattedTopLevelType}`;
64
+ const body = groups.toSorted((a, b)=>severityValues[getAggregatedSeverity(a)] - severityValues[getAggregatedSeverity(b)]).map((group)=>{
65
+ const formattedPath = ` ${styleText('bold', formatPath(group.path) || '(root)')}`;
66
+ const formattedMessages = group.problems.toSorted((a, b)=>severityValues[a.severity] - severityValues[b.severity]).map(({ message, severity })=>` ${logSymbols[severity]} ${message}`).join('\n');
67
+ return `${formattedPath}\n${formattedMessages}`;
68
+ }).join('\n');
69
+ return `${header}\n${body}`;
70
+ }).join('\n\n');
71
+ return formatted;
72
+ }
73
+
74
+ //# sourceMappingURL=formatSchemaValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/formatSchemaValidation.ts"],"sourcesContent":["import {isatty} from 'node:tty'\nimport {styleText} from 'node:util'\n\nimport {logSymbols} from '@sanity/cli-core/ux'\nimport {type SchemaValidationProblemGroup, type SchemaValidationProblemPath} from '@sanity/types'\n\nconst isTty = isatty(1)\n\nconst headers = {\n error: isTty ? styleText(['bold', 'bgRed', 'black'], ' ERROR ') : styleText('red', '[ERROR]'),\n warning: isTty\n ? styleText(['bold', 'bgYellow', 'black'], ' WARN ')\n : styleText('yellow', '[WARN]'),\n}\n\nconst severityValues = {error: 0, warning: 1}\n\nfunction formatPath(pathSegments: SchemaValidationProblemPath) {\n const format = (\n [curr, ...next]: SchemaValidationProblemPath,\n mode: 'array' | 'object' = 'object',\n ): string => {\n if (!curr) return ''\n if (curr.kind === 'property') return format(next, curr.name === 'of' ? 'array' : 'object')\n\n const name = curr.name || `<anonymous_${curr.type}>`\n return `${mode === 'array' ? `[${name}]` : `.${name}`}${format(next)}`\n }\n\n return format(pathSegments.slice(1)).slice(1) // removes the top-level type and leading `.`\n}\n\nexport function getAggregatedSeverity(\n groupOrGroups: SchemaValidationProblemGroup | SchemaValidationProblemGroup[],\n): 'error' | 'warning' {\n const groups = Array.isArray(groupOrGroups) ? groupOrGroups : [groupOrGroups]\n return groups\n .flatMap((group) => group.problems.map((problem) => problem.severity))\n .includes('error')\n ? 'error'\n : 'warning'\n}\n\nexport function formatSchemaValidation(validation: SchemaValidationProblemGroup[]): string {\n let unnamedTopLevelTypeCount = 0\n const validationByTypeMap: Record<string, SchemaValidationProblemGroup[]> = {}\n\n for (const group of validation) {\n const [firstSegment] = group.path\n if (!firstSegment) continue\n if (firstSegment.kind !== 'type') continue\n\n const topLevelType =\n firstSegment.name || `<unnamed_${firstSegment.type}_type_${unnamedTopLevelTypeCount++}>`\n\n if (!validationByTypeMap[topLevelType]) {\n validationByTypeMap[topLevelType] = []\n }\n\n validationByTypeMap[topLevelType].push(group)\n }\n\n const validationByType = Object.entries(validationByTypeMap)\n\n const formatted = validationByType\n .toSorted((a, b) => {\n const [aType, aGroups] = a\n const [bType, bGroups] = b\n const aValue = severityValues[getAggregatedSeverity(aGroups)]\n const bValue = severityValues[getAggregatedSeverity(bGroups)]\n if (aValue === bValue) return aType.localeCompare(bType, 'en-US')\n return aValue - bValue\n })\n .map(([topLevelType, groups]) => {\n const formattedTopLevelType = isTty\n ? styleText(['bgWhite', 'black'], ` ${topLevelType} `)\n : `[${topLevelType}]`\n\n const header = `${headers[getAggregatedSeverity(groups)]} ${formattedTopLevelType}`\n const body = groups\n .toSorted(\n (a, b) =>\n severityValues[getAggregatedSeverity(a)] - severityValues[getAggregatedSeverity(b)],\n )\n .map((group) => {\n const formattedPath = ` ${styleText('bold', formatPath(group.path) || '(root)')}`\n const formattedMessages = group.problems\n .toSorted((a, b) => severityValues[a.severity] - severityValues[b.severity])\n .map(({message, severity}) => ` ${logSymbols[severity]} ${message}`)\n .join('\\n')\n\n return `${formattedPath}\\n${formattedMessages}`\n })\n .join('\\n')\n\n return `${header}\\n${body}`\n })\n .join('\\n\\n')\n\n return formatted\n}\n"],"names":["isatty","styleText","logSymbols","isTty","headers","error","warning","severityValues","formatPath","pathSegments","format","curr","next","mode","kind","name","type","slice","getAggregatedSeverity","groupOrGroups","groups","Array","isArray","flatMap","group","problems","map","problem","severity","includes","formatSchemaValidation","validation","unnamedTopLevelTypeCount","validationByTypeMap","firstSegment","path","topLevelType","push","validationByType","Object","entries","formatted","toSorted","a","b","aType","aGroups","bType","bGroups","aValue","bValue","localeCompare","formattedTopLevelType","header","body","formattedPath","formattedMessages","message","join"],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { styleText } from 'node:util';
2
+ import { getSchemas } from '../../services/schemas.js';
3
+ import { isDefined } from '../manifest/schemaTypeHelpers.js';
4
+ import { schemasListDebug } from './utils/debug.js';
5
+ import { ensureManifestExtractSatisfied } from './utils/manifestExtractor.js';
6
+ import { createManifestReader } from './utils/manifestReader.js';
7
+ import { getDatasetsOutString } from './utils/schemaStoreOutStrings.js';
8
+ import { SCHEMA_PERMISSION_HELP_TEXT } from './utils/schemaStoreValidation.js';
9
+ import { uniqByProjectIdDataset } from './utils/uniqByProjectIdDataset.js';
10
+ class DatasetError extends Error {
11
+ dataset;
12
+ projectId;
13
+ constructor(args){
14
+ super(args.options?.cause?.message, args.options);
15
+ this.projectId = args.projectId;
16
+ this.dataset = args.dataset;
17
+ this.name = 'DatasetError';
18
+ }
19
+ }
20
+ export async function listSchemas(options) {
21
+ const { extractManifest, id, json, manifestDir, output, workDir } = options;
22
+ if (!await ensureManifestExtractSatisfied({
23
+ extractManifest,
24
+ manifestDir,
25
+ output,
26
+ schemaRequired: true,
27
+ workDir
28
+ })) {
29
+ return 'failure';
30
+ }
31
+ const manifest = await createManifestReader({
32
+ manifestDir,
33
+ output,
34
+ workDir
35
+ }).getManifest();
36
+ const projectDatasets = uniqByProjectIdDataset(manifest.workspaces);
37
+ const schemas = await getDatasetSchemas(projectDatasets, id);
38
+ const parsedSchemas = parseSchemas(schemas, output);
39
+ if (parsedSchemas.length === 0) {
40
+ const datasetString = getDatasetsOutString(projectDatasets.map((dataset)=>dataset.dataset));
41
+ output.error(id ? `Schema for id "${id}" not found in ${datasetString}` : `No schemas found in ${datasetString}`);
42
+ schemasListDebug('Error finding schema');
43
+ return 'failure';
44
+ }
45
+ if (json) {
46
+ output.log(`${JSON.stringify(id ? parsedSchemas[0] : parsedSchemas, null, 2)}`);
47
+ } else {
48
+ printSchemas({
49
+ manifest,
50
+ output,
51
+ schemas: parsedSchemas
52
+ });
53
+ }
54
+ return 'success';
55
+ }
56
+ async function getDatasetSchemas(projectDatasets, id) {
57
+ return await Promise.allSettled(projectDatasets.map(async ({ dataset, projectId })=>{
58
+ try {
59
+ return await getSchemas(dataset, projectId, id);
60
+ } catch (error) {
61
+ throw new DatasetError({
62
+ dataset,
63
+ options: {
64
+ cause: error
65
+ },
66
+ projectId
67
+ });
68
+ }
69
+ }));
70
+ }
71
+ function parseSchemas(schemas, output) {
72
+ return schemas.map((schema)=>{
73
+ if (schema.status === 'fulfilled') return schema.value;
74
+ const error = schema.reason;
75
+ if (error instanceof DatasetError) {
76
+ if ('cause' in error && error.cause && typeof error.cause === 'object' && 'statusCode' in error.cause && error.cause.statusCode === 401) {
77
+ output.warn(`↳ No permissions to read schema from "${error.dataset}". ${SCHEMA_PERMISSION_HELP_TEXT}:\n ${styleText('red', `${error.message}`)}`);
78
+ return [];
79
+ }
80
+ const message = styleText('red', `↳ Failed to fetch schema from "${error.dataset}":\n ${error.message}`);
81
+ output.error(message);
82
+ } else {
83
+ //hubris inc: given the try-catch wrapping all the full promise "this should never happen"
84
+ throw error;
85
+ }
86
+ }).filter((schema)=>isDefined(schema)).flat();
87
+ }
88
+ function printSchemas({ manifest, output, schemas }) {
89
+ const rows = schemas.toSorted((a, b)=>-(a._createdAt || '').localeCompare(b._createdAt || '')).map(({ _createdAt: createdAt, _id: id, workspace })=>{
90
+ const workspaceData = manifest.workspaces.find((w)=>w.name === workspace.name);
91
+ if (!workspaceData) return;
92
+ return [
93
+ id,
94
+ workspace.name,
95
+ workspaceData.dataset,
96
+ workspaceData.projectId,
97
+ createdAt
98
+ ].map(String);
99
+ }).filter((schema)=>isDefined(schema));
100
+ const headings = [
101
+ 'Id',
102
+ 'Workspace',
103
+ 'Dataset',
104
+ 'ProjectId',
105
+ 'CreatedAt'
106
+ ];
107
+ const maxWidths = headings.map((heading, i)=>{
108
+ const widths = [
109
+ ...rows.map((row)=>row[i].length),
110
+ heading.length
111
+ ];
112
+ return Math.max(...widths);
113
+ });
114
+ const rowToString = (row)=>row.map((col, i)=>`${col}`.padEnd(maxWidths[i])).join(' ');
115
+ output.log(styleText('cyan', rowToString(headings)));
116
+ for (const row of rows)output.log(rowToString(row));
117
+ }
118
+
119
+ //# sourceMappingURL=listSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/listSchemas.ts"],"sourcesContent":["import {styleText} from 'node:util'\n\nimport {type Output} from '@sanity/cli-core'\n\nimport {type ListSchemaCommand} from '../../commands/schema/list.js'\nimport {getSchemas} from '../../services/schemas.js'\nimport {isDefined} from '../manifest/schemaTypeHelpers.js'\nimport {\n type CreateManifest,\n type ManifestWorkspaceFile,\n type StoredWorkspaceSchema,\n} from '../manifest/types.js'\nimport {type SchemaStoreActionResult} from './schemaStoreTypes.js'\nimport {schemasListDebug} from './utils/debug.js'\nimport {ensureManifestExtractSatisfied} from './utils/manifestExtractor.js'\nimport {createManifestReader} from './utils/manifestReader.js'\nimport {getDatasetsOutString} from './utils/schemaStoreOutStrings.js'\nimport {SCHEMA_PERMISSION_HELP_TEXT} from './utils/schemaStoreValidation.js'\nimport {uniqByProjectIdDataset} from './utils/uniqByProjectIdDataset.js'\n\ninterface ListSchemasOptions {\n extractManifest: boolean\n json: boolean\n manifestDir: string\n output: Output\n workDir: string\n\n id?: string\n}\n\nclass DatasetError extends Error {\n public dataset: string\n public projectId: string\n constructor(args: {dataset: string; options?: ErrorOptions; projectId: string}) {\n super((args.options?.cause as {message?: string})?.message, args.options)\n this.projectId = args.projectId\n this.dataset = args.dataset\n this.name = 'DatasetError'\n }\n}\n\nexport async function listSchemas(options: ListSchemasOptions): Promise<SchemaStoreActionResult> {\n const {extractManifest, id, json, manifestDir, output, workDir} = options\n\n if (\n !(await ensureManifestExtractSatisfied({\n extractManifest,\n manifestDir,\n output,\n schemaRequired: true,\n workDir,\n }))\n ) {\n return 'failure'\n }\n\n const manifest = await createManifestReader({\n manifestDir,\n output,\n workDir,\n }).getManifest()\n const projectDatasets = uniqByProjectIdDataset(manifest.workspaces)\n const schemas = (await getDatasetSchemas(projectDatasets, id)) as unknown as (\n | PromiseFulfilledResult<StoredWorkspaceSchema>\n | PromiseRejectedResult\n )[]\n const parsedSchemas = parseSchemas(schemas, output) as unknown as StoredWorkspaceSchema[]\n\n if (parsedSchemas.length === 0) {\n const datasetString = getDatasetsOutString(projectDatasets.map((dataset) => dataset.dataset))\n\n output.error(\n id\n ? `Schema for id \"${id}\" not found in ${datasetString}`\n : `No schemas found in ${datasetString}`,\n )\n\n schemasListDebug('Error finding schema')\n return 'failure'\n }\n\n if (json) {\n output.log(`${JSON.stringify(id ? parsedSchemas[0] : parsedSchemas, null, 2)}`)\n } else {\n printSchemas({manifest, output, schemas: parsedSchemas})\n }\n\n return 'success'\n}\n\nasync function getDatasetSchemas(\n projectDatasets: ManifestWorkspaceFile[],\n id?: ListSchemaCommand['flags']['id'],\n) {\n return await Promise.allSettled(\n projectDatasets.map(async ({dataset, projectId}) => {\n try {\n return await getSchemas(dataset, projectId, id)\n } catch (error) {\n throw new DatasetError({dataset, options: {cause: error}, projectId})\n }\n }),\n )\n}\n\nfunction parseSchemas(\n schemas: (PromiseFulfilledResult<StoredWorkspaceSchema> | PromiseRejectedResult)[],\n output: Output,\n) {\n return schemas\n .map((schema) => {\n if (schema.status === 'fulfilled') return schema.value\n\n const error = schema.reason\n\n if (error instanceof DatasetError) {\n if (\n 'cause' in error &&\n error.cause &&\n typeof error.cause === 'object' &&\n 'statusCode' in error.cause &&\n error.cause.statusCode === 401\n ) {\n output.warn(\n `↳ No permissions to read schema from \"${error.dataset}\". ${\n SCHEMA_PERMISSION_HELP_TEXT\n }:\\n ${styleText('red', `${error.message}`)}`,\n )\n return []\n }\n\n const message = styleText(\n 'red',\n `↳ Failed to fetch schema from \"${error.dataset}\":\\n ${error.message}`,\n )\n output.error(message)\n } else {\n //hubris inc: given the try-catch wrapping all the full promise \"this should never happen\"\n throw error\n }\n })\n .filter((schema) => isDefined(schema))\n .flat()\n}\n\nfunction printSchemas({\n manifest,\n output,\n schemas,\n}: {\n manifest: CreateManifest\n output: Output\n schemas: StoredWorkspaceSchema[]\n}) {\n const rows = schemas\n .toSorted((a, b) => -(a._createdAt || '').localeCompare(b._createdAt || ''))\n .map(({_createdAt: createdAt, _id: id, workspace}) => {\n const workspaceData = manifest.workspaces.find((w) => w.name === workspace.name)\n\n if (!workspaceData) return\n\n return [id, workspace.name, workspaceData.dataset, workspaceData.projectId, createdAt].map(\n String,\n )\n })\n .filter((schema) => isDefined(schema))\n\n const headings = ['Id', 'Workspace', 'Dataset', 'ProjectId', 'CreatedAt']\n\n const maxWidths = headings.map((heading, i) => {\n const widths = [...rows.map((row) => row[i].length), heading.length]\n return Math.max(...widths)\n })\n\n const rowToString = (row: string[]) =>\n row.map((col, i) => `${col}`.padEnd(maxWidths[i])).join(' ')\n\n output.log(styleText('cyan', rowToString(headings)))\n for (const row of rows) output.log(rowToString(row))\n}\n"],"names":["styleText","getSchemas","isDefined","schemasListDebug","ensureManifestExtractSatisfied","createManifestReader","getDatasetsOutString","SCHEMA_PERMISSION_HELP_TEXT","uniqByProjectIdDataset","DatasetError","Error","dataset","projectId","args","options","cause","message","name","listSchemas","extractManifest","id","json","manifestDir","output","workDir","schemaRequired","manifest","getManifest","projectDatasets","workspaces","schemas","getDatasetSchemas","parsedSchemas","parseSchemas","length","datasetString","map","error","log","JSON","stringify","printSchemas","Promise","allSettled","schema","status","value","reason","statusCode","warn","filter","flat","rows","toSorted","a","b","_createdAt","localeCompare","createdAt","_id","workspace","workspaceData","find","w","String","headings","maxWidths","heading","i","widths","row","Math","max","rowToString","col","padEnd","join"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /** Converts serialized schema debug data to ESBuild metafile format */ export function generateMetafile(schema) {
2
+ const output = {
3
+ bytes: 0,
4
+ exports: [],
5
+ imports: [],
6
+ inputs: {}
7
+ };
8
+ // Generate a esbuild metafile
9
+ const inputs = {};
10
+ function processType(path, entry) {
11
+ let childSize = 0;
12
+ if (entry.fields) {
13
+ for (const [name, fieldEntry] of Object.entries(entry.fields)){
14
+ processType(`${path}/${name}`, fieldEntry);
15
+ childSize += fieldEntry.size;
16
+ }
17
+ }
18
+ if (entry.of) {
19
+ for (const [name, fieldEntry] of Object.entries(entry.of)){
20
+ processType(`${path}/${name}`, fieldEntry);
21
+ childSize += fieldEntry.size;
22
+ }
23
+ }
24
+ const selfSize = entry.size - childSize;
25
+ inputs[path] = {
26
+ bytes: selfSize,
27
+ format: 'esm',
28
+ imports: []
29
+ };
30
+ output.inputs[path] = {
31
+ bytesInOutput: selfSize
32
+ };
33
+ output.bytes += selfSize;
34
+ }
35
+ for (const [name, entry] of Object.entries(schema.types)){
36
+ const fakePath = `schema/${entry.extends}/${name}`;
37
+ processType(fakePath, entry);
38
+ }
39
+ for (const [name, entry] of Object.entries(schema.hoisted)){
40
+ const fakePath = `hoisted/${name}`;
41
+ processType(fakePath, entry);
42
+ }
43
+ return {
44
+ inputs,
45
+ outputs: {
46
+ root: output
47
+ }
48
+ };
49
+ }
50
+
51
+ //# sourceMappingURL=metafile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/metafile.ts"],"sourcesContent":["import {type SerializedSchemaDebug, type SerializedTypeDebug} from './types.js'\n\n// This implements the metafile format of ESBuild.\ntype Metafile = {\n inputs: Record<string, MetafileInput>\n outputs: Record<string, MetafileOutput>\n}\n\ntype MetafileOutput = {\n bytes: number\n exports: []\n imports: []\n inputs: Record<string, {bytesInOutput: number}>\n}\n\ntype MetafileInput = {\n bytes: number\n format: 'csj' | 'esm'\n imports: []\n}\n\n/** Converts serialized schema debug data to ESBuild metafile format */\nexport function generateMetafile(schema: SerializedSchemaDebug): Metafile {\n const output: MetafileOutput = {\n bytes: 0,\n exports: [],\n imports: [],\n inputs: {},\n }\n\n // Generate a esbuild metafile\n const inputs: Record<string, MetafileInput> = {}\n\n function processType(path: string, entry: SerializedTypeDebug) {\n let childSize = 0\n\n if (entry.fields) {\n for (const [name, fieldEntry] of Object.entries(entry.fields)) {\n processType(`${path}/${name}`, fieldEntry)\n childSize += fieldEntry.size\n }\n }\n\n if (entry.of) {\n for (const [name, fieldEntry] of Object.entries(entry.of)) {\n processType(`${path}/${name}`, fieldEntry)\n childSize += fieldEntry.size\n }\n }\n\n const selfSize = entry.size - childSize\n\n inputs[path] = {\n bytes: selfSize,\n format: 'esm',\n imports: [],\n }\n\n output.inputs[path] = {\n bytesInOutput: selfSize,\n }\n\n output.bytes += selfSize\n }\n\n for (const [name, entry] of Object.entries(schema.types)) {\n const fakePath = `schema/${entry.extends}/${name}`\n processType(fakePath, entry)\n }\n\n for (const [name, entry] of Object.entries(schema.hoisted)) {\n const fakePath = `hoisted/${name}`\n processType(fakePath, entry)\n }\n\n return {inputs, outputs: {root: output}}\n}\n"],"names":["generateMetafile","schema","output","bytes","exports","imports","inputs","processType","path","entry","childSize","fields","name","fieldEntry","Object","entries","size","of","selfSize","format","bytesInOutput","types","fakePath","extends","hoisted","outputs","root"],"mappings":"AAqBA,qEAAqE,GACrE,OAAO,SAASA,iBAAiBC,MAA6B;IAC5D,MAAMC,SAAyB;QAC7BC,OAAO;QACPC,SAAS,EAAE;QACXC,SAAS,EAAE;QACXC,QAAQ,CAAC;IACX;IAEA,8BAA8B;IAC9B,MAAMA,SAAwC,CAAC;IAE/C,SAASC,YAAYC,IAAY,EAAEC,KAA0B;QAC3D,IAAIC,YAAY;QAEhB,IAAID,MAAME,MAAM,EAAE;YAChB,KAAK,MAAM,CAACC,MAAMC,WAAW,IAAIC,OAAOC,OAAO,CAACN,MAAME,MAAM,EAAG;gBAC7DJ,YAAY,GAAGC,KAAK,CAAC,EAAEI,MAAM,EAAEC;gBAC/BH,aAAaG,WAAWG,IAAI;YAC9B;QACF;QAEA,IAAIP,MAAMQ,EAAE,EAAE;YACZ,KAAK,MAAM,CAACL,MAAMC,WAAW,IAAIC,OAAOC,OAAO,CAACN,MAAMQ,EAAE,EAAG;gBACzDV,YAAY,GAAGC,KAAK,CAAC,EAAEI,MAAM,EAAEC;gBAC/BH,aAAaG,WAAWG,IAAI;YAC9B;QACF;QAEA,MAAME,WAAWT,MAAMO,IAAI,GAAGN;QAE9BJ,MAAM,CAACE,KAAK,GAAG;YACbL,OAAOe;YACPC,QAAQ;YACRd,SAAS,EAAE;QACb;QAEAH,OAAOI,MAAM,CAACE,KAAK,GAAG;YACpBY,eAAeF;QACjB;QAEAhB,OAAOC,KAAK,IAAIe;IAClB;IAEA,KAAK,MAAM,CAACN,MAAMH,MAAM,IAAIK,OAAOC,OAAO,CAACd,OAAOoB,KAAK,EAAG;QACxD,MAAMC,WAAW,CAAC,OAAO,EAAEb,MAAMc,OAAO,CAAC,CAAC,EAAEX,MAAM;QAClDL,YAAYe,UAAUb;IACxB;IAEA,KAAK,MAAM,CAACG,MAAMH,MAAM,IAAIK,OAAOC,OAAO,CAACd,OAAOuB,OAAO,EAAG;QAC1D,MAAMF,WAAW,CAAC,QAAQ,EAAEV,MAAM;QAClCL,YAAYe,UAAUb;IACxB;IAEA,OAAO;QAACH;QAAQmB,SAAS;YAACC,MAAMxB;QAAM;IAAC;AACzC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * There is more context locally to decide how and when to log, depending on flags;
3
+ * we therefore let actions log as soon as possible, possibly stopping stack unwinding.
4
+ * This gives us more control over the color and detail of the error message, as well as ensuring
5
+ * we dont double-log errors up the chain.
6
+ *
7
+ * Depending on flags, store actions can fail without throwing; to allow control flow to continue,
8
+ * even in the face of failure (--schema-required ture/false for store)
9
+ *
10
+ * It is up to action to make this distinction based on flags.
11
+ *
12
+ * However, we _do_ want to ensure correct exit code on commands (0 vs 1), so
13
+ * CLI command chains are stopped if a store command fails.
14
+ *
15
+ * Invalid flags will always throw.
16
+ *
17
+ */ export { };
18
+
19
+ //# sourceMappingURL=schemaStoreTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/schemaStoreTypes.ts"],"sourcesContent":["/**\n * There is more context locally to decide how and when to log, depending on flags;\n * we therefore let actions log as soon as possible, possibly stopping stack unwinding.\n * This gives us more control over the color and detail of the error message, as well as ensuring\n * we dont double-log errors up the chain.\n *\n * Depending on flags, store actions can fail without throwing; to allow control flow to continue,\n * even in the face of failure (--schema-required ture/false for store)\n *\n * It is up to action to make this distinction based on flags.\n *\n * However, we _do_ want to ensure correct exit code on commands (0 vs 1), so\n * CLI command chains are stopped if a store command fails.\n *\n * Invalid flags will always throw.\n *\n */\nexport type SchemaStoreActionResult = 'failure' | 'success'\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;CAgBC,GACD,WAA2D"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export const extractSchemaWorkerData = z.object({
3
+ configPath: z.string(),
4
+ enforceRequiredFields: z.boolean(),
5
+ workDir: z.string(),
6
+ workspaceName: z.string().optional()
7
+ });
8
+
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/actions/schema/types.ts"],"sourcesContent":["import {z} from 'zod'\n\nexport const extractSchemaWorkerData = z.object({\n configPath: z.string(),\n enforceRequiredFields: z.boolean(),\n workDir: z.string(),\n workspaceName: z.string().optional(),\n})\n\nexport type ExtractSchemaWorkerData = z.infer<typeof extractSchemaWorkerData>\n\n/**\n * Contains debug information about the serialized schema.\n *\n * @internal\n **/\nexport type SerializedSchemaDebug = {\n hoisted: Record<string, SerializedTypeDebug>\n parent?: SerializedSchemaDebug\n size: number\n types: Record<string, SerializedTypeDebug>\n}\n\n/**\n * Contains debug information about a serialized type.\n *\n * @internal\n **/\nexport type SerializedTypeDebug = {\n extends: string\n fields?: Record<string, SerializedTypeDebug>\n of?: Record<string, SerializedTypeDebug>\n size: number\n}\n"],"names":["z","extractSchemaWorkerData","object","configPath","string","enforceRequiredFields","boolean","workDir","workspaceName","optional"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAK;AAErB,OAAO,MAAMC,0BAA0BD,EAAEE,MAAM,CAAC;IAC9CC,YAAYH,EAAEI,MAAM;IACpBC,uBAAuBL,EAAEM,OAAO;IAChCC,SAASP,EAAEI,MAAM;IACjBI,eAAeR,EAAEI,MAAM,GAAGK,QAAQ;AACpC,GAAE"}