@wix/cli 1.1.92 → 1.1.93

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 (170) hide show
  1. package/build/{chunk-W7CODLJZ.js → DevCommand-2Z74PQ26.js} +669 -257
  2. package/build/DevCommand-2Z74PQ26.js.map +1 -0
  3. package/build/{DevCommand-PWVR7KPG.js → DevCommand-3VTVFAPC.js} +18 -18
  4. package/build/{DevCommand-DEUDOCGK.js → DevCommand-YA5YZGH4.js} +16 -16
  5. package/build/{EnvPullCommand-IYWK5KBC.js → EnvPullCommand-E575ZY47.js} +10 -10
  6. package/build/EnvRemoveCommand-LRBR7LCQ.js +84 -0
  7. package/build/EnvRemoveCommand-LRBR7LCQ.js.map +1 -0
  8. package/build/{EnvSetCommand-SSNEWXCX.js → EnvSetCommand-TJBFYXCA.js} +10 -10
  9. package/build/{GenerateCommand-PW2OA55C.js → GenerateCommand-NN35PMBQ.js} +230 -391
  10. package/build/GenerateCommand-NN35PMBQ.js.map +1 -0
  11. package/build/{InstallCommand-EUIXWKR2.js → InstallCommand-6HILIMZ4.js} +16 -16
  12. package/build/{LoginCommand-N7VGSH5Y.js → LoginCommand-VYSZKK2R.js} +10 -10
  13. package/build/{LogoutCommand-NXTHVFG5.js → LogoutCommand-K34YBMCM.js} +7 -7
  14. package/build/{PreviewCommand-LPWUUZQG.js → PreviewCommand-G2JIJG5L.js} +18 -18
  15. package/build/{PreviewCommand-JDV4BZ32.js → PreviewCommand-Z5GX6ZNV.js} +20 -20
  16. package/build/{PreviewCommand-BZTD3F7Z.js → PreviewCommand-ZYYGM4BN.js} +12 -12
  17. package/build/{PublishCommand-WF2ZNXFD.js → PublishCommand-VLI7PDXQ.js} +18 -18
  18. package/build/{ReleaseCommand-KYSWC62Q.js → ReleaseCommand-L4Y6BSU6.js} +13 -13
  19. package/build/{UninstallCommand-BABBSOQX.js → UninstallCommand-FSM6ACGS.js} +16 -16
  20. package/build/{WhoamiCommand-JVMX7IEJ.js → WhoamiCommand-HCHXCS52.js} +3 -3
  21. package/build/{chunk-GIEJ7SOR.js → chunk-2WHCRVUO.js} +3 -3
  22. package/build/{chunk-YFBUO3EP.js → chunk-2YWQMCYL.js} +6 -8
  23. package/build/chunk-2YWQMCYL.js.map +1 -0
  24. package/build/{chunk-I4LXL264.js → chunk-4MLVTFYI.js} +3 -3
  25. package/build/{chunk-CMCIM2FR.js → chunk-6F3HZWHI.js} +3 -3
  26. package/build/{chunk-6ZIRLJMJ.js → chunk-6OCBAMM6.js} +3 -3
  27. package/build/{chunk-RJG6WEKO.js → chunk-7X6XM5XU.js} +2 -2
  28. package/build/{chunk-XLGJQZZA.js → chunk-7XY5GJUN.js} +3 -3
  29. package/build/{chunk-5L3ZCEVU.js → chunk-7ZSRRYB6.js} +19 -13
  30. package/build/chunk-7ZSRRYB6.js.map +1 -0
  31. package/build/{chunk-3BDYAFJY.js → chunk-AE3MOKSJ.js} +2 -2
  32. package/build/{chunk-Y3ZAEZF4.js → chunk-AN752YLU.js} +4 -4
  33. package/build/{chunk-Q7E6CZ3C.js → chunk-AO4BFW7M.js} +8 -8
  34. package/build/{chunk-GXTU3764.js → chunk-BADJ5PEM.js} +2 -2
  35. package/build/{chunk-GXTU3764.js.map → chunk-BADJ5PEM.js.map} +1 -1
  36. package/build/{chunk-DUYQZPRH.js → chunk-BGGTVIDX.js} +2 -2
  37. package/build/{chunk-CXFPYQVY.js → chunk-DDIB3H7O.js} +5 -5
  38. package/build/{chunk-M2VJGFDS.js → chunk-DQGJG7WL.js} +2 -2
  39. package/build/{chunk-4B4DIFAD.js → chunk-EMEJMFDS.js} +6 -6
  40. package/build/{chunk-3PSJY5IQ.js → chunk-ENAENA4J.js} +6 -6
  41. package/build/{chunk-45WBL5VF.js → chunk-EWC22ION.js} +5 -5
  42. package/build/{chunk-ISBULSWD.js → chunk-G2JIGUJ7.js} +7 -7
  43. package/build/{chunk-I3MNONAI.js → chunk-GDBFT3UX.js} +2 -2
  44. package/build/{chunk-6MH74EYT.js → chunk-H6EWS6IF.js} +3 -3
  45. package/build/{chunk-JHYR5NET.js → chunk-I4IC4BN2.js} +7 -7
  46. package/build/{chunk-NVW5X3UB.js → chunk-J7LF3I3O.js} +3 -3
  47. package/build/{chunk-F6AKDZEI.js → chunk-M76EZXKQ.js} +58 -5
  48. package/build/chunk-M76EZXKQ.js.map +1 -0
  49. package/build/{chunk-VNWDO45Y.js → chunk-NSL46MKB.js} +4 -2
  50. package/build/{chunk-VNWDO45Y.js.map → chunk-NSL46MKB.js.map} +1 -1
  51. package/build/{chunk-PKZ6J2PV.js → chunk-O6ZDAZFZ.js} +2 -2
  52. package/build/{chunk-ZCKZMMPY.js → chunk-PAM7FLMM.js} +2 -2
  53. package/build/{chunk-3PAHQ4M3.js → chunk-PEYNHLTD.js} +3 -3
  54. package/build/{chunk-6PQJVCVI.js → chunk-PIQXSDTQ.js} +2 -2
  55. package/build/{chunk-KEX4DNHZ.js → chunk-QGNDWQQD.js} +3 -3
  56. package/build/{chunk-YVQDNTNO.js → chunk-SH5WVHLQ.js} +2 -4
  57. package/build/{chunk-W3FB2GVG.js → chunk-TDO7IFO6.js} +6 -3
  58. package/build/chunk-TDO7IFO6.js.map +1 -0
  59. package/build/{chunk-AA5HURS5.js → chunk-UTTRVHIB.js} +3 -3
  60. package/build/{chunk-4O4G7HN2.js → chunk-UVSMDGQY.js} +4 -4
  61. package/build/{chunk-4O4G7HN2.js.map → chunk-UVSMDGQY.js.map} +1 -1
  62. package/build/{chunk-JSW5O26R.js → chunk-VAURDYMG.js} +10 -11
  63. package/build/chunk-VAURDYMG.js.map +1 -0
  64. package/build/{chunk-DXCSR2HI.js → chunk-WPI6K6AK.js} +5 -5
  65. package/build/{chunk-MOBNZ5R6.js → chunk-X73KRU2U.js} +13 -13
  66. package/build/{chunk-RIDZNJ65.js → chunk-XI75OO7W.js} +11 -5
  67. package/build/{chunk-RIDZNJ65.js.map → chunk-XI75OO7W.js.map} +1 -1
  68. package/build/{chunk-VWHAW4FC.js → chunk-ZQD2MXRV.js} +6 -6
  69. package/build/{chunk-TJTGMIZV.js → chunk-ZVMU6EMR.js} +2 -2
  70. package/build/{chunk-EJEDZZSK.js → chunk-ZWJZS7BK.js} +4 -3
  71. package/build/{chunk-EJEDZZSK.js.map → chunk-ZWJZS7BK.js.map} +1 -1
  72. package/build/{chunk-RYKJWCW2.js → chunk-ZZXI3UI4.js} +2 -2
  73. package/build/{dev-T5EAJRHG.js → dev-L7RT7UZD.js} +27 -27
  74. package/build/index.js +24 -24
  75. package/build/{install-EG5K5ISY.js → install-HHYTVORP.js} +16 -16
  76. package/build/{preview-HGI3D6BP.js → preview-7RFNSA54.js} +14 -14
  77. package/build/{publish-GAJZYSXP.js → publish-KJZ5VY4N.js} +17 -17
  78. package/build/{render-command-AJ4JXBZD.js → render-command-2XRAAJF6.js} +11 -11
  79. package/build/{render-command-I2UZ4C56.js → render-command-P4VD5BQ2.js} +10 -10
  80. package/build/{render-command-UUPZCQR5.js → render-command-XAOUHAHF.js} +9 -9
  81. package/build/{render-command-SFFANX7U.js → render-command-Y5LAZOIK.js} +10 -10
  82. package/build/{render-command-7VCI6YSZ.js → render-command-ZX5HGLIL.js} +13 -13
  83. package/build/{run-command-YOFPOYKR.js → run-command-OJIGR5M3.js} +7 -7
  84. package/build/{src-G4VTAB7N.js → src-36YD7FKI.js} +6 -6
  85. package/build/{src-WOCAZXWW.js → src-3CROJOB6.js} +4 -4
  86. package/build/{src-FQXVNQBP.js → src-3YCY3A6N.js} +14 -14
  87. package/build/{src-TCOQJWS6.js → src-7LR3GVQF.js} +4 -4
  88. package/build/{src-LGPI7BEK.js → src-CQXNGKSO.js} +52 -35
  89. package/build/src-CQXNGKSO.js.map +1 -0
  90. package/build/{src-TNYBYQC2.js → src-NHIOKHGM.js} +17 -17
  91. package/build/{src-36YXA45Z.js → src-R7UXENTL.js} +7 -7
  92. package/build/{src-SJLIJTME.js → src-X7RRT6HX.js} +2 -2
  93. package/build/{sync-types-IQMRAUS5.js → sync-types-VMUQUXYA.js} +12 -12
  94. package/build/{uninstall-L6EBLGL3.js → uninstall-FZQD6AV5.js} +16 -16
  95. package/package.json +2 -2
  96. package/build/DevCommand-V4NLJPXS.js +0 -438
  97. package/build/DevCommand-V4NLJPXS.js.map +0 -1
  98. package/build/GenerateCommand-PW2OA55C.js.map +0 -1
  99. package/build/chunk-5L3ZCEVU.js.map +0 -1
  100. package/build/chunk-F6AKDZEI.js.map +0 -1
  101. package/build/chunk-JSW5O26R.js.map +0 -1
  102. package/build/chunk-W3FB2GVG.js.map +0 -1
  103. package/build/chunk-W7CODLJZ.js.map +0 -1
  104. package/build/chunk-YFBUO3EP.js.map +0 -1
  105. package/build/src-LGPI7BEK.js.map +0 -1
  106. /package/build/{DevCommand-PWVR7KPG.js.map → DevCommand-3VTVFAPC.js.map} +0 -0
  107. /package/build/{DevCommand-DEUDOCGK.js.map → DevCommand-YA5YZGH4.js.map} +0 -0
  108. /package/build/{EnvPullCommand-IYWK5KBC.js.map → EnvPullCommand-E575ZY47.js.map} +0 -0
  109. /package/build/{EnvSetCommand-SSNEWXCX.js.map → EnvSetCommand-TJBFYXCA.js.map} +0 -0
  110. /package/build/{InstallCommand-EUIXWKR2.js.map → InstallCommand-6HILIMZ4.js.map} +0 -0
  111. /package/build/{LoginCommand-N7VGSH5Y.js.map → LoginCommand-VYSZKK2R.js.map} +0 -0
  112. /package/build/{LogoutCommand-NXTHVFG5.js.map → LogoutCommand-K34YBMCM.js.map} +0 -0
  113. /package/build/{PreviewCommand-LPWUUZQG.js.map → PreviewCommand-G2JIJG5L.js.map} +0 -0
  114. /package/build/{PreviewCommand-JDV4BZ32.js.map → PreviewCommand-Z5GX6ZNV.js.map} +0 -0
  115. /package/build/{PreviewCommand-BZTD3F7Z.js.map → PreviewCommand-ZYYGM4BN.js.map} +0 -0
  116. /package/build/{PublishCommand-WF2ZNXFD.js.map → PublishCommand-VLI7PDXQ.js.map} +0 -0
  117. /package/build/{ReleaseCommand-KYSWC62Q.js.map → ReleaseCommand-L4Y6BSU6.js.map} +0 -0
  118. /package/build/{UninstallCommand-BABBSOQX.js.map → UninstallCommand-FSM6ACGS.js.map} +0 -0
  119. /package/build/{WhoamiCommand-JVMX7IEJ.js.map → WhoamiCommand-HCHXCS52.js.map} +0 -0
  120. /package/build/{chunk-GIEJ7SOR.js.map → chunk-2WHCRVUO.js.map} +0 -0
  121. /package/build/{chunk-I4LXL264.js.map → chunk-4MLVTFYI.js.map} +0 -0
  122. /package/build/{chunk-CMCIM2FR.js.map → chunk-6F3HZWHI.js.map} +0 -0
  123. /package/build/{chunk-6ZIRLJMJ.js.map → chunk-6OCBAMM6.js.map} +0 -0
  124. /package/build/{chunk-RJG6WEKO.js.map → chunk-7X6XM5XU.js.map} +0 -0
  125. /package/build/{chunk-XLGJQZZA.js.map → chunk-7XY5GJUN.js.map} +0 -0
  126. /package/build/{chunk-3BDYAFJY.js.map → chunk-AE3MOKSJ.js.map} +0 -0
  127. /package/build/{chunk-Y3ZAEZF4.js.map → chunk-AN752YLU.js.map} +0 -0
  128. /package/build/{chunk-Q7E6CZ3C.js.map → chunk-AO4BFW7M.js.map} +0 -0
  129. /package/build/{chunk-DUYQZPRH.js.map → chunk-BGGTVIDX.js.map} +0 -0
  130. /package/build/{chunk-CXFPYQVY.js.map → chunk-DDIB3H7O.js.map} +0 -0
  131. /package/build/{chunk-M2VJGFDS.js.map → chunk-DQGJG7WL.js.map} +0 -0
  132. /package/build/{chunk-4B4DIFAD.js.map → chunk-EMEJMFDS.js.map} +0 -0
  133. /package/build/{chunk-3PSJY5IQ.js.map → chunk-ENAENA4J.js.map} +0 -0
  134. /package/build/{chunk-45WBL5VF.js.map → chunk-EWC22ION.js.map} +0 -0
  135. /package/build/{chunk-ISBULSWD.js.map → chunk-G2JIGUJ7.js.map} +0 -0
  136. /package/build/{chunk-I3MNONAI.js.map → chunk-GDBFT3UX.js.map} +0 -0
  137. /package/build/{chunk-6MH74EYT.js.map → chunk-H6EWS6IF.js.map} +0 -0
  138. /package/build/{chunk-JHYR5NET.js.map → chunk-I4IC4BN2.js.map} +0 -0
  139. /package/build/{chunk-NVW5X3UB.js.map → chunk-J7LF3I3O.js.map} +0 -0
  140. /package/build/{chunk-PKZ6J2PV.js.map → chunk-O6ZDAZFZ.js.map} +0 -0
  141. /package/build/{chunk-ZCKZMMPY.js.map → chunk-PAM7FLMM.js.map} +0 -0
  142. /package/build/{chunk-3PAHQ4M3.js.map → chunk-PEYNHLTD.js.map} +0 -0
  143. /package/build/{chunk-6PQJVCVI.js.map → chunk-PIQXSDTQ.js.map} +0 -0
  144. /package/build/{chunk-KEX4DNHZ.js.map → chunk-QGNDWQQD.js.map} +0 -0
  145. /package/build/{chunk-YVQDNTNO.js.map → chunk-SH5WVHLQ.js.map} +0 -0
  146. /package/build/{chunk-AA5HURS5.js.map → chunk-UTTRVHIB.js.map} +0 -0
  147. /package/build/{chunk-DXCSR2HI.js.map → chunk-WPI6K6AK.js.map} +0 -0
  148. /package/build/{chunk-MOBNZ5R6.js.map → chunk-X73KRU2U.js.map} +0 -0
  149. /package/build/{chunk-VWHAW4FC.js.map → chunk-ZQD2MXRV.js.map} +0 -0
  150. /package/build/{chunk-TJTGMIZV.js.map → chunk-ZVMU6EMR.js.map} +0 -0
  151. /package/build/{chunk-RYKJWCW2.js.map → chunk-ZZXI3UI4.js.map} +0 -0
  152. /package/build/{dev-T5EAJRHG.js.map → dev-L7RT7UZD.js.map} +0 -0
  153. /package/build/{install-EG5K5ISY.js.map → install-HHYTVORP.js.map} +0 -0
  154. /package/build/{preview-HGI3D6BP.js.map → preview-7RFNSA54.js.map} +0 -0
  155. /package/build/{publish-GAJZYSXP.js.map → publish-KJZ5VY4N.js.map} +0 -0
  156. /package/build/{render-command-AJ4JXBZD.js.map → render-command-2XRAAJF6.js.map} +0 -0
  157. /package/build/{render-command-I2UZ4C56.js.map → render-command-P4VD5BQ2.js.map} +0 -0
  158. /package/build/{render-command-UUPZCQR5.js.map → render-command-XAOUHAHF.js.map} +0 -0
  159. /package/build/{render-command-SFFANX7U.js.map → render-command-Y5LAZOIK.js.map} +0 -0
  160. /package/build/{render-command-7VCI6YSZ.js.map → render-command-ZX5HGLIL.js.map} +0 -0
  161. /package/build/{run-command-YOFPOYKR.js.map → run-command-OJIGR5M3.js.map} +0 -0
  162. /package/build/{src-G4VTAB7N.js.map → src-36YD7FKI.js.map} +0 -0
  163. /package/build/{src-36YXA45Z.js.map → src-3CROJOB6.js.map} +0 -0
  164. /package/build/{src-FQXVNQBP.js.map → src-3YCY3A6N.js.map} +0 -0
  165. /package/build/{src-SJLIJTME.js.map → src-7LR3GVQF.js.map} +0 -0
  166. /package/build/{src-TNYBYQC2.js.map → src-NHIOKHGM.js.map} +0 -0
  167. /package/build/{src-TCOQJWS6.js.map → src-R7UXENTL.js.map} +0 -0
  168. /package/build/{src-WOCAZXWW.js.map → src-X7RRT6HX.js.map} +0 -0
  169. /package/build/{sync-types-IQMRAUS5.js.map → sync-types-VMUQUXYA.js.map} +0 -0
  170. /package/build/{uninstall-L6EBLGL3.js.map → uninstall-FZQD6AV5.js.map} +0 -0
@@ -1,438 +0,0 @@
1
- import { createRequire as _createRequire } from 'node:module';
2
- const require = _createRequire(import.meta.url);
3
- import {
4
- useTunnel
5
- } from "./chunk-3PSJY5IQ.js";
6
- import {
7
- PlatformLink,
8
- useARMClient,
9
- useUpdateDeploymentTopology,
10
- useUpdateManifest
11
- } from "./chunk-5L3ZCEVU.js";
12
- import {
13
- appConfigSchema,
14
- getAppConfigPath
15
- } from "./chunk-W7CODLJZ.js";
16
- import "./chunk-P7ANNBCZ.js";
17
- import {
18
- createPackageManager,
19
- getRepoType
20
- } from "./chunk-CMCIM2FR.js";
21
- import {
22
- execa
23
- } from "./chunk-3OG3PDAA.js";
24
- import "./chunk-OJHDGJWP.js";
25
- import {
26
- useHttpClient
27
- } from "./chunk-DUYQZPRH.js";
28
- import {
29
- ComponentType,
30
- looseAppManifestSchema,
31
- looseComponentSchema,
32
- useProjectModel
33
- } from "./chunk-W3FB2GVG.js";
34
- import {
35
- SiteAuthProvider
36
- } from "./chunk-VWHAW4FC.js";
37
- import "./chunk-RIDZNJ65.js";
38
- import "./chunk-NPVP6ZBL.js";
39
- import "./chunk-I3MNONAI.js";
40
- import "./chunk-GPEPI5XF.js";
41
- import {
42
- Box_default,
43
- ConfirmInput,
44
- Spinner,
45
- Text,
46
- createRendererToString,
47
- useAsync,
48
- useExit
49
- } from "./chunk-YVQDNTNO.js";
50
- import {
51
- require_react
52
- } from "./chunk-SO6EZMEL.js";
53
- import {
54
- stripAnsi
55
- } from "./chunk-2K5KKUL3.js";
56
- import "./chunk-YU54OBFT.js";
57
- import "./chunk-XMTHMR2B.js";
58
- import {
59
- readUserConfig,
60
- updateUserConfig
61
- } from "./chunk-ZCKZMMPY.js";
62
- import "./chunk-7ZP5YH44.js";
63
- import "./chunk-COXRYL76.js";
64
- import "./chunk-MWHZITF4.js";
65
- import {
66
- pathExists,
67
- readJson,
68
- writeJson
69
- } from "./chunk-EJEDZZSK.js";
70
- import "./chunk-SF2XPDVG.js";
71
- import {
72
- require_lib
73
- } from "./chunk-VNWDO45Y.js";
74
- import {
75
- __toESM,
76
- init_esm_shims
77
- } from "./chunk-PYIAC2GK.js";
78
-
79
- // ../cli-astro-commands/src/components/DevCommand/index.ts
80
- init_esm_shims();
81
-
82
- // ../cli-astro-commands/src/components/DevCommand/DevCommand.tsx
83
- init_esm_shims();
84
- var import_react5 = __toESM(require_react(), 1);
85
-
86
- // ../cli-astro-commands/src/components/DevCommand/DevScreenBorder.tsx
87
- init_esm_shims();
88
- var import_react = __toESM(require_react(), 1);
89
- var DevScreenBorder = ({ children }) => {
90
- return /* @__PURE__ */ import_react.default.createElement(
91
- Box_default,
92
- {
93
- flexDirection: "column",
94
- borderTop: true,
95
- borderLeft: false,
96
- borderBottom: false,
97
- borderRight: false,
98
- borderStyle: "round",
99
- borderColor: "blueBright",
100
- width: "95%"
101
- },
102
- children
103
- );
104
- };
105
-
106
- // ../cli-astro-commands/src/components/DevCommand/utils/runAstroDev.ts
107
- init_esm_shims();
108
- var EVENT_LINE = "line";
109
- var EVENT_SERVER_ADDRESS = "server_address";
110
- function runAstroDev({
111
- packageManager,
112
- projectFolder,
113
- port,
114
- allowedHosts
115
- }) {
116
- const binaryArgs = ["astro", "dev"];
117
- if (port) {
118
- binaryArgs.push("--port", `${port}`);
119
- }
120
- if (allowedHosts) {
121
- binaryArgs.push("--allowed-hosts", allowedHosts);
122
- }
123
- const { file, args } = packageManager.getRunBinaryCmd(binaryArgs);
124
- const result = execa(file, args, {
125
- cwd: projectFolder,
126
- stdio: "pipe",
127
- env: { FORCE_COLOR: "1" },
128
- cleanup: true,
129
- detached: true
130
- });
131
- let stdoutBuffer = "";
132
- result.stdout?.on("data", (chunk) => {
133
- stdoutBuffer += chunk.toString();
134
- const lines = stdoutBuffer.split("\n");
135
- stdoutBuffer = lines.pop() ?? "";
136
- for (const line of lines) {
137
- result.stdout?.emit(EVENT_LINE, line);
138
- if (line.includes("http://")) {
139
- const match2 = /(http:\/\/[^\s]+)/.exec(line);
140
- if (match2?.[1]) {
141
- const address = stripAnsi(match2[1]).trim();
142
- result.stdout?.emit(EVENT_SERVER_ADDRESS, address);
143
- }
144
- }
145
- }
146
- });
147
- let stdErrBuffer = "";
148
- result.stderr?.on("data", (chunk) => {
149
- stdErrBuffer += chunk.toString();
150
- const lines = stdErrBuffer.split("\n");
151
- stdErrBuffer = lines.pop() ?? "";
152
- for (const line of lines) {
153
- result.stderr?.emit(EVENT_LINE, line);
154
- }
155
- });
156
- return result;
157
- }
158
-
159
- // ../cli-astro-commands/src/components/DevCommand/utils/createAstroLogger.tsx
160
- init_esm_shims();
161
- var import_react2 = __toESM(require_react(), 1);
162
- var dateTimeFormat = new Intl.DateTimeFormat([], {
163
- hour: "2-digit",
164
- minute: "2-digit",
165
- second: "2-digit",
166
- hour12: false
167
- });
168
- function createAstroLogger(isPrefixed = true) {
169
- const renderer = createRendererToString({ stripAnsi: false });
170
- const log = (msg) => {
171
- if (typeof msg === "string") {
172
- setTimeout(() => console.log(msg), 0);
173
- } else {
174
- setTimeout(() => console.log(renderer.render(msg)), 0);
175
- }
176
- };
177
- const prefixedLog = (msg) => {
178
- const timestamp = dateTimeFormat.format(/* @__PURE__ */ new Date());
179
- const log2 = /* @__PURE__ */ import_react2.default.createElement(Text, null, /* @__PURE__ */ import_react2.default.createElement(Text, null, timestamp, " "), /* @__PURE__ */ import_react2.default.createElement(Text, { skin: "info" }, "[wix] "), /* @__PURE__ */ import_react2.default.createElement(Text, null, msg));
180
- console.log(renderer.render(log2));
181
- };
182
- return isPrefixed ? { log: prefixedLog } : { log };
183
- }
184
-
185
- // ../cli-astro-commands/src/components/DevCommand/DevCenterUpdater.tsx
186
- init_esm_shims();
187
- var import_react4 = __toESM(require_react(), 1);
188
- import { isDeepStrictEqual } from "node:util";
189
- var import_variant2 = __toESM(require_lib(), 1);
190
-
191
- // ../cli-astro-commands/src/files/app.config.ts
192
- init_esm_shims();
193
- async function readAppConfig(projectFolder, writeDebugLog) {
194
- const configPath = getAppConfigPath(projectFolder);
195
- const isConfigExist = await pathExists(configPath);
196
- if (!isConfigExist) {
197
- return null;
198
- }
199
- try {
200
- const json = await readJson(configPath);
201
- const appConfig = await appConfigSchema.safeParseAsync(json);
202
- if (!appConfig.success) {
203
- return null;
204
- }
205
- return appConfig.data;
206
- } catch (e) {
207
- writeDebugLog?.(e);
208
- return null;
209
- }
210
- }
211
- async function saveAppConfig(projectFolder, config) {
212
- const currentConfig = await readAppConfig(projectFolder) ?? {};
213
- const newConfig = {
214
- ...currentConfig,
215
- ...config
216
- };
217
- await writeJson(getAppConfigPath(projectFolder), newConfig);
218
- }
219
-
220
- // ../cli-astro-commands/src/components/DevCommand/utils/isTunnelRequired.ts
221
- init_esm_shims();
222
- function isTunnelRequired(appManifest) {
223
- for (const extension of appManifest.components) {
224
- const knownAppManifest = parseKnownExtensionManifest(extension);
225
- if (knownAppManifest != null && knownAppManifest.compType === ComponentType.WEBHOOK) {
226
- return !URL.canParse(knownAppManifest.compData.webhook.callbackUrl);
227
- }
228
- }
229
- return false;
230
- }
231
- function parseKnownExtensionManifest(extensionManifest) {
232
- const appManifestResult = looseComponentSchema.safeParse(extensionManifest);
233
- if (appManifestResult.error) {
234
- return null;
235
- }
236
- return appManifestResult.data;
237
- }
238
-
239
- // ../cli-astro-commands/src/components/DevCommand/TunnelingConsent.tsx
240
- init_esm_shims();
241
- var import_react3 = __toESM(require_react(), 1);
242
- var import_variant = __toESM(require_lib(), 1);
243
- var TunnelingConsent = ({ required, children }) => {
244
- const exit = useExit();
245
- const [approved, setApproved] = (0, import_react3.useState)();
246
- const { status } = useAsync(async () => {
247
- const config = await readUserConfig();
248
- if (config.tunneling) {
249
- setApproved(true);
250
- }
251
- return config;
252
- }, []);
253
- if (!required || approved) {
254
- return children;
255
- }
256
- return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, (0, import_variant.match)(status, {
257
- Success: () => /* @__PURE__ */ import_react3.default.createElement(
258
- ConfirmInput,
259
- {
260
- label: "To proceed, we'll set up a secure tunnel from your machine for development purposes",
261
- initialValue: true,
262
- onSubmit: async (approved2) => {
263
- setApproved(approved2);
264
- await updateUserConfig({ tunneling: approved2 });
265
- if (!approved2) {
266
- exit();
267
- }
268
- }
269
- }
270
- ),
271
- Error: () => null,
272
- Loading: () => null
273
- }), approved === false && /* @__PURE__ */ import_react3.default.createElement(Text, { skin: "error" }, "Operation aborted. Tunneling is necessary to run your application."));
274
- };
275
-
276
- // ../cli-astro-commands/src/components/DevCommand/DevCenterUpdater.tsx
277
- var DevCenterUpdateResult = (0, import_variant2.variant)({
278
- Changed: (0, import_variant2.fields)(),
279
- Unchanged: {}
280
- });
281
- var DevCenterUpdater = ({ serverLocalUrl, serverExposedUrl }) => {
282
- const [devArmTag, setDevArmTag] = (0, import_react4.useState)("");
283
- const [manifest, setManifest] = (0, import_react4.useState)(null);
284
- const {
285
- model: {
286
- config: { siteId, appId },
287
- projectFolder
288
- }
289
- } = useProjectModel();
290
- const logger = (0, import_react4.useMemo)(() => createAstroLogger(), []);
291
- const http = useHttpClient({ type: "standalone" });
292
- const { updateManifest } = useUpdateManifest();
293
- const arm = useARMClient();
294
- const updateDeploymentTopology = useUpdateDeploymentTopology();
295
- const openTunnel = useTunnel();
296
- const tunnelUrl = (0, import_react4.useRef)();
297
- const [tunnelRequired, setTunnelRequired] = (0, import_react4.useState)(false);
298
- const updateDevCenter = (0, import_react4.useCallback)(async () => {
299
- const url = new URL("/_wix/app-manifest.json", serverLocalUrl).href;
300
- const { data: responseFromDevServer } = await http.get(url);
301
- const latestManifest = looseAppManifestSchema.parse(responseFromDevServer);
302
- if (isDeepStrictEqual(manifest, latestManifest)) {
303
- return DevCenterUpdateResult.Unchanged();
304
- }
305
- if (!serverExposedUrl && !tunnelUrl.current && isTunnelRequired(latestManifest)) {
306
- const config = await readUserConfig();
307
- if (!config.tunneling) {
308
- setTunnelRequired(true);
309
- return DevCenterUpdateResult.Unchanged();
310
- }
311
- const serverLocalPort = parseInt(new URL(serverLocalUrl).port, 10);
312
- const tunnel = await openTunnel(serverLocalPort);
313
- tunnelUrl.current = tunnel.url;
314
- }
315
- const baseUrl = serverExposedUrl ?? serverLocalUrl;
316
- const appConfig = await readAppConfig(projectFolder);
317
- let updatedDevArmTag = appConfig?.devArmTag;
318
- if (!updatedDevArmTag) {
319
- updatedDevArmTag = await arm.createLooseAppRelease(
320
- updateManifest(latestManifest, baseUrl, tunnelUrl.current),
321
- appId
322
- );
323
- } else {
324
- const updateState = await arm.updateLooseAppRelease(
325
- updateManifest(latestManifest, baseUrl, tunnelUrl.current),
326
- updatedDevArmTag
327
- );
328
- if (!(0, import_variant2.isType)(updateState, "TagUpdated")) {
329
- updatedDevArmTag = await arm.createLooseAppRelease(
330
- updateManifest(latestManifest, baseUrl, tunnelUrl.current),
331
- appId
332
- );
333
- }
334
- }
335
- if (updatedDevArmTag !== appConfig?.devArmTag) {
336
- await saveAppConfig(projectFolder, { devArmTag: updatedDevArmTag });
337
- }
338
- setManifest(latestManifest);
339
- setDevArmTag(updatedDevArmTag);
340
- await updateDeploymentTopology.execute({
341
- serverUrl: baseUrl,
342
- armTag: updatedDevArmTag,
343
- environment: "development"
344
- });
345
- const armTagChanged = !!appConfig?.devArmTag && updatedDevArmTag !== appConfig.devArmTag;
346
- return DevCenterUpdateResult.Changed({ armTagChanged });
347
- }, [
348
- http,
349
- updateManifest,
350
- serverLocalUrl,
351
- serverExposedUrl,
352
- arm,
353
- manifest,
354
- projectFolder,
355
- appId,
356
- updateDeploymentTopology,
357
- openTunnel
358
- ]);
359
- const [timer, setTimer] = (0, import_react4.useState)(Date.now());
360
- (0, import_react4.useEffect)(() => {
361
- let disposed = false;
362
- void updateDevCenter().then((result) => {
363
- if ((0, import_variant2.isType)(result, "Changed")) {
364
- logger.log(
365
- "App Manifest updated. Refresh existing browser tabs to view the latest changes."
366
- );
367
- }
368
- }).catch((error) => {
369
- logger.log("Failed to update App Manifest");
370
- logger.log(`${error}`);
371
- }).then(() => {
372
- if (!disposed) {
373
- setTimeout(() => setTimer(Date.now()), 1e3);
374
- }
375
- });
376
- return () => {
377
- disposed = true;
378
- };
379
- }, [timer]);
380
- return /* @__PURE__ */ import_react4.default.createElement(Box_default, { rowGap: 1, marginY: 1, flexDirection: "column" }, /* @__PURE__ */ import_react4.default.createElement(TunnelingConsent, { required: tunnelRequired }, /* @__PURE__ */ import_react4.default.createElement(Text, null, "Open the preview on:"), /* @__PURE__ */ import_react4.default.createElement(Box_default, { paddingLeft: 2, flexDirection: "column" }, /* @__PURE__ */ import_react4.default.createElement(PlatformLink, { url: serverLocalUrl, label: "Site" }), devArmTag ? /* @__PURE__ */ import_react4.default.createElement(
381
- PlatformLink,
382
- {
383
- url: `https://manage.wix.com/dashboard/${siteId}?apps-override=${devArmTag}`,
384
- label: "Dashboard"
385
- }
386
- ) : /* @__PURE__ */ import_react4.default.createElement(Spinner, { text: "Preparing your dashboard..." }))));
387
- };
388
-
389
- // ../cli-astro-commands/src/components/DevCommand/DevCommand.tsx
390
- var DevCommand = ({
391
- port,
392
- allowedHosts,
393
- serverExposedUrl
394
- }) => {
395
- const [serverLocalUrl, setServerLocalUrl] = (0, import_react5.useState)("");
396
- const {
397
- model: {
398
- config: { siteId },
399
- projectFolder
400
- }
401
- } = useProjectModel();
402
- const logger = (0, import_react5.useMemo)(() => createAstroLogger(false), []);
403
- const astroProcess = (0, import_react5.useRef)();
404
- useAsync(async () => {
405
- const repoType = await getRepoType(projectFolder);
406
- const packageManager = await createPackageManager(repoType);
407
- const astro = runAstroDev({
408
- packageManager,
409
- projectFolder,
410
- port,
411
- allowedHosts
412
- });
413
- astroProcess.current = astro;
414
- astro.stdout?.once(EVENT_SERVER_ADDRESS, (address) => {
415
- setServerLocalUrl(address);
416
- });
417
- astro.stdout?.on(EVENT_LINE, (line) => logger.log(line));
418
- astro.stderr?.on(EVENT_LINE, (line) => logger.log(line));
419
- }, []);
420
- (0, import_react5.useEffect)(() => {
421
- return () => {
422
- if (astroProcess.current?.pid) {
423
- process.kill(-astroProcess.current.pid, "SIGTERM");
424
- }
425
- };
426
- }, []);
427
- return /* @__PURE__ */ import_react5.default.createElement(SiteAuthProvider, { siteId }, serverLocalUrl ? /* @__PURE__ */ import_react5.default.createElement(DevScreenBorder, null, /* @__PURE__ */ import_react5.default.createElement(Text, null, "Development environment ready"), /* @__PURE__ */ import_react5.default.createElement(
428
- DevCenterUpdater,
429
- {
430
- serverLocalUrl,
431
- serverExposedUrl
432
- }
433
- )) : /* @__PURE__ */ import_react5.default.createElement(Spinner, { text: "Starting dev environment..." }));
434
- };
435
- export {
436
- DevCommand
437
- };
438
- //# sourceMappingURL=DevCommand-V4NLJPXS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../cli-astro-commands/src/components/DevCommand/index.ts","../../cli-astro-commands/src/components/DevCommand/DevCommand.tsx","../../cli-astro-commands/src/components/DevCommand/DevScreenBorder.tsx","../../cli-astro-commands/src/components/DevCommand/utils/runAstroDev.ts","../../cli-astro-commands/src/components/DevCommand/utils/createAstroLogger.tsx","../../cli-astro-commands/src/components/DevCommand/DevCenterUpdater.tsx","../../cli-astro-commands/src/files/app.config.ts","../../cli-astro-commands/src/components/DevCommand/utils/isTunnelRequired.ts","../../cli-astro-commands/src/components/DevCommand/TunnelingConsent.tsx"],"sourcesContent":["export { DevCommand } from './DevCommand.js';\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport type { FC } from 'react';\nimport { SiteAuthProvider } from '@wix/cli-auth';\nimport { Spinner, Text, useAsync } from '@wix/cli-ui-kit';\nimport { createPackageManager, getRepoType } from '@wix/package-manager';\nimport { useProjectModel } from '../../model.js';\nimport { DevScreenBorder } from './DevScreenBorder.js';\nimport {\n runAstroDev,\n EVENT_LINE,\n EVENT_SERVER_ADDRESS,\n} from './utils/runAstroDev.js';\nimport { createAstroLogger } from './utils/createAstroLogger.js';\nimport { DevCenterUpdater } from './DevCenterUpdater.js';\n\ninterface DevCommandProps {\n port?: number;\n allowedHosts?: string;\n serverExposedUrl?: string;\n}\n\nexport const DevCommand: FC<DevCommandProps> = ({\n port,\n allowedHosts,\n serverExposedUrl,\n}) => {\n const [serverLocalUrl, setServerLocalUrl] = useState('');\n\n const {\n model: {\n config: { siteId },\n projectFolder,\n },\n } = useProjectModel();\n\n const logger = useMemo(() => createAstroLogger(false), []);\n\n const astroProcess = useRef<ReturnType<typeof runAstroDev>>();\n\n useAsync(async () => {\n const repoType = await getRepoType(projectFolder);\n const packageManager = await createPackageManager(repoType);\n\n const astro = runAstroDev({\n packageManager,\n projectFolder,\n port,\n allowedHosts,\n });\n\n astroProcess.current = astro;\n\n astro.stdout?.once(EVENT_SERVER_ADDRESS, (address: string) => {\n setServerLocalUrl(address);\n });\n\n astro.stdout?.on(EVENT_LINE, (line: string) => logger.log(line));\n astro.stderr?.on(EVENT_LINE, (line: string) => logger.log(line));\n }, []);\n\n useEffect(() => {\n return () => {\n if (astroProcess.current?.pid) {\n process.kill(-astroProcess.current.pid, 'SIGTERM');\n }\n };\n }, []);\n\n return (\n <SiteAuthProvider siteId={siteId}>\n {serverLocalUrl ? (\n <DevScreenBorder>\n <Text>Development environment ready</Text>\n <DevCenterUpdater\n serverLocalUrl={serverLocalUrl}\n serverExposedUrl={serverExposedUrl}\n />\n </DevScreenBorder>\n ) : (\n <Spinner text={'Starting dev environment...'} />\n )}\n </SiteAuthProvider>\n );\n};\n","import React from 'react';\nimport { Box } from '@wix/cli-ui-kit';\nimport type { FC, ReactNode } from 'react';\n\nexport const DevScreenBorder: FC<{ children: ReactNode }> = ({ children }) => {\n return (\n <Box\n flexDirection=\"column\"\n borderTop\n borderLeft={false}\n borderBottom={false}\n borderRight={false}\n borderStyle=\"round\"\n borderColor=\"blueBright\"\n width=\"95%\"\n >\n {children}\n </Box>\n );\n};\n","import { execa } from 'execa';\nimport type { IPackageManager } from '@wix/package-manager';\nimport stripAnsi from 'strip-ansi';\n\nexport const EVENT_LINE = 'line';\nexport const EVENT_SERVER_ADDRESS = 'server_address';\n\nexport function runAstroDev({\n packageManager,\n projectFolder,\n port,\n allowedHosts,\n}: {\n packageManager: IPackageManager;\n projectFolder: string;\n port?: number;\n allowedHosts?: string;\n}) {\n const binaryArgs = ['astro', 'dev'];\n\n if (port) {\n binaryArgs.push('--port', `${port}`);\n }\n\n if (allowedHosts) {\n binaryArgs.push('--allowed-hosts', allowedHosts);\n }\n\n const { file, args } = packageManager.getRunBinaryCmd(binaryArgs);\n\n const result = execa(file, args, {\n cwd: projectFolder,\n stdio: 'pipe',\n env: { FORCE_COLOR: '1' },\n cleanup: true,\n detached: true,\n });\n\n let stdoutBuffer = '';\n\n result.stdout?.on('data', (chunk) => {\n stdoutBuffer += chunk.toString();\n const lines = stdoutBuffer.split('\\n');\n\n stdoutBuffer = lines.pop() ?? '';\n for (const line of lines) {\n result.stdout?.emit(EVENT_LINE, line);\n if (line.includes('http://')) {\n const match = /(http:\\/\\/[^\\s]+)/.exec(line);\n if (match?.[1]) {\n const address = stripAnsi(match[1]).trim();\n result.stdout?.emit(EVENT_SERVER_ADDRESS, address);\n }\n }\n }\n });\n\n let stdErrBuffer = '';\n\n result.stderr?.on('data', (chunk) => {\n stdErrBuffer += chunk.toString();\n const lines = stdErrBuffer.split('\\n');\n\n stdErrBuffer = lines.pop() ?? '';\n for (const line of lines) {\n result.stderr?.emit(EVENT_LINE, line);\n }\n });\n\n return result;\n}\n","import React from 'react';\nimport type { ReactElement } from 'react';\nimport { createRendererToString, Text } from '@wix/cli-ui-kit';\n\ninterface Logger {\n log: (msg: string | ReactElement) => void;\n}\n\nconst dateTimeFormat = new Intl.DateTimeFormat([], {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n});\n\nexport function createAstroLogger(isPrefixed = true): Logger {\n const renderer = createRendererToString({ stripAnsi: false });\n const log = (msg: string | ReactElement) => {\n if (typeof msg === 'string') {\n // eslint-disable-next-line no-console\n setTimeout(() => console.log(msg), 0);\n } else {\n // eslint-disable-next-line no-console\n setTimeout(() => console.log(renderer.render(msg)), 0);\n }\n };\n\n const prefixedLog = (msg: string | ReactElement) => {\n const timestamp = dateTimeFormat.format(new Date());\n const log = (\n <Text>\n <Text>{timestamp} </Text>\n <Text skin=\"info\">[wix] </Text>\n <Text>{msg}</Text>\n </Text>\n );\n\n // eslint-disable-next-line no-console\n console.log(renderer.render(log));\n };\n\n return isPrefixed ? { log: prefixedLog } : { log };\n}\n","import { isDeepStrictEqual } from 'node:util';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { FC } from 'react';\nimport { Box, Spinner, Text } from '@wix/cli-ui-kit';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { looseAppManifestSchema } from '@wix/cli-app-manifest';\nimport type { LooseAppManifest } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport { useTunnel } from '@wix/cli-tunnel';\nimport { readUserConfig } from '@wix/cli-user-config';\nimport { isType, variant, fields } from 'variant';\nimport { useProjectModel } from '../../model.js';\nimport { createAstroLogger } from './utils/createAstroLogger.js';\nimport { PlatformLink } from '../PlatformLink/PlatformLink.js';\nimport { useUpdateManifest } from '../PreviewCommand/hooks/useUpdateManifest.js';\nimport { readAppConfig, saveAppConfig } from '../../files/app.config.js';\nimport { useUpdateDeploymentTopology } from '../../hooks/useUpdateDeploymentTopology.js';\nimport { isTunnelRequired } from './utils/isTunnelRequired.js';\nimport { TunnelingConsent } from './TunnelingConsent.js';\n\nconst DevCenterUpdateResult = variant({\n Changed: fields<{ armTagChanged: boolean }>(),\n Unchanged: {},\n});\n\nexport const DevCenterUpdater: FC<{\n serverLocalUrl: string;\n serverExposedUrl?: string;\n}> = ({ serverLocalUrl, serverExposedUrl }) => {\n const [devArmTag, setDevArmTag] = useState('');\n const [manifest, setManifest] = useState<LooseAppManifest | null>(null);\n\n const {\n model: {\n config: { siteId, appId },\n projectFolder,\n },\n } = useProjectModel();\n\n const logger = useMemo(() => createAstroLogger(), []);\n const http = useHttpClient({ type: 'standalone' });\n const { updateManifest } = useUpdateManifest();\n const arm = useARMClient();\n const updateDeploymentTopology = useUpdateDeploymentTopology();\n\n const openTunnel = useTunnel();\n const tunnelUrl = useRef<string>();\n const [tunnelRequired, setTunnelRequired] = useState(false);\n\n const updateDevCenter = useCallback(async () => {\n // TODO: read url from build manifest ?\n const url = new URL('/_wix/app-manifest.json', serverLocalUrl).href;\n const { data: responseFromDevServer } = await http.get(url);\n const latestManifest = looseAppManifestSchema.parse(responseFromDevServer);\n\n if (isDeepStrictEqual(manifest, latestManifest)) {\n return DevCenterUpdateResult.Unchanged();\n }\n\n if (\n !serverExposedUrl &&\n !tunnelUrl.current &&\n isTunnelRequired(latestManifest)\n ) {\n const config = await readUserConfig();\n if (!config.tunneling) {\n setTunnelRequired(true);\n return DevCenterUpdateResult.Unchanged();\n }\n\n const serverLocalPort = parseInt(new URL(serverLocalUrl).port, 10);\n const tunnel = await openTunnel(serverLocalPort);\n tunnelUrl.current = tunnel.url;\n }\n\n const baseUrl = serverExposedUrl ?? serverLocalUrl;\n const appConfig = await readAppConfig(projectFolder);\n\n let updatedDevArmTag = appConfig?.devArmTag;\n if (!updatedDevArmTag) {\n updatedDevArmTag = await arm.createLooseAppRelease(\n updateManifest(latestManifest, baseUrl, tunnelUrl.current),\n appId\n );\n } else {\n const updateState = await arm.updateLooseAppRelease(\n updateManifest(latestManifest, baseUrl, tunnelUrl.current),\n updatedDevArmTag\n );\n if (!isType(updateState, 'TagUpdated')) {\n updatedDevArmTag = await arm.createLooseAppRelease(\n updateManifest(latestManifest, baseUrl, tunnelUrl.current),\n appId\n );\n }\n }\n\n if (updatedDevArmTag !== appConfig?.devArmTag) {\n await saveAppConfig(projectFolder, { devArmTag: updatedDevArmTag });\n }\n\n setManifest(latestManifest);\n setDevArmTag(updatedDevArmTag);\n\n await updateDeploymentTopology.execute({\n serverUrl: baseUrl,\n armTag: updatedDevArmTag,\n environment: 'development',\n });\n\n const armTagChanged =\n !!appConfig?.devArmTag && updatedDevArmTag !== appConfig.devArmTag;\n return DevCenterUpdateResult.Changed({ armTagChanged });\n }, [\n http,\n updateManifest,\n serverLocalUrl,\n serverExposedUrl,\n arm,\n manifest,\n projectFolder,\n appId,\n updateDeploymentTopology,\n openTunnel,\n ]);\n\n const [timer, setTimer] = useState(Date.now());\n\n useEffect(() => {\n let disposed = false;\n\n void updateDevCenter()\n .then((result) => {\n if (isType(result, 'Changed')) {\n logger.log(\n 'App Manifest updated. Refresh existing browser tabs to view the latest changes.'\n );\n }\n })\n .catch((error: unknown) => {\n // TODO: need product decision on how to format/color the output\n logger.log('Failed to update App Manifest');\n logger.log(`${error}`);\n })\n .then(() => {\n if (!disposed) {\n setTimeout(() => setTimer(Date.now()), 1_000);\n }\n });\n return () => {\n disposed = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [timer]);\n\n return (\n <Box rowGap={1} marginY={1} flexDirection=\"column\">\n <TunnelingConsent required={tunnelRequired}>\n <Text>Open the preview on:</Text>\n <Box paddingLeft={2} flexDirection=\"column\">\n <PlatformLink url={serverLocalUrl} label={'Site'} />\n {devArmTag ? (\n <PlatformLink\n url={`https://manage.wix.com/dashboard/${siteId}?apps-override=${devArmTag}`}\n label={'Dashboard'}\n />\n ) : (\n <Spinner text={'Preparing your dashboard...'} />\n )}\n </Box>\n </TunnelingConsent>\n </Box>\n );\n};\n","import type { WriteDebugLogFn } from '@wix/cli-debug-log';\nimport { pathExists, readJson, writeJson } from '@wix/cli-fs';\nimport { getAppConfigPath, appConfigSchema } from '@wix/cli-app-definitions';\nimport type { AppConfig } from '@wix/cli-app-definitions';\n\nexport async function readAppConfig(\n projectFolder: string,\n writeDebugLog?: WriteDebugLogFn\n) {\n const configPath = getAppConfigPath(projectFolder);\n const isConfigExist = await pathExists(configPath);\n\n if (!isConfigExist) {\n return null;\n }\n\n try {\n const json = await readJson(configPath);\n const appConfig = await appConfigSchema.safeParseAsync(json);\n\n if (!appConfig.success) {\n return null;\n }\n\n return appConfig.data;\n } catch (e) {\n writeDebugLog?.(e);\n return null;\n }\n}\n\nexport async function saveAppConfig(projectFolder: string, config: AppConfig) {\n const currentConfig = (await readAppConfig(projectFolder)) ?? {};\n const newConfig = {\n ...currentConfig,\n ...config,\n };\n\n await writeJson(getAppConfigPath(projectFolder), newConfig);\n}\n","import { looseComponentSchema } from '@wix/cli-app-manifest';\nimport type {\n LooseAppManifest,\n LooseBaseComponent,\n} from '@wix/cli-app-manifest';\nimport { ComponentType } from '@wix/ambassador-devcenter-apps-v1-app-old/types';\n\nexport function isTunnelRequired(appManifest: LooseAppManifest) {\n for (const extension of appManifest.components) {\n const knownAppManifest = parseKnownExtensionManifest(extension);\n\n if (\n knownAppManifest != null &&\n knownAppManifest.compType === ComponentType.WEBHOOK\n ) {\n // User can specify his own callback URL.\n // In such cases tunnel is not required even if webhook exists.\n // CLI always creates a relative URL which is not parsable.\n return !URL.canParse(knownAppManifest.compData.webhook.callbackUrl);\n }\n }\n\n return false;\n}\n\nfunction parseKnownExtensionManifest(extensionManifest: LooseBaseComponent) {\n const appManifestResult = looseComponentSchema.safeParse(extensionManifest);\n\n if (appManifestResult.error) {\n return null;\n }\n\n return appManifestResult.data;\n}\n","import React, { useState } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match } from 'variant';\nimport { ConfirmInput, Text, useAsync, useExit } from '@wix/cli-ui-kit';\nimport { readUserConfig, updateUserConfig } from '@wix/cli-user-config';\n\ninterface Props {\n children: ReactNode;\n required: boolean;\n}\n\nexport const TunnelingConsent: FC<Props> = ({ required, children }) => {\n const exit = useExit();\n const [approved, setApproved] = useState<boolean>();\n\n const { status } = useAsync(async () => {\n const config = await readUserConfig();\n\n if (config.tunneling) {\n setApproved(true);\n }\n\n return config;\n }, []);\n\n if (!required || approved) {\n return children;\n }\n\n return (\n <>\n {match(status, {\n Success: () => (\n <ConfirmInput\n label={\n \"To proceed, we'll set up a secure tunnel from your machine for development purposes\"\n }\n initialValue={true}\n onSubmit={async (approved) => {\n setApproved(approved);\n await updateUserConfig({ tunneling: approved });\n if (!approved) {\n exit();\n }\n }}\n />\n ),\n Error: () => null,\n Loading: () => null,\n })}\n {approved === false && (\n <Text skin=\"error\">\n Operation aborted. Tunneling is necessary to run your application.\n </Text>\n )}\n </>\n );\n};\n"],"mappings":"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","names":["import_react","React","match","import_react","log","React","import_react","import_variant","import_react","React","approved","React","React"]}