@wix/cli 1.1.56 → 1.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/build/{DevCommand-UW724BPF.js → DevCommand-32POU3TX.js} +13 -14
  2. package/build/{DevCommand-UW724BPF.js.map → DevCommand-32POU3TX.js.map} +1 -1
  3. package/build/{DevCommand-KMBUXAPT.js → DevCommand-WT3DJON6.js} +76 -68
  4. package/build/DevCommand-WT3DJON6.js.map +1 -0
  5. package/build/{LoginCommand-O4FKLPWK.js → LoginCommand-WRCKEWCE.js} +11 -11
  6. package/build/{LogoutCommand-KMWHOQSC.js → LogoutCommand-BYWH527O.js} +7 -7
  7. package/build/{WhoamiCommand-VV6U2M2K.js → WhoamiCommand-WKXZCRSJ.js} +4 -4
  8. package/build/{chunk-VO6LL5ZT.js → chunk-24HYCAK2.js} +2 -2
  9. package/build/{chunk-GOTVWNXA.js → chunk-3KIPOGXI.js} +4 -4
  10. package/build/{chunk-7M5ZGODY.js → chunk-3R4OZ46Z.js} +2 -2
  11. package/build/{chunk-3TWSKTSG.js → chunk-4S2ZMDZM.js} +6 -6
  12. package/build/{chunk-NEB7POM3.js → chunk-53UCEZFU.js} +2 -1
  13. package/build/chunk-53UCEZFU.js.map +1 -0
  14. package/build/{chunk-3UYDT5ZT.js → chunk-5EXKEGN6.js} +399 -80
  15. package/build/chunk-5EXKEGN6.js.map +1 -0
  16. package/build/{chunk-ZS2473DH.js → chunk-6F2RSXHN.js} +9 -314
  17. package/build/chunk-6F2RSXHN.js.map +1 -0
  18. package/build/{chunk-5LKWJCKW.js → chunk-BQ6AW6QJ.js} +5 -5
  19. package/build/{chunk-GH2E2TEQ.js → chunk-CQHI53JJ.js} +54 -7
  20. package/build/chunk-CQHI53JJ.js.map +1 -0
  21. package/build/chunk-IFQQVSBK.js +916 -0
  22. package/build/chunk-IFQQVSBK.js.map +1 -0
  23. package/build/{chunk-66PG2F54.js → chunk-IRR7PD4K.js} +3 -3
  24. package/build/{chunk-GXCSUYZU.js → chunk-JMUOY2KY.js} +3 -4
  25. package/build/chunk-JMUOY2KY.js.map +1 -0
  26. package/build/{chunk-CPDU7PKL.js → chunk-KLWKSELB.js} +5 -5
  27. package/build/{chunk-ZPPKJBJT.js → chunk-KOCJZPLK.js} +2 -2
  28. package/build/{chunk-7IO7SVY6.js → chunk-KT54TL6D.js} +5 -5
  29. package/build/{chunk-5EDABLPV.js → chunk-LC2NSYSB.js} +12 -17
  30. package/build/chunk-LC2NSYSB.js.map +1 -0
  31. package/build/{chunk-M4NGCYAG.js → chunk-LOJ4G3VD.js} +2 -2
  32. package/build/{chunk-DJCIQS36.js → chunk-MPSJ2YGQ.js} +3 -3
  33. package/build/{chunk-DYIK4YH5.js → chunk-NK4U57KS.js} +4 -4
  34. package/build/{chunk-5PNAZQGU.js → chunk-OIH7DI4E.js} +30 -42
  35. package/build/{chunk-5PNAZQGU.js.map → chunk-OIH7DI4E.js.map} +1 -1
  36. package/build/{chunk-GPZPN63O.js → chunk-Q5WMVJRK.js} +2 -2
  37. package/build/{chunk-XKFU2BID.js → chunk-RJBLVNKS.js} +6 -6
  38. package/build/{chunk-7DJVGV7H.js → chunk-UQXJQCG3.js} +2 -2
  39. package/build/{chunk-7LHODQ3J.js → chunk-WRMFR7CU.js} +6 -6
  40. package/build/{chunk-VDSGAA3D.js → chunk-WYEQRRT2.js} +24 -3
  41. package/build/chunk-WYEQRRT2.js.map +1 -0
  42. package/build/{chunk-JH6KT73W.js → chunk-WZEZZAE4.js} +5 -5
  43. package/build/{chunk-AMEYK6DR.js → chunk-X7GWN4JO.js} +2 -2
  44. package/build/{chunk-VEDYEGSD.js → chunk-ZOWPPCOU.js} +3 -3
  45. package/build/{dev-SOVLJFOU.js → dev-M7P6GT7S.js} +24 -86
  46. package/build/dev-M7P6GT7S.js.map +1 -0
  47. package/build/index.js +376 -27
  48. package/build/index.js.map +1 -1
  49. package/build/{install-YBL67KU7.js → install-SX7OQQGW.js} +17 -19
  50. package/build/{install-YBL67KU7.js.map → install-SX7OQQGW.js.map} +1 -1
  51. package/build/{preview-H3FKN7RS.js → preview-7WGCS2DK.js} +18 -20
  52. package/build/{preview-H3FKN7RS.js.map → preview-7WGCS2DK.js.map} +1 -1
  53. package/build/{publish-3Q3XWGUY.js → publish-U7Y5KNMR.js} +18 -20
  54. package/build/{publish-3Q3XWGUY.js.map → publish-U7Y5KNMR.js.map} +1 -1
  55. package/build/{render-command-3PQMENAU.js → render-command-6GZ7MNO5.js} +11 -11
  56. package/build/{render-command-BCSOTFBB.js → render-command-P4B7B4WB.js} +11 -11
  57. package/build/{render-command-GEZFKQLP.js → render-command-TJTVTOHT.js} +10 -10
  58. package/build/{run-command-YNCZR65O.js → run-command-ZLQ3PKCS.js} +8 -8
  59. package/build/{src-DMDBLATB.js → src-BMV74WCO.js} +3 -5
  60. package/build/{src-QC4COOON.js → src-I6QIZSAX.js} +6 -6
  61. package/build/{src-MLQVMO4G.js → src-JGFI4IQH.js} +17 -17
  62. package/build/{src-QML4K6HI.js → src-Q3X5WF65.js} +5 -5
  63. package/build/{src-NRGIGSNZ.js → src-WBDWTVY2.js} +7 -7
  64. package/build/{src-ZB5ULVF6.js → src-WKNIYADZ.js} +6 -6
  65. package/build/{sync-types-2Z3FKMXE.js → sync-types-6XPVFG3C.js} +13 -14
  66. package/build/{uninstall-PUGTRDQA.js → uninstall-L6JBTJHG.js} +16 -18
  67. package/build/{uninstall-PUGTRDQA.js.map → uninstall-L6JBTJHG.js.map} +1 -1
  68. package/package.json +2 -3
  69. package/build/DevCommand-KMBUXAPT.js.map +0 -1
  70. package/build/chunk-3UYDT5ZT.js.map +0 -1
  71. package/build/chunk-5EDABLPV.js.map +0 -1
  72. package/build/chunk-7AAFANVT.js +0 -3525
  73. package/build/chunk-7AAFANVT.js.map +0 -1
  74. package/build/chunk-CVEC37T5.js +0 -62
  75. package/build/chunk-CVEC37T5.js.map +0 -1
  76. package/build/chunk-GH2E2TEQ.js.map +0 -1
  77. package/build/chunk-GXCSUYZU.js.map +0 -1
  78. package/build/chunk-NEB7POM3.js.map +0 -1
  79. package/build/chunk-QLGRZABP.js +0 -363
  80. package/build/chunk-QLGRZABP.js.map +0 -1
  81. package/build/chunk-VDSGAA3D.js.map +0 -1
  82. package/build/chunk-ZS2473DH.js.map +0 -1
  83. package/build/dev-SOVLJFOU.js.map +0 -1
  84. /package/build/{LoginCommand-O4FKLPWK.js.map → LoginCommand-WRCKEWCE.js.map} +0 -0
  85. /package/build/{LogoutCommand-KMWHOQSC.js.map → LogoutCommand-BYWH527O.js.map} +0 -0
  86. /package/build/{WhoamiCommand-VV6U2M2K.js.map → WhoamiCommand-WKXZCRSJ.js.map} +0 -0
  87. /package/build/{chunk-VO6LL5ZT.js.map → chunk-24HYCAK2.js.map} +0 -0
  88. /package/build/{chunk-GOTVWNXA.js.map → chunk-3KIPOGXI.js.map} +0 -0
  89. /package/build/{chunk-7M5ZGODY.js.map → chunk-3R4OZ46Z.js.map} +0 -0
  90. /package/build/{chunk-3TWSKTSG.js.map → chunk-4S2ZMDZM.js.map} +0 -0
  91. /package/build/{chunk-5LKWJCKW.js.map → chunk-BQ6AW6QJ.js.map} +0 -0
  92. /package/build/{chunk-66PG2F54.js.map → chunk-IRR7PD4K.js.map} +0 -0
  93. /package/build/{chunk-CPDU7PKL.js.map → chunk-KLWKSELB.js.map} +0 -0
  94. /package/build/{chunk-ZPPKJBJT.js.map → chunk-KOCJZPLK.js.map} +0 -0
  95. /package/build/{chunk-7IO7SVY6.js.map → chunk-KT54TL6D.js.map} +0 -0
  96. /package/build/{chunk-M4NGCYAG.js.map → chunk-LOJ4G3VD.js.map} +0 -0
  97. /package/build/{chunk-DJCIQS36.js.map → chunk-MPSJ2YGQ.js.map} +0 -0
  98. /package/build/{chunk-DYIK4YH5.js.map → chunk-NK4U57KS.js.map} +0 -0
  99. /package/build/{chunk-GPZPN63O.js.map → chunk-Q5WMVJRK.js.map} +0 -0
  100. /package/build/{chunk-XKFU2BID.js.map → chunk-RJBLVNKS.js.map} +0 -0
  101. /package/build/{chunk-7DJVGV7H.js.map → chunk-UQXJQCG3.js.map} +0 -0
  102. /package/build/{chunk-7LHODQ3J.js.map → chunk-WRMFR7CU.js.map} +0 -0
  103. /package/build/{chunk-JH6KT73W.js.map → chunk-WZEZZAE4.js.map} +0 -0
  104. /package/build/{chunk-AMEYK6DR.js.map → chunk-X7GWN4JO.js.map} +0 -0
  105. /package/build/{chunk-VEDYEGSD.js.map → chunk-ZOWPPCOU.js.map} +0 -0
  106. /package/build/{render-command-3PQMENAU.js.map → render-command-6GZ7MNO5.js.map} +0 -0
  107. /package/build/{render-command-BCSOTFBB.js.map → render-command-P4B7B4WB.js.map} +0 -0
  108. /package/build/{render-command-GEZFKQLP.js.map → render-command-TJTVTOHT.js.map} +0 -0
  109. /package/build/{run-command-YNCZR65O.js.map → run-command-ZLQ3PKCS.js.map} +0 -0
  110. /package/build/{src-DMDBLATB.js.map → src-BMV74WCO.js.map} +0 -0
  111. /package/build/{src-QC4COOON.js.map → src-I6QIZSAX.js.map} +0 -0
  112. /package/build/{src-MLQVMO4G.js.map → src-JGFI4IQH.js.map} +0 -0
  113. /package/build/{src-NRGIGSNZ.js.map → src-Q3X5WF65.js.map} +0 -0
  114. /package/build/{src-QML4K6HI.js.map → src-WBDWTVY2.js.map} +0 -0
  115. /package/build/{src-ZB5ULVF6.js.map → src-WKNIYADZ.js.map} +0 -0
  116. /package/build/{sync-types-2Z3FKMXE.js.map → sync-types-6XPVFG3C.js.map} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  ErrorViewer,
7
7
  useBiLogger,
8
8
  useErrorReporter
9
- } from "./chunk-5PNAZQGU.js";
9
+ } from "./chunk-OIH7DI4E.js";
10
10
  import {
11
11
  Box_default,
12
12
  I18nProvider,
@@ -21,7 +21,7 @@ import {
21
21
  useAsyncCallback,
22
22
  useExit,
23
23
  use_input_default
24
- } from "./chunk-3UYDT5ZT.js";
24
+ } from "./chunk-5EXKEGN6.js";
25
25
  import {
26
26
  require_index_node,
27
27
  wixCliLoginEnd,
@@ -32,11 +32,11 @@ import {
32
32
  pathExists,
33
33
  readJson,
34
34
  writeJson
35
- } from "./chunk-VO6LL5ZT.js";
35
+ } from "./chunk-24HYCAK2.js";
36
36
  import {
37
37
  getTestOverrides,
38
38
  z
39
- } from "./chunk-NEB7POM3.js";
39
+ } from "./chunk-53UCEZFU.js";
40
40
  import {
41
41
  CliError,
42
42
  CliErrorCode,
@@ -2867,4 +2867,4 @@ export {
2867
2867
  authenticateWithSiteId,
2868
2868
  isLoggedInToAccount
2869
2869
  };
2870
- //# sourceMappingURL=chunk-JH6KT73W.js.map
2870
+ //# sourceMappingURL=chunk-WZEZZAE4.js.map
@@ -3,7 +3,7 @@ const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  resolveUrl,
5
5
  serializer
6
- } from "./chunk-JH6KT73W.js";
6
+ } from "./chunk-WZEZZAE4.js";
7
7
  import {
8
8
  init_esm_shims
9
9
  } from "./chunk-PYIAC2GK.js";
@@ -179,4 +179,4 @@ export {
179
179
  createApp,
180
180
  deployApp
181
181
  };
182
- //# sourceMappingURL=chunk-AMEYK6DR.js.map
182
+ //# sourceMappingURL=chunk-X7GWN4JO.js.map
@@ -14,10 +14,10 @@ import {
14
14
  } from "./chunk-W423UTD3.js";
15
15
  import {
16
16
  readUserConfig
17
- } from "./chunk-DJCIQS36.js";
17
+ } from "./chunk-MPSJ2YGQ.js";
18
18
  import {
19
19
  getTestOverrides
20
- } from "./chunk-NEB7POM3.js";
20
+ } from "./chunk-53UCEZFU.js";
21
21
  import {
22
22
  isCliError,
23
23
  isCliSystemError
@@ -1281,4 +1281,4 @@ export {
1281
1281
  createBiLogger,
1282
1282
  reportCommandStartEvent
1283
1283
  };
1284
- //# sourceMappingURL=chunk-VEDYEGSD.js.map
1284
+ //# sourceMappingURL=chunk-ZOWPPCOU.js.map
@@ -2,64 +2,63 @@ import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  loadProjectGridAppContent
5
- } from "./chunk-5LKWJCKW.js";
5
+ } from "./chunk-BQ6AW6QJ.js";
6
6
  import {
7
7
  createLogger,
8
8
  httpRequest
9
- } from "./chunk-5EDABLPV.js";
9
+ } from "./chunk-LC2NSYSB.js";
10
10
  import {
11
11
  createI18nT
12
- } from "./chunk-7DJVGV7H.js";
12
+ } from "./chunk-UQXJQCG3.js";
13
13
  import {
14
14
  createVeloCLIServer,
15
+ debounceQueue,
15
16
  require_chokidar
16
- } from "./chunk-VDSGAA3D.js";
17
+ } from "./chunk-WYEQRRT2.js";
17
18
  import {
18
19
  require_normalize_path
19
20
  } from "./chunk-EDFOB3LN.js";
20
21
  import {
21
22
  updateFiles
22
- } from "./chunk-GPZPN63O.js";
23
+ } from "./chunk-Q5WMVJRK.js";
23
24
  import {
24
25
  AppType,
25
26
  GridAppLayout as GridAppLayout2,
26
27
  createApp,
27
28
  pagesDiff
28
- } from "./chunk-AMEYK6DR.js";
29
+ } from "./chunk-X7GWN4JO.js";
29
30
  import {
30
31
  saveProjectModel
31
- } from "./chunk-GOTVWNXA.js";
32
- import "./chunk-7M5ZGODY.js";
33
- import "./chunk-7AAFANVT.js";
32
+ } from "./chunk-3KIPOGXI.js";
33
+ import "./chunk-3R4OZ46Z.js";
34
+ import "./chunk-IFQQVSBK.js";
34
35
  import {
35
36
  syncTypesWithAuth
36
- } from "./chunk-DYIK4YH5.js";
37
+ } from "./chunk-NK4U57KS.js";
37
38
  import {
38
39
  authenticate
39
- } from "./chunk-66PG2F54.js";
40
- import "./chunk-GH2E2TEQ.js";
40
+ } from "./chunk-IRR7PD4K.js";
41
+ import "./chunk-CQHI53JJ.js";
41
42
  import "./chunk-OJHDGJWP.js";
42
43
  import {
43
44
  GridAppLayout
44
45
  } from "./chunk-OUBPZBBH.js";
45
- import "./chunk-CVEC37T5.js";
46
- import "./chunk-QLGRZABP.js";
47
46
  import "./chunk-YXFEXGAH.js";
48
- import "./chunk-VEDYEGSD.js";
47
+ import "./chunk-ZOWPPCOU.js";
49
48
  import {
50
49
  isHttpError,
51
50
  openBrowser,
52
51
  pLimit
53
- } from "./chunk-JH6KT73W.js";
52
+ } from "./chunk-WZEZZAE4.js";
54
53
  import {
55
54
  ErrorViewer,
56
55
  extractHttpError,
57
56
  writeCrashReport
58
- } from "./chunk-5PNAZQGU.js";
57
+ } from "./chunk-OIH7DI4E.js";
59
58
  import {
60
59
  renderSync,
61
60
  require_react
62
- } from "./chunk-3UYDT5ZT.js";
61
+ } from "./chunk-5EXKEGN6.js";
63
62
  import {
64
63
  wixCliCliMessageDisplayed,
65
64
  wixCliCodeHasBeenChanged,
@@ -68,92 +67,32 @@ import {
68
67
  wixCliUserResponseToCliMessage
69
68
  } from "./chunk-W32TRG4E.js";
70
69
  import "./chunk-W423UTD3.js";
71
- import "./chunk-ZS2473DH.js";
70
+ import "./chunk-6F2RSXHN.js";
72
71
  import "./chunk-YU54OBFT.js";
73
72
  import "./chunk-XMTHMR2B.js";
74
- import "./chunk-DJCIQS36.js";
73
+ import "./chunk-MPSJ2YGQ.js";
75
74
  import {
76
75
  getDebugLogFilePath,
77
76
  getPagesFolder,
78
77
  getSourceFolder,
79
78
  getTypesDir
80
- } from "./chunk-M4NGCYAG.js";
79
+ } from "./chunk-LOJ4G3VD.js";
81
80
  import {
82
81
  outputFile,
83
82
  pathExists
84
- } from "./chunk-VO6LL5ZT.js";
83
+ } from "./chunk-24HYCAK2.js";
85
84
  import {
86
85
  getTestOverrides
87
- } from "./chunk-NEB7POM3.js";
86
+ } from "./chunk-53UCEZFU.js";
88
87
  import {
89
88
  CliError,
90
89
  CliErrorCode
91
90
  } from "./chunk-XU2RG4HE.js";
92
91
  import {
93
- __commonJS,
94
92
  __toESM,
95
93
  init_esm_shims
96
94
  } from "./chunk-PYIAC2GK.js";
97
95
 
98
- // ../../node_modules/debounce-queue/index.js
99
- var require_debounce_queue = __commonJS({
100
- "../../node_modules/debounce-queue/index.js"(exports, module) {
101
- "use strict";
102
- init_esm_shims();
103
- var defaultOpts = {
104
- wait: 0,
105
- maxWait: Infinity,
106
- leading: false,
107
- trailing: true
108
- };
109
- var debug = () => {
110
- };
111
- module.exports = debounceQueue2;
112
- function debounceQueue2(func, opts = {}) {
113
- if (typeof func !== "function") {
114
- throw new Error("Required: the function to debounce");
115
- }
116
- if (typeof opts === "number") {
117
- opts = { wait: opts };
118
- }
119
- opts = Object.assign({}, defaultOpts, opts);
120
- const queue = [];
121
- const time = { lastCall: /* @__PURE__ */ new Date(0), lastFlush: /* @__PURE__ */ new Date() };
122
- let timer;
123
- return function debounced(...args) {
124
- clearTimeout(timer);
125
- queue.push(args);
126
- const vars = { now: /* @__PURE__ */ new Date(), ...time };
127
- time.lastCall = vars.now;
128
- vars.sinceLastCall = vars.now - vars.lastCall;
129
- vars.sinceLastFlush = vars.now - vars.lastFlush;
130
- debug("[0] Data:", {
131
- opts,
132
- vars,
133
- [`sinceLastFlush (${vars.sinceLastFlush}) >= (${opts.maxWait}) maxWait`]: vars.sinceLastFlush >= opts.maxWait,
134
- [`sinceLastCall (${vars.sinceLastCall}) >= (${opts.wait}) wait`]: vars.sinceLastCall >= opts.wait,
135
- [`leading (${opts.leading}) && (sinceLastCall >= wait)`]: opts.leading && vars.sinceLastCall >= opts.wait
136
- });
137
- if (vars.sinceLastFlush >= opts.maxWait || opts.leading && vars.sinceLastCall >= opts.wait) {
138
- debug("[1] Calling now");
139
- return func(flush(vars.now, queue));
140
- }
141
- if (opts.trailing !== false) {
142
- debug("[2] Setting timer");
143
- timer = setTimeout(() => {
144
- debug("[3] Timer launching");
145
- return func(flush(vars.now, queue));
146
- }, opts.wait);
147
- }
148
- };
149
- function flush(now = /* @__PURE__ */ new Date(), q = queue) {
150
- time.lastFlush = now;
151
- return q.splice(0, q.length);
152
- }
153
- }
154
- }
155
- });
156
-
157
96
  // ../cli-site-old/src/dev/index.ts
158
97
  init_esm_shims();
159
98
 
@@ -358,7 +297,6 @@ init_esm_shims();
358
297
  import { readFile } from "node:fs/promises";
359
298
  import { join } from "node:path";
360
299
  var import_chokidar = __toESM(require_chokidar(), 1);
361
- var import_debounce_queue = __toESM(require_debounce_queue(), 1);
362
300
  var import_normalize_path = __toESM(require_normalize_path(), 1);
363
301
  var WATCH_FS_EVENTS_DEBOUNCE_TIME = 1e3;
364
302
  var getSectionName = (path) => {
@@ -379,7 +317,7 @@ function startGridAppUpdater(model, gridAppId, opts, logger, biEvents) {
379
317
  ignoreInitial: true
380
318
  }).on(
381
319
  "all",
382
- (0, import_debounce_queue.default)(async (events) => {
320
+ debounceQueue(async (events) => {
383
321
  await limit(async () => {
384
322
  const logSynced = logger.logSyncingLocalCode();
385
323
  const { added, changed, removed } = normalizeChokidarBatchedEvents(events);
@@ -839,4 +777,4 @@ async function dev(initialModel, { biLogger, errorReporter }, {
839
777
  export {
840
778
  dev
841
779
  };
842
- //# sourceMappingURL=dev-SOVLJFOU.js.map
780
+ //# sourceMappingURL=dev-M7P6GT7S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../cli-site-old/src/dev/index.ts","../../cli-site-old/src/dev/dev.ts","../../../node_modules/exit-hook/index.js","../../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":["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 { isHttpError } from '@wix/cli-http-client';\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 }: {\n https?: 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 const getDevEditorUrl = (serverPort: number) => {\n const url = new URL(model.metaSiteId, getDevEditorBaseUrl());\n\n url.searchParams.append('localPort', serverPort.toString());\n url.searchParams.append('secureSocket', https.toString());\n\n return url.toString();\n };\n\n let keyWatcher: KeyWatcher | undefined;\n try {\n const { port: serverPort } = await server.serve(gridAppId, getDevEditorUrl);\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(server.close, { minimumWait: 500 });\n await ctrlCPromise;\n } finally {\n keyWatcher?.unwatch();\n await Promise.all([server.close(), 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, minimumWait, isSynchronous} = options;\n\tconst asyncCallbackConfig = [onExit, minimumWait];\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.minimumWait === 'number' && options.minimumWait > 0)) {\n\t\tthrow new TypeError('minimumWait must be set to a positive numeric value');\n\t}\n\n\treturn addHook({\n\t\tonExit,\n\t\tminimumWait: options.minimumWait,\n\t\tisSynchronous: false,\n\t});\n}\n\nexport function gracefulExit(signal = 0) {\n\texit(true, false, -128 + signal);\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.GridAppFilesMaxLengthExcceeded({\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":["normalizePath","filePath","rm","join","join","GridAppLayout","rm"]}