@wix/cli 1.1.69 → 1.1.71

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 (134) hide show
  1. package/build/{DevCommand-5YJ7JVFI.js → DevCommand-BUCFQZ4V.js} +16 -15
  2. package/build/{DevCommand-5YJ7JVFI.js.map → DevCommand-BUCFQZ4V.js.map} +1 -1
  3. package/build/{DevCommand-33URDS3V.js → DevCommand-UXSOKVIV.js} +22 -19
  4. package/build/{DevCommand-33URDS3V.js.map → DevCommand-UXSOKVIV.js.map} +1 -1
  5. package/build/InstallCommand-ZXVGHZMT.js +111 -0
  6. package/build/InstallCommand-ZXVGHZMT.js.map +1 -0
  7. package/build/{LoginCommand-VXFJURKY.js → LoginCommand-LQDJPLIG.js} +13 -13
  8. package/build/{LogoutCommand-6X3V6YFR.js → LogoutCommand-AQ4FFG6S.js} +9 -9
  9. package/build/{PreviewCommand-SZN5FNW2.js → PreviewCommand-PF63VX7E.js} +19 -17
  10. package/build/{PreviewCommand-SZN5FNW2.js.map → PreviewCommand-PF63VX7E.js.map} +1 -1
  11. package/build/{PublishCommand-WLNU4ZTZ.js → PublishCommand-QIUB5P27.js} +19 -17
  12. package/build/{PublishCommand-WLNU4ZTZ.js.map → PublishCommand-QIUB5P27.js.map} +1 -1
  13. package/build/{WhoamiCommand-LMVW2K4G.js → WhoamiCommand-C2BQLEZK.js} +5 -5
  14. package/build/{chunk-SEOIN2A6.js → chunk-2CPXK3HU.js} +2 -2
  15. package/build/{chunk-ZSEFFYYF.js → chunk-2G7FRAIA.js} +2 -2
  16. package/build/{chunk-VPOJLQYV.js → chunk-7EAHB7TU.js} +5 -5
  17. package/build/{chunk-XW5SMEWV.js → chunk-7VND5WMC.js} +23 -12
  18. package/build/{chunk-XW5SMEWV.js.map → chunk-7VND5WMC.js.map} +1 -1
  19. package/build/chunk-BALHGZ6G.js +106 -0
  20. package/build/chunk-BALHGZ6G.js.map +1 -0
  21. package/build/{chunk-2VWITZHD.js → chunk-CKRI4KAC.js} +6 -6
  22. package/build/{chunk-V7ZC4LPC.js → chunk-CVJG3VZM.js} +3 -2
  23. package/build/{chunk-V7ZC4LPC.js.map → chunk-CVJG3VZM.js.map} +1 -1
  24. package/build/chunk-D4CWTPCC.js +215 -0
  25. package/build/chunk-D4CWTPCC.js.map +1 -0
  26. package/build/{chunk-5P7JTOX6.js → chunk-DDC4C6V6.js} +2 -2
  27. package/build/{chunk-2PPYTGTP.js → chunk-DRTGGSXY.js} +11 -9
  28. package/build/{chunk-2PPYTGTP.js.map → chunk-DRTGGSXY.js.map} +1 -1
  29. package/build/{chunk-GV6YQJVG.js → chunk-E2POOOG2.js} +18 -399
  30. package/build/chunk-E2POOOG2.js.map +1 -0
  31. package/build/{chunk-DCQOM2Z7.js → chunk-E56WW2OA.js} +99 -15
  32. package/build/chunk-E56WW2OA.js.map +1 -0
  33. package/build/{chunk-3GHXATUB.js → chunk-F6DVF5WQ.js} +31 -4
  34. package/build/chunk-F6DVF5WQ.js.map +1 -0
  35. package/build/{chunk-PX2L3CCA.js → chunk-GNB7T7J7.js} +2 -1
  36. package/build/chunk-GNB7T7J7.js.map +1 -0
  37. package/build/{chunk-2G3JMOVC.js → chunk-GXQQXURF.js} +4 -4
  38. package/build/{chunk-2G3JMOVC.js.map → chunk-GXQQXURF.js.map} +1 -1
  39. package/build/chunk-HGBMRF3C.js +68 -0
  40. package/build/chunk-HGBMRF3C.js.map +1 -0
  41. package/build/{chunk-Y4ZVXLXY.js → chunk-IBISICD2.js} +2 -2
  42. package/build/{chunk-OVP6B64S.js → chunk-K4EZRW26.js} +6 -6
  43. package/build/{chunk-2F3GQZWA.js → chunk-KQMZOXQO.js} +5 -40
  44. package/build/chunk-KQMZOXQO.js.map +1 -0
  45. package/build/{chunk-I2MVJLFR.js → chunk-KU7XWHFR.js} +5 -5
  46. package/build/{chunk-STMV4YQN.js → chunk-KWG4MUE3.js} +4 -4
  47. package/build/{chunk-UQM2YHYJ.js → chunk-LUSZJ34N.js} +8 -2
  48. package/build/chunk-LUSZJ34N.js.map +1 -0
  49. package/build/{chunk-ISDQRGI5.js → chunk-LZJPV4CP.js} +2 -2
  50. package/build/{chunk-R63OCR7B.js → chunk-O25O35J2.js} +11 -11
  51. package/build/{chunk-FP6XJXLI.js → chunk-OH3G6JMX.js} +9 -9
  52. package/build/{chunk-XFBRJSRX.js → chunk-PAPTRQZR.js} +3 -3
  53. package/build/{chunk-UEWDARJV.js → chunk-Q6F4OGQT.js} +6 -6
  54. package/build/{chunk-73EOTPNH.js → chunk-QKXNIB4D.js} +2 -2
  55. package/build/chunk-RNE7RRCK.js +403 -0
  56. package/build/chunk-RNE7RRCK.js.map +1 -0
  57. package/build/{chunk-7BZASUF6.js → chunk-SELMNFDT.js} +5 -5
  58. package/build/{chunk-SNATPUJN.js → chunk-SNWTG76C.js} +2 -2
  59. package/build/chunk-TZ6REBY4.js +348 -0
  60. package/build/chunk-TZ6REBY4.js.map +1 -0
  61. package/build/{chunk-7UNZZYHX.js → chunk-VSMZTFUW.js} +3 -3
  62. package/build/{chunk-AG5NQGMT.js → chunk-XVW7HYN2.js} +11 -6
  63. package/build/{chunk-AG5NQGMT.js.map → chunk-XVW7HYN2.js.map} +1 -1
  64. package/build/{chunk-ZDRNDE67.js → chunk-YNXR6XGC.js} +12 -10
  65. package/build/{chunk-ZDRNDE67.js.map → chunk-YNXR6XGC.js.map} +1 -1
  66. package/build/{dev-XHJYXDWW.js → dev-UIDEVHB2.js} +35 -31
  67. package/build/dev-UIDEVHB2.js.map +1 -0
  68. package/build/index.js +26 -26
  69. package/build/install-BBZ5FFHR.js +79 -0
  70. package/build/install-BBZ5FFHR.js.map +1 -0
  71. package/build/{preview-J2P3H55N.js → preview-DRHNY7LY.js} +23 -22
  72. package/build/{preview-J2P3H55N.js.map → preview-DRHNY7LY.js.map} +1 -1
  73. package/build/{publish-EVX4FLPC.js → publish-YUV5OQNQ.js} +24 -23
  74. package/build/{publish-EVX4FLPC.js.map → publish-YUV5OQNQ.js.map} +1 -1
  75. package/build/{render-command-FJHJDHES.js → render-command-3A5DVPI7.js} +12 -12
  76. package/build/{render-command-BKK2MPBU.js → render-command-NSPTH47K.js} +14 -14
  77. package/build/render-command-NSPTH47K.js.map +1 -0
  78. package/build/{render-command-QQZQXMCT.js → render-command-Y754GZT4.js} +13 -13
  79. package/build/{run-command-3W35JGKO.js → run-command-JLCXAJNF.js} +9 -9
  80. package/build/{src-FRXUOTRK.js → src-GTDYBSPF.js} +2 -2
  81. package/build/{src-PPNZSRDE.js → src-H6NM7SBV.js} +8 -8
  82. package/build/{src-7BPNVTO6.js → src-SEHXPEGQ.js} +30 -13
  83. package/build/src-SEHXPEGQ.js.map +1 -0
  84. package/build/{src-A2WEM6GK.js → src-X4WDRIUX.js} +18 -18
  85. package/build/{src-WLXQYADV.js → src-YKFOEDGA.js} +7 -7
  86. package/build/{src-ZKWO2KZB.js → src-ZQHFQ5TA.js} +6 -6
  87. package/build/{sync-types-FZK6FRJH.js → sync-types-HI4GZPY7.js} +14 -14
  88. package/build/{uninstall-BDYHXWAO.js → uninstall-Z4L27S7G.js} +33 -37
  89. package/build/uninstall-Z4L27S7G.js.map +1 -0
  90. package/package.json +2 -2
  91. package/build/chunk-2F3GQZWA.js.map +0 -1
  92. package/build/chunk-3GHXATUB.js.map +0 -1
  93. package/build/chunk-6IE2UX3U.js +0 -338
  94. package/build/chunk-6IE2UX3U.js.map +0 -1
  95. package/build/chunk-DCQOM2Z7.js.map +0 -1
  96. package/build/chunk-GV6YQJVG.js.map +0 -1
  97. package/build/chunk-PX2L3CCA.js.map +0 -1
  98. package/build/chunk-UQM2YHYJ.js.map +0 -1
  99. package/build/dev-XHJYXDWW.js.map +0 -1
  100. package/build/install-R344LMIP.js +0 -152
  101. package/build/install-R344LMIP.js.map +0 -1
  102. package/build/render-command-BKK2MPBU.js.map +0 -1
  103. package/build/src-7BPNVTO6.js.map +0 -1
  104. package/build/uninstall-BDYHXWAO.js.map +0 -1
  105. /package/build/{LoginCommand-VXFJURKY.js.map → LoginCommand-LQDJPLIG.js.map} +0 -0
  106. /package/build/{LogoutCommand-6X3V6YFR.js.map → LogoutCommand-AQ4FFG6S.js.map} +0 -0
  107. /package/build/{WhoamiCommand-LMVW2K4G.js.map → WhoamiCommand-C2BQLEZK.js.map} +0 -0
  108. /package/build/{chunk-SEOIN2A6.js.map → chunk-2CPXK3HU.js.map} +0 -0
  109. /package/build/{chunk-ZSEFFYYF.js.map → chunk-2G7FRAIA.js.map} +0 -0
  110. /package/build/{chunk-VPOJLQYV.js.map → chunk-7EAHB7TU.js.map} +0 -0
  111. /package/build/{chunk-2VWITZHD.js.map → chunk-CKRI4KAC.js.map} +0 -0
  112. /package/build/{chunk-5P7JTOX6.js.map → chunk-DDC4C6V6.js.map} +0 -0
  113. /package/build/{chunk-Y4ZVXLXY.js.map → chunk-IBISICD2.js.map} +0 -0
  114. /package/build/{chunk-OVP6B64S.js.map → chunk-K4EZRW26.js.map} +0 -0
  115. /package/build/{chunk-I2MVJLFR.js.map → chunk-KU7XWHFR.js.map} +0 -0
  116. /package/build/{chunk-STMV4YQN.js.map → chunk-KWG4MUE3.js.map} +0 -0
  117. /package/build/{chunk-ISDQRGI5.js.map → chunk-LZJPV4CP.js.map} +0 -0
  118. /package/build/{chunk-R63OCR7B.js.map → chunk-O25O35J2.js.map} +0 -0
  119. /package/build/{chunk-FP6XJXLI.js.map → chunk-OH3G6JMX.js.map} +0 -0
  120. /package/build/{chunk-XFBRJSRX.js.map → chunk-PAPTRQZR.js.map} +0 -0
  121. /package/build/{chunk-UEWDARJV.js.map → chunk-Q6F4OGQT.js.map} +0 -0
  122. /package/build/{chunk-73EOTPNH.js.map → chunk-QKXNIB4D.js.map} +0 -0
  123. /package/build/{chunk-7BZASUF6.js.map → chunk-SELMNFDT.js.map} +0 -0
  124. /package/build/{chunk-SNATPUJN.js.map → chunk-SNWTG76C.js.map} +0 -0
  125. /package/build/{chunk-7UNZZYHX.js.map → chunk-VSMZTFUW.js.map} +0 -0
  126. /package/build/{render-command-FJHJDHES.js.map → render-command-3A5DVPI7.js.map} +0 -0
  127. /package/build/{render-command-QQZQXMCT.js.map → render-command-Y754GZT4.js.map} +0 -0
  128. /package/build/{run-command-3W35JGKO.js.map → run-command-JLCXAJNF.js.map} +0 -0
  129. /package/build/{src-FRXUOTRK.js.map → src-GTDYBSPF.js.map} +0 -0
  130. /package/build/{src-PPNZSRDE.js.map → src-H6NM7SBV.js.map} +0 -0
  131. /package/build/{src-A2WEM6GK.js.map → src-X4WDRIUX.js.map} +0 -0
  132. /package/build/{src-WLXQYADV.js.map → src-YKFOEDGA.js.map} +0 -0
  133. /package/build/{src-ZKWO2KZB.js.map → src-ZQHFQ5TA.js.map} +0 -0
  134. /package/build/{sync-types-FZK6FRJH.js.map → sync-types-HI4GZPY7.js.map} +0 -0
@@ -4,41 +4,43 @@ import {
4
4
  getDeployment,
5
5
  getDeploymentPipelineDescription,
6
6
  publishDeployment
7
- } from "./chunk-ISDQRGI5.js";
7
+ } from "./chunk-LZJPV4CP.js";
8
8
  import {
9
9
  DeploymentPipelinesStatus,
10
10
  TaskStatus
11
11
  } from "./chunk-6XRFJZTQ.js";
12
12
  import {
13
- createSiteFsManager,
13
+ createSiteFsManager
14
+ } from "./chunk-KQMZOXQO.js";
15
+ import {
14
16
  loadProjectRootFiles
15
- } from "./chunk-2F3GQZWA.js";
17
+ } from "./chunk-HGBMRF3C.js";
16
18
  import {
17
19
  useHttpClient,
18
20
  useVeloClient
19
- } from "./chunk-DCQOM2Z7.js";
21
+ } from "./chunk-E56WW2OA.js";
20
22
  import {
21
23
  GridAppLayout
22
24
  } from "./chunk-6LI4WGAW.js";
23
25
  import {
24
26
  useProjectModel
25
- } from "./chunk-UEWDARJV.js";
27
+ } from "./chunk-Q6F4OGQT.js";
26
28
  import {
27
29
  pRetry,
28
30
  pWaitFor
29
- } from "./chunk-R63OCR7B.js";
31
+ } from "./chunk-O25O35J2.js";
30
32
  import {
31
33
  require_react
32
- } from "./chunk-FP6XJXLI.js";
34
+ } from "./chunk-OH3G6JMX.js";
33
35
  import {
34
36
  getTestOverrides,
35
37
  z
36
- } from "./chunk-PX2L3CCA.js";
38
+ } from "./chunk-GNB7T7J7.js";
37
39
  import {
38
40
  CliError,
39
41
  CliErrorCode,
40
42
  require_lib
41
- } from "./chunk-V7ZC4LPC.js";
43
+ } from "./chunk-CVJG3VZM.js";
42
44
  import {
43
45
  __toESM,
44
46
  init_esm_shims
@@ -412,4 +414,4 @@ export {
412
414
  useDocumentManagementClient,
413
415
  useCreatePreview
414
416
  };
415
- //# sourceMappingURL=chunk-ZDRNDE67.js.map
417
+ //# sourceMappingURL=chunk-YNXR6XGC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../document-management-client/src/document-management-client.ts","../../document-management-client/src/schemas.ts","../../document-management-client/src/useDocumentManagementClient.ts","../../document-management-client/src/index.ts","../../cli-site/src/components/PreviewCommand/useCreatePreview.ts","../../../node_modules/@wix/anyide-document-deployment/dist/src/index.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/updateSite.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/urls.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/utils/filterDocumentPagesByHashes.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/utils/hashWml.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/status.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/getTaskStatus.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/getBase.js","../../cli-site/src/components/PreviewCommand/useDeploySitePreview.ts"],"sourcesContent":["import type { HttpClient } from '@wix/cli-http-client';\nimport pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport pWaitFor from 'p-wait-for';\nimport { variant, fields } from 'variant';\nimport type { VariantOf } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport {\n getDeployment,\n publishDeployment,\n getDeploymentPipelineDescription,\n} from '@wix/ambassador-document-management-editor-deployments-v1-deployment/http';\nimport { DeploymentPipelinesStatus } from '@wix/ambassador-document-management-editor-deployments-v1-deployment/types';\nimport {\n getDeploymentSchema,\n getDeploymentPipelineDescriptionSchema,\n} from './schemas.js';\n\nconst { minRetryTimeout, pollInterval } = getTestOverrides();\n\nconst VELO_PIPELINE_ID = '5c696513-2584-4f19-ae0f-a559dd649482';\n\nexport const DeploymentStatus = variant({\n Success: {},\n Error: fields<{ deploymentError: CliError }>(),\n});\nexport type DeploymentStatus = VariantOf<typeof DeploymentStatus>;\n\nexport class DocumentManagementClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n this.retryOptions = {\n retries: 1,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n getDeploymentDetails = async (deploymentId: string) => {\n const deploymentStatus = await this.getDeploymentStatus(deploymentId);\n\n if (deploymentStatus === DeploymentPipelinesStatus.ERROR) {\n const tasksDescriptions =\n await this.getDeploymentTasksDescriptions(deploymentId);\n\n return DeploymentStatus.Error({\n deploymentError: new CliError({\n code: CliErrorCode.DeploymentPipelineFailed({ tasksDescriptions }),\n cause: null,\n }),\n });\n }\n\n return DeploymentStatus.Success();\n };\n\n private getDeploymentStatus = async (deploymentId: string) => {\n try {\n return await pWaitFor(\n async () => {\n const { data } = await pRetry(\n () => this.httpClient.request(getDeployment({ deploymentId })),\n this.retryOptions\n );\n\n const result = getDeploymentSchema.safeParse(data);\n\n if (!result.success) {\n throw new CliError({\n code: CliErrorCode.InvalidGetDeploymentResponse(),\n cause: result.error,\n info: { data },\n });\n }\n\n const { deploymentPipelinesStatus: status } = result.data.deployment;\n\n // Continue polling\n if (status === DeploymentPipelinesStatus.IN_PROGRESS) {\n return false;\n }\n\n return pWaitFor.resolveWith(status);\n },\n {\n // Poll each 2 seconds\n interval: pollInterval ?? 2 * 1000,\n // Fail if 2 minutes passed\n timeout: 2 * 60 * 1000,\n }\n );\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetDeploymentStatus(),\n cause: error,\n });\n }\n };\n\n private getDeploymentTasksDescriptions = async (deploymentId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n getDeploymentPipelineDescription({\n deploymentId,\n deploymentPipelinesIds: [VELO_PIPELINE_ID],\n })\n ),\n this.retryOptions\n );\n\n const result = getDeploymentPipelineDescriptionSchema.safeParse(data);\n\n if (!result.success) {\n throw new CliError({\n code: CliErrorCode.InvalidGetDeploymentPipelineDescriptionResponse(),\n cause: result.error,\n info: { data },\n });\n }\n\n const veloPipeline = result.data.pipelinesDescription.find(\n (item) => item.deploymentPipelineId === VELO_PIPELINE_ID\n );\n\n return veloPipeline?.tasksDescriptions ?? [];\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetDeploymentPipelineDescription(),\n cause: e,\n });\n }\n };\n\n publishDeployment = async (deploymentId: string) => {\n try {\n await this.httpClient.request(\n publishDeployment({ deploymentId, skipPipelineCheck: true })\n );\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToPublishDeployment(),\n cause: error,\n });\n }\n };\n}\n","import { z } from 'zod';\nimport {\n TaskStatus,\n DeploymentPipelinesStatus,\n} from '@wix/ambassador-document-management-editor-deployments-v1-deployment/types';\n\nexport const getDeploymentSchema = z.object({\n deployment: z.object({\n deploymentPipelinesStatus: z.enum([\n DeploymentPipelinesStatus.IN_PROGRESS,\n DeploymentPipelinesStatus.SUCCESS,\n DeploymentPipelinesStatus.ERROR,\n ]),\n }),\n});\n\nconst taskDescriptionSchema = z.object({\n taskName: z.string(),\n status: z\n .string()\n .transform((value) =>\n value === TaskStatus.SUCCESS ? TaskStatus.SUCCESS : TaskStatus.ERROR\n ),\n description: z\n .string()\n .nullish()\n .transform((value, ctx) => {\n try {\n return value ? JSON.parse(value) : {};\n } catch {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Invalid JSON',\n });\n }\n\n return value;\n })\n .pipe(z.record(z.string(), z.string())),\n});\n\nexport const getDeploymentPipelineDescriptionSchema = z.object({\n pipelinesDescription: z.array(\n z.object({\n deploymentPipelineId: z.string(),\n tasksDescriptions: z.array(taskDescriptionSchema),\n })\n ),\n});\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { DocumentManagementClient } from './document-management-client.js';\n\nexport function useDocumentManagementClient(): DocumentManagementClient {\n const httpClient = useHttpClient({ type: 'editor' });\n return useMemo(() => new DocumentManagementClient(httpClient), [httpClient]);\n}\n","export {\n DeploymentStatus,\n DocumentManagementClient,\n} from './document-management-client.js';\nexport { useDocumentManagementClient } from './useDocumentManagementClient.js';\n","import { useCallback } from 'react';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport {\n DeploymentStatus,\n useDocumentManagementClient,\n} from '@wix/document-management-client';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { deployDocument } from '@wix/anyide-document-deployment';\nimport { useProjectModel } from '../../model.js';\nimport { createSiteFsManager } from '../../site-fs-manager.js';\nimport { useDeploySitePreview } from './useDeploySitePreview.js';\n\nconst { pollInterval } = getTestOverrides();\n\nfunction toSiteUrl(deploymentUrl: string) {\n const url = new URL(deploymentUrl);\n url.search = '';\n return url.toString();\n}\n\nexport function useCreatePreview() {\n const dmClient = useDocumentManagementClient();\n const { model } = useProjectModel();\n const httpClient = useHttpClient({ type: 'editor' });\n const deploySitePreview = useDeploySitePreview();\n\n return useCallback(async () => {\n const siteFsManager = await createSiteFsManager(model.projectFolder);\n\n const [code, document] = await Promise.all([\n siteFsManager.getCode(),\n siteFsManager.getDocument(),\n ]);\n\n const { branchId, revision } = await deployDocument(document, {\n httpClient,\n pollInterval,\n }).catch((error: unknown) => {\n throw new CliError({\n code: CliErrorCode.FailedToDeployDocument(),\n cause: error,\n });\n });\n\n const preview = await deploySitePreview({ branchId, revision, code });\n let deploymentStatus: DeploymentStatus = DeploymentStatus.Success();\n\n if (preview.isPublishPipelineDeployment) {\n deploymentStatus = await dmClient.getDeploymentDetails(\n preview.deploymentId\n );\n }\n\n return {\n deploymentId: preview.deploymentId,\n previewUrl: preview.deploymentShortUrl ?? preview.deploymentUrl,\n siteUrl: toSiteUrl(preview.deploymentUrl),\n deploymentStatus,\n };\n }, [model.projectFolder, httpClient, deploySitePreview, dmClient]);\n}\n","import { updateSite } from './apis/updateSite.js';\nimport { filterDocumentPagesByHashes } from './utils/filterDocumentPagesByHashes.js';\nimport { subscribeToUpdateSiteTaskStatus } from './status.js';\nimport { getBase } from './apis/getBase.js';\nexport const deployDocument = async (document, options) => {\n const { branchId, revision, hashes } = await getBase(options.httpClient);\n const { httpClient, onStatusChange, pollInterval, timeout } = options;\n const documentUpdate = filterDocumentPagesByHashes(hashes, document);\n if (Object.keys(documentUpdate.pages).length === 0) {\n return {\n branchId,\n revision\n };\n }\n const updateSiteTaskId = await updateSite(httpClient, documentUpdate, branchId, revision);\n return subscribeToUpdateSiteTaskStatus(httpClient, updateSiteTaskId, { onStatusChange, pollInterval, timeout });\n};\n","import { promisify } from 'node:util';\nimport { brotliCompress } from 'node:zlib';\nimport { updateSiteUrl } from './urls.js';\nconst brotliCompressAsync = promisify(brotliCompress);\nconst sendUpdateSiteRequest = async (httpClient, request) => {\n const { data } = await httpClient.post(updateSiteUrl(), request);\n return data;\n};\nexport const updateSite = async (httpClient, documentUpdate, branchId, revision) => {\n const stringifiedDocumentUpdate = JSON.stringify(documentUpdate);\n const compressedWmlSite = (await brotliCompressAsync(stringifiedDocumentUpdate)).toString('base64');\n const { updateSiteTaskId } = await sendUpdateSiteRequest(httpClient, {\n compressedWmlSite,\n branchId,\n revision\n });\n return updateSiteTaskId;\n};\n","const serverlessUrl = () => 'https://editor.wix.com/_serverless/dm-anyide-site-deployment';\nexport const getBaseUrl = () => `${serverlessUrl()}/getBase`;\nexport const updateSiteUrl = () => `${serverlessUrl()}/updateSite`;\nexport const getUpdateSiteStatusUrl = (updateSiteTaskId) => `${serverlessUrl()}/getUpdateSiteStatus/${updateSiteTaskId}`;\n","import { hashWml } from './hashWml.js';\nexport const filterDocumentPagesByHashes = (hashes, document) => {\n const filteredDocument = { pages: {} };\n for (const pageId in document.pages) {\n if (hashes[pageId] === undefined) {\n filteredDocument.pages[pageId] = document.pages[pageId];\n }\n }\n for (const pageId in hashes) {\n const documentPage = document.pages[pageId];\n if (documentPage) {\n const pageHash = hashWml(documentPage.data);\n if (pageHash !== hashes[pageId]) {\n filteredDocument.pages[pageId] = documentPage;\n }\n }\n else {\n filteredDocument.pages[pageId] = null;\n }\n }\n return filteredDocument;\n};\n","import crypto from 'node:crypto';\nconst md5 = (str) => crypto.createHash('md5').update(str).digest('hex');\nconst stringifyWmlFile = ({ content }) => content;\nexport const hashWml = ({ structure, style, data, version }) => {\n const wmlString = version + stringifyWmlFile(structure) + stringifyWmlFile(data) + stringifyWmlFile(style);\n return md5(wmlString);\n};\n","import { getTaskStatus } from './apis/getTaskStatus.js';\nexport const subscribeToUpdateSiteTaskStatus = (httpClient, updateSiteTaskId, options = {}) => {\n const { onStatusChange, pollInterval = 1000, timeout = 1000 * 60 * 5 } = options;\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n const timeoutId = setTimeout(() => {\n cleanup();\n reject(new Error('deployDocument timeout exceeded'));\n }, timeout);\n const intervalId = setInterval(async () => {\n try {\n const taskStatus = await getTaskStatus(httpClient, updateSiteTaskId);\n onStatusChange?.(taskStatus);\n if (taskStatus.state === 'FAILED') {\n cleanup();\n reject(new Error(`Action ${taskStatus.action} failed with error: ${taskStatus.extras?.error}`));\n }\n if (taskStatus.action === 'CREATE_REVISION' && taskStatus.state === 'DONE') {\n cleanup();\n resolve(taskStatus.extras);\n }\n }\n catch (error) {\n cleanup();\n reject(error);\n }\n }, pollInterval);\n });\n};\n","import { getUpdateSiteStatusUrl } from './urls.js';\nexport const getTaskStatus = async (httpClient, taskId) => {\n const { data } = await httpClient.get(getUpdateSiteStatusUrl(taskId));\n return data;\n};\n","import { getBaseUrl } from './urls.js';\nexport const getBase = async (httpClient) => {\n const { data } = await httpClient.get(getBaseUrl());\n return data;\n};\n","import { useCallback } from 'react';\nimport { useVeloClient, GridAppLayout } from '@wix/velo-client';\nimport type { VeloCode } from '@wix/anyide-cli-file-structure';\nimport { useProjectModel } from '../../model.js';\nimport { loadProjectRootFiles } from '../../velo.js';\n\ninterface Options {\n branchId: string;\n revision: number;\n code: VeloCode;\n}\n\nexport function useDeploySitePreview() {\n const { model } = useProjectModel();\n const { deploySitePreview } = useVeloClient();\n\n return useCallback(\n async ({ branchId, revision, code }: Options) => {\n const rootFiles = await loadProjectRootFiles(model.projectFolder);\n\n return deploySitePreview({\n branchId,\n revision: String(revision),\n content: {\n ...code,\n files: code.files.concat(rootFiles),\n layout: GridAppLayout[code.layout],\n },\n });\n },\n [deploySitePreview, model.projectFolder]\n );\n}\n"],"mappings":"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","names":["import_react","pollInterval","pollInterval","import_react","pollInterval"]}
1
+ {"version":3,"sources":["../../document-management-client/src/document-management-client.ts","../../document-management-client/src/schemas.ts","../../document-management-client/src/useDocumentManagementClient.ts","../../document-management-client/src/index.ts","../../cli-site/src/components/PreviewCommand/useCreatePreview.ts","../../../node_modules/@wix/anyide-document-deployment/dist/src/index.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/updateSite.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/urls.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/utils/filterDocumentPagesByHashes.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/utils/hashWml.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/status.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/getTaskStatus.js","../../../node_modules/@wix/anyide-document-deployment/dist/src/apis/getBase.js","../../cli-site/src/components/PreviewCommand/useDeploySitePreview.ts"],"sourcesContent":["import type { HttpClient } from '@wix/cli-http-client';\nimport pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport pWaitFor from 'p-wait-for';\nimport { variant, fields } from 'variant';\nimport type { VariantOf } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport {\n getDeployment,\n publishDeployment,\n getDeploymentPipelineDescription,\n} from '@wix/ambassador-document-management-editor-deployments-v1-deployment/http';\nimport { DeploymentPipelinesStatus } from '@wix/ambassador-document-management-editor-deployments-v1-deployment/types';\nimport {\n getDeploymentSchema,\n getDeploymentPipelineDescriptionSchema,\n} from './schemas.js';\n\nconst { minRetryTimeout, pollInterval } = getTestOverrides();\n\nconst VELO_PIPELINE_ID = '5c696513-2584-4f19-ae0f-a559dd649482';\n\nexport const DeploymentStatus = variant({\n Success: {},\n Error: fields<{ deploymentError: CliError }>(),\n});\nexport type DeploymentStatus = VariantOf<typeof DeploymentStatus>;\n\nexport class DocumentManagementClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n this.retryOptions = {\n retries: 1,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n getDeploymentDetails = async (deploymentId: string) => {\n const deploymentStatus = await this.getDeploymentStatus(deploymentId);\n\n if (deploymentStatus === DeploymentPipelinesStatus.ERROR) {\n const tasksDescriptions =\n await this.getDeploymentTasksDescriptions(deploymentId);\n\n return DeploymentStatus.Error({\n deploymentError: new CliError({\n code: CliErrorCode.DeploymentPipelineFailed({ tasksDescriptions }),\n cause: null,\n }),\n });\n }\n\n return DeploymentStatus.Success();\n };\n\n private getDeploymentStatus = async (deploymentId: string) => {\n try {\n return await pWaitFor(\n async () => {\n const { data } = await pRetry(\n () => this.httpClient.request(getDeployment({ deploymentId })),\n this.retryOptions\n );\n\n const result = getDeploymentSchema.safeParse(data);\n\n if (!result.success) {\n throw new CliError({\n code: CliErrorCode.InvalidGetDeploymentResponse(),\n cause: result.error,\n info: { data },\n });\n }\n\n const { deploymentPipelinesStatus: status } = result.data.deployment;\n\n // Continue polling\n if (status === DeploymentPipelinesStatus.IN_PROGRESS) {\n return false;\n }\n\n return pWaitFor.resolveWith(status);\n },\n {\n // Poll each 2 seconds\n interval: pollInterval ?? 2 * 1000,\n // Fail if 2 minutes passed\n timeout: 2 * 60 * 1000,\n }\n );\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetDeploymentStatus(),\n cause: error,\n });\n }\n };\n\n private getDeploymentTasksDescriptions = async (deploymentId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n getDeploymentPipelineDescription({\n deploymentId,\n deploymentPipelinesIds: [VELO_PIPELINE_ID],\n })\n ),\n this.retryOptions\n );\n\n const result = getDeploymentPipelineDescriptionSchema.safeParse(data);\n\n if (!result.success) {\n throw new CliError({\n code: CliErrorCode.InvalidGetDeploymentPipelineDescriptionResponse(),\n cause: result.error,\n info: { data },\n });\n }\n\n const veloPipeline = result.data.pipelinesDescription.find(\n (item) => item.deploymentPipelineId === VELO_PIPELINE_ID\n );\n\n return veloPipeline?.tasksDescriptions ?? [];\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetDeploymentPipelineDescription(),\n cause: e,\n });\n }\n };\n\n publishDeployment = async (deploymentId: string) => {\n try {\n await this.httpClient.request(\n publishDeployment({ deploymentId, skipPipelineCheck: true })\n );\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToPublishDeployment(),\n cause: error,\n });\n }\n };\n}\n","import { z } from 'zod';\nimport {\n TaskStatus,\n DeploymentPipelinesStatus,\n} from '@wix/ambassador-document-management-editor-deployments-v1-deployment/types';\n\nexport const getDeploymentSchema = z.object({\n deployment: z.object({\n deploymentPipelinesStatus: z.enum([\n DeploymentPipelinesStatus.IN_PROGRESS,\n DeploymentPipelinesStatus.SUCCESS,\n DeploymentPipelinesStatus.ERROR,\n ]),\n }),\n});\n\nconst taskDescriptionSchema = z.object({\n taskName: z.string(),\n status: z\n .string()\n .transform((value) =>\n value === TaskStatus.SUCCESS ? TaskStatus.SUCCESS : TaskStatus.ERROR\n ),\n description: z\n .string()\n .nullish()\n .transform((value, ctx) => {\n try {\n return value ? JSON.parse(value) : {};\n } catch {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Invalid JSON',\n });\n }\n\n return value;\n })\n .pipe(z.record(z.string(), z.string())),\n});\n\nexport const getDeploymentPipelineDescriptionSchema = z.object({\n pipelinesDescription: z.array(\n z.object({\n deploymentPipelineId: z.string(),\n tasksDescriptions: z.array(taskDescriptionSchema),\n })\n ),\n});\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { DocumentManagementClient } from './document-management-client.js';\n\nexport function useDocumentManagementClient(): DocumentManagementClient {\n const httpClient = useHttpClient({ type: 'editor' });\n return useMemo(() => new DocumentManagementClient(httpClient), [httpClient]);\n}\n","export {\n DeploymentStatus,\n DocumentManagementClient,\n} from './document-management-client.js';\nexport { useDocumentManagementClient } from './useDocumentManagementClient.js';\n","import { useCallback } from 'react';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport {\n DeploymentStatus,\n useDocumentManagementClient,\n} from '@wix/document-management-client';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { deployDocument } from '@wix/anyide-document-deployment';\nimport { useProjectModel } from '../../model.js';\nimport { createSiteFsManager } from '../../site-fs-manager.js';\nimport { useDeploySitePreview } from './useDeploySitePreview.js';\n\nconst { pollInterval } = getTestOverrides();\n\nfunction toSiteUrl(deploymentUrl: string) {\n const url = new URL(deploymentUrl);\n url.search = '';\n return url.toString();\n}\n\nexport function useCreatePreview() {\n const dmClient = useDocumentManagementClient();\n const { model } = useProjectModel();\n const httpClient = useHttpClient({ type: 'editor' });\n const deploySitePreview = useDeploySitePreview();\n\n return useCallback(async () => {\n const siteFsManager = await createSiteFsManager(model.projectFolder);\n\n const [code, document] = await Promise.all([\n siteFsManager.getCode(),\n siteFsManager.getDocument(),\n ]);\n\n const { branchId, revision } = await deployDocument(document, {\n httpClient,\n pollInterval,\n }).catch((error: unknown) => {\n throw new CliError({\n code: CliErrorCode.FailedToDeployDocument(),\n cause: error,\n });\n });\n\n const preview = await deploySitePreview({ branchId, revision, code });\n let deploymentStatus: DeploymentStatus = DeploymentStatus.Success();\n\n if (preview.isPublishPipelineDeployment) {\n deploymentStatus = await dmClient.getDeploymentDetails(\n preview.deploymentId\n );\n }\n\n return {\n deploymentId: preview.deploymentId,\n previewUrl: preview.deploymentShortUrl ?? preview.deploymentUrl,\n siteUrl: toSiteUrl(preview.deploymentUrl),\n deploymentStatus,\n };\n }, [model.projectFolder, httpClient, deploySitePreview, dmClient]);\n}\n","import { updateSite } from './apis/updateSite.js';\nimport { filterDocumentPagesByHashes } from './utils/filterDocumentPagesByHashes.js';\nimport { subscribeToUpdateSiteTaskStatus } from './status.js';\nimport { getBase } from './apis/getBase.js';\nexport const deployDocument = async (document, options) => {\n const { branchId, revision, hashes } = await getBase(options.httpClient);\n const { httpClient, onStatusChange, pollInterval, timeout } = options;\n const documentUpdate = filterDocumentPagesByHashes(hashes, document);\n if (Object.keys(documentUpdate.pages).length === 0) {\n return {\n branchId,\n revision\n };\n }\n const updateSiteTaskId = await updateSite(httpClient, documentUpdate, branchId, revision);\n return subscribeToUpdateSiteTaskStatus(httpClient, updateSiteTaskId, { onStatusChange, pollInterval, timeout });\n};\n","import { promisify } from 'node:util';\nimport { brotliCompress } from 'node:zlib';\nimport { updateSiteUrl } from './urls.js';\nconst brotliCompressAsync = promisify(brotliCompress);\nconst sendUpdateSiteRequest = async (httpClient, request) => {\n const { data } = await httpClient.post(updateSiteUrl(), request);\n return data;\n};\nexport const updateSite = async (httpClient, documentUpdate, branchId, revision) => {\n const stringifiedDocumentUpdate = JSON.stringify(documentUpdate);\n const compressedWmlSite = (await brotliCompressAsync(stringifiedDocumentUpdate)).toString('base64');\n const { updateSiteTaskId } = await sendUpdateSiteRequest(httpClient, {\n compressedWmlSite,\n branchId,\n revision\n });\n return updateSiteTaskId;\n};\n","const serverlessUrl = () => 'https://editor.wix.com/_serverless/dm-anyide-site-deployment';\nexport const getBaseUrl = () => `${serverlessUrl()}/getBase`;\nexport const updateSiteUrl = () => `${serverlessUrl()}/updateSite`;\nexport const getUpdateSiteStatusUrl = (updateSiteTaskId) => `${serverlessUrl()}/getUpdateSiteStatus/${updateSiteTaskId}`;\n","import { hashWml } from './hashWml.js';\nexport const filterDocumentPagesByHashes = (hashes, document) => {\n const filteredDocument = { pages: {} };\n for (const pageId in document.pages) {\n if (hashes[pageId] === undefined) {\n filteredDocument.pages[pageId] = document.pages[pageId];\n }\n }\n for (const pageId in hashes) {\n const documentPage = document.pages[pageId];\n if (documentPage) {\n const pageHash = hashWml(documentPage.data);\n if (pageHash !== hashes[pageId]) {\n filteredDocument.pages[pageId] = documentPage;\n }\n }\n else {\n filteredDocument.pages[pageId] = null;\n }\n }\n return filteredDocument;\n};\n","import crypto from 'node:crypto';\nconst md5 = (str) => crypto.createHash('md5').update(str).digest('hex');\nconst stringifyWmlFile = ({ content }) => content;\nexport const hashWml = ({ structure, style, data, version }) => {\n const wmlString = version + stringifyWmlFile(structure) + stringifyWmlFile(data) + stringifyWmlFile(style);\n return md5(wmlString);\n};\n","import { getTaskStatus } from './apis/getTaskStatus.js';\nexport const subscribeToUpdateSiteTaskStatus = (httpClient, updateSiteTaskId, options = {}) => {\n const { onStatusChange, pollInterval = 1000, timeout = 1000 * 60 * 5 } = options;\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n const timeoutId = setTimeout(() => {\n cleanup();\n reject(new Error('deployDocument timeout exceeded'));\n }, timeout);\n const intervalId = setInterval(async () => {\n try {\n const taskStatus = await getTaskStatus(httpClient, updateSiteTaskId);\n onStatusChange?.(taskStatus);\n if (taskStatus.state === 'FAILED') {\n cleanup();\n reject(new Error(`Action ${taskStatus.action} failed with error: ${taskStatus.extras?.error}`));\n }\n if (taskStatus.action === 'CREATE_REVISION' && taskStatus.state === 'DONE') {\n cleanup();\n resolve(taskStatus.extras);\n }\n }\n catch (error) {\n cleanup();\n reject(error);\n }\n }, pollInterval);\n });\n};\n","import { getUpdateSiteStatusUrl } from './urls.js';\nexport const getTaskStatus = async (httpClient, taskId) => {\n const { data } = await httpClient.get(getUpdateSiteStatusUrl(taskId));\n return data;\n};\n","import { getBaseUrl } from './urls.js';\nexport const getBase = async (httpClient) => {\n const { data } = await httpClient.get(getBaseUrl());\n return data;\n};\n","import { useCallback } from 'react';\nimport { useVeloClient, GridAppLayout } from '@wix/velo-client';\nimport type { VeloCode } from '@wix/anyide-cli-file-structure';\nimport { useProjectModel } from '../../model.js';\nimport { loadProjectRootFiles } from '../../velo.js';\n\ninterface Options {\n branchId: string;\n revision: number;\n code: VeloCode;\n}\n\nexport function useDeploySitePreview() {\n const { model } = useProjectModel();\n const { deploySitePreview } = useVeloClient();\n\n return useCallback(\n async ({ branchId, revision, code }: Options) => {\n const rootFiles = await loadProjectRootFiles(model.projectFolder);\n\n return deploySitePreview({\n branchId,\n revision: String(revision),\n content: {\n ...code,\n files: code.files.concat(rootFiles),\n layout: GridAppLayout[code.layout],\n },\n });\n },\n [deploySitePreview, model.projectFolder]\n );\n}\n"],"mappings":"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","names":["import_react","pollInterval","pollInterval","import_react","pollInterval"]}
@@ -1,36 +1,42 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
+ import {
4
+ saveProjectModel
5
+ } from "./chunk-KU7XWHFR.js";
3
6
  import {
4
7
  syncTypesWithAuth
5
- } from "./chunk-7BZASUF6.js";
8
+ } from "./chunk-SELMNFDT.js";
6
9
  import {
7
10
  loadProjectGridAppContent
8
- } from "./chunk-OVP6B64S.js";
11
+ } from "./chunk-K4EZRW26.js";
12
+ import "./chunk-IBISICD2.js";
9
13
  import {
10
14
  createLogger,
11
- execa,
12
15
  httpRequest
13
- } from "./chunk-GV6YQJVG.js";
16
+ } from "./chunk-RNE7RRCK.js";
17
+ import {
18
+ createI18nT
19
+ } from "./chunk-2G7FRAIA.js";
14
20
  import "./chunk-CNXKF7E3.js";
15
21
  import {
16
22
  authenticate
17
- } from "./chunk-XFBRJSRX.js";
18
- import {
19
- createI18nT
20
- } from "./chunk-ZSEFFYYF.js";
23
+ } from "./chunk-PAPTRQZR.js";
21
24
  import {
22
25
  createVeloCLIServer,
23
26
  debounceQueue,
24
27
  require_chokidar
25
- } from "./chunk-AG5NQGMT.js";
28
+ } from "./chunk-XVW7HYN2.js";
26
29
  import {
27
30
  require_normalize_path
28
31
  } from "./chunk-EDFOB3LN.js";
29
- import "./chunk-VPOJLQYV.js";
32
+ import "./chunk-7EAHB7TU.js";
33
+ import {
34
+ execa
35
+ } from "./chunk-E2POOOG2.js";
30
36
  import "./chunk-OJHDGJWP.js";
31
37
  import {
32
38
  updateFiles
33
- } from "./chunk-SNATPUJN.js";
39
+ } from "./chunk-SNWTG76C.js";
34
40
  import {
35
41
  GridAppLayout
36
42
  } from "./chunk-6LI4WGAW.js";
@@ -39,12 +45,8 @@ import {
39
45
  GridAppLayout as GridAppLayout2,
40
46
  createApp,
41
47
  pagesDiff
42
- } from "./chunk-5P7JTOX6.js";
43
- import {
44
- saveProjectModel
45
- } from "./chunk-I2MVJLFR.js";
46
- import "./chunk-Y4ZVXLXY.js";
47
- import "./chunk-STMV4YQN.js";
48
+ } from "./chunk-DDC4C6V6.js";
49
+ import "./chunk-KWG4MUE3.js";
48
50
  import {
49
51
  createHttpClient,
50
52
  isHttpError,
@@ -54,17 +56,12 @@ import {
54
56
  resolveUrl,
55
57
  serializer,
56
58
  toURLSearchParams
57
- } from "./chunk-R63OCR7B.js";
59
+ } from "./chunk-O25O35J2.js";
58
60
  import {
59
61
  ErrorViewer,
60
62
  extractHttpError,
61
63
  writeCrashReport
62
- } from "./chunk-XW5SMEWV.js";
63
- import {
64
- renderSync,
65
- require_react
66
- } from "./chunk-FP6XJXLI.js";
67
- import "./chunk-2K5KKUL3.js";
64
+ } from "./chunk-7VND5WMC.js";
68
65
  import {
69
66
  wixCliCliMessageDisplayed,
70
67
  wixCliCodeHasBeenChanged,
@@ -72,28 +69,33 @@ import {
72
69
  wixCliReadyForReloadAfterCodeChange,
73
70
  wixCliUserResponseToCliMessage
74
71
  } from "./chunk-WN3D6AOY.js";
72
+ import {
73
+ renderSync,
74
+ require_react
75
+ } from "./chunk-OH3G6JMX.js";
75
76
  import "./chunk-W423UTD3.js";
77
+ import "./chunk-2K5KKUL3.js";
76
78
  import "./chunk-YU54OBFT.js";
77
79
  import "./chunk-XMTHMR2B.js";
78
- import "./chunk-7UNZZYHX.js";
80
+ import "./chunk-VSMZTFUW.js";
79
81
  import {
80
82
  getDebugLogFilePath,
81
83
  getPagesFolder,
82
84
  getSourceFolder,
83
85
  getTypesDir
84
- } from "./chunk-SEOIN2A6.js";
86
+ } from "./chunk-2CPXK3HU.js";
85
87
  import {
86
88
  outputFile,
87
89
  pathExists
88
- } from "./chunk-3GHXATUB.js";
90
+ } from "./chunk-F6DVF5WQ.js";
89
91
  import {
90
92
  getTestOverrides,
91
93
  z
92
- } from "./chunk-PX2L3CCA.js";
94
+ } from "./chunk-GNB7T7J7.js";
93
95
  import {
94
96
  CliError,
95
97
  CliErrorCode
96
- } from "./chunk-V7ZC4LPC.js";
98
+ } from "./chunk-CVJG3VZM.js";
97
99
  import {
98
100
  __commonJS,
99
101
  __dirname,
@@ -1569,7 +1571,9 @@ async function dev(initialModel, { biLogger, errorReporter }, {
1569
1571
  return url.toString();
1570
1572
  };
1571
1573
  try {
1572
- const { port: serverPort } = await server.serve(gridAppId, getDevEditorUrl);
1574
+ const { port: serverPort } = await server.serve(gridAppId, {
1575
+ getDevEditorUrl
1576
+ });
1573
1577
  if (useTunnel) {
1574
1578
  const httpClient = createHttpClient({
1575
1579
  type: "backoffice",
@@ -1602,4 +1606,4 @@ async function dev(initialModel, { biLogger, errorReporter }, {
1602
1606
  export {
1603
1607
  dev
1604
1608
  };
1605
- //# sourceMappingURL=dev-XHJYXDWW.js.map
1609
+ //# sourceMappingURL=dev-UIDEVHB2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/cloudflared/lib/constants.js","../../../node_modules/cloudflared/lib/error.js","../../../node_modules/cloudflared/lib/install.js","../../../node_modules/cloudflared/lib/regex.js","../../../node_modules/cloudflared/lib/tunnel.js","../../../node_modules/cloudflared/lib/service.js","../../../node_modules/cloudflared/lib/lib.js","../../cli-site-old/src/dev/index.ts","../../cli-site-old/src/dev/dev.ts","../../../node_modules/exit-hook/index.js","../../cli-tunnel/src/index.ts","../../cli-tunnel/src/tunnel.ts","../../cli-tunnel/src/client.ts","../../../node_modules/@wix/ambassador-apps-hosting-v1-deployment/http.impl.ts","../../cli-tunnel/src/schemas.ts","../../cli-site-old/src/environment.ts","../../cli-site-old/src/gridapp/createGridApp.ts","../../cli-site-old/src/gridapp/error-handlers/maxFileSizeErrorHandler.ts","../../cli-site-old/src/gridapp/startGridAppUpdater.ts","../../cli-site-old/src/key-watcher.ts","../../cli-site-old/src/bi.ts","../../cli-site-old/src/dev/sync-all-to-revision.ts","../../cli-site-old/src/sources/index.ts","../../cli-site-old/src/sources/pages-diff.ts"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target, mod));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar constants_exports = {};\n__export(constants_exports, {\n CLOUDFLARED_VERSION: () => CLOUDFLARED_VERSION,\n DEFAULT_CLOUDFLARED_BIN: () => DEFAULT_CLOUDFLARED_BIN,\n RELEASE_BASE: () => RELEASE_BASE,\n bin: () => bin,\n use: () => use\n});\nmodule.exports = __toCommonJS(constants_exports);\nvar import_node_path = __toESM(require(\"node:path\"));\nconst DEFAULT_CLOUDFLARED_BIN = import_node_path.default.join(__dirname, \"..\", \"bin\", process.platform === \"win32\" ? \"cloudflared.exe\" : \"cloudflared\");\nlet bin = process.env.CLOUDFLARED_BIN || DEFAULT_CLOUDFLARED_BIN;\nfunction use(executable) {\n bin = executable;\n}\nconst CLOUDFLARED_VERSION = process.env.CLOUDFLARED_VERSION || \"latest\";\nconst RELEASE_BASE = \"https://github.com/cloudflare/cloudflared/releases/\";\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n CLOUDFLARED_VERSION,\n DEFAULT_CLOUDFLARED_BIN,\n RELEASE_BASE,\n bin,\n use\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar error_exports = {};\n__export(error_exports, {\n UnsupportedError: () => UnsupportedError\n});\nmodule.exports = __toCommonJS(error_exports);\nclass UnsupportedError extends Error {\n constructor(message) {\n super(message);\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n UnsupportedError\n});\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target, mod));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar install_exports = {};\n__export(install_exports, {\n install: () => install,\n install_linux: () => install_linux,\n install_macos: () => install_macos,\n install_windows: () => install_windows\n});\nmodule.exports = __toCommonJS(install_exports);\nvar import_node_fs = __toESM(require(\"node:fs\"));\nvar import_node_path = __toESM(require(\"node:path\"));\nvar import_node_https = __toESM(require(\"node:https\"));\nvar import_node_child_process = require(\"node:child_process\");\nvar import_constants = require(\"./constants\");\nvar import_error = require(\"./error\");\nconst LINUX_URL = {\n arm64: \"cloudflared-linux-arm64\",\n arm: \"cloudflared-linux-arm\",\n x64: \"cloudflared-linux-amd64\",\n ia32: \"cloudflared-linux-386\"\n};\nconst MACOS_URL = {\n arm64: \"cloudflared-darwin-amd64.tgz\",\n x64: \"cloudflared-darwin-amd64.tgz\"\n};\nconst WINDOWS_URL = {\n x64: \"cloudflared-windows-amd64.exe\",\n ia32: \"cloudflared-windows-386.exe\"\n};\nfunction resolve_base(version) {\n if (version === \"latest\") {\n return `${import_constants.RELEASE_BASE}latest/download/`;\n }\n return `${import_constants.RELEASE_BASE}download/${version}/`;\n}\nasync function install(to, version = import_constants.CLOUDFLARED_VERSION) {\n if (process.platform === \"linux\") {\n return install_linux(to, version);\n } else if (process.platform === \"darwin\") {\n return install_macos(to, version);\n } else if (process.platform === \"win32\") {\n return install_windows(to, version);\n } else {\n throw new import_error.UnsupportedError(\"Unsupported platform: \" + process.platform);\n }\n}\nasync function install_linux(to, version = import_constants.CLOUDFLARED_VERSION) {\n const file = LINUX_URL[process.arch];\n if (file === void 0) {\n throw new import_error.UnsupportedError(\"Unsupported architecture: \" + process.arch);\n }\n await download(resolve_base(version) + file, to);\n import_node_fs.default.chmodSync(to, \"755\");\n return to;\n}\nasync function install_macos(to, version = import_constants.CLOUDFLARED_VERSION) {\n const file = MACOS_URL[process.arch];\n if (file === void 0) {\n throw new import_error.UnsupportedError(\"Unsupported architecture: \" + process.arch);\n }\n await download(resolve_base(version) + file, `${to}.tgz`);\n process.env.VERBOSE && console.log(`Extracting to ${to}`);\n (0, import_node_child_process.execSync)(`tar -xzf ${import_node_path.default.basename(`${to}.tgz`)}`, { cwd: import_node_path.default.dirname(to) });\n import_node_fs.default.unlinkSync(`${to}.tgz`);\n import_node_fs.default.renameSync(`${import_node_path.default.dirname(to)}/cloudflared`, to);\n return to;\n}\nasync function install_windows(to, version = import_constants.CLOUDFLARED_VERSION) {\n const file = WINDOWS_URL[process.arch];\n if (file === void 0) {\n throw new import_error.UnsupportedError(\"Unsupported architecture: \" + process.arch);\n }\n await download(resolve_base(version) + file, to);\n return to;\n}\nfunction download(url, to, redirect = 0) {\n if (redirect === 0) {\n process.env.VERBOSE && console.log(`Downloading ${url} to ${to}`);\n } else {\n process.env.VERBOSE && console.log(`Redirecting to ${url}`);\n }\n if (!import_node_fs.default.existsSync(import_node_path.default.dirname(to))) {\n import_node_fs.default.mkdirSync(import_node_path.default.dirname(to), { recursive: true });\n }\n return new Promise((resolve, reject) => {\n const request = import_node_https.default.get(url, (res) => {\n const redirect_code = [301, 302, 303, 307, 308];\n if (redirect_code.includes(res.statusCode) && res.headers.location !== void 0) {\n request.destroy();\n const redirection = res.headers.location;\n resolve(download(redirection, to, redirect + 1));\n return;\n }\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {\n const file = import_node_fs.default.createWriteStream(to);\n file.on(\"finish\", () => {\n file.close(() => resolve(to));\n });\n file.on(\"error\", (err) => {\n import_node_fs.default.unlink(to, () => reject(err));\n });\n res.pipe(file);\n } else {\n request.destroy();\n reject(new Error(`HTTP response with status code: ${res.statusCode}`));\n }\n });\n request.on(\"error\", (err) => {\n reject(err);\n });\n request.end();\n });\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n install,\n install_linux,\n install_macos,\n install_windows\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar regex_exports = {};\n__export(regex_exports, {\n config_regex: () => config_regex,\n conn_regex: () => conn_regex,\n connectorID_regex: () => connectorID_regex,\n disconnect_regex: () => disconnect_regex,\n index_regex: () => index_regex,\n ip_regex: () => ip_regex,\n location_regex: () => location_regex,\n metrics_regex: () => metrics_regex,\n tunnelID_regex: () => tunnelID_regex\n});\nmodule.exports = __toCommonJS(regex_exports);\nconst conn_regex = /connection[= ]([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})/i;\nconst ip_regex = /ip=([0-9.]+)/;\nconst location_regex = /location=([A-Za-z0-9]+)/;\nconst index_regex = /connIndex=(\\d)/;\nconst disconnect_regex = /Unregistered tunnel connection connIndex=(\\d)/i;\nconst tunnelID_regex = /tunnelID=([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})/i;\nconst connectorID_regex = /Connector ID: ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})/i;\nconst metrics_regex = /metrics server on ([0-9.:]+\\/metrics)/;\nconst config_regex = /config=\"(.+[^\\\\])\"/;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n config_regex,\n conn_regex,\n connectorID_regex,\n disconnect_regex,\n index_regex,\n ip_regex,\n location_regex,\n metrics_regex,\n tunnelID_regex\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar tunnel_exports = {};\n__export(tunnel_exports, {\n tunnel: () => tunnel\n});\nmodule.exports = __toCommonJS(tunnel_exports);\nvar import_node_child_process = require(\"node:child_process\");\nvar import_constants = require(\"./constants.js\");\nvar import_regex = require(\"./regex.js\");\nfunction tunnel(options = {}) {\n const args = [\"tunnel\"];\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === \"string\") {\n args.push(`${key}`, value);\n } else if (typeof value === \"number\") {\n args.push(`${key}`, value.toString());\n } else if (value === null) {\n args.push(`${key}`);\n }\n }\n if (args.length === 1) {\n args.push(\"--url\", \"localhost:8080\");\n }\n const child = (0, import_node_child_process.spawn)(import_constants.bin, args, { stdio: [\"ignore\", \"pipe\", \"pipe\"] });\n if (process.env.VERBOSE) {\n child.stdout.pipe(process.stdout);\n child.stderr.pipe(process.stderr);\n }\n const url_regex = /\\|\\s+(https?:\\/\\/[^\\s]+)/;\n let url_resolver = () => void 0;\n let url_rejector = () => void 0;\n const url = new Promise((...pair) => [url_resolver, url_rejector] = pair);\n const connection_resolvers = [];\n const connection_rejectors = [];\n const connections = [];\n for (let i = 0; i < 1; i++) {\n connections.push(new Promise((...pair) => [connection_resolvers[i], connection_rejectors[i]] = pair));\n }\n const parser = (data) => {\n var _a;\n const str = data.toString();\n const url_match = str.match(url_regex);\n url_match && url_resolver(url_match[1]);\n const conn_match = str.match(import_regex.conn_regex);\n const ip_match = str.match(import_regex.ip_regex);\n const location_match = str.match(import_regex.location_regex);\n const index_match = str.match(import_regex.index_regex);\n if (conn_match && ip_match && location_match && index_match) {\n const [, id] = conn_match;\n const [, ip] = ip_match;\n const [, location] = location_match;\n const [, idx] = index_match;\n (_a = connection_resolvers[+idx]) == null ? void 0 : _a.call(connection_resolvers, { id, ip, location });\n }\n };\n child.stdout.on(\"data\", parser).on(\"error\", url_rejector);\n child.stderr.on(\"data\", parser).on(\"error\", url_rejector);\n const stop = () => child.kill(\"SIGINT\");\n return { url, connections, child, stop };\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n tunnel\n});\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target, mod));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar service_exports = {};\n__export(service_exports, {\n AlreadyInstalledError: () => AlreadyInstalledError,\n LINUX_SERVICE_PATH: () => LINUX_SERVICE_PATH,\n MACOS_SERVICE_PATH: () => MACOS_SERVICE_PATH,\n NotInstalledError: () => NotInstalledError,\n clean: () => clean,\n current: () => current,\n err: () => err,\n exists: () => exists,\n identifier: () => identifier,\n install: () => install,\n journal: () => journal,\n log: () => log,\n service: () => service,\n service_name: () => service_name,\n uninstall: () => uninstall\n});\nmodule.exports = __toCommonJS(service_exports);\nvar import_node_os = __toESM(require(\"node:os\"));\nvar import_node_fs = __toESM(require(\"node:fs\"));\nvar import_node_child_process = require(\"node:child_process\");\nvar import_constants = require(\"./constants.js\");\nvar import_regex = require(\"./regex.js\");\nconst identifier = \"com.cloudflare.cloudflared\";\nconst service_name = \"cloudflared.service\";\nconst MACOS_SERVICE_PATH = {\n PLIST: is_root() ? `/Library/LaunchDaemons/${identifier}.plist` : `${import_node_os.default.homedir()}/Library/LaunchAgents/${identifier}.plist`,\n OUT: is_root() ? `/Library/Logs/${identifier}.out.log` : `${import_node_os.default.homedir()}/Library/Logs/${identifier}.out.log`,\n ERR: is_root() ? `/Library/Logs/${identifier}.err.log` : `${import_node_os.default.homedir()}/Library/Logs/${identifier}.err.log`\n};\nconst LINUX_SERVICE_PATH = {\n SYSTEMD: `/etc/systemd/system/${service_name}`,\n SERVICE: \"/etc/init.d/cloudflared\",\n SERVICE_OUT: \"/var/log/cloudflared.log\",\n SERVICE_ERR: \"/var/log/cloudflared.err\"\n};\nconst service = { install, uninstall, exists, log, err, current, clean, journal };\nclass AlreadyInstalledError extends Error {\n constructor() {\n super(\"service is already installed\");\n }\n}\nclass NotInstalledError extends Error {\n constructor() {\n super(\"service is not installed\");\n }\n}\nfunction install(token) {\n if (![\"darwin\", \"linux\"].includes(process.platform)) {\n throw new Error(`Not Implemented on platform ${process.platform}`);\n }\n if (exists()) {\n throw new AlreadyInstalledError();\n }\n const args = [\"service\", \"install\"];\n if (token) {\n args.push(token);\n }\n const result = (0, import_node_child_process.spawnSync)(import_constants.bin, args);\n if (result.status !== 0) {\n throw new Error(`service install failed: ${result.stderr.toString()}`);\n }\n}\nfunction uninstall() {\n if (![\"darwin\", \"linux\"].includes(process.platform)) {\n throw new Error(`Not Implemented on platform ${process.platform}`);\n }\n if (!exists()) {\n throw new NotInstalledError();\n }\n const result = (0, import_node_child_process.spawnSync)(import_constants.bin, [\"service\", \"uninstall\"]);\n if (result.status !== 0) {\n throw new Error(`service uninstall failed: ${result.stderr.toString()}`);\n }\n if (process.platform === \"darwin\") {\n import_node_fs.default.rmSync(MACOS_SERVICE_PATH.OUT);\n import_node_fs.default.rmSync(MACOS_SERVICE_PATH.ERR);\n } else if (process.platform === \"linux\" && !is_systemd()) {\n import_node_fs.default.rmSync(LINUX_SERVICE_PATH.SERVICE_OUT);\n import_node_fs.default.rmSync(LINUX_SERVICE_PATH.SERVICE_ERR);\n }\n}\nfunction log() {\n if (!exists()) {\n throw new NotInstalledError();\n }\n if (process.platform === \"darwin\") {\n return import_node_fs.default.readFileSync(MACOS_SERVICE_PATH.OUT, \"utf8\");\n }\n if (process.platform === \"linux\" && !is_systemd()) {\n return import_node_fs.default.readFileSync(LINUX_SERVICE_PATH.SERVICE_OUT, \"utf8\");\n }\n throw new Error(`Not Implemented on platform ${process.platform}`);\n}\nfunction err() {\n if (!exists()) {\n throw new NotInstalledError();\n }\n if (process.platform === \"darwin\") {\n return import_node_fs.default.readFileSync(MACOS_SERVICE_PATH.ERR, \"utf8\");\n }\n if (process.platform === \"linux\" && !is_systemd()) {\n return import_node_fs.default.readFileSync(LINUX_SERVICE_PATH.SERVICE_ERR, \"utf8\");\n }\n throw new Error(`Not Implemented on platform ${process.platform}`);\n}\nfunction journal(n = 300) {\n if (process.platform === \"linux\" && is_systemd()) {\n const args = [\"-u\", service_name, \"-o\", \"cat\", \"-n\", n.toString()];\n return (0, import_node_child_process.spawnSync)(\"journalctl\", args).stdout.toString();\n }\n throw new Error(`Not Implemented on platform ${process.platform}`);\n}\nfunction current() {\n var _a, _b, _c, _d;\n if (![\"darwin\", \"linux\"].includes(process.platform)) {\n throw new Error(`Not Implemented on platform ${process.platform}`);\n }\n if (!exists()) {\n throw new NotInstalledError();\n }\n const log2 = is_systemd() ? journal() : err();\n let tunnelID = \"\";\n let connectorID = \"\";\n const connections = [];\n let metrics = \"\";\n let config = {};\n for (const line of log2.split(\"\\n\")) {\n try {\n if (line.match(import_regex.tunnelID_regex)) {\n tunnelID = ((_a = line.match(import_regex.tunnelID_regex)) == null ? void 0 : _a[1]) ?? \"\";\n } else if (line.match(import_regex.connectorID_regex)) {\n connectorID = ((_b = line.match(import_regex.connectorID_regex)) == null ? void 0 : _b[1]) ?? \"\";\n } else if (line.match(import_regex.conn_regex) && line.match(import_regex.location_regex) && line.match(import_regex.ip_regex) && line.match(import_regex.index_regex)) {\n const [, id] = line.match(import_regex.conn_regex) ?? [];\n const [, location] = line.match(import_regex.location_regex) ?? [];\n const [, ip] = line.match(import_regex.ip_regex) ?? [];\n const [, idx] = line.match(import_regex.index_regex) ?? [];\n connections[parseInt(idx)] = { id, ip, location };\n } else if (line.match(import_regex.disconnect_regex)) {\n const [, idx] = line.match(import_regex.disconnect_regex) ?? [];\n if (parseInt(idx) in connections) {\n connections[parseInt(idx)] = { id: \"\", ip: \"\", location: \"\" };\n }\n } else if (line.match(import_regex.metrics_regex)) {\n metrics = ((_c = line.match(import_regex.metrics_regex)) == null ? void 0 : _c[1]) ?? \"\";\n } else if (line.match(import_regex.config_regex)) {\n config = JSON.parse(((_d = line.match(import_regex.config_regex)) == null ? void 0 : _d[1].replace(/\\\\/g, \"\")) ?? \"{}\");\n }\n } catch (err2) {\n if (process.env.VERBOSE) {\n console.error(\"log parsing failed\", err2);\n }\n }\n }\n return { tunnelID, connectorID, connections, metrics, config };\n}\nfunction clean() {\n if (process.platform !== \"darwin\") {\n throw new Error(`Not Implemented on platform ${process.platform}`);\n }\n if (exists()) {\n throw new AlreadyInstalledError();\n }\n import_node_fs.default.rmSync(MACOS_SERVICE_PATH.OUT, { force: true });\n import_node_fs.default.rmSync(MACOS_SERVICE_PATH.ERR, { force: true });\n}\nfunction exists() {\n if (process.platform === \"darwin\") {\n return import_node_fs.default.existsSync(MACOS_SERVICE_PATH.PLIST);\n } else if (process.platform === \"linux\") {\n return is_systemd() ? import_node_fs.default.existsSync(LINUX_SERVICE_PATH.SYSTEMD) : import_node_fs.default.existsSync(LINUX_SERVICE_PATH.SERVICE);\n }\n throw new Error(`Not Implemented on platform ${process.platform}`);\n}\nfunction is_root() {\n var _a;\n return ((_a = process.getuid) == null ? void 0 : _a.call(process)) === 0;\n}\nfunction is_systemd() {\n return process.platform === \"linux\" && import_node_fs.default.existsSync(\"/run/systemd/system\");\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AlreadyInstalledError,\n LINUX_SERVICE_PATH,\n MACOS_SERVICE_PATH,\n NotInstalledError,\n clean,\n current,\n err,\n exists,\n identifier,\n install,\n journal,\n log,\n service,\n service_name,\n uninstall\n});\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar lib_exports = {};\n__export(lib_exports, {\n AlreadyInstalledError: () => import_service.AlreadyInstalledError,\n MACOS_SERVICE_PATH: () => import_service.MACOS_SERVICE_PATH,\n NotInstalledError: () => import_service.NotInstalledError,\n bin: () => import_constants.bin,\n identifier: () => import_service.identifier,\n install: () => import_install.install,\n service: () => import_service.service,\n tunnel: () => import_tunnel.tunnel\n});\nmodule.exports = __toCommonJS(lib_exports);\nvar import_constants = require(\"./constants.js\");\nvar import_install = require(\"./install.js\");\nvar import_tunnel = require(\"./tunnel.js\");\nvar import_service = require(\"./service.js\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n AlreadyInstalledError,\n MACOS_SERVICE_PATH,\n NotInstalledError,\n bin,\n identifier,\n install,\n service,\n tunnel\n});\n","export { dev } from './dev.js';\n","import { createVeloCLIServer } from '@wix/editor-velo-cli-comm-api';\nimport { openBrowser } from '@wix/user-browser';\nimport { asyncExitHook } from 'exit-hook';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { ErrorViewer } from '@wix/cli-error-reporting';\nimport { writeCrashReport } from '@wix/cli-debug-log';\nimport { getDebugLogFilePath } from '@wix/cli-core-definitions';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { createElement } from 'react';\nimport { renderSync } from '@wix/cli-ui-kit';\nimport { createHttpClient, isHttpError } from '@wix/cli-http-client';\nimport type { Connection } from '@wix/cli-tunnel';\nimport { TunnelClient, launchTunnel } from '@wix/cli-tunnel';\nimport { getDevEditorBaseUrl } from '../environment.js';\nimport { createMutableGridApp } from '../gridapp/createGridApp.js';\nimport { startGridAppUpdater } from '../gridapp/startGridAppUpdater.js';\nimport { KeyWatcher } from '../key-watcher.js';\nimport type { ProjectModel } from '../model.js';\nimport { saveProjectModel } from '../model.js';\nimport { createLogger } from '../logger.js';\nimport { sitesBiEvents } from '../bi.js';\nimport { createI18nT } from '../i18n.js';\nimport { authenticate } from '../authentication.js';\nimport { syncAllToRevision } from './sync-all-to-revision.js';\n\nexport async function dev(\n initialModel: ProjectModel,\n { biLogger, errorReporter }: CommandServices,\n {\n https = false,\n tunnel: useTunnel = false,\n }: {\n https?: boolean;\n tunnel?: boolean;\n }\n) {\n let model = initialModel;\n const authState = await authenticate({\n metaSiteId: model.metaSiteId,\n biLogger,\n errorReporter,\n });\n\n const t = createI18nT();\n const logger = createLogger({ t });\n const biEvents = sitesBiEvents(biLogger);\n\n const server = createVeloCLIServer({ https });\n\n let gridAppId: string;\n try {\n gridAppId = await createMutableGridApp(model.projectFolder, {\n authState,\n });\n } catch (error) {\n const message = isHttpError(error) && error.response?.data?.message;\n\n throw new CliError({\n code: CliErrorCode.FailedToCreateGridApp({\n error: message,\n }),\n cause: error,\n });\n }\n\n await syncAllToRevision(model, { authState }, logger);\n\n const { close } = startGridAppUpdater(\n model,\n gridAppId,\n {\n authState,\n onError(error) {\n logger.logNewLine();\n errorReporter.reportError(error);\n writeCrashReport(getDebugLogFilePath(model.projectFolder), error);\n renderSync(createElement(ErrorViewer, { error }));\n },\n },\n logger,\n biEvents\n );\n\n const onServerDisconnected = (devEditorUrl: string) => {\n const message = logger.logNoOpenedTab(devEditorUrl);\n biEvents.messageDisplayed({ model, message });\n };\n\n const onSyncDevEditorChanges = async (revision: string) => {\n if (revision !== model.revision) {\n const newModel = { ...model, revision };\n\n await saveProjectModel(newModel);\n const message = logger.logUpdatedLocalCodeToRevision({\n revision: newModel.revision,\n });\n biEvents.messageDisplayed({ message, model });\n\n await syncAllToRevision(newModel, { authState }, logger);\n\n model = newModel;\n }\n };\n\n const openLocalEditor = async (serverPort: number) => {\n biEvents.userResponse({\n action: 'Browser opened',\n message: 'Opening the Local Editor',\n model,\n });\n\n const devEditorUrl = getDevEditorUrl(serverPort);\n\n if (https) {\n await openBrowser(new URL(`https://localhost:${serverPort}`).href);\n } else {\n await openBrowser(devEditorUrl);\n }\n };\n\n let keyWatcher: KeyWatcher | undefined;\n let tunnel: Connection | undefined;\n\n const getDevEditorUrl = (serverPort: number) => {\n const url = new URL(model.metaSiteId, getDevEditorBaseUrl());\n\n if (tunnel) {\n url.searchParams.append('localEditorDestination', tunnel.domain);\n } else {\n url.searchParams.append('localPort', serverPort.toString());\n }\n\n url.searchParams.append('secureSocket', https.toString());\n\n return url.toString();\n };\n\n try {\n const { port: serverPort } = await server.serve(gridAppId, {\n getDevEditorUrl,\n });\n\n if (useTunnel) {\n const httpClient = createHttpClient({\n type: 'backoffice',\n getAppToken: authState.getAccessToken,\n });\n const tunnelClient = new TunnelClient(httpClient);\n tunnel = await launchTunnel(serverPort, tunnelClient);\n }\n\n const devEditorUrl = getDevEditorUrl(serverPort);\n\n server.on('disconnected', () => onServerDisconnected(devEditorUrl));\n server.on('syncDevEditorChanges', onSyncDevEditorChanges);\n\n keyWatcher = new KeyWatcher();\n\n logger.logOpeningBrowser(https);\n\n await openLocalEditor(serverPort);\n const { ctrlCPromise } = keyWatcher.watch();\n keyWatcher.on('e', () => openLocalEditor(serverPort));\n\n asyncExitHook(\n async () => {\n await server.close();\n tunnel?.close();\n },\n { wait: 500 }\n );\n await ctrlCPromise;\n } finally {\n keyWatcher?.unwatch();\n await Promise.all([server.close(), close(), tunnel?.close()]);\n }\n}\n","import process from 'node:process';\n\nconst asyncCallbacks = new Set();\nconst callbacks = new Set();\n\nlet isCalled = false;\nlet isRegistered = false;\n\nasync function exit(shouldManuallyExit, isSynchronous, signal) {\n\tif (isCalled) {\n\t\treturn;\n\t}\n\n\tisCalled = true;\n\n\tif (asyncCallbacks.size > 0 && isSynchronous) {\n\t\tconsole.error([\n\t\t\t'SYNCHRONOUS TERMINATION NOTICE:',\n\t\t\t'When explicitly exiting the process via process.exit or via a parent process,',\n\t\t\t'asynchronous tasks in your exitHooks will not run. Either remove these tasks,',\n\t\t\t'use gracefulExit() instead of process.exit(), or ensure your parent process',\n\t\t\t'sends a SIGINT to the process running this code.',\n\t\t].join(' '));\n\t}\n\n\tconst exitCode = 128 + signal;\n\n\tconst done = (force = false) => {\n\t\tif (force === true || shouldManuallyExit === true) {\n\t\t\tprocess.exit(exitCode); // eslint-disable-line unicorn/no-process-exit\n\t\t}\n\t};\n\n\tfor (const callback of callbacks) {\n\t\tcallback(exitCode);\n\t}\n\n\tif (isSynchronous) {\n\t\tdone();\n\t\treturn;\n\t}\n\n\tconst promises = [];\n\tlet forceAfter = 0;\n\tfor (const [callback, wait] of asyncCallbacks) {\n\t\tforceAfter = Math.max(forceAfter, wait);\n\t\tpromises.push(Promise.resolve(callback(exitCode)));\n\t}\n\n\t// Force exit if we exceeded our wait value\n\tconst asyncTimer = setTimeout(() => {\n\t\tdone(true);\n\t}, forceAfter);\n\n\tawait Promise.all(promises);\n\tclearTimeout(asyncTimer);\n\tdone();\n}\n\nfunction addHook(options) {\n\tconst {onExit, wait, isSynchronous} = options;\n\tconst asyncCallbackConfig = [onExit, wait];\n\n\tif (isSynchronous) {\n\t\tcallbacks.add(onExit);\n\t} else {\n\t\tasyncCallbacks.add(asyncCallbackConfig);\n\t}\n\n\tif (!isRegistered) {\n\t\tisRegistered = true;\n\n\t\t// Exit cases that support asynchronous handling\n\t\tprocess.once('beforeExit', exit.bind(undefined, true, false, -128));\n\t\tprocess.once('SIGINT', exit.bind(undefined, true, false, 2));\n\t\tprocess.once('SIGTERM', exit.bind(undefined, true, false, 15));\n\n\t\t// Explicit exit events. Calling will force an immediate exit and run all\n\t\t// synchronous hooks. Explicit exits must not extend the node process\n\t\t// artificially. Will log errors if asynchronous calls exist.\n\t\tprocess.once('exit', exit.bind(undefined, false, true, 0));\n\n\t\t// PM2 Cluster shutdown message. Caught to support async handlers with pm2,\n\t\t// needed because explicitly calling process.exit() doesn't trigger the\n\t\t// beforeExit event, and the exit event cannot support async handlers,\n\t\t// since the event loop is never called after it.\n\t\tprocess.on('message', message => {\n\t\t\tif (message === 'shutdown') {\n\t\t\t\texit(true, true, -128);\n\t\t\t}\n\t\t});\n\t}\n\n\treturn () => {\n\t\tif (isSynchronous) {\n\t\t\tcallbacks.delete(onExit);\n\t\t} else {\n\t\t\tasyncCallbacks.delete(asyncCallbackConfig);\n\t\t}\n\t};\n}\n\nexport default function exitHook(onExit) {\n\tif (typeof onExit !== 'function') {\n\t\tthrow new TypeError('onExit must be a function');\n\t}\n\n\treturn addHook({\n\t\tonExit,\n\t\tisSynchronous: true,\n\t});\n}\n\nexport function asyncExitHook(onExit, options = {}) {\n\tif (typeof onExit !== 'function') {\n\t\tthrow new TypeError('onExit must be a function');\n\t}\n\n\tif (!(typeof options.wait === 'number' && options.wait > 0)) {\n\t\tthrow new TypeError('wait must be set to a positive numeric value');\n\t}\n\n\treturn addHook({\n\t\tonExit,\n\t\twait: options.wait,\n\t\tisSynchronous: false,\n\t});\n}\n\nexport function gracefulExit(signal = 0) {\n\texit(true, false, -128 + signal);\n}\n","export { useTunnel } from './useTunnel.js';\nexport { launchTunnel } from './tunnel.js';\nexport { TunnelClient } from './client.js';\nexport type { Connection } from './tunnel.js';\n","import { execa } from 'execa';\nimport { pathExists } from '@wix/cli-fs';\nimport { dirname } from 'node:path';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { bin, install } from 'cloudflared';\nimport type { TunnelClient } from './client.js';\n\nexport interface Connection {\n close: () => void;\n domain: string;\n}\n\nexport async function launchTunnel(\n port: number,\n tunnelClient: TunnelClient\n): Promise<Connection> {\n const { localTunnel } = getTestOverrides();\n\n if (!localTunnel && !(await pathExists(bin))) {\n try {\n await install(bin);\n } catch (e) {\n const err = e as NodeJS.ErrnoException;\n if (e instanceof Error && err.code === 'EACCES') {\n throw new CliError({\n code: CliErrorCode.FailedInstallCloudflareNoAccess({\n path: dirname(err.path!),\n }),\n cause: e,\n });\n }\n throw e;\n }\n }\n\n const tunnel = await tunnelClient.createTunnel({ port });\n const domain = `http${localTunnel ? '' : 's'}://${tunnel.domain}`;\n\n const createTunnelPromise = new Promise<Connection>((resolve, reject) => {\n const tunnelProcess = localTunnel\n ? execa('echo', [tunnel.domain, tunnel.token], { detached: true })\n : execa(bin, ['tunnel', 'run', '--token', tunnel.token]);\n\n const close = () => {\n tunnelProcess.kill();\n };\n\n const listener = async (data: Buffer) => {\n const output = data.toString();\n const match = output.match(tunnel.domain)?.[0];\n\n if (match) {\n resolve({\n domain,\n close,\n });\n }\n };\n\n tunnelProcess.stderr?.on('data', listener);\n tunnelProcess.stdout?.on('data', listener);\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tunnelProcess.on('error', (err) => {\n reject(err);\n });\n });\n\n return {\n domain,\n close: async () => {\n const tunnel = await createTunnelPromise;\n return tunnel.close();\n },\n };\n}\n","import type { HttpClient } from '@wix/cli-http-client';\nimport type { Options } from 'p-retry';\nimport pRetry from 'p-retry';\nimport {\n createTunnel,\n deleteTunnel,\n} from '@wix/ambassador-apps-hosting-v1-deployment/http';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { createTunnelSchema } from './schemas.js';\n\nexport class TunnelClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n public createTunnel = async ({ port }: { port: number }) => {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(createTunnel({ port })),\n this.retryOptions\n );\n\n return createTunnelSchema.parse(data);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToCreateTunnel(),\n cause: error,\n });\n }\n };\n\n public deleteTunnel = async (tunnelId: string) => {\n try {\n await pRetry(\n () => this.httpClient.request(deleteTunnel({ id: tunnelId })),\n this.retryOptions\n );\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToDeleteTunnel(),\n cause: error,\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const createTunnelSchema = z.object({\n id: z.string(),\n token: z.string(),\n domain: z.string(),\n});\n","import { getTestOverrides } from '@wix/cli-test-overrides';\n\nconst DEV_EDITOR_BASE_URL = 'https://wix.com/editor/';\n\nexport function getDevEditorBaseUrl(): string {\n return getTestOverrides().devEditorBaseUrl ?? DEV_EDITOR_BASE_URL;\n}\n","import type { AuthState } from '@wix/cli-auth';\nimport { createApp } from '@wix/ambassador-velo-apps-v1-app/http';\nimport type {\n App,\n CreateAppRequest,\n} from '@wix/ambassador-velo-apps-v1-app/types';\nimport { AppType } from '@wix/ambassador-velo-apps-v1-app/types';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { httpRequest } from '../http-request.js';\nimport { catchFilesMaxSizeError } from './error-handlers/maxFileSizeErrorHandler.js';\nimport { loadProjectGridAppContent } from './loadProjectGridAppContent.js';\n\nasync function createAppWithParams(\n params: CreateAppRequest,\n opts: {\n authState: AuthState;\n }\n): Promise<string> {\n let app: App | undefined;\n\n try {\n const response = await httpRequest(\n { type: 'code', authState: opts.authState },\n createApp(params)\n );\n app = response.data.app;\n } catch (err) {\n catchFilesMaxSizeError(err, params.content?.files);\n\n throw err;\n }\n\n if (!app?.id) {\n throw new CliError({\n code: CliErrorCode.InvalidCreateAppResponse(),\n info: { app },\n cause: null,\n });\n }\n\n return app.id;\n}\n\nexport async function createMutableGridApp(\n projectFolder: string,\n opts: {\n authState: AuthState;\n }\n) {\n const content = await loadProjectGridAppContent(projectFolder);\n\n return createAppWithParams(\n {\n app: {\n mutable: true,\n appType: AppType.VELO_ISOLATED,\n },\n content,\n },\n opts\n );\n}\n","import type { File } from '@wix/ambassador-velo-apps-v1-app/types';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { extractHttpError } from '@wix/cli-http-client';\n\nexport function catchFilesMaxSizeError(err: unknown, files: File[] = []) {\n if (!files.length) {\n return;\n }\n\n const httpError = extractHttpError(err);\n\n if (!httpError) {\n return;\n }\n\n const filesMaxSizeRawViolations =\n httpError.response?.data?.details?.validationError?.fieldViolations?.filter(\n (v: { violatedRule: string }) => v.violatedRule === 'MAX_LENGTH'\n );\n\n if (!filesMaxSizeRawViolations?.length) {\n return;\n }\n\n const maxSizeViolationsData = tryExtractMaxSizeViolationMetadata(\n filesMaxSizeRawViolations\n );\n\n throw new CliError({\n code: CliErrorCode.GridAppFilesMaxLengthExceeded({\n maxSizeViolationsData,\n filePaths: files.map((f) => f.path ?? '[unknown file path]'),\n }),\n cause: httpError,\n });\n}\n\nfunction tryExtractMaxSizeViolationMetadata(\n filesMaxSizeViolations: Array<{ field: string; description: string }>\n) {\n const fileIndexRegex = /\\[(?<fileIndex>\\d+)\\].content/;\n const expectedAndReceivedSizeRegex =\n /has size (?<receivedSize>\\d+), expected (?<expectedSize>\\d+) or less/;\n const violationsData: {\n expectedSize?: number;\n files: Array<{ fileIndex: number; receivedSize: number }>;\n } = {\n expectedSize: undefined,\n files: [],\n };\n\n for (const filesMaxSizeViolation of filesMaxSizeViolations) {\n const fileIndexMatchResult = fileIndexRegex.exec(\n filesMaxSizeViolation.field\n );\n const expectedAndReceivedSizeMatchResult =\n expectedAndReceivedSizeRegex.exec(filesMaxSizeViolation.description);\n\n if (\n !(\n fileIndexMatchResult?.groups?.fileIndex &&\n expectedAndReceivedSizeMatchResult?.groups?.receivedSize &&\n expectedAndReceivedSizeMatchResult.groups.expectedSize\n )\n ) {\n return null;\n }\n\n violationsData.expectedSize ??= Math.trunc(\n parseInt(expectedAndReceivedSizeMatchResult.groups.expectedSize, 10) /\n 1000\n );\n\n violationsData.files.push({\n receivedSize: Math.trunc(\n parseInt(expectedAndReceivedSizeMatchResult.groups.receivedSize, 10) /\n 1000\n ),\n fileIndex: parseInt(fileIndexMatchResult.groups.fileIndex, 10),\n });\n }\n\n return violationsData;\n}\n","import { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport type { AuthState } from '@wix/cli-auth';\nimport { updateFiles } from '@wix/ambassador-velo-ide-v1-gridapp-filestructure/http';\nimport { GridAppLayout } from '@wix/ambassador-velo-ide-v1-gridapp-filestructure/types';\nimport { getSourceFolder } from '@wix/velo-github-layout-definitions';\nimport { watch } from 'chokidar';\nimport { debounceQueue } from '@wix/debounce-queue';\nimport pLimit from 'p-limit';\nimport normalizePath from 'normalize-path';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { httpRequest } from '../http-request.js';\nimport type { ProjectModel } from '../model.js';\nimport type { Logger } from '../logger.js';\nimport type { SitesBiEvents } from '../bi.js';\nimport { catchFilesMaxSizeError } from './error-handlers/maxFileSizeErrorHandler.js';\n\ntype ChokidarEventParams = [\n 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n string,\n];\n\nconst WATCH_FS_EVENTS_DEBOUNCE_TIME = 1000;\n\nconst getSectionName = (path: string) => {\n if (path.startsWith('src/pages')) {\n return 'public';\n }\n if (path.startsWith('src/backend')) {\n return 'backend';\n }\n return 'other';\n};\n\nexport function startGridAppUpdater(\n model: ProjectModel,\n gridAppId: string,\n opts: {\n onError: (e: CliError) => void;\n authState: AuthState;\n },\n logger: Logger,\n biEvents: SitesBiEvents\n) {\n const { projectFolder } = model;\n const limit = pLimit(1);\n\n const watcher = watch(getSourceFolder(projectFolder), {\n disableGlobbing: true,\n cwd: projectFolder,\n ignoreInitial: true,\n })\n .on(\n 'all',\n debounceQueue(async (events: ChokidarEventParams[]) => {\n await limit(async () => {\n const logSynced = logger.logSyncingLocalCode();\n const { added, changed, removed } =\n normalizeChokidarBatchedEvents(events);\n const addedArray = Array.from(added.values()).map((path) => ({\n path,\n type: 'create',\n }));\n const changedArray = Array.from(changed.values()).map((path) => ({\n path,\n type: 'update',\n }));\n const removedArray = Array.from(removed.values()).map((path) => ({\n path,\n type: 'delete',\n }));\n\n for (const val of [...addedArray, ...changedArray, ...removedArray]) {\n biEvents.file({\n model,\n action: val.type as 'create' | 'update' | 'delete',\n path: val.path,\n oldPath: '',\n sectionName: getSectionName(val.path),\n });\n if (val.type === 'update') {\n biEvents.codeChanged(model, val.path);\n }\n }\n\n try {\n await writeFiles({\n filesToUpdate: await Promise.all(\n addedArray.concat(changedArray).map(async (val) => ({\n path: normalizePath(val.path),\n content: await readFile(\n join(projectFolder, val.path),\n 'utf8'\n ),\n }))\n ),\n removedArray,\n gridAppId,\n authState: opts.authState,\n });\n\n const message = logSynced.success();\n biEvents.messageDisplayed({ message, model });\n biEvents.readyForReloadAfterCodeChanged(model);\n } catch (e) {\n logSynced.fail();\n const error = new CliError({\n code: CliErrorCode.GridAppFailedToUpdateFiles(),\n cause: e,\n info: {\n added,\n changed,\n removed,\n },\n });\n opts.onError(error);\n }\n });\n }, WATCH_FS_EVENTS_DEBOUNCE_TIME)\n )\n .on('error', (e) => {\n const error = new CliError({\n code: CliErrorCode.FailedToWatchFiles(),\n cause: e,\n });\n\n opts.onError(error);\n });\n\n return { close: () => watcher.close() };\n}\n\nfunction normalizeChokidarBatchedEvents(events: ChokidarEventParams[]) {\n return events.reduce(\n (result, [eventType, filePath]) => {\n switch (eventType) {\n case 'add': {\n result.added.add(filePath);\n break;\n }\n case 'change': {\n result.changed.add(filePath);\n break;\n }\n case 'unlink': {\n result.added.delete(filePath);\n result.changed.delete(filePath);\n result.removed.add(filePath);\n break;\n }\n case 'unlinkDir': {\n const filePathAsDir = filePath.endsWith('/')\n ? filePath\n : `${filePath}/`;\n for (const filePath of result.added) {\n if (filePath.startsWith(filePathAsDir)) {\n result.added.delete(filePath);\n }\n }\n for (const filePath of result.changed) {\n if (filePath.startsWith(filePathAsDir)) {\n result.changed.delete(filePath);\n }\n }\n result.removed.add(filePath);\n break;\n }\n case 'addDir': {\n break;\n }\n }\n return result;\n },\n {\n added: new Set<string>(),\n changed: new Set<string>(),\n removed: new Set<string>(),\n }\n );\n}\n\nasync function writeFiles({\n filesToUpdate,\n removedArray,\n gridAppId,\n authState,\n}: {\n filesToUpdate: Array<{ path: string; content: string }>;\n removedArray: Array<{ path: string; type: string }>;\n gridAppId: string;\n authState: AuthState;\n}) {\n try {\n await httpRequest(\n {\n type: 'code',\n authState,\n },\n updateFiles({\n gridAppId,\n layout: GridAppLayout.GITHUB,\n filesToUpdate,\n ignoreForbiddenPaths: true,\n pathsToDelete: removedArray.map((val) => val.path),\n })\n );\n } catch (err) {\n catchFilesMaxSizeError(err, filesToUpdate);\n throw err;\n }\n}\n","import readline from 'node:readline';\nimport { stdin } from 'node:process';\n\ninterface Key {\n ctrl: boolean;\n name: string;\n sequence: string;\n meta: boolean;\n shift: boolean;\n}\n\ntype Callback = (key: Key) => void;\nexport class KeyWatcher {\n private actions = new Map<string, Callback>();\n\n private watchExitProcess() {\n return new Promise<void>((resolve) => {\n this.on('c', (key) => {\n if (key.ctrl) {\n resolve();\n }\n });\n });\n }\n\n on(key: string, callback: Callback) {\n this.actions.set(key, callback);\n }\n\n watch() {\n const rl = readline.createInterface(stdin);\n\n readline.emitKeypressEvents(stdin, rl);\n\n if (stdin.isTTY) {\n // This is required since in test we don't have a terminal and setRawMode is undefined\n stdin.setRawMode(true);\n stdin.setEncoding('utf8');\n }\n\n stdin.on('keypress', this.handleKeyPress);\n\n return {\n ctrlCPromise: this.watchExitProcess(),\n };\n }\n\n unwatch() {\n if (stdin.isTTY) {\n // This is required since in test we don't have a terminal and setRawMode is undefined\n stdin.setRawMode(false);\n }\n stdin.off('keypress', this.handleKeyPress);\n stdin.pause();\n this.actions.clear();\n }\n\n handleKeyPress = (_: string, key: Key) => {\n this.actions.get(key.name)?.(key);\n };\n}\n","import { randomUUID } from 'node:crypto';\nimport {\n wixCliFileFolderCreatedRenamedDeleted,\n wixCliCliMessageDisplayed,\n wixCliCodeHasBeenChanged,\n wixCliUserResponseToCliMessage,\n wixCliReadyForReloadAfterCodeChange,\n} from '@wix/bi-logger-wix-cli/v2';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport type { ProjectModel } from './model.js';\n\nexport const sitesBiEvents = (biLogger: BiLogger) => ({\n file: ({\n model,\n action,\n path,\n sectionName,\n oldPath,\n }: {\n model: ProjectModel;\n action: 'create' | 'update' | 'delete';\n path: string;\n sectionName: string;\n oldPath: string;\n }) => {\n void biLogger.report(\n wixCliFileFolderCreatedRenamedDeleted({\n action,\n path,\n sectionName,\n oldPath,\n siteRevision: Number(model.revision),\n })\n );\n },\n codeChanged: (model: ProjectModel, fileName: string) => {\n void biLogger.report(\n wixCliCodeHasBeenChanged({\n fileName,\n siteRevision: Number(model.revision),\n })\n );\n },\n readyForReloadAfterCodeChanged: (model: ProjectModel) => {\n void biLogger.report(\n wixCliReadyForReloadAfterCodeChange({\n siteRevision: Number(model.revision),\n })\n );\n },\n messageDisplayed: ({\n message,\n model,\n }: {\n message: string;\n model: ProjectModel;\n }) => {\n void biLogger.report(\n wixCliCliMessageDisplayed({\n message,\n messageId: randomUUID(),\n siteRevision: Number(model.revision),\n })\n );\n },\n userResponse: ({\n model,\n action,\n message,\n }: {\n model: ProjectModel;\n action: 'Browser opened';\n message: string;\n }) => {\n void biLogger.report(\n wixCliUserResponseToCliMessage({\n action,\n message,\n messageId: randomUUID(),\n siteRevision: Number(model.revision),\n })\n );\n },\n});\n\nexport type SitesBiEvents = ReturnType<typeof sitesBiEvents>;\n","import { rm } from 'node:fs/promises';\nimport type { AuthState } from '@wix/cli-auth';\nimport { writeCrashReport } from '@wix/cli-debug-log';\nimport { getTypesDir } from '@wix/velo-github-layout-definitions';\nimport { getDebugLogFilePath } from '@wix/cli-core-definitions';\nimport type { ProjectModel } from '../model.js';\nimport { syncPages } from '../sources/index.js';\nimport { syncTypesWithAuth } from '../sync-types/index.js';\nimport type { Logger } from '../logger.js';\n\nexport async function syncAllToRevision(\n model: ProjectModel,\n opts: {\n authState: AuthState;\n },\n logger: Logger\n) {\n const logTypesSynced = logger.logSyncingTypesToRevision(model.revision);\n try {\n await syncTypesWithAuth(model, { authState: opts.authState });\n logTypesSynced.success();\n } catch (error) {\n // As a workaround until the types sync can handle large projects, this error is recoverable\n writeCrashReport(getDebugLogFilePath(model.projectFolder), error);\n logTypesSynced.fail();\n await rm(getTypesDir(model.projectFolder), {\n recursive: true,\n force: true,\n }).catch((e: unknown) => {\n writeCrashReport(getDebugLogFilePath(model.projectFolder), e);\n logger.logRecoverableFailureToRemoveTypesDir(e);\n });\n }\n\n const logPagesSynced = logger.logSyncingPagesToRevision(model.revision);\n try {\n await syncPages(model, { authState: opts.authState });\n logPagesSynced.success();\n } catch (error) {\n logPagesSynced.fail();\n throw error;\n }\n}\n","import { readdir } from 'node:fs/promises';\nimport { pagesDiff } from '@wix/ambassador-velo-apps-v1-app/http';\nimport type { PagesDiffRequest } from '@wix/ambassador-velo-apps-v1-app/types';\nimport { GridAppLayout } from '@wix/ambassador-velo-apps-v1-app/types';\nimport {\n getPagesFolder,\n getSourceFolder,\n} from '@wix/velo-github-layout-definitions';\nimport type { AuthState } from '@wix/cli-auth';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { pathExists } from '@wix/cli-fs';\nimport { httpRequest } from '../http-request.js';\nimport type { ProjectModel } from '../model.js';\nimport { createPages, deletePages, renamePages } from './pages-diff.js';\n\nexport async function syncPages(\n model: ProjectModel,\n opts: {\n authState: AuthState;\n }\n): Promise<void> {\n const pagesFolder = getPagesFolder(model.projectFolder);\n\n if (!(await pathExists(pagesFolder))) {\n throw new CliError({\n code: CliErrorCode.NoPagesDirectoryFound({\n srcDir: getSourceFolder(model.projectFolder),\n }),\n cause: null,\n });\n }\n\n const params: PagesDiffRequest = {\n layout: GridAppLayout.GITHUB,\n sourcePagesPaths: await readdir(pagesFolder),\n targetRevision: model.revision,\n };\n const { data } = await httpRequest(\n {\n authState: opts.authState,\n type: 'code',\n },\n pagesDiff(params)\n ).catch((e: unknown) => {\n throw new CliError({\n code: CliErrorCode.FailedToGetPagesDiff(),\n cause: e,\n info: { ...params },\n });\n });\n\n await Promise.all([\n createPages(model.projectFolder, data.pagesDiff?.created ?? []),\n renamePages(model.projectFolder, data.pagesDiff?.renamed ?? []),\n deletePages(model.projectFolder, data.pagesDiff?.deleted ?? []),\n ]);\n}\n","import { join } from 'node:path';\nimport { rm, rename } from 'node:fs/promises';\nimport type {\n NewPage,\n RenamedPage,\n PageId,\n} from '@wix/ambassador-velo-apps-v1-app/types';\nimport { pathExists, outputFile } from '@wix/cli-fs';\n\nexport async function createPages(\n projectFolder: string,\n pages: NewPage[]\n): Promise<void> {\n await Promise.all(\n pages.map((page) => {\n if (!page.pageId?.path || !page.content) {\n return Promise.resolve();\n }\n\n return outputFile(join(projectFolder, page.pageId.path), page.content);\n })\n );\n}\n\nexport async function renamePages(\n projectFolder: string,\n pages: RenamedPage[]\n): Promise<void> {\n await Promise.all(\n pages.map(async (page) => {\n if (!page.sourcePath?.path || !page.targetPath?.path) {\n return;\n }\n\n const sourcePath = join(projectFolder, page.sourcePath.path);\n const targetPath = join(projectFolder, page.targetPath.path);\n\n if (await pathExists(targetPath)) {\n return rm(sourcePath, { force: true });\n }\n\n return rename(sourcePath, targetPath);\n })\n );\n}\n\nexport async function deletePages(\n projectFolder: string,\n pages: PageId[]\n): Promise<void> {\n await Promise.all(\n pages.map((page) => {\n if (!page.path) {\n return Promise.resolve();\n }\n\n return rm(join(projectFolder, page.path), { force: true });\n })\n );\n}\n"],"mappings":"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","names":["__toESM","bin","import_node_path","__toESM","install","import_node_path","tunnel","__toESM","AlreadyInstalledError","MACOS_SERVICE_PATH","NotInstalledError","identifier","install","service","import_tunnel","process","tunnel","_a","normalizePath","filePath","rm","join","join","GridAppLayout","rm","tunnel"]}