@sanity/cli 6.0.0-alpha.9 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. package/README.md +602 -291
  2. package/bin/run.js +2 -0
  3. package/dist/SanityHelp.js +51 -23
  4. package/dist/SanityHelp.js.map +1 -1
  5. package/dist/actions/auth/authServer.js +28 -22
  6. package/dist/actions/auth/authServer.js.map +1 -1
  7. package/dist/actions/auth/login/getProvider.js +49 -38
  8. package/dist/actions/auth/login/getProvider.js.map +1 -1
  9. package/dist/actions/auth/login/getSSOProvider.js +25 -19
  10. package/dist/actions/auth/login/getSSOProvider.js.map +1 -1
  11. package/dist/actions/auth/login/login.js +12 -33
  12. package/dist/actions/auth/login/login.js.map +1 -1
  13. package/dist/actions/auth/types.js.map +1 -1
  14. package/dist/actions/backup/downloadAsset.js +9 -9
  15. package/dist/actions/backup/downloadAsset.js.map +1 -1
  16. package/dist/actions/backup/downloadDocument.js +8 -8
  17. package/dist/actions/backup/downloadDocument.js.map +1 -1
  18. package/dist/actions/build/buildApp.js +55 -18
  19. package/dist/actions/build/buildApp.js.map +1 -1
  20. package/dist/actions/build/buildStaticFiles.js +3 -2
  21. package/dist/actions/build/buildStaticFiles.js.map +1 -1
  22. package/dist/actions/build/buildStudio.js +72 -44
  23. package/dist/actions/build/buildStudio.js.map +1 -1
  24. package/dist/actions/build/buildVendorDependencies.js +18 -52
  25. package/dist/actions/build/buildVendorDependencies.js.map +1 -1
  26. package/dist/actions/build/checkRequiredDependencies.js +13 -8
  27. package/dist/actions/build/checkRequiredDependencies.js.map +1 -1
  28. package/dist/actions/build/checkStudioDependencyVersions.js +19 -17
  29. package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -1
  30. package/dist/actions/build/createExternalFromImportMap.js +1 -1
  31. package/dist/actions/build/createExternalFromImportMap.js.map +1 -1
  32. package/dist/actions/build/determineBasePath.js +5 -2
  33. package/dist/actions/build/determineBasePath.js.map +1 -1
  34. package/dist/actions/build/getViteConfig.js +47 -4
  35. package/dist/actions/build/getViteConfig.js.map +1 -1
  36. package/dist/actions/build/handlePrereleaseVersions.js +44 -0
  37. package/dist/actions/build/handlePrereleaseVersions.js.map +1 -0
  38. package/dist/actions/build/renderDocument.js +6 -10
  39. package/dist/actions/build/renderDocument.js.map +1 -1
  40. package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js +4 -4
  41. package/dist/actions/build/renderDocumentWorker/components/BasicDocument.js.map +1 -1
  42. package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js +3 -3
  43. package/dist/actions/build/renderDocumentWorker/components/DefaultDocument.js.map +1 -1
  44. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +1 -0
  45. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -1
  46. package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js +2 -2
  47. package/dist/actions/build/renderDocumentWorker/getDocumentComponent.js.map +1 -1
  48. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js +1 -1
  49. package/dist/actions/build/renderDocumentWorker/renderDocumentWorker.js.map +1 -1
  50. package/dist/actions/build/shouldAutoUpdate.js +2 -0
  51. package/dist/actions/build/shouldAutoUpdate.js.map +1 -1
  52. package/dist/actions/build/types.js.map +1 -1
  53. package/dist/actions/build/writeFavicons.js +3 -5
  54. package/dist/actions/build/writeFavicons.js.map +1 -1
  55. package/dist/actions/build/writeSanityRuntime.js +4 -3
  56. package/dist/actions/build/writeSanityRuntime.js.map +1 -1
  57. package/dist/actions/codemods/reactIconsV3.js +2 -2
  58. package/dist/actions/codemods/reactIconsV3.js.map +1 -1
  59. package/dist/actions/dataset/create.js +7 -1
  60. package/dist/actions/dataset/create.js.map +1 -1
  61. package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -1
  62. package/dist/actions/dataset/resolveDataset.js +26 -0
  63. package/dist/actions/dataset/resolveDataset.js.map +1 -0
  64. package/dist/actions/debug/formatters.js +22 -0
  65. package/dist/actions/debug/formatters.js.map +1 -0
  66. package/dist/actions/deploy/createStudioUserApplication.js +17 -4
  67. package/dist/actions/deploy/createStudioUserApplication.js.map +1 -1
  68. package/dist/actions/deploy/deployApp.js +41 -15
  69. package/dist/actions/deploy/deployApp.js.map +1 -1
  70. package/dist/actions/deploy/deployStudio.js +92 -44
  71. package/dist/actions/deploy/deployStudio.js.map +1 -1
  72. package/dist/actions/deploy/deployStudioSchemasAndManifests.js +55 -0
  73. package/dist/actions/deploy/deployStudioSchemasAndManifests.js.map +1 -0
  74. package/dist/actions/deploy/deployStudioSchemasAndManifests.worker.js +120 -0
  75. package/dist/actions/deploy/deployStudioSchemasAndManifests.worker.js.map +1 -0
  76. package/dist/actions/deploy/findUserApplicationForStudio.js +35 -12
  77. package/dist/actions/deploy/findUserApplicationForStudio.js.map +1 -1
  78. package/dist/actions/deploy/types.js +10 -1
  79. package/dist/actions/deploy/types.js.map +1 -1
  80. package/dist/actions/deploy/urlUtils.js +21 -0
  81. package/dist/actions/deploy/urlUtils.js.map +1 -0
  82. package/dist/actions/dev/getDashboardAppUrl.js +48 -0
  83. package/dist/actions/dev/getDashboardAppUrl.js.map +1 -0
  84. package/dist/actions/dev/getDevServerConfig.js +7 -3
  85. package/dist/actions/dev/getDevServerConfig.js.map +1 -1
  86. package/dist/actions/dev/startAppDevServer.js +3 -3
  87. package/dist/actions/dev/startAppDevServer.js.map +1 -1
  88. package/dist/actions/dev/startStudioDevServer.js +14 -14
  89. package/dist/actions/dev/startStudioDevServer.js.map +1 -1
  90. package/dist/actions/doctor/checks/cliInstallation.js +56 -0
  91. package/dist/actions/doctor/checks/cliInstallation.js.map +1 -0
  92. package/dist/actions/doctor/checks/index.js +16 -0
  93. package/dist/actions/doctor/checks/index.js.map +1 -0
  94. package/dist/actions/doctor/runDoctorChecks.js +56 -0
  95. package/dist/actions/doctor/runDoctorChecks.js.map +1 -0
  96. package/dist/actions/doctor/types.js +3 -0
  97. package/dist/actions/doctor/types.js.map +1 -0
  98. package/dist/actions/documents/types.js.map +1 -1
  99. package/dist/actions/documents/validate.js +11 -2
  100. package/dist/actions/documents/validate.js.map +1 -1
  101. package/dist/actions/documents/validateDocuments.worker.js +4 -4
  102. package/dist/actions/documents/validateDocuments.worker.js.map +1 -1
  103. package/dist/actions/documents/validation/reporters/jsonReporter.js +1 -1
  104. package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -1
  105. package/dist/actions/documents/validation/reporters/ndjsonReporter.js +1 -1
  106. package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -1
  107. package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js +1 -1
  108. package/dist/actions/documents/validation/reporters/prettyReporter/formatDocumentValidation.js.map +1 -1
  109. package/dist/actions/documents/validation/reporters/prettyReporter/tree.js +108 -0
  110. package/dist/actions/documents/validation/reporters/prettyReporter/tree.js.map +1 -0
  111. package/dist/actions/graphql/SchemaError.js +4 -26
  112. package/dist/actions/graphql/SchemaError.js.map +1 -1
  113. package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js +540 -0
  114. package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js.map +1 -0
  115. package/dist/actions/graphql/__tests__/fixtures/test-studio.js +1143 -0
  116. package/dist/actions/graphql/__tests__/fixtures/test-studio.js.map +1 -0
  117. package/dist/actions/graphql/__tests__/fixtures/union-refs.js +591 -0
  118. package/dist/actions/graphql/__tests__/fixtures/union-refs.js.map +1 -0
  119. package/dist/actions/graphql/__tests__/helpers.js +23 -0
  120. package/dist/actions/graphql/__tests__/helpers.js.map +1 -0
  121. package/dist/actions/graphql/extractFromSanitySchema.js +5 -5
  122. package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -1
  123. package/dist/actions/graphql/extractGraphQLAPIs.js +150 -0
  124. package/dist/actions/graphql/extractGraphQLAPIs.js.map +1 -0
  125. package/dist/actions/graphql/extractGraphQLAPIs.worker.js +12 -0
  126. package/dist/actions/graphql/extractGraphQLAPIs.worker.js.map +1 -0
  127. package/dist/actions/graphql/gen1/generateTypeFilters.js +1 -1
  128. package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -1
  129. package/dist/actions/graphql/gen1/generateTypeQueries.js +2 -1
  130. package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -1
  131. package/dist/actions/graphql/gen1/index.js +5 -5
  132. package/dist/actions/graphql/gen1/index.js.map +1 -1
  133. package/dist/actions/graphql/gen2/generateTypeQueries.js +1 -1
  134. package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -1
  135. package/dist/actions/graphql/gen2/index.js +6 -6
  136. package/dist/actions/graphql/gen2/index.js.map +1 -1
  137. package/dist/actions/graphql/gen3/generateTypeQueries.js +3 -4
  138. package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -1
  139. package/dist/actions/graphql/gen3/index.js +6 -7
  140. package/dist/actions/graphql/gen3/index.js.map +1 -1
  141. package/dist/actions/graphql/getGraphQLAPIs.js +15 -57
  142. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
  143. package/dist/actions/graphql/getGraphQLAPIs.worker.js +75 -106
  144. package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -1
  145. package/dist/actions/graphql/helpers.js +13 -0
  146. package/dist/actions/graphql/helpers.js.map +1 -1
  147. package/dist/actions/graphql/resolveGraphQLApisFromWorkspaces.js +187 -0
  148. package/dist/actions/graphql/resolveGraphQLApisFromWorkspaces.js.map +1 -0
  149. package/dist/actions/graphql/types.js +1 -1
  150. package/dist/actions/graphql/types.js.map +1 -1
  151. package/dist/actions/init/bootstrapLocalTemplate.js +10 -8
  152. package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -1
  153. package/dist/actions/init/bootstrapRemoteTemplate.js +6 -5
  154. package/dist/actions/init/bootstrapRemoteTemplate.js.map +1 -1
  155. package/dist/actions/init/bootstrapTemplate.js.map +1 -1
  156. package/dist/actions/init/checkNextJsReactCompatibility.js +1 -1
  157. package/dist/actions/init/checkNextJsReactCompatibility.js.map +1 -1
  158. package/dist/actions/init/createAppCliConfig.js.map +1 -1
  159. package/dist/actions/init/createCliConfig.js.map +1 -1
  160. package/dist/actions/init/createPackageManifest.js +21 -9
  161. package/dist/actions/init/createPackageManifest.js.map +1 -1
  162. package/dist/actions/init/remoteTemplate.js +1 -2
  163. package/dist/actions/init/remoteTemplate.js.map +1 -1
  164. package/dist/actions/init/sdkAppDependencies.js +19 -0
  165. package/dist/actions/init/sdkAppDependencies.js.map +1 -0
  166. package/dist/actions/init/studioDependencies.js.map +1 -0
  167. package/dist/actions/init/templates/appQuickstart.js +1 -22
  168. package/dist/actions/init/templates/appQuickstart.js.map +1 -1
  169. package/dist/actions/init/templates/appSanityUi.js +3 -22
  170. package/dist/actions/init/templates/appSanityUi.js.map +1 -1
  171. package/dist/actions/init/types.js.map +1 -1
  172. package/dist/actions/manifest/SchemaIcon.js +6 -4
  173. package/dist/actions/manifest/SchemaIcon.js.map +1 -1
  174. package/dist/actions/manifest/blockTypeTransformer.js +67 -0
  175. package/dist/actions/manifest/blockTypeTransformer.js.map +1 -0
  176. package/dist/actions/manifest/debug.js +4 -0
  177. package/dist/actions/manifest/debug.js.map +1 -0
  178. package/dist/actions/manifest/extractAppManifest.js +39 -22
  179. package/dist/actions/manifest/extractAppManifest.js.map +1 -1
  180. package/dist/actions/manifest/extractManifest.js +27 -78
  181. package/dist/actions/manifest/extractManifest.js.map +1 -1
  182. package/dist/actions/manifest/extractManifest.worker.js +30 -0
  183. package/dist/actions/manifest/extractManifest.worker.js.map +1 -0
  184. package/dist/actions/manifest/extractWorkspaceManifest.js +31 -372
  185. package/dist/actions/manifest/extractWorkspaceManifest.js.map +1 -1
  186. package/dist/actions/manifest/iconResolver.js +30 -0
  187. package/dist/actions/manifest/iconResolver.js.map +1 -0
  188. package/dist/actions/manifest/referenceTransformer.js +51 -0
  189. package/dist/actions/manifest/referenceTransformer.js.map +1 -0
  190. package/dist/actions/manifest/schemaTypeHelpers.js +2 -2
  191. package/dist/actions/manifest/schemaTypeHelpers.js.map +1 -1
  192. package/dist/actions/manifest/schemaTypeTransformer.js +168 -0
  193. package/dist/actions/manifest/schemaTypeTransformer.js.map +1 -0
  194. package/dist/actions/manifest/transformerUtils.js +40 -0
  195. package/dist/actions/manifest/transformerUtils.js.map +1 -0
  196. package/dist/actions/manifest/types.js +5 -0
  197. package/dist/actions/manifest/types.js.map +1 -1
  198. package/dist/actions/manifest/validationTransformer.js +84 -0
  199. package/dist/actions/manifest/validationTransformer.js.map +1 -0
  200. package/dist/actions/manifest/writeManifestFile.js +30 -0
  201. package/dist/actions/manifest/writeManifestFile.js.map +1 -0
  202. package/dist/actions/manifest/writeWorkspaceFiles.js +30 -0
  203. package/dist/actions/manifest/writeWorkspaceFiles.js.map +1 -0
  204. package/dist/actions/mcp/detectAvailableEditors.js +34 -13
  205. package/dist/actions/mcp/detectAvailableEditors.js.map +1 -1
  206. package/dist/actions/mcp/editorConfigs.js +231 -109
  207. package/dist/actions/mcp/editorConfigs.js.map +1 -1
  208. package/dist/actions/mcp/promptForMCPSetup.js +16 -7
  209. package/dist/actions/mcp/promptForMCPSetup.js.map +1 -1
  210. package/dist/actions/mcp/setupMCP.js +62 -23
  211. package/dist/actions/mcp/setupMCP.js.map +1 -1
  212. package/dist/actions/mcp/types.js.map +1 -1
  213. package/dist/actions/mcp/validateEditorTokens.js +56 -0
  214. package/dist/actions/mcp/validateEditorTokens.js.map +1 -0
  215. package/dist/actions/mcp/writeMCPConfig.js +27 -15
  216. package/dist/actions/mcp/writeMCPConfig.js.map +1 -1
  217. package/dist/actions/media/buildNdjsonIndex.js +32 -0
  218. package/dist/actions/media/buildNdjsonIndex.js.map +1 -0
  219. package/dist/actions/media/importAspects.js +2 -11
  220. package/dist/actions/media/importAspects.js.map +1 -1
  221. package/dist/actions/media/importMedia.js +22 -18
  222. package/dist/actions/media/importMedia.js.map +1 -1
  223. package/dist/actions/organizations/findOrganizationByUserName.js +5 -0
  224. package/dist/actions/organizations/findOrganizationByUserName.js.map +1 -0
  225. package/dist/actions/organizations/getOrganization.js +3 -2
  226. package/dist/actions/organizations/getOrganization.js.map +1 -1
  227. package/dist/actions/organizations/getOrganizationChoices.js +27 -19
  228. package/dist/actions/organizations/getOrganizationChoices.js.map +1 -1
  229. package/dist/actions/organizations/types.js +3 -0
  230. package/dist/actions/organizations/types.js.map +1 -0
  231. package/dist/actions/projects/getManageUrl.js +1 -2
  232. package/dist/actions/projects/getManageUrl.js.map +1 -1
  233. package/dist/actions/schema/deleteSchemaAction.js +14 -30
  234. package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
  235. package/dist/actions/schema/deploySchemas.js +22 -91
  236. package/dist/actions/schema/deploySchemas.js.map +1 -1
  237. package/dist/actions/schema/extractSanitySchema.worker.js +0 -5
  238. package/dist/actions/schema/extractSanitySchema.worker.js.map +1 -1
  239. package/dist/actions/schema/extractSanityWorkspace.worker.js +24 -0
  240. package/dist/actions/schema/extractSanityWorkspace.worker.js.map +1 -0
  241. package/dist/actions/schema/extractSchema.js +8 -40
  242. package/dist/actions/schema/extractSchema.js.map +1 -1
  243. package/dist/actions/schema/extractSchemaWatcher.js +128 -0
  244. package/dist/actions/schema/extractSchemaWatcher.js.map +1 -0
  245. package/dist/actions/schema/formatSchemaValidation.js +5 -1
  246. package/dist/actions/schema/formatSchemaValidation.js.map +1 -1
  247. package/dist/actions/schema/getExtractOptions.js +16 -0
  248. package/dist/actions/schema/getExtractOptions.js.map +1 -0
  249. package/dist/actions/schema/listSchemas.js +53 -56
  250. package/dist/actions/schema/listSchemas.js.map +1 -1
  251. package/dist/actions/schema/matchSchemaPattern.js +22 -0
  252. package/dist/actions/schema/matchSchemaPattern.js.map +1 -0
  253. package/dist/actions/schema/runSchemaExtraction.js +39 -0
  254. package/dist/actions/schema/runSchemaExtraction.js.map +1 -0
  255. package/dist/actions/schema/types.js +8 -0
  256. package/dist/actions/schema/types.js.map +1 -1
  257. package/dist/actions/schema/uniqueWorkspaces.worker.js +24 -0
  258. package/dist/actions/schema/uniqueWorkspaces.worker.js.map +1 -0
  259. package/dist/actions/schema/updateWorkspaceSchema.js +63 -0
  260. package/dist/actions/schema/updateWorkspaceSchema.js.map +1 -0
  261. package/dist/actions/schema/uploadSchemaToLexicon.js +87 -0
  262. package/dist/actions/schema/uploadSchemaToLexicon.js.map +1 -0
  263. package/dist/actions/schema/utils/SchemaExtractionError.js +10 -0
  264. package/dist/actions/schema/utils/SchemaExtractionError.js.map +1 -0
  265. package/dist/actions/schema/utils/schemaStoreValidation.js +1 -15
  266. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
  267. package/dist/actions/schema/utils/uniqByProjectIdDataset.js +1 -1
  268. package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -1
  269. package/dist/actions/schema/validateSchema.worker.js +1 -8
  270. package/dist/actions/schema/validateSchema.worker.js.map +1 -1
  271. package/dist/actions/schema/watchExtractSchema.js +72 -0
  272. package/dist/actions/schema/watchExtractSchema.js.map +1 -0
  273. package/dist/actions/telemetry/isTrueish.js +10 -0
  274. package/dist/actions/telemetry/isTrueish.js.map +1 -0
  275. package/dist/actions/telemetry/resolveConsent.js +2 -1
  276. package/dist/actions/telemetry/resolveConsent.js.map +1 -1
  277. package/dist/actions/telemetry/setConsent.js +2 -1
  278. package/dist/actions/telemetry/setConsent.js.map +1 -1
  279. package/dist/actions/telemetry/telemetryDebug.js +2 -2
  280. package/dist/actions/telemetry/telemetryDebug.js.map +1 -1
  281. package/dist/actions/users/getMembersForProject.js.map +1 -1
  282. package/dist/actions/users/getPendingInvitations.js +1 -1
  283. package/dist/actions/users/getPendingInvitations.js.map +1 -1
  284. package/dist/actions/users/types.js.map +1 -1
  285. package/dist/actions/versions/filterSanityModules.js.map +1 -1
  286. package/dist/actions/versions/findSanityModulesVersions.js +2 -3
  287. package/dist/actions/versions/findSanityModulesVersions.js.map +1 -1
  288. package/dist/actions/versions/getFormatters.js +1 -1
  289. package/dist/actions/versions/getFormatters.js.map +1 -1
  290. package/dist/actions/versions/tryFindLatestVersion.js +1 -1
  291. package/dist/actions/versions/tryFindLatestVersion.js.map +1 -1
  292. package/dist/commands/backup/disable.js +22 -7
  293. package/dist/commands/backup/disable.js.map +1 -1
  294. package/dist/commands/backup/download.js +19 -10
  295. package/dist/commands/backup/download.js.map +1 -1
  296. package/dist/commands/backup/enable.js +22 -7
  297. package/dist/commands/backup/enable.js.map +1 -1
  298. package/dist/commands/backup/list.js +20 -8
  299. package/dist/commands/backup/list.js.map +1 -1
  300. package/dist/commands/build.js +2 -5
  301. package/dist/commands/build.js.map +1 -1
  302. package/dist/commands/cors/add.js +20 -7
  303. package/dist/commands/cors/add.js.map +1 -1
  304. package/dist/commands/cors/delete.js +22 -7
  305. package/dist/commands/cors/delete.js.map +1 -1
  306. package/dist/commands/cors/list.js +22 -7
  307. package/dist/commands/cors/list.js.map +1 -1
  308. package/dist/commands/dataset/alias/create.js +26 -7
  309. package/dist/commands/dataset/alias/create.js.map +1 -1
  310. package/dist/commands/dataset/alias/delete.js +20 -7
  311. package/dist/commands/dataset/alias/delete.js.map +1 -1
  312. package/dist/commands/dataset/alias/link.js +20 -7
  313. package/dist/commands/dataset/alias/link.js.map +1 -1
  314. package/dist/commands/dataset/alias/unlink.js +20 -7
  315. package/dist/commands/dataset/alias/unlink.js.map +1 -1
  316. package/dist/commands/dataset/copy.js +45 -30
  317. package/dist/commands/dataset/copy.js.map +1 -1
  318. package/dist/commands/dataset/create.js +32 -7
  319. package/dist/commands/dataset/create.js.map +1 -1
  320. package/dist/commands/dataset/delete.js +16 -7
  321. package/dist/commands/dataset/delete.js.map +1 -1
  322. package/dist/commands/dataset/embeddings/disable.js +77 -0
  323. package/dist/commands/dataset/embeddings/disable.js.map +1 -0
  324. package/dist/commands/dataset/embeddings/enable.js +141 -0
  325. package/dist/commands/dataset/embeddings/enable.js.map +1 -0
  326. package/dist/commands/dataset/embeddings/status.js +72 -0
  327. package/dist/commands/dataset/embeddings/status.js.map +1 -0
  328. package/dist/commands/dataset/export.js +25 -16
  329. package/dist/commands/dataset/export.js.map +1 -1
  330. package/dist/commands/dataset/import.js +306 -1
  331. package/dist/commands/dataset/import.js.map +1 -1
  332. package/dist/commands/dataset/list.js +22 -7
  333. package/dist/commands/dataset/list.js.map +1 -1
  334. package/dist/commands/dataset/visibility/get.js +18 -7
  335. package/dist/commands/dataset/visibility/get.js.map +1 -1
  336. package/dist/commands/dataset/visibility/set.js +22 -7
  337. package/dist/commands/dataset/visibility/set.js.map +1 -1
  338. package/dist/commands/debug.js +4 -2
  339. package/dist/commands/debug.js.map +1 -1
  340. package/dist/commands/deploy.js +22 -11
  341. package/dist/commands/deploy.js.map +1 -1
  342. package/dist/commands/dev.js +2 -4
  343. package/dist/commands/dev.js.map +1 -1
  344. package/dist/commands/doctor.js +125 -0
  345. package/dist/commands/doctor.js.map +1 -0
  346. package/dist/commands/documents/create.js +19 -12
  347. package/dist/commands/documents/create.js.map +1 -1
  348. package/dist/commands/documents/delete.js +19 -12
  349. package/dist/commands/documents/delete.js.map +1 -1
  350. package/dist/commands/documents/get.js +17 -12
  351. package/dist/commands/documents/get.js.map +1 -1
  352. package/dist/commands/documents/query.js +26 -18
  353. package/dist/commands/documents/query.js.map +1 -1
  354. package/dist/commands/documents/validate.js +32 -10
  355. package/dist/commands/documents/validate.js.map +1 -1
  356. package/dist/commands/graphql/deploy.js +58 -30
  357. package/dist/commands/graphql/deploy.js.map +1 -1
  358. package/dist/commands/graphql/list.js +15 -7
  359. package/dist/commands/graphql/list.js.map +1 -1
  360. package/dist/commands/graphql/undeploy.js +37 -19
  361. package/dist/commands/graphql/undeploy.js.map +1 -1
  362. package/dist/commands/hook/attempt.js +22 -7
  363. package/dist/commands/hook/attempt.js.map +1 -1
  364. package/dist/commands/hook/create.js +23 -8
  365. package/dist/commands/hook/create.js.map +1 -1
  366. package/dist/commands/hook/delete.js +22 -7
  367. package/dist/commands/hook/delete.js.map +1 -1
  368. package/dist/commands/hook/list.js +22 -7
  369. package/dist/commands/hook/list.js.map +1 -1
  370. package/dist/commands/hook/logs.js +21 -8
  371. package/dist/commands/hook/logs.js.map +1 -1
  372. package/dist/commands/init.js +55 -32
  373. package/dist/commands/init.js.map +1 -1
  374. package/dist/commands/login.js +19 -6
  375. package/dist/commands/login.js.map +1 -1
  376. package/dist/commands/logout.js +8 -6
  377. package/dist/commands/logout.js.map +1 -1
  378. package/dist/commands/manage.js +0 -1
  379. package/dist/commands/manage.js.map +1 -1
  380. package/dist/commands/manifest/extract.js +14 -10
  381. package/dist/commands/manifest/extract.js.map +1 -1
  382. package/dist/commands/mcp/configure.js +4 -2
  383. package/dist/commands/mcp/configure.js.map +1 -1
  384. package/dist/commands/media/create-aspect.js +4 -4
  385. package/dist/commands/media/create-aspect.js.map +1 -1
  386. package/dist/commands/media/delete-aspect.js +9 -7
  387. package/dist/commands/media/delete-aspect.js.map +1 -1
  388. package/dist/commands/media/deploy-aspect.js +22 -9
  389. package/dist/commands/media/deploy-aspect.js.map +1 -1
  390. package/dist/commands/media/export.js +9 -7
  391. package/dist/commands/media/export.js.map +1 -1
  392. package/dist/commands/media/import.js +10 -8
  393. package/dist/commands/media/import.js.map +1 -1
  394. package/dist/commands/preview.js +5 -8
  395. package/dist/commands/preview.js.map +1 -1
  396. package/dist/commands/projects/list.js +2 -1
  397. package/dist/commands/projects/list.js.map +1 -1
  398. package/dist/commands/schema/delete.js +33 -34
  399. package/dist/commands/schema/delete.js.map +1 -1
  400. package/dist/commands/schema/deploy.js +19 -30
  401. package/dist/commands/schema/deploy.js.map +1 -1
  402. package/dist/commands/schema/extract.js +32 -4
  403. package/dist/commands/schema/extract.js.map +1 -1
  404. package/dist/commands/schema/list.js +10 -31
  405. package/dist/commands/schema/list.js.map +1 -1
  406. package/dist/commands/tokens/add.js +24 -7
  407. package/dist/commands/tokens/add.js.map +1 -1
  408. package/dist/commands/tokens/delete.js +20 -7
  409. package/dist/commands/tokens/delete.js.map +1 -1
  410. package/dist/commands/tokens/list.js +20 -7
  411. package/dist/commands/tokens/list.js.map +1 -1
  412. package/dist/commands/users/invite.js +24 -7
  413. package/dist/commands/users/invite.js.map +1 -1
  414. package/dist/commands/users/list.js +76 -33
  415. package/dist/commands/users/list.js.map +1 -1
  416. package/dist/commands/versions.js +1 -1
  417. package/dist/commands/versions.js.map +1 -1
  418. package/dist/config/createCliConfig.js +1 -2
  419. package/dist/config/createCliConfig.js.map +1 -1
  420. package/dist/exports/_internal.d.ts +132 -0
  421. package/dist/exports/_internal.js +4 -0
  422. package/dist/exports/_internal.js.map +1 -0
  423. package/dist/exports/index.d.ts +113 -0
  424. package/dist/exports/index.js +6 -0
  425. package/dist/exports/index.js.map +1 -0
  426. package/dist/hooks/init/checkForUpdates.js +14 -0
  427. package/dist/hooks/init/checkForUpdates.js.map +1 -0
  428. package/dist/hooks/prerun/flushTelemetry.worker.js +1 -1
  429. package/dist/hooks/prerun/flushTelemetry.worker.js.map +1 -1
  430. package/dist/hooks/prerun/injectEnvVariables.js +9 -1
  431. package/dist/hooks/prerun/injectEnvVariables.js.map +1 -1
  432. package/dist/hooks/prerun/setupTelemetry.js +16 -10
  433. package/dist/hooks/prerun/setupTelemetry.js.map +1 -1
  434. package/dist/prompts/promptForProject.js +64 -0
  435. package/dist/prompts/promptForProject.js.map +1 -0
  436. package/dist/{actions/auth/login/promptProviders.js → prompts/promptForProviders.js} +3 -3
  437. package/dist/prompts/promptForProviders.js.map +1 -0
  438. package/dist/prompts/selectMediaLibrary.js +1 -1
  439. package/dist/prompts/selectMediaLibrary.js.map +1 -1
  440. package/dist/server/devServer.js +4 -2
  441. package/dist/server/devServer.js.map +1 -1
  442. package/dist/server/previewServer.js +2 -2
  443. package/dist/server/previewServer.js.map +1 -1
  444. package/dist/server/vite/plugin-schema-extraction.js +201 -0
  445. package/dist/server/vite/plugin-schema-extraction.js.map +1 -0
  446. package/dist/server/vite/plugin-typegen.js +217 -0
  447. package/dist/server/vite/plugin-typegen.js.map +1 -0
  448. package/dist/services/auth.js +42 -3
  449. package/dist/services/auth.js.map +1 -1
  450. package/dist/services/datasets.js +7 -5
  451. package/dist/services/datasets.js.map +1 -1
  452. package/dist/services/docs.js +2 -2
  453. package/dist/services/docs.js.map +1 -1
  454. package/dist/services/embeddings.js +25 -0
  455. package/dist/services/embeddings.js.map +1 -0
  456. package/dist/services/getUrlHeaders.js +7 -18
  457. package/dist/services/getUrlHeaders.js.map +1 -1
  458. package/dist/services/grants.js +13 -0
  459. package/dist/services/grants.js.map +1 -0
  460. package/dist/services/graphql.js +1 -1
  461. package/dist/services/graphql.js.map +1 -1
  462. package/dist/services/mcp.js +55 -1
  463. package/dist/services/mcp.js.map +1 -1
  464. package/dist/services/projects.js +4 -2
  465. package/dist/services/projects.js.map +1 -1
  466. package/dist/services/schemas.js +1 -1
  467. package/dist/services/schemas.js.map +1 -1
  468. package/dist/services/telemetry.js +2 -1
  469. package/dist/services/telemetry.js.map +1 -1
  470. package/dist/services/userApplications.js +21 -6
  471. package/dist/services/userApplications.js.map +1 -1
  472. package/dist/telemetry/extractSchema.telemetry.js +10 -0
  473. package/dist/telemetry/extractSchema.telemetry.js.map +1 -1
  474. package/dist/types/grants.js +3 -0
  475. package/dist/types/grants.js.map +1 -0
  476. package/dist/types.js +3 -0
  477. package/dist/types.js.map +1 -1
  478. package/dist/util/checkProjectPermissions.js +21 -0
  479. package/dist/util/checkProjectPermissions.js.map +1 -0
  480. package/dist/util/cliClient.js +5 -3
  481. package/dist/util/cliClient.js.map +1 -1
  482. package/dist/util/compareDependencyVersions.js +74 -38
  483. package/dist/util/compareDependencyVersions.js.map +1 -1
  484. package/dist/util/createExpiringConfig.js +64 -0
  485. package/dist/util/createExpiringConfig.js.map +1 -0
  486. package/dist/util/detectFramework.js +135 -0
  487. package/dist/util/detectFramework.js.map +1 -0
  488. package/dist/util/errorMessages.js +0 -1
  489. package/dist/util/errorMessages.js.map +1 -1
  490. package/dist/util/extractDocumentsFromNdjsonOrTarball.js +1 -2
  491. package/dist/util/extractDocumentsFromNdjsonOrTarball.js.map +1 -1
  492. package/dist/util/getCliVersion.js +1 -1
  493. package/dist/util/getCliVersion.js.map +1 -1
  494. package/dist/util/getLocalPackageVersion.js +33 -23
  495. package/dist/util/getLocalPackageVersion.js.map +1 -1
  496. package/dist/util/getProjectDefaults.js +22 -28
  497. package/dist/util/getProjectDefaults.js.map +1 -1
  498. package/dist/util/getSharedServerConfig.js +1 -0
  499. package/dist/util/getSharedServerConfig.js.map +1 -1
  500. package/dist/util/getWorkspace.js +1 -1
  501. package/dist/util/getWorkspace.js.map +1 -1
  502. package/dist/util/gitConfig.js +45 -0
  503. package/dist/util/gitConfig.js.map +1 -0
  504. package/dist/util/isSchemaError.js +11 -0
  505. package/dist/util/isSchemaError.js.map +1 -0
  506. package/dist/util/isTar.js +8 -0
  507. package/dist/util/isTar.js.map +1 -0
  508. package/dist/util/packageManager/getPeerDependencies.js +44 -0
  509. package/dist/util/packageManager/getPeerDependencies.js.map +1 -0
  510. package/dist/util/packageManager/installationInfo/analyzeIssues.js +225 -0
  511. package/dist/util/packageManager/installationInfo/analyzeIssues.js.map +1 -0
  512. package/dist/util/packageManager/installationInfo/commands.js +73 -0
  513. package/dist/util/packageManager/installationInfo/commands.js.map +1 -0
  514. package/dist/util/packageManager/installationInfo/detectCliInstallation.js +66 -0
  515. package/dist/util/packageManager/installationInfo/detectCliInstallation.js.map +1 -0
  516. package/dist/util/packageManager/installationInfo/detectGlobals.js +295 -0
  517. package/dist/util/packageManager/installationInfo/detectGlobals.js.map +1 -0
  518. package/dist/util/packageManager/installationInfo/detectPackages.js +190 -0
  519. package/dist/util/packageManager/installationInfo/detectPackages.js.map +1 -0
  520. package/dist/util/packageManager/installationInfo/detectWorkspace.js +192 -0
  521. package/dist/util/packageManager/installationInfo/detectWorkspace.js.map +1 -0
  522. package/dist/util/packageManager/installationInfo/index.js +4 -0
  523. package/dist/util/packageManager/installationInfo/index.js.map +1 -0
  524. package/dist/util/packageManager/installationInfo/readJsonFile.js +14 -0
  525. package/dist/util/packageManager/installationInfo/readJsonFile.js.map +1 -0
  526. package/dist/util/packageManager/installationInfo/resolveVersionRange.js +42 -0
  527. package/dist/util/packageManager/installationInfo/resolveVersionRange.js.map +1 -0
  528. package/dist/util/packageManager/installationInfo/types.js +3 -0
  529. package/dist/util/packageManager/installationInfo/types.js.map +1 -0
  530. package/dist/util/packageManager/packageManagerChoice.js +1 -20
  531. package/dist/util/packageManager/packageManagerChoice.js.map +1 -1
  532. package/dist/util/packageManager/upgradePackages.js +4 -1
  533. package/dist/util/packageManager/upgradePackages.js.map +1 -1
  534. package/dist/util/promiseRaceWithTimeout.js +28 -0
  535. package/dist/util/promiseRaceWithTimeout.js.map +1 -0
  536. package/dist/util/readdirRecursive.js.map +1 -1
  537. package/dist/util/resolveLatestVersions.js +2 -2
  538. package/dist/util/resolveLatestVersions.js.map +1 -1
  539. package/dist/util/sharedFlags.js +54 -0
  540. package/dist/util/sharedFlags.js.map +1 -0
  541. package/dist/util/telemetry/cleanupOldTelemetryFiles.js +30 -0
  542. package/dist/util/telemetry/cleanupOldTelemetryFiles.js.map +1 -0
  543. package/dist/util/telemetry/createTelemetryStore.js +95 -0
  544. package/dist/util/telemetry/createTelemetryStore.js.map +1 -0
  545. package/dist/util/telemetry/createTraceId.js +10 -0
  546. package/dist/util/telemetry/createTraceId.js.map +1 -0
  547. package/dist/util/telemetry/findTelemetryFiles.js +35 -0
  548. package/dist/util/telemetry/findTelemetryFiles.js.map +1 -0
  549. package/dist/util/telemetry/flushTelemetryFiles.js +118 -0
  550. package/dist/util/telemetry/flushTelemetryFiles.js.map +1 -0
  551. package/dist/util/telemetry/generateTelemetryFilePath.js +30 -0
  552. package/dist/util/telemetry/generateTelemetryFilePath.js.map +1 -0
  553. package/dist/util/telemetry/logger.js +59 -0
  554. package/dist/util/telemetry/logger.js.map +1 -0
  555. package/dist/util/telemetry/readNDJSON.js +28 -0
  556. package/dist/util/telemetry/readNDJSON.js.map +1 -0
  557. package/dist/util/telemetry/telemetryStoreDebug.js +7 -0
  558. package/dist/util/telemetry/telemetryStoreDebug.js.map +1 -0
  559. package/dist/util/telemetry/trace.js +150 -0
  560. package/dist/util/telemetry/trace.js.map +1 -0
  561. package/dist/util/toForwardSlashes.js +8 -0
  562. package/dist/util/toForwardSlashes.js.map +1 -0
  563. package/dist/util/update/fetchLatestVersion.js +21 -0
  564. package/dist/util/update/fetchLatestVersion.js.map +1 -0
  565. package/dist/util/update/getUpdateCommand.js +20 -0
  566. package/dist/util/update/getUpdateCommand.js.map +1 -0
  567. package/dist/util/update/isInstalledUsingYarn.js +17 -0
  568. package/dist/util/update/isInstalledUsingYarn.js.map +1 -0
  569. package/dist/util/update/showNotificationUpdate.js +31 -0
  570. package/dist/util/update/showNotificationUpdate.js.map +1 -0
  571. package/dist/util/update/updateChecker.js +60 -0
  572. package/dist/util/update/updateChecker.js.map +1 -0
  573. package/dist/util/update/updateCheckerDebug.js +4 -0
  574. package/dist/util/update/updateCheckerDebug.js.map +1 -0
  575. package/oclif.config.js +1 -0
  576. package/oclif.manifest.json +1285 -492
  577. package/package.json +72 -73
  578. package/static/favicons/apple-touch-icon.png +0 -0
  579. package/static/favicons/favicon-192.png +0 -0
  580. package/static/favicons/favicon-512.png +0 -0
  581. package/static/favicons/favicon-96.png +0 -0
  582. package/static/favicons/favicon.ico +0 -0
  583. package/static/favicons/favicon.svg +12 -0
  584. package/dist/actions/auth/login/promptProviders.js.map +0 -1
  585. package/dist/actions/dev/getCoreAppUrl.js +0 -10
  586. package/dist/actions/dev/getCoreAppUrl.js.map +0 -1
  587. package/dist/actions/schema/schemaStoreTypes.js +0 -19
  588. package/dist/actions/schema/schemaStoreTypes.js.map +0 -1
  589. package/dist/actions/schema/utils/manifestExtractor.js +0 -33
  590. package/dist/actions/schema/utils/manifestExtractor.js.map +0 -1
  591. package/dist/actions/schema/utils/manifestReader.js +0 -71
  592. package/dist/actions/schema/utils/manifestReader.js.map +0 -1
  593. package/dist/index.d.ts +0 -2326
  594. package/dist/index.js +0 -6
  595. package/dist/index.js.map +0 -1
  596. package/dist/studioDependencies.js.map +0 -1
  597. package/dist/typings/deepSortObject.d.js +0 -2
  598. package/dist/typings/deepSortObject.d.js.map +0 -1
  599. package/dist/util/findNdjsonEntry.js +0 -21
  600. package/dist/util/findNdjsonEntry.js.map +0 -1
  601. package/dist/util/importStudioConfig.js +0 -40
  602. package/dist/util/importStudioConfig.js.map +0 -1
  603. package/dist/util/readModuleVersion.js +0 -15
  604. package/dist/util/readModuleVersion.js.map +0 -1
  605. package/dist/util/readPackageJson.js +0 -44
  606. package/dist/util/readPackageJson.js.map +0 -1
  607. package/dist/util/readPackageManifest.js +0 -46
  608. package/dist/util/readPackageManifest.js.map +0 -1
  609. package/dist/util/uniqBy.js +0 -14
  610. package/dist/util/uniqBy.js.map +0 -1
  611. package/dist/util/workerChannels.js +0 -172
  612. package/dist/util/workerChannels.js.map +0 -1
  613. /package/dist/{studioDependencies.js → actions/init/studioDependencies.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/graphql/gen1/generateTypeQueries.ts"],"sourcesContent":["import {startCase, upperFirst} from 'lodash-es'\nimport pluralize from 'pluralize-esm'\n\nimport {isNonUnion} from '../helpers.js'\nimport {\n type ConvertedType,\n type ConvertedUnion,\n type InputObjectType,\n type QueryDefinition,\n} from '../types.js'\n\nfunction pluralizeTypeName(name: string): string {\n const words = startCase(name).split(' ')\n const last = words.at(-1)\n // `pluralize` previously incorrectly cased the S to uppercase after numbers,\n // which we need to maintain for backwards compatibility\n const plural = pluralize(last?.toLowerCase() ?? '').replaceAll(/(\\d)s$/g, '$1S')\n words[words.length - 1] = upperFirst(plural)\n return words.join('')\n}\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n filters: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types\n .filter((type) => isNonUnion(type))\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n // Single ID-based result lookup queries\n for (const type of queryable) {\n queries.push({\n args: [\n {\n description: `${type.name} document ID`,\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'EQUALS',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: type.name,\n type: type.name,\n })\n }\n\n // Fetch all of type\n for (const type of queryable) {\n const filterName = `${type.name}Filter`\n const hasFilter = filters.find((filter) => filter.name === filterName)\n queries.push({\n args: hasFilter\n ? [{isFieldFilter: true, name: 'where', type: filterName}, ...getLimitOffsetArgs()]\n : getLimitOffsetArgs(),\n fieldName: `all${pluralizeTypeName(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n children: {isNullable: false, type: type.name},\n isNullable: false,\n kind: 'List',\n },\n })\n }\n\n return queries\n}\n\nfunction getLimitOffsetArgs(): QueryDefinition['args'] {\n return [\n {\n description: 'Max documents to return',\n isFieldFilter: false,\n name: 'limit',\n type: 'Int',\n },\n {\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n name: 'offset',\n type: 'Int',\n },\n ]\n}\n"],"names":["startCase","upperFirst","pluralize","isNonUnion","pluralizeTypeName","name","words","split","last","at","plural","toLowerCase","replaceAll","length","join","generateTypeQueries","types","filters","queries","queryable","filter","type","interfaces","includes","push","args","description","isNullable","constraints","comparator","field","value","argName","kind","fieldName","filterName","hasFilter","find","isFieldFilter","getLimitOffsetArgs","originalName","children"],"mappings":"AAAA,SAAQA,SAAS,EAAEC,UAAU,QAAO,YAAW;AAC/C,OAAOC,eAAe,gBAAe;AAErC,SAAQC,UAAU,QAAO,gBAAe;AAQxC,SAASC,kBAAkBC,IAAY;IACrC,MAAMC,QAAQN,UAAUK,MAAME,KAAK,CAAC;IACpC,MAAMC,OAAOF,MAAMG,EAAE,CAAC,CAAC;IACvB,6EAA6E;IAC7E,wDAAwD;IACxD,MAAMC,SAASR,UAAUM,MAAMG,iBAAiB,IAAIC,UAAU,CAAC,WAAW;IAC1EN,KAAK,CAACA,MAAMO,MAAM,GAAG,EAAE,GAAGZ,WAAWS;IACrC,OAAOJ,MAAMQ,IAAI,CAAC;AACpB;AAEA,OAAO,SAASC,oBACdC,KAAyC,EACzCC,OAA0B;IAE1B,MAAMC,UAA6B,EAAE;IACrC,MAAMC,YAAYH,MACfI,MAAM,CAAC,CAACC,OAASlB,WAAWkB,OAC5BD,MAAM,CACL,CAACC,OAASA,KAAKA,IAAI,KAAK,YAAYA,KAAKC,UAAU,IAAID,KAAKC,UAAU,CAACC,QAAQ,CAAC;IAGpF,wCAAwC;IACxC,KAAK,MAAMF,QAAQF,UAAW;QAC5BD,QAAQM,IAAI,CAAC;YACXC,MAAM;gBACJ;oBACEC,aAAa,GAAGL,KAAKhB,IAAI,CAAC,YAAY,CAAC;oBACvCsB,YAAY;oBACZtB,MAAM;oBACNgB,MAAM;gBACR;aACD;YACDO,aAAa;gBACX;oBACEC,YAAY;oBACZC,OAAO;oBACPC,OAAO;wBAACC,SAAS;wBAAMC,MAAM;oBAAe;gBAC9C;aACD;YACDC,WAAWb,KAAKhB,IAAI;YACpBgB,MAAMA,KAAKhB,IAAI;QACjB;IACF;IAEA,oBAAoB;IACpB,KAAK,MAAMgB,QAAQF,UAAW;QAC5B,MAAMgB,aAAa,GAAGd,KAAKhB,IAAI,CAAC,MAAM,CAAC;QACvC,MAAM+B,YAAYnB,QAAQoB,IAAI,CAAC,CAACjB,SAAWA,OAAOf,IAAI,KAAK8B;QAC3DjB,QAAQM,IAAI,CAAC;YACXC,MAAMW,YACF;gBAAC;oBAACE,eAAe;oBAAMjC,MAAM;oBAASgB,MAAMc;gBAAU;mBAAMI;aAAqB,GACjFA;YACJL,WAAW,CAAC,GAAG,EAAE9B,kBAAkBiB,KAAKhB,IAAI,GAAG;YAC/Ce,QAAQ,CAAC,UAAU,EAAEC,KAAKmB,YAAY,IAAInB,KAAKhB,IAAI,CAAC,CAAC,CAAC;YACtDgB,MAAM;gBACJoB,UAAU;oBAACd,YAAY;oBAAON,MAAMA,KAAKhB,IAAI;gBAAA;gBAC7CsB,YAAY;gBACZM,MAAM;YACR;QACF;IACF;IAEA,OAAOf;AACT;AAEA,SAASqB;IACP,OAAO;QACL;YACEb,aAAa;YACbY,eAAe;YACfjC,MAAM;YACNgB,MAAM;QACR;QACA;YACEK,aAAa;YACbY,eAAe;YACfjC,MAAM;YACNgB,MAAM;QACR;KACD;AACH"}
1
+ {"version":3,"sources":["../../../../src/actions/graphql/gen1/generateTypeQueries.ts"],"sourcesContent":["import startCase from 'lodash-es/startCase.js'\nimport upperFirst from 'lodash-es/upperFirst.js'\nimport pluralize from 'pluralize-esm'\n\nimport {isNonUnion} from '../helpers.js'\nimport {\n type ConvertedType,\n type ConvertedUnion,\n type InputObjectType,\n type QueryDefinition,\n} from '../types.js'\n\nfunction pluralizeTypeName(name: string): string {\n const words = startCase(name).split(' ')\n const last = words.at(-1)\n // `pluralize` previously incorrectly cased the S to uppercase after numbers,\n // which we need to maintain for backwards compatibility\n const plural = pluralize(last?.toLowerCase() ?? '').replaceAll(/(\\d)s$/g, '$1S')\n words[words.length - 1] = upperFirst(plural)\n return words.join('')\n}\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n filters: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types\n .filter((type) => isNonUnion(type))\n .filter(\n (type) => type.type === 'Object' && type.interfaces && type.interfaces.includes('Document'),\n )\n\n // Single ID-based result lookup queries\n for (const type of queryable) {\n queries.push({\n args: [\n {\n description: `${type.name} document ID`,\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'EQUALS',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: type.name,\n type: type.name,\n })\n }\n\n // Fetch all of type\n for (const type of queryable) {\n const filterName = `${type.name}Filter`\n const hasFilter = filters.find((filter) => filter.name === filterName)\n queries.push({\n args: hasFilter\n ? [{isFieldFilter: true, name: 'where', type: filterName}, ...getLimitOffsetArgs()]\n : getLimitOffsetArgs(),\n fieldName: `all${pluralizeTypeName(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n children: {isNullable: false, type: type.name},\n isNullable: false,\n kind: 'List',\n },\n })\n }\n\n return queries\n}\n\nfunction getLimitOffsetArgs(): QueryDefinition['args'] {\n return [\n {\n description: 'Max documents to return',\n isFieldFilter: false,\n name: 'limit',\n type: 'Int',\n },\n {\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n name: 'offset',\n type: 'Int',\n },\n ]\n}\n"],"names":["startCase","upperFirst","pluralize","isNonUnion","pluralizeTypeName","name","words","split","last","at","plural","toLowerCase","replaceAll","length","join","generateTypeQueries","types","filters","queries","queryable","filter","type","interfaces","includes","push","args","description","isNullable","constraints","comparator","field","value","argName","kind","fieldName","filterName","hasFilter","find","isFieldFilter","getLimitOffsetArgs","originalName","children"],"mappings":"AAAA,OAAOA,eAAe,yBAAwB;AAC9C,OAAOC,gBAAgB,0BAAyB;AAChD,OAAOC,eAAe,gBAAe;AAErC,SAAQC,UAAU,QAAO,gBAAe;AAQxC,SAASC,kBAAkBC,IAAY;IACrC,MAAMC,QAAQN,UAAUK,MAAME,KAAK,CAAC;IACpC,MAAMC,OAAOF,MAAMG,EAAE,CAAC,CAAC;IACvB,6EAA6E;IAC7E,wDAAwD;IACxD,MAAMC,SAASR,UAAUM,MAAMG,iBAAiB,IAAIC,UAAU,CAAC,WAAW;IAC1EN,KAAK,CAACA,MAAMO,MAAM,GAAG,EAAE,GAAGZ,WAAWS;IACrC,OAAOJ,MAAMQ,IAAI,CAAC;AACpB;AAEA,OAAO,SAASC,oBACdC,KAAyC,EACzCC,OAA0B;IAE1B,MAAMC,UAA6B,EAAE;IACrC,MAAMC,YAAYH,MACfI,MAAM,CAAC,CAACC,OAASlB,WAAWkB,OAC5BD,MAAM,CACL,CAACC,OAASA,KAAKA,IAAI,KAAK,YAAYA,KAAKC,UAAU,IAAID,KAAKC,UAAU,CAACC,QAAQ,CAAC;IAGpF,wCAAwC;IACxC,KAAK,MAAMF,QAAQF,UAAW;QAC5BD,QAAQM,IAAI,CAAC;YACXC,MAAM;gBACJ;oBACEC,aAAa,GAAGL,KAAKhB,IAAI,CAAC,YAAY,CAAC;oBACvCsB,YAAY;oBACZtB,MAAM;oBACNgB,MAAM;gBACR;aACD;YACDO,aAAa;gBACX;oBACEC,YAAY;oBACZC,OAAO;oBACPC,OAAO;wBAACC,SAAS;wBAAMC,MAAM;oBAAe;gBAC9C;aACD;YACDC,WAAWb,KAAKhB,IAAI;YACpBgB,MAAMA,KAAKhB,IAAI;QACjB;IACF;IAEA,oBAAoB;IACpB,KAAK,MAAMgB,QAAQF,UAAW;QAC5B,MAAMgB,aAAa,GAAGd,KAAKhB,IAAI,CAAC,MAAM,CAAC;QACvC,MAAM+B,YAAYnB,QAAQoB,IAAI,CAAC,CAACjB,SAAWA,OAAOf,IAAI,KAAK8B;QAC3DjB,QAAQM,IAAI,CAAC;YACXC,MAAMW,YACF;gBAAC;oBAACE,eAAe;oBAAMjC,MAAM;oBAASgB,MAAMc;gBAAU;mBAAMI;aAAqB,GACjFA;YACJL,WAAW,CAAC,GAAG,EAAE9B,kBAAkBiB,KAAKhB,IAAI,GAAG;YAC/Ce,QAAQ,CAAC,UAAU,EAAEC,KAAKmB,YAAY,IAAInB,KAAKhB,IAAI,CAAC,CAAC,CAAC;YACtDgB,MAAM;gBACJoB,UAAU;oBAACd,YAAY;oBAAON,MAAMA,KAAKhB,IAAI;gBAAA;gBAC7CsB,YAAY;gBACZM,MAAM;YACR;QACF;IACF;IAEA,OAAOf;AACT;AAEA,SAASqB;IACP,OAAO;QACL;YACEb,aAAa;YACbY,eAAe;YACfjC,MAAM;YACNgB,MAAM;QACR;QACA;YACEK,aAAa;YACbY,eAAe;YACfjC,MAAM;YACNgB,MAAM;QACR;KACD;AACH"}
@@ -1,17 +1,17 @@
1
+ import { stripInternalMeta } from '../helpers.js';
1
2
  import { generateTypeFilters } from './generateTypeFilters.js';
2
3
  import { generateTypeQueries } from './generateTypeQueries.js';
3
4
  const gen1 = (extracted)=>{
4
5
  const filters = generateTypeFilters(extracted.types);
5
6
  const queries = generateTypeQueries(extracted.types, filters);
6
- const types = [
7
- ...extracted.types,
8
- ...filters
9
- ];
10
7
  return {
11
8
  generation: 'gen1',
12
9
  interfaces: extracted.interfaces,
13
10
  queries,
14
- types
11
+ types: [
12
+ ...stripInternalMeta(extracted.types),
13
+ ...filters
14
+ ]
15
15
  };
16
16
  };
17
17
  export default gen1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/graphql/gen1/index.ts"],"sourcesContent":["import {type ApiSpecification, type GeneratedApiSpecification} from '../types.js'\nimport {generateTypeFilters} from './generateTypeFilters.js'\nimport {generateTypeQueries} from './generateTypeQueries.js'\n\nconst gen1 = (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const queries = generateTypeQueries(extracted.types, filters)\n const types = [...extracted.types, ...filters]\n return {generation: 'gen1', interfaces: extracted.interfaces, queries, types}\n}\n\nexport default gen1\n"],"names":["generateTypeFilters","generateTypeQueries","gen1","extracted","filters","types","queries","generation","interfaces"],"mappings":"AACA,SAAQA,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,mBAAmB,QAAO,2BAA0B;AAE5D,MAAMC,OAAO,CAACC;IACZ,MAAMC,UAAUJ,oBAAoBG,UAAUE,KAAK;IACnD,MAAMC,UAAUL,oBAAoBE,UAAUE,KAAK,EAAED;IACrD,MAAMC,QAAQ;WAAIF,UAAUE,KAAK;WAAKD;KAAQ;IAC9C,OAAO;QAACG,YAAY;QAAQC,YAAYL,UAAUK,UAAU;QAAEF;QAASD;IAAK;AAC9E;AAEA,eAAeH,KAAI"}
1
+ {"version":3,"sources":["../../../../src/actions/graphql/gen1/index.ts"],"sourcesContent":["import {stripInternalMeta} from '../helpers.js'\nimport {type ApiSpecification, type GeneratedApiSpecification} from '../types.js'\nimport {generateTypeFilters} from './generateTypeFilters.js'\nimport {generateTypeQueries} from './generateTypeQueries.js'\n\nconst gen1 = (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const queries = generateTypeQueries(extracted.types, filters)\n\n return {\n generation: 'gen1',\n interfaces: extracted.interfaces,\n queries,\n types: [...stripInternalMeta(extracted.types), ...filters],\n }\n}\n\nexport default gen1\n"],"names":["stripInternalMeta","generateTypeFilters","generateTypeQueries","gen1","extracted","filters","types","queries","generation","interfaces"],"mappings":"AAAA,SAAQA,iBAAiB,QAAO,gBAAe;AAE/C,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,mBAAmB,QAAO,2BAA0B;AAE5D,MAAMC,OAAO,CAACC;IACZ,MAAMC,UAAUJ,oBAAoBG,UAAUE,KAAK;IACnD,MAAMC,UAAUL,oBAAoBE,UAAUE,KAAK,EAAED;IAErD,OAAO;QACLG,YAAY;QACZC,YAAYL,UAAUK,UAAU;QAChCF;QACAD,OAAO;eAAIN,kBAAkBI,UAAUE,KAAK;eAAMD;SAAQ;IAC5D;AACF;AAEA,eAAeF,KAAI"}
@@ -1,4 +1,4 @@
1
- import { upperFirst } from 'lodash-es';
1
+ import upperFirst from 'lodash-es/upperFirst.js';
2
2
  import { isDocumentType } from '../helpers.js';
3
3
  export function generateTypeQueries(types, sortings) {
4
4
  const queries = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/graphql/gen2/generateTypeQueries.ts"],"sourcesContent":["import {upperFirst} from 'lodash-es'\n\nimport {isDocumentType} from '../helpers.js'\nimport {\n type ConvertedType,\n type ConvertedUnion,\n type InputObjectType,\n type QueryDefinition,\n} from '../types.js'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types.filter((type) => isDocumentType(type))\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // A document of any type\n queries.push({\n args: [\n {\n description: 'Document ID',\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'eq',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: 'Document',\n type: 'Document',\n })\n\n // Single ID-based result lookup queries\n for (const type of queryable) {\n queries.push({\n args: [\n {\n description: `${type.name} document ID`,\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'eq',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: type.name,\n type: type.name,\n })\n }\n\n // Fetch all of type\n for (const type of queryable) {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n children: {\n isNullable: false,\n type: `${type.name}Sorting`,\n },\n isNullable: true,\n kind: 'List',\n },\n })\n }\n\n queries.push({\n args: [\n {\n isFieldFilter: true,\n name: 'where',\n type: `${type.name}Filter`,\n },\n ...sorting,\n {\n description: 'Max documents to return',\n isFieldFilter: false,\n name: 'limit',\n type: 'Int',\n },\n {\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n name: 'offset',\n type: 'Int',\n },\n ],\n fieldName: `all${upperFirst(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n children: {isNullable: false, type: type.name},\n isNullable: false,\n kind: 'List',\n },\n })\n }\n\n return queries\n}\n"],"names":["upperFirst","isDocumentType","generateTypeQueries","types","sortings","queries","queryable","filter","type","isSortable","some","sorting","name","push","args","description","isNullable","constraints","comparator","field","value","argName","kind","fieldName","children","isFieldFilter","originalName"],"mappings":"AAAA,SAAQA,UAAU,QAAO,YAAW;AAEpC,SAAQC,cAAc,QAAO,gBAAe;AAQ5C,OAAO,SAASC,oBACdC,KAAyC,EACzCC,QAA2B;IAE3B,MAAMC,UAA6B,EAAE;IACrC,MAAMC,YAAYH,MAAMI,MAAM,CAAC,CAACC,OAASP,eAAeO;IACxD,MAAMC,aAAa,CAACD,OAClBJ,SAASM,IAAI,CAAC,CAACC,UAAYA,QAAQC,IAAI,KAAK,GAAGJ,KAAKI,IAAI,CAAC,OAAO,CAAC;IAEnE,yBAAyB;IACzBP,QAAQQ,IAAI,CAAC;QACXC,MAAM;YACJ;gBACEC,aAAa;gBACbC,YAAY;gBACZJ,MAAM;gBACNJ,MAAM;YACR;SACD;QACDS,aAAa;YACX;gBACEC,YAAY;gBACZC,OAAO;gBACPC,OAAO;oBAACC,SAAS;oBAAMC,MAAM;gBAAe;YAC9C;SACD;QACDC,WAAW;QACXf,MAAM;IACR;IAEA,wCAAwC;IACxC,KAAK,MAAMA,QAAQF,UAAW;QAC5BD,QAAQQ,IAAI,CAAC;YACXC,MAAM;gBACJ;oBACEC,aAAa,GAAGP,KAAKI,IAAI,CAAC,YAAY,CAAC;oBACvCI,YAAY;oBACZJ,MAAM;oBACNJ,MAAM;gBACR;aACD;YACDS,aAAa;gBACX;oBACEC,YAAY;oBACZC,OAAO;oBACPC,OAAO;wBAACC,SAAS;wBAAMC,MAAM;oBAAe;gBAC9C;aACD;YACDC,WAAWf,KAAKI,IAAI;YACpBJ,MAAMA,KAAKI,IAAI;QACjB;IACF;IAEA,oBAAoB;IACpB,KAAK,MAAMJ,QAAQF,UAAW;QAC5B,MAAMK,UAAmC,EAAE;QAC3C,IAAIF,WAAWD,OAAO;YACpBG,QAAQE,IAAI,CAAC;gBACXD,MAAM;gBACNJ,MAAM;oBACJgB,UAAU;wBACRR,YAAY;wBACZR,MAAM,GAAGA,KAAKI,IAAI,CAAC,OAAO,CAAC;oBAC7B;oBACAI,YAAY;oBACZM,MAAM;gBACR;YACF;QACF;QAEAjB,QAAQQ,IAAI,CAAC;YACXC,MAAM;gBACJ;oBACEW,eAAe;oBACfb,MAAM;oBACNJ,MAAM,GAAGA,KAAKI,IAAI,CAAC,MAAM,CAAC;gBAC5B;mBACGD;gBACH;oBACEI,aAAa;oBACbU,eAAe;oBACfb,MAAM;oBACNJ,MAAM;gBACR;gBACA;oBACEO,aAAa;oBACbU,eAAe;oBACfb,MAAM;oBACNJ,MAAM;gBACR;aACD;YACDe,WAAW,CAAC,GAAG,EAAEvB,WAAWQ,KAAKI,IAAI,GAAG;YACxCL,QAAQ,CAAC,UAAU,EAAEC,KAAKkB,YAAY,IAAIlB,KAAKI,IAAI,CAAC,CAAC,CAAC;YACtDJ,MAAM;gBACJgB,UAAU;oBAACR,YAAY;oBAAOR,MAAMA,KAAKI,IAAI;gBAAA;gBAC7CI,YAAY;gBACZM,MAAM;YACR;QACF;IACF;IAEA,OAAOjB;AACT"}
1
+ {"version":3,"sources":["../../../../src/actions/graphql/gen2/generateTypeQueries.ts"],"sourcesContent":["import upperFirst from 'lodash-es/upperFirst.js'\n\nimport {isDocumentType} from '../helpers.js'\nimport {\n type ConvertedType,\n type ConvertedUnion,\n type InputObjectType,\n type QueryDefinition,\n} from '../types.js'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n): QueryDefinition[] {\n const queries: QueryDefinition[] = []\n const queryable = types.filter((type) => isDocumentType(type))\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // A document of any type\n queries.push({\n args: [\n {\n description: 'Document ID',\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'eq',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: 'Document',\n type: 'Document',\n })\n\n // Single ID-based result lookup queries\n for (const type of queryable) {\n queries.push({\n args: [\n {\n description: `${type.name} document ID`,\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'eq',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: type.name,\n type: type.name,\n })\n }\n\n // Fetch all of type\n for (const type of queryable) {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n children: {\n isNullable: false,\n type: `${type.name}Sorting`,\n },\n isNullable: true,\n kind: 'List',\n },\n })\n }\n\n queries.push({\n args: [\n {\n isFieldFilter: true,\n name: 'where',\n type: `${type.name}Filter`,\n },\n ...sorting,\n {\n description: 'Max documents to return',\n isFieldFilter: false,\n name: 'limit',\n type: 'Int',\n },\n {\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n name: 'offset',\n type: 'Int',\n },\n ],\n fieldName: `all${upperFirst(type.name)}`,\n filter: `_type == \"${type.originalName || type.name}\"`,\n type: {\n children: {isNullable: false, type: type.name},\n isNullable: false,\n kind: 'List',\n },\n })\n }\n\n return queries\n}\n"],"names":["upperFirst","isDocumentType","generateTypeQueries","types","sortings","queries","queryable","filter","type","isSortable","some","sorting","name","push","args","description","isNullable","constraints","comparator","field","value","argName","kind","fieldName","children","isFieldFilter","originalName"],"mappings":"AAAA,OAAOA,gBAAgB,0BAAyB;AAEhD,SAAQC,cAAc,QAAO,gBAAe;AAQ5C,OAAO,SAASC,oBACdC,KAAyC,EACzCC,QAA2B;IAE3B,MAAMC,UAA6B,EAAE;IACrC,MAAMC,YAAYH,MAAMI,MAAM,CAAC,CAACC,OAASP,eAAeO;IACxD,MAAMC,aAAa,CAACD,OAClBJ,SAASM,IAAI,CAAC,CAACC,UAAYA,QAAQC,IAAI,KAAK,GAAGJ,KAAKI,IAAI,CAAC,OAAO,CAAC;IAEnE,yBAAyB;IACzBP,QAAQQ,IAAI,CAAC;QACXC,MAAM;YACJ;gBACEC,aAAa;gBACbC,YAAY;gBACZJ,MAAM;gBACNJ,MAAM;YACR;SACD;QACDS,aAAa;YACX;gBACEC,YAAY;gBACZC,OAAO;gBACPC,OAAO;oBAACC,SAAS;oBAAMC,MAAM;gBAAe;YAC9C;SACD;QACDC,WAAW;QACXf,MAAM;IACR;IAEA,wCAAwC;IACxC,KAAK,MAAMA,QAAQF,UAAW;QAC5BD,QAAQQ,IAAI,CAAC;YACXC,MAAM;gBACJ;oBACEC,aAAa,GAAGP,KAAKI,IAAI,CAAC,YAAY,CAAC;oBACvCI,YAAY;oBACZJ,MAAM;oBACNJ,MAAM;gBACR;aACD;YACDS,aAAa;gBACX;oBACEC,YAAY;oBACZC,OAAO;oBACPC,OAAO;wBAACC,SAAS;wBAAMC,MAAM;oBAAe;gBAC9C;aACD;YACDC,WAAWf,KAAKI,IAAI;YACpBJ,MAAMA,KAAKI,IAAI;QACjB;IACF;IAEA,oBAAoB;IACpB,KAAK,MAAMJ,QAAQF,UAAW;QAC5B,MAAMK,UAAmC,EAAE;QAC3C,IAAIF,WAAWD,OAAO;YACpBG,QAAQE,IAAI,CAAC;gBACXD,MAAM;gBACNJ,MAAM;oBACJgB,UAAU;wBACRR,YAAY;wBACZR,MAAM,GAAGA,KAAKI,IAAI,CAAC,OAAO,CAAC;oBAC7B;oBACAI,YAAY;oBACZM,MAAM;gBACR;YACF;QACF;QAEAjB,QAAQQ,IAAI,CAAC;YACXC,MAAM;gBACJ;oBACEW,eAAe;oBACfb,MAAM;oBACNJ,MAAM,GAAGA,KAAKI,IAAI,CAAC,MAAM,CAAC;gBAC5B;mBACGD;gBACH;oBACEI,aAAa;oBACbU,eAAe;oBACfb,MAAM;oBACNJ,MAAM;gBACR;gBACA;oBACEO,aAAa;oBACbU,eAAe;oBACfb,MAAM;oBACNJ,MAAM;gBACR;aACD;YACDe,WAAW,CAAC,GAAG,EAAEvB,WAAWQ,KAAKI,IAAI,GAAG;YACxCL,QAAQ,CAAC,UAAU,EAAEC,KAAKkB,YAAY,IAAIlB,KAAKI,IAAI,CAAC,CAAC,CAAC;YACtDJ,MAAM;gBACJgB,UAAU;oBAACR,YAAY;oBAAOR,MAAMA,KAAKI,IAAI;gBAAA;gBAC7CI,YAAY;gBACZM,MAAM;YACR;QACF;IACF;IAEA,OAAOjB;AACT"}
@@ -1,3 +1,4 @@
1
+ import { stripInternalMeta } from '../helpers.js';
1
2
  import { generateTypeFilters } from './generateTypeFilters.js';
2
3
  import { generateTypeQueries } from './generateTypeQueries.js';
3
4
  import { generateTypeSortings } from './generateTypeSortings.js';
@@ -5,16 +6,15 @@ const gen2 = (extracted)=>{
5
6
  const filters = generateTypeFilters(extracted.types);
6
7
  const sortings = generateTypeSortings(extracted.types);
7
8
  const queries = generateTypeQueries(extracted.types, sortings.filter((node)=>node.kind === 'InputObject'));
8
- const types = [
9
- ...extracted.types,
10
- ...filters,
11
- ...sortings
12
- ];
13
9
  return {
14
10
  generation: 'gen2',
15
11
  interfaces: extracted.interfaces,
16
12
  queries,
17
- types
13
+ types: [
14
+ ...stripInternalMeta(extracted.types),
15
+ ...filters,
16
+ ...sortings
17
+ ]
18
18
  };
19
19
  };
20
20
  export default gen2;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/graphql/gen2/index.ts"],"sourcesContent":["import {\n type ApiSpecification,\n type GeneratedApiSpecification,\n type InputObjectType,\n} from '../types.js'\nimport {generateTypeFilters} from './generateTypeFilters.js'\nimport {generateTypeQueries} from './generateTypeQueries.js'\nimport {generateTypeSortings} from './generateTypeSortings.js'\n\nconst gen2 = (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const sortings = generateTypeSortings(extracted.types)\n const queries = generateTypeQueries(\n extracted.types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n )\n const types = [...extracted.types, ...filters, ...sortings]\n\n return {generation: 'gen2', interfaces: extracted.interfaces, queries, types}\n}\n\nexport default gen2\n"],"names":["generateTypeFilters","generateTypeQueries","generateTypeSortings","gen2","extracted","filters","types","sortings","queries","filter","node","kind","generation","interfaces"],"mappings":"AAKA,SAAQA,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,oBAAoB,QAAO,4BAA2B;AAE9D,MAAMC,OAAO,CAACC;IACZ,MAAMC,UAAUL,oBAAoBI,UAAUE,KAAK;IACnD,MAAMC,WAAWL,qBAAqBE,UAAUE,KAAK;IACrD,MAAME,UAAUP,oBACdG,UAAUE,KAAK,EACfC,SAASE,MAAM,CAAC,CAACC,OAAkCA,KAAKC,IAAI,KAAK;IAEnE,MAAML,QAAQ;WAAIF,UAAUE,KAAK;WAAKD;WAAYE;KAAS;IAE3D,OAAO;QAACK,YAAY;QAAQC,YAAYT,UAAUS,UAAU;QAAEL;QAASF;IAAK;AAC9E;AAEA,eAAeH,KAAI"}
1
+ {"version":3,"sources":["../../../../src/actions/graphql/gen2/index.ts"],"sourcesContent":["import {stripInternalMeta} from '../helpers.js'\nimport {\n type ApiSpecification,\n type GeneratedApiSpecification,\n type InputObjectType,\n} from '../types.js'\nimport {generateTypeFilters} from './generateTypeFilters.js'\nimport {generateTypeQueries} from './generateTypeQueries.js'\nimport {generateTypeSortings} from './generateTypeSortings.js'\n\nconst gen2 = (extracted: ApiSpecification): GeneratedApiSpecification => {\n const filters = generateTypeFilters(extracted.types)\n const sortings = generateTypeSortings(extracted.types)\n const queries = generateTypeQueries(\n extracted.types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n )\n\n return {\n generation: 'gen2',\n interfaces: extracted.interfaces,\n queries,\n types: [...stripInternalMeta(extracted.types), ...filters, ...sortings],\n }\n}\n\nexport default gen2\n"],"names":["stripInternalMeta","generateTypeFilters","generateTypeQueries","generateTypeSortings","gen2","extracted","filters","types","sortings","queries","filter","node","kind","generation","interfaces"],"mappings":"AAAA,SAAQA,iBAAiB,QAAO,gBAAe;AAM/C,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,oBAAoB,QAAO,4BAA2B;AAE9D,MAAMC,OAAO,CAACC;IACZ,MAAMC,UAAUL,oBAAoBI,UAAUE,KAAK;IACnD,MAAMC,WAAWL,qBAAqBE,UAAUE,KAAK;IACrD,MAAME,UAAUP,oBACdG,UAAUE,KAAK,EACfC,SAASE,MAAM,CAAC,CAACC,OAAkCA,KAAKC,IAAI,KAAK;IAGnE,OAAO;QACLC,YAAY;QACZC,YAAYT,UAAUS,UAAU;QAChCL;QACAF,OAAO;eAAIP,kBAAkBK,UAAUE,KAAK;eAAMD;eAAYE;SAAS;IACzE;AACF;AAEA,eAAeJ,KAAI"}
@@ -1,6 +1,5 @@
1
- import { upperFirst } from 'lodash-es';
1
+ import upperFirst from 'lodash-es/upperFirst.js';
2
2
  import { isDocumentType, isUnion } from '../helpers.js';
3
- import { internal } from '../types.js';
4
3
  import { getFilterFieldName } from './utils.js';
5
4
  export function generateTypeQueries(types, sortings, options) {
6
5
  const { filterSuffix } = options || {};
@@ -96,8 +95,8 @@ export function generateTypeQueries(types, sortings, options) {
96
95
  return queries;
97
96
  }
98
97
  function getDeprecation(type) {
99
- return type[internal]?.deprecationReason ? {
100
- deprecationReason: type[internal].deprecationReason
98
+ return type._internal?.deprecationReason ? {
99
+ deprecationReason: type._internal.deprecationReason
101
100
  } : {};
102
101
  }
103
102
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/graphql/gen3/generateTypeQueries.ts"],"sourcesContent":["import {upperFirst} from 'lodash-es'\n\nimport {isDocumentType, isUnion} from '../helpers.js'\nimport {\n type ApiCustomizationOptions,\n type ConvertedType,\n type ConvertedUnion,\n type Deprecation,\n type InputObjectType,\n internal,\n type QueryDefinition,\n} from '../types.js'\nimport {getFilterFieldName} from './utils.js'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n options?: ApiCustomizationOptions,\n): QueryDefinition[] {\n const {filterSuffix} = options || {}\n const queries: QueryDefinition[] = []\n const documentTypes = types.filter((type) => isDocumentType(type))\n\n const documentTypeNames = documentTypes.map((docType) =>\n JSON.stringify(docType.originalName || docType.name),\n )\n const documentsFilter = `_type in [${documentTypeNames.join(', ')}]`\n\n const documentInterface = types.find((type) => type.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const queryable = [...documentTypes, documentInterface]\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // Single ID-based result lookup queries\n for (const type of queryable) {\n queries.push({\n args: [\n {\n description: `${type.name} document ID`,\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'eq',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: type.name,\n type: type.name,\n ...getDeprecation(type),\n })\n }\n\n // Fetch all of type\n for (const type of queryable) {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n children: {\n isNullable: false,\n type: `${type.name}Sorting`,\n },\n isNullable: true,\n kind: 'List',\n },\n })\n }\n\n queries.push({\n args: [\n {\n isFieldFilter: true,\n name: 'where',\n type: getFilterFieldName(type.name, filterSuffix),\n },\n ...sorting,\n {\n description: 'Max documents to return',\n isFieldFilter: false,\n name: 'limit',\n type: 'Int',\n },\n {\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n name: 'offset',\n type: 'Int',\n },\n ],\n fieldName: `all${upperFirst(type.name)}`,\n filter:\n type.name === 'Document' && type.kind === 'Interface'\n ? documentsFilter\n : `_type == ${JSON.stringify(type.originalName || type.name)}`,\n type: {\n children: {isNullable: false, type: type.name},\n isNullable: false,\n kind: 'List',\n },\n ...getDeprecation(type),\n })\n }\n\n return queries\n}\n\nfunction getDeprecation(type: ConvertedType): Partial<Deprecation> {\n return type[internal]?.deprecationReason\n ? {\n deprecationReason: type[internal].deprecationReason,\n }\n : {}\n}\n"],"names":["upperFirst","isDocumentType","isUnion","internal","getFilterFieldName","generateTypeQueries","types","sortings","options","filterSuffix","queries","documentTypes","filter","type","documentTypeNames","map","docType","JSON","stringify","originalName","name","documentsFilter","join","documentInterface","find","Error","queryable","isSortable","some","sorting","push","args","description","isNullable","constraints","comparator","field","value","argName","kind","fieldName","getDeprecation","children","isFieldFilter","deprecationReason"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/actions/graphql/gen3/generateTypeQueries.ts"],"sourcesContent":["import upperFirst from 'lodash-es/upperFirst.js'\n\nimport {isDocumentType, isUnion} from '../helpers.js'\nimport {\n type ApiCustomizationOptions,\n type ConvertedType,\n type ConvertedUnion,\n type Deprecation,\n type InputObjectType,\n type QueryDefinition,\n} from '../types.js'\nimport {getFilterFieldName} from './utils.js'\n\nexport function generateTypeQueries(\n types: (ConvertedType | ConvertedUnion)[],\n sortings: InputObjectType[],\n options?: ApiCustomizationOptions,\n): QueryDefinition[] {\n const {filterSuffix} = options || {}\n const queries: QueryDefinition[] = []\n const documentTypes = types.filter((type) => isDocumentType(type))\n\n const documentTypeNames = documentTypes.map((docType) =>\n JSON.stringify(docType.originalName || docType.name),\n )\n const documentsFilter = `_type in [${documentTypeNames.join(', ')}]`\n\n const documentInterface = types.find((type) => type.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const queryable = [...documentTypes, documentInterface]\n const isSortable = (type: ConvertedType) =>\n sortings.some((sorting) => sorting.name === `${type.name}Sorting`)\n\n // Single ID-based result lookup queries\n for (const type of queryable) {\n queries.push({\n args: [\n {\n description: `${type.name} document ID`,\n isNullable: false,\n name: 'id',\n type: 'ID',\n },\n ],\n constraints: [\n {\n comparator: 'eq',\n field: '_id',\n value: {argName: 'id', kind: 'argumentValue'},\n },\n ],\n fieldName: type.name,\n type: type.name,\n ...getDeprecation(type),\n })\n }\n\n // Fetch all of type\n for (const type of queryable) {\n const sorting: QueryDefinition['args'] = []\n if (isSortable(type)) {\n sorting.push({\n name: 'sort',\n type: {\n children: {\n isNullable: false,\n type: `${type.name}Sorting`,\n },\n isNullable: true,\n kind: 'List',\n },\n })\n }\n\n queries.push({\n args: [\n {\n isFieldFilter: true,\n name: 'where',\n type: getFilterFieldName(type.name, filterSuffix),\n },\n ...sorting,\n {\n description: 'Max documents to return',\n isFieldFilter: false,\n name: 'limit',\n type: 'Int',\n },\n {\n description: 'Offset at which to start returning documents from',\n isFieldFilter: false,\n name: 'offset',\n type: 'Int',\n },\n ],\n fieldName: `all${upperFirst(type.name)}`,\n filter:\n type.name === 'Document' && type.kind === 'Interface'\n ? documentsFilter\n : `_type == ${JSON.stringify(type.originalName || type.name)}`,\n type: {\n children: {isNullable: false, type: type.name},\n isNullable: false,\n kind: 'List',\n },\n ...getDeprecation(type),\n })\n }\n\n return queries\n}\n\nfunction getDeprecation(type: ConvertedType): Partial<Deprecation> {\n return type._internal?.deprecationReason\n ? {\n deprecationReason: type._internal.deprecationReason,\n }\n : {}\n}\n"],"names":["upperFirst","isDocumentType","isUnion","getFilterFieldName","generateTypeQueries","types","sortings","options","filterSuffix","queries","documentTypes","filter","type","documentTypeNames","map","docType","JSON","stringify","originalName","name","documentsFilter","join","documentInterface","find","Error","queryable","isSortable","some","sorting","push","args","description","isNullable","constraints","comparator","field","value","argName","kind","fieldName","getDeprecation","children","isFieldFilter","_internal","deprecationReason"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isUnion } from '../helpers.js';
1
+ import { isUnion, stripInternalMeta } from '../helpers.js';
2
2
  import { generateTypeFilters } from './generateTypeFilters.js';
3
3
  import { generateTypeQueries } from './generateTypeQueries.js';
4
4
  import { generateTypeSortings } from './generateTypeSortings.js';
@@ -14,16 +14,15 @@ const gen3 = (extracted, options)=>{
14
14
  const filters = generateTypeFilters(types, options);
15
15
  const sortings = generateTypeSortings(types);
16
16
  const queries = generateTypeQueries(types, sortings.filter((node)=>node.kind === 'InputObject'), options);
17
- const graphqlTypes = [
18
- ...extracted.types,
19
- ...filters,
20
- ...sortings
21
- ];
22
17
  return {
23
18
  generation: 'gen3',
24
19
  interfaces: extracted.interfaces,
25
20
  queries,
26
- types: graphqlTypes
21
+ types: [
22
+ ...stripInternalMeta(extracted.types),
23
+ ...filters,
24
+ ...sortings
25
+ ]
27
26
  };
28
27
  };
29
28
  export default gen3;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/graphql/gen3/index.ts"],"sourcesContent":["import {isUnion} from '../helpers.js'\nimport {\n type ApiCustomizationOptions,\n type ApiSpecification,\n type ConvertedType,\n type GeneratedApiSpecification,\n type InputObjectType,\n} from '../types.js'\nimport {generateTypeFilters} from './generateTypeFilters.js'\nimport {generateTypeQueries} from './generateTypeQueries.js'\nimport {generateTypeSortings} from './generateTypeSortings.js'\n\nconst gen3 = (\n extracted: ApiSpecification,\n options?: ApiCustomizationOptions,\n): GeneratedApiSpecification => {\n const documentInterface = extracted.interfaces.find((iface) => iface.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const types = [...extracted.types, documentInterface as ConvertedType]\n\n const filters = generateTypeFilters(types, options)\n const sortings = generateTypeSortings(types)\n const queries = generateTypeQueries(\n types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n options,\n )\n const graphqlTypes = [...extracted.types, ...filters, ...sortings]\n\n return {generation: 'gen3', interfaces: extracted.interfaces, queries, types: graphqlTypes}\n}\n\nexport default gen3\n"],"names":["isUnion","generateTypeFilters","generateTypeQueries","generateTypeSortings","gen3","extracted","options","documentInterface","interfaces","find","iface","name","Error","types","filters","sortings","queries","filter","node","kind","graphqlTypes","generation"],"mappings":"AAAA,SAAQA,OAAO,QAAO,gBAAe;AAQrC,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,oBAAoB,QAAO,4BAA2B;AAE9D,MAAMC,OAAO,CACXC,WACAC;IAEA,MAAMC,oBAAoBF,UAAUG,UAAU,CAACC,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;IAC9E,IAAI,CAACJ,qBAAqBP,QAAQO,oBAAoB;QACpD,MAAM,IAAIK,MAAM;IAClB;IAEA,MAAMC,QAAQ;WAAIR,UAAUQ,KAAK;QAAEN;KAAmC;IAEtE,MAAMO,UAAUb,oBAAoBY,OAAOP;IAC3C,MAAMS,WAAWZ,qBAAqBU;IACtC,MAAMG,UAAUd,oBACdW,OACAE,SAASE,MAAM,CAAC,CAACC,OAAkCA,KAAKC,IAAI,KAAK,gBACjEb;IAEF,MAAMc,eAAe;WAAIf,UAAUQ,KAAK;WAAKC;WAAYC;KAAS;IAElE,OAAO;QAACM,YAAY;QAAQb,YAAYH,UAAUG,UAAU;QAAEQ;QAASH,OAAOO;IAAY;AAC5F;AAEA,eAAehB,KAAI"}
1
+ {"version":3,"sources":["../../../../src/actions/graphql/gen3/index.ts"],"sourcesContent":["import {isUnion, stripInternalMeta} from '../helpers.js'\nimport {\n type ApiCustomizationOptions,\n type ApiSpecification,\n type ConvertedType,\n type GeneratedApiSpecification,\n type InputObjectType,\n} from '../types.js'\nimport {generateTypeFilters} from './generateTypeFilters.js'\nimport {generateTypeQueries} from './generateTypeQueries.js'\nimport {generateTypeSortings} from './generateTypeSortings.js'\n\nconst gen3 = (\n extracted: ApiSpecification,\n options?: ApiCustomizationOptions,\n): GeneratedApiSpecification => {\n const documentInterface = extracted.interfaces.find((iface) => iface.name === 'Document')\n if (!documentInterface || isUnion(documentInterface)) {\n throw new Error('Failed to find document interface')\n }\n\n const types = [...extracted.types, documentInterface as ConvertedType]\n\n const filters = generateTypeFilters(types, options)\n const sortings = generateTypeSortings(types)\n const queries = generateTypeQueries(\n types,\n sortings.filter((node): node is InputObjectType => node.kind === 'InputObject'),\n options,\n )\n\n return {\n generation: 'gen3',\n interfaces: extracted.interfaces,\n queries,\n types: [...stripInternalMeta(extracted.types), ...filters, ...sortings],\n }\n}\n\nexport default gen3\n"],"names":["isUnion","stripInternalMeta","generateTypeFilters","generateTypeQueries","generateTypeSortings","gen3","extracted","options","documentInterface","interfaces","find","iface","name","Error","types","filters","sortings","queries","filter","node","kind","generation"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,iBAAiB,QAAO,gBAAe;AAQxD,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,oBAAoB,QAAO,4BAA2B;AAE9D,MAAMC,OAAO,CACXC,WACAC;IAEA,MAAMC,oBAAoBF,UAAUG,UAAU,CAACC,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;IAC9E,IAAI,CAACJ,qBAAqBR,QAAQQ,oBAAoB;QACpD,MAAM,IAAIK,MAAM;IAClB;IAEA,MAAMC,QAAQ;WAAIR,UAAUQ,KAAK;QAAEN;KAAmC;IAEtE,MAAMO,UAAUb,oBAAoBY,OAAOP;IAC3C,MAAMS,WAAWZ,qBAAqBU;IACtC,MAAMG,UAAUd,oBACdW,OACAE,SAASE,MAAM,CAAC,CAACC,OAAkCA,KAAKC,IAAI,KAAK,gBACjEb;IAGF,OAAO;QACLc,YAAY;QACZZ,YAAYH,UAAUG,UAAU;QAChCQ;QACAH,OAAO;eAAIb,kBAAkBK,UAAUQ,KAAK;eAAMC;eAAYC;SAAS;IACzE;AACF;AAEA,eAAeX,KAAI"}
@@ -1,64 +1,22 @@
1
- import { isMainThread, Worker } from 'node:worker_threads';
2
- import { getCliConfig, getStudioConfig, resolveLocalPackage } from '@sanity/cli-core';
3
- import { packageDirectory } from 'package-directory';
1
+ import { isMainThread } from 'node:worker_threads';
2
+ import { findStudioConfigPath, getCliConfig, studioWorkerTask } from '@sanity/cli-core';
4
3
  export async function getGraphQLAPIs(workDir) {
5
4
  if (!isMainThread) {
6
5
  throw new Error('getGraphQLAPIs() must be called from the main thread');
7
6
  }
8
- // Resolve `sanity` local to the project in order to avoid using incompatible versions, and to avoid circular dependencies
9
- const { createSchema } = await resolveLocalPackage('sanity', workDir);
10
- const defaultSchema = createSchema({
11
- name: 'default',
12
- types: []
13
- });
14
- const defaultTypes = defaultSchema.getTypeNames();
15
- const isCustomType = (type)=>!defaultTypes.includes(type.name);
16
- const apis = await getApisWithSchemaTypes(workDir);
17
- const resolved = apis.map(({ schemaTypes, ...api })=>({
18
- schema: createSchema({
19
- name: 'default',
20
- types: schemaTypes.filter((element)=>isCustomType(element))
21
- }),
22
- ...api
23
- }));
24
- return resolved;
25
- }
26
- async function getApisWithSchemaTypes(workDir) {
27
- const cliConfig = await getCliConfig(workDir);
28
- const workspaces = await getStudioConfig(workDir, {
29
- resolvePlugins: true
30
- });
31
- const cliPkgDir = await packageDirectory({
32
- cwd: import.meta.dirname
33
- });
34
- if (!cliPkgDir) {
35
- throw new Error('Unable to resolve @sanity/cli module root');
36
- }
37
- return new Promise((resolve, reject)=>{
38
- const worker = new Worker(new URL(`getGraphQLAPIs.worker.js`, import.meta.url), {
39
- env: process.env,
40
- workerData: {
41
- cliConfig: extractGraphQLConfig(cliConfig),
42
- workDir,
43
- workspaces
44
- }
45
- });
46
- worker.on('message', resolve);
47
- worker.on('error', (error)=>{
48
- reject(error);
49
- worker.terminate();
50
- });
51
- worker.on('exit', (code)=>{
52
- if (code !== 0) {
53
- reject(new Error(`Worker stopped with exit code ${code}`));
54
- }
55
- });
56
- });
57
- }
58
- function extractGraphQLConfig(config) {
59
- return structuredClone({
60
- api: config.api,
61
- graphql: config.graphql
7
+ const [cliConfig, configPath] = await Promise.all([
8
+ getCliConfig(workDir),
9
+ findStudioConfigPath(workDir)
10
+ ]);
11
+ return studioWorkerTask(new URL('getGraphQLAPIs.worker.js', import.meta.url), {
12
+ name: 'getGraphQLAPIs',
13
+ studioRootPath: workDir,
14
+ workerData: {
15
+ cliConfig: {
16
+ graphql: cliConfig.graphql
17
+ },
18
+ configPath
19
+ }
62
20
  });
63
21
  }
64
22
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/actions/graphql/getGraphQLAPIs.ts"],"sourcesContent":["import {isMainThread, Worker} from 'node:worker_threads'\n\nimport {type CliConfig, getCliConfig, getStudioConfig, resolveLocalPackage} from '@sanity/cli-core'\nimport {packageDirectory} from 'package-directory'\n\nimport {\n type ResolvedGraphQLAPI,\n type ResolvedSourceProperties,\n type SchemaDefinitionish,\n type TypeResolvedGraphQLAPI,\n} from './types.js'\n\nexport async function getGraphQLAPIs(workDir: string): Promise<ResolvedGraphQLAPI[]> {\n if (!isMainThread) {\n throw new Error('getGraphQLAPIs() must be called from the main thread')\n }\n\n // Resolve `sanity` local to the project in order to avoid using incompatible versions, and to avoid circular dependencies\n const {createSchema} = await resolveLocalPackage<typeof import('sanity')>('sanity', workDir)\n\n const defaultSchema = createSchema({name: 'default', types: []})\n const defaultTypes = defaultSchema.getTypeNames()\n const isCustomType = (type: SchemaDefinitionish) => !defaultTypes.includes(type.name)\n\n const apis = await getApisWithSchemaTypes(workDir)\n const resolved = apis.map(\n ({schemaTypes, ...api}): ResolvedSourceProperties => ({\n schema: createSchema({\n name: 'default',\n types: schemaTypes.filter((element) => isCustomType(element)),\n }),\n ...api,\n }),\n )\n\n return resolved\n}\n\nasync function getApisWithSchemaTypes(workDir: string): Promise<TypeResolvedGraphQLAPI[]> {\n const cliConfig = await getCliConfig(workDir)\n const workspaces = await getStudioConfig(workDir, {resolvePlugins: true})\n\n const cliPkgDir = await packageDirectory({cwd: import.meta.dirname})\n if (!cliPkgDir) {\n throw new Error('Unable to resolve @sanity/cli module root')\n }\n\n return new Promise<TypeResolvedGraphQLAPI[]>((resolve, reject) => {\n const worker = new Worker(new URL(`getGraphQLAPIs.worker.js`, import.meta.url), {\n env: process.env,\n workerData: {\n cliConfig: extractGraphQLConfig(cliConfig),\n workDir,\n workspaces,\n },\n })\n worker.on('message', resolve)\n worker.on('error', (error) => {\n reject(error)\n worker.terminate()\n })\n worker.on('exit', (code) => {\n if (code !== 0) {\n reject(new Error(`Worker stopped with exit code ${code}`))\n }\n })\n })\n}\n\nfunction extractGraphQLConfig(config: CliConfig) {\n return structuredClone({\n api: config.api,\n graphql: config.graphql,\n })\n}\n"],"names":["isMainThread","Worker","getCliConfig","getStudioConfig","resolveLocalPackage","packageDirectory","getGraphQLAPIs","workDir","Error","createSchema","defaultSchema","name","types","defaultTypes","getTypeNames","isCustomType","type","includes","apis","getApisWithSchemaTypes","resolved","map","schemaTypes","api","schema","filter","element","cliConfig","workspaces","resolvePlugins","cliPkgDir","cwd","dirname","Promise","resolve","reject","worker","URL","url","env","process","workerData","extractGraphQLConfig","on","error","terminate","code","config","structuredClone","graphql"],"mappings":"AAAA,SAAQA,YAAY,EAAEC,MAAM,QAAO,sBAAqB;AAExD,SAAwBC,YAAY,EAAEC,eAAe,EAAEC,mBAAmB,QAAO,mBAAkB;AACnG,SAAQC,gBAAgB,QAAO,oBAAmB;AASlD,OAAO,eAAeC,eAAeC,OAAe;IAClD,IAAI,CAACP,cAAc;QACjB,MAAM,IAAIQ,MAAM;IAClB;IAEA,0HAA0H;IAC1H,MAAM,EAACC,YAAY,EAAC,GAAG,MAAML,oBAA6C,UAAUG;IAEpF,MAAMG,gBAAgBD,aAAa;QAACE,MAAM;QAAWC,OAAO,EAAE;IAAA;IAC9D,MAAMC,eAAeH,cAAcI,YAAY;IAC/C,MAAMC,eAAe,CAACC,OAA8B,CAACH,aAAaI,QAAQ,CAACD,KAAKL,IAAI;IAEpF,MAAMO,OAAO,MAAMC,uBAAuBZ;IAC1C,MAAMa,WAAWF,KAAKG,GAAG,CACvB,CAAC,EAACC,WAAW,EAAE,GAAGC,KAAI,GAAgC,CAAA;YACpDC,QAAQf,aAAa;gBACnBE,MAAM;gBACNC,OAAOU,YAAYG,MAAM,CAAC,CAACC,UAAYX,aAAaW;YACtD;YACA,GAAGH,GAAG;QACR,CAAA;IAGF,OAAOH;AACT;AAEA,eAAeD,uBAAuBZ,OAAe;IACnD,MAAMoB,YAAY,MAAMzB,aAAaK;IACrC,MAAMqB,aAAa,MAAMzB,gBAAgBI,SAAS;QAACsB,gBAAgB;IAAI;IAEvE,MAAMC,YAAY,MAAMzB,iBAAiB;QAAC0B,KAAK,YAAYC,OAAO;IAAA;IAClE,IAAI,CAACF,WAAW;QACd,MAAM,IAAItB,MAAM;IAClB;IAEA,OAAO,IAAIyB,QAAkC,CAACC,SAASC;QACrD,MAAMC,SAAS,IAAInC,OAAO,IAAIoC,IAAI,CAAC,wBAAwB,CAAC,EAAE,YAAYC,GAAG,GAAG;YAC9EC,KAAKC,QAAQD,GAAG;YAChBE,YAAY;gBACVd,WAAWe,qBAAqBf;gBAChCpB;gBACAqB;YACF;QACF;QACAQ,OAAOO,EAAE,CAAC,WAAWT;QACrBE,OAAOO,EAAE,CAAC,SAAS,CAACC;YAClBT,OAAOS;YACPR,OAAOS,SAAS;QAClB;QACAT,OAAOO,EAAE,CAAC,QAAQ,CAACG;YACjB,IAAIA,SAAS,GAAG;gBACdX,OAAO,IAAI3B,MAAM,CAAC,8BAA8B,EAAEsC,MAAM;YAC1D;QACF;IACF;AACF;AAEA,SAASJ,qBAAqBK,MAAiB;IAC7C,OAAOC,gBAAgB;QACrBzB,KAAKwB,OAAOxB,GAAG;QACf0B,SAASF,OAAOE,OAAO;IACzB;AACF"}
1
+ {"version":3,"sources":["../../../src/actions/graphql/getGraphQLAPIs.ts"],"sourcesContent":["import {isMainThread} from 'node:worker_threads'\n\nimport {findStudioConfigPath, getCliConfig, studioWorkerTask} from '@sanity/cli-core'\n\nimport {type ExtractedGraphQLAPI} from './types.js'\n\nexport async function getGraphQLAPIs(workDir: string): Promise<ExtractedGraphQLAPI[]> {\n if (!isMainThread) {\n throw new Error('getGraphQLAPIs() must be called from the main thread')\n }\n\n const [cliConfig, configPath] = await Promise.all([\n getCliConfig(workDir),\n findStudioConfigPath(workDir),\n ])\n\n return studioWorkerTask<ExtractedGraphQLAPI[]>(\n new URL('getGraphQLAPIs.worker.js', import.meta.url),\n {\n name: 'getGraphQLAPIs',\n studioRootPath: workDir,\n workerData: {\n cliConfig: {graphql: cliConfig.graphql},\n configPath,\n },\n },\n )\n}\n"],"names":["isMainThread","findStudioConfigPath","getCliConfig","studioWorkerTask","getGraphQLAPIs","workDir","Error","cliConfig","configPath","Promise","all","URL","url","name","studioRootPath","workerData","graphql"],"mappings":"AAAA,SAAQA,YAAY,QAAO,sBAAqB;AAEhD,SAAQC,oBAAoB,EAAEC,YAAY,EAAEC,gBAAgB,QAAO,mBAAkB;AAIrF,OAAO,eAAeC,eAAeC,OAAe;IAClD,IAAI,CAACL,cAAc;QACjB,MAAM,IAAIM,MAAM;IAClB;IAEA,MAAM,CAACC,WAAWC,WAAW,GAAG,MAAMC,QAAQC,GAAG,CAAC;QAChDR,aAAaG;QACbJ,qBAAqBI;KACtB;IAED,OAAOF,iBACL,IAAIQ,IAAI,4BAA4B,YAAYC,GAAG,GACnD;QACEC,MAAM;QACNC,gBAAgBT;QAChBU,YAAY;YACVR,WAAW;gBAACS,SAAST,UAAUS,OAAO;YAAA;YACtCR;QACF;IACF;AAEJ"}
@@ -1,126 +1,95 @@
1
1
  import { isMainThread, parentPort, workerData } from 'node:worker_threads';
2
- import { isPlainObject } from 'lodash-es';
3
- import { oneline } from 'oneline';
2
+ import { doImport, isStudioConfig } from '@sanity/cli-core';
3
+ import { resolveGraphQLApiMetadata } from './resolveGraphQLApisFromWorkspaces.js';
4
+ const { cliConfig, configPath } = workerData;
4
5
  async function main() {
5
6
  if (isMainThread || !parentPort) {
6
7
  throw new Error('This module must be run as a worker thread');
7
8
  }
8
- await getGraphQLAPIsForked(parentPort);
9
- }
10
- await main();
11
- async function getGraphQLAPIsForked(parent) {
12
- const { cliConfig, workspaces } = workerData;
13
- const resolved = await resolveGraphQLApis({
9
+ // Import the raw config through Vite (via studioWorkerTask) — handles TS paths, browser globals.
10
+ // We skip resolveConfig() entirely to avoid schema compilation — we only need workspace metadata.
11
+ let config = await doImport(configPath);
12
+ // Handle both direct config exports and default exports (same logic as getStudioWorkspaces)
13
+ if (!isStudioConfig(config)) {
14
+ if (typeof config === 'object' && config !== null && 'default' in config && isStudioConfig(config.default)) {
15
+ config = config.default;
16
+ } else {
17
+ throw new TypeError(`Invalid studio config format in "${configPath}"`);
18
+ }
19
+ }
20
+ const configs = Array.isArray(config) ? config : [
21
+ config
22
+ ];
23
+ const workspaces = configs.map((ws)=>toWorkspaceMetadata(ws));
24
+ const apis = resolveGraphQLApiMetadata({
14
25
  cliConfig,
15
26
  workspaces
16
27
  });
17
- parent.postMessage(resolved);
28
+ parentPort.postMessage(apis);
18
29
  }
19
- async function resolveGraphQLApis({ cliConfig, workspaces }) {
20
- const numSources = workspaces.reduce((count, workspace)=>count + workspace.unstable_sources.length, 0);
21
- const multiSource = numSources > 1;
22
- const multiWorkspace = workspaces.length > 1;
23
- const hasGraphQLConfig = Boolean(cliConfig?.graphql);
24
- if (workspaces.length === 0) {
25
- throw new Error('No studio configuration found');
30
+ function toWorkspaceMetadata(config) {
31
+ if (typeof config !== 'object' || config === null) {
32
+ throw new Error('Invalid workspace config: expected an object');
26
33
  }
27
- if (numSources === 0) {
28
- throw new Error('No sources (project ID / dataset) configured');
34
+ if (!('projectId' in config) || !config.projectId || typeof config.projectId !== 'string') {
35
+ throw new Error('Invalid workspace config: missing or invalid projectId');
29
36
  }
30
- // We can only automatically configure if there is a single workspace + source in play
31
- if ((multiWorkspace || multiSource) && !hasGraphQLConfig) {
32
- throw new Error(oneline`
33
- Multiple workspaces/sources configured.
34
- You must define an array of GraphQL APIs in \`sanity.cli.ts\` or \`sanity.cli.js\`
35
- and specify which workspace/source to use.
36
- `);
37
+ if (!('dataset' in config) || !config.dataset || typeof config.dataset !== 'string') {
38
+ throw new Error('Invalid workspace config: missing or invalid dataset');
37
39
  }
38
- // No config is defined, but we have a single workspace + source, so use that
39
- if (!hasGraphQLConfig) {
40
- const { dataset, projectId, schema } = workspaces[0].unstable_sources[0];
40
+ // Default to 'default' when no name is specified this matches the convention used by
41
+ // resolveConfig() in the full-compile path (extractGraphQLAPIs). Both paths must agree on
42
+ // this default so that workspace lookup in resolveGraphQLApiMetadata/resolveGraphQLApis
43
+ // produces the same match. If Sanity's resolveConfig() ever changes this convention,
44
+ // this default must be updated to match.
45
+ const name = 'name' in config && typeof config.name === 'string' ? config.name : 'default';
46
+ const sources = extractSourceMetadata(config, {
47
+ dataset: config.dataset,
48
+ name,
49
+ projectId: config.projectId
50
+ });
51
+ return {
52
+ dataset: config.dataset,
53
+ name,
54
+ projectId: config.projectId,
55
+ sources
56
+ };
57
+ }
58
+ /**
59
+ * Extract source metadata from the raw workspace config.
60
+ *
61
+ * After `resolveConfig()`, each workspace has `unstable_sources` with full schema objects.
62
+ * The raw config from `defineConfig()` may also have `unstable_sources` if the user explicitly
63
+ * configured multiple sources. We extract only the metadata (name/dataset/projectId) we need.
64
+ *
65
+ * If no `unstable_sources` are present, we create a single default source from the workspace
66
+ * metadata — matching what `resolveConfig()` would produce for a single-source workspace.
67
+ */ function extractSourceMetadata(config, workspaceDefaults) {
68
+ if (!('unstable_sources' in config) || !Array.isArray(config.unstable_sources)) {
41
69
  return [
42
- {
43
- dataset,
44
- projectId,
45
- schemaTypes: getStrippedSchemaTypes(schema)
46
- }
70
+ workspaceDefaults
47
71
  ];
48
72
  }
49
- // Explicity defined config
50
- const apiDefs = validateCliConfig(cliConfig?.graphql || []);
51
- return resolveGraphQLAPIsFromConfig(apiDefs, workspaces);
52
- }
53
- function resolveGraphQLAPIsFromConfig(apiDefs, workspaces) {
54
- const resolvedApis = [];
55
- for (const apiDef of apiDefs){
56
- const { source: sourceName, workspace: workspaceName } = apiDef;
57
- if (!workspaceName && workspaces.length > 1) {
58
- throw new Error('Must define `workspace` name in GraphQL API config when multiple workspaces are defined');
59
- }
60
- // If we only have a single workspace defined, we can assume that is the intended one,
61
- // even if no `workspace` is defined for the GraphQL API
62
- const workspace = !workspaceName && workspaces.length === 1 ? workspaces[0] : workspaces.find((space)=>space.name === (workspaceName || 'default'));
63
- if (!workspace) {
64
- throw new Error(`Workspace "${workspaceName || 'default'}" not found`);
65
- }
66
- // If we only have a single source defined, we can assume that is the intended one,
67
- // even if no `source` is defined for the GraphQL API
68
- const source = !sourceName && workspace.unstable_sources.length === 1 ? workspace.unstable_sources[0] : workspace.unstable_sources.find((src)=>src.name === (sourceName || 'default'));
69
- if (!source) {
70
- throw new Error(`Source "${sourceName || 'default'}" not found in workspace "${workspaceName || 'default'}"`);
71
- }
72
- resolvedApis.push({
73
- ...apiDef,
74
- dataset: source.dataset,
75
- projectId: source.projectId,
76
- schemaTypes: getStrippedSchemaTypes(source.schema)
73
+ const sources = [];
74
+ for (const source of config.unstable_sources){
75
+ if (typeof source !== 'object' || source === null) continue;
76
+ const sourceName = 'name' in source && typeof source.name === 'string' ? source.name : 'default';
77
+ // Sources can inherit projectId/dataset from the parent workspace (e.g. when
78
+ // only `name` and `schema` are specified in `unstable_sources`). Fall back to
79
+ // the workspace-level values when the source doesn't define its own.
80
+ const projectId = 'projectId' in source && typeof source.projectId === 'string' && source.projectId ? source.projectId : workspaceDefaults.projectId;
81
+ const dataset = 'dataset' in source && typeof source.dataset === 'string' && source.dataset ? source.dataset : workspaceDefaults.dataset;
82
+ sources.push({
83
+ dataset,
84
+ name: sourceName,
85
+ projectId
77
86
  });
78
87
  }
79
- return resolvedApis;
80
- }
81
- function validateCliConfig(config, configPath = 'sanity.cli.js') {
82
- if (!Array.isArray(config)) {
83
- throw new TypeError(`"graphql" key in "${configPath}" must be an array if defined`);
84
- }
85
- if (config.length === 0) {
86
- throw new Error(`No GraphQL APIs defined in "${configPath}"`);
87
- }
88
- return config;
89
- }
90
- function getStrippedSchemaTypes(schema) {
91
- const schemaDef = schema._original || {
92
- types: []
93
- };
94
- return schemaDef.types.map((type)=>stripType(type));
95
- }
96
- function stripType(input) {
97
- return strip(input);
98
- }
99
- function strip(input) {
100
- if (Array.isArray(input)) {
101
- return input.map((item)=>strip(item)).filter((item)=>item !== undefined);
102
- }
103
- if (isPlainishObject(input)) {
104
- const stripped = {};
105
- for (const key of Object.keys(input)){
106
- stripped[key] = strip(input[key]);
107
- }
108
- return stripped;
109
- }
110
- return isBasicType(input) ? input : undefined;
111
- }
112
- function isPlainishObject(input) {
113
- return isPlainObject(input);
114
- }
115
- function isBasicType(input) {
116
- const type = typeof input;
117
- if (type === 'boolean' || type === 'number' || type === 'string') {
118
- return true;
119
- }
120
- if (type !== 'object') {
121
- return false;
122
- }
123
- return Array.isArray(input) || input === null || isPlainishObject(input);
88
+ // Fall back to workspace-level metadata if no valid sources were found
89
+ return sources.length > 0 ? sources : [
90
+ workspaceDefaults
91
+ ];
124
92
  }
93
+ await main();
125
94
 
126
95
  //# sourceMappingURL=getGraphQLAPIs.worker.js.map