@wix/cli-app 1.1.89 → 1.1.90

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 (80) hide show
  1. package/build/{AddPermissionCommand-2YPAU7OW.js → AddPermissionCommand-XY4GGAKI.js} +2 -2
  2. package/build/{CreateVersionCommand-PRWTINI7.js → CreateVersionCommand-AFO6QZ3K.js} +3 -3
  3. package/build/{DevCommand-QZJYRWL6.js → DevCommand-LMH2ZEYS.js} +114 -11
  4. package/build/DevCommand-LMH2ZEYS.js.map +1 -0
  5. package/build/{GenerateCommand-RUUOZIHZ.js → GenerateCommand-3CK2O4L6.js} +7 -7
  6. package/build/{LogsCommand-CYDOEGLP.js → LogsCommand-T2OR2ZNI.js} +3 -3
  7. package/build/PreviewCommand-GKWGXWGO.js +19 -0
  8. package/build/ReleaseCommand-VRSGVCA5.js +28 -0
  9. package/build/{ServeCommand-7NSOPNJF.js → ServeCommand-RPXEURIC.js} +3 -3
  10. package/build/{build-73EP4WHX.js → build-R24UOFVB.js} +6 -6
  11. package/build/{chunk-OGZPS3MG.js → chunk-3C7IDKDV.js} +2 -2
  12. package/build/{chunk-2HDS4ZWR.js → chunk-AGCEJPNC.js} +2 -2
  13. package/build/{chunk-6WCP2JAM.js → chunk-AWOS3TAC.js} +158 -3
  14. package/build/{chunk-6WCP2JAM.js.map → chunk-AWOS3TAC.js.map} +1 -1
  15. package/build/{chunk-MO5LBUBH.js → chunk-BFYHGTJS.js} +3 -3
  16. package/build/{chunk-4NGBBEXE.js → chunk-CNLLDB7V.js} +6 -6
  17. package/build/{chunk-EUMKSOWX.js → chunk-DT5SDTRI.js} +4 -4
  18. package/build/{chunk-AYJSLRDQ.js → chunk-EYJO2C25.js} +4 -4
  19. package/build/{chunk-IJMHSG3L.js → chunk-G2EJCOG4.js} +2 -2
  20. package/build/{chunk-JNBDGVOZ.js → chunk-HUQZJ7BP.js} +2 -2
  21. package/build/{chunk-BWPO4SRH.js → chunk-K3B5VWLJ.js} +2 -2
  22. package/build/{chunk-ZEMJL4BF.js → chunk-M7GDC5QO.js} +2 -2
  23. package/build/{chunk-2VVRDZWE.js → chunk-MAYXQQ44.js} +6 -6
  24. package/build/{chunk-3JZI5Z2Q.js → chunk-S3RIMPQQ.js} +443 -12
  25. package/build/{chunk-3JZI5Z2Q.js.map → chunk-S3RIMPQQ.js.map} +1 -1
  26. package/build/{chunk-QMEDSKG3.js → chunk-UUZAWTTZ.js} +2 -2
  27. package/build/{chunk-KLJCH3V7.js → chunk-YB5ZT6ZJ.js} +2 -2
  28. package/build/{chunk-2SU57F7I.js → chunk-YBZ4LUI2.js} +13 -7
  29. package/build/{chunk-2SU57F7I.js.map → chunk-YBZ4LUI2.js.map} +1 -1
  30. package/build/{chunk-H36QZENX.js → chunk-ZZSRD3XC.js} +5 -3
  31. package/build/{chunk-H36QZENX.js.map → chunk-ZZSRD3XC.js.map} +1 -1
  32. package/build/cloudflare-runtime/entry.js +1 -1
  33. package/build/cloudflare-runtime/getRegisteredExtensions.js +1 -1
  34. package/build/index.js +25 -25
  35. package/build/platform-sdk/chunk-BGTZ3RNN.js +2 -0
  36. package/build/platform-sdk/chunk-BGTZ3RNN.js.map +1 -0
  37. package/build/platform-sdk/chunk-LPGY6RYR.js +2 -0
  38. package/build/platform-sdk/chunk-LPGY6RYR.js.map +1 -0
  39. package/build/platform-sdk/{chunk-3WHQP2RD.js → chunk-MM2KVUBI.js} +2 -2
  40. package/build/platform-sdk/dashboard.js +1 -1
  41. package/build/platform-sdk/editor.js +1 -1
  42. package/build/platform-sdk/sdk-context.js +1 -1
  43. package/build/platform-sdk/sdk-context.js.map +1 -1
  44. package/build/platform-sdk/site.js +1 -1
  45. package/build/{preview-QRW2EM5P.js → preview-MQRVT6F3.js} +12 -12
  46. package/build/{release-MGYPKXX3.js → release-BVT34U5G.js} +14 -14
  47. package/build/{render-command-V2CJCT3J.js → render-command-I7TJW3BF.js} +5 -5
  48. package/package.json +2 -2
  49. package/build/DevCommand-QZJYRWL6.js.map +0 -1
  50. package/build/PreviewCommand-QHWB6EJY.js +0 -19
  51. package/build/ReleaseCommand-UU3NTHNH.js +0 -28
  52. package/build/platform-sdk/chunk-42XIZ4MH.js +0 -2
  53. package/build/platform-sdk/chunk-42XIZ4MH.js.map +0 -1
  54. package/build/platform-sdk/chunk-7LWEMZNS.js +0 -2
  55. package/build/platform-sdk/chunk-7LWEMZNS.js.map +0 -1
  56. /package/build/{AddPermissionCommand-2YPAU7OW.js.map → AddPermissionCommand-XY4GGAKI.js.map} +0 -0
  57. /package/build/{CreateVersionCommand-PRWTINI7.js.map → CreateVersionCommand-AFO6QZ3K.js.map} +0 -0
  58. /package/build/{GenerateCommand-RUUOZIHZ.js.map → GenerateCommand-3CK2O4L6.js.map} +0 -0
  59. /package/build/{LogsCommand-CYDOEGLP.js.map → LogsCommand-T2OR2ZNI.js.map} +0 -0
  60. /package/build/{PreviewCommand-QHWB6EJY.js.map → PreviewCommand-GKWGXWGO.js.map} +0 -0
  61. /package/build/{ReleaseCommand-UU3NTHNH.js.map → ReleaseCommand-VRSGVCA5.js.map} +0 -0
  62. /package/build/{ServeCommand-7NSOPNJF.js.map → ServeCommand-RPXEURIC.js.map} +0 -0
  63. /package/build/{build-73EP4WHX.js.map → build-R24UOFVB.js.map} +0 -0
  64. /package/build/{chunk-OGZPS3MG.js.map → chunk-3C7IDKDV.js.map} +0 -0
  65. /package/build/{chunk-2HDS4ZWR.js.map → chunk-AGCEJPNC.js.map} +0 -0
  66. /package/build/{chunk-MO5LBUBH.js.map → chunk-BFYHGTJS.js.map} +0 -0
  67. /package/build/{chunk-4NGBBEXE.js.map → chunk-CNLLDB7V.js.map} +0 -0
  68. /package/build/{chunk-EUMKSOWX.js.map → chunk-DT5SDTRI.js.map} +0 -0
  69. /package/build/{chunk-AYJSLRDQ.js.map → chunk-EYJO2C25.js.map} +0 -0
  70. /package/build/{chunk-IJMHSG3L.js.map → chunk-G2EJCOG4.js.map} +0 -0
  71. /package/build/{chunk-JNBDGVOZ.js.map → chunk-HUQZJ7BP.js.map} +0 -0
  72. /package/build/{chunk-BWPO4SRH.js.map → chunk-K3B5VWLJ.js.map} +0 -0
  73. /package/build/{chunk-ZEMJL4BF.js.map → chunk-M7GDC5QO.js.map} +0 -0
  74. /package/build/{chunk-2VVRDZWE.js.map → chunk-MAYXQQ44.js.map} +0 -0
  75. /package/build/{chunk-QMEDSKG3.js.map → chunk-UUZAWTTZ.js.map} +0 -0
  76. /package/build/{chunk-KLJCH3V7.js.map → chunk-YB5ZT6ZJ.js.map} +0 -0
  77. /package/build/platform-sdk/{chunk-3WHQP2RD.js.map → chunk-MM2KVUBI.js.map} +0 -0
  78. /package/build/{preview-QRW2EM5P.js.map → preview-MQRVT6F3.js.map} +0 -0
  79. /package/build/{release-MGYPKXX3.js.map → release-BVT34U5G.js.map} +0 -0
  80. /package/build/{render-command-V2CJCT3J.js.map → render-command-I7TJW3BF.js.map} +0 -0
@@ -8,7 +8,7 @@ import {
8
8
  useAsync,
9
9
  useDevCenterClient,
10
10
  useProjectModel
11
- } from "./chunk-3JZI5Z2Q.js";
11
+ } from "./chunk-S3RIMPQQ.js";
12
12
  import {
13
13
  __toESM,
14
14
  init_esm_shims
@@ -40,4 +40,4 @@ var AddPermissionCommand = ({ permissionId }) => {
40
40
  export {
41
41
  AddPermissionCommand
42
42
  };
43
- //# sourceMappingURL=AddPermissionCommand-2YPAU7OW.js.map
43
+ //# sourceMappingURL=AddPermissionCommand-XY4GGAKI.js.map
@@ -3,14 +3,14 @@ const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  createPackageManager,
5
5
  getRepoType
6
- } from "./chunk-IJMHSG3L.js";
6
+ } from "./chunk-G2EJCOG4.js";
7
7
  import "./chunk-ZR3N5INU.js";
8
8
  import {
9
9
  CliError,
10
10
  CliErrorCode,
11
11
  useAsync,
12
12
  useProjectModel
13
- } from "./chunk-3JZI5Z2Q.js";
13
+ } from "./chunk-S3RIMPQQ.js";
14
14
  import {
15
15
  init_esm_shims
16
16
  } from "./chunk-PYIAC2GK.js";
@@ -42,4 +42,4 @@ var CreateVersionCommandDeprecated = () => {
42
42
  export {
43
43
  CreateVersionCommandDeprecated
44
44
  };
45
- //# sourceMappingURL=CreateVersionCommand-PRWTINI7.js.map
45
+ //# sourceMappingURL=CreateVersionCommand-AFO6QZ3K.js.map
@@ -17,23 +17,23 @@ import {
17
17
  useResolveDashboardExtensionDevUrl,
18
18
  useResolvePlatformDevUrl,
19
19
  useSite
20
- } from "./chunk-2SU57F7I.js";
20
+ } from "./chunk-YBZ4LUI2.js";
21
21
  import {
22
22
  useWixCliAppBi
23
- } from "./chunk-JNBDGVOZ.js";
23
+ } from "./chunk-HUQZJ7BP.js";
24
24
  import {
25
25
  useBackendComponents
26
- } from "./chunk-H36QZENX.js";
27
- import "./chunk-BWPO4SRH.js";
26
+ } from "./chunk-ZZSRD3XC.js";
27
+ import "./chunk-K3B5VWLJ.js";
28
28
  import "./chunk-ZR3N5INU.js";
29
- import "./chunk-2HDS4ZWR.js";
29
+ import "./chunk-AGCEJPNC.js";
30
30
  import {
31
31
  createLogger
32
- } from "./chunk-KLJCH3V7.js";
32
+ } from "./chunk-YB5ZT6ZJ.js";
33
33
  import {
34
34
  createCustomElementConfig
35
- } from "./chunk-6WCP2JAM.js";
36
- import "./chunk-ZEMJL4BF.js";
35
+ } from "./chunk-AWOS3TAC.js";
36
+ import "./chunk-M7GDC5QO.js";
37
37
  import {
38
38
  Alert,
39
39
  Box_default,
@@ -62,6 +62,8 @@ import {
62
62
  readJson,
63
63
  require_lib,
64
64
  require_react,
65
+ resolveUrl,
66
+ serializer,
65
67
  useAsync,
66
68
  useAsyncCallback,
67
69
  useBiLogger,
@@ -76,7 +78,7 @@ import {
76
78
  userConfigSchema,
77
79
  writeJson,
78
80
  z
79
- } from "./chunk-3JZI5Z2Q.js";
81
+ } from "./chunk-S3RIMPQQ.js";
80
82
  import {
81
83
  __toESM,
82
84
  init_esm_shims
@@ -1297,14 +1299,85 @@ var import_react18 = __toESM(require_react(), 1);
1297
1299
  // ../metasite-manager-client/src/metasite-manager-client.ts
1298
1300
  init_esm_shims();
1299
1301
 
1302
+ // ../../node_modules/@wix/ambassador-metasite-api-v1-meta-site/build/es/http.impl.js
1303
+ init_esm_shims();
1304
+ var _createMetaSiteFromTemplateRequest = {};
1305
+ var _createMetaSiteFromTemplateResponse = { metaSite: "_metaSite" };
1306
+ var _metaSite = {
1307
+ dateCreated: "google.protobuf.Timestamp",
1308
+ dateUpdated: "google.protobuf.Timestamp",
1309
+ accountCreatedDate: "google.protobuf.Timestamp"
1310
+ };
1311
+ function resolveComWixpressMetasiteApiV1MetaSiteLifecycleUrl(opts) {
1312
+ var domainToMappings = {
1313
+ "www._base_domain_": [
1314
+ {
1315
+ srcPath: "/_api/msm-writer",
1316
+ destPath: ""
1317
+ },
1318
+ {
1319
+ srcPath: "/_api/msm",
1320
+ destPath: ""
1321
+ }
1322
+ ],
1323
+ "manage._base_domain_": [
1324
+ {
1325
+ srcPath: "/_api/msm-writer",
1326
+ destPath: ""
1327
+ },
1328
+ {
1329
+ srcPath: "/_api/msm",
1330
+ destPath: ""
1331
+ }
1332
+ ],
1333
+ "www.wixapis.com": [
1334
+ {
1335
+ srcPath: "/msm",
1336
+ destPath: ""
1337
+ }
1338
+ ]
1339
+ };
1340
+ return resolveUrl(Object.assign(opts, { domainToMappings }));
1341
+ }
1342
+ function createMetaSiteFromTemplate(payload2) {
1343
+ var _a = serializer(_createMetaSiteFromTemplateRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
1344
+ var fromRes = serializer(_createMetaSiteFromTemplateResponse, { _metaSite }).fromJSON;
1345
+ function __createMetaSiteFromTemplate(_a2) {
1346
+ var host = _a2.host;
1347
+ var serializedData = toReq(payload2);
1348
+ var metadata = {
1349
+ entityFqdn: "wix.metasite.api.v1.meta_site",
1350
+ method: "POST",
1351
+ methodFqn: "com.wixpress.metasite.api.v1.MetaSiteLifecycle.CreateMetaSiteFromTemplate",
1352
+ url: resolveComWixpressMetasiteApiV1MetaSiteLifecycleUrl({
1353
+ protoPath: "/v1/meta-site/create-from-template",
1354
+ data: serializedData,
1355
+ host
1356
+ }),
1357
+ data: serializedData,
1358
+ transformResponse: fromRes
1359
+ };
1360
+ return metadata;
1361
+ }
1362
+ __createMetaSiteFromTemplate.fromReq = fromReq;
1363
+ __createMetaSiteFromTemplate.__isAmbassador = true;
1364
+ return __createMetaSiteFromTemplate;
1365
+ }
1366
+
1300
1367
  // ../metasite-manager-client/src/schemas.ts
1301
1368
  init_esm_shims();
1302
1369
  var clientSpecMapSchema = z.record(
1303
1370
  z.object({
1304
1371
  appDefinitionId: z.string().optional(),
1305
- permissions: z.object({ revoked: z.boolean() }).optional()
1372
+ permissions: z.object({ revoked: z.boolean() }).optional(),
1373
+ instanceId: z.string().optional()
1306
1374
  })
1307
1375
  );
1376
+ var createMetaSiteFromTemplateSchema = z.object({
1377
+ metaSite: z.object({
1378
+ metaSiteId: z.string()
1379
+ })
1380
+ });
1308
1381
 
1309
1382
  // ../metasite-manager-client/src/metasite-manager-client.ts
1310
1383
  var MetasiteManagerClient = class {
@@ -1324,6 +1397,19 @@ var MetasiteManagerClient = class {
1324
1397
  });
1325
1398
  }
1326
1399
  };
1400
+ createMetaSiteFromTemplate = async (request) => {
1401
+ try {
1402
+ const { data } = await this.httpClient.request(
1403
+ createMetaSiteFromTemplate(request)
1404
+ );
1405
+ return createMetaSiteFromTemplateSchema.parse(data).metaSite;
1406
+ } catch (e) {
1407
+ throw new CliError({
1408
+ code: CliErrorCode.FailedToCreateMetaSiteFromTemplate(),
1409
+ cause: e
1410
+ });
1411
+ }
1412
+ };
1327
1413
  getSiteInstalledApps = async (metaSiteId) => {
1328
1414
  try {
1329
1415
  const clientSpecMap = await this.getClientSpecMap(metaSiteId);
@@ -1335,6 +1421,23 @@ var MetasiteManagerClient = class {
1335
1421
  });
1336
1422
  }
1337
1423
  };
1424
+ getInstalledAppInstanceId = async ({
1425
+ metaSiteId,
1426
+ appId
1427
+ }) => {
1428
+ try {
1429
+ const clientSpecMap = await this.getClientSpecMap(metaSiteId);
1430
+ const installedApp = Object.values(clientSpecMap).find(
1431
+ (spec) => spec.appDefinitionId === appId
1432
+ );
1433
+ return installedApp?.instanceId ?? "";
1434
+ } catch (e) {
1435
+ throw new CliError({
1436
+ code: CliErrorCode.FailedToGetSiteInstalledAppInstanceId(),
1437
+ cause: e
1438
+ });
1439
+ }
1440
+ };
1338
1441
  };
1339
1442
 
1340
1443
  // ../metasite-manager-client/src/useMetasiteManagerClient.ts
@@ -1404,4 +1507,4 @@ export {
1404
1507
  DevCommand,
1405
1508
  DevEnvironmentProvider
1406
1509
  };
1407
- //# sourceMappingURL=DevCommand-QZJYRWL6.js.map
1510
+ //# sourceMappingURL=DevCommand-LMH2ZEYS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DevCommand/index.ts","../src/components/DevCommand/DevCommand.tsx","../src/components/DevCommand/DevCommandScreens.tsx","../src/components/DevCommand/HomeScreen.tsx","../src/components/DevCommand/screen-state.ts","../src/components/Platform/PlatformSelector.tsx","../src/components/DevCommand/EditorInstallation.tsx","../src/components/DevCommand/AppComponentsMigrations.tsx","../src/components/DevCommand/useCustomElementsMigration.tsx","../src/components/DevCommand/useBlocksComponentsMigrations.tsx","../src/components/DevCommand/DashboardNumericViewer.tsx","../src/components/CloseScreen/CloseScreen.tsx","../src/components/DevCommand/DashboardScreen.tsx","../src/components/DevCommand/DashboardArrowViewer.tsx","../src/components/NumericViewer/index.ts","../src/components/NumericViewer/NumericViewer.tsx","../src/components/DevCommand/SiteSelectorScreen.tsx","../src/components/CloseScreen/index.tsx","../src/components/DevCommand/BackendScreen.tsx","../src/components/DevCommand/BackendNumericViewer.tsx","../src/components/DevCommand/BackendArrowViewer.tsx","../src/components/DevCommand/TunnelingConsent.tsx","../../cli-user-config/src/user-config.ts","../src/components/DevCommand/RequiredAppsWarning.tsx","../../metasite-manager-client/src/index.ts","../../metasite-manager-client/src/useMetasiteManagerClient.ts","../../metasite-manager-client/src/metasite-manager-client.ts","../../../node_modules/@wix/ambassador-metasite-api-v1-meta-site/http.impl.ts","../../metasite-manager-client/src/schemas.ts","../src/components/DevCommand/DevScreenBorder.tsx"],"sourcesContent":["export { DevCommand } from './DevCommand.js';\nexport { DevEnvironmentProvider } from './DevEnvironment.js';\n","import React, { useMemo } from 'react';\nimport type { FC } from 'react';\nimport { SiteProvider } from '../../site/SiteProvider.js';\nimport { DevEnvironmentProvider } from './DevEnvironment.js';\nimport { DevCommandScreens } from './DevCommandScreens.js';\nimport { TunnelingConsent } from './TunnelingConsent.js';\nimport { RequiredAppsWarning } from './RequiredAppsWarning.js';\nimport { DevScreenBorder } from './DevScreenBorder.js';\nimport { createLogger } from '../../vite/logger.js';\nimport { EditorInstallation } from './EditorInstallation.js';\nimport { AppComponentsMigrations } from './AppComponentsMigrations.js';\nimport { ExtensionDataProvider } from '../../context/extensionData.js';\n\nexport const DevCommand: FC<{ https: boolean }> = ({ https }) => {\n const logger = useMemo(() => createLogger({ timestamp: true }), []);\n\n return (\n <SiteProvider>\n <TunnelingConsent>\n <DevEnvironmentProvider logger={logger} https={https}>\n <AppComponentsMigrations>\n <EditorInstallation>\n <RequiredAppsWarning>\n <ExtensionDataProvider>\n <DevScreenBorder>\n <DevCommandScreens />\n </DevScreenBorder>\n </ExtensionDataProvider>\n </RequiredAppsWarning>\n </EditorInstallation>\n </AppComponentsMigrations>\n </DevEnvironmentProvider>\n </TunnelingConsent>\n </SiteProvider>\n );\n};\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { HomeScreen } from './HomeScreen.js';\nimport { SiteSelectorScreen } from './SiteSelectorScreen.js';\nimport { ScreenState } from './screen-state.js';\nimport { DashboardScreen } from './DashboardScreen.js';\nimport { BackendScreen } from './BackendScreen.js';\n\nexport const DevCommandScreens: FC = () => {\n const [screen, setScreen] = useState<ScreenState>(ScreenState.Home());\n\n return match(screen, {\n Home: () => <HomeScreen onScreenChange={setScreen} />,\n SiteSelector: () => <SiteSelectorScreen onScreenChange={setScreen} />,\n DashboardScreen: ({ selectorType }) => (\n <DashboardScreen\n initialSelectorType={selectorType}\n onSelect={() => setScreen(ScreenState.Home())}\n onClose={() => setScreen(ScreenState.Home())}\n />\n ),\n BackendScreen: ({ selectorType }) => (\n <BackendScreen\n initialSelectorType={selectorType}\n onSelect={() => setScreen(ScreenState.Home())}\n onClose={() => setScreen(ScreenState.Home())}\n />\n ),\n });\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Box, Text, Link, useInput, Key } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { isType } from 'variant';\nimport { useSite } from '../../site/index.js';\nimport { ScreenState } from './screen-state.js';\nimport { PlatformSelector } from '../Platform/PlatformSelector.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport { DashboardNumericViewer } from './DashboardNumericViewer.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport { usePlatform } from '../Platform/usePlatform.js';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const HomeScreen: FC<Props> = ({ onScreenChange }) => {\n const { t } = useTranslation();\n const { site } = useSite();\n const bi = useWixCliAppBi();\n const { hasSinglePlatform } = usePlatform();\n const { hasExtensions, dashboardExtensions } = useExtensions();\n const { backendComponents } = useBackendComponents();\n\n useInput(async (input) => {\n if (input === 'c') {\n bi.cliAction({\n question: t('dev_command.dev_site.change'),\n questionKey: 'dev_command.dev_site.change',\n action: 'change_site',\n key: input,\n });\n onScreenChange(ScreenState.SiteSelector());\n }\n });\n\n return (\n <>\n <Box gap={1}>\n <Trans\n i18nKey=\"dev_command.dev_site.current\"\n values={{ siteName: site.displayName }}\n components={[<Text bold skin=\"info\" />]}\n />\n\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"dev_command.dev_site.change\"\n components={[<Key value=\"C\" skin=\"secondary\" />]}\n />\n </Text>\n </Box>\n\n <Box paddingTop={1} paddingBottom={1} flexDirection=\"column\">\n {!hasExtensions() ? (\n <Trans\n i18nKey=\"general.platform.none\"\n // Original link is:\n // https://dev.wix.com/docs/build-apps/developer-tools/cli/get-started/about-the-wix-cli-for-apps\n components={[<Link url=\"https://wix.to/b7o4Ml0\" />]}\n />\n ) : (\n <>\n {hasSinglePlatform(PlatformType.Dashboard()) &&\n backendComponents.length === 0 &&\n dashboardExtensions.some(\n (dashboardExtension) =>\n !isType(dashboardExtension, 'DashboardModal')\n ) ? (\n <DashboardNumericViewer\n onViewMore={(selectorType) =>\n onScreenChange(\n ScreenState.DashboardScreen({\n selectorType,\n })\n )\n }\n />\n ) : (\n <>\n <Trans\n i18nKey=\"general.view_changes\"\n components={[<Text skin=\"secondary\" />]}\n />\n <PlatformSelector\n onMultipleDashboardExtensionSelection={() =>\n onScreenChange(ScreenState.DashboardScreen())\n }\n onMultipleBackendComponentSelection={() =>\n onScreenChange(ScreenState.BackendScreen())\n }\n />\n </>\n )}\n </>\n )}\n </Box>\n </>\n );\n};\n","import { fields, variant } from 'variant';\nimport type { VariantOf } from 'variant';\nimport type { DashboardScreenSelector } from './DashboardScreen.js';\nimport type { BackendScreenSelector } from './BackendScreen.js';\n\nexport const ScreenState = variant({\n Home: {},\n SiteSelector: {},\n DashboardScreen: fields<{ selectorType?: DashboardScreenSelector }>(),\n BackendScreen: fields<{ selectorType?: BackendScreenSelector }>(),\n});\n\nexport type ScreenState = VariantOf<typeof ScreenState>;\n","import React, { useCallback, useMemo } from 'react';\nimport type { FC } from 'react';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { PointerSmallIcon, Key, useInput, Text, Box } from '@wix/cli-ui-kit';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport {\n useOpenPage,\n useResolveBlocksEditorURL,\n useResolveDashboardExtensionDevUrl,\n useResolvePlatformDevUrl,\n} from '../extensions/utils.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport { usePlatform } from './usePlatform.js';\nimport { useSite } from '../../site/useSite.js';\nimport { useEditorInstallation } from '../DevCommand/EditorInstallation.js';\nimport { useBlocksCLIDevServerProvider } from '../DevCommand/BlocksCLIServerProvider.js';\nimport { useExtensionData } from '../../context/extensionData.js';\n\ninterface PlatformOptionProps {\n inputKey: string;\n label: string;\n suffix?: React.ReactNode;\n disabled?: boolean;\n}\n\nconst PlatformOption: FC<PlatformOptionProps> = ({\n label,\n inputKey,\n suffix,\n disabled,\n}) => {\n const getTextSkin = () => (disabled ? 'secondary' : 'standard');\n\n return (\n <Box>\n <Box marginRight={1}>\n <Box marginRight={1}>\n <Text skin={getTextSkin()}>\n <PointerSmallIcon /> <Key value={inputKey} /> -\n </Text>\n </Box>\n <Box gap={1}>\n <Text skin={getTextSkin()}>{label}</Text>\n </Box>\n </Box>\n <Text skin={getTextSkin()}>{suffix}</Text>\n </Box>\n );\n};\n\ninterface PlatformSelector {\n onMultipleDashboardExtensionSelection: () => void;\n onMultipleBackendComponentSelection: () => void;\n}\n\nexport const PlatformSelector: FC<PlatformSelector> = ({\n onMultipleDashboardExtensionSelection,\n}) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n const { isPlatformExists } = usePlatform();\n const { openEditor } = useEditorInstallation();\n const { dashboardExtensions } = useExtensions();\n const resolvePlatformUrl = useResolvePlatformDevUrl();\n const resolveDashboardExtensionUrl = useResolveDashboardExtensionDevUrl();\n const resolveBlocksEditorUrl = useResolveBlocksEditorURL();\n const { enabled: isBlocksEnabled } = useBlocksCLIDevServerProvider();\n const { site } = useSite();\n const openPage = useOpenPage();\n const { getDashboardExtensionsRoute } = useExtensionData();\n\n const openPlatform = useCallback(\n async (platformType: PlatformType) => {\n await openPage({\n title: platformType.type,\n url: resolvePlatformUrl(platformType),\n });\n },\n [openPage, resolvePlatformUrl]\n );\n\n useInput(async (input) => {\n if (input === 'd' && isPlatformExists(PlatformType.Dashboard())) {\n bi.cliAction({\n question: t('general.view_changes'),\n questionKey: 'general.view_changes',\n action: t('general.platform.dashboard'),\n key: input,\n });\n if (dashboardExtensions.length === 1 && dashboardExtensions[0]) {\n await openPage({\n title: 'Dashboard',\n url: resolveDashboardExtensionUrl(dashboardExtensions[0]),\n });\n } else {\n onMultipleDashboardExtensionSelection();\n }\n }\n\n if (input === 'e' && isPlatformExists(PlatformType.Editor())) {\n bi.cliAction({\n question: t('general.view_changes'),\n questionKey: 'general.view_changes',\n action: t('general.platform.editor'),\n key: input,\n });\n\n await openEditor();\n }\n\n if (\n input === 's' &&\n site.viewUrl &&\n isPlatformExists(PlatformType.Site())\n ) {\n bi.cliAction({\n question: t('general.view_changes'),\n questionKey: 'general.view_changes',\n action: t('general.platform.site'),\n key: input,\n });\n await openPlatform(PlatformType.Site());\n }\n\n if (input === 'b' && isBlocksEnabled) {\n bi.cliAction({\n question: t('general.view_changes'),\n questionKey: 'general.view_changes',\n action: t('general.platform.blocks_editor'),\n key: input,\n });\n\n await openPage({\n title: t('general.platform.blocks_editor'),\n url: resolveBlocksEditorUrl(),\n });\n }\n // TODO: Uncomment once https://jira.wixpress.com/browse/FEDINF-12234 is done\n // if (input === 'b' && model.backendComponents.length > 0) {\n // bi.cliAction({\n // question: t('general.view_changes'),\n // questionKey: 'general.view_changes',\n // action: t('general.platform.backend'),\n // key: input,\n // });\n // onMultipleBackendComponentSelection();\n // }\n });\n\n const dashboardOptionSuffix = useMemo(() => {\n if (dashboardExtensions.length === 0) {\n return null;\n }\n if (dashboardExtensions.length === 1 && dashboardExtensions[0]) {\n const route = getDashboardExtensionsRoute(dashboardExtensions[0]);\n return <Text skin=\"secondary\"> - {route}</Text>;\n }\n return <Text>{String.fromCodePoint(0x25bc)}</Text>; // ▼\n }, [dashboardExtensions, getDashboardExtensionsRoute]);\n\n return (\n <Box paddingLeft={2} flexDirection=\"column\">\n {isPlatformExists(PlatformType.Site()) && (\n <PlatformOption\n inputKey=\"S\"\n label={\n site.viewUrl\n ? t('general.platform.site')\n : t('general.platform.unpublished_site')\n }\n disabled={!site.viewUrl}\n />\n )}\n {isPlatformExists(PlatformType.Editor()) && (\n <PlatformOption inputKey=\"E\" label={t('general.platform.editor')} />\n )}\n {isPlatformExists(PlatformType.Dashboard()) && (\n <PlatformOption\n inputKey=\"D\"\n label={t('general.platform.dashboard')}\n suffix={dashboardOptionSuffix}\n />\n )}\n {isBlocksEnabled && (\n <PlatformOption\n inputKey=\"B\"\n label={t('general.platform.blocks_editor')}\n />\n )}\n {/*\n // TODO: Uncomment once https://jira.wixpress.com/browse/FEDINF-12234 is done\n {(hasComponentByType('Event') || hasComponentByType('ServicePlugin')) && (\n <PlatformOption\n inputKey=\"B\"\n label={t('general.platform.backend')}\n suffix={<Text>{String.fromCodePoint(0x25bc)}</Text>} // ▼\n />\n )} */}\n </Box>\n );\n};\n","import React, {\n useCallback,\n useState,\n createContext,\n useContext,\n useEffect,\n useMemo,\n} from 'react';\nimport type { FC, ReactNode } from 'react';\nimport pWaitFor, { TimeoutError } from 'p-wait-for';\nimport { Spinner, useAsync, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { useErrorReporter } from '@wix/cli-error-reporting';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { SiteAuthProvider } from '@wix/cli-auth';\nimport { useTranslation } from '@wix/cli-i18n';\nimport type { VariantOf } from 'variant';\nimport { fields, isType, match, partial, variant } from 'variant';\nimport { useProjectModel } from '../../model.js';\nimport {\n redirectWithCSMv2FTs,\n useOpenPage,\n useResolvePlatformDevUrl,\n} from '../extensions/utils.js';\nimport { useSite } from '../../site/useSite.js';\nimport { useArmTag } from '../../context/armTag.js';\nimport { usePlatform } from '../Platform/usePlatform.js';\nimport { useAppComponentsMigrationsContext } from './AppComponentsMigrations.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\n\nfunction isAbortError(error: unknown) {\n return (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n error.name === 'AbortError'\n );\n}\n\ninterface EditorInstallationState {\n openEditor: () => Promise<void>;\n}\n\nconst EditorInstallationContext = createContext<EditorInstallationState | null>(\n null\n);\n\nexport function useEditorInstallation(): EditorInstallationState {\n const context = useContext(EditorInstallationContext);\n if (context == null) {\n throw new Error(\n 'useEditorInstallation() cannot be used without an <EditorInstallationProvider>'\n );\n }\n return context;\n}\n\nconst EditorInstallationStatus = variant({\n CheckInstallation: {},\n NotInstalled: fields<{\n installationUrl: string;\n checkInstalledState: CheckAppInstalledState;\n }>(),\n WaitForInstallation: fields<{ installationUrl: string }>(),\n Installed: {},\n});\n\ntype EditorInstallationStatus = VariantOf<typeof EditorInstallationStatus>;\n\ntype CheckAppInstalledState = (wait?: boolean) => Promise<boolean>;\n\nconst CheckEditorInstallation: FC<{\n onReady: (cb: CheckAppInstalledState) => void;\n}> = ({ onReady }) => {\n const { model } = useProjectModel();\n const { isAppInstalledInEditor } = useDevCenterClient();\n const { reportError } = useErrorReporter();\n const { site } = useSite();\n\n const checkAppInstalledState = useAsyncCallback(\n async ({ signal }, shouldWait = false): Promise<boolean> => {\n const { appId } = model.config;\n const { pollInterval } = getTestOverrides();\n\n try {\n if (shouldWait) {\n await pWaitFor(() => isAppInstalledInEditor(appId), {\n // Polling interval is set to 6.5 seconds to avoid rate limiting (429)\n interval: pollInterval ?? 6500,\n timeout: {\n milliseconds: 60 * 1000 * 2,\n signal,\n },\n });\n\n return true;\n }\n\n return await isAppInstalledInEditor(appId);\n } catch (error) {\n if (!isAbortError(error) && !(error instanceof TimeoutError)) {\n reportError(\n new CliError({\n cause: error,\n code: CliErrorCode.WaitForEditorInstallationStateFailure(),\n })\n );\n }\n\n return false;\n }\n }\n );\n\n useAsync(async () => {\n onReady(checkAppInstalledState.execute);\n }, [site.id]);\n\n return null;\n};\n\nexport const EditorInstallation: FC<{\n children: ReactNode;\n}> = ({ children }) => {\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const httpClient = useHttpClient({ type: 'backoffice' });\n const { isPlatformExists } = usePlatform();\n const { getExtensions } = useExtensions();\n const { site } = useSite();\n const { armTag } = useArmTag();\n const openPage = useOpenPage();\n const { addedSitePresence } = useAppComponentsMigrationsContext();\n const resolvePlatformUrl = useResolvePlatformDevUrl();\n const [editorInstallationStatus, setEditorInstallationStatus] =\n useState<EditorInstallationStatus>(\n EditorInstallationStatus.CheckInstallation()\n );\n\n const openAddPanel = useMemo(\n () =>\n getExtensions('CustomElement').some(\n (element) =>\n !element.installation?.autoAddToSite &&\n (element.presets?.length ?? 0) > 0\n ),\n [getExtensions]\n );\n\n const openEditor = useCallback(async () => {\n const platformType = PlatformType.Editor();\n\n const installationUrl = match(\n editorInstallationStatus,\n partial({\n NotInstalled: ({ installationUrl }) => installationUrl,\n WaitForInstallation: ({ installationUrl }) => installationUrl,\n default: () => resolvePlatformUrl(platformType, openAddPanel),\n })\n );\n\n await openPage({ title: platformType.type, url: installationUrl });\n\n if (isType(editorInstallationStatus, 'NotInstalled')) {\n setEditorInstallationStatus(\n EditorInstallationStatus.WaitForInstallation({ installationUrl })\n );\n const isInstalled =\n await editorInstallationStatus.checkInstalledState(true);\n\n if (isInstalled) {\n setEditorInstallationStatus(EditorInstallationStatus.Installed());\n } else {\n setEditorInstallationStatus(editorInstallationStatus);\n }\n }\n }, [openPage, resolvePlatformUrl, editorInstallationStatus, openAddPanel]);\n\n const buildInstallationUrl = useCallback(async () => {\n const { data: signedAppMarketParams } = await httpClient\n .post<string>('/_serverless/app-market-json-web-token/json-web-token', {\n data: {\n data: JSON.stringify({\n appDefId: model.config.appId,\n version: 'latest',\n }),\n },\n })\n .catch((e: unknown) => {\n throw new CliError({\n code: CliErrorCode.FailedToGenerateAppMarketQueryParam(),\n cause: e,\n });\n });\n\n const url = new URL(`https://wix.com/editor/${site.id}`);\n url.searchParams.append('openPanel', 'appMarket');\n url.searchParams.append('preferAppManager', 'true');\n url.searchParams.append('appMarketParams', signedAppMarketParams);\n url.searchParams.append('apps-override', armTag);\n\n if (openAddPanel) {\n url.searchParams.append('deeplink', `addpanel!${model.config.appId}`);\n }\n\n return redirectWithCSMv2FTs(url, PlatformType.Editor()).toString();\n }, [httpClient, model.config.appId, site.id, armTag, openAddPanel]);\n\n const { status, execute } = useAsyncCallback(\n async (_, checkInstalledState: CheckAppInstalledState) => {\n if (isPlatformExists(PlatformType.Editor())) {\n const isInstalled = addedSitePresence\n ? false\n : await checkInstalledState();\n\n if (!isInstalled) {\n const installationUrl = await buildInstallationUrl();\n\n return setEditorInstallationStatus(\n EditorInstallationStatus.NotInstalled({\n installationUrl,\n checkInstalledState,\n })\n );\n }\n }\n\n return setEditorInstallationStatus(EditorInstallationStatus.Installed());\n }\n );\n\n useEffect(() => {\n setEditorInstallationStatus(EditorInstallationStatus.CheckInstallation());\n }, [site.id]);\n\n return (\n <EditorInstallationContext.Provider value={{ openEditor }}>\n {!isType(editorInstallationStatus, 'Installed') && (\n <SiteAuthProvider siteId={site.id}>\n <CheckEditorInstallation onReady={execute} />\n </SiteAuthProvider>\n )}\n {match(status, {\n NotRequested: () => null,\n Loading: () => <Spinner text={t('general.loading')} />,\n Error: () => null,\n Success: () => children,\n })}\n </EditorInstallationContext.Provider>\n );\n};\n","import React, { createContext, useContext } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match } from 'variant';\nimport { Spinner, useAsync } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { useARMClient } from '@wix/arm-client';\nimport { useCustomElementsMigration } from './useCustomElementsMigration.js';\nimport { useProjectModel } from '../../model.js';\nimport { useBlocksComponentsMigration } from './useBlocksComponentsMigrations.js';\n\ninterface AppMigrationsContextProps {\n addedSitePresence: boolean;\n}\n\nconst AppMigrationsContext = createContext<AppMigrationsContextProps | null>(\n null\n);\n\nexport const AppComponentsMigrations: FC<{\n children: ReactNode;\n}> = ({ children }) => {\n const { getAppByVersion } = useDevCenterClient();\n const { createComponents } = useARMClient();\n const getCustomElementMigrationComponents = useCustomElementsMigration();\n const getBlocksMigrationComponents = useBlocksComponentsMigration();\n const { t } = useTranslation();\n const { model } = useProjectModel();\n\n const appMigrationsContextData = useAsync(async () => {\n const {\n data: { components },\n } = await getAppByVersion({\n appId: model.config.appId,\n });\n\n const newBlocksComponents = getBlocksMigrationComponents(components) ?? [];\n const newCustomElementsComponents =\n getCustomElementMigrationComponents(components) ?? [];\n\n const componentsToCreate = [\n ...newCustomElementsComponents,\n ...newBlocksComponents,\n ];\n\n if (componentsToCreate.length) {\n await createComponents(\n model.config.appId,\n componentsToCreate,\n model.config.projectId\n );\n }\n\n return {\n addedSitePresence: !!newCustomElementsComponents.length,\n };\n }, [model.components]);\n\n return match(appMigrationsContextData.status, {\n Error: () => null,\n Loading: () => <Spinner text={t('general.loading')} />,\n Success: ({ result: { addedSitePresence } }) => {\n return (\n <AppMigrationsContext.Provider value={{ addedSitePresence }}>\n {children}\n </AppMigrationsContext.Provider>\n );\n },\n });\n};\n\nexport function useAppComponentsMigrationsContext(): AppMigrationsContextProps {\n const context = useContext(AppMigrationsContext);\n\n if (context == null) {\n throw new Error(\n 'useAppMigrationsContext() cannot be used without a <AppMigrationsProvider>'\n );\n }\n\n return context;\n}\n","import { useCallback } from 'react';\nimport { isType } from 'variant';\nimport { ComponentType } from '@wix/ambassador-devcenter-apps-v1-app-old/types';\nimport type { AppComponents } from '@wix/dev-center-client';\nimport type { CustomElement } from '@wix/cli-app-manifest';\nimport { useProjectModel } from '../../model.js';\nimport { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport { createCustomElementConfig } from '../../app-manifest/create.js';\n\n// You can find dummy-custom-element codebase at https://github.com/wix-private/wix-cli-internal/tree/9b2a26e76375313eabb735df459944f67d7002d7/packages/wix-cli-dummy-custom-element\nconst DUMMY_CUSTOM_ELEMENT_TAG_NAME = 'wix-cli-dummy-custom-element';\nconst DUMMY_CUSTOM_ELEMENT_URL =\n 'https://www.unpkg.com/@wix/cli-dummy-custom-element';\nconst DUMMY_CUSTOM_ELEMENT_THUMBNAIL_URL =\n 'https://www.unpkg.com/@wix/cli-dummy-custom-element/dist/preset/thumbnail.png';\n\nexport function useCustomElementsMigration() {\n const { model } = useProjectModel();\n\n const getNewElements = useCallback(\n (newCustomElements: Array<DevCenterComponent<'CustomElement'>>) => {\n return newCustomElements.map<CustomElement>((customElement) => {\n const config = createCustomElementConfig(\n customElement,\n DUMMY_CUSTOM_ELEMENT_URL\n );\n\n return {\n ...config,\n compData: {\n customElementWidget: {\n ...config.compData.customElementWidget,\n widgetData: {\n ...config.compData.customElementWidget.widgetData,\n tagName: DUMMY_CUSTOM_ELEMENT_TAG_NAME,\n },\n presets: config.compData.customElementWidget.presets?.map(\n (preset) => ({\n ...preset,\n thumbnailUrl: DUMMY_CUSTOM_ELEMENT_THUMBNAIL_URL,\n })\n ),\n },\n },\n };\n });\n },\n []\n );\n\n return useCallback(\n (appComponents: AppComponents) => {\n const localCustomElements = model.components.filter((component) =>\n isType(component, DevCenterComponent.CustomElement)\n );\n\n if (!localCustomElements.length) {\n return;\n }\n\n const existingCustomElements = appComponents.filter(\n (component) =>\n component.compType === ComponentType.CUSTOM_ELEMENT_WIDGET\n );\n\n const newCustomElements = localCustomElements.filter(\n (localCustomElement) =>\n !existingCustomElements.some(\n (customElement) => customElement.compId === localCustomElement.id\n )\n );\n\n if (!newCustomElements.length) {\n return;\n }\n\n return getNewElements(newCustomElements);\n },\n [getNewElements, model.components]\n );\n}\n","import { useCallback } from 'react';\nimport { isType } from 'variant';\nimport { ComponentType } from '@wix/dev-center-client';\nimport type { AppComponents } from '@wix/dev-center-client';\nimport { useProjectModel } from '../../model.js';\nimport { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\n\nexport function useBlocksComponentsMigration() {\n const { model } = useProjectModel();\n\n const virtualStudioComponent = model.components.find(\n isType(DevCenterComponent.BlocksMainComponent)\n );\n\n return useCallback(\n (appComponents: AppComponents) => {\n const doesStudioComponentExists = appComponents.some(\n (component) => component.compType === ComponentType.STUDIO\n );\n\n if (!model.config.blocks || doesStudioComponentExists) {\n return;\n }\n\n const studioComponent = {\n compId: virtualStudioComponent?.id,\n compType: 'STUDIO',\n compData: {},\n compName: 'studio',\n };\n\n return [studioComponent];\n },\n [model, virtualStudioComponent]\n );\n}\n","import React, { useMemo, useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Box, useInput } from '@wix/cli-ui-kit';\nimport { lookup, match } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport {\n useOpenPage,\n useResolveDashboardExtensionDevUrl,\n} from '../extensions/utils.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport { DashboardScreenSelector } from './DashboardScreen.js';\nimport type { DashboardExtension } from '../extensions/useExtensions.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport { NumericViewer } from '../NumericViewer/index.js';\nimport { NumericOption } from '../NumericViewer/NumericViewer.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport { useExtensionData } from '../../context/extensionData.js';\n\nconst MAX_EXTENSIONS = 9;\nconst MAX_DASHBOARD_PAGES = 3;\nconst MAX_PAGE_PLUGINS = 3;\nconst MAX_MENU_PLUGINS = 3;\n\ninterface Props {\n onViewMore: (dashboardScreenSelector: DashboardScreenSelector) => void;\n onSelect?: (page: DevCenterComponent<DashboardExtension>) => void;\n onClose?: () => void;\n}\n\nexport const DashboardNumericViewer: FC<Props> = ({\n onViewMore,\n onSelect,\n onClose,\n}) => {\n const { t } = useTranslation();\n const { getExtensions } = useExtensions();\n const { getDashboardExtensionsRoute } = useExtensionData();\n const bi = useWixCliAppBi();\n const resolveDashboardExtensionUrl = useResolveDashboardExtensionDevUrl();\n const openPage = useOpenPage();\n\n const dashboardExtensions = useMemo(\n () => ({\n dashboardPages: getExtensions('DashboardPage'),\n dashboardMenuPlugins: getExtensions('DashboardMenuPlugin'),\n dashboardPlugins: getExtensions('DashboardPlugin'),\n }),\n [getExtensions]\n );\n\n const dashboardPagesData = dashboardExtensions.dashboardPages.slice(\n 0,\n dashboardExtensions.dashboardPages.length > MAX_DASHBOARD_PAGES\n ? MAX_DASHBOARD_PAGES - 1\n : dashboardExtensions.dashboardPages.length\n );\n\n const dashboardPagesShowMoreIndex =\n dashboardExtensions.dashboardPages.length > dashboardPagesData.length\n ? dashboardPagesData.length + 1\n : undefined;\n\n const dashboardPagesCount = Math.max(\n dashboardPagesData.length,\n dashboardPagesShowMoreIndex ?? 0\n );\n\n const maxMenuPlugins = Math.min(\n MAX_MENU_PLUGINS,\n Math.floor((MAX_EXTENSIONS - dashboardPagesCount) / 2)\n );\n\n const dashboardMenuPluginsData =\n dashboardExtensions.dashboardMenuPlugins.slice(\n 0,\n dashboardExtensions.dashboardMenuPlugins.length > maxMenuPlugins\n ? maxMenuPlugins - 1\n : dashboardExtensions.dashboardMenuPlugins.length\n );\n\n const dashboardMenuPluginsShowMoreIndex =\n dashboardExtensions.dashboardMenuPlugins.length >\n dashboardMenuPluginsData.length\n ? dashboardMenuPluginsData.length + dashboardPagesCount + 1\n : undefined;\n\n const dashboardMenuPluginsCount = Math.max(\n dashboardMenuPluginsData.length + dashboardPagesCount,\n dashboardMenuPluginsShowMoreIndex ?? 0\n );\n\n const maxPagePlugins = Math.min(\n MAX_PAGE_PLUGINS,\n MAX_EXTENSIONS - dashboardMenuPluginsCount\n );\n\n const dashboardPluginsData = dashboardExtensions.dashboardPlugins.slice(\n 0,\n dashboardExtensions.dashboardPlugins.length > maxPagePlugins\n ? maxPagePlugins - 1\n : dashboardExtensions.dashboardPlugins.length\n );\n\n const dashboardPluginsShowMoreIndex =\n dashboardExtensions.dashboardPlugins.length > dashboardPluginsData.length\n ? dashboardPluginsData.length + dashboardMenuPluginsCount + 1\n : undefined;\n\n const visibleItems: Array<\n NumericOption<DevCenterComponent<DashboardExtension>, DashboardExtension>\n > = [\n ...dashboardPagesData.map((page) =>\n NumericOption.Item({\n title: page.title,\n description: page.route,\n value: page,\n })\n ),\n ...(dashboardPagesShowMoreIndex\n ? [NumericOption.ViewMore('DashboardPage' as DashboardExtension)]\n : []),\n ...dashboardMenuPluginsData.map((menuPlugin) =>\n NumericOption.Item({\n title: menuPlugin.title,\n description: getDashboardExtensionsRoute(menuPlugin),\n value: menuPlugin,\n })\n ),\n ...(dashboardMenuPluginsShowMoreIndex\n ? [NumericOption.ViewMore('DashboardMenuPlugin' as DashboardExtension)]\n : []),\n ...dashboardPluginsData.map((pagePlugin) =>\n NumericOption.Item({\n title: pagePlugin.title,\n description: getDashboardExtensionsRoute(pagePlugin),\n value: pagePlugin,\n })\n ),\n ...(dashboardPluginsShowMoreIndex\n ? [NumericOption.ViewMore('DashboardPlugin' as DashboardExtension)]\n : []),\n ];\n\n const getLabelKey = (\n dashboardExtension: DevCenterComponent<DashboardExtension>\n ) => {\n return match(\n dashboardExtension,\n lookup({\n DashboardPage: 'general.dashboard_pages_viewer.title',\n DashboardMenuPlugin: 'general.dashboard_menu_plugins_viewer.title',\n DashboardPlugin: 'general.dashboard_plugins_viewer.title',\n DashboardModal: '', // NOTE: No key for this type\n })\n );\n };\n\n useInput(async (input) => {\n const inputNumber = Number(input);\n if (inputNumber > 0 && inputNumber <= visibleItems.length) {\n const itemIndex = inputNumber - 1;\n const item = visibleItems.at(itemIndex);\n if (item) {\n await match(item, {\n Item: async (item) => {\n bi.cliAction({\n question: t(getLabelKey(item.value)),\n questionKey: getLabelKey(item.value),\n action: item.title,\n key: input,\n });\n await handleSelect(item.value);\n },\n ViewMore: (viewMore) => {\n bi.cliAction({\n question: t('general.numeric_viewer.show_more'),\n questionKey: 'general.numeric_viewer.show_more',\n action: 'view_more',\n key: input,\n });\n onViewMore(\n DashboardScreenSelector.Arrow({\n dashboardExtension: viewMore.payload,\n })\n );\n },\n });\n }\n }\n });\n\n const handleSelect = useCallback(\n async (dashboardExtension: DevCenterComponent<DashboardExtension>) => {\n const url = resolveDashboardExtensionUrl(dashboardExtension);\n\n await openPage({\n url,\n title: dashboardExtension.title,\n });\n onSelect?.(dashboardExtension);\n },\n [onSelect, openPage, resolveDashboardExtensionUrl]\n );\n\n const dashboardPages = visibleItems.slice(0, dashboardPagesCount);\n const dashboardMenuPlugins = visibleItems.slice(\n dashboardPagesCount,\n dashboardMenuPluginsCount\n );\n const dashboardPlugins = visibleItems.slice(dashboardMenuPluginsCount);\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n {dashboardPages.length > 0 && (\n <NumericViewer\n startIndex={0}\n titleKey=\"general.dashboard_pages_viewer.title\"\n items={dashboardPages}\n />\n )}\n {dashboardMenuPlugins.length > 0 && (\n <NumericViewer\n startIndex={dashboardPagesCount}\n titleKey=\"general.dashboard_menu_plugins_viewer.title\"\n items={dashboardMenuPlugins}\n />\n )}\n {dashboardPlugins.length > 0 && (\n <NumericViewer\n startIndex={dashboardMenuPluginsCount}\n titleKey=\"general.dashboard_plugins_viewer.title\"\n items={dashboardPlugins}\n />\n )}\n {onClose && <CloseScreen onClose={onClose} />}\n </Box>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Key, Text, useInput } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { useWixCliAppBi } from '../../bi/index.js';\n\ninterface Props {\n onClose: () => void;\n}\n\nexport const CloseScreen: FC<Props> = ({ onClose }) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n\n useInput((_, key) => {\n if (key.escape) {\n bi.cliAction({\n question: t('general.close_screen'),\n questionKey: 'general.close_screen',\n action: 'close',\n key: 'esc',\n });\n onClose();\n }\n });\n\n return (\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"general.close_screen\"\n components={[<Key value=\"esc\" skin=\"secondary\" />]}\n />\n </Text>\n );\n};\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { fields, match, variant } from 'variant';\nimport type { VariantOf } from 'variant';\nimport { DashboardArrowViewer } from './DashboardArrowViewer.js';\nimport { DashboardNumericViewer } from './DashboardNumericViewer.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type { DashboardExtension } from '../extensions/useExtensions.js';\n\nexport const DashboardScreenSelector = variant({\n Arrow: fields<{\n dashboardExtension: DashboardExtension;\n }>(),\n Numeric: {},\n});\n\nexport type DashboardScreenSelector = VariantOf<typeof DashboardScreenSelector>;\n\ninterface Props {\n onClose: () => void;\n onSelect?: (page: DevCenterComponent<DashboardExtension>) => void;\n initialSelectorType?: DashboardScreenSelector;\n}\n\nexport const DashboardScreen: FC<Props> = ({\n onClose,\n onSelect,\n initialSelectorType = DashboardScreenSelector.Numeric(),\n}) => {\n const [selectorType, setSelectorType] =\n useState<DashboardScreenSelector>(initialSelectorType);\n\n return (\n <>\n {match(selectorType, {\n Arrow: ({ dashboardExtension }) => (\n <DashboardArrowViewer\n dashboardExtension={dashboardExtension}\n onSelect={onSelect}\n onClose={onClose}\n />\n ),\n Numeric: () => (\n <DashboardNumericViewer\n onViewMore={setSelectorType}\n onSelect={onSelect}\n onClose={onClose}\n />\n ),\n })}\n </>\n );\n};\n","import React, { useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Box, SelectInput } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { match, lookup } from 'variant';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport {\n useOpenPage,\n useResolveDashboardExtensionDevUrl,\n} from '../extensions/utils.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport type { DashboardExtension } from '../extensions/useExtensions.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport { useExtensionData } from '../../context/extensionData.js';\n\ninterface Props {\n dashboardExtension: DashboardExtension;\n onSelect?: (page: DevCenterComponent<DashboardExtension>) => void;\n onClose: () => void;\n}\n\nexport const DashboardArrowViewer: FC<Props> = ({\n dashboardExtension,\n onClose,\n onSelect,\n}) => {\n const { t } = useTranslation();\n const { getExtensions } = useExtensions();\n const bi = useWixCliAppBi();\n const resolveDashboardExtensionUrl = useResolveDashboardExtensionDevUrl();\n const { getDashboardExtensionsRoute } = useExtensionData();\n const openPage = useOpenPage();\n\n const getLabelKey = useCallback(\n () =>\n match(\n dashboardExtension,\n lookup({\n DashboardPlugin:\n 'dev_command.dashboard_page_plugin_screen.select_label',\n DashboardMenuPlugin:\n 'dev_command.dashboard_menu_plugin_screen.select_label',\n DashboardPage: 'dev_command.dashboard_pages_screen.select_label',\n DashboardModal: 'dev_command.dashboard_modal_screen.select_label',\n })\n ),\n [dashboardExtension]\n );\n\n const handleSubmit = useCallback(\n async (dashboardExtension: DevCenterComponent<DashboardExtension>) => {\n const url = resolveDashboardExtensionUrl(dashboardExtension);\n bi.cliAction({\n question: t(getLabelKey()),\n questionKey: getLabelKey(),\n action: dashboardExtension.title,\n key: 'enter',\n });\n await openPage({ url, title: dashboardExtension.title });\n onSelect?.(dashboardExtension);\n },\n [resolveDashboardExtensionUrl, bi, t, getLabelKey, openPage, onSelect]\n );\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n <Box flexDirection=\"column\">\n <SelectInput<DevCenterComponent<DashboardExtension>>\n label={t(getLabelKey())}\n options={getExtensions(dashboardExtension).map(\n (dashboardExtensionInstance) => ({\n key: dashboardExtensionInstance.id,\n title: dashboardExtensionInstance.title,\n description: getDashboardExtensionsRoute(\n dashboardExtensionInstance\n ),\n value: dashboardExtensionInstance,\n })\n )}\n onSubmit={({ value: dashboardExtensionInstance }) =>\n handleSubmit(dashboardExtensionInstance)\n }\n />\n </Box>\n <CloseScreen onClose={onClose} />\n </Box>\n );\n};\n","export { NumericViewer, type NumericOption } from './NumericViewer.js';\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { Box, Text, Key, PointerSmallIcon } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { variant, onTerms, fields, match, payload } from 'variant';\nimport type { TypeNames, GVariantOf } from 'variant';\n\nconst ListItem: FC<{\n itemNumber: number;\n children: ReactNode;\n}> = ({ itemNumber, children }) => {\n const keyValue = `${itemNumber}`;\n return (\n <Box flexDirection=\"row\" gap={1}>\n <Text>\n <PointerSmallIcon /> <Key value={keyValue} /> -\n </Text>\n {children}\n </Box>\n );\n};\n\nexport const NumericOption = variant(\n onTerms(({ I: _I, V }) => ({\n Item: fields<{ title: string; description?: string; value: typeof _I }>(),\n ViewMore: payload(V),\n }))\n);\n\nexport type NumericOption<\n I,\n V,\n TType extends TypeNames<typeof NumericOption> = undefined,\n> = GVariantOf<typeof NumericOption, TType, { I: I; V: V }>;\n\ninterface Props<I, V> {\n startIndex: number;\n titleKey: string;\n items: Array<NumericOption<I, V>>;\n}\n\nexport function NumericViewer<I, V>({\n startIndex,\n titleKey,\n items,\n}: Props<I, V>) {\n return (\n <Box flexDirection=\"column\">\n <Trans i18nKey={titleKey} />\n <Box paddingLeft={2} flexDirection=\"column\">\n {items.map((item, index) => (\n <ListItem\n key={startIndex + index + 1}\n itemNumber={startIndex + index + 1}\n >\n {match(item, {\n Item: ({ title, description }) => (\n <Box flexDirection=\"row\" gap={1}>\n <Text>{title}</Text>\n {description && <Text skin=\"secondary\">({description})</Text>}\n </Box>\n ),\n ViewMore: () => (\n <Trans i18nKey=\"general.numeric_viewer.show_more\" />\n ),\n })}\n </ListItem>\n ))}\n </Box>\n </Box>\n );\n}\n","import React, { useState, useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Alert, Box, PointerIcon } from '@wix/cli-ui-kit';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport type { Site } from '@wix/site-list-client';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { SiteSelector } from '@wix/cli-site-selector';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { useProjectModel } from '../../model.js';\nimport { useSite } from '../../site/index.js';\nimport { CloseScreen } from '../CloseScreen/index.js';\nimport { ScreenState } from './screen-state.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const SiteSelectorScreen: FC<Props> = ({ onScreenChange }) => {\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const biLogger = useBiLogger();\n const { site, setSite } = useSite();\n const { reportError } = useErrorReporter();\n const [error, setError] = useState<unknown>(null);\n\n const handleError = useCallback(\n (error: unknown) => {\n reportError(error);\n setError(error);\n },\n [reportError, setError]\n );\n\n const handleSubmit = useCallback(\n async (site: Site) => {\n try {\n await setSite(site);\n onScreenChange(ScreenState.Home());\n } catch (e) {\n handleError(e);\n }\n },\n [setSite, onScreenChange, handleError]\n );\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n <Box gap={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"general.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box flexDirection=\"column\">\n <SiteSelector\n appId={model.config.appId}\n biLogger={biLogger}\n onSubmit={handleSubmit}\n onError={handleError}\n />\n {error ? (\n <ErrorViewer\n error={error}\n systemErrorOverride={\n <Alert type=\"error\">{t('dev_command.site_selector.error')}</Alert>\n }\n />\n ) : null}\n </Box>\n <CloseScreen onClose={() => onScreenChange(ScreenState.Home())} />\n </Box>\n );\n};\n","export { CloseScreen } from './CloseScreen.js';\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { fields, match, variant } from 'variant';\nimport type { VariantOf } from 'variant';\nimport { BackendNumericViewer } from './BackendNumericViewer.js';\nimport { BackendArrowViewer } from './BackendArrowViewer.js';\nimport type {\n BackendViewerComponent,\n BackendViewerComponentNames,\n} from './backend-viewer.js';\n\nexport const BackendScreenSelector = variant({\n Arrow: fields<{\n backendComponentName: BackendViewerComponentNames;\n }>(),\n Numeric: {},\n});\n\nexport type BackendScreenSelector = VariantOf<typeof BackendScreenSelector>;\n\ninterface Props {\n onClose: () => void;\n onSelect?: (backendComponent: BackendViewerComponent) => void;\n initialSelectorType?: BackendScreenSelector;\n}\n\nexport const BackendScreen: FC<Props> = ({\n onClose,\n onSelect,\n initialSelectorType = BackendScreenSelector.Numeric(),\n}) => {\n const [selectorType, setSelectorType] =\n useState<BackendScreenSelector>(initialSelectorType);\n\n return (\n <>\n {match(selectorType, {\n Arrow: ({ backendComponentName }) => (\n <BackendArrowViewer\n backendComponentName={backendComponentName}\n onSelect={onSelect}\n onClose={onClose}\n />\n ),\n Numeric: () => (\n <BackendNumericViewer\n onViewMore={setSelectorType}\n onClose={onClose}\n />\n ),\n })}\n </>\n );\n};\n","import React, { useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Box, useInput } from '@wix/cli-ui-kit';\nimport { match, lookup } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\nimport {\n NumericOption,\n NumericViewer,\n} from '../NumericViewer/NumericViewer.js';\nimport { BackendScreenSelector } from './BackendScreen.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type {\n BackendViewerComponent,\n BackendViewerComponentNames,\n} from './backend-viewer.js';\n\nconst MAX_BACKEND_COMPONENT = 9;\nconst MAX_SERVICE_PLUGINS = 4;\nconst MAX_EVENTS = 5;\n\ninterface Props {\n onViewMore: (backendScreen: BackendScreenSelector) => void;\n onSelect?: (backendComponent: BackendViewerComponent) => void;\n onClose?: () => void;\n}\n\nexport const BackendNumericViewer: FC<Props> = ({\n onViewMore,\n onSelect,\n onClose,\n}) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n const { backendComponentsByType } = useBackendComponents();\n\n const servicePluginsData = backendComponentsByType.ServicePlugin.slice(\n 0,\n backendComponentsByType.ServicePlugin.length > MAX_SERVICE_PLUGINS\n ? MAX_SERVICE_PLUGINS - 1\n : backendComponentsByType.ServicePlugin.length\n );\n\n const servicePluginsShowMoreIndex =\n backendComponentsByType.ServicePlugin.length > servicePluginsData.length\n ? servicePluginsData.length + 1\n : undefined;\n\n const servicePluginsCount = Math.max(\n servicePluginsData.length,\n servicePluginsShowMoreIndex ?? 0\n );\n\n const maxBackendEvents = Math.min(\n MAX_EVENTS,\n MAX_BACKEND_COMPONENT - servicePluginsCount\n );\n\n const backendEventsData = backendComponentsByType.Event.slice(\n 0,\n backendComponentsByType.Event.length > maxBackendEvents\n ? maxBackendEvents - 1\n : backendComponentsByType.Event.length\n );\n\n const backendEventsShowMoreIndex =\n backendComponentsByType.Event.length > backendEventsData.length\n ? backendEventsData.length + servicePluginsCount + 1\n : undefined;\n\n const visibleItems: Array<\n NumericOption<BackendViewerComponent, BackendViewerComponentNames>\n > = [\n ...servicePluginsData.map(\n (servicePlugin: DevCenterComponent<'ServicePlugin'>) =>\n NumericOption.Item({\n title: servicePlugin.servicePlugin.name,\n value: servicePlugin,\n })\n ),\n ...(servicePluginsShowMoreIndex\n ? [NumericOption.ViewMore('ServicePlugin' as BackendViewerComponentNames)]\n : []),\n ...backendEventsData.map((event: DevCenterComponent<'Event'>) =>\n NumericOption.Item({\n title: event.title,\n value: event,\n })\n ),\n ...(backendEventsShowMoreIndex\n ? [NumericOption.ViewMore('Event' as BackendViewerComponentNames)]\n : []),\n ];\n\n const getLabelKey = (backendComponent: BackendViewerComponent) => {\n return match(\n backendComponent,\n lookup({\n Api: 'general.backend_api_viewer.title',\n Event: 'general.backend_events_viewer.title',\n ServicePlugin: 'general.backend_plugin_viewer.title',\n })\n );\n };\n\n useInput((input) => {\n const inputNumber = Number(input);\n if (inputNumber > 0 && inputNumber <= visibleItems.length) {\n const item = visibleItems.at(inputNumber - 1);\n if (item) {\n match(item, {\n Item: (item) => {\n bi.cliAction({\n question: t(getLabelKey(item.value)),\n questionKey: getLabelKey(item.value),\n action: item.title,\n key: input,\n });\n handleSelect(item.value);\n },\n ViewMore: (viewMore) => {\n bi.cliAction({\n question: t('general.numeric_viewer.show_more'),\n questionKey: 'general.numeric_viewer.show_more',\n action: 'view_more',\n key: input,\n });\n onViewMore(\n BackendScreenSelector.Arrow({\n backendComponentName: viewMore.payload,\n })\n );\n },\n });\n }\n }\n });\n\n const handleSelect = useCallback(\n (backendComponent: BackendViewerComponent) => {\n onSelect?.(backendComponent);\n },\n [onSelect]\n );\n\n const backendPlugins = visibleItems.slice(0, servicePluginsCount);\n const backendEvents = visibleItems.slice(servicePluginsCount);\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n {backendPlugins.length > 0 && (\n <NumericViewer\n startIndex={0}\n titleKey=\"general.backend_plugin_viewer.title\"\n items={backendPlugins}\n />\n )}\n {backendEvents.length > 0 && (\n <NumericViewer\n startIndex={servicePluginsCount}\n titleKey=\"general.backend_events_viewer.title\"\n items={backendEvents}\n />\n )}\n {onClose && <CloseScreen onClose={onClose} />}\n </Box>\n );\n};\n","import React, { useCallback, useMemo } from 'react';\nimport type { FC } from 'react';\nimport { Box, SelectInput } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { isType, lookup, match } from 'variant';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport type {\n BackendViewerComponent,\n BackendViewerComponentNames,\n} from './backend-viewer.js';\n\ninterface Props {\n backendComponentName: BackendViewerComponentNames;\n onSelect?: (backendComponent: BackendViewerComponent) => void;\n onClose: () => void;\n}\n\nexport const BackendArrowViewer: FC<Props> = ({\n backendComponentName,\n onClose,\n onSelect,\n}) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n const { backendComponentsByType } = useBackendComponents();\n\n const getLabelKey = useCallback(\n () =>\n match(\n backendComponentName,\n lookup({\n Api: 'dev_command.backend_apis_screen.select_label',\n Event: 'dev_command.backend_events_screen.select_label',\n ServicePlugin: 'dev_command.backend_plugins_screen.select_label',\n })\n ),\n [backendComponentName]\n );\n\n const getBackendComponentName = (backendComponent: BackendViewerComponent) =>\n isType(backendComponent, 'ServicePlugin')\n ? backendComponent.servicePlugin.name\n : backendComponent.title;\n\n const handleSubmit = useCallback(\n (backendComponent: BackendViewerComponent) => {\n bi.cliAction({\n question: t(getLabelKey()),\n questionKey: getLabelKey(),\n action: getBackendComponentName(backendComponent),\n key: 'enter',\n });\n onSelect?.(backendComponent);\n },\n [bi, getLabelKey, onSelect, t]\n );\n\n const options = useMemo(() => {\n return backendComponentsByType[backendComponentName].map(\n (backendComponent, index) => ({\n key: index.toString(),\n title: getBackendComponentName(backendComponent),\n value: backendComponent,\n })\n );\n }, [backendComponentsByType, backendComponentName]);\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n <Box flexDirection=\"column\">\n <SelectInput<BackendViewerComponent>\n label={t(getLabelKey())}\n options={options}\n onSubmit={({ value: backendComponent }) =>\n handleSubmit(backendComponent)\n }\n />\n </Box>\n <CloseScreen onClose={onClose} />\n </Box>\n );\n};\n","import React, { useState } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { ConfirmInput, Text, useAsync, useExit } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { readUserConfig, updateUserConfig } from '@wix/cli-user-config';\nimport { match } from 'variant';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\n\ninterface Props {\n children: ReactNode;\n}\n\nexport const TunnelingConsent: FC<Props> = ({ children }) => {\n const exit = useExit();\n const { t } = useTranslation();\n const { backendComponents } = useBackendComponents();\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 (backendComponents.length === 0 || approved) {\n return children;\n }\n\n return (\n <>\n {match(status, {\n Success: () => (\n <ConfirmInput\n label={t('dev_command.tunneling.confirm')}\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 <Trans i18nKey=\"dev_command.tunneling.abort_dev\" />\n </Text>\n )}\n </>\n );\n};\n","import { join } from 'node:path';\nimport { getDataDirPath } from '@wix/cli-data-dir';\nimport { pathExists, readJson, writeJson } from '@wix/cli-fs';\nimport {\n userConfigSchema,\n USER_CONFIG_FILENAME,\n} from '@wix/cli-core-definitions';\nimport type { UserConfig } from '@wix/cli-core-definitions';\n\nfunction getUserConfigPath() {\n return join(getDataDirPath(), USER_CONFIG_FILENAME);\n}\n\nexport async function readUserConfig() {\n const configPath = getUserConfigPath();\n const isConfigExist = await pathExists(configPath);\n const json = isConfigExist ? await readJson(configPath) : {};\n return userConfigSchema.parse(json);\n}\n\nexport async function updateUserConfig(config: Partial<UserConfig>) {\n const currentConfig = await readUserConfig();\n const newConfig = {\n ...currentConfig,\n ...config,\n };\n\n const configPath = getUserConfigPath();\n await writeJson(configPath, newConfig);\n}\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useAsync, Spinner, Alert } from '@wix/cli-ui-kit';\nimport { match } from 'variant';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { useMetasiteManagerClient } from '@wix/metasite-manager-client';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { useProjectModel } from '../../model.js';\nimport { useSite } from '../../site/useSite.js';\nimport { useDevEnvironment } from './DevEnvironment.js';\n\nexport const RequiredAppsWarning: FC<{\n children: ReactNode;\n}> = ({ children }) => {\n const { logger } = useDevEnvironment();\n const { site } = useSite();\n const { model } = useProjectModel();\n const { getRequiredApps } = useDevCenterClient();\n const { getSiteInstalledApps } = useMetasiteManagerClient();\n const { t } = useTranslation();\n\n const { status: requiredAppsStatus } = useAsync(async () => {\n const requiredApps = await getRequiredApps(model.config.appId);\n\n if (requiredApps.length === 0) {\n return;\n }\n\n const siteInstalledApps = await getSiteInstalledApps(site.id);\n\n const missingRequiredApps = requiredApps.filter(\n (requiredApp) => !siteInstalledApps.includes(requiredApp.id)\n );\n\n if (missingRequiredApps.length === 0) {\n return;\n }\n\n logger.warn(\n <Alert type=\"warning\">\n {t('dev_command.required_apps.warning', {\n requiredAppNames: missingRequiredApps\n .map((app) => app.name)\n .join(', '),\n })}\n </Alert>\n );\n }, []);\n\n return match(requiredAppsStatus, {\n Loading: () => <Spinner text={t('dev_command.required_apps.loading')} />,\n Error: () => null,\n Success: () => children,\n });\n};\n","export { useMetasiteManagerClient } from './useMetasiteManagerClient.js';\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { MetasiteManagerClient } from './metasite-manager-client.js';\n\nexport function useMetasiteManagerClient(): MetasiteManagerClient {\n const httpClient = useHttpClient({ type: 'general' });\n return useMemo(() => new MetasiteManagerClient(httpClient), [httpClient]);\n}\n","import { createMetaSiteFromTemplate } from '@wix/ambassador-metasite-api-v1-meta-site/http';\nimport type { CreateMetaSiteFromTemplateRequest } from '@wix/ambassador-metasite-api-v1-meta-site/types';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { HttpClient } from '@wix/cli-http-client';\nimport {\n clientSpecMapSchema,\n createMetaSiteFromTemplateSchema,\n} from './schemas.js';\n\nexport class MetasiteManagerClient {\n constructor(private readonly httpClient: HttpClient) {}\n\n private getClientSpecMap = async (metaSiteId: string) => {\n try {\n const { data } = await this.httpClient.request({\n url: `/_api/msm/v1/meta-site/editor-client-spec-map/${metaSiteId}`,\n });\n\n return clientSpecMapSchema.parse(data);\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetClientSpecMap(),\n cause: e,\n });\n }\n };\n\n public createMetaSiteFromTemplate = async (\n request: CreateMetaSiteFromTemplateRequest\n ) => {\n try {\n const { data } = await this.httpClient.request(\n createMetaSiteFromTemplate(request)\n );\n return createMetaSiteFromTemplateSchema.parse(data).metaSite;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToCreateMetaSiteFromTemplate(),\n cause: e,\n });\n }\n };\n\n public getSiteInstalledApps = async (metaSiteId: string) => {\n try {\n const clientSpecMap = await this.getClientSpecMap(metaSiteId);\n\n return Object.values(clientSpecMap)\n .filter((spec) => spec.appDefinitionId && !spec.permissions?.revoked)\n .map((spec) => spec.appDefinitionId!);\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSiteInstalledApps(),\n cause: e,\n });\n }\n };\n\n public getInstalledAppInstanceId = async ({\n metaSiteId,\n appId,\n }: {\n metaSiteId: string;\n appId: string;\n }) => {\n try {\n const clientSpecMap = await this.getClientSpecMap(metaSiteId);\n const installedApp = Object.values(clientSpecMap).find(\n (spec) => spec.appDefinitionId === appId\n );\n\n return installedApp?.instanceId ?? '';\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSiteInstalledAppInstanceId(),\n cause: e,\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const clientSpecMapSchema = z.record(\n z.object({\n appDefinitionId: z.string().optional(),\n permissions: z.object({ revoked: z.boolean() }).optional(),\n instanceId: z.string().optional(),\n })\n);\n\nexport const createMetaSiteFromTemplateSchema = z.object({\n metaSite: z.object({\n metaSiteId: z.string(),\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 >\n {children}\n </Box>\n );\n};\n"],"mappings":"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","names":["import_react","import_react","import_variant","import_react","import_variant","import_react","import_react","import_variant","import_react","import_variant","import_variant","import_react","import_variant","React","installationUrl","React","React","import_react","import_variant","import_react","React","import_react","import_variant","import_react","import_variant","dashboardExtension","React","React","import_react","import_variant","React","item","React","React","import_react","error","site","React","import_react","import_variant","import_react","import_variant","item","React","import_react","import_variant","React","React","React","import_react","import_variant","React","approved","import_react","import_variant","import_react","payload","_a","React","import_react","React","React"]}
@@ -3,20 +3,20 @@ const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  createPackageManager,
5
5
  getRepoType
6
- } from "./chunk-IJMHSG3L.js";
6
+ } from "./chunk-G2EJCOG4.js";
7
7
  import {
8
8
  createI18nT
9
- } from "./chunk-QMEDSKG3.js";
9
+ } from "./chunk-UUZAWTTZ.js";
10
10
  import "./chunk-6BTLX252.js";
11
11
  import {
12
12
  useWixCliAppBi
13
- } from "./chunk-JNBDGVOZ.js";
13
+ } from "./chunk-HUQZJ7BP.js";
14
14
  import {
15
15
  componentGenerator,
16
16
  dependenciesUpdater,
17
17
  require_lodash,
18
18
  useBackendComponents
19
- } from "./chunk-H36QZENX.js";
19
+ } from "./chunk-ZZSRD3XC.js";
20
20
  import "./chunk-ZR3N5INU.js";
21
21
  import {
22
22
  getEcomRequiredApps,
@@ -33,7 +33,7 @@ import {
33
33
  require_setToArray,
34
34
  require_toSource,
35
35
  useExtensionDataClient
36
- } from "./chunk-ZEMJL4BF.js";
36
+ } from "./chunk-M7GDC5QO.js";
37
37
  import {
38
38
  AsyncCallbackStatus,
39
39
  BACKEND_DIR,
@@ -114,7 +114,7 @@ import {
114
114
  uuidValidation,
115
115
  writeJson,
116
116
  z
117
- } from "./chunk-3JZI5Z2Q.js";
117
+ } from "./chunk-S3RIMPQQ.js";
118
118
  import {
119
119
  __commonJS,
120
120
  __dirname,
@@ -5337,4 +5337,4 @@ var GenerateCommand = () => {
5337
5337
  export {
5338
5338
  GenerateCommand
5339
5339
  };
5340
- //# sourceMappingURL=GenerateCommand-RUUOZIHZ.js.map
5340
+ //# sourceMappingURL=GenerateCommand-3CK2O4L6.js.map
@@ -2,7 +2,7 @@ import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  useTunnel
5
- } from "./chunk-BWPO4SRH.js";
5
+ } from "./chunk-K3B5VWLJ.js";
6
6
  import "./chunk-ZR3N5INU.js";
7
7
  import {
8
8
  Box_default,
@@ -23,7 +23,7 @@ import {
23
23
  useProjectModel,
24
24
  useTranslation,
25
25
  z
26
- } from "./chunk-3JZI5Z2Q.js";
26
+ } from "./chunk-S3RIMPQQ.js";
27
27
  import {
28
28
  __toESM,
29
29
  init_esm_shims
@@ -279,4 +279,4 @@ var LogsCommand = ({ version }) => {
279
279
  export {
280
280
  LogsCommand
281
281
  };
282
- //# sourceMappingURL=LogsCommand-CYDOEGLP.js.map
282
+ //# sourceMappingURL=LogsCommand-T2OR2ZNI.js.map
@@ -0,0 +1,19 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import {
4
+ PreviewCommand
5
+ } from "./chunk-MAYXQQ44.js";
6
+ import "./chunk-BFYHGTJS.js";
7
+ import "./chunk-YBZ4LUI2.js";
8
+ import "./chunk-ZZSRD3XC.js";
9
+ import "./chunk-K3B5VWLJ.js";
10
+ import "./chunk-ZR3N5INU.js";
11
+ import "./chunk-AGCEJPNC.js";
12
+ import "./chunk-AWOS3TAC.js";
13
+ import "./chunk-M7GDC5QO.js";
14
+ import "./chunk-S3RIMPQQ.js";
15
+ import "./chunk-PYIAC2GK.js";
16
+ export {
17
+ PreviewCommand
18
+ };
19
+ //# sourceMappingURL=PreviewCommand-GKWGXWGO.js.map
@@ -0,0 +1,28 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import {
4
+ ReleaseCommand,
5
+ ReleaseVersionType
6
+ } from "./chunk-CNLLDB7V.js";
7
+ import "./chunk-MAYXQQ44.js";
8
+ import "./chunk-BFYHGTJS.js";
9
+ import "./chunk-YBZ4LUI2.js";
10
+ import "./chunk-HUQZJ7BP.js";
11
+ import "./chunk-ZZSRD3XC.js";
12
+ import "./chunk-K3B5VWLJ.js";
13
+ import "./chunk-ZR3N5INU.js";
14
+ import "./chunk-AGCEJPNC.js";
15
+ import "./chunk-AWOS3TAC.js";
16
+ import "./chunk-M7GDC5QO.js";
17
+ import "./chunk-S3RIMPQQ.js";
18
+ import {
19
+ init_esm_shims
20
+ } from "./chunk-PYIAC2GK.js";
21
+
22
+ // src/components/ReleaseCommand/index.ts
23
+ init_esm_shims();
24
+ export {
25
+ ReleaseCommand,
26
+ ReleaseVersionType
27
+ };
28
+ //# sourceMappingURL=ReleaseCommand-VRSGVCA5.js.map
@@ -3,14 +3,14 @@ const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  createPackageManager,
5
5
  getRepoType
6
- } from "./chunk-IJMHSG3L.js";
6
+ } from "./chunk-G2EJCOG4.js";
7
7
  import "./chunk-ZR3N5INU.js";
8
8
  import {
9
9
  CliError,
10
10
  CliErrorCode,
11
11
  useAsync,
12
12
  useProjectModel
13
- } from "./chunk-3JZI5Z2Q.js";
13
+ } from "./chunk-S3RIMPQQ.js";
14
14
  import {
15
15
  init_esm_shims
16
16
  } from "./chunk-PYIAC2GK.js";
@@ -40,4 +40,4 @@ var ServeCommandDeprecated = () => {
40
40
  export {
41
41
  ServeCommandDeprecated
42
42
  };
43
- //# sourceMappingURL=ServeCommand-7NSOPNJF.js.map
43
+ //# sourceMappingURL=ServeCommand-RPXEURIC.js.map
@@ -2,10 +2,10 @@ import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  writeAppManifestFile
5
- } from "./chunk-MO5LBUBH.js";
5
+ } from "./chunk-BFYHGTJS.js";
6
6
  import {
7
7
  createLogger
8
- } from "./chunk-KLJCH3V7.js";
8
+ } from "./chunk-YB5ZT6ZJ.js";
9
9
  import {
10
10
  createAppManifest,
11
11
  getComponentBuildSourceBuilder,
@@ -14,15 +14,15 @@ import {
14
14
  getViteConfig4 as getViteConfig3,
15
15
  getViteConfig5 as getViteConfig4,
16
16
  validateComponents
17
- } from "./chunk-6WCP2JAM.js";
18
- import "./chunk-ZEMJL4BF.js";
17
+ } from "./chunk-AWOS3TAC.js";
18
+ import "./chunk-M7GDC5QO.js";
19
19
  import {
20
20
  CliError,
21
21
  CliErrorCode,
22
22
  DevCenterComponent,
23
23
  getDistFolder,
24
24
  require_lib
25
- } from "./chunk-3JZI5Z2Q.js";
25
+ } from "./chunk-S3RIMPQQ.js";
26
26
  import {
27
27
  __toESM,
28
28
  init_esm_shims
@@ -133,4 +133,4 @@ async function build(projectModel) {
133
133
  export {
134
134
  build
135
135
  };
136
- //# sourceMappingURL=build-73EP4WHX.js.map
136
+ //# sourceMappingURL=build-R24UOFVB.js.map