@wix/cli 1.1.149 → 1.1.151

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 (57) hide show
  1. package/agents/instructions.md +13 -0
  2. package/build/{DevCommand-FM4GUL35.js → DevCommand-AKZOYT3D.js} +8 -12
  3. package/build/DevCommand-AKZOYT3D.js.map +1 -0
  4. package/build/{EnvPullCommand-22WYBFTO.js → EnvPullCommand-OJPZK4HO.js} +3 -3
  5. package/build/{EnvRemoveCommand-H6VFMJLM.js → EnvRemoveCommand-EFTD4BAH.js} +2 -2
  6. package/build/{EnvSetCommand-TDY5NJDM.js → EnvSetCommand-UCGMQ7YA.js} +2 -2
  7. package/build/{GenerateCommand-WJB2UILL.js → GenerateCommand-VTPLKN56.js} +31 -89
  8. package/build/{GenerateCommand-WJB2UILL.js.map → GenerateCommand-VTPLKN56.js.map} +1 -1
  9. package/build/{LoginCommand-EWEM57CT.js → LoginCommand-LTLW4BFV.js} +2 -2
  10. package/build/{PreviewCommand-7CZDBECJ.js → PreviewCommand-2FDI77DO.js} +5 -5
  11. package/build/{PromoteCommand-4W7JO3OG.js → PromoteCommand-R47PKPLK.js} +5 -5
  12. package/build/{ReleaseCommand-NZAM3UIY.js → ReleaseCommand-LBAB2XQU.js} +7 -8
  13. package/build/ReleaseCommand-LBAB2XQU.js.map +1 -0
  14. package/build/{chunk-WBI2P4YN.js → chunk-4GNMRYCF.js} +2 -2
  15. package/build/{chunk-EVV3LZAI.js → chunk-5OGPTD3P.js} +2 -2
  16. package/build/{chunk-6B3FQNMV.js → chunk-AEHMTA2I.js} +2 -2
  17. package/build/{chunk-Y7SZOWGV.js → chunk-CU2BGZA2.js} +2 -2
  18. package/build/{chunk-Y7SZOWGV.js.map → chunk-CU2BGZA2.js.map} +1 -1
  19. package/build/{chunk-VT3OGC5F.js → chunk-HGZQMZI7.js} +3 -3
  20. package/build/{chunk-VT3OGC5F.js.map → chunk-HGZQMZI7.js.map} +1 -1
  21. package/build/{chunk-W34JWURA.js → chunk-M4ZFK5EV.js} +29 -1
  22. package/build/chunk-M4ZFK5EV.js.map +1 -0
  23. package/build/chunk-MOYAGX4N.js +145 -0
  24. package/build/chunk-MOYAGX4N.js.map +1 -0
  25. package/build/{chunk-ECEBTPKZ.js → chunk-TLUNTJWC.js} +97 -34
  26. package/build/chunk-TLUNTJWC.js.map +1 -0
  27. package/build/{chunk-7CZ66YXW.js → chunk-Y7ILZNU5.js} +45 -48
  28. package/build/{chunk-7CZ66YXW.js.map → chunk-Y7ILZNU5.js.map} +1 -1
  29. package/build/{env-pull-ENQPMILC.js → env-pull-22BEZ6XL.js} +4 -4
  30. package/build/index.js +6 -6
  31. package/build/{preview-MGGWEWUO.js → preview-BMWLNZ42.js} +6 -6
  32. package/build/{render-command-TH5F34LX.js → render-command-HAAV4PV6.js} +3 -3
  33. package/build/{render-command-YIP7OO3V.js → render-command-KHQ7KK5G.js} +2 -2
  34. package/build/{src-S345RUFD.js → src-GTVJ4LDY.js} +41 -21
  35. package/build/src-GTVJ4LDY.js.map +1 -0
  36. package/package.json +2 -2
  37. package/templates/astro/service-plugin/staff-sorting-provider/dependencies.json +6 -0
  38. package/templates/astro/service-plugin/staff-sorting-provider/files/plugin.json.ejs +10 -0
  39. package/templates/astro/service-plugin/staff-sorting-provider/files/plugin.ts.ejs +12 -0
  40. package/build/DevCommand-FM4GUL35.js.map +0 -1
  41. package/build/ReleaseCommand-NZAM3UIY.js.map +0 -1
  42. package/build/chunk-ECEBTPKZ.js.map +0 -1
  43. package/build/chunk-W34JWURA.js.map +0 -1
  44. package/build/src-S345RUFD.js.map +0 -1
  45. /package/build/{EnvPullCommand-22WYBFTO.js.map → EnvPullCommand-OJPZK4HO.js.map} +0 -0
  46. /package/build/{EnvRemoveCommand-H6VFMJLM.js.map → EnvRemoveCommand-EFTD4BAH.js.map} +0 -0
  47. /package/build/{EnvSetCommand-TDY5NJDM.js.map → EnvSetCommand-UCGMQ7YA.js.map} +0 -0
  48. /package/build/{LoginCommand-EWEM57CT.js.map → LoginCommand-LTLW4BFV.js.map} +0 -0
  49. /package/build/{PreviewCommand-7CZDBECJ.js.map → PreviewCommand-2FDI77DO.js.map} +0 -0
  50. /package/build/{PromoteCommand-4W7JO3OG.js.map → PromoteCommand-R47PKPLK.js.map} +0 -0
  51. /package/build/{chunk-WBI2P4YN.js.map → chunk-4GNMRYCF.js.map} +0 -0
  52. /package/build/{chunk-EVV3LZAI.js.map → chunk-5OGPTD3P.js.map} +0 -0
  53. /package/build/{chunk-6B3FQNMV.js.map → chunk-AEHMTA2I.js.map} +0 -0
  54. /package/build/{env-pull-ENQPMILC.js.map → env-pull-22BEZ6XL.js.map} +0 -0
  55. /package/build/{preview-MGGWEWUO.js.map → preview-BMWLNZ42.js.map} +0 -0
  56. /package/build/{render-command-TH5F34LX.js.map → render-command-HAAV4PV6.js.map} +0 -0
  57. /package/build/{render-command-YIP7OO3V.js.map → render-command-KHQ7KK5G.js.map} +0 -0
@@ -54,6 +54,19 @@ Release a new version of your application.
54
54
 
55
55
  Generate a new extension for your project.
56
56
 
57
+ **Options:**
58
+
59
+ - `--type <type>`: Extension type to generate. Available types:
60
+ - `DASHBOARD_PAGE`: A page in the Wix dashboard
61
+ - `DASHBOARD_MODAL`: A modal dialog in the Wix dashboard
62
+ - `DASHBOARD_PLUGIN`: A plugin for the Wix dashboard
63
+ - `DASHBOARD_MENU_PLUGIN`: A menu plugin for the Wix dashboard
64
+ - `EMBEDDED_SCRIPT`: An embedded script extension
65
+ - `CUSTOM_ELEMENT`: A custom HTML element
66
+ - `SITE_PLUGIN`: A plugin for Wix sites
67
+ - `EVENT`: An event handler
68
+ - `SERVICE_PLUGIN`: A service plugin (SPI implementation)
69
+
57
70
  ## Environment Variables
58
71
 
59
72
  ### `wix env`
@@ -17,8 +17,8 @@ import {
17
17
  useARMClient,
18
18
  useSite,
19
19
  useUpdateDeploymentTopology
20
- } from "./chunk-7CZ66YXW.js";
21
- import "./chunk-EVV3LZAI.js";
20
+ } from "./chunk-Y7ILZNU5.js";
21
+ import "./chunk-5OGPTD3P.js";
22
22
  import "./chunk-SC2W3WT3.js";
23
23
  import {
24
24
  createPackageManager,
@@ -35,7 +35,7 @@ import {
35
35
  looseComponentSchema,
36
36
  parseLooseAppManifest,
37
37
  useProjectModel
38
- } from "./chunk-W34JWURA.js";
38
+ } from "./chunk-M4ZFK5EV.js";
39
39
  import {
40
40
  useHttpClient
41
41
  } from "./chunk-EYV3FS5W.js";
@@ -616,7 +616,7 @@ var useDevCenterUpdater = ({
616
616
  } = useProjectModel();
617
617
  const logger = (0, import_react5.useMemo)(() => createAstroLogger(), []);
618
618
  const arm = useARMClient();
619
- const updateDeploymentTopology = useUpdateDeploymentTopology();
619
+ const updateDeploymentTopology = useUpdateDeploymentTopology(siteId);
620
620
  const openTunnel = useTunnel();
621
621
  const tunnelUrl = (0, import_react5.useRef)();
622
622
  const [tunnelRequired, setTunnelRequired] = (0, import_react5.useState)(false);
@@ -673,7 +673,6 @@ var useDevCenterUpdater = ({
673
673
  platform: "site",
674
674
  appId,
675
675
  tenantId: siteId,
676
- withInstaller: false,
677
676
  versionOverrideId: updatedDevArmTag
678
677
  }),
679
678
  armTag: updatedDevArmTag,
@@ -920,24 +919,21 @@ var HomeScreen = ({
920
919
  {
921
920
  platform: "site",
922
921
  armTag: devArmTag,
923
- tenantId: siteId,
924
- withInstaller: false
922
+ tenantId: siteId
925
923
  }
926
924
  ), /* @__PURE__ */ import_react12.default.createElement(
927
925
  RedirectLink,
928
926
  {
929
927
  platform: "editor",
930
928
  armTag: devArmTag,
931
- tenantId: siteId,
932
- withInstaller: false
929
+ tenantId: siteId
933
930
  }
934
931
  ), /* @__PURE__ */ import_react12.default.createElement(
935
932
  RedirectLink,
936
933
  {
937
934
  platform: "dashboard",
938
935
  armTag: devArmTag,
939
- tenantId: siteId,
940
- withInstaller: false
936
+ tenantId: siteId
941
937
  }
942
938
  )) : /* @__PURE__ */ import_react12.default.createElement(Spinner, { text: "Preparing your dashboard..." }))));
943
939
  };
@@ -1050,4 +1046,4 @@ var DevCommand = ({
1050
1046
  export {
1051
1047
  DevCommand
1052
1048
  };
1053
- //# sourceMappingURL=DevCommand-FM4GUL35.js.map
1049
+ //# sourceMappingURL=DevCommand-AKZOYT3D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../cli-astro-commands/src/components/DevCommand/index.ts","../../cli-astro-commands/src/components/DevCommand/DevCommand.tsx","../../cli-astro-commands/src/components/DevCommand/utils/runAstroDev.ts","../../cli-astro-commands/src/components/DevCommand/utils/createAstroLogger.tsx","../../cli-astro-commands/src/components/DevCommand/hooks/useFetchDevMetadata.ts","../../cli-astro-commands/src/components/DevCommand/SiteDevFlow.tsx","../../cli-astro-commands/src/components/DevCommand/DevScreenBorder.tsx","../../cli-astro-commands/src/site/index.ts","../../cli-astro-commands/src/components/DevCommand/SiteDev.tsx","../../cli-astro-commands/src/components/DevCommand/hooks/useDevCenterUpdater.ts","../../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","../../../node_modules/@wix/ambassador-document-management-document-store-v1-transaction/http.impl.ts","../../metasite-manager-client/src/schemas.ts","../../cli-astro-commands/src/components/DevCommand/hooks/useFetchAppManifest.ts","../../cli-astro-commands/src/components/DevCommand/utils/isTunnelRequired.ts","../../cli-astro-commands/src/components/DevCommand/TunnelingConsent.tsx","../../cli-astro-commands/src/components/DevCommand/AppDevFlow.tsx","../../cli-astro-commands/src/components/DevCommand/app-flow/AppDev.tsx","../../cli-astro-commands/src/components/DevCommand/app-flow/screen-state.ts","../../cli-astro-commands/src/components/DevCommand/app-flow/SiteSelectorScreen.tsx","../../cli-astro-commands/src/components/CloseScreen/index.tsx","../../cli-astro-commands/src/components/CloseScreen/CloseScreen.tsx","../../cli-astro-commands/src/components/DevCommand/app-flow/HomeScreen.tsx","../../cli-astro-commands/src/components/DevCommand/app-flow/SwitchSite.tsx"],"sourcesContent":["export { DevCommand } from './DevCommand.js';\n","import React, { useEffect, useMemo, useRef } from 'react';\nimport type { FC } from 'react';\nimport { useAsync, useExit } from '@wix/cli-ui-kit';\nimport { createPackageManager, getRepoType } from '@wix/package-manager';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { useProjectModel } from '../../model.js';\nimport {\n runAstroDev,\n EVENT_LINE,\n EVENT_SERVER_ADDRESS,\n} from './utils/runAstroDev.js';\nimport { createAstroLogger } from './utils/createAstroLogger.js';\nimport { useFetchDevMetadata } from './hooks/useFetchDevMetadata.js';\nimport { SiteDevFlow } from './SiteDevFlow.js';\nimport { AppDevFlow } from './AppDevFlow.js';\nimport { SiteProvider } from '../../site/index.js';\n\ninterface DevCommandProps {\n port?: number;\n allowedHosts?: string;\n serverExposedUrl?: string;\n}\n\nexport const DevCommand: FC<DevCommandProps> = ({\n port,\n allowedHosts,\n serverExposedUrl,\n}) => {\n const {\n model: { config, projectFolder },\n } = useProjectModel();\n\n const exit = useExit();\n const logger = useMemo(() => createAstroLogger(false), []);\n\n const astroProcess = useRef<ReturnType<typeof runAstroDev>>();\n\n const fetchDevMetadataAction = useFetchDevMetadata();\n\n useAsync(async () => {\n const repoType = await getRepoType(projectFolder);\n const packageManager = await createPackageManager(repoType);\n\n const astro = runAstroDev({\n packageManager,\n projectFolder,\n port,\n allowedHosts,\n });\n\n astroProcess.current = astro;\n\n astro.stdout?.once(EVENT_SERVER_ADDRESS, (address: string) => {\n void fetchDevMetadataAction.execute(address);\n });\n\n astro.stdout?.on(EVENT_LINE, (line: string) => logger.log(line));\n astro.stderr?.on(EVENT_LINE, (line: string) => logger.log(line));\n\n void astro.on('exit', () => {\n // If a child process is killed externally and you don’t wire Execa correctly,\n // stdio + signal handling can leave active handles open, preventing Node from exiting.\n astroProcess.current?.stdout?.destroy();\n astroProcess.current?.stderr?.destroy();\n astroProcess.current?.stdin?.end();\n astroProcess.current = undefined;\n\n exit(\n new CliError({\n cause: undefined,\n code: CliErrorCode.DevCommandFailed(),\n })\n );\n });\n }, []);\n\n useEffect(() => {\n return () => {\n if (astroProcess.current?.pid) {\n try {\n astroProcess.current.kill('SIGTERM');\n } catch {\n // Sometimes child process might exit or be killed from outside.\n // We don't want to report an error in case we fail to kill the child process.\n }\n }\n };\n }, []);\n\n return (\n <SiteProvider>\n {config.projectType === 'Site' ? (\n <SiteDevFlow\n devMetadataStatus={fetchDevMetadataAction.status}\n serverExposedUrl={serverExposedUrl}\n />\n ) : (\n <AppDevFlow\n devMetadataStatus={fetchDevMetadataAction.status}\n serverExposedUrl={serverExposedUrl}\n />\n )}\n </SiteProvider>\n );\n};\n","import { execa } from 'execa';\nimport type { IPackageManager } from '@wix/package-manager';\nimport stripAnsi from 'strip-ansi';\n\nexport const EVENT_LINE = 'line';\nexport const EVENT_SERVER_ADDRESS = 'server_address';\n\nexport function runAstroDev({\n packageManager,\n projectFolder,\n port,\n allowedHosts,\n}: {\n packageManager: IPackageManager;\n projectFolder: string;\n port?: number;\n allowedHosts?: string;\n}) {\n const binaryArgs = ['astro', 'dev'];\n\n if (port) {\n binaryArgs.push('--port', `${port}`);\n }\n\n if (allowedHosts) {\n binaryArgs.push('--allowed-hosts', allowedHosts);\n }\n\n const { file, args } = packageManager.getRunBinaryCmd(binaryArgs);\n\n const result = execa(file, args, {\n cwd: projectFolder,\n stdio: 'pipe',\n env: { FORCE_COLOR: '1' },\n cleanup: true,\n windowsHide: false,\n });\n\n let stdoutBuffer = '';\n\n result.stdout?.on('data', (chunk) => {\n stdoutBuffer += chunk.toString();\n const lines = stdoutBuffer.split('\\n');\n\n stdoutBuffer = lines.pop() ?? '';\n for (const line of lines) {\n result.stdout?.emit(EVENT_LINE, line);\n if (line.includes('http://')) {\n const match = /(http:\\/\\/[^\\s]+)/.exec(line);\n if (match?.[1]) {\n const address = stripAnsi(match[1]).trim();\n result.stdout?.emit(EVENT_SERVER_ADDRESS, address);\n }\n }\n }\n });\n\n let stdErrBuffer = '';\n\n result.stderr?.on('data', (chunk) => {\n stdErrBuffer += chunk.toString();\n const lines = stdErrBuffer.split('\\n');\n\n stdErrBuffer = lines.pop() ?? '';\n for (const line of lines) {\n result.stderr?.emit(EVENT_LINE, line);\n }\n });\n\n return result;\n}\n","import React from 'react';\nimport type { ReactElement } from 'react';\nimport { createRendererToString, Text } from '@wix/cli-ui-kit';\n\ninterface Logger {\n log: (msg: string | ReactElement) => void;\n}\n\nconst dateTimeFormat = new Intl.DateTimeFormat([], {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n});\n\nexport function createAstroLogger(isPrefixed = true): Logger {\n const renderer = createRendererToString({ stripAnsi: false });\n const log = (msg: string | ReactElement) => {\n if (typeof msg === 'string') {\n // eslint-disable-next-line no-console\n setTimeout(() => console.log(msg), 0);\n } else {\n // eslint-disable-next-line no-console\n setTimeout(() => console.log(renderer.render(msg)), 0);\n }\n };\n\n const prefixedLog = (msg: string | ReactElement) => {\n const timestamp = dateTimeFormat.format(new Date());\n const log = (\n <Text>\n <Text>{timestamp} </Text>\n <Text skin=\"info\">[wix] </Text>\n <Text>{msg}</Text>\n </Text>\n );\n\n // eslint-disable-next-line no-console\n console.log(renderer.render(log));\n };\n\n return isPrefixed ? { log: prefixedLog } : { log };\n}\n","import { useHttpClient } from '@wix/cli-http-client-react';\nimport { devMetadataSchema } from '@wix/cli-astro-definitions';\nimport { useAsyncCallback } from '@wix/cli-ui-kit';\n\nexport function useFetchDevMetadata() {\n const http = useHttpClient({ type: 'standalone' });\n\n return useAsyncCallback(async (_, serverLocalUrl: string) => {\n const url = new URL('/_wix/dev-metadata.json', serverLocalUrl);\n try {\n const { data } = await http.get(url.toString());\n return {\n devMetadata: devMetadataSchema.parse(data),\n serverLocalUrl,\n };\n } catch {\n return {\n devMetadata: null,\n serverLocalUrl,\n };\n }\n });\n}\n","import React from 'react';\nimport type { FC } from 'react';\nimport type { AsyncCallbackStatus } from '@wix/cli-ui-kit';\nimport { Spinner } from '@wix/cli-ui-kit';\nimport type { DevMetadata } from '@wix/cli-astro-definitions';\nimport { SiteAuthProvider } from '@wix/cli-auth';\nimport { match } from 'variant';\nimport { DevScreenBorder } from './DevScreenBorder.js';\nimport { useSite } from '../../site/index.js';\nimport { SiteDev } from './SiteDev.js';\n\ninterface SiteDevScreenProps {\n devMetadataStatus: AsyncCallbackStatus<{\n devMetadata: DevMetadata | null;\n serverLocalUrl: string;\n }>;\n serverExposedUrl?: string;\n}\n\nexport const SiteDevFlow: FC<SiteDevScreenProps> = ({\n devMetadataStatus,\n serverExposedUrl,\n}) => {\n const { siteId } = useSite();\n return (\n <SiteAuthProvider siteId={siteId}>\n {match(devMetadataStatus, {\n NotRequested: () => <Spinner text=\"Starting dev environment...\" />,\n Error: () => null,\n Loading: () => <Spinner text=\"Checking dev environment settings...\" />,\n Success: ({ result: { devMetadata, serverLocalUrl } }) => (\n <DevScreenBorder>\n <SiteDev\n devMetadata={devMetadata}\n serverLocalUrl={serverLocalUrl}\n serverExposedUrl={serverExposedUrl}\n />\n </DevScreenBorder>\n ),\n })}\n </SiteAuthProvider>\n );\n};\n","import React from 'react';\nimport { Box } from '@wix/cli-ui-kit';\nimport type { FC, ReactNode } from 'react';\n\nexport const DevScreenBorder: FC<{ children: ReactNode }> = ({ children }) => {\n return (\n <Box\n flexDirection=\"column\"\n borderTop\n borderLeft={false}\n borderBottom={false}\n borderRight={false}\n borderStyle=\"round\"\n borderColor=\"blueBright\"\n width=\"95%\"\n >\n {children}\n </Box>\n );\n};\n","export { SiteProvider } from './SiteProvider.js';\nexport { useSite } from './useSite.js';\n","import React from 'react';\nimport type { FC } from 'react';\nimport type { DevMetadata } from '@wix/cli-astro-definitions';\nimport { Box, Spinner, Text } from '@wix/cli-ui-kit';\nimport { useSite } from '../../site/useSite.js';\nimport { PlatformLink } from '../PlatformLink/PlatformLink.js';\nimport { useDevCenterUpdater } from './hooks/useDevCenterUpdater.js';\nimport { TunnelingConsent } from './TunnelingConsent.js';\n\ninterface SiteDevProps {\n serverLocalUrl: string;\n serverExposedUrl?: string;\n devMetadata: DevMetadata | null;\n}\n\nexport const SiteDev: FC<SiteDevProps> = ({\n serverLocalUrl,\n serverExposedUrl,\n devMetadata,\n}) => {\n const { siteId } = useSite();\n const { tunnelRequired, devArmTag } = useDevCenterUpdater({\n serverLocalUrl,\n serverExposedUrl,\n devMetadata,\n });\n\n return (\n <>\n <Text>Development environment ready</Text>\n <Box rowGap={1} marginY={1} flexDirection=\"column\">\n <TunnelingConsent required={tunnelRequired}>\n <Text>Open the preview on:</Text>\n <Box paddingLeft={2} flexDirection=\"column\">\n <PlatformLink url={serverLocalUrl} label={'Site'} />\n {devArmTag ? (\n <PlatformLink\n url={`https://manage.wix.com/dashboard/${siteId}?apps-override=${devArmTag}`}\n label={'Dashboard'}\n />\n ) : (\n <Spinner text={'Preparing your dashboard...'} />\n )}\n </Box>\n </TunnelingConsent>\n </Box>\n </>\n );\n};\n","import { isDeepStrictEqual } from 'node:util';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { fields, isType, variant } from 'variant';\nimport type { LooseAppManifest } from '@wix/cli-app-manifest';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport { useARMClient } from '@wix/arm-client';\nimport { useTunnel } from '@wix/cli-tunnel';\nimport { readUserConfig } from '@wix/cli-user-config';\nimport type { DevMetadata } from '@wix/cli-astro-definitions';\nimport { useMetasiteManagerClient } from '@wix/metasite-manager-client';\nimport { ComponentType } from '@wix/dev-center-client';\nimport { readAppConfig, saveAppConfig } from '../../../files/app.config.js';\nimport { useProjectModel } from '../../../model.js';\nimport { createAstroLogger } from '../utils/createAstroLogger.js';\nimport { useFetchAppManifest } from './useFetchAppManifest.js';\nimport { useUpdateDeploymentTopology } from '../../../hooks/useUpdateDeploymentTopology.js';\nimport { useSite } from '../../../site/useSite.js';\nimport { createRedirectLink } from '../../PlatformLink/RedirectLink.js';\n\nconst ManifestUpdateResult = variant({\n Changed: fields<{ shouldDistributeClientUpdate: boolean }>(),\n Unchanged: {},\n});\n\nexport const useDevCenterUpdater = ({\n serverLocalUrl,\n serverExposedUrl,\n devMetadata,\n}: {\n serverLocalUrl: string;\n serverExposedUrl?: string;\n devMetadata: DevMetadata | null;\n}) => {\n const [devArmTag, setDevArmTag] = useState<string | undefined>();\n const [manifest, setManifest] = useState<LooseAppManifest | null>(null);\n const writeToDebugLog = useDebugLog();\n const { siteId } = useSite();\n const { distributeClientUpdate } = useMetasiteManagerClient();\n\n const manifestUpdateCheck = useCallback(\n (latestManifest: LooseAppManifest) => {\n if (manifest == null) {\n return ManifestUpdateResult.Changed({\n shouldDistributeClientUpdate: false,\n });\n }\n\n const oldComponentsMap = new Map(\n manifest.components.map((comp) => [comp.compId, comp])\n );\n\n const changedComponents = latestManifest.components.filter((newComp) => {\n const oldComp = oldComponentsMap.get(newComp.compId);\n return !isDeepStrictEqual(newComp, oldComp);\n });\n\n if (changedComponents.length === 0) {\n return ManifestUpdateResult.Unchanged();\n }\n\n const editorComponentsChanged = changedComponents.filter(\n (comp) =>\n comp.compType === ComponentType.PANEL ||\n comp.compType === ComponentType.EDITOR_REACT_COMPONENT\n );\n\n return ManifestUpdateResult.Changed({\n shouldDistributeClientUpdate: editorComponentsChanged.length > 0,\n });\n },\n [manifest]\n );\n\n const {\n model: {\n config: { appId, projectType },\n projectFolder,\n },\n } = useProjectModel();\n\n const logger = useMemo(() => createAstroLogger(), []);\n const arm = useARMClient();\n const updateDeploymentTopology = useUpdateDeploymentTopology(siteId);\n\n const openTunnel = useTunnel();\n const tunnelUrl = useRef<string>();\n const [tunnelRequired, setTunnelRequired] = useState(false);\n\n const fetchAppManifest = useFetchAppManifest();\n\n const updateDevCenter = useCallback(async () => {\n const baseUrl = serverExposedUrl ?? serverLocalUrl;\n\n const { manifest: latestManifest, isTunnelRequired } =\n await fetchAppManifest(\n serverLocalUrl,\n devMetadata,\n baseUrl,\n tunnelUrl.current ?? baseUrl\n );\n\n const manifestUpdateResult = manifestUpdateCheck(latestManifest);\n\n if (isType(manifestUpdateResult, 'Unchanged')) {\n return manifestUpdateResult;\n }\n\n if (!serverExposedUrl && !tunnelUrl.current && isTunnelRequired) {\n const config = await readUserConfig();\n if (!config.tunneling) {\n setTunnelRequired(true);\n return ManifestUpdateResult.Unchanged();\n }\n\n const serverLocalPort = parseInt(new URL(serverLocalUrl).port, 10);\n const tunnel = await openTunnel(serverLocalPort);\n tunnelUrl.current = tunnel.url;\n\n return ManifestUpdateResult.Unchanged();\n }\n\n const appConfig = await readAppConfig(projectFolder);\n\n let updatedDevArmTag = appConfig?.devArmTag;\n if (!updatedDevArmTag) {\n updatedDevArmTag = await arm.createLooseAppRelease(latestManifest, appId);\n } else {\n const updateState = await arm.updateLooseAppRelease(\n latestManifest,\n updatedDevArmTag\n );\n if (!isType(updateState, 'TagUpdated')) {\n updatedDevArmTag = await arm.createLooseAppRelease(\n latestManifest,\n appId\n );\n }\n }\n\n if (updatedDevArmTag !== appConfig?.devArmTag) {\n await saveAppConfig(projectFolder, { devArmTag: updatedDevArmTag });\n }\n\n if (\n isType(manifestUpdateResult, 'Changed') &&\n manifestUpdateResult.shouldDistributeClientUpdate\n ) {\n await distributeClientUpdate(appId);\n }\n\n setManifest(latestManifest);\n setDevArmTag(updatedDevArmTag);\n\n await updateDeploymentTopology.execute({\n siteUrl:\n projectType === 'Site'\n ? baseUrl\n : createRedirectLink({\n platform: 'site',\n appId,\n tenantId: siteId,\n versionOverrideId: updatedDevArmTag,\n }),\n armTag: updatedDevArmTag,\n environment: 'development',\n });\n\n return manifestUpdateResult;\n }, [\n siteId,\n manifestUpdateCheck,\n distributeClientUpdate,\n fetchAppManifest,\n serverLocalUrl,\n serverExposedUrl,\n arm,\n projectFolder,\n appId,\n updateDeploymentTopology,\n openTunnel,\n devMetadata,\n projectType,\n ]);\n\n const [timer, setTimer] = useState(Date.now());\n\n useEffect(() => {\n let disposed = false;\n\n void updateDevCenter()\n .then((result) => {\n if (isType(result, 'Changed')) {\n logger.log(\n 'App Manifest updated. Refresh existing browser tabs to view the latest changes.'\n );\n }\n })\n .catch((error: unknown) => {\n // TODO: need product decision on how to format/color the output\n logger.log('Failed to update App Manifest');\n logger.log(`${error}`);\n\n writeToDebugLog(error);\n })\n .then(() => {\n if (!disposed) {\n setTimeout(() => setTimer(Date.now()), 1_000);\n }\n });\n return () => {\n disposed = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [timer]);\n\n return { tunnelRequired, devArmTag };\n};\n","export { useMetasiteManagerClient } from './useMetasiteManagerClient.js';\nexport { MetasiteManagerClient } from './metasite-manager-client.js';\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { usePanoramaMethodLogger } from '@wix/cli-panorama';\nimport { MetasiteManagerClient } from './metasite-manager-client.js';\n\nexport function useMetasiteManagerClient(): MetasiteManagerClient {\n const httpClient = useHttpClient({ type: 'general' });\n const client = useMemo(\n () => new MetasiteManagerClient(httpClient),\n [httpClient]\n );\n\n return usePanoramaMethodLogger(client);\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 { distribute } from '@wix/ambassador-document-management-document-store-v1-transaction/http';\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 public distributeClientUpdate = async (appId: string) => {\n try {\n await this.httpClient.request(\n distribute({\n payloads: [\n {\n id: appId,\n messageType: 'MANIFEST_UPDATE',\n data: {\n appId,\n },\n },\n ],\n branchId: '00000000-0000-0000-0000-000000000000',\n })\n );\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToDistributeClientManifestUpdate(),\n cause: e,\n });\n }\n };\n}\n",null,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 { useCallback } from 'react';\nimport { parseLooseAppManifest } from '@wix/cli-app-manifest';\nimport type { DevMetadata } from '@wix/cli-astro-definitions';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { isTunnelRequired } from '../utils/isTunnelRequired.js';\n\nexport function useFetchAppManifest() {\n const http = useHttpClient({ type: 'standalone' });\n\n return useCallback(\n async (\n serverLocalUrl: string,\n devMetadata: DevMetadata | null,\n baseUrl: string,\n tunnelUrl: string\n ) => {\n const url = new URL('/_wix/app-manifest.json', serverLocalUrl);\n const { data: text } = await http.get<string>(url.toString(), {\n responseType: 'text',\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: false,\n clarifyTimeoutError: false,\n },\n disableWixHeaders: true,\n });\n\n if (devMetadata != null) {\n const placeholders = new Map<string, string>();\n\n placeholders.set(devMetadata.staticsUrlPlaceholder, baseUrl);\n placeholders.set(devMetadata.serverUrlPlaceholder, tunnelUrl);\n\n return {\n manifest: parseLooseAppManifest(text, placeholders),\n isTunnelRequired: text.includes(devMetadata.serverUrlPlaceholder),\n };\n }\n\n const manifestV1 = parseLooseAppManifest(text);\n\n return {\n manifest: manifestV1,\n isTunnelRequired: isTunnelRequired(manifestV1),\n };\n },\n [http]\n );\n}\n","import { looseComponentSchema } from '@wix/cli-app-manifest';\nimport type {\n LooseAppManifest,\n LooseBaseComponent,\n} from '@wix/cli-app-manifest';\nimport { ComponentType } from '@wix/ambassador-devcenter-apps-v1-app-old/types';\n\nexport function isTunnelRequired(appManifest: LooseAppManifest) {\n for (const extension of appManifest.components) {\n const knownAppManifest = parseKnownExtensionManifest(extension);\n\n if (\n knownAppManifest != null &&\n knownAppManifest.compType === ComponentType.WEBHOOK\n ) {\n // User can specify his own callback URL.\n // In such cases tunnel is not required even if webhook exists.\n // CLI always creates a relative URL which is not parsable.\n return !URL.canParse(knownAppManifest.compData.webhook.callbackUrl);\n }\n }\n\n return false;\n}\n\nfunction parseKnownExtensionManifest(extensionManifest: LooseBaseComponent) {\n const appManifestResult = looseComponentSchema.safeParse(extensionManifest);\n\n if (appManifestResult.error) {\n return null;\n }\n\n return appManifestResult.data;\n}\n","import React, { useState } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match } from 'variant';\nimport { ConfirmInput, Text, useAsync, useExit } from '@wix/cli-ui-kit';\nimport { readUserConfig, updateUserConfig } from '@wix/cli-user-config';\n\ninterface Props {\n children: ReactNode;\n required: boolean;\n}\n\nexport const TunnelingConsent: FC<Props> = ({ required, children }) => {\n const exit = useExit();\n const [approved, setApproved] = useState<boolean>();\n\n const { status } = useAsync(async () => {\n const config = await readUserConfig();\n\n if (config.tunneling) {\n setApproved(true);\n }\n\n return config;\n }, []);\n\n if (!required || approved) {\n return children;\n }\n\n return (\n <>\n {match(status, {\n Success: () => (\n <ConfirmInput\n label={\n \"To proceed, we'll set up a secure tunnel from your machine for development purposes\"\n }\n initialValue={true}\n onSubmit={async (approved) => {\n setApproved(approved);\n await updateUserConfig({ tunneling: approved });\n if (!approved) {\n exit();\n }\n }}\n />\n ),\n Error: () => null,\n Loading: () => null,\n })}\n {approved === false && (\n <Text skin=\"error\">\n Operation aborted. Tunneling is necessary to run your application.\n </Text>\n )}\n </>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport type { AsyncCallbackStatus } from '@wix/cli-ui-kit';\nimport type { DevMetadata } from '@wix/cli-astro-definitions';\nimport { Spinner } from '@wix/cli-ui-kit';\nimport { AppDev } from './app-flow/AppDev.js';\nimport { DevScreenBorder } from './DevScreenBorder.js';\n\ninterface AppDevScreenProps {\n devMetadataStatus: AsyncCallbackStatus<{\n devMetadata: DevMetadata | null;\n serverLocalUrl: string;\n }>;\n serverExposedUrl?: string;\n}\n\nexport const AppDevFlow: FC<AppDevScreenProps> = ({\n devMetadataStatus,\n serverExposedUrl,\n}) => {\n return match(devMetadataStatus, {\n NotRequested: () => <Spinner text=\"Starting dev environment...\" />,\n Error: () => null,\n Loading: () => <Spinner text=\"Checking dev environment settings...\" />,\n Success: ({ result: { devMetadata, serverLocalUrl } }) => {\n return (\n <DevScreenBorder>\n <AppDev\n serverLocalUrl={serverLocalUrl}\n serverExposedUrl={serverExposedUrl}\n devMetadata={devMetadata}\n />\n </DevScreenBorder>\n );\n },\n });\n};\n","import type { DevMetadata } from '@wix/cli-astro-definitions';\nimport type { FC } from 'react';\nimport React, { useState } from 'react';\nimport { match } from 'variant';\nimport { ScreenState } from './screen-state.js';\nimport { TunnelingConsent } from '../TunnelingConsent.js';\nimport { SiteSelectorScreen } from './SiteSelectorScreen.js';\nimport { HomeScreen } from './HomeScreen.js';\nimport { useDevCenterUpdater } from '../hooks/useDevCenterUpdater.js';\n\ninterface AppDev {\n serverLocalUrl: string;\n serverExposedUrl?: string;\n devMetadata: DevMetadata | null;\n}\n\nexport const AppDev: FC<AppDev> = ({\n serverLocalUrl,\n serverExposedUrl,\n devMetadata,\n}) => {\n const [screen, setScreen] = useState<ScreenState>(ScreenState.Home());\n\n const { tunnelRequired, devArmTag } = useDevCenterUpdater({\n serverLocalUrl,\n serverExposedUrl,\n devMetadata,\n });\n\n return (\n <TunnelingConsent required={tunnelRequired}>\n {match(screen, {\n Home: () => (\n <HomeScreen onScreenChange={setScreen} devArmTag={devArmTag} />\n ),\n SiteSelector: () => <SiteSelectorScreen onScreenChange={setScreen} />,\n })}\n </TunnelingConsent>\n );\n};\n","import { variant } from 'variant';\nimport type { VariantOf } from 'variant';\n\nexport const ScreenState = variant({\n Home: {},\n SiteSelector: {},\n});\n\nexport type ScreenState = VariantOf<typeof ScreenState>;\n","import React, { useState, useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Alert, Box, PointerIcon, Text } from '@wix/cli-ui-kit';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport type { Site } from '@wix/site-list-client';\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 { model } = useProjectModel();\n const biLogger = useBiLogger();\n const { siteId, 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.id);\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 <Text>Current Development Site: {siteId}</Text>\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\">Failed to change Development Site!</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 from 'react';\nimport type { FC } from 'react';\nimport { Key, Text, useInput } from '@wix/cli-ui-kit';\nimport { useWixCliAppBi } from '../../bi-app/index.js';\n\ninterface Props {\n onClose: () => void;\n}\n\nexport const CloseScreen: FC<Props> = ({ onClose }) => {\n const bi = useWixCliAppBi();\n\n useInput((_, key) => {\n if (key.escape) {\n bi.cliAction({\n question: 'Press to close',\n questionKey: 'general.close_screen',\n action: 'close',\n key: 'esc',\n });\n onClose();\n }\n });\n\n return (\n <Text skin=\"secondary\">\n Press\n <Key value=\"esc\" skin=\"secondary\" />\n to close\n </Text>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport process from 'node:process';\nimport { Box, Text, Spinner } from '@wix/cli-ui-kit';\nimport { useSite } from '../../../site/index.js';\nimport type { ScreenState } from './screen-state.js';\nimport { SwitchSite } from './SwitchSite.js';\nimport { RedirectLink } from '../../PlatformLink/RedirectLink.js';\n\ninterface HomeScreenProps {\n onScreenChange: (screen: ScreenState) => void;\n devArmTag?: string;\n}\n\nexport const HomeScreen: FC<HomeScreenProps> = ({\n onScreenChange,\n devArmTag,\n}) => {\n const { siteId } = useSite();\n\n return (\n <>\n <Box gap={1}>\n <Text>Current Dev Site:</Text>\n <Text bold skin=\"info\">\n {siteId}\n </Text>\n {process.stdin.isTTY && <SwitchSite onScreenChange={onScreenChange} />}\n </Box>\n\n <Box paddingTop={1} paddingBottom={1} flexDirection=\"column\">\n <Text>Open the preview on:</Text>\n <Box paddingLeft={2} flexDirection=\"column\">\n {devArmTag ? (\n <>\n <RedirectLink\n platform=\"site\"\n armTag={devArmTag}\n tenantId={siteId}\n />\n <RedirectLink\n platform=\"editor\"\n armTag={devArmTag}\n tenantId={siteId}\n />\n <RedirectLink\n platform=\"dashboard\"\n armTag={devArmTag}\n tenantId={siteId}\n />\n </>\n ) : (\n <Spinner text=\"Preparing your dashboard...\" />\n )}\n </Box>\n </Box>\n </>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Text, useInput, Key } from '@wix/cli-ui-kit';\nimport { ScreenState } from './screen-state.js';\nimport { useWixCliAppBi } from '../../../bi-app/index.js';\n\nexport const SwitchSite: FC<{\n onScreenChange: (screen: ScreenState) => void;\n}> = ({ onScreenChange }) => {\n const bi = useWixCliAppBi();\n\n useInput(async (input) => {\n if (input === 'c') {\n bi.cliAction({\n question: 'Switch Dev Site',\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 <Text skin=\"secondary\">\n (Press <Key value=\"C\" skin=\"secondary\" /> to switch)\n </Text>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;AAAA,IAAAA,iBAAkD;;;ACAlD;AAIO,IAAM,aAAa;AACnB,IAAM,uBAAuB;AAE7B,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,aAAa,CAAC,SAAS,KAAK;AAElC,MAAI,MAAM;AACR,eAAW,KAAK,UAAU,GAAG,IAAI,EAAE;AAAA,EACrC;AAEA,MAAI,cAAc;AAChB,eAAW,KAAK,mBAAmB,YAAY;AAAA,EACjD;AAEA,QAAM,EAAE,MAAM,KAAK,IAAI,eAAe,gBAAgB,UAAU;AAEhE,QAAM,SAAS,MAAM,MAAM,MAAM;AAAA,IAC/B,KAAK;AAAA,IACL,OAAO;AAAA,IACP,KAAK,EAAE,aAAa,IAAI;AAAA,IACxB,SAAS;AAAA,IACT,aAAa;AAAA,EACf,CAAC;AAED,MAAI,eAAe;AAEnB,SAAO,QAAQ,GAAG,QAAQ,CAAC,UAAU;AACnC,oBAAgB,MAAM,SAAS;AAC/B,UAAM,QAAQ,aAAa,MAAM,IAAI;AAErC,mBAAe,MAAM,IAAI,KAAK;AAC9B,eAAW,QAAQ,OAAO;AACxB,aAAO,QAAQ,KAAK,YAAY,IAAI;AACpC,UAAI,KAAK,SAAS,SAAS,GAAG;AAC5B,cAAMC,SAAQ,oBAAoB,KAAK,IAAI;AAC3C,YAAIA,SAAQ,CAAC,GAAG;AACd,gBAAM,UAAU,UAAUA,OAAM,CAAC,CAAC,EAAE,KAAK;AACzC,iBAAO,QAAQ,KAAK,sBAAsB,OAAO;AAAA,QACnD;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,eAAe;AAEnB,SAAO,QAAQ,GAAG,QAAQ,CAAC,UAAU;AACnC,oBAAgB,MAAM,SAAS;AAC/B,UAAM,QAAQ,aAAa,MAAM,IAAI;AAErC,mBAAe,MAAM,IAAI,KAAK;AAC9B,eAAW,QAAQ,OAAO;AACxB,aAAO,QAAQ,KAAK,YAAY,IAAI;AAAA,IACtC;AAAA,EACF,CAAC;AAED,SAAO;AACT;;;ACtEA;AAAA,mBAAkB;AAQlB,IAAM,iBAAiB,IAAI,KAAK,eAAe,CAAC,GAAG;AAAA,EACjD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AACV,CAAC;AAEM,SAAS,kBAAkB,aAAa,MAAc;AAC3D,QAAM,WAAW,uBAAuB,EAAE,WAAW,MAAM,CAAC;AAC5D,QAAM,MAAM,CAAC,QAA+B;AAC1C,QAAI,OAAO,QAAQ,UAAU;AAE3B,iBAAW,MAAM,QAAQ,IAAI,GAAG,GAAG,CAAC;AAAA,IACtC,OAAO;AAEL,iBAAW,MAAM,QAAQ,IAAI,SAAS,OAAO,GAAG,CAAC,GAAG,CAAC;AAAA,IACvD;AAAA,EACF;AAEA,QAAM,cAAc,CAAC,QAA+B;AAClD,UAAM,YAAY,eAAe,OAAO,oBAAI,KAAK,CAAC;AAClD,UAAMC,OACJ,6BAAAC,QAAA,cAAC,YACC,6BAAAA,QAAA,cAAC,YAAM,WAAU,GAAC,GAClB,6BAAAA,QAAA,cAAC,QAAK,MAAK,UAAO,QAAM,GACxB,6BAAAA,QAAA,cAAC,YAAM,GAAI,CACb;AAIF,YAAQ,IAAI,SAAS,OAAOD,IAAG,CAAC;AAAA,EAClC;AAEA,SAAO,aAAa,EAAE,KAAK,YAAY,IAAI,EAAE,IAAI;AACnD;;;AC1CA;AAIO,SAAS,sBAAsB;AACpC,QAAM,OAAO,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjD,SAAO,iBAAiB,OAAO,GAAG,mBAA2B;AAC3D,UAAM,MAAM,IAAI,IAAI,2BAA2B,cAAc;AAC7D,QAAI;AACF,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC;AAC9C,aAAO;AAAA,QACL,aAAa,kBAAkB,MAAM,IAAI;AAAA,QACzC;AAAA,MACF;AAAA,IACF,QAAQ;AACN,aAAO;AAAA,QACL,aAAa;AAAA,QACb;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;ACtBA;AAAA,IAAAE,gBAAkB;AAMlB,IAAAC,kBAAsB;;;ACNtB;AAAA,IAAAC,gBAAkB;AAIX,IAAM,kBAA+C,CAAC,EAAE,SAAS,MAAM;AAC5E,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,WAAS;AAAA,MACT,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,aAAa;AAAA,MACb,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,OAAM;AAAA;AAAA,IAEL;AAAA,EACH;AAEJ;;;ACnBA;;;ACAA;AAAA,IAAAC,gBAAkB;;;ACAlB;AACA,IAAAC,gBAAkE;AAClE,qBAAwC;AAFxC,SAAS,yBAAyB;;;ACAlC;;;ACAA;AAAA,IAAAC,gBAAwB;;;ACAxB;;;ACkGA;AA4BA,IAAM,qCAAqC,CAAA;AAC3C,IAAM,sCAAsC,EAAE,UAAU,YAAW;AAwCnE,IAAM,YAAY;EAChB,aAAa;EACb,aAAa;EACb,oBAAoB;;AA+RtB,SAAS,oDACP,MAA8C;AAE9C,MAAM,mBAAmB;IACvB,qBAAqB;MACnB;QACE,SAAS;QACT,UAAU;;MAEZ;QACE,SAAS;QACT,UAAU;;;IAGd,wBAAwB;MACtB;QACE,SAAS;QACT,UAAU;;MAEZ;QACE,SAAS;QACT,UAAU;;;IAGd,mBAAmB;MACjB;QACE,SAAS;QACT,UAAU;;;IAGd,wBAAwB;MACtB;QACE,SAAS;QACT,UAAU;;;IAGd,wBAAwB;MACtB;QACE,SAAS;QACT,UAAU;;;IAGd,kBAAkB;MAChB;QACE,SAAS;QACT,UAAU;;;;AAKhB,SAAO,WAAW,OAAO,OAAO,MAAM,EAAE,iBAAgB,CAAE,CAAC;AAC7D;AA8MM,SAAU,2BACd,SAA0C;AAMpC,MAAA,KAAuC,WAC3C,oCACA,CAAA,CAAE,GAFY,QAAK,GAAA,QAAY,UAAO,GAAA;AAIhC,MAAU,UAAY,WAC5B,qCACA,EAAE,UAAS,CAAE,EACd;AAED,WAAS,6BAA6BC,KAAa;QAAX,OAAIA,IAAA;AAC1C,QAAM,iBAAiB,MAAM,OAAO;AACpC,QAAM,WAAW;MACf,YAAY;MACZ,QAAQ;MACR,WACE;MACF,KAAK,oDAAoD;QACvD,WAAW;QACX,MAAM;QACN;OACD;MACD,MAAM;MACN,mBAAmB;;AAGrB,WAAO;EACT;AAEA,+BAA6B,UAAU;AACvC,+BAA6B,iBAAiB;AAC9C,SAAO;AACT;;;ACztBA;AASA,IAAM,qBAAqB,CAAA;AAC3B,IAAM,sBAAsB,CAAA;AAiB5B,SAAS,mDACP,MAA8C;AAE9C,MAAM,mBAAmB;IACvB,yBAAyB;MACvB;QACE,SAAS;QACT,UAAU;;;IAGd,qBAAqB;MACnB;QACE,SAAS;QACT,UAAU;;;IAGd,wBAAwB;MACtB;QACE,SAAS;QACT,UAAU;;;IAGd,wBAAwB;MACtB;QACE,SAAS;QACT,UAAU;;;IAGd,kBAAkB;MAChB;QACE,SAAS;QACT,UAAU;;;;AAKhB,SAAO,WAAW,OAAO,OAAO,MAAM,EAAE,iBAAgB,CAAE,CAAC;AAC7D;AA6SM,SAAU,WAAW,SAA0B;AAK7C,MAAA,KAAuC,WAC3C,oBACA,CAAA,CAAE,GAFY,QAAK,GAAA,QAAY,UAAO,GAAA;AAIhC,MAAU,UAAY,WAAW,qBAAqB,CAAA,CAAE,EAAC;AAEjE,WAAS,aAAaC,KAAa;QAAX,OAAIA,IAAA;AAC1B,QAAM,iBAAiB,MAAM,OAAO;AACpC,QAAM,WAAW;MACf,YAAY;MACZ,QAAQ;MACR,WAAW;MACX,kBAAkB;QAChB,wBAAwB;;MAE1B,KAAK,mDAAmD;QACtD,WAAW;QACX,MAAM;QACN;OACD;MACD,MAAM;MACN,mBAAmB;;AAGrB,WAAO;EACT;AAEA,eAAa,UAAU;AACvB,eAAa,iBAAiB;AAC9B,SAAO;AACT;;;ACvaA;AAEO,IAAM,sBAAsB,iBAAE;AAAA,EACnC,iBAAE,OAAO;AAAA,IACP,iBAAiB,iBAAE,OAAO,EAAE,SAAS;AAAA,IACrC,aAAa,iBAAE,OAAO,EAAE,SAAS,iBAAE,QAAQ,EAAE,CAAC,EAAE,SAAS;AAAA,IACzD,YAAY,iBAAE,OAAO,EAAE,SAAS;AAAA,EAClC,CAAC;AACH;AAEO,IAAM,mCAAmC,iBAAE,OAAO;AAAA,EACvD,UAAU,iBAAE,OAAO;AAAA,IACjB,YAAY,iBAAE,OAAO;AAAA,EACvB,CAAC;AACH,CAAC;;;AHJM,IAAM,wBAAN,MAA4B;AAAA,EACjC,YAA6B,YAAwB;AAAxB;AAAA,EAAyB;AAAA,EAE9C,mBAAmB,OAAO,eAAuB;AACvD,QAAI;AACF,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,QAAQ;AAAA,QAC7C,KAAK,iDAAiD,UAAU;AAAA,MAClE,CAAC;AAED,aAAO,oBAAoB,MAAM,IAAI;AAAA,IACvC,SAAS,GAAG;AACV,YAAM,IAAI,SAAS;AAAA,QACjB,MAAM,aAAa,yBAAyB;AAAA,QAC5C,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEO,6BAA6B,OAClC,YACG;AACH,QAAI;AACF,YAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW;AAAA,QACrC,2BAA2B,OAAO;AAAA,MACpC;AACA,aAAO,iCAAiC,MAAM,IAAI,EAAE;AAAA,IACtD,SAAS,GAAG;AACV,YAAM,IAAI,SAAS;AAAA,QACjB,MAAM,aAAa,mCAAmC;AAAA,QACtD,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEO,uBAAuB,OAAO,eAAuB;AAC1D,QAAI;AACF,YAAM,gBAAgB,MAAM,KAAK,iBAAiB,UAAU;AAE5D,aAAO,OAAO,OAAO,aAAa,EAC/B,OAAO,CAAC,SAAS,KAAK,mBAAmB,CAAC,KAAK,aAAa,OAAO,EACnE,IAAI,CAAC,SAAS,KAAK,eAAgB;AAAA,IACxC,SAAS,GAAG;AACV,YAAM,IAAI,SAAS;AAAA,QACjB,MAAM,aAAa,6BAA6B;AAAA,QAChD,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEO,4BAA4B,OAAO;AAAA,IACxC;AAAA,IACA;AAAA,EACF,MAGM;AACJ,QAAI;AACF,YAAM,gBAAgB,MAAM,KAAK,iBAAiB,UAAU;AAC5D,YAAM,eAAe,OAAO,OAAO,aAAa,EAAE;AAAA,QAChD,CAAC,SAAS,KAAK,oBAAoB;AAAA,MACrC;AAEA,aAAO,cAAc,cAAc;AAAA,IACrC,SAAS,GAAG;AACV,YAAM,IAAI,SAAS;AAAA,QACjB,MAAM,aAAa,sCAAsC;AAAA,QACzD,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEO,yBAAyB,OAAO,UAAkB;AACvD,QAAI;AACF,YAAM,KAAK,WAAW;AAAA,QACpB,WAAW;AAAA,UACT,UAAU;AAAA,YACR;AAAA,cACE,IAAI;AAAA,cACJ,aAAa;AAAA,cACb,MAAM;AAAA,gBACJ;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF,SAAS,GAAG;AACV,YAAM,IAAI,SAAS;AAAA,QACjB,MAAM,aAAa,uCAAuC;AAAA,QAC1D,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ADnGO,SAAS,2BAAkD;AAChE,QAAM,aAAa,cAAc,EAAE,MAAM,UAAU,CAAC;AACpD,QAAM,aAAS;AAAA,IACb,MAAM,IAAI,sBAAsB,UAAU;AAAA,IAC1C,CAAC,UAAU;AAAA,EACb;AAEA,SAAO,wBAAwB,MAAM;AACvC;;;AKbA;AAAA,IAAAC,gBAA4B;;;ACA5B;AAOO,SAAS,iBAAiB,aAA+B;AAC9D,aAAW,aAAa,YAAY,YAAY;AAC9C,UAAM,mBAAmB,4BAA4B,SAAS;AAE9D,QACE,oBAAoB,QACpB,iBAAiB,aAAa,cAAc,SAC5C;AAIA,aAAO,CAAC,IAAI,SAAS,iBAAiB,SAAS,QAAQ,WAAW;AAAA,IACpE;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,4BAA4B,mBAAuC;AAC1E,QAAM,oBAAoB,qBAAqB,UAAU,iBAAiB;AAE1E,MAAI,kBAAkB,OAAO;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,kBAAkB;AAC3B;;;AD3BO,SAAS,sBAAsB;AACpC,QAAM,OAAO,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjD,aAAO;AAAA,IACL,OACE,gBACA,aACA,SACA,cACG;AACH,YAAM,MAAM,IAAI,IAAI,2BAA2B,cAAc;AAC7D,YAAM,EAAE,MAAM,KAAK,IAAI,MAAM,KAAK,IAAY,IAAI,SAAS,GAAG;AAAA,QAC5D,cAAc;AAAA,QACd,cAAc;AAAA,UACZ,mBAAmB;AAAA,UACnB,mBAAmB;AAAA,UACnB,qBAAqB;AAAA,QACvB;AAAA,QACA,mBAAmB;AAAA,MACrB,CAAC;AAED,UAAI,eAAe,MAAM;AACvB,cAAM,eAAe,oBAAI,IAAoB;AAE7C,qBAAa,IAAI,YAAY,uBAAuB,OAAO;AAC3D,qBAAa,IAAI,YAAY,sBAAsB,SAAS;AAE5D,eAAO;AAAA,UACL,UAAU,sBAAsB,MAAM,YAAY;AAAA,UAClD,kBAAkB,KAAK,SAAS,YAAY,oBAAoB;AAAA,QAClE;AAAA,MACF;AAEA,YAAM,aAAa,sBAAsB,IAAI;AAE7C,aAAO;AAAA,QACL,UAAU;AAAA,QACV,kBAAkB,iBAAiB,UAAU;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,CAAC,IAAI;AAAA,EACP;AACF;;;AP7BA,IAAM,2BAAuB,wBAAQ;AAAA,EACnC,aAAS,uBAAkD;AAAA,EAC3D,WAAW,CAAC;AACd,CAAC;AAEM,IAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,CAAC,WAAW,YAAY,QAAI,wBAA6B;AAC/D,QAAM,CAAC,UAAU,WAAW,QAAI,wBAAkC,IAAI;AACtE,QAAM,kBAAkB,YAAY;AACpC,QAAM,EAAE,OAAO,IAAI,QAAQ;AAC3B,QAAM,EAAE,uBAAuB,IAAI,yBAAyB;AAE5D,QAAM,0BAAsB;AAAA,IAC1B,CAAC,mBAAqC;AACpC,UAAI,YAAY,MAAM;AACpB,eAAO,qBAAqB,QAAQ;AAAA,UAClC,8BAA8B;AAAA,QAChC,CAAC;AAAA,MACH;AAEA,YAAM,mBAAmB,IAAI;AAAA,QAC3B,SAAS,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,CAAC;AAAA,MACvD;AAEA,YAAM,oBAAoB,eAAe,WAAW,OAAO,CAAC,YAAY;AACtE,cAAM,UAAU,iBAAiB,IAAI,QAAQ,MAAM;AACnD,eAAO,CAAC,kBAAkB,SAAS,OAAO;AAAA,MAC5C,CAAC;AAED,UAAI,kBAAkB,WAAW,GAAG;AAClC,eAAO,qBAAqB,UAAU;AAAA,MACxC;AAEA,YAAM,0BAA0B,kBAAkB;AAAA,QAChD,CAAC,SACC,KAAK,aAAa,cAAc,SAChC,KAAK,aAAa,cAAc;AAAA,MACpC;AAEA,aAAO,qBAAqB,QAAQ;AAAA,QAClC,8BAA8B,wBAAwB,SAAS;AAAA,MACjE,CAAC;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM;AAAA,IACJ,OAAO;AAAA,MACL,QAAQ,EAAE,OAAO,YAAY;AAAA,MAC7B;AAAA,IACF;AAAA,EACF,IAAI,gBAAgB;AAEpB,QAAM,aAAS,uBAAQ,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpD,QAAM,MAAM,aAAa;AACzB,QAAM,2BAA2B,4BAA4B,MAAM;AAEnE,QAAM,aAAa,UAAU;AAC7B,QAAM,gBAAY,sBAAe;AACjC,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,wBAAS,KAAK;AAE1D,QAAM,mBAAmB,oBAAoB;AAE7C,QAAM,sBAAkB,2BAAY,YAAY;AAC9C,UAAM,UAAU,oBAAoB;AAEpC,UAAM,EAAE,UAAU,gBAAgB,kBAAAC,kBAAiB,IACjD,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,WAAW;AAAA,IACvB;AAEF,UAAM,uBAAuB,oBAAoB,cAAc;AAE/D,YAAI,uBAAO,sBAAsB,WAAW,GAAG;AAC7C,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,oBAAoB,CAAC,UAAU,WAAWA,mBAAkB;AAC/D,YAAM,SAAS,MAAM,eAAe;AACpC,UAAI,CAAC,OAAO,WAAW;AACrB,0BAAkB,IAAI;AACtB,eAAO,qBAAqB,UAAU;AAAA,MACxC;AAEA,YAAM,kBAAkB,SAAS,IAAI,IAAI,cAAc,EAAE,MAAM,EAAE;AACjE,YAAM,SAAS,MAAM,WAAW,eAAe;AAC/C,gBAAU,UAAU,OAAO;AAE3B,aAAO,qBAAqB,UAAU;AAAA,IACxC;AAEA,UAAM,YAAY,MAAM,cAAc,aAAa;AAEnD,QAAI,mBAAmB,WAAW;AAClC,QAAI,CAAC,kBAAkB;AACrB,yBAAmB,MAAM,IAAI,sBAAsB,gBAAgB,KAAK;AAAA,IAC1E,OAAO;AACL,YAAM,cAAc,MAAM,IAAI;AAAA,QAC5B;AAAA,QACA;AAAA,MACF;AACA,UAAI,KAAC,uBAAO,aAAa,YAAY,GAAG;AACtC,2BAAmB,MAAM,IAAI;AAAA,UAC3B;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,qBAAqB,WAAW,WAAW;AAC7C,YAAM,cAAc,eAAe,EAAE,WAAW,iBAAiB,CAAC;AAAA,IACpE;AAEA,YACE,uBAAO,sBAAsB,SAAS,KACtC,qBAAqB,8BACrB;AACA,YAAM,uBAAuB,KAAK;AAAA,IACpC;AAEA,gBAAY,cAAc;AAC1B,iBAAa,gBAAgB;AAE7B,UAAM,yBAAyB,QAAQ;AAAA,MACrC,SACE,gBAAgB,SACZ,UACA,mBAAmB;AAAA,QACjB,UAAU;AAAA,QACV;AAAA,QACA,UAAU;AAAA,QACV,mBAAmB;AAAA,MACrB,CAAC;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,IACf,CAAC;AAED,WAAO;AAAA,EACT,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAS,KAAK,IAAI,CAAC;AAE7C,+BAAU,MAAM;AACd,QAAI,WAAW;AAEf,SAAK,gBAAgB,EAClB,KAAK,CAAC,WAAW;AAChB,cAAI,uBAAO,QAAQ,SAAS,GAAG;AAC7B,eAAO;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC,EACA,MAAM,CAAC,UAAmB;AAEzB,aAAO,IAAI,+BAA+B;AAC1C,aAAO,IAAI,GAAG,KAAK,EAAE;AAErB,sBAAgB,KAAK;AAAA,IACvB,CAAC,EACA,KAAK,MAAM;AACV,UAAI,CAAC,UAAU;AACb,mBAAW,MAAM,SAAS,KAAK,IAAI,CAAC,GAAG,GAAK;AAAA,MAC9C;AAAA,IACF,CAAC;AACH,WAAO,MAAM;AACX,iBAAW;AAAA,IACb;AAAA,EAEF,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO,EAAE,gBAAgB,UAAU;AACrC;;;ASxNA;AAAA,IAAAC,gBAAgC;AAEhC,IAAAC,kBAAsB;AASf,IAAM,mBAA8B,CAAC,EAAE,UAAU,SAAS,MAAM;AACrE,QAAM,OAAO,QAAQ;AACrB,QAAM,CAAC,UAAU,WAAW,QAAI,wBAAkB;AAElD,QAAM,EAAE,OAAO,IAAI,SAAS,YAAY;AACtC,UAAM,SAAS,MAAM,eAAe;AAEpC,QAAI,OAAO,WAAW;AACpB,kBAAY,IAAI;AAAA,IAClB;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,YAAY,UAAU;AACzB,WAAO;AAAA,EACT;AAEA,SACE,8BAAAC,QAAA,4BAAAA,QAAA,oBACG,uBAAM,QAAQ;AAAA,IACb,SAAS,MACP,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,OACE;AAAA,QAEF,cAAc;AAAA,QACd,UAAU,OAAOC,cAAa;AAC5B,sBAAYA,SAAQ;AACpB,gBAAM,iBAAiB,EAAE,WAAWA,UAAS,CAAC;AAC9C,cAAI,CAACA,WAAU;AACb,iBAAK;AAAA,UACP;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IAEF,OAAO,MAAM;AAAA,IACb,SAAS,MAAM;AAAA,EACjB,CAAC,GACA,aAAa,SACZ,8BAAAD,QAAA,cAAC,QAAK,MAAK,WAAQ,oEAEnB,CAEJ;AAEJ;;;AV1CO,IAAM,UAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,OAAO,IAAI,QAAQ;AAC3B,QAAM,EAAE,gBAAgB,UAAU,IAAI,oBAAoB;AAAA,IACxD;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE,8BAAAE,QAAA,4BAAAA,QAAA,gBACE,8BAAAA,QAAA,cAAC,YAAK,+BAA6B,GACnC,8BAAAA,QAAA,cAAC,eAAI,QAAQ,GAAG,SAAS,GAAG,eAAc,YACxC,8BAAAA,QAAA,cAAC,oBAAiB,UAAU,kBAC1B,8BAAAA,QAAA,cAAC,YAAK,sBAAoB,GAC1B,8BAAAA,QAAA,cAAC,eAAI,aAAa,GAAG,eAAc,YACjC,8BAAAA,QAAA,cAAC,gBAAa,KAAK,gBAAgB,OAAO,QAAQ,GACjD,YACC,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,oCAAoC,MAAM,kBAAkB,SAAS;AAAA,MAC1E,OAAO;AAAA;AAAA,EACT,IAEA,8BAAAA,QAAA,cAAC,WAAQ,MAAM,+BAA+B,CAElD,CACF,CACF,CACF;AAEJ;;;AH7BO,IAAM,cAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,OAAO,IAAI,QAAQ;AAC3B,SACE,8BAAAC,QAAA,cAAC,oBAAiB,cACf,uBAAM,mBAAmB;AAAA,IACxB,cAAc,MAAM,8BAAAA,QAAA,cAAC,WAAQ,MAAK,+BAA8B;AAAA,IAChE,OAAO,MAAM;AAAA,IACb,SAAS,MAAM,8BAAAA,QAAA,cAAC,WAAQ,MAAK,wCAAuC;AAAA,IACpE,SAAS,CAAC,EAAE,QAAQ,EAAE,aAAa,eAAe,EAAE,MAClD,8BAAAA,QAAA,cAAC,uBACC,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,CACF;AAAA,EAEJ,CAAC,CACH;AAEJ;;;Ac1CA;AAAA,IAAAC,iBAAkB;AAElB,IAAAC,kBAAsB;;;ACFtB;AAEA,IAAAC,iBAAgC;AAChC,IAAAC,kBAAsB;;;ACHtB;AAAA,IAAAC,kBAAwB;AAGjB,IAAM,kBAAc,yBAAQ;AAAA,EACjC,MAAM,CAAC;AAAA,EACP,cAAc,CAAC;AACjB,CAAC;;;ACND;AAAA,IAAAC,iBAA6C;;;ACA7C;;;ACAA;AAAA,IAAAC,gBAAkB;AASX,IAAM,cAAyB,CAAC,EAAE,QAAQ,MAAM;AACrD,QAAM,KAAK,eAAe;AAE1B,oBAAS,CAAC,GAAG,QAAQ;AACnB,QAAI,IAAI,QAAQ;AACd,SAAG,UAAU;AAAA,QACX,UAAU;AAAA,QACV,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,KAAK;AAAA,MACP,CAAC;AACD,cAAQ;AAAA,IACV;AAAA,EACF,CAAC;AAED,SACE,8BAAAC,QAAA,cAAC,QAAK,MAAK,eAAY,SAErB,8BAAAA,QAAA,cAAC,OAAI,OAAM,OAAM,MAAK,aAAY,GAAE,UAEtC;AAEJ;;;AFfO,IAAM,qBAAgC,CAAC,EAAE,eAAe,MAAM;AACnE,QAAM,EAAE,MAAM,IAAI,gBAAgB;AAClC,QAAM,WAAW,YAAY;AAC7B,QAAM,EAAE,QAAQ,QAAQ,IAAI,QAAQ;AACpC,QAAM,EAAE,YAAY,IAAI,iBAAiB;AACzC,QAAM,CAAC,OAAO,QAAQ,QAAI,yBAAkB,IAAI;AAEhD,QAAM,kBAAc;AAAA,IAClB,CAACC,WAAmB;AAClB,kBAAYA,MAAK;AACjB,eAASA,MAAK;AAAA,IAChB;AAAA,IACA,CAAC,aAAa,QAAQ;AAAA,EACxB;AAEA,QAAM,mBAAe;AAAA,IACnB,OAAO,SAAe;AACpB,UAAI;AACF,cAAM,QAAQ,KAAK,EAAE;AACrB,uBAAe,YAAY,KAAK,CAAC;AAAA,MACnC,SAAS,GAAG;AACV,oBAAY,CAAC;AAAA,MACf;AAAA,IACF;AAAA,IACA,CAAC,SAAS,gBAAgB,WAAW;AAAA,EACvC;AAEA,SACE,+BAAAC,QAAA,cAAC,eAAI,eAAc,UAAS,KAAK,KAC/B,+BAAAA,QAAA,cAAC,eAAI,KAAK,KACR,+BAAAA,QAAA,cAAC,iBAAY,GACb,+BAAAA,QAAA,cAAC,YAAK,8BAA2B,MAAO,CAC1C,GACA,+BAAAA,QAAA,cAAC,eAAI,eAAc,YACjB,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,MAAM,OAAO;AAAA,MACpB;AAAA,MACA,UAAU;AAAA,MACV,SAAS;AAAA;AAAA,EACX,GACC,QACC,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,qBACE,+BAAAA,QAAA,cAAC,SAAM,MAAK,WAAQ,oCAAkC;AAAA;AAAA,EAE1D,IACE,IACN,GACA,+BAAAA,QAAA,cAAC,eAAY,SAAS,MAAM,eAAe,YAAY,KAAK,CAAC,GAAG,CAClE;AAEJ;;;AGpEA;AAAA,IAAAC,iBAAkB;AAElB,OAAO,aAAa;;;ACFpB;AAAA,IAAAC,iBAAkB;AAMX,IAAM,aAER,CAAC,EAAE,eAAe,MAAM;AAC3B,QAAM,KAAK,eAAe;AAE1B,oBAAS,OAAO,UAAU;AACxB,QAAI,UAAU,KAAK;AACjB,SAAG,UAAU;AAAA,QACX,UAAU;AAAA,QACV,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,KAAK;AAAA,MACP,CAAC;AACD,qBAAe,YAAY,aAAa,CAAC;AAAA,IAC3C;AAAA,EACF,CAAC;AAED,SACE,+BAAAC,QAAA,cAAC,QAAK,MAAK,eAAY,WACd,+BAAAA,QAAA,cAAC,OAAI,OAAM,KAAI,MAAK,aAAY,GAAE,aAC3C;AAEJ;;;ADdO,IAAM,aAAkC,CAAC;AAAA,EAC9C;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,OAAO,IAAI,QAAQ;AAE3B,SACE,+BAAAC,QAAA,6BAAAA,QAAA,gBACE,+BAAAA,QAAA,cAAC,eAAI,KAAK,KACR,+BAAAA,QAAA,cAAC,YAAK,mBAAiB,GACvB,+BAAAA,QAAA,cAAC,QAAK,MAAI,MAAC,MAAK,UACb,MACH,GACC,QAAQ,MAAM,SAAS,+BAAAA,QAAA,cAAC,cAAW,gBAAgC,CACtE,GAEA,+BAAAA,QAAA,cAAC,eAAI,YAAY,GAAG,eAAe,GAAG,eAAc,YAClD,+BAAAA,QAAA,cAAC,YAAK,sBAAoB,GAC1B,+BAAAA,QAAA,cAAC,eAAI,aAAa,GAAG,eAAc,YAChC,YACC,+BAAAA,QAAA,6BAAAA,QAAA,gBACE,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,UAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA;AAAA,EACZ,GACA,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,UAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA;AAAA,EACZ,GACA,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,UAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA;AAAA,EACZ,CACF,IAEA,+BAAAA,QAAA,cAAC,WAAQ,MAAK,+BAA8B,CAEhD,CACF,CACF;AAEJ;;;AL1CO,IAAM,SAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,QAAQ,SAAS,QAAI,yBAAsB,YAAY,KAAK,CAAC;AAEpE,QAAM,EAAE,gBAAgB,UAAU,IAAI,oBAAoB;AAAA,IACxD;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE,+BAAAC,QAAA,cAAC,oBAAiB,UAAU,sBACzB,uBAAM,QAAQ;AAAA,IACb,MAAM,MACJ,+BAAAA,QAAA,cAAC,cAAW,gBAAgB,WAAW,WAAsB;AAAA,IAE/D,cAAc,MAAM,+BAAAA,QAAA,cAAC,sBAAmB,gBAAgB,WAAW;AAAA,EACrE,CAAC,CACH;AAEJ;;;ADtBO,IAAM,aAAoC,CAAC;AAAA,EAChD;AAAA,EACA;AACF,MAAM;AACJ,aAAO,uBAAM,mBAAmB;AAAA,IAC9B,cAAc,MAAM,+BAAAC,QAAA,cAAC,WAAQ,MAAK,+BAA8B;AAAA,IAChE,OAAO,MAAM;AAAA,IACb,SAAS,MAAM,+BAAAA,QAAA,cAAC,WAAQ,MAAK,wCAAuC;AAAA,IACpE,SAAS,CAAC,EAAE,QAAQ,EAAE,aAAa,eAAe,EAAE,MAAM;AACxD,aACE,+BAAAA,QAAA,cAAC,uBACC,+BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF,CACF;AAAA,IAEJ;AAAA,EACF,CAAC;AACH;;;AlBdO,IAAM,aAAkC,CAAC;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ,OAAO,EAAE,QAAQ,cAAc;AAAA,EACjC,IAAI,gBAAgB;AAEpB,QAAM,OAAO,QAAQ;AACrB,QAAM,aAAS,wBAAQ,MAAM,kBAAkB,KAAK,GAAG,CAAC,CAAC;AAEzD,QAAM,mBAAe,uBAAuC;AAE5D,QAAM,yBAAyB,oBAAoB;AAEnD,WAAS,YAAY;AACnB,UAAM,WAAW,MAAM,YAAY,aAAa;AAChD,UAAM,iBAAiB,MAAM,qBAAqB,QAAQ;AAE1D,UAAM,QAAQ,YAAY;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,iBAAa,UAAU;AAEvB,UAAM,QAAQ,KAAK,sBAAsB,CAAC,YAAoB;AAC5D,WAAK,uBAAuB,QAAQ,OAAO;AAAA,IAC7C,CAAC;AAED,UAAM,QAAQ,GAAG,YAAY,CAAC,SAAiB,OAAO,IAAI,IAAI,CAAC;AAC/D,UAAM,QAAQ,GAAG,YAAY,CAAC,SAAiB,OAAO,IAAI,IAAI,CAAC;AAE/D,SAAK,MAAM,GAAG,QAAQ,MAAM;AAG1B,mBAAa,SAAS,QAAQ,QAAQ;AACtC,mBAAa,SAAS,QAAQ,QAAQ;AACtC,mBAAa,SAAS,OAAO,IAAI;AACjC,mBAAa,UAAU;AAEvB;AAAA,QACE,IAAI,SAAS;AAAA,UACX,OAAO;AAAA,UACP,MAAM,aAAa,iBAAiB;AAAA,QACtC,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,gCAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,aAAa,SAAS,KAAK;AAC7B,YAAI;AACF,uBAAa,QAAQ,KAAK,SAAS;AAAA,QACrC,QAAQ;AAAA,QAGR;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SACE,+BAAAC,QAAA,cAAC,oBACE,OAAO,gBAAgB,SACtB,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,mBAAmB,uBAAuB;AAAA,MAC1C;AAAA;AAAA,EACF,IAEA,+BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,mBAAmB,uBAAuB;AAAA,MAC1C;AAAA;AAAA,EACF,CAEJ;AAEJ;","names":["import_react","match","log","React","import_react","import_variant","import_react","React","import_react","import_react","import_react","_a","_a","import_react","isTunnelRequired","import_react","import_variant","React","approved","React","React","import_react","import_variant","import_react","import_variant","import_variant","import_react","import_react","React","error","React","import_react","import_react","React","React","React","React","React"]}
@@ -2,10 +2,10 @@ import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  EnvPullCommand
5
- } from "./chunk-6B3FQNMV.js";
5
+ } from "./chunk-AEHMTA2I.js";
6
6
  import "./chunk-4HUDTFI7.js";
7
7
  import "./chunk-PLRVWQKC.js";
8
- import "./chunk-W34JWURA.js";
8
+ import "./chunk-M4ZFK5EV.js";
9
9
  import "./chunk-EYV3FS5W.js";
10
10
  import "./chunk-FRGULVBF.js";
11
11
  import "./chunk-JVVXZI4G.js";
@@ -27,4 +27,4 @@ import "./chunk-4EFJZ3GQ.js";
27
27
  export {
28
28
  EnvPullCommand
29
29
  };
30
- //# sourceMappingURL=EnvPullCommand-22WYBFTO.js.map
30
+ //# sourceMappingURL=EnvPullCommand-OJPZK4HO.js.map
@@ -6,7 +6,7 @@ import {
6
6
  import "./chunk-PLRVWQKC.js";
7
7
  import {
8
8
  useProjectModel
9
- } from "./chunk-W34JWURA.js";
9
+ } from "./chunk-M4ZFK5EV.js";
10
10
  import "./chunk-EYV3FS5W.js";
11
11
  import "./chunk-FRGULVBF.js";
12
12
  import {
@@ -83,4 +83,4 @@ var EnvRemoveCommand = ({ variableKey }) => {
83
83
  export {
84
84
  EnvRemoveCommand
85
85
  };
86
- //# sourceMappingURL=EnvRemoveCommand-H6VFMJLM.js.map
86
+ //# sourceMappingURL=EnvRemoveCommand-EFTD4BAH.js.map
@@ -6,7 +6,7 @@ import {
6
6
  import "./chunk-PLRVWQKC.js";
7
7
  import {
8
8
  useProjectModel
9
- } from "./chunk-W34JWURA.js";
9
+ } from "./chunk-M4ZFK5EV.js";
10
10
  import "./chunk-EYV3FS5W.js";
11
11
  import "./chunk-FRGULVBF.js";
12
12
  import {
@@ -87,4 +87,4 @@ var EnvSetCommand = ({ variable }) => {
87
87
  export {
88
88
  EnvSetCommand
89
89
  };
90
- //# sourceMappingURL=EnvSetCommand-TDY5NJDM.js.map
90
+ //# sourceMappingURL=EnvSetCommand-UCGMQ7YA.js.map
@@ -1,11 +1,15 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
+ import {
4
+ getGenerateFlowByDocsExtensionType,
5
+ useGenerateFlows
6
+ } from "./chunk-MOYAGX4N.js";
3
7
  import {
4
8
  require_esprima
5
9
  } from "./chunk-IGHRRWV4.js";
6
10
  import {
7
11
  useDevCenterClient
8
- } from "./chunk-EVV3LZAI.js";
12
+ } from "./chunk-5OGPTD3P.js";
9
13
  import {
10
14
  wixCliAction,
11
15
  wixCliAppFlowStepsAnswers
@@ -29,7 +33,7 @@ import {
29
33
  EmbeddedScriptPlacement,
30
34
  getExtensionDir,
31
35
  useProjectModel
32
- } from "./chunk-W34JWURA.js";
36
+ } from "./chunk-M4ZFK5EV.js";
33
37
  import {
34
38
  useHttpClient
35
39
  } from "./chunk-EYV3FS5W.js";
@@ -63264,6 +63268,10 @@ var SelectServicePluginStep = ({ onSubmit, typeOption }) => {
63264
63268
  // {
63265
63269
  // title: 'Bookings',
63266
63270
  // items: [
63271
+ // {
63272
+ // title: 'Staff Sorting Provider',
63273
+ // value: ComponentType.STAFF_SORTING_PROVIDER,
63274
+ // },
63267
63275
  // {
63268
63276
  // title: 'Bookings Pricing Provider',
63269
63277
  // value: ComponentType.BOOKINGS_PRICING_PROVIDER,
@@ -69034,18 +69042,6 @@ var GenerateSitePlugin = () => {
69034
69042
  };
69035
69043
 
69036
69044
  // ../cli-astro-commands/src/components/GenerateCommand/GenerateCommand.tsx
69037
- var DevCenterGenerateFlow = (0, import_variant11.variant)({
69038
- DashboardPage: {},
69039
- DashboardPlugin: {},
69040
- DashboardMenuPlugin: {},
69041
- DashboardModal: {},
69042
- Event: {},
69043
- ServicePlugin: {},
69044
- EmbeddedScript: {},
69045
- CustomElement: {},
69046
- SitePlugin: {}
69047
- // SiteWidget: {},
69048
- });
69049
69045
  var FlowSelector = ({ onSubmit, generateFlow, generateFlows }) => {
69050
69046
  const bi = useWixCliAstroBi();
69051
69047
  const { goToNextStep, isActive } = useWizardStep();
@@ -69075,7 +69071,9 @@ var FlowSelector = ({ onSubmit, generateFlow, generateFlows }) => {
69075
69071
  }
69076
69072
  );
69077
69073
  };
69078
- var GenerateCommand = () => {
69074
+ var GenerateCommand = ({
69075
+ docsExtensionType
69076
+ }) => {
69079
69077
  const bi = useWixCliAstroBi();
69080
69078
  const dashboardPageSteps = useGenerateDashboardPage();
69081
69079
  const dashboardModalSteps = useGenerateDashboardModal();
@@ -69084,88 +69082,32 @@ var GenerateCommand = () => {
69084
69082
  const generateEmbeddedScriptSteps = useGenerateEmbeddedScript();
69085
69083
  const generateCustomElementSteps = useGenerateCustomElement();
69086
69084
  const generateSiteWidgetSteps = useGenerateSiteWidget();
69087
- const [generateFlow, setGenerateFlow] = (0, import_react35.useState)();
69088
- const generateFlows = (0, import_react35.useMemo)(
69089
- () => [
69090
- {
69091
- title: "Dashboard",
69092
- items: [
69093
- {
69094
- key: "dashboard-page",
69095
- title: "Dashboard Page",
69096
- value: DevCenterGenerateFlow.DashboardPage()
69097
- },
69098
- {
69099
- key: "dashboard-modal",
69100
- title: "Dashboard Modal",
69101
- value: DevCenterGenerateFlow.DashboardModal()
69102
- },
69103
- {
69104
- key: "dashboard-plugin",
69105
- title: "Dashboard Plugin",
69106
- value: DevCenterGenerateFlow.DashboardPlugin()
69107
- },
69108
- {
69109
- key: "dashboard-menu-plugin",
69110
- title: "Dashboard Menu Plugin",
69111
- value: DevCenterGenerateFlow.DashboardMenuPlugin()
69112
- }
69113
- ]
69114
- },
69115
- {
69116
- title: "Site",
69117
- items: [
69118
- {
69119
- key: "embedded-script",
69120
- title: "Embedded Script",
69121
- value: DevCenterGenerateFlow.EmbeddedScript()
69122
- },
69123
- {
69124
- key: "custom-element",
69125
- title: "Custom Element",
69126
- value: DevCenterGenerateFlow.CustomElement()
69127
- },
69128
- {
69129
- key: "site-plugin",
69130
- title: "Site Plugin",
69131
- value: DevCenterGenerateFlow.SitePlugin()
69132
- }
69133
- /* {
69134
- key: 'site-widget',
69135
- title: 'Site Widget',
69136
- value: DevCenterGenerateFlow.SiteWidget(),
69137
- }, */
69138
- ]
69139
- },
69140
- {
69141
- title: "Backend",
69142
- items: [
69143
- {
69144
- key: "event",
69145
- title: "Event",
69146
- value: DevCenterGenerateFlow.Event()
69147
- },
69148
- {
69149
- key: "service-plugin",
69150
- title: "Service Plugin",
69151
- value: DevCenterGenerateFlow.ServicePlugin()
69152
- }
69153
- ]
69154
- }
69155
- ],
69156
- []
69157
- );
69158
- const selectFlow = (0, import_react35.useCallback)(
69085
+ const biCliFlowStepAnswered = (0, import_react35.useCallback)(
69159
69086
  (selectedType) => {
69160
69087
  bi.cliFlowStepAnswered({
69161
69088
  question: "What kind of extension would you like to generate?",
69162
69089
  questionKey: "generate_command.flow.choose_flow",
69163
69090
  answer: selectedType.title
69164
69091
  });
69165
- setGenerateFlow(selectedType);
69166
69092
  },
69167
69093
  [bi]
69168
69094
  );
69095
+ const [generateFlow, setGenerateFlow] = (0, import_react35.useState)(() => {
69096
+ if (docsExtensionType) {
69097
+ const selectedType = getGenerateFlowByDocsExtensionType(docsExtensionType);
69098
+ biCliFlowStepAnswered(selectedType);
69099
+ return selectedType;
69100
+ }
69101
+ return;
69102
+ });
69103
+ const generateFlows = useGenerateFlows();
69104
+ const selectFlow = (0, import_react35.useCallback)(
69105
+ (selectedType) => {
69106
+ biCliFlowStepAnswered(selectedType);
69107
+ setGenerateFlow(selectedType);
69108
+ },
69109
+ [biCliFlowStepAnswered]
69110
+ );
69169
69111
  const shouldEditFlow = (0, import_variant11.isType)(generateFlow?.value, "DashboardPage") || (0, import_variant11.isType)(generateFlow?.value, "DashboardModal") || (0, import_variant11.isType)(generateFlow?.value, "ServicePlugin") || (0, import_variant11.isType)(generateFlow?.value, "Event") || (0, import_variant11.isType)(generateFlow?.value, "EmbeddedScript") || (0, import_variant11.isType)(generateFlow?.value, "CustomElement");
69170
69112
  return /* @__PURE__ */ import_react35.default.createElement(Box_default, { flexDirection: "column", paddingTop: 1 }, !shouldEditFlow && /* @__PURE__ */ import_react35.default.createElement(
69171
69113
  SelectGroupsInput,
@@ -69319,4 +69261,4 @@ ejs/lib/ejs.js:
69319
69261
  * @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0}
69320
69262
  *)
69321
69263
  */
69322
- //# sourceMappingURL=GenerateCommand-WJB2UILL.js.map
69264
+ //# sourceMappingURL=GenerateCommand-VTPLKN56.js.map