@wix/cli-app 1.1.53 → 1.1.56

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 (140) hide show
  1. package/README.md +45 -0
  2. package/build/CreateVersionCommand-LU6LUBNT.js +269 -0
  3. package/build/{CreateVersionCommand-2W37YQW4.js.map → CreateVersionCommand-LU6LUBNT.js.map} +1 -1
  4. package/build/DevCommand-G2BIT4FY.js +1168 -0
  5. package/build/DevCommand-G2BIT4FY.js.map +1 -0
  6. package/build/GenerateCommand-XKWJ2FEG.js +12392 -0
  7. package/build/GenerateCommand-XKWJ2FEG.js.map +1 -0
  8. package/build/LogsCommand-HYGDI5KW.js +284 -0
  9. package/build/LogsCommand-HYGDI5KW.js.map +1 -0
  10. package/build/PreviewCommand-6EMIKGQN.js +23 -0
  11. package/build/ServeCommand-YJ5RHQZ4.js +165 -0
  12. package/build/ServeCommand-YJ5RHQZ4.js.map +1 -0
  13. package/build/build-EC7LZLAY.js +3596 -0
  14. package/build/{build-D3GVJS75.js.map → build-EC7LZLAY.js.map} +1 -1
  15. package/build/build-Q5P6MZLW.js +97 -0
  16. package/build/build-Q5P6MZLW.js.map +1 -0
  17. package/build/chunk-3KMSVIRS.js +1323 -0
  18. package/build/chunk-3KMSVIRS.js.map +1 -0
  19. package/build/chunk-FH6U3Y37.js +19 -0
  20. package/build/chunk-FH6U3Y37.js.map +1 -0
  21. package/build/chunk-GIUEJUXG.js +151 -0
  22. package/build/{chunk-PSQ4AQFG.js.map → chunk-GIUEJUXG.js.map} +1 -1
  23. package/build/chunk-IJVKSYIY.js +222 -0
  24. package/build/chunk-IJVKSYIY.js.map +1 -0
  25. package/build/chunk-IMNXLCE5.js +51 -0
  26. package/build/{chunk-SZ5JWJ4Q.js.map → chunk-IMNXLCE5.js.map} +1 -1
  27. package/build/chunk-IWDISZ2R.js +96 -0
  28. package/build/chunk-IWDISZ2R.js.map +1 -0
  29. package/build/chunk-JKI4MP27.js +32 -0
  30. package/build/{chunk-AXAJ7DJ4.js.map → chunk-JKI4MP27.js.map} +1 -1
  31. package/build/chunk-JOVPQ7BW.js +183 -0
  32. package/build/chunk-JOVPQ7BW.js.map +1 -0
  33. package/build/chunk-KCMEJP7H.js +897 -0
  34. package/build/{chunk-QXIKCJLU.js.map → chunk-KCMEJP7H.js.map} +1 -1
  35. package/build/chunk-NDFUPX6I.js +635 -0
  36. package/build/chunk-NDFUPX6I.js.map +1 -0
  37. package/build/chunk-NUUM6HPA.js +195 -0
  38. package/build/{chunk-DLQYJEV6.js.map → chunk-NUUM6HPA.js.map} +1 -1
  39. package/build/chunk-PYIAC2GK.js +66 -0
  40. package/build/{chunk-V4TR6DCM.js.map → chunk-PYIAC2GK.js.map} +1 -1
  41. package/build/chunk-QICLTOEP.js +46 -0
  42. package/build/{chunk-TSAKYUDG.js.map → chunk-QICLTOEP.js.map} +1 -1
  43. package/build/chunk-QLZPVGJV.js +29 -0
  44. package/build/{chunk-C3O7WWDR.js.map → chunk-QLZPVGJV.js.map} +1 -1
  45. package/build/chunk-QZOQAFHK.js +2197 -0
  46. package/build/chunk-QZOQAFHK.js.map +1 -0
  47. package/build/chunk-SP37PQ3I.js +38035 -0
  48. package/build/chunk-SP37PQ3I.js.map +1 -0
  49. package/build/chunk-TSFNDZPX.js +39101 -0
  50. package/build/chunk-TSFNDZPX.js.map +1 -0
  51. package/build/chunk-TTW4MEC3.js +104 -0
  52. package/build/chunk-TTW4MEC3.js.map +1 -0
  53. package/build/chunk-U4QPSXJP.js +45 -0
  54. package/build/{chunk-WXOIL7LC.js.map → chunk-U4QPSXJP.js.map} +1 -1
  55. package/build/chunk-WG365AHZ.js +23 -0
  56. package/build/{chunk-FVG3T57Z.js.map → chunk-WG365AHZ.js.map} +1 -1
  57. package/build/chunk-XU5JBKO6.js +29230 -0
  58. package/build/chunk-XU5JBKO6.js.map +1 -0
  59. package/build/cloudflare-runtime/entry.js +299 -47
  60. package/build/cloudflare-runtime/getRegisteredExtensions.js +298 -46
  61. package/build/devtools-YPSDP32D.js +3702 -0
  62. package/build/{devtools-4JFNYU2B.js.map → devtools-YPSDP32D.js.map} +1 -1
  63. package/build/esm-YQVNLOAI.js +22083 -0
  64. package/build/{esm-HBMYQBEO.js.map → esm-YQVNLOAI.js.map} +1 -1
  65. package/build/index.js +3252 -21
  66. package/build/index.js.map +1 -1
  67. package/build/platform-sdk/chunk-TN6HYRXL.js +2 -0
  68. package/build/platform-sdk/chunk-TN6HYRXL.js.map +1 -0
  69. package/build/platform-sdk/dashboard.js +1 -1
  70. package/build/platform-sdk/dashboard.js.map +1 -1
  71. package/build/platform-sdk/editor.js +5 -5
  72. package/build/platform-sdk/editor.js.map +1 -1
  73. package/build/platform-sdk/site.js +1 -1
  74. package/build/platform-sdk/site.js.map +1 -1
  75. package/build/preview-HPJCC5SU.js +138 -0
  76. package/build/preview-HPJCC5SU.js.map +1 -0
  77. package/build/render-command-BJTVLIM5.js +117 -0
  78. package/build/render-command-BJTVLIM5.js.map +1 -0
  79. package/build/types.impl-CD4WWRUK.js +10 -0
  80. package/package.json +15 -9
  81. package/templates/custom-element/dependencies.json +1 -1
  82. package/templates/dashboard-modal/dependencies.json +1 -1
  83. package/templates/dashboard-plugin/files/plugin.tsx.ejs +8 -18
  84. package/templates/site-plugin/dependencies.json +1 -1
  85. package/build/CreateVersionCommand-2W37YQW4.js +0 -4
  86. package/build/DevCommand-JDHE7RQB.js +0 -4
  87. package/build/DevCommand-JDHE7RQB.js.map +0 -1
  88. package/build/GenerateCommand-3PPXF4B6.js +0 -128
  89. package/build/GenerateCommand-3PPXF4B6.js.map +0 -1
  90. package/build/LogsCommand-LQKTBY6D.js +0 -4
  91. package/build/LogsCommand-LQKTBY6D.js.map +0 -1
  92. package/build/PreviewCommand-H3HVD7DH.js +0 -4
  93. package/build/ServeCommand-RHONEHTF.js +0 -4
  94. package/build/ServeCommand-RHONEHTF.js.map +0 -1
  95. package/build/build-D3GVJS75.js +0 -5
  96. package/build/build-QN6TGE3Q.js +0 -4
  97. package/build/build-QN6TGE3Q.js.map +0 -1
  98. package/build/chunk-2W2YJZP5.js +0 -100
  99. package/build/chunk-2W2YJZP5.js.map +0 -1
  100. package/build/chunk-4CCKO52Z.js +0 -11
  101. package/build/chunk-4CCKO52Z.js.map +0 -1
  102. package/build/chunk-5OZZ7R6I.js +0 -11
  103. package/build/chunk-5OZZ7R6I.js.map +0 -1
  104. package/build/chunk-AXAJ7DJ4.js +0 -4
  105. package/build/chunk-B5P4JHUW.js +0 -278
  106. package/build/chunk-B5P4JHUW.js.map +0 -1
  107. package/build/chunk-C3O7WWDR.js +0 -4
  108. package/build/chunk-DLQYJEV6.js +0 -4
  109. package/build/chunk-F6MVNSX2.js +0 -4
  110. package/build/chunk-F6MVNSX2.js.map +0 -1
  111. package/build/chunk-FVG3T57Z.js +0 -4
  112. package/build/chunk-HILXNAWZ.js +0 -4
  113. package/build/chunk-HILXNAWZ.js.map +0 -1
  114. package/build/chunk-LDGXTJLC.js +0 -4
  115. package/build/chunk-LDGXTJLC.js.map +0 -1
  116. package/build/chunk-PCBMS46R.js +0 -4
  117. package/build/chunk-PCBMS46R.js.map +0 -1
  118. package/build/chunk-PSQ4AQFG.js +0 -4
  119. package/build/chunk-QXIKCJLU.js +0 -5
  120. package/build/chunk-SZ5JWJ4Q.js +0 -4
  121. package/build/chunk-TSAKYUDG.js +0 -4
  122. package/build/chunk-V4TR6DCM.js +0 -4
  123. package/build/chunk-WJTPY35F.js +0 -9
  124. package/build/chunk-WJTPY35F.js.map +0 -1
  125. package/build/chunk-WXOIL7LC.js +0 -4
  126. package/build/chunk-YIGHU6O6.js +0 -4
  127. package/build/chunk-YIGHU6O6.js.map +0 -1
  128. package/build/chunk-YMRYABCG.js +0 -115
  129. package/build/chunk-YMRYABCG.js.map +0 -1
  130. package/build/devtools-4JFNYU2B.js +0 -10
  131. package/build/esm-HBMYQBEO.js +0 -466
  132. package/build/platform-sdk/chunk-32RIHE6N.js +0 -2
  133. package/build/platform-sdk/chunk-32RIHE6N.js.map +0 -1
  134. package/build/preview-457BTAHF.js +0 -4
  135. package/build/preview-457BTAHF.js.map +0 -1
  136. package/build/render-command-W6CY3R4Q.js +0 -4
  137. package/build/render-command-W6CY3R4Q.js.map +0 -1
  138. package/build/types.impl-L2DPGJ77.js +0 -4
  139. /package/build/{PreviewCommand-H3HVD7DH.js.map → PreviewCommand-6EMIKGQN.js.map} +0 -0
  140. /package/build/{types.impl-L2DPGJ77.js.map → types.impl-CD4WWRUK.js.map} +0 -0
@@ -0,0 +1,1323 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import {
4
+ useBackendComponents
5
+ } from "./chunk-U4QPSXJP.js";
6
+ import {
7
+ useTunnel
8
+ } from "./chunk-KCMEJP7H.js";
9
+ import {
10
+ useDebugLog
11
+ } from "./chunk-TTW4MEC3.js";
12
+ import {
13
+ createAppManifest,
14
+ getComponentSourceBuilder,
15
+ getViteConfig,
16
+ getViteConfig2,
17
+ getViteServerUrl,
18
+ updateAppManifestWithBaseUrl
19
+ } from "./chunk-SP37PQ3I.js";
20
+ import {
21
+ DevCenterComponent,
22
+ ErrorViewer,
23
+ PlatformType,
24
+ deepEqual,
25
+ isHttpError,
26
+ openBrowser,
27
+ pRetry,
28
+ readAppConfig,
29
+ resolveUrl,
30
+ saveAppConfig,
31
+ serializer,
32
+ useDevCenterClient,
33
+ useErrorReporter,
34
+ useHttpClient,
35
+ useProjectModel
36
+ } from "./chunk-TSFNDZPX.js";
37
+ import {
38
+ Alert,
39
+ CliError,
40
+ CliErrorCode,
41
+ Link,
42
+ Newline,
43
+ Spinner,
44
+ Text,
45
+ Trans,
46
+ getTestOverrides,
47
+ require_lib,
48
+ require_react,
49
+ useAsync,
50
+ useExit,
51
+ useTranslation,
52
+ z
53
+ } from "./chunk-XU5JBKO6.js";
54
+ import {
55
+ __toESM,
56
+ init_esm_shims
57
+ } from "./chunk-PYIAC2GK.js";
58
+
59
+ // src/components/DevCommand/DevEnvironment.tsx
60
+ init_esm_shims();
61
+ var import_react10 = __toESM(require_react(), 1);
62
+ var import_variant4 = __toESM(require_lib(), 1);
63
+
64
+ // src/components/DevCommand/useArmUpdater.ts
65
+ init_esm_shims();
66
+ var import_react2 = __toESM(require_react(), 1);
67
+ var import_variant2 = __toESM(require_lib(), 1);
68
+
69
+ // ../arm-client/src/index.ts
70
+ init_esm_shims();
71
+
72
+ // ../arm-client/src/client.ts
73
+ init_esm_shims();
74
+
75
+ // ../../node_modules/@wix/ambassador-ctp-gradual-rollout-v1-app-config/build/es/http.impl.js
76
+ init_esm_shims();
77
+ var _createAppReleaseRequest = {};
78
+ var _createAppReleaseResponse = {};
79
+ var _createComponentsRequest = {};
80
+ var _createComponentsResponse = {};
81
+ var _promoteAppReleaseToDevCenterRequest = {};
82
+ var _promoteAppReleaseToDevCenterResponse = {};
83
+ var _updateAppReleaseRequest = {};
84
+ var _updateAppReleaseResponse = {};
85
+ function resolveComWixCtpAppsReleaseManagerServiceUrl(opts) {
86
+ var domainToMappings = {
87
+ "api._api_base_domain_": [
88
+ {
89
+ srcPath: "/apps-release-manager-service-web",
90
+ destPath: ""
91
+ }
92
+ ],
93
+ "bo._base_domain_": [
94
+ {
95
+ srcPath: "/apps-release-manager-service-web",
96
+ destPath: ""
97
+ }
98
+ ],
99
+ "wixbo.ai": [
100
+ {
101
+ srcPath: "/apps-release-manager-service-web",
102
+ destPath: ""
103
+ }
104
+ ],
105
+ "wix-bo.com": [
106
+ {
107
+ srcPath: "/apps-release-manager-service-web",
108
+ destPath: ""
109
+ }
110
+ ],
111
+ "www._base_domain_": [
112
+ {
113
+ srcPath: "/apps-release-manager-service-web/artifacts-release-manager/app-releases",
114
+ destPath: "/artifacts-release-manager/app-releases"
115
+ },
116
+ {
117
+ srcPath: "/_api/apps-release-manager-service-web/artifacts-release-manager/app-releases",
118
+ destPath: "/artifacts-release-manager/app-releases"
119
+ },
120
+ {
121
+ srcPath: "/apps-release-manager-service-web/apps/create",
122
+ destPath: "/apps/create"
123
+ },
124
+ {
125
+ srcPath: "/apps-release-manager-service-web/apps/promote",
126
+ destPath: "/apps/promote"
127
+ },
128
+ {
129
+ srcPath: "/apps-release-manager-service-web/apps/tags",
130
+ destPath: "/apps/tags"
131
+ },
132
+ {
133
+ srcPath: "/apps-release-manager-service-web/apps/create-components",
134
+ destPath: "/apps/create-components"
135
+ }
136
+ ],
137
+ "manage._base_domain_": [
138
+ {
139
+ srcPath: "/apps-release-manager-service-web/apps/promote",
140
+ destPath: "/apps/promote"
141
+ },
142
+ {
143
+ srcPath: "/apps-release-manager-service-web/apps/create",
144
+ destPath: "/apps/create"
145
+ },
146
+ {
147
+ srcPath: "/apps-release-manager-service-web/apps/tags",
148
+ destPath: "/apps/tags"
149
+ },
150
+ {
151
+ srcPath: "/apps-release-manager-service-web/apps/create-components",
152
+ destPath: "/apps/create-components"
153
+ }
154
+ ]
155
+ };
156
+ return resolveUrl(Object.assign(opts, { domainToMappings }));
157
+ }
158
+ function createAppRelease(payload) {
159
+ var _a = serializer(_createAppReleaseRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
160
+ var fromRes = serializer(_createAppReleaseResponse, {}).fromJSON;
161
+ function __createAppRelease(_a2) {
162
+ var host = _a2.host;
163
+ var serializedData = toReq(payload);
164
+ var metadata = {
165
+ entityFqdn: "wix.ctp.gradual_rollout.v1.app_config",
166
+ method: "POST",
167
+ methodFqn: "com.wix.ctp.AppsReleaseManagerService.CreateAppRelease",
168
+ url: resolveComWixCtpAppsReleaseManagerServiceUrl({
169
+ protoPath: "/apps/create/{appId}",
170
+ data: serializedData,
171
+ host
172
+ }),
173
+ data: serializedData,
174
+ transformResponse: fromRes
175
+ };
176
+ return metadata;
177
+ }
178
+ __createAppRelease.fromReq = fromReq;
179
+ __createAppRelease.__isAmbassador = true;
180
+ return __createAppRelease;
181
+ }
182
+ function updateAppRelease(payload) {
183
+ var _a = serializer(_updateAppReleaseRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
184
+ var fromRes = serializer(_updateAppReleaseResponse, {}).fromJSON;
185
+ function __updateAppRelease(_a2) {
186
+ var host = _a2.host;
187
+ var serializedData = toReq(payload);
188
+ var metadata = {
189
+ entityFqdn: "wix.ctp.gradual_rollout.v1.app_config",
190
+ method: "PUT",
191
+ methodFqn: "com.wix.ctp.AppsReleaseManagerService.UpdateAppRelease",
192
+ url: resolveComWixCtpAppsReleaseManagerServiceUrl({
193
+ protoPath: "/apps/tags/{tag}",
194
+ data: serializedData,
195
+ host
196
+ }),
197
+ data: serializedData,
198
+ transformResponse: fromRes
199
+ };
200
+ return metadata;
201
+ }
202
+ __updateAppRelease.fromReq = fromReq;
203
+ __updateAppRelease.__isAmbassador = true;
204
+ return __updateAppRelease;
205
+ }
206
+ function createComponents(payload) {
207
+ var _a = serializer(_createComponentsRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
208
+ var fromRes = serializer(_createComponentsResponse, {}).fromJSON;
209
+ function __createComponents(_a2) {
210
+ var host = _a2.host;
211
+ var serializedData = toReq(payload);
212
+ var metadata = {
213
+ entityFqdn: "wix.ctp.gradual_rollout.v1.app_config",
214
+ method: "POST",
215
+ methodFqn: "com.wix.ctp.AppsReleaseManagerService.CreateComponents",
216
+ url: resolveComWixCtpAppsReleaseManagerServiceUrl({
217
+ protoPath: "/apps/create-components/{appId}",
218
+ data: serializedData,
219
+ host
220
+ }),
221
+ data: serializedData,
222
+ transformResponse: fromRes
223
+ };
224
+ return metadata;
225
+ }
226
+ __createComponents.fromReq = fromReq;
227
+ __createComponents.__isAmbassador = true;
228
+ return __createComponents;
229
+ }
230
+ function promoteAppReleaseToDevCenter(payload) {
231
+ var _a = serializer(_promoteAppReleaseToDevCenterRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
232
+ var fromRes = serializer(_promoteAppReleaseToDevCenterResponse, {}).fromJSON;
233
+ function __promoteAppReleaseToDevCenter(_a2) {
234
+ var host = _a2.host;
235
+ var serializedData = toReq(payload);
236
+ var metadata = {
237
+ entityFqdn: "wix.ctp.gradual_rollout.v1.app_config",
238
+ method: "POST",
239
+ methodFqn: "com.wix.ctp.AppsReleaseManagerService.PromoteAppReleaseToDevCenter",
240
+ url: resolveComWixCtpAppsReleaseManagerServiceUrl({
241
+ protoPath: "/apps/promote/{appId}/{tag}",
242
+ data: serializedData,
243
+ host
244
+ }),
245
+ data: serializedData,
246
+ transformResponse: fromRes
247
+ };
248
+ return metadata;
249
+ }
250
+ __promoteAppReleaseToDevCenter.fromReq = fromReq;
251
+ __promoteAppReleaseToDevCenter.__isAmbassador = true;
252
+ return __promoteAppReleaseToDevCenter;
253
+ }
254
+
255
+ // ../arm-client/src/client.ts
256
+ var import_variant = __toESM(require_lib(), 1);
257
+
258
+ // ../arm-client/src/schemas.ts
259
+ init_esm_shims();
260
+ var promoteAppReleaseSchema = z.object({
261
+ newVersion: z.string()
262
+ });
263
+ var createAppReleaseSchema = z.object({
264
+ tag: z.string()
265
+ });
266
+
267
+ // ../arm-client/src/client.ts
268
+ var { AppPermissionDenied } = CliErrorCode;
269
+ var UpdateAppReleaseData = (0, import_variant.variant)({
270
+ TagNotFound: (0, import_variant.fields)(),
271
+ TagUpdated: {}
272
+ });
273
+ var ARMClient = class {
274
+ constructor(httpClient) {
275
+ this.httpClient = httpClient;
276
+ const { minRetryTimeout } = getTestOverrides();
277
+ this.retryOptions = {
278
+ maxTimeout: 3 * 1e3,
279
+ minTimeout: minRetryTimeout,
280
+ retries: 3
281
+ };
282
+ }
283
+ retryOptions;
284
+ createComponents = async (appId, componentConfigs, projectId) => {
285
+ try {
286
+ await pRetry(
287
+ () => this.httpClient.request(
288
+ createComponents({
289
+ appId,
290
+ componentConfigs,
291
+ projectId
292
+ })
293
+ ),
294
+ this.retryOptions
295
+ );
296
+ } catch (e) {
297
+ if (isHttpError(e) && e.response?.status === 403) {
298
+ throw new CliError({
299
+ cause: e,
300
+ code: AppPermissionDenied({ appId })
301
+ });
302
+ }
303
+ throw new CliError({
304
+ cause: e,
305
+ code: CliErrorCode.FailedToCreateComponents()
306
+ });
307
+ }
308
+ };
309
+ createAppRelease = async (manifest, projectId) => {
310
+ try {
311
+ const { data } = await pRetry(
312
+ () => this.httpClient.request(
313
+ createAppRelease({
314
+ appId: manifest.appId,
315
+ componentConfigs: manifest.components,
316
+ projectId
317
+ })
318
+ ),
319
+ this.retryOptions
320
+ );
321
+ return createAppReleaseSchema.parse(data).tag;
322
+ } catch (e) {
323
+ if (isHttpError(e) && e.response?.status === 403) {
324
+ throw new CliError({
325
+ cause: e,
326
+ code: AppPermissionDenied({ appId: manifest.appId })
327
+ });
328
+ }
329
+ throw new CliError({
330
+ cause: e,
331
+ code: CliErrorCode.FailedToCreateAppRelease()
332
+ });
333
+ }
334
+ };
335
+ updateAppRelease = async (manifest, tag) => {
336
+ try {
337
+ await pRetry(
338
+ () => this.httpClient.request(
339
+ updateAppRelease({
340
+ appId: manifest.appId,
341
+ componentConfigs: manifest.components,
342
+ tag
343
+ })
344
+ ),
345
+ this.retryOptions
346
+ );
347
+ return UpdateAppReleaseData.TagUpdated();
348
+ } catch (e) {
349
+ if (isHttpError(e)) {
350
+ if (e.response?.status === 404) {
351
+ return UpdateAppReleaseData.TagNotFound({ cause: e });
352
+ }
353
+ if (e.response?.status === 403) {
354
+ throw new CliError({
355
+ cause: e,
356
+ code: AppPermissionDenied({ appId: manifest.appId })
357
+ });
358
+ }
359
+ }
360
+ throw new CliError({
361
+ cause: e,
362
+ code: CliErrorCode.FailedToUpdateAppRelease()
363
+ });
364
+ }
365
+ };
366
+ promoteToDevCenter = async (appId, tag, versionType) => {
367
+ const { data } = await pRetry(
368
+ () => this.httpClient.request(
369
+ promoteAppReleaseToDevCenter({ appId, tag, versionType })
370
+ ),
371
+ this.retryOptions
372
+ );
373
+ return promoteAppReleaseSchema.parse(data);
374
+ };
375
+ };
376
+
377
+ // ../arm-client/src/useARMClient.ts
378
+ init_esm_shims();
379
+ var import_react = __toESM(require_react(), 1);
380
+ function useARMClient() {
381
+ const httpClient = useHttpClient({ type: "backoffice" });
382
+ return (0, import_react.useMemo)(() => new ARMClient(httpClient), [httpClient]);
383
+ }
384
+
385
+ // src/components/DevCommand/useArmUpdater.ts
386
+ var createAppManifestWithBaseUrl = async (model, clientDevServerUrl, backendServerUrl) => {
387
+ const manifest = await createAppManifest({
388
+ appId: model.config.appId,
389
+ components: model.components,
390
+ componentSourceBuilder: getComponentSourceBuilder(
391
+ model,
392
+ { clientDevServerUrl },
393
+ { backendDevServerUrl: backendServerUrl?.localUrl }
394
+ )
395
+ });
396
+ return updateAppManifestWithBaseUrl(
397
+ manifest,
398
+ clientDevServerUrl,
399
+ backendServerUrl?.tunnelUrl
400
+ );
401
+ };
402
+ function useArmUpdater() {
403
+ const { model } = useProjectModel();
404
+ const writeDebugLog = useDebugLog();
405
+ const { createAppRelease: createAppRelease2, updateAppRelease: updateAppRelease2 } = useARMClient();
406
+ return (0, import_react2.useCallback)(
407
+ async ({
408
+ backendServerUrl,
409
+ devServerUrl,
410
+ projectModelWatcher,
411
+ onChange,
412
+ onError
413
+ }) => {
414
+ const { projectId } = model.config;
415
+ const appManifest = await createAppManifestWithBaseUrl(
416
+ model,
417
+ devServerUrl,
418
+ backendServerUrl
419
+ );
420
+ const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);
421
+ const createOrUpdateAppRelease = async (tag) => {
422
+ if (tag) {
423
+ const updateState = await updateAppRelease2(appManifest, tag);
424
+ return (0, import_variant2.match)(updateState, {
425
+ TagUpdated: () => tag,
426
+ TagNotFound: ({ cause }) => {
427
+ writeDebugLog(cause);
428
+ return createAppRelease2(appManifest, projectId);
429
+ }
430
+ });
431
+ }
432
+ return createAppRelease2(appManifest, projectId);
433
+ };
434
+ const armTag = await createOrUpdateAppRelease(appConfig?.devArmTag);
435
+ if (armTag !== appConfig?.devArmTag) {
436
+ await saveAppConfig(model.projectFolder, { devArmTag: armTag }).catch(
437
+ (error) => writeDebugLog(error)
438
+ );
439
+ }
440
+ projectModelWatcher.onChange(async (newModel, changeType) => {
441
+ try {
442
+ if (changeType === "model-updated") {
443
+ if (newModel.components.length === 0) {
444
+ return;
445
+ }
446
+ const updatedAppManifest = await createAppManifestWithBaseUrl(
447
+ newModel,
448
+ devServerUrl,
449
+ backendServerUrl
450
+ );
451
+ if (!deepEqual(appManifest, updatedAppManifest)) {
452
+ await updateAppRelease2(updatedAppManifest, armTag);
453
+ }
454
+ }
455
+ onChange(changeType);
456
+ } catch (e) {
457
+ onError(e);
458
+ }
459
+ }).onError(onError);
460
+ return armTag;
461
+ },
462
+ [createAppRelease2, model, updateAppRelease2, writeDebugLog]
463
+ );
464
+ }
465
+
466
+ // src/components/DevCommand/useDevServer.ts
467
+ init_esm_shims();
468
+ var import_react3 = __toESM(require_react(), 1);
469
+ import { createServer } from "vite";
470
+ function useViteDevServer({
471
+ createConfig
472
+ }) {
473
+ const { reportError } = useErrorReporter();
474
+ const devServerRef = (0, import_react3.useRef)();
475
+ (0, import_react3.useEffect)(() => {
476
+ return () => {
477
+ devServerRef.current?.close().catch(reportError);
478
+ };
479
+ }, [reportError]);
480
+ return (0, import_react3.useCallback)(
481
+ async (options) => {
482
+ const config = await createConfig(options);
483
+ const devServer = await createServer(config);
484
+ devServerRef.current = devServer;
485
+ await devServer.listen();
486
+ return { devServerUrl: getViteServerUrl(devServer), devServer };
487
+ },
488
+ [createConfig]
489
+ );
490
+ }
491
+ function useClientDevServer({ https }) {
492
+ const { model } = useProjectModel();
493
+ const createDevServer = useViteDevServer({
494
+ createConfig: ({ projectModelWatcher, baseBackendUrl, customLogger }) => {
495
+ return getViteConfig(
496
+ model,
497
+ {
498
+ type: "dev" /* dev */,
499
+ https,
500
+ projectModelWatcher,
501
+ customLogger
502
+ },
503
+ { baseBackendUrl }
504
+ );
505
+ }
506
+ });
507
+ return createDevServer;
508
+ }
509
+ function useBackendDevServer({ https }) {
510
+ const { model } = useProjectModel();
511
+ const { getAppSecret } = useDevCenterClient();
512
+ const createDevServer = useViteDevServer({
513
+ createConfig: async ({ projectModelWatcher, customLogger }) => {
514
+ const appSecret = await getAppSecret({
515
+ appId: model.config.appId
516
+ });
517
+ return getViteConfig2(
518
+ model,
519
+ {
520
+ type: "dev" /* dev */,
521
+ https,
522
+ customLogger,
523
+ projectModelWatcher
524
+ },
525
+ appSecret
526
+ );
527
+ }
528
+ });
529
+ return createDevServer;
530
+ }
531
+
532
+ // src/context/armTag.tsx
533
+ init_esm_shims();
534
+ var import_react4 = __toESM(require_react(), 1);
535
+ var ArmTagContext = (0, import_react4.createContext)(null);
536
+ var ArmTagProvider = ({
537
+ children,
538
+ armTag
539
+ }) => {
540
+ return /* @__PURE__ */ import_react4.default.createElement(ArmTagContext.Provider, { value: { armTag } }, children);
541
+ };
542
+ var useArmTag = () => {
543
+ const context = (0, import_react4.useContext)(ArmTagContext);
544
+ if (context == null) {
545
+ throw new Error("useArmTag() cannot be used without an <ArmTagProvider>");
546
+ }
547
+ return context;
548
+ };
549
+
550
+ // src/components/DevCommand/useSiteOverrideUpdater.ts
551
+ init_esm_shims();
552
+ var import_react8 = __toESM(require_react(), 1);
553
+
554
+ // ../site-override-client/src/index.ts
555
+ init_esm_shims();
556
+
557
+ // ../site-override-client/src/client.ts
558
+ init_esm_shims();
559
+
560
+ // ../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/build/es/http.impl.js
561
+ init_esm_shims();
562
+ var _createOverrideRequest = {};
563
+ var _createOverrideResponse = {};
564
+ function resolveWixCliV1SiteOverrideServiceUrl(opts) {
565
+ var domainToMappings = {
566
+ "bo._base_domain_": [
567
+ {
568
+ srcPath: "/_serverless/site-override",
569
+ destPath: ""
570
+ }
571
+ ],
572
+ "wixbo.ai": [
573
+ {
574
+ srcPath: "/_serverless/site-override",
575
+ destPath: ""
576
+ }
577
+ ],
578
+ "wix-bo.com": [
579
+ {
580
+ srcPath: "/_serverless/site-override",
581
+ destPath: ""
582
+ }
583
+ ],
584
+ "manage._base_domain_": [
585
+ {
586
+ srcPath: "/_serverless/site-override",
587
+ destPath: ""
588
+ }
589
+ ]
590
+ };
591
+ return resolveUrl(Object.assign(opts, { domainToMappings }));
592
+ }
593
+ function createOverride(payload) {
594
+ var _a = serializer(_createOverrideRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
595
+ var fromRes = serializer(_createOverrideResponse, {}).fromJSON;
596
+ function __createOverride(_a2) {
597
+ var host = _a2.host;
598
+ var serializedData = toReq(payload);
599
+ var metadata = {
600
+ entityFqdn: "wix.cli.site_override_service.v1.site_override",
601
+ method: "POST",
602
+ methodFqn: "wix.cli.v1.SiteOverrideService.CreateOverride",
603
+ url: resolveWixCliV1SiteOverrideServiceUrl({
604
+ protoPath: "/v1/site-overrides",
605
+ data: serializedData,
606
+ host
607
+ }),
608
+ data: serializedData,
609
+ transformResponse: fromRes
610
+ };
611
+ return metadata;
612
+ }
613
+ __createOverride.fromReq = fromReq;
614
+ __createOverride.__isAmbassador = true;
615
+ return __createOverride;
616
+ }
617
+
618
+ // ../site-override-client/src/schemas.ts
619
+ init_esm_shims();
620
+ var createOverrideSchema = z.object({
621
+ siteOverride: z.object({
622
+ id: z.string()
623
+ })
624
+ });
625
+
626
+ // ../site-override-client/src/client.ts
627
+ var SiteOverrideClient = class {
628
+ constructor(httpClient) {
629
+ this.httpClient = httpClient;
630
+ const { minRetryTimeout } = getTestOverrides();
631
+ this.retryOptions = {
632
+ retries: 3,
633
+ minTimeout: minRetryTimeout,
634
+ maxTimeout: 3 * 1e3
635
+ };
636
+ }
637
+ retryOptions;
638
+ createOverride = async ({
639
+ appId,
640
+ siteId,
641
+ overrides,
642
+ siteOverrideId
643
+ }) => {
644
+ try {
645
+ const { data } = await pRetry(
646
+ () => this.httpClient.request(
647
+ createOverride({
648
+ siteOverride: {
649
+ id: siteOverrideId,
650
+ appId,
651
+ siteId,
652
+ overrides
653
+ }
654
+ })
655
+ ),
656
+ this.retryOptions
657
+ );
658
+ return createOverrideSchema.parse(data).siteOverride;
659
+ } catch (error) {
660
+ if (isHttpError(error) && error.response?.status === 403) {
661
+ if (error.response.data?.details?.applicationError?.code === "PERMISSION_DENIED_FOR_SITE") {
662
+ throw new CliError({
663
+ code: CliErrorCode.SitePermissionDenied({ siteId }),
664
+ cause: error
665
+ });
666
+ }
667
+ throw new CliError({
668
+ code: CliErrorCode.AppPermissionDenied({ appId }),
669
+ cause: error
670
+ });
671
+ }
672
+ throw new CliError({
673
+ code: CliErrorCode.FailedToCreateSiteOverride(),
674
+ cause: error
675
+ });
676
+ }
677
+ };
678
+ };
679
+
680
+ // ../site-override-client/src/useSiteOverrideClient.ts
681
+ init_esm_shims();
682
+ var import_react5 = __toESM(require_react(), 1);
683
+ function useSiteOverrideClient() {
684
+ const httpClient = useHttpClient({ type: "backoffice" });
685
+ return (0, import_react5.useMemo)(() => new SiteOverrideClient(httpClient), [httpClient]);
686
+ }
687
+
688
+ // src/site-override/createSiteOverrides.ts
689
+ init_esm_shims();
690
+ var import_variant3 = __toESM(require_lib(), 1);
691
+
692
+ // ../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/build/es/types.impl.js
693
+ init_esm_shims();
694
+ var Type;
695
+ (function(Type2) {
696
+ Type2["UNKNOWN_TYPE"] = "UNKNOWN_TYPE";
697
+ Type2["EMBEDDED_SCRIPT"] = "EMBEDDED_SCRIPT";
698
+ })(Type || (Type = {}));
699
+ var WebhookIdentityType;
700
+ (function(WebhookIdentityType2) {
701
+ WebhookIdentityType2["UNKNOWN"] = "UNKNOWN";
702
+ WebhookIdentityType2["ANONYMOUS_VISITOR"] = "ANONYMOUS_VISITOR";
703
+ WebhookIdentityType2["MEMBER"] = "MEMBER";
704
+ WebhookIdentityType2["WIX_USER"] = "WIX_USER";
705
+ WebhookIdentityType2["APP"] = "APP";
706
+ })(WebhookIdentityType || (WebhookIdentityType = {}));
707
+
708
+ // src/site-override/createSiteOverrides.ts
709
+ function createSiteOverrides(model) {
710
+ const componentsToOverride = model.components.filter(
711
+ (0, import_variant3.isType)(DevCenterComponent.EmbeddedScript)
712
+ );
713
+ if (componentsToOverride.length === 0) {
714
+ return null;
715
+ }
716
+ return componentsToOverride.reduce(
717
+ (acc, component) => {
718
+ const paramsOverride = component.paramsOverride ?? {};
719
+ return {
720
+ ...acc,
721
+ [component.id]: {
722
+ type: Type.EMBEDDED_SCRIPT,
723
+ componentId: component.id,
724
+ embeddedScriptOptions: { parameters: paramsOverride }
725
+ }
726
+ };
727
+ },
728
+ {}
729
+ );
730
+ }
731
+
732
+ // src/site/useSite.ts
733
+ init_esm_shims();
734
+ var import_react7 = __toESM(require_react(), 1);
735
+
736
+ // src/site/context.ts
737
+ init_esm_shims();
738
+ var import_react6 = __toESM(require_react(), 1);
739
+ var SiteContext = (0, import_react6.createContext)(null);
740
+
741
+ // src/site/useSite.ts
742
+ function useSite() {
743
+ const context = (0, import_react7.useContext)(SiteContext);
744
+ if (context == null) {
745
+ throw new Error("useSite() cannot be used without an <SiteProvider>");
746
+ }
747
+ return context;
748
+ }
749
+
750
+ // src/components/DevCommand/useSiteOverrideUpdater.ts
751
+ function useSiteOverrideUpdater() {
752
+ const { model } = useProjectModel();
753
+ const { site } = useSite();
754
+ const exit = useExit();
755
+ const writeDebugLog = useDebugLog();
756
+ const { createOverride: createOverride2 } = useSiteOverrideClient();
757
+ const { appId } = model.config;
758
+ const siteRef = (0, import_react8.useRef)(site);
759
+ const isUpdaterInitialized = (0, import_react8.useRef)(false);
760
+ (0, import_react8.useEffect)(() => {
761
+ siteRef.current = site;
762
+ const updateSiteOverrides = async () => {
763
+ const overrides = createSiteOverrides(model) ?? {};
764
+ const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);
765
+ const siteOverrideId = appConfig?.devSiteOverrideId;
766
+ if (!siteOverrideId) {
767
+ throw new CliError({
768
+ code: CliErrorCode.InvalidSiteOverrideID(),
769
+ cause: null
770
+ });
771
+ }
772
+ await createOverride2({
773
+ appId,
774
+ siteId: site.id,
775
+ overrides,
776
+ siteOverrideId
777
+ });
778
+ };
779
+ if (isUpdaterInitialized.current) {
780
+ updateSiteOverrides().catch(exit);
781
+ }
782
+ }, [site]);
783
+ return (0, import_react8.useCallback)(
784
+ async ({
785
+ projectModelWatcher
786
+ }) => {
787
+ const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);
788
+ let overrides = createSiteOverrides(model) ?? {};
789
+ const { id: siteOverrideId } = await createOverride2({
790
+ appId,
791
+ siteId: site.id,
792
+ overrides,
793
+ siteOverrideId: appConfig?.devSiteOverrideId
794
+ });
795
+ projectModelWatcher.onChange(async (newModel, changeType) => {
796
+ if (changeType === "model-updated") {
797
+ const updatedOverrides = createSiteOverrides(newModel) ?? {};
798
+ if (!deepEqual(overrides, updatedOverrides)) {
799
+ await createOverride2({
800
+ appId,
801
+ siteId: siteRef.current.id,
802
+ overrides: updatedOverrides,
803
+ siteOverrideId
804
+ });
805
+ overrides = updatedOverrides;
806
+ }
807
+ }
808
+ });
809
+ if (siteOverrideId !== appConfig?.devSiteOverrideId) {
810
+ await saveAppConfig(model.projectFolder, {
811
+ devSiteOverrideId: siteOverrideId
812
+ }).catch((error) => writeDebugLog(error));
813
+ }
814
+ isUpdaterInitialized.current = true;
815
+ return siteOverrideId;
816
+ },
817
+ [model, writeDebugLog, createOverride2, appId, site]
818
+ );
819
+ }
820
+
821
+ // src/context/siteOverride.tsx
822
+ init_esm_shims();
823
+ var import_react9 = __toESM(require_react(), 1);
824
+ var SiteOverrideContext = (0, import_react9.createContext)(null);
825
+ var SiteOverrideProvider = ({ children, siteOverrideId }) => {
826
+ return /* @__PURE__ */ import_react9.default.createElement(SiteOverrideContext.Provider, { value: { siteOverrideId } }, children);
827
+ };
828
+ var useSiteOverrideId = () => {
829
+ const context = (0, import_react9.useContext)(SiteOverrideContext);
830
+ if (context == null) {
831
+ throw new Error(
832
+ "useSiteOverrideId() cannot be used without an <SiteOverrideProvider>"
833
+ );
834
+ }
835
+ return context;
836
+ };
837
+
838
+ // src/components/DevCommand/DevEnvironment.tsx
839
+ var DevEnvironmentContext = (0, import_react10.createContext)(null);
840
+ var DevEnvironmentProvider = ({ https, logger, children }) => {
841
+ const { t } = useTranslation();
842
+ const { reportError } = useErrorReporter();
843
+ const { backendComponents, backendComponentsByType } = useBackendComponents();
844
+ const createClientDevServer = useClientDevServer({ https });
845
+ const createBackendDevServer = useBackendDevServer({ https });
846
+ const startTunnel = useTunnel();
847
+ const createArmUpdater = useArmUpdater();
848
+ const createSiteOverrideUpdater = useSiteOverrideUpdater();
849
+ const { watcher: projectModelWatcher } = useProjectModel();
850
+ const { status } = useAsync(async () => {
851
+ let backendDevServerUrl;
852
+ if (backendComponents.length > 0) {
853
+ backendDevServerUrl = await createBackendDevServer({
854
+ projectModelWatcher,
855
+ customLogger: logger
856
+ }).then(async ({ devServerUrl }) => {
857
+ let tunnelUrl;
858
+ if (backendComponentsByType.Event.length > 0 || backendComponentsByType.ServicePlugin.length > 0) {
859
+ const { url } = await startTunnel(Number(new URL(devServerUrl).port));
860
+ tunnelUrl = url;
861
+ }
862
+ return { localUrl: devServerUrl, tunnelUrl };
863
+ });
864
+ }
865
+ const { devServerUrl: clientDevServerUrl, devServer: clientDevServer } = await createClientDevServer({
866
+ baseBackendUrl: backendDevServerUrl?.localUrl,
867
+ projectModelWatcher,
868
+ customLogger: logger
869
+ });
870
+ const armTag = await createArmUpdater({
871
+ backendServerUrl: backendDevServerUrl,
872
+ devServerUrl: clientDevServerUrl,
873
+ projectModelWatcher,
874
+ onChange(changeType) {
875
+ (0, import_variant4.match)(changeType, {
876
+ "change-received": () => {
877
+ logger.info(t("dev_command.config_change"));
878
+ },
879
+ "model-did-not-change": () => {
880
+ logger.info(t("dev_command.config_didnt_update"));
881
+ },
882
+ "model-updated": () => {
883
+ clientDevServer.ws.send({ type: "full-reload" });
884
+ logger.info(t("dev_command.config_update"));
885
+ }
886
+ });
887
+ },
888
+ onError(error) {
889
+ reportError(error);
890
+ logger.error(/* @__PURE__ */ import_react10.default.createElement(ErrorViewer, { error }));
891
+ logger.info(t("dev_command.config_didnt_update"));
892
+ }
893
+ });
894
+ const siteOverrideId = await createSiteOverrideUpdater({
895
+ projectModelWatcher
896
+ });
897
+ logger.info(
898
+ /* @__PURE__ */ import_react10.default.createElement(Alert, { type: "success" }, t("dev_command.dev_environment.started"))
899
+ );
900
+ return {
901
+ clientDevServerUrl,
902
+ armTag,
903
+ siteOverrideId,
904
+ https
905
+ };
906
+ }, []);
907
+ return (0, import_variant4.match)(status, {
908
+ Error: () => null,
909
+ Loading: () => /* @__PURE__ */ import_react10.default.createElement(Spinner, { text: t("dev_command.dev_environment.loading") }),
910
+ Success: ({
911
+ result: { clientDevServerUrl, https: https2, armTag, siteOverrideId }
912
+ }) => /* @__PURE__ */ import_react10.default.createElement(
913
+ DevEnvironmentContext.Provider,
914
+ {
915
+ value: { clientDevServerUrl, https: https2, logger }
916
+ },
917
+ /* @__PURE__ */ import_react10.default.createElement(SiteOverrideProvider, { siteOverrideId }, /* @__PURE__ */ import_react10.default.createElement(ArmTagProvider, { armTag }, children))
918
+ )
919
+ });
920
+ };
921
+ function useDevEnvironment() {
922
+ const context = (0, import_react10.useContext)(DevEnvironmentContext);
923
+ if (context == null) {
924
+ throw new Error(
925
+ "useDevEnvironment() cannot be used without an <DevEnvironmentProvider>"
926
+ );
927
+ }
928
+ return context;
929
+ }
930
+
931
+ // ../site-list-client/src/site-list-client.ts
932
+ init_esm_shims();
933
+
934
+ // ../../node_modules/@wix/ambassador-site-list-v2-site/build/es/http.impl.js
935
+ init_esm_shims();
936
+ var _querySitesRequest = {};
937
+ var _querySitesResponse = { sites: "_site" };
938
+ var _site = {
939
+ createdDate: "google.protobuf.Timestamp",
940
+ updatedDate: "google.protobuf.Timestamp",
941
+ trashedDate: "google.protobuf.Timestamp"
942
+ };
943
+ function resolveComWixpressSitelistApiSiteListServiceV2Url(opts) {
944
+ var domainToMappings = {
945
+ "www._base_domain_": [
946
+ {
947
+ srcPath: "/_api/sites-list",
948
+ destPath: "/api"
949
+ },
950
+ {
951
+ srcPath: "/_api/sites-list/v2/sites",
952
+ destPath: "/v2/sites"
953
+ }
954
+ ],
955
+ "feedback._base_domain_": [
956
+ {
957
+ srcPath: "/_api/sites-list",
958
+ destPath: "/api"
959
+ }
960
+ ],
961
+ "manage._base_domain_": [
962
+ {
963
+ srcPath: "/_api/sites-list",
964
+ destPath: "/api"
965
+ },
966
+ {
967
+ srcPath: "/_api/sites-list/v2/sites",
968
+ destPath: "/v2/sites"
969
+ },
970
+ {
971
+ srcPath: "/_api/sites-list-data",
972
+ destPath: "/api/sites-list-data"
973
+ }
974
+ ],
975
+ "www.wixapis.com": [
976
+ {
977
+ srcPath: "/site-list/v2/sites",
978
+ destPath: "/v2/sites"
979
+ }
980
+ ],
981
+ "api._api_base_domain_": [
982
+ {
983
+ srcPath: "/sites-list",
984
+ destPath: ""
985
+ }
986
+ ],
987
+ "bo._base_domain_": [
988
+ {
989
+ srcPath: "/_api/sites-list/v2/sites",
990
+ destPath: "/v2/sites"
991
+ }
992
+ ],
993
+ "wixbo.ai": [
994
+ {
995
+ srcPath: "/_api/sites-list/v2/sites",
996
+ destPath: "/v2/sites"
997
+ }
998
+ ],
999
+ "dev._base_domain_": [
1000
+ {
1001
+ srcPath: "/_api/sites-list/v2/sites",
1002
+ destPath: "/v2/sites"
1003
+ }
1004
+ ],
1005
+ "editor._base_domain_": [
1006
+ {
1007
+ srcPath: "/_api/sites-list/v2/sites",
1008
+ destPath: "/v2/sites"
1009
+ }
1010
+ ],
1011
+ "blocks._base_domain_": [
1012
+ {
1013
+ srcPath: "/_api/sites-list/v2/sites",
1014
+ destPath: "/v2/sites"
1015
+ }
1016
+ ],
1017
+ "create.editorx": [
1018
+ {
1019
+ srcPath: "/_api/sites-list/v2/sites",
1020
+ destPath: "/v2/sites"
1021
+ }
1022
+ ]
1023
+ };
1024
+ return resolveUrl(Object.assign(opts, { domainToMappings }));
1025
+ }
1026
+ function querySites(payload) {
1027
+ var _a = serializer(_querySitesRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
1028
+ var fromRes = serializer(_querySitesResponse, { _site }).fromJSON;
1029
+ function __querySites(_a2) {
1030
+ var host = _a2.host;
1031
+ var serializedData = toReq(payload);
1032
+ var metadata = {
1033
+ entityFqdn: "wix.site_list.v2.site",
1034
+ method: "POST",
1035
+ methodFqn: "com.wixpress.sitelist.api.SiteListServiceV2.QuerySites",
1036
+ url: resolveComWixpressSitelistApiSiteListServiceV2Url({
1037
+ protoPath: "/v2/sites/query",
1038
+ data: serializedData,
1039
+ host
1040
+ }),
1041
+ data: serializedData,
1042
+ transformResponse: fromRes
1043
+ };
1044
+ return metadata;
1045
+ }
1046
+ __querySites.fromReq = fromReq;
1047
+ __querySites.__isAmbassador = true;
1048
+ return __querySites;
1049
+ }
1050
+
1051
+ // ../site-list-client/src/schemas.ts
1052
+ init_esm_shims();
1053
+ var siteSchema = z.object({
1054
+ id: z.string(),
1055
+ displayName: z.string(),
1056
+ viewUrl: z.union([z.string().url(), z.literal("")]).optional()
1057
+ });
1058
+ var querySitesSchema = z.object({
1059
+ sites: z.array(siteSchema)
1060
+ });
1061
+
1062
+ // ../site-list-client/src/site-list-client.ts
1063
+ var SiteListClient = class {
1064
+ constructor(httpClient) {
1065
+ this.httpClient = httpClient;
1066
+ const { minRetryTimeout } = getTestOverrides();
1067
+ this.retryOptions = {
1068
+ retries: 3,
1069
+ minTimeout: minRetryTimeout,
1070
+ maxTimeout: 3 * 1e3
1071
+ };
1072
+ }
1073
+ retryOptions;
1074
+ querySites = async (opts = {}) => {
1075
+ try {
1076
+ const { data } = await pRetry(
1077
+ () => this.httpClient.request(querySites(opts)),
1078
+ this.retryOptions
1079
+ );
1080
+ return querySitesSchema.parse(data).sites;
1081
+ } catch (e) {
1082
+ throw new CliError({
1083
+ code: CliErrorCode.FailedToQuerySites(),
1084
+ cause: e,
1085
+ info: { ...opts }
1086
+ });
1087
+ }
1088
+ };
1089
+ getSite = async (id) => {
1090
+ try {
1091
+ const { data } = await pRetry(
1092
+ () => this.httpClient.request(
1093
+ querySites({ query: { filter: { id: { $in: [id] } } } })
1094
+ ),
1095
+ this.retryOptions
1096
+ );
1097
+ const { sites } = querySitesSchema.parse(data);
1098
+ return sites.at(0) ?? null;
1099
+ } catch (e) {
1100
+ throw new CliError({
1101
+ code: CliErrorCode.FailedToGetSite(),
1102
+ cause: e,
1103
+ info: { id }
1104
+ });
1105
+ }
1106
+ };
1107
+ };
1108
+
1109
+ // ../site-list-client/src/useSiteListClient.ts
1110
+ init_esm_shims();
1111
+ var import_react11 = __toESM(require_react(), 1);
1112
+ function useSiteListClient() {
1113
+ const httpClient = useHttpClient({ type: "backoffice" });
1114
+ return (0, import_react11.useMemo)(() => new SiteListClient(httpClient), [httpClient]);
1115
+ }
1116
+
1117
+ // ../site-list-client/src/index.ts
1118
+ init_esm_shims();
1119
+
1120
+ // src/site/site-state.ts
1121
+ init_esm_shims();
1122
+ var import_variant5 = __toESM(require_lib(), 1);
1123
+ var SiteState = (0, import_variant5.variant)({
1124
+ NotConfigured: {},
1125
+ NotFound: (0, import_variant5.fields)(),
1126
+ Resolved: (0, import_variant5.fields)()
1127
+ });
1128
+
1129
+ // src/site/resolve-configured-site.ts
1130
+ init_esm_shims();
1131
+ async function resolveConfiguredSite({
1132
+ projectFolder,
1133
+ siteListClient: { getSite },
1134
+ siteId,
1135
+ writeDebugLog
1136
+ }) {
1137
+ const resolvedSiteId = !siteId ? (await readAppConfig(projectFolder, writeDebugLog))?.siteId : siteId;
1138
+ if (!resolvedSiteId) {
1139
+ return SiteState.NotConfigured();
1140
+ }
1141
+ const site = await getSite(resolvedSiteId);
1142
+ if (!site) {
1143
+ return SiteState.NotFound({ id: resolvedSiteId });
1144
+ }
1145
+ return SiteState.Resolved({ site });
1146
+ }
1147
+
1148
+ // src/components/extensions/utils.tsx
1149
+ init_esm_shims();
1150
+ var import_react12 = __toESM(require_react(), 1);
1151
+ var import_variant6 = __toESM(require_lib(), 1);
1152
+ import { URL as URL2 } from "node:url";
1153
+ var redirectWithCSMv2FTs = (url, platformType) => {
1154
+ const elgarBaseURL = (0, import_variant6.isType)(platformType, PlatformType.Site) ? `${url.origin}/_api` : "https://apps.wix.com";
1155
+ const elgarRedirectUrl = new URL2(`${elgarBaseURL}/elgar-server/redirect`);
1156
+ const petriOvr = [
1157
+ "specs.UseAppsRuntimeCache",
1158
+ "specs.ApplyQueryParamsOverrides",
1159
+ "specs.thunderbolt.passWidgetBundleUrls",
1160
+ "specs.blocks-client.useBundledWidgetCode"
1161
+ ];
1162
+ for (const spec of petriOvr) {
1163
+ elgarRedirectUrl.searchParams.append("experiments", `${spec}#true`);
1164
+ }
1165
+ elgarRedirectUrl.searchParams.append("redirectToUrl", url.toString());
1166
+ elgarRedirectUrl.searchParams.append("staticsVersions", "{}");
1167
+ return elgarRedirectUrl;
1168
+ };
1169
+ function wrapWithRedirectUrl({
1170
+ url,
1171
+ clientDevServerUrl
1172
+ }) {
1173
+ const redirectUrl = new URL2("/redirect", clientDevServerUrl);
1174
+ redirectUrl.searchParams.append("url", url);
1175
+ return redirectUrl.href;
1176
+ }
1177
+ function useResolvePlatformUrl() {
1178
+ const { model } = useProjectModel();
1179
+ const { site } = useSite();
1180
+ const { armTag } = useArmTag();
1181
+ const { siteOverrideId } = useSiteOverrideId();
1182
+ return (0, import_react12.useCallback)(
1183
+ (platformType) => {
1184
+ return resolvePlatformUrl(platformType, {
1185
+ site,
1186
+ appId: model.config.appId,
1187
+ tag: armTag,
1188
+ siteOverrideId
1189
+ });
1190
+ },
1191
+ [site, model.config.appId, armTag, siteOverrideId]
1192
+ );
1193
+ }
1194
+ function useResolvePlatformDevUrl() {
1195
+ const resolvePlatformUrl2 = useResolvePlatformUrl();
1196
+ const { https, clientDevServerUrl } = useDevEnvironment();
1197
+ return (0, import_react12.useCallback)(
1198
+ (platformType) => {
1199
+ let url = resolvePlatformUrl2(platformType);
1200
+ if (https) {
1201
+ url = wrapWithRedirectUrl({ url, clientDevServerUrl });
1202
+ }
1203
+ return url;
1204
+ },
1205
+ [resolvePlatformUrl2, https, clientDevServerUrl]
1206
+ );
1207
+ }
1208
+ function resolvePlatformUrl(platformType, options) {
1209
+ const { site, tag, siteOverrideId } = options;
1210
+ const url = (0, import_variant6.match)(platformType, {
1211
+ Dashboard: () => new URL2(`dashboard/${site.id}`, "https://manage.wix.com/"),
1212
+ Editor: () => new URL2(`https://wix.com/editor/${site.id}`),
1213
+ Site: () => {
1214
+ const siteUrl = new URL2(site.viewUrl);
1215
+ if (siteOverrideId) {
1216
+ siteUrl.searchParams.append("site-override", siteOverrideId);
1217
+ }
1218
+ return siteUrl;
1219
+ }
1220
+ });
1221
+ url.searchParams.append("apps-override", tag);
1222
+ return (0, import_variant6.isOfVariant)(
1223
+ platformType,
1224
+ (0, import_variant6.variantList)([PlatformType.Editor, PlatformType.Site])
1225
+ ) ? redirectWithCSMv2FTs(url, platformType).toString() : url.toString();
1226
+ }
1227
+ function useResolveDashboardExtensionUrl() {
1228
+ const { model } = useProjectModel();
1229
+ const { site } = useSite();
1230
+ const { armTag } = useArmTag();
1231
+ const { siteOverrideId } = useSiteOverrideId();
1232
+ return (0, import_react12.useCallback)(
1233
+ (extension) => {
1234
+ return resolveDashboardExtensionUrl(extension, {
1235
+ site,
1236
+ appId: model.config.appId,
1237
+ tag: armTag,
1238
+ siteOverrideId
1239
+ });
1240
+ },
1241
+ [site, model.config.appId, armTag, siteOverrideId]
1242
+ );
1243
+ }
1244
+ function useResolveDashboardExtensionDevUrl() {
1245
+ const resolveDashboardExtensionUrl2 = useResolveDashboardExtensionUrl();
1246
+ const { https, clientDevServerUrl } = useDevEnvironment();
1247
+ return (0, import_react12.useCallback)(
1248
+ (extension) => {
1249
+ let url = resolveDashboardExtensionUrl2(extension);
1250
+ if (https) {
1251
+ url = wrapWithRedirectUrl({ url, clientDevServerUrl });
1252
+ }
1253
+ return url;
1254
+ },
1255
+ [resolveDashboardExtensionUrl2, https, clientDevServerUrl]
1256
+ );
1257
+ }
1258
+ function resolveDashboardExtensionUrl(extension, options) {
1259
+ const { appId, site, tag } = options;
1260
+ const url = (0, import_variant6.matcher)(extension).with({
1261
+ DashboardPage: () => new URL2(
1262
+ `dashboard/${site.id}/app/${appId}${extension.route}`,
1263
+ "https://manage.wix.com/"
1264
+ )
1265
+ }).when(
1266
+ ["DashboardMenuPlugin", "DashboardPlugin", "DashboardModal"],
1267
+ () => new URL2(
1268
+ `dashboard/${site.id}${extension.route}`,
1269
+ "https://manage.wix.com/"
1270
+ )
1271
+ ).complete();
1272
+ url.searchParams.append("apps-override", tag);
1273
+ return url.toString();
1274
+ }
1275
+ var useOpenPage = () => {
1276
+ const { logger } = useDevEnvironment();
1277
+ return (0, import_react12.useCallback)(
1278
+ async ({ url, title }) => {
1279
+ try {
1280
+ await openBrowser(url);
1281
+ } catch {
1282
+ logger.error(
1283
+ /* @__PURE__ */ import_react12.default.createElement(Alert, { type: "error" }, /* @__PURE__ */ import_react12.default.createElement(
1284
+ Trans,
1285
+ {
1286
+ i18nKey: "general.open_page_error",
1287
+ components: [/* @__PURE__ */ import_react12.default.createElement(Text, { bold: true })],
1288
+ values: { title }
1289
+ }
1290
+ ), /* @__PURE__ */ import_react12.default.createElement(Newline, null), /* @__PURE__ */ import_react12.default.createElement(Link, { url }))
1291
+ );
1292
+ }
1293
+ },
1294
+ [logger]
1295
+ );
1296
+ };
1297
+
1298
+ export {
1299
+ SiteListClient,
1300
+ useSiteListClient,
1301
+ SiteContext,
1302
+ SiteState,
1303
+ resolveConfiguredSite,
1304
+ ARMClient,
1305
+ useARMClient,
1306
+ ArmTagProvider,
1307
+ useArmTag,
1308
+ useSiteOverrideClient,
1309
+ createSiteOverrides,
1310
+ useSite,
1311
+ SiteOverrideProvider,
1312
+ DevEnvironmentProvider,
1313
+ useDevEnvironment,
1314
+ redirectWithCSMv2FTs,
1315
+ useResolvePlatformUrl,
1316
+ useResolvePlatformDevUrl,
1317
+ resolvePlatformUrl,
1318
+ useResolveDashboardExtensionUrl,
1319
+ useResolveDashboardExtensionDevUrl,
1320
+ resolveDashboardExtensionUrl,
1321
+ useOpenPage
1322
+ };
1323
+ //# sourceMappingURL=chunk-3KMSVIRS.js.map