@sanity/cli 6.0.0-alpha.17 → 6.0.0-alpha.19

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 (249) hide show
  1. package/README.md +833 -912
  2. package/dist/SanityHelp.js +74 -21
  3. package/dist/SanityHelp.js.map +1 -1
  4. package/dist/actions/build/buildApp.js +42 -15
  5. package/dist/actions/build/buildApp.js.map +1 -1
  6. package/dist/actions/build/buildStudio.js +21 -9
  7. package/dist/actions/build/buildStudio.js.map +1 -1
  8. package/dist/actions/build/buildVendorDependencies.js +3 -16
  9. package/dist/actions/build/buildVendorDependencies.js.map +1 -1
  10. package/dist/actions/build/checkStudioDependencyVersions.js +7 -7
  11. package/dist/actions/build/checkStudioDependencyVersions.js.map +1 -1
  12. package/dist/actions/build/createExternalFromImportMap.js +1 -1
  13. package/dist/actions/build/createExternalFromImportMap.js.map +1 -1
  14. package/dist/actions/build/determineBasePath.js +5 -2
  15. package/dist/actions/build/determineBasePath.js.map +1 -1
  16. package/dist/actions/build/getViteConfig.js +47 -4
  17. package/dist/actions/build/getViteConfig.js.map +1 -1
  18. package/dist/actions/build/handlePrereleaseVersions.js +44 -0
  19. package/dist/actions/build/handlePrereleaseVersions.js.map +1 -0
  20. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js +1 -0
  21. package/dist/actions/build/renderDocumentWorker/components/GlobalErrorHandler.js.map +1 -1
  22. package/dist/actions/build/types.js.map +1 -1
  23. package/dist/actions/build/writeSanityRuntime.js +4 -3
  24. package/dist/actions/build/writeSanityRuntime.js.map +1 -1
  25. package/dist/actions/dataset/create.js +7 -1
  26. package/dist/actions/dataset/create.js.map +1 -1
  27. package/dist/actions/dataset/resolveDataset.js +26 -0
  28. package/dist/actions/dataset/resolveDataset.js.map +1 -0
  29. package/dist/actions/deploy/deployApp.js +1 -8
  30. package/dist/actions/deploy/deployApp.js.map +1 -1
  31. package/dist/actions/deploy/deployStudio.js +1 -0
  32. package/dist/actions/deploy/deployStudio.js.map +1 -1
  33. package/dist/actions/dev/getDashboardAppUrl.js +48 -0
  34. package/dist/actions/dev/getDashboardAppUrl.js.map +1 -0
  35. package/dist/actions/dev/getDevServerConfig.js +7 -3
  36. package/dist/actions/dev/getDevServerConfig.js.map +1 -1
  37. package/dist/actions/dev/startAppDevServer.js +3 -3
  38. package/dist/actions/dev/startAppDevServer.js.map +1 -1
  39. package/dist/actions/dev/startStudioDevServer.js +12 -12
  40. package/dist/actions/dev/startStudioDevServer.js.map +1 -1
  41. package/dist/actions/documents/types.js.map +1 -1
  42. package/dist/actions/documents/validate.js +11 -2
  43. package/dist/actions/documents/validate.js.map +1 -1
  44. package/dist/actions/documents/validateDocuments.worker.js +2 -2
  45. package/dist/actions/documents/validateDocuments.worker.js.map +1 -1
  46. package/dist/actions/documents/validation/reporters/jsonReporter.js +1 -1
  47. package/dist/actions/documents/validation/reporters/jsonReporter.js.map +1 -1
  48. package/dist/actions/documents/validation/reporters/ndjsonReporter.js +1 -1
  49. package/dist/actions/documents/validation/reporters/ndjsonReporter.js.map +1 -1
  50. package/dist/actions/graphql/SchemaError.js +1 -1
  51. package/dist/actions/graphql/SchemaError.js.map +1 -1
  52. package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js +540 -0
  53. package/dist/actions/graphql/__tests__/fixtures/many-self-refs.js.map +1 -0
  54. package/dist/actions/graphql/__tests__/fixtures/test-studio.js +1143 -0
  55. package/dist/actions/graphql/__tests__/fixtures/test-studio.js.map +1 -0
  56. package/dist/actions/graphql/__tests__/fixtures/union-refs.js +591 -0
  57. package/dist/actions/graphql/__tests__/fixtures/union-refs.js.map +1 -0
  58. package/dist/actions/graphql/__tests__/helpers.js +23 -0
  59. package/dist/actions/graphql/__tests__/helpers.js.map +1 -0
  60. package/dist/actions/graphql/extractFromSanitySchema.js +2 -1
  61. package/dist/actions/graphql/extractFromSanitySchema.js.map +1 -1
  62. package/dist/actions/graphql/gen1/generateTypeFilters.js +1 -1
  63. package/dist/actions/graphql/gen1/generateTypeFilters.js.map +1 -1
  64. package/dist/actions/graphql/gen1/generateTypeQueries.js +2 -1
  65. package/dist/actions/graphql/gen1/generateTypeQueries.js.map +1 -1
  66. package/dist/actions/graphql/gen2/generateTypeQueries.js +1 -1
  67. package/dist/actions/graphql/gen2/generateTypeQueries.js.map +1 -1
  68. package/dist/actions/graphql/gen3/generateTypeQueries.js +1 -1
  69. package/dist/actions/graphql/gen3/generateTypeQueries.js.map +1 -1
  70. package/dist/actions/graphql/getGraphQLAPIs.js +2 -10
  71. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
  72. package/dist/actions/graphql/getGraphQLAPIs.worker.js +1 -1
  73. package/dist/actions/graphql/getGraphQLAPIs.worker.js.map +1 -1
  74. package/dist/actions/graphql/types.js.map +1 -1
  75. package/dist/actions/init/bootstrapLocalTemplate.js +1 -1
  76. package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -1
  77. package/dist/actions/manifest/extractAppManifest.js.map +1 -1
  78. package/dist/actions/manifest/extractManifest.js +1 -22
  79. package/dist/actions/manifest/extractManifest.js.map +1 -1
  80. package/dist/actions/manifest/types.js.map +1 -1
  81. package/dist/actions/schema/deploySchemas.js +57 -80
  82. package/dist/actions/schema/deploySchemas.js.map +1 -1
  83. package/dist/actions/schema/extractSanityWorkspace.worker.js +24 -0
  84. package/dist/actions/schema/extractSanityWorkspace.worker.js.map +1 -0
  85. package/dist/actions/schema/extractSchemaWatcher.js +9 -7
  86. package/dist/actions/schema/extractSchemaWatcher.js.map +1 -1
  87. package/dist/actions/schema/matchSchemaPattern.js +22 -0
  88. package/dist/actions/schema/matchSchemaPattern.js.map +1 -0
  89. package/dist/actions/schema/runSchemaExtraction.js.map +1 -1
  90. package/dist/actions/schema/types.js +4 -0
  91. package/dist/actions/schema/types.js.map +1 -1
  92. package/dist/actions/schema/utils/schemaStoreValidation.js +1 -7
  93. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
  94. package/dist/actions/schema/utils/uniqByProjectIdDataset.js +1 -1
  95. package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -1
  96. package/dist/actions/schema/watchExtractSchema.js +2 -1
  97. package/dist/actions/schema/watchExtractSchema.js.map +1 -1
  98. package/dist/actions/versions/getFormatters.js +1 -1
  99. package/dist/actions/versions/getFormatters.js.map +1 -1
  100. package/dist/commands/backup/disable.js +0 -6
  101. package/dist/commands/backup/disable.js.map +1 -1
  102. package/dist/commands/backup/download.js +0 -6
  103. package/dist/commands/backup/download.js.map +1 -1
  104. package/dist/commands/backup/enable.js +0 -6
  105. package/dist/commands/backup/enable.js.map +1 -1
  106. package/dist/commands/backup/list.js +4 -7
  107. package/dist/commands/backup/list.js.map +1 -1
  108. package/dist/commands/cors/add.js +0 -6
  109. package/dist/commands/cors/add.js.map +1 -1
  110. package/dist/commands/cors/delete.js +0 -6
  111. package/dist/commands/cors/delete.js.map +1 -1
  112. package/dist/commands/cors/list.js +0 -6
  113. package/dist/commands/cors/list.js.map +1 -1
  114. package/dist/commands/dataset/alias/create.js +23 -7
  115. package/dist/commands/dataset/alias/create.js.map +1 -1
  116. package/dist/commands/dataset/alias/delete.js +17 -7
  117. package/dist/commands/dataset/alias/delete.js.map +1 -1
  118. package/dist/commands/dataset/alias/link.js +17 -7
  119. package/dist/commands/dataset/alias/link.js.map +1 -1
  120. package/dist/commands/dataset/alias/unlink.js +17 -7
  121. package/dist/commands/dataset/alias/unlink.js.map +1 -1
  122. package/dist/commands/dataset/copy.js +42 -30
  123. package/dist/commands/dataset/copy.js.map +1 -1
  124. package/dist/commands/dataset/create.js +29 -7
  125. package/dist/commands/dataset/create.js.map +1 -1
  126. package/dist/commands/dataset/delete.js +13 -7
  127. package/dist/commands/dataset/delete.js.map +1 -1
  128. package/dist/commands/dataset/embeddings/disable.js +74 -0
  129. package/dist/commands/dataset/embeddings/disable.js.map +1 -0
  130. package/dist/commands/dataset/embeddings/enable.js +138 -0
  131. package/dist/commands/dataset/embeddings/enable.js.map +1 -0
  132. package/dist/commands/dataset/embeddings/status.js +69 -0
  133. package/dist/commands/dataset/embeddings/status.js.map +1 -0
  134. package/dist/commands/dataset/export.js +30 -18
  135. package/dist/commands/dataset/export.js.map +1 -1
  136. package/dist/commands/dataset/list.js +19 -7
  137. package/dist/commands/dataset/list.js.map +1 -1
  138. package/dist/commands/dataset/visibility/get.js +15 -7
  139. package/dist/commands/dataset/visibility/get.js.map +1 -1
  140. package/dist/commands/dataset/visibility/set.js +19 -7
  141. package/dist/commands/dataset/visibility/set.js.map +1 -1
  142. package/dist/commands/debug.js +2 -1
  143. package/dist/commands/debug.js.map +1 -1
  144. package/dist/commands/documents/create.js +2 -7
  145. package/dist/commands/documents/create.js.map +1 -1
  146. package/dist/commands/documents/delete.js +0 -6
  147. package/dist/commands/documents/delete.js.map +1 -1
  148. package/dist/commands/documents/get.js +0 -6
  149. package/dist/commands/documents/get.js.map +1 -1
  150. package/dist/commands/documents/query.js +0 -6
  151. package/dist/commands/documents/query.js.map +1 -1
  152. package/dist/commands/graphql/deploy.js +1 -1
  153. package/dist/commands/graphql/deploy.js.map +1 -1
  154. package/dist/commands/graphql/list.js +0 -6
  155. package/dist/commands/graphql/list.js.map +1 -1
  156. package/dist/commands/graphql/undeploy.js +0 -6
  157. package/dist/commands/graphql/undeploy.js.map +1 -1
  158. package/dist/commands/hook/attempt.js +0 -6
  159. package/dist/commands/hook/attempt.js.map +1 -1
  160. package/dist/commands/hook/create.js +0 -6
  161. package/dist/commands/hook/create.js.map +1 -1
  162. package/dist/commands/hook/delete.js +0 -6
  163. package/dist/commands/hook/delete.js.map +1 -1
  164. package/dist/commands/hook/list.js +0 -6
  165. package/dist/commands/hook/list.js.map +1 -1
  166. package/dist/commands/hook/logs.js +1 -7
  167. package/dist/commands/hook/logs.js.map +1 -1
  168. package/dist/commands/init.js +13 -7
  169. package/dist/commands/init.js.map +1 -1
  170. package/dist/commands/manage.js +0 -1
  171. package/dist/commands/manage.js.map +1 -1
  172. package/dist/commands/media/create-aspect.js +1 -1
  173. package/dist/commands/media/create-aspect.js.map +1 -1
  174. package/dist/commands/media/delete-aspect.js +0 -6
  175. package/dist/commands/media/delete-aspect.js.map +1 -1
  176. package/dist/commands/media/deploy-aspect.js +1 -6
  177. package/dist/commands/media/deploy-aspect.js.map +1 -1
  178. package/dist/commands/media/export.js +0 -6
  179. package/dist/commands/media/export.js.map +1 -1
  180. package/dist/commands/media/import.js +0 -6
  181. package/dist/commands/media/import.js.map +1 -1
  182. package/dist/commands/projects/list.js +2 -1
  183. package/dist/commands/projects/list.js.map +1 -1
  184. package/dist/commands/schema/delete.js +0 -6
  185. package/dist/commands/schema/delete.js.map +1 -1
  186. package/dist/commands/schema/deploy.js +11 -27
  187. package/dist/commands/schema/deploy.js.map +1 -1
  188. package/dist/commands/tokens/add.js +0 -6
  189. package/dist/commands/tokens/add.js.map +1 -1
  190. package/dist/commands/tokens/delete.js +0 -6
  191. package/dist/commands/tokens/delete.js.map +1 -1
  192. package/dist/commands/tokens/list.js +0 -6
  193. package/dist/commands/tokens/list.js.map +1 -1
  194. package/dist/commands/users/invite.js +0 -6
  195. package/dist/commands/users/invite.js.map +1 -1
  196. package/dist/commands/users/list.js +1 -7
  197. package/dist/commands/users/list.js.map +1 -1
  198. package/dist/commands/versions.js +1 -1
  199. package/dist/commands/versions.js.map +1 -1
  200. package/dist/exports/index.d.ts +62 -2
  201. package/dist/exports/index.js.map +1 -1
  202. package/dist/prompts/promptForProject.js +64 -0
  203. package/dist/prompts/promptForProject.js.map +1 -0
  204. package/dist/prompts/selectMediaLibrary.js +1 -1
  205. package/dist/prompts/selectMediaLibrary.js.map +1 -1
  206. package/dist/server/devServer.js +4 -2
  207. package/dist/server/devServer.js.map +1 -1
  208. package/dist/server/vite/plugin-schema-extraction.js +201 -0
  209. package/dist/server/vite/plugin-schema-extraction.js.map +1 -0
  210. package/dist/server/vite/plugin-typegen.js +217 -0
  211. package/dist/server/vite/plugin-typegen.js.map +1 -0
  212. package/dist/services/datasets.js +7 -5
  213. package/dist/services/datasets.js.map +1 -1
  214. package/dist/services/embeddings.js +25 -0
  215. package/dist/services/embeddings.js.map +1 -0
  216. package/dist/services/grants.js +13 -0
  217. package/dist/services/grants.js.map +1 -0
  218. package/dist/services/graphql.js.map +1 -1
  219. package/dist/services/schemas.js +1 -1
  220. package/dist/services/schemas.js.map +1 -1
  221. package/dist/types/grants.js +3 -0
  222. package/dist/types/grants.js.map +1 -0
  223. package/dist/types.js.map +1 -1
  224. package/dist/util/checkProjectPermissions.js +21 -0
  225. package/dist/util/checkProjectPermissions.js.map +1 -0
  226. package/dist/util/compareDependencyVersions.js +28 -7
  227. package/dist/util/compareDependencyVersions.js.map +1 -1
  228. package/dist/util/errorMessages.js +0 -1
  229. package/dist/util/errorMessages.js.map +1 -1
  230. package/dist/util/getSharedServerConfig.js +1 -0
  231. package/dist/util/getSharedServerConfig.js.map +1 -1
  232. package/dist/util/packageManager/getPeerDependencies.js +44 -0
  233. package/dist/util/packageManager/getPeerDependencies.js.map +1 -0
  234. package/dist/util/sharedFlags.js +19 -0
  235. package/dist/util/sharedFlags.js.map +1 -0
  236. package/dist/util/toForwardSlashes.js +8 -0
  237. package/dist/util/toForwardSlashes.js.map +1 -0
  238. package/oclif.manifest.json +639 -379
  239. package/package.json +23 -22
  240. package/dist/actions/dev/getCoreAppUrl.js +0 -10
  241. package/dist/actions/dev/getCoreAppUrl.js.map +0 -1
  242. package/dist/actions/schema/schemaStoreTypes.js +0 -19
  243. package/dist/actions/schema/schemaStoreTypes.js.map +0 -1
  244. package/dist/actions/schema/utils/manifestExtractor.js +0 -29
  245. package/dist/actions/schema/utils/manifestExtractor.js.map +0 -1
  246. package/dist/actions/schema/utils/manifestReader.js +0 -71
  247. package/dist/actions/schema/utils/manifestReader.js.map +0 -1
  248. package/dist/util/workerChannels.js +0 -172
  249. package/dist/util/workerChannels.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/compareDependencyVersions.ts"],"sourcesContent":["import path from 'node:path'\n\nimport {readPackageJson} from '@sanity/cli-core'\nimport {createRequester} from '@sanity/cli-core/request'\nimport semver from 'semver'\n\nimport {getModuleUrl} from '../actions/build/getAutoUpdatesImportMap.js'\nimport {getLocalPackageVersion} from './getLocalPackageVersion.js'\n\nconst defaultRequester = createRequester({\n middleware: {httpErrors: false, promise: {onlyBody: false}},\n})\n\ninterface CompareDependencyVersions {\n installed: string\n pkg: string\n remote: string\n}\n\ninterface CompareDependencyVersionsOptions {\n /** When provided, uses the app-specific module endpoint instead of the default endpoint. */\n appId?: string\n /** Optional requester for dependency injection (primarily for testing). */\n requester?: typeof defaultRequester\n}\n\n/**\n * @internal\n *\n * Compares the versions of dependencies in the studio or app with their remote versions.\n *\n * This function reads the package.json file in the provided working directory, and compares the versions of the dependencies\n * specified in the `autoUpdatesImports` parameter with their remote versions. If the versions do not match, the dependency is\n * added to a list of failed dependencies, which is returned by the function.\n *\n * The failed dependencies are anything that does not strictly match the remote version.\n * This means that if a version is lower or greater by even a patch it will be marked as failed.\n *\n * @param packages - An array of packages with their name and version to compare against remote.\n * @param workDir - The path to the working directory containing the package.json file.\n * @param options - Optional configuration for version comparison.\n *\n * @returns A promise that resolves to an array of objects, each containing\n * the name of a package whose local and remote versions do not match, along with the local and remote versions.\n *\n * @throws Throws an error if the remote version of a package cannot be fetched, or if the local version of a package\n * cannot be parsed.\n */\nexport async function compareDependencyVersions(\n packages: {name: string; version: string}[],\n workDir: string,\n {appId, requester = defaultRequester}: CompareDependencyVersionsOptions = {},\n): Promise<Array<CompareDependencyVersions>> {\n const manifest = await readPackageJson(path.join(workDir, 'package.json'), {\n skipSchemaValidation: true,\n })\n const dependencies = {...manifest?.dependencies, ...manifest?.devDependencies}\n\n const failedDependencies: Array<CompareDependencyVersions> = []\n\n for (const pkg of packages) {\n const resolvedVersion = await getRemoteResolvedVersion(getModuleUrl(pkg, {appId}), requester)\n\n const packageVersion = await getLocalPackageVersion(pkg.name, workDir)\n\n const manifestVersion = dependencies[pkg.name]\n\n const installed = semver.coerce(\n packageVersion ? semver.parse(packageVersion) : semver.coerce(manifestVersion),\n )\n\n if (!installed) {\n throw new Error(`Failed to parse installed version for ${pkg.name}`)\n }\n\n if (!semver.eq(resolvedVersion, installed.version)) {\n failedDependencies.push({\n installed: installed.version,\n pkg: pkg.name,\n remote: resolvedVersion,\n })\n }\n }\n\n return failedDependencies\n}\n\nasync function getRemoteResolvedVersion(\n url: string,\n request: typeof defaultRequester,\n): Promise<string> {\n let response\n try {\n response = await request({\n maxRedirects: 0,\n method: 'HEAD',\n url,\n })\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n throw new Error(`Failed to fetch remote version for ${url}: ${message}`)\n }\n\n // 302 is expected, but lets also handle 2xx\n if (response.statusCode < 400) {\n const resolved = response.headers['x-resolved-version']\n if (!resolved) {\n throw new Error(`Missing 'x-resolved-version' header on response from HEAD ${url}`)\n }\n return resolved\n }\n\n throw new Error(`Unexpected HTTP response: ${response.statusCode} ${response.statusMessage}`)\n}\n"],"names":["path","readPackageJson","createRequester","semver","getModuleUrl","getLocalPackageVersion","defaultRequester","middleware","httpErrors","promise","onlyBody","compareDependencyVersions","packages","workDir","appId","requester","manifest","join","skipSchemaValidation","dependencies","devDependencies","failedDependencies","pkg","resolvedVersion","getRemoteResolvedVersion","packageVersion","name","manifestVersion","installed","coerce","parse","Error","eq","version","push","remote","url","request","response","maxRedirects","method","err","message","String","statusCode","resolved","headers","statusMessage"],"mappings":"AAAA,OAAOA,UAAU,YAAW;AAE5B,SAAQC,eAAe,QAAO,mBAAkB;AAChD,SAAQC,eAAe,QAAO,2BAA0B;AACxD,OAAOC,YAAY,SAAQ;AAE3B,SAAQC,YAAY,QAAO,8CAA6C;AACxE,SAAQC,sBAAsB,QAAO,8BAA6B;AAElE,MAAMC,mBAAmBJ,gBAAgB;IACvCK,YAAY;QAACC,YAAY;QAAOC,SAAS;YAACC,UAAU;QAAK;IAAC;AAC5D;AAeA;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,eAAeC,0BACpBC,QAA2C,EAC3CC,OAAe,EACf,EAACC,KAAK,EAAEC,YAAYT,gBAAgB,EAAmC,GAAG,CAAC,CAAC;IAE5E,MAAMU,WAAW,MAAMf,gBAAgBD,KAAKiB,IAAI,CAACJ,SAAS,iBAAiB;QACzEK,sBAAsB;IACxB;IACA,MAAMC,eAAe;QAAC,GAAGH,UAAUG,YAAY;QAAE,GAAGH,UAAUI,eAAe;IAAA;IAE7E,MAAMC,qBAAuD,EAAE;IAE/D,KAAK,MAAMC,OAAOV,SAAU;QAC1B,MAAMW,kBAAkB,MAAMC,yBAAyBpB,aAAakB,KAAK;YAACR;QAAK,IAAIC;QAEnF,MAAMU,iBAAiB,MAAMpB,uBAAuBiB,IAAII,IAAI,EAAEb;QAE9D,MAAMc,kBAAkBR,YAAY,CAACG,IAAII,IAAI,CAAC;QAE9C,MAAME,YAAYzB,OAAO0B,MAAM,CAC7BJ,iBAAiBtB,OAAO2B,KAAK,CAACL,kBAAkBtB,OAAO0B,MAAM,CAACF;QAGhE,IAAI,CAACC,WAAW;YACd,MAAM,IAAIG,MAAM,CAAC,sCAAsC,EAAET,IAAII,IAAI,EAAE;QACrE;QAEA,IAAI,CAACvB,OAAO6B,EAAE,CAACT,iBAAiBK,UAAUK,OAAO,GAAG;YAClDZ,mBAAmBa,IAAI,CAAC;gBACtBN,WAAWA,UAAUK,OAAO;gBAC5BX,KAAKA,IAAII,IAAI;gBACbS,QAAQZ;YACV;QACF;IACF;IAEA,OAAOF;AACT;AAEA,eAAeG,yBACbY,GAAW,EACXC,OAAgC;IAEhC,IAAIC;IACJ,IAAI;QACFA,WAAW,MAAMD,QAAQ;YACvBE,cAAc;YACdC,QAAQ;YACRJ;QACF;IACF,EAAE,OAAOK,KAAK;QACZ,MAAMC,UAAUD,eAAeV,QAAQU,IAAIC,OAAO,GAAGC,OAAOF;QAC5D,MAAM,IAAIV,MAAM,CAAC,mCAAmC,EAAEK,IAAI,EAAE,EAAEM,SAAS;IACzE;IAEA,4CAA4C;IAC5C,IAAIJ,SAASM,UAAU,GAAG,KAAK;QAC7B,MAAMC,WAAWP,SAASQ,OAAO,CAAC,qBAAqB;QACvD,IAAI,CAACD,UAAU;YACb,MAAM,IAAId,MAAM,CAAC,0DAA0D,EAAEK,KAAK;QACpF;QACA,OAAOS;IACT;IAEA,MAAM,IAAId,MAAM,CAAC,0BAA0B,EAAEO,SAASM,UAAU,CAAC,CAAC,EAAEN,SAASS,aAAa,EAAE;AAC9F"}
1
+ {"version":3,"sources":["../../src/util/compareDependencyVersions.ts"],"sourcesContent":["import path from 'node:path'\n\nimport {readPackageJson} from '@sanity/cli-core'\nimport {createRequester} from '@sanity/cli-core/request'\nimport semver from 'semver'\n\nimport {getModuleUrl} from '../actions/build/getAutoUpdatesImportMap.js'\nimport {getLocalPackageVersion} from './getLocalPackageVersion.js'\n\nconst defaultRequester = createRequester({\n middleware: {httpErrors: false, promise: {onlyBody: false}},\n})\n\ninterface CompareDependencyVersions {\n installed: string\n pkg: string\n remote: string\n}\n\nexport interface UnresolvedPrerelease {\n pkg: string\n version: string\n}\n\ninterface CompareDependencyVersionsResult {\n mismatched: Array<CompareDependencyVersions>\n unresolvedPrerelease: Array<UnresolvedPrerelease>\n}\n\ninterface CompareDependencyVersionsOptions {\n /** When provided, uses the app-specific module endpoint instead of the default endpoint. */\n appId?: string\n /** Optional requester for dependency injection (primarily for testing). */\n requester?: typeof defaultRequester\n}\n\n/**\n * @internal\n *\n * Compares the versions of dependencies in the studio or app with their remote versions.\n *\n * This function reads the package.json file in the provided working directory, and compares the versions of the dependencies\n * specified in the `autoUpdatesImports` parameter with their remote versions. If the versions do not match, the dependency is\n * added to a list of failed dependencies, which is returned by the function.\n *\n * The failed dependencies are anything that does not strictly match the remote version.\n * This means that if a version is lower or greater by even a patch it will be marked as failed.\n *\n * @param packages - An array of packages with their name and version to compare against remote.\n * @param workDir - The path to the working directory containing the package.json file.\n * @param options - Optional configuration for version comparison.\n *\n * @returns A promise that resolves to an object containing `mismatched` (packages whose local and remote versions differ)\n * and `unresolvedPrerelease` (packages with prerelease versions that could not be resolved remotely).\n *\n * @throws Throws an error if the remote version of a non-prerelease package cannot be fetched, or if the local version\n * of a package cannot be parsed.\n */\nexport async function compareDependencyVersions(\n packages: {name: string; version: string}[],\n workDir: string,\n {appId, requester = defaultRequester}: CompareDependencyVersionsOptions = {},\n): Promise<CompareDependencyVersionsResult> {\n const manifest = await readPackageJson(path.join(workDir, 'package.json'), {\n skipSchemaValidation: true,\n })\n const dependencies = {...manifest?.dependencies, ...manifest?.devDependencies}\n\n const mismatched: Array<CompareDependencyVersions> = []\n const unresolvedPrerelease: Array<UnresolvedPrerelease> = []\n\n for (const pkg of packages) {\n // Skip packages that are not declared in the local package.json\n if (!dependencies[pkg.name]) {\n continue\n }\n\n const resolvedVersion = await getRemoteResolvedVersion(getModuleUrl(pkg, {appId}), requester)\n\n if (resolvedVersion === null) {\n if (semver.prerelease(pkg.version)) {\n unresolvedPrerelease.push({pkg: pkg.name, version: pkg.version})\n continue\n }\n throw new Error(\n `Failed to resolve remote version for ${pkg.name}@${pkg.version}: package not found`,\n )\n }\n\n const packageVersion = await getLocalPackageVersion(pkg.name, workDir)\n\n const manifestVersion = dependencies[pkg.name]\n\n const installed = semver.coerce(\n packageVersion ? semver.parse(packageVersion) : semver.coerce(manifestVersion),\n )\n\n if (!installed) {\n throw new Error(`Failed to parse installed version for ${pkg.name}`)\n }\n\n if (!semver.eq(resolvedVersion, installed.version)) {\n mismatched.push({\n installed: installed.version,\n pkg: pkg.name,\n remote: resolvedVersion,\n })\n }\n }\n\n return {mismatched, unresolvedPrerelease}\n}\n\nasync function getRemoteResolvedVersion(\n url: string,\n request: typeof defaultRequester,\n): Promise<string | null> {\n let response\n try {\n response = await request({\n maxRedirects: 0,\n method: 'HEAD',\n url,\n })\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n throw new Error(`Failed to fetch remote version for ${url}: ${message}`)\n }\n\n // 302 is expected, but lets also handle 2xx\n if (response.statusCode < 400) {\n const resolved = response.headers['x-resolved-version']\n if (!resolved) {\n throw new Error(`Missing 'x-resolved-version' header on response from HEAD ${url}`)\n }\n return resolved\n }\n\n if (response.statusCode === 404) {\n return null\n }\n\n throw new Error(`Unexpected HTTP response: ${response.statusCode} ${response.statusMessage}`)\n}\n"],"names":["path","readPackageJson","createRequester","semver","getModuleUrl","getLocalPackageVersion","defaultRequester","middleware","httpErrors","promise","onlyBody","compareDependencyVersions","packages","workDir","appId","requester","manifest","join","skipSchemaValidation","dependencies","devDependencies","mismatched","unresolvedPrerelease","pkg","name","resolvedVersion","getRemoteResolvedVersion","prerelease","version","push","Error","packageVersion","manifestVersion","installed","coerce","parse","eq","remote","url","request","response","maxRedirects","method","err","message","String","statusCode","resolved","headers","statusMessage"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  export const NO_PROJECT_ID = `sanity.cli.ts does not contain a project identifier ("api.projectId"), which is required for the Sanity CLI to communicate with the Sanity API`;
2
- export const NO_DATASET_ID = `sanity.cli.ts does not contain a dataset identifier ("api.dataset"), which is required for the Sanity CLI to communicate with the Sanity API`;
3
2
  export const NO_ORGANIZATION_ID = `sanity.cli.ts does not contain an organization identifier ("app.organizationId"), which is required for the Sanity CLI to communicate with the Sanity API`;
4
3
  export const NO_MEDIA_LIBRARY_ASPECTS_PATH = `sanity.cli.ts does not contain a media library aspects path ("mediaLibrary.aspectsPath"), which is required for the Sanity CLI to manage aspects.`;
5
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/errorMessages.ts"],"sourcesContent":["export const NO_PROJECT_ID = `sanity.cli.ts does not contain a project identifier (\"api.projectId\"), which is required for the Sanity CLI to communicate with the Sanity API`\nexport const NO_DATASET_ID = `sanity.cli.ts does not contain a dataset identifier (\"api.dataset\"), which is required for the Sanity CLI to communicate with the Sanity API`\nexport const NO_ORGANIZATION_ID = `sanity.cli.ts does not contain an organization identifier (\"app.organizationId\"), which is required for the Sanity CLI to communicate with the Sanity API`\nexport const NO_MEDIA_LIBRARY_ASPECTS_PATH = `sanity.cli.ts does not contain a media library aspects path (\"mediaLibrary.aspectsPath\"), which is required for the Sanity CLI to manage aspects.`\n"],"names":["NO_PROJECT_ID","NO_DATASET_ID","NO_ORGANIZATION_ID","NO_MEDIA_LIBRARY_ASPECTS_PATH"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,CAAC,8IAA8I,CAAC,CAAA;AAC7K,OAAO,MAAMC,gBAAgB,CAAC,4IAA4I,CAAC,CAAA;AAC3K,OAAO,MAAMC,qBAAqB,CAAC,yJAAyJ,CAAC,CAAA;AAC7L,OAAO,MAAMC,gCAAgC,CAAC,iJAAiJ,CAAC,CAAA"}
1
+ {"version":3,"sources":["../../src/util/errorMessages.ts"],"sourcesContent":["export const NO_PROJECT_ID = `sanity.cli.ts does not contain a project identifier (\"api.projectId\"), which is required for the Sanity CLI to communicate with the Sanity API`\nexport const NO_ORGANIZATION_ID = `sanity.cli.ts does not contain an organization identifier (\"app.organizationId\"), which is required for the Sanity CLI to communicate with the Sanity API`\nexport const NO_MEDIA_LIBRARY_ASPECTS_PATH = `sanity.cli.ts does not contain a media library aspects path (\"mediaLibrary.aspectsPath\"), which is required for the Sanity CLI to manage aspects.`\n"],"names":["NO_PROJECT_ID","NO_ORGANIZATION_ID","NO_MEDIA_LIBRARY_ASPECTS_PATH"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,CAAC,8IAA8I,CAAC,CAAA;AAC7K,OAAO,MAAMC,qBAAqB,CAAC,yJAAyJ,CAAC,CAAA;AAC7L,OAAO,MAAMC,gCAAgC,CAAC,iJAAiJ,CAAC,CAAA"}
@@ -24,6 +24,7 @@ import { toInt } from './toInt.js';
24
24
  httpHost,
25
25
  httpPort,
26
26
  isApp,
27
+ schemaExtraction: cliConfig?.schemaExtraction,
27
28
  vite: cliConfig?.vite
28
29
  };
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/getSharedServerConfig.ts"],"sourcesContent":["import {type CliConfig, getSanityEnvVar} from '@sanity/cli-core'\n\nimport {ensureTrailingSlash} from './ensureTrailingSlash.js'\nimport {toInt} from './toInt.js'\n\ninterface GetSharedServerConfigOptions {\n flags: {host?: string; port?: number | string}\n workDir: string\n\n cliConfig?: CliConfig\n}\n\nexport interface GetSharedServerConfigResult {\n basePath: string\n cwd: string\n httpHost: string\n httpPort: number\n vite: CliConfig['vite']\n\n entry?: string\n isApp?: boolean\n}\n\n/**\n * @internal\n *\n * Resolves the shared configuration for the dev/preview server using:\n *\n * - CLI flags\n * - Environment variables\n * - User build config\n * - Default configuration\n */\nexport function getSharedServerConfig({\n cliConfig,\n flags,\n workDir,\n}: GetSharedServerConfigOptions): GetSharedServerConfigResult {\n // Order of preference: CLI flags, environment variables, user build config, default config\n const isApp = cliConfig && 'app' in cliConfig\n\n const httpHost =\n flags.host ||\n getSanityEnvVar('SERVER_HOSTNAME', isApp ?? false) ||\n cliConfig?.server?.hostname ||\n 'localhost'\n\n const httpPort = toInt(\n flags.port || getSanityEnvVar('SERVER_PORT', isApp ?? false) || cliConfig?.server?.port,\n 3333,\n )\n\n const basePath = ensureTrailingSlash(\n getSanityEnvVar('BASEPATH', isApp ?? false) ?? (cliConfig?.project?.basePath || '/'),\n )\n\n const entry = cliConfig?.app?.entry\n\n return {\n basePath,\n cwd: workDir,\n entry,\n httpHost,\n httpPort,\n isApp,\n vite: cliConfig?.vite,\n }\n}\n"],"names":["getSanityEnvVar","ensureTrailingSlash","toInt","getSharedServerConfig","cliConfig","flags","workDir","isApp","httpHost","host","server","hostname","httpPort","port","basePath","project","entry","app","cwd","vite"],"mappings":"AAAA,SAAwBA,eAAe,QAAO,mBAAkB;AAEhE,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,KAAK,QAAO,aAAY;AAoBhC;;;;;;;;;CASC,GACD,OAAO,SAASC,sBAAsB,EACpCC,SAAS,EACTC,KAAK,EACLC,OAAO,EACsB;IAC7B,2FAA2F;IAC3F,MAAMC,QAAQH,aAAa,SAASA;IAEpC,MAAMI,WACJH,MAAMI,IAAI,IACVT,gBAAgB,mBAAmBO,SAAS,UAC5CH,WAAWM,QAAQC,YACnB;IAEF,MAAMC,WAAWV,MACfG,MAAMQ,IAAI,IAAIb,gBAAgB,eAAeO,SAAS,UAAUH,WAAWM,QAAQG,MACnF;IAGF,MAAMC,WAAWb,oBACfD,gBAAgB,YAAYO,SAAS,UAAWH,CAAAA,WAAWW,SAASD,YAAY,GAAE;IAGpF,MAAME,QAAQZ,WAAWa,KAAKD;IAE9B,OAAO;QACLF;QACAI,KAAKZ;QACLU;QACAR;QACAI;QACAL;QACAY,MAAMf,WAAWe;IACnB;AACF"}
1
+ {"version":3,"sources":["../../src/util/getSharedServerConfig.ts"],"sourcesContent":["import {type CliConfig, getSanityEnvVar} from '@sanity/cli-core'\n\nimport {ensureTrailingSlash} from './ensureTrailingSlash.js'\nimport {toInt} from './toInt.js'\n\ninterface GetSharedServerConfigOptions {\n flags: {host?: string; port?: number | string}\n workDir: string\n\n cliConfig?: CliConfig\n}\n\nexport interface GetSharedServerConfigResult {\n basePath: string\n cwd: string\n httpHost: string\n httpPort: number\n schemaExtraction: CliConfig['schemaExtraction']\n vite: CliConfig['vite']\n\n entry?: string\n isApp?: boolean\n}\n\n/**\n * @internal\n *\n * Resolves the shared configuration for the dev/preview server using:\n *\n * - CLI flags\n * - Environment variables\n * - User build config\n * - Default configuration\n */\nexport function getSharedServerConfig({\n cliConfig,\n flags,\n workDir,\n}: GetSharedServerConfigOptions): GetSharedServerConfigResult {\n // Order of preference: CLI flags, environment variables, user build config, default config\n const isApp = cliConfig && 'app' in cliConfig\n\n const httpHost =\n flags.host ||\n getSanityEnvVar('SERVER_HOSTNAME', isApp ?? false) ||\n cliConfig?.server?.hostname ||\n 'localhost'\n\n const httpPort = toInt(\n flags.port || getSanityEnvVar('SERVER_PORT', isApp ?? false) || cliConfig?.server?.port,\n 3333,\n )\n\n const basePath = ensureTrailingSlash(\n getSanityEnvVar('BASEPATH', isApp ?? false) ?? (cliConfig?.project?.basePath || '/'),\n )\n\n const entry = cliConfig?.app?.entry\n\n return {\n basePath,\n cwd: workDir,\n entry,\n httpHost,\n httpPort,\n isApp,\n schemaExtraction: cliConfig?.schemaExtraction,\n vite: cliConfig?.vite,\n }\n}\n"],"names":["getSanityEnvVar","ensureTrailingSlash","toInt","getSharedServerConfig","cliConfig","flags","workDir","isApp","httpHost","host","server","hostname","httpPort","port","basePath","project","entry","app","cwd","schemaExtraction","vite"],"mappings":"AAAA,SAAwBA,eAAe,QAAO,mBAAkB;AAEhE,SAAQC,mBAAmB,QAAO,2BAA0B;AAC5D,SAAQC,KAAK,QAAO,aAAY;AAqBhC;;;;;;;;;CASC,GACD,OAAO,SAASC,sBAAsB,EACpCC,SAAS,EACTC,KAAK,EACLC,OAAO,EACsB;IAC7B,2FAA2F;IAC3F,MAAMC,QAAQH,aAAa,SAASA;IAEpC,MAAMI,WACJH,MAAMI,IAAI,IACVT,gBAAgB,mBAAmBO,SAAS,UAC5CH,WAAWM,QAAQC,YACnB;IAEF,MAAMC,WAAWV,MACfG,MAAMQ,IAAI,IAAIb,gBAAgB,eAAeO,SAAS,UAAUH,WAAWM,QAAQG,MACnF;IAGF,MAAMC,WAAWb,oBACfD,gBAAgB,YAAYO,SAAS,UAAWH,CAAAA,WAAWW,SAASD,YAAY,GAAE;IAGpF,MAAME,QAAQZ,WAAWa,KAAKD;IAE9B,OAAO;QACLF;QACAI,KAAKZ;QACLU;QACAR;QACAI;QACAL;QACAY,kBAAkBf,WAAWe;QAC7BC,MAAMhB,WAAWgB;IACnB;AACF"}
@@ -0,0 +1,44 @@
1
+ import { execa } from 'execa';
2
+ import { getPartialEnvWithNpmPath } from './packageManagerChoice.js';
3
+ /**
4
+ * Resolves the peer dependencies of a package by querying the npm registry.
5
+ *
6
+ * @param packageName - Package name with version (e.g. "next-sanity\@11")
7
+ * @param cwd - Working directory (used to resolve local npm paths)
8
+ * @returns Array of peer dependency strings (e.g. ["next\@^15.0.0", "react\@^19.0.0"])
9
+ */ export async function getPeerDependencies(packageName, cwd) {
10
+ let stdout;
11
+ try {
12
+ const result = await execa('npm', [
13
+ 'view',
14
+ packageName,
15
+ 'peerDependencies',
16
+ '--json'
17
+ ], {
18
+ cwd,
19
+ encoding: 'utf8',
20
+ env: getPartialEnvWithNpmPath(cwd)
21
+ });
22
+ stdout = result.stdout;
23
+ } catch (error) {
24
+ throw new Error(`Failed to resolve peer dependencies for ${packageName}`, {
25
+ cause: error
26
+ });
27
+ }
28
+ if (!stdout.trim()) {
29
+ return [];
30
+ }
31
+ try {
32
+ const peerDeps = JSON.parse(stdout);
33
+ if (!peerDeps || typeof peerDeps !== 'object') {
34
+ return [];
35
+ }
36
+ return Object.entries(peerDeps).map(([name, range])=>`${name}@${range}`);
37
+ } catch (error) {
38
+ throw new Error(`Failed to resolve peer dependencies for ${packageName}`, {
39
+ cause: error
40
+ });
41
+ }
42
+ }
43
+
44
+ //# sourceMappingURL=getPeerDependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/util/packageManager/getPeerDependencies.ts"],"sourcesContent":["import {execa} from 'execa'\n\nimport {getPartialEnvWithNpmPath} from './packageManagerChoice.js'\n\n/**\n * Resolves the peer dependencies of a package by querying the npm registry.\n *\n * @param packageName - Package name with version (e.g. \"next-sanity\\@11\")\n * @param cwd - Working directory (used to resolve local npm paths)\n * @returns Array of peer dependency strings (e.g. [\"next\\@^15.0.0\", \"react\\@^19.0.0\"])\n */\nexport async function getPeerDependencies(packageName: string, cwd: string): Promise<string[]> {\n let stdout: string\n try {\n const result = await execa('npm', ['view', packageName, 'peerDependencies', '--json'], {\n cwd,\n encoding: 'utf8',\n env: getPartialEnvWithNpmPath(cwd),\n })\n stdout = result.stdout\n } catch (error) {\n throw new Error(`Failed to resolve peer dependencies for ${packageName}`, {cause: error})\n }\n\n if (!stdout.trim()) {\n return []\n }\n\n try {\n const peerDeps: Record<string, string> | null = JSON.parse(stdout)\n if (!peerDeps || typeof peerDeps !== 'object') {\n return []\n }\n return Object.entries(peerDeps).map(([name, range]) => `${name}@${range}`)\n } catch (error) {\n throw new Error(`Failed to resolve peer dependencies for ${packageName}`, {cause: error})\n }\n}\n"],"names":["execa","getPartialEnvWithNpmPath","getPeerDependencies","packageName","cwd","stdout","result","encoding","env","error","Error","cause","trim","peerDeps","JSON","parse","Object","entries","map","name","range"],"mappings":"AAAA,SAAQA,KAAK,QAAO,QAAO;AAE3B,SAAQC,wBAAwB,QAAO,4BAA2B;AAElE;;;;;;CAMC,GACD,OAAO,eAAeC,oBAAoBC,WAAmB,EAAEC,GAAW;IACxE,IAAIC;IACJ,IAAI;QACF,MAAMC,SAAS,MAAMN,MAAM,OAAO;YAAC;YAAQG;YAAa;YAAoB;SAAS,EAAE;YACrFC;YACAG,UAAU;YACVC,KAAKP,yBAAyBG;QAChC;QACAC,SAASC,OAAOD,MAAM;IACxB,EAAE,OAAOI,OAAO;QACd,MAAM,IAAIC,MAAM,CAAC,wCAAwC,EAAEP,aAAa,EAAE;YAACQ,OAAOF;QAAK;IACzF;IAEA,IAAI,CAACJ,OAAOO,IAAI,IAAI;QAClB,OAAO,EAAE;IACX;IAEA,IAAI;QACF,MAAMC,WAA0CC,KAAKC,KAAK,CAACV;QAC3D,IAAI,CAACQ,YAAY,OAAOA,aAAa,UAAU;YAC7C,OAAO,EAAE;QACX;QACA,OAAOG,OAAOC,OAAO,CAACJ,UAAUK,GAAG,CAAC,CAAC,CAACC,MAAMC,MAAM,GAAK,GAAGD,KAAK,CAAC,EAAEC,OAAO;IAC3E,EAAE,OAAOX,OAAO;QACd,MAAM,IAAIC,MAAM,CAAC,wCAAwC,EAAEP,aAAa,EAAE;YAACQ,OAAOF;QAAK;IACzF;AACF"}
@@ -0,0 +1,19 @@
1
+ import { Flags } from '@oclif/core';
2
+ /**
3
+ * Shared `--project-id` / `-p` flag for commands that can operate on
4
+ * a project without requiring a local Sanity project directory.
5
+ */ export const projectIdFlag = {
6
+ 'project-id': Flags.string({
7
+ char: 'p',
8
+ description: 'Project ID to use. Overrides the project ID from the Sanity config.',
9
+ parse: async (input)=>{
10
+ const trimmed = input.trim();
11
+ if (trimmed === '') {
12
+ throw new Error('Project ID cannot be empty');
13
+ }
14
+ return trimmed;
15
+ }
16
+ })
17
+ };
18
+
19
+ //# sourceMappingURL=sharedFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/sharedFlags.ts"],"sourcesContent":["import {Flags} from '@oclif/core'\n\n/**\n * Shared `--project-id` / `-p` flag for commands that can operate on\n * a project without requiring a local Sanity project directory.\n */\nexport const projectIdFlag = {\n 'project-id': Flags.string({\n char: 'p',\n description: 'Project ID to use. Overrides the project ID from the Sanity config.',\n parse: async (input) => {\n const trimmed = input.trim()\n if (trimmed === '') {\n throw new Error('Project ID cannot be empty')\n }\n return trimmed\n },\n }),\n}\n"],"names":["Flags","projectIdFlag","string","char","description","parse","input","trimmed","trim","Error"],"mappings":"AAAA,SAAQA,KAAK,QAAO,cAAa;AAEjC;;;CAGC,GACD,OAAO,MAAMC,gBAAgB;IAC3B,cAAcD,MAAME,MAAM,CAAC;QACzBC,MAAM;QACNC,aAAa;QACbC,OAAO,OAAOC;YACZ,MAAMC,UAAUD,MAAME,IAAI;YAC1B,IAAID,YAAY,IAAI;gBAClB,MAAM,IAAIE,MAAM;YAClB;YACA,OAAOF;QACT;IACF;AACF,EAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Converts path separators to forward slashes for ESM imports.
3
+ * @internal
4
+ */ export function toForwardSlashes(filePath) {
5
+ return filePath.replaceAll('\\', '/');
6
+ }
7
+
8
+ //# sourceMappingURL=toForwardSlashes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/toForwardSlashes.ts"],"sourcesContent":["/**\n * Converts path separators to forward slashes for ESM imports.\n * @internal\n */\nexport function toForwardSlashes(filePath: string): string {\n return filePath.replaceAll('\\\\', '/')\n}\n"],"names":["toForwardSlashes","filePath","replaceAll"],"mappings":"AAAA;;;CAGC,GACD,OAAO,SAASA,iBAAiBC,QAAgB;IAC/C,OAAOA,SAASC,UAAU,CAAC,MAAM;AACnC"}