@wix/cli-app 1.1.1 → 1.1.2

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 (77) hide show
  1. package/build/CreateVersionCommand-ACZ3W4S4.js +4 -0
  2. package/build/CreateVersionCommand-ACZ3W4S4.js.map +1 -0
  3. package/build/DevCommand-26MBVEGM.js +4 -0
  4. package/build/DevCommand-26MBVEGM.js.map +1 -0
  5. package/build/PreviewCommand-MNP242P6.js +4 -0
  6. package/build/ServeCommand-LKGC43F2.js +4 -0
  7. package/build/{ServeCommand-PBWWH7JV.js.map → ServeCommand-LKGC43F2.js.map} +1 -1
  8. package/build/SiteIdProvider-KTD7B3MF.js +4 -0
  9. package/build/{build-2RGFEOAH.js → build-K7HCLEXF.js} +2 -2
  10. package/build/{chunk-BNCDZAQC.js → chunk-2DYAAR6J.js} +2 -2
  11. package/build/{chunk-ZVAVQTPJ.js → chunk-3CWGDMDQ.js} +2 -2
  12. package/build/chunk-5CKAQAZK.js +23 -0
  13. package/build/{chunk-FJCAYHQL.js.map → chunk-5CKAQAZK.js.map} +1 -1
  14. package/build/chunk-7L53MGM2.js +4 -0
  15. package/build/{chunk-LHKDRLTT.js.map → chunk-7L53MGM2.js.map} +1 -1
  16. package/build/{chunk-L4IT3FJC.js → chunk-BTGENTTK.js} +2 -2
  17. package/build/{chunk-RGPGMVHK.js → chunk-DLDSY2KE.js} +3 -3
  18. package/build/chunk-DLDSY2KE.js.map +1 -0
  19. package/build/{chunk-6G7R73WW.js → chunk-DWQSXNK2.js} +2 -2
  20. package/build/chunk-EUINJR7Q.js +4 -0
  21. package/build/chunk-EUINJR7Q.js.map +1 -0
  22. package/build/{chunk-JDGDMH7E.js → chunk-FBPBJN3V.js} +2 -2
  23. package/build/{chunk-JZEMYLWD.js → chunk-KZZTM2KZ.js} +2 -2
  24. package/build/{chunk-DUZ55BRL.js → chunk-LWF2UMZJ.js} +85 -56
  25. package/build/{chunk-DUZ55BRL.js.map → chunk-LWF2UMZJ.js.map} +1 -1
  26. package/build/chunk-NBPYX6UX.js +106 -0
  27. package/build/chunk-NBPYX6UX.js.map +1 -0
  28. package/build/{chunk-IJ6QC2OQ.js → chunk-SI3YQ623.js} +2 -2
  29. package/build/chunk-TUKI3OEQ.js +4 -0
  30. package/build/chunk-TUKI3OEQ.js.map +1 -0
  31. package/build/chunk-XCS5TRON.js +4 -0
  32. package/build/chunk-XCS5TRON.js.map +1 -0
  33. package/build/chunk-XTSD25NR.js +4 -0
  34. package/build/chunk-XTSD25NR.js.map +1 -0
  35. package/build/chunk-YT3VC22W.js +75 -0
  36. package/build/chunk-YT3VC22W.js.map +1 -0
  37. package/build/index.js +1 -1
  38. package/build/preview-MTYF5TV5.js +4 -0
  39. package/build/preview-MTYF5TV5.js.map +1 -0
  40. package/build/render-command-VR53CY3H.js +4 -0
  41. package/build/{render-command-3GYMO4L2.js.map → render-command-VR53CY3H.js.map} +1 -1
  42. package/package.json +7 -4
  43. package/build/CreateVersionCommand-M57PLQFO.js +0 -4
  44. package/build/CreateVersionCommand-M57PLQFO.js.map +0 -1
  45. package/build/DevCommand-HBIIRNKJ.js +0 -4
  46. package/build/DevCommand-HBIIRNKJ.js.map +0 -1
  47. package/build/PreviewCommand-ISSV3BOT.js +0 -4
  48. package/build/ServeCommand-PBWWH7JV.js +0 -4
  49. package/build/SiteIdProvider-OORASSSR.js +0 -4
  50. package/build/chunk-52CFCSNQ.js +0 -65
  51. package/build/chunk-52CFCSNQ.js.map +0 -1
  52. package/build/chunk-5CJ7KYIU.js +0 -4
  53. package/build/chunk-5CJ7KYIU.js.map +0 -1
  54. package/build/chunk-FGP4AKBM.js +0 -4
  55. package/build/chunk-FGP4AKBM.js.map +0 -1
  56. package/build/chunk-FJCAYHQL.js +0 -23
  57. package/build/chunk-JI4J5GCL.js +0 -4
  58. package/build/chunk-JI4J5GCL.js.map +0 -1
  59. package/build/chunk-LHKDRLTT.js +0 -4
  60. package/build/chunk-RGPGMVHK.js.map +0 -1
  61. package/build/chunk-U6YFRFIX.js +0 -106
  62. package/build/chunk-U6YFRFIX.js.map +0 -1
  63. package/build/chunk-XVSH4K7G.js +0 -4
  64. package/build/chunk-XVSH4K7G.js.map +0 -1
  65. package/build/preview-3532IXSY.js +0 -4
  66. package/build/preview-3532IXSY.js.map +0 -1
  67. package/build/render-command-3GYMO4L2.js +0 -4
  68. /package/build/{PreviewCommand-ISSV3BOT.js.map → PreviewCommand-MNP242P6.js.map} +0 -0
  69. /package/build/{SiteIdProvider-OORASSSR.js.map → SiteIdProvider-KTD7B3MF.js.map} +0 -0
  70. /package/build/{build-2RGFEOAH.js.map → build-K7HCLEXF.js.map} +0 -0
  71. /package/build/{chunk-BNCDZAQC.js.map → chunk-2DYAAR6J.js.map} +0 -0
  72. /package/build/{chunk-ZVAVQTPJ.js.map → chunk-3CWGDMDQ.js.map} +0 -0
  73. /package/build/{chunk-L4IT3FJC.js.map → chunk-BTGENTTK.js.map} +0 -0
  74. /package/build/{chunk-6G7R73WW.js.map → chunk-DWQSXNK2.js.map} +0 -0
  75. /package/build/{chunk-JDGDMH7E.js.map → chunk-FBPBJN3V.js.map} +0 -0
  76. /package/build/{chunk-JZEMYLWD.js.map → chunk-KZZTM2KZ.js.map} +0 -0
  77. /package/build/{chunk-IJ6QC2OQ.js.map → chunk-SI3YQ623.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DevCommand/index.ts","../src/components/DevCommand/DevCommand.tsx","../src/components/DevCommand/DevEnvironment.tsx","../src/components/DevCommand/useArmUpdater.ts","../src/components/DevCommand/useDevServer.ts","../src/vite/custom-logger.ts","../src/components/DevCommand/useDevEnvLogs.tsx","../src/files/dev.log.ts","../src/components/DevCommand/DevEnvLogLine.tsx","../src/components/DevCommand/DevCommandScreens.tsx","../src/components/DevCommand/HomeScreen.tsx","../src/site-id/index.ts","../src/components/DevCommand/screen-state.ts","../src/components/DevCommand/DevEnvLogsViewer.tsx","../src/components/DevCommand/DashboardPagesViewer.tsx","../src/components/DevCommand/useDashboardPages.tsx","../src/components/DevCommand/SiteSelectorScreen.tsx","../src/components/CloseScreen/index.tsx","../src/components/CloseScreen/CloseScreen.tsx","../src/components/DevCommand/DashboardPagesScreen.tsx"],"sourcesContent":["export { DevCommand } from './DevCommand.js';\nexport { DevEnvironmentProvider } from './DevEnvironment.js';\n","import React, { type FC } from 'react';\nimport { SiteIdProvider } from '../../site-id/SiteIdProvider.js';\nimport { DevEnvironmentProvider } from './DevEnvironment.js';\nimport { DevCommandScreens } from './DevCommandScreens.js';\n\nexport const DevCommand: FC<{ https: boolean }> = ({ https }) => {\n return (\n <SiteIdProvider>\n <DevEnvironmentProvider https={https}>\n <DevCommandScreens />\n </DevEnvironmentProvider>\n </SiteIdProvider>\n );\n};\n","import React, {\n type FC,\n type ReactNode,\n createContext,\n useContext,\n} from 'react';\nimport { match } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { useAsync, Spinner } from '@wix/cli-ui-kit';\nimport { useErrorReporter } from '@wix/cli-error-reporting';\nimport { useProjectModel } from '../../model.js';\nimport { useArmUpdater } from './useArmUpdater.js';\nimport { useDevServer } from './useDevServer.js';\nimport {\n useDevEnvLogs,\n type DevEnvLog,\n type WriteLogFn,\n} from './useDevEnvLogs.js';\n\ntype DevEnvironment = {\n armTag: string;\n https: boolean;\n devServerUrl: string;\n logs: DevEnvLog[];\n writeLog: WriteLogFn;\n};\n\nconst DevEnvironmentContext = createContext<DevEnvironment | null>(null);\n\nexport const DevEnvironmentProvider: FC<{\n https: boolean;\n children: ReactNode;\n}> = ({ https, children }) => {\n const { t } = useTranslation();\n const { reportError } = useErrorReporter();\n const createDevServer = useDevServer({ https });\n const createArmUpdater = useArmUpdater();\n const { logs, writeLog } = useDevEnvLogs();\n const { watcher: projectModelWatcher } = useProjectModel();\n\n const { status } = useAsync(async () => {\n const devServerUrl = await createDevServer({\n projectModelWatcher,\n onLog(options) {\n const { msg, type } = options;\n\n switch (type) {\n case 'error':\n writeLog({ type, msg, error: options.opts?.error, prefix: 'vite' });\n break;\n case 'info':\n case 'warning':\n writeLog({ type, msg, prefix: 'vite' });\n break;\n }\n },\n });\n\n const armTag = await createArmUpdater({\n devServerUrl,\n projectModelWatcher,\n onChange(changeType) {\n match(changeType, {\n 'change-received': () => {\n writeLog({ type: 'info', msg: t('dev_command.config_change') });\n },\n 'model-did-not-change': () => {\n writeLog({\n type: 'info',\n msg: t('dev_command.config_didnt_update'),\n });\n },\n 'model-updated': () => {\n writeLog({ type: 'info', msg: t('dev_command.config_update') });\n },\n });\n },\n onError(error) {\n reportError(error);\n writeLog({ type: 'error', error, msg: 'no error details' });\n writeLog({ type: 'info', msg: t('dev_command.config_didnt_update') });\n },\n });\n\n return { devServerUrl, armTag, https };\n }, []);\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner text={t('dev_command.dev_environment.loading')} />,\n Success: ({ result }) => (\n <DevEnvironmentContext.Provider value={{ logs, writeLog, ...result }}>\n {children}\n </DevEnvironmentContext.Provider>\n ),\n });\n};\n\nexport function useDevEnvironment(): DevEnvironment {\n const context = useContext(DevEnvironmentContext);\n if (context === null) {\n throw new Error(\n 'useDevEnvironment() cannot be used without an <DevEnvironmentProvider>'\n );\n }\n return context;\n}\n","import { useCallback } from 'react';\nimport { match } from 'variant';\nimport { deepEqual } from 'fast-equals';\nimport { updateAppManifestWithBaseUrl } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport { createAppManifest } from '../../app-manifest/create.js';\nimport { getComponentSourceBuilder } from '../../app-manifest/component-source.js';\nimport type {\n ChangeType,\n ProjectModelWatcher,\n} from '../../app-manifest/project-model-watcher.js';\nimport { readAppConfig, saveAppConfig } from '../../files/app.config.js';\nimport { useProjectModel, type ProjectModel } from '../../model.js';\n\nconst createAppManifestWithBaseUrl = async (\n model: ProjectModel,\n devServerUrl: string\n) => {\n const manifest = await createAppManifest({\n appId: model.config.appId,\n components: model.components,\n componentSourceBuilder: getComponentSourceBuilder({\n model,\n devServerUrl,\n }),\n });\n\n return updateAppManifestWithBaseUrl(manifest, devServerUrl);\n};\n\ninterface CreateOptions {\n devServerUrl: string;\n projectModelWatcher: ProjectModelWatcher;\n onChange: (changeType: ChangeType) => void;\n onError: (e: unknown) => void;\n}\n\nexport function useArmUpdater() {\n const { model } = useProjectModel();\n const writeDebugLog = useDebugLog();\n const { createAppRelease, updateAppRelease } = useARMClient();\n\n return useCallback(\n async ({\n devServerUrl,\n projectModelWatcher,\n onChange,\n onError,\n }: CreateOptions) => {\n const { projectId } = model.config;\n const appManifest = await createAppManifestWithBaseUrl(\n model,\n devServerUrl\n );\n const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);\n\n const createOrUpdateAppRelease = async (tag?: string) => {\n if (tag) {\n const updateState = await updateAppRelease(appManifest, tag);\n return match(updateState, {\n TagUpdated: () => tag,\n TagNotFound: ({ cause }) => {\n writeDebugLog(cause);\n return createAppRelease(appManifest, projectId);\n },\n });\n }\n return createAppRelease(appManifest, projectId);\n };\n\n const armTag = await createOrUpdateAppRelease(appConfig?.devArmTag);\n\n if (armTag !== appConfig?.devArmTag) {\n await saveAppConfig(model.projectFolder, { devArmTag: armTag }).catch(\n (error) => writeDebugLog(error)\n );\n }\n\n projectModelWatcher\n .onChange(async (newModel, changeType) => {\n try {\n if (changeType === 'model-updated') {\n const updatedAppManifest = await createAppManifestWithBaseUrl(\n newModel,\n devServerUrl\n );\n\n if (!deepEqual(appManifest, updatedAppManifest)) {\n await updateAppRelease(updatedAppManifest, armTag);\n }\n }\n onChange(changeType);\n } catch (e) {\n onError(e);\n }\n })\n .onError(onError);\n\n return armTag;\n },\n [createAppRelease, model, updateAppRelease, writeDebugLog]\n );\n}\n","import { useRef, useCallback, useEffect } from 'react';\nimport { createServer, type ViteDevServer } from 'vite';\nimport { getViteConfig } from '../../vite/index.js';\nimport { getViteServerUrl } from '../../vite/vite-server-url.js';\nimport {\n createCustomLogger,\n type CustomLoggerOptions,\n} from '../../vite/custom-logger.js';\nimport type { ProjectModelWatcher } from '../../app-manifest/project-model-watcher.js';\nimport { useProjectModel } from '../../model.js';\nimport { ConfigType } from '../../vite/vite-config-options.js';\n\ninterface Options {\n projectModelWatcher: ProjectModelWatcher;\n onLog: CustomLoggerOptions['onLog'];\n}\n\nexport function useDevServer({ https }: { https: boolean }) {\n const devServerRef = useRef<ViteDevServer>();\n const { model } = useProjectModel();\n\n useEffect(() => {\n return () => {\n devServerRef.current?.close();\n };\n }, []);\n\n return useCallback(\n async ({ projectModelWatcher, onLog }: Options) => {\n const devServer = await createServer(\n await getViteConfig(model, {\n type: ConfigType.dev,\n https,\n projectModelWatcher,\n customLogger: createCustomLogger({ onLog }),\n })\n );\n devServerRef.current = devServer;\n\n await devServer.listen();\n\n return getViteServerUrl(devServer);\n },\n [model, https]\n );\n}\n","import type { LogErrorOptions, Logger, Rollup } from 'vite';\n\nexport type LogType = 'error' | 'warning' | 'info';\n\nexport interface CustomLoggerOptions {\n onLog(\n options:\n | { type: 'error'; msg: string; opts?: LogErrorOptions }\n | { type: 'warning' | 'info'; msg: string }\n ): void;\n}\n\nexport function createCustomLogger({ onLog }: CustomLoggerOptions): Logger {\n const loggedErrors = new WeakSet<Error | Rollup.RollupError>();\n const warnedMessages = new Set<string>();\n\n const logger: Logger = {\n hasWarned: false,\n info(msg) {\n onLog({ type: 'info', msg });\n },\n warn(msg) {\n logger.hasWarned = true;\n onLog({ type: 'warning', msg });\n },\n warnOnce(msg) {\n if (warnedMessages.has(msg)) return;\n logger.hasWarned = true;\n onLog({ type: 'warning', msg });\n warnedMessages.add(msg);\n },\n error(msg, opts) {\n logger.hasWarned = true;\n onLog({ type: 'error', msg, opts });\n if (opts?.error) {\n loggedErrors.add(opts.error);\n }\n },\n clearScreen() {},\n hasErrorLogged(error) {\n return loggedErrors.has(error);\n },\n };\n\n return logger;\n}\n","import React, {\n useCallback,\n useEffect,\n useState,\n useMemo,\n type ReactNode,\n type FC,\n} from 'react';\nimport { DEV_LOG_PATH } from '@wix/cli-app-definitions';\nimport { Trans } from '@wix/cli-i18n';\nimport { createRendererToString, Alert, Box, Text } from '@wix/cli-ui-kit';\nimport { DevLogStream } from '../../files/dev.log.js';\nimport { useProjectModel } from '../../model.js';\nimport { DevEnvLogLine } from './DevEnvLogLine.js';\n\ntype GenericLog = (\n | {\n type: 'warning' | 'info';\n msg: ReactNode;\n error?: never;\n }\n | {\n type: 'error';\n msg: ReactNode;\n error?: unknown;\n }\n) & { prefix?: LogPrefix };\n\ntype LogPrefix = 'app' | 'vite';\n\nexport type WriteLogFn = (log: GenericLog) => void;\n\nexport type DevEnvLog = GenericLog & {\n timestamp: Date;\n};\n\nconst ErrorMsg: FC = () => (\n <Box flexDirection=\"column\">\n <Alert type=\"error\">\n <Trans\n i18nKey=\"general.write_dev_log_failure.message\"\n components={[<Text bold />]}\n values={{ path: DEV_LOG_PATH }}\n />\n </Alert>\n <Box paddingTop={1}>\n <Alert type=\"insight\">\n <Trans i18nKey=\"general.write_dev_log_failure.hint\" />\n </Alert>\n </Box>\n </Box>\n);\n\nconst MAX_LOGS_TO_SHOW = 5;\n\nfunction isMessageFiltered(message: string) {\n if (/Port \\d{1,5} is in use, trying another one/.test(message)) {\n return true;\n }\n\n return false;\n}\n\nexport function useDevEnvLogs() {\n const { model } = useProjectModel();\n const [logs, setLogs] = useState<DevEnvLog[]>([]);\n\n const insertLog = useCallback((genericLog: GenericLog) => {\n const log = { ...genericLog, timestamp: new Date() };\n\n setLogs((logs) => {\n const newLogs = [...logs, log];\n if (newLogs.length > MAX_LOGS_TO_SHOW) {\n newLogs.shift();\n }\n\n return newLogs;\n });\n\n return log;\n }, []);\n\n const { renderer, stream } = useMemo(() => {\n return {\n renderer: createRendererToString(),\n stream: new DevLogStream(model.projectFolder, {\n onError() {\n insertLog({ type: 'error', msg: <ErrorMsg /> });\n },\n }),\n };\n }, [insertLog, model.projectFolder]);\n\n const writeLog = useCallback<WriteLogFn>(\n (genericLog) => {\n if (genericLog.msg && isMessageFiltered(genericLog.msg.toString())) {\n return;\n }\n\n const log = insertLog(genericLog);\n const content = renderer.render(<DevEnvLogLine {...log} />);\n\n stream.write(content);\n },\n [insertLog, renderer, stream]\n );\n\n useEffect(() => {\n return () => {\n renderer.unmount();\n stream.close();\n };\n }, [renderer, stream]);\n\n return { logs, writeLog };\n}\n","import { EOL } from 'node:os';\nimport { createWriteStream, type WriteStream } from 'node:fs';\nimport { getDevLogPath } from '@wix/cli-app-definitions';\n\nexport class DevLogStream {\n private drain = false;\n private readonly stream: WriteStream;\n\n constructor(\n projectFolder: string,\n private readonly opts: { onError: (err: Error) => void }\n ) {\n this.stream = createWriteStream(getDevLogPath(projectFolder), {\n flags: 'w',\n });\n\n this.stream.on('error', this.opts.onError);\n }\n\n write = (content: string) => {\n if (this.drain) {\n this.stream.once('drain', () => {\n this.drain = false;\n this.write(content);\n });\n return;\n }\n\n const written = this.stream.write(content.concat(EOL), (err) => {\n if (err) {\n this.opts.onError(err);\n }\n });\n if (!written) {\n this.drain = true;\n this.stream.once('drain', () => {\n this.drain = false;\n });\n }\n };\n\n close = () => {\n this.stream.close();\n };\n}\n","import React, { type FC } from 'react';\nimport { Box, Text } from '@wix/cli-ui-kit';\nimport { ErrorViewer } from '@wix/cli-error-reporting';\nimport type { DevEnvLog } from './useDevEnvLogs.js';\n\nexport const DevEnvLogLine: FC<DevEnvLog> = ({\n type,\n msg,\n error,\n prefix = 'app',\n timestamp,\n}) => {\n return (\n <Box columnGap={1}>\n <Box flexShrink={0}>\n <Text skin=\"secondary\">{timestamp.toLocaleTimeString()}</Text>\n </Box>\n <Box flexShrink={0}>\n <Text skin={type} bold>\n [{prefix}]\n </Text>\n </Box>\n <Box>\n {type === 'error' && error ? (\n <ErrorViewer error={error} />\n ) : typeof msg === 'string' ? (\n <Text>{msg}</Text>\n ) : (\n msg\n )}\n </Box>\n </Box>\n );\n};\n","import React, { type FC, useState } from 'react';\nimport { match } from 'variant';\nimport { HomeScreen } from './HomeScreen.js';\nimport { SiteSelectorScreen } from './SiteSelectorScreen.js';\nimport { DashboardPagesScreen } from './DashboardPagesScreen.js';\nimport { ScreenState } from './screen-state.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 DashboardPages: () => <DashboardPagesScreen onScreenChange={setScreen} />,\n });\n};\n","import React, { type FC } from 'react';\nimport {\n Key,\n Box,\n Text,\n SuccessIcon,\n InfoIcon,\n PointerIcon,\n Link,\n useInput,\n Alert,\n} from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { useSiteId } from '../../site-id/index.js';\nimport { ScreenState } from './screen-state.js';\nimport { useDevEnvironment } from './DevEnvironment.js';\nimport { DevEnvLogsViewer } from './DevEnvLogsViewer.js';\nimport { DashboardPagesViewer } from './DashboardPagesViewer.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const HomeScreen: FC<Props> = ({ onScreenChange }) => {\n const { site } = useSiteId();\n const { devServerUrl, https, writeLog } = useDevEnvironment();\n\n const openDevServerInBrowser = async () => {\n try {\n await openBrowser(devServerUrl);\n } catch (error) {\n writeLog({\n type: 'error',\n prefix: 'app',\n msg: (\n <Alert type=\"error\">\n <Trans\n i18nKey=\"dev_command.dev_environment.https_url.failed_to_open\"\n components={[<Link url={devServerUrl} />]}\n />\n </Alert>\n ),\n });\n }\n };\n\n useInput(async (input) => {\n if (input === 'c') {\n onScreenChange(ScreenState.SiteSelector());\n }\n if (input === 'a' && https) {\n await openDevServerInBrowser();\n }\n });\n\n return (\n <>\n <Box gap={1}>\n <Text skin=\"success\">\n <SuccessIcon />\n </Text>\n <Trans i18nKey=\"dev_command.dev_environment.started\" />\n </Box>\n <Box gap={1}>\n <InfoIcon />\n <Trans\n i18nKey=\"dev_command.dev_environment.url\"\n components={[<Link url={devServerUrl} />]}\n />\n </Box>\n {https && (\n <Box paddingLeft={2}>\n <Text skin=\"secondary\">\n <Trans\n components={[<Key value=\"A\" />]}\n i18nKey=\"dev_command.dev_environment.https_url.open_info\"\n />\n </Text>\n </Box>\n )}\n <Box gap={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"dev_command.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box paddingLeft={2}>\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"dev_command.dev_site.change\"\n components={[<Key value=\"C\" />]}\n />\n </Text>\n </Box>\n <Box paddingTop={1} paddingBottom={1} flexDirection=\"column\">\n <DashboardPagesViewer\n onViewMore={() => onScreenChange(ScreenState.DashboardPages())}\n />\n </Box>\n <DevEnvLogsViewer />\n </>\n );\n};\n","export { SiteIdProvider } from './SiteIdProvider.js';\nexport { useSiteId } from './useSiteId.js';\n","import { variant, type VariantOf } from 'variant';\n\nexport const ScreenState = variant({\n Home: {},\n SiteSelector: {},\n DashboardPages: {},\n});\n\nexport type ScreenState = VariantOf<typeof ScreenState>;\n","import React, { type FC } from 'react';\nimport { Text, Box } from '@wix/cli-ui-kit';\nimport { useTranslation, Trans } from '@wix/cli-i18n';\nimport { DEV_LOG_PATH } from '@wix/cli-app-definitions';\nimport { useDevEnvironment } from './DevEnvironment.js';\nimport { DevEnvLogLine } from './DevEnvLogLine.js';\n\nexport const DevEnvLogsViewer: FC = () => {\n const { t } = useTranslation();\n const { logs } = useDevEnvironment();\n const isEmpty = !logs.length;\n\n return (\n <>\n <Box gap={1}>\n <Trans\n i18nKey=\"dev_command.dev_env_logs.title\"\n components={[<Text skin={isEmpty ? 'secondary' : 'standard'} />]}\n values={{ path: DEV_LOG_PATH }}\n />\n </Box>\n {isEmpty && (\n <Text skin=\"secondary\">{t('dev_command.dev_env_logs.empty')}</Text>\n )}\n {logs.map((log) => {\n return <DevEnvLogLine key={log.timestamp.getTime()} {...log} />;\n })}\n </>\n );\n};\n","import React, { type FC, type ReactNode, useMemo } from 'react';\nimport { Box, Text, Key, PointerSmallIcon, useInput } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { useDashboardPages } from './useDashboardPages.js';\n\nconst MAX_PAGES = 3;\n\nconst ListItem: FC<{\n itemNumber: number;\n onSelect: () => void;\n children: ReactNode;\n}> = ({ itemNumber, onSelect, children }) => {\n const keyValue = `${itemNumber}`;\n\n useInput((input) => {\n if (input === keyValue) {\n onSelect();\n }\n });\n\n return (\n <Text>\n <PointerSmallIcon /> <Key value={keyValue} /> - {children}\n </Text>\n );\n};\n\ninterface Props {\n onViewMore: () => void;\n}\n\nexport const DashboardPagesViewer: FC<Props> = ({ onViewMore }) => {\n const { pages, openPage } = useDashboardPages();\n\n const { visiblePages, showMore } = useMemo(() => {\n const numberOfPagesToShow =\n pages.length <= MAX_PAGES ? pages.length : MAX_PAGES - 1;\n return {\n visiblePages: pages.slice(0, numberOfPagesToShow),\n showMore: pages.length > MAX_PAGES,\n };\n }, [pages]);\n\n return (\n <>\n <Trans i18nKey=\"dev_command.dashboard_pages_viewer.title\" />\n <Box paddingLeft={2} flexDirection=\"column\">\n {visiblePages.map((page, index) => (\n <ListItem\n key={page.route}\n itemNumber={index + 1}\n onSelect={() => openPage(page)}\n >\n {page.title} (<Text skin=\"secondary\">{page.route}</Text>)\n </ListItem>\n ))}\n {showMore && (\n <ListItem itemNumber={MAX_PAGES} onSelect={onViewMore}>\n <Trans i18nKey=\"dev_command.dashboard_pages_viewer.show_more\" />\n </ListItem>\n )}\n </Box>\n </>\n );\n};\n","import React, { useMemo, useCallback } from 'react';\nimport { isType } from 'variant';\nimport { openBrowser } from '@wix/user-browser';\nimport { Trans } from '@wix/cli-i18n';\nimport { Alert, Link, Text, Newline } from '@wix/cli-ui-kit';\nimport { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport { createDashboardPageUrl } from '../../dashboard-page-url.js';\nimport { useSiteId } from '../../site-id/index.js';\nimport { useProjectModel } from '../../model.js';\nimport { useDevEnvironment } from './DevEnvironment.js';\n\nexport interface DashboardPage {\n title: string;\n route: string;\n url: string;\n}\n\nexport function useDashboardPages() {\n const { site } = useSiteId();\n const { model } = useProjectModel();\n const { armTag, writeLog } = useDevEnvironment();\n\n const pages = useMemo(() => {\n return model.components\n .filter(isType(DevCenterComponent.DashboardPage))\n .sort((a, b) => a.route.localeCompare(b.route))\n .map((component) => ({\n title: component.title,\n route: component.route,\n url: createDashboardPageUrl({\n appId: model.config.appId,\n siteId: site.id,\n tag: armTag,\n component,\n }),\n }));\n }, [model.components, model.config.appId, site.id, armTag]);\n\n const openPage = useCallback(\n async ({ url, title }: DashboardPage) => {\n try {\n await openBrowser(url);\n } catch (error) {\n writeLog({\n type: 'error',\n prefix: 'app',\n msg: (\n <Alert type=\"error\">\n <Trans\n i18nKey=\"dev_command.dashboard_pages.open_page_error\"\n components={[<Text bold />]}\n values={{ title }}\n />\n <Newline />\n <Link url={url} />\n </Alert>\n ),\n });\n }\n },\n [writeLog]\n );\n\n return { pages, openPage };\n}\n","import React, { type FC, useState, useCallback } from 'react';\nimport { Alert } from '@wix/cli-ui-kit';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport type { Site } from '@wix/site-list-client';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { SiteSelector } from '@wix/cli-site-selector';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/index.js';\nimport { CloseScreen } from '../CloseScreen';\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 { setSite } = useSiteId();\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 <>\n <SiteSelector\n appId={model.config.appId}\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 )}\n <CloseScreen onClose={() => onScreenChange(ScreenState.Home())} />\n </>\n );\n};\n","export { CloseScreen } from './CloseScreen.js';\n","import React, { type FC } from 'react';\nimport { Key, Box, Text, useInput } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\n\ninterface Props {\n onClose: () => void;\n}\n\nexport const CloseScreen: FC<Props> = ({ onClose }) => {\n useInput((_, key) => {\n if (key.escape) {\n onClose();\n }\n });\n\n return (\n <Box paddingTop={1}>\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"general.close_screen\"\n components={[<Key value=\"esc\" />]}\n />\n </Text>\n </Box>\n );\n};\n","import React, { type FC, useCallback } from 'react';\nimport { SelectInput, type SelectOption } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { CloseScreen } from '../CloseScreen';\nimport { ScreenState } from './screen-state.js';\nimport { useDashboardPages, type DashboardPage } from './useDashboardPages.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const DashboardPagesScreen: FC<Props> = ({ onScreenChange }) => {\n const { t } = useTranslation();\n const { pages, openPage } = useDashboardPages();\n\n const handleSubmit = useCallback(\n async ({ value }: SelectOption<DashboardPage>) => {\n await openPage(value);\n onScreenChange(ScreenState.Home());\n },\n [onScreenChange, openPage]\n );\n\n return (\n <>\n <SelectInput<DashboardPage>\n label={t('dev_command.dashboard_pages_screen.select_label')}\n options={pages.map((page) => ({\n key: page.route,\n title: page.title,\n description: page.route,\n value: page,\n }))}\n onSubmit={handleSubmit}\n />\n <CloseScreen onClose={() => onScreenChange(ScreenState.Home())} />\n </>\n );\n};\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","React","init_esm_shims","import_variant","React","createContext","useContext","init_esm_shims","import_variant","useCallback","createAppManifestWithBaseUrl","model","devServerUrl","manifest","createAppManifest","getComponentSourceBuilder","updateAppManifestWithBaseUrl","useArmUpdater","useProjectModel","writeDebugLog","useDebugLog","createAppRelease","updateAppRelease","useARMClient","useCallback","projectModelWatcher","onChange","onError","projectId","appManifest","appConfig","readAppConfig","armTag","tag","updateState","cause","saveAppConfig","error","newModel","changeType","updatedAppManifest","deepEqual","e","init_esm_shims","useRef","useCallback","useEffect","createServer","init_esm_shims","createCustomLogger","onLog","loggedErrors","warnedMessages","logger","msg","opts","error","useDevServer","https","devServerRef","useRef","model","useProjectModel","useEffect","useCallback","projectModelWatcher","onLog","devServer","createServer","getViteConfig","createCustomLogger","getViteServerUrl","init_esm_shims","React","useCallback","useEffect","useState","useMemo","init_esm_shims","EOL","createWriteStream","DevLogStream","projectFolder","opts","createWriteStream","getDevLogPath","content","EOL","err","init_esm_shims","React","DevEnvLogLine","type","msg","error","prefix","timestamp","React","Box_default","Text","ErrorViewer","ErrorMsg","React","Box_default","Alert","Trans","Text","DEV_LOG_PATH","MAX_LOGS_TO_SHOW","isMessageFiltered","message","useDevEnvLogs","model","useProjectModel","logs","setLogs","useState","insertLog","useCallback","genericLog","log","newLogs","renderer","stream","useMemo","createRendererToString","DevLogStream","writeLog","content","DevEnvLogLine","useEffect","DevEnvironmentContext","createContext","DevEnvironmentProvider","https","children","t","useTranslation","reportError","useErrorReporter","createDevServer","useDevServer","createArmUpdater","useArmUpdater","logs","writeLog","useDevEnvLogs","projectModelWatcher","useProjectModel","status","useAsync","devServerUrl","options","msg","type","armTag","changeType","error","React","Spinner","result","useDevEnvironment","context","useContext","init_esm_shims","import_variant","React","useState","init_esm_shims","React","init_esm_shims","init_esm_shims","import_variant","ScreenState","init_esm_shims","React","DevEnvLogsViewer","t","useTranslation","logs","useDevEnvironment","isEmpty","React","Box_default","Trans","Text","DEV_LOG_PATH","log","DevEnvLogLine","init_esm_shims","React","useMemo","init_esm_shims","import_variant","React","useMemo","useCallback","useDashboardPages","site","useSiteId","model","useProjectModel","armTag","writeLog","useDevEnvironment","pages","useMemo","DevCenterComponent","b","component","createDashboardPageUrl","openPage","useCallback","url","title","openBrowser","React","Alert","Trans","Text","Newline","Link","MAX_PAGES","ListItem","itemNumber","onSelect","children","keyValue","use_input_default","input","React","Text","PointerSmallIcon","Key","DashboardPagesViewer","onViewMore","pages","openPage","useDashboardPages","visiblePages","showMore","useMemo","numberOfPagesToShow","Trans","Box_default","page","index","HomeScreen","onScreenChange","site","useSiteId","devServerUrl","https","writeLog","useDevEnvironment","openDevServerInBrowser","openBrowser","React","Alert","Trans","Link","use_input_default","input","ScreenState","Box_default","Text","SuccessIcon","InfoIcon","Key","PointerIcon","DashboardPagesViewer","DevEnvLogsViewer","init_esm_shims","React","useState","useCallback","init_esm_shims","init_esm_shims","React","CloseScreen","onClose","use_input_default","_","key","React","Box_default","Text","Trans","Key","SiteSelectorScreen","onScreenChange","t","useTranslation","model","useProjectModel","setSite","useSiteId","reportError","useErrorReporter","error","setError","useState","handleError","useCallback","handleSubmit","site","ScreenState","e","React","SiteSelector","ErrorViewer","Alert","CloseScreen","init_esm_shims","React","useCallback","DashboardPagesScreen","onScreenChange","t","useTranslation","pages","openPage","useDashboardPages","handleSubmit","useCallback","value","ScreenState","React","SelectInput","page","CloseScreen","DevCommandScreens","screen","setScreen","useState","ScreenState","React","HomeScreen","SiteSelectorScreen","DashboardPagesScreen","DevCommand","https","React","SiteIdProvider","DevEnvironmentProvider","DevCommandScreens"]}
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{d as b,e as c}from"./chunk-3CWGDMDQ.js";import{a}from"./chunk-7L53MGM2.js";import"./chunk-2DYAAR6J.js";import"./chunk-XTSD25NR.js";import"./chunk-AWOTQVII.js";import"./chunk-KZZTM2KZ.js";import"./chunk-5CKAQAZK.js";import"./chunk-SI3YQ623.js";import"./chunk-FBPBJN3V.js";import"./chunk-EUINJR7Q.js";import"./chunk-DWQSXNK2.js";import"./chunk-TUKI3OEQ.js";import"./chunk-NBPYX6UX.js";import"./chunk-YT3VC22W.js";import"./chunk-HFDLXX7R.js";export{a as PreviewCommand,c as validateBase,b as validateSite};
4
+ //# sourceMappingURL=PreviewCommand-MNP242P6.js.map
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{a as h}from"./chunk-BOTVIAFU.js";import{a as y,b as P}from"./chunk-LWF2UMZJ.js";import{a as M}from"./chunk-2DYAAR6J.js";import"./chunk-AWOTQVII.js";import{b as C}from"./chunk-SI3YQ623.js";import{b as T,c as I}from"./chunk-FBPBJN3V.js";import{b as _}from"./chunk-EUINJR7Q.js";import"./chunk-TUKI3OEQ.js";import{B as S,F as f,G as w,l as c,o as l,s as v,y as u,z as g}from"./chunk-NBPYX6UX.js";import{K as x,a as E,ba as s}from"./chunk-YT3VC22W.js";import{e as k,h as t}from"./chunk-HFDLXX7R.js";t();t();var m=k(E(),1);import e from"react";t();import{preview as F}from"vite";import{useCallback as K,useEffect as L,useRef as V}from"react";function A(){let r=V(),{model:o}=s();return L(()=>()=>{r.current?.httpServer.close()},[]),K(async()=>{let n=await F(await P(o,{type:"build"}));return r.current=n,y(n)},[o])}function O(){let{model:r}=s(),{t:o}=w(),n=T(),{site:B}=h(),D=A(),{status:U}=S(async()=>{await M(r.projectFolder);let i=await D(),p=await C(r.projectFolder),a=_(p,i);return{tag:await n.createAppRelease(a,r.config.projectId),serverUrl:i}},[]);return(0,m.match)(U,{Loading:()=>e.createElement(g,{text:o("serve_command.starting_serve_environment")}),Error:()=>null,Success:({result:{tag:i,serverUrl:p}})=>{let[a]=r.components.filter((0,m.isType)(x.DashboardPage)),d=I({appId:r.config.appId,siteId:B.id,component:a,tag:i});return e.createElement(c,{paddingTop:1,flexDirection:"column"},e.createElement(c,{gap:1},e.createElement(l,{skin:"success"},e.createElement(v,null)),e.createElement(f,{i18nKey:"serve_command.starting_serve_environment_success",components:[e.createElement(u,{url:p})]})),e.createElement(f,{i18nKey:"general.dashboard_page_text",components:[e.createElement(u,{url:d})]}))}})}export{O as ServeCommand};
4
+ //# sourceMappingURL=ServeCommand-LKGC43F2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ServeCommand/index.ts","../src/components/ServeCommand/ServeCommand.tsx","../src/components/ServeCommand/hooks/usePreviewServer.ts"],"sourcesContent":["export { ServeCommand } from './ServeCommand.js';\n","import { isType, match } from 'variant';\nimport { updateAppManifestWithBaseUrl } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport {\n Box,\n Link,\n Spinner,\n SuccessIcon,\n Text,\n useAsync,\n} from '@wix/cli-ui-kit';\nimport React from 'react';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { createDashboardPageUrl } from '../../dashboard-page-url.js';\nimport { useProjectModel } from '../../model.js';\nimport { readAppManifestFile } from '../../app-manifest/file.js';\nimport { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport { assertBuildOutputExists } from '../../files/assert-build-output-exists.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { usePreviewServer } from './hooks/usePreviewServer.js';\n\nexport function ServeCommand() {\n const { model } = useProjectModel();\n const { t } = useTranslation();\n const arm = useARMClient();\n const { site } = useSiteId();\n const createPreviewServer = usePreviewServer();\n\n const { status } = useAsync(async () => {\n await assertBuildOutputExists(model.projectFolder);\n const serverUrl = await createPreviewServer();\n\n const manifest = await readAppManifestFile(model.projectFolder);\n const updatedManifest = updateAppManifestWithBaseUrl(manifest, serverUrl);\n\n const tag = await arm.createAppRelease(\n updatedManifest,\n model.config.projectId\n );\n\n return { tag, serverUrl };\n }, []);\n\n return match(status, {\n Loading: () => (\n <Spinner text={t('serve_command.starting_serve_environment')}></Spinner>\n ),\n Error: () => null,\n Success: ({ result: { tag, serverUrl } }) => {\n const [component] = model.components.filter(\n isType(DevCenterComponent.DashboardPage)\n );\n const url = createDashboardPageUrl({\n appId: model.config.appId,\n siteId: site.id,\n component,\n tag,\n });\n\n return (\n <Box paddingTop={1} flexDirection=\"column\">\n <Box gap={1}>\n <Text skin=\"success\">\n <SuccessIcon />\n </Text>\n <Trans\n i18nKey=\"serve_command.starting_serve_environment_success\"\n components={[<Link url={serverUrl} />]}\n />\n </Box>\n <Trans\n i18nKey=\"general.dashboard_page_text\"\n components={[<Link url={url} />]}\n />\n </Box>\n );\n },\n });\n}\n","import { preview, type PreviewServer } from 'vite';\nimport { useCallback, useEffect, useRef } from 'react';\nimport { useProjectModel } from '../../../model.js';\nimport { getViteConfig } from '../../../vite/index.js';\nimport { getViteServerUrl } from '../../../vite/vite-server-url.js';\nimport { ConfigType } from '../../../vite/vite-config-options.js';\n\nexport function usePreviewServer() {\n const previewServerRef = useRef<PreviewServer>();\n const { model } = useProjectModel();\n\n useEffect(() => {\n return () => {\n previewServerRef.current?.httpServer.close();\n };\n }, []);\n\n return useCallback(async () => {\n const previewServer = await preview(\n await getViteConfig(model, { type: ConfigType.build })\n );\n\n previewServerRef.current = previewServer;\n\n return getViteServerUrl(previewServer);\n }, [model]);\n}\n"],"mappings":";;ofAAAA,ICAAC,IAAA,IAAAC,EAA8B,SAW9B,OAAOC,MAAW,QCXlBC,IAAA,OAAS,WAAAC,MAAmC,OAC5C,OAAS,eAAAC,EAAa,aAAAC,EAAW,UAAAC,MAAc,QAMxC,SAASC,GAAmB,CACjC,IAAMC,EAAmBC,EAAsB,EACzC,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAElC,OAAAC,EAAU,IACD,IAAM,CACXJ,EAAiB,SAAS,WAAW,MAAM,CAC7C,EACC,CAAC,CAAC,EAEEK,EAAY,SAAY,CAC7B,IAAMC,EAAgB,MAAMC,EAC1B,MAAMC,EAAcN,EAAO,CAAE,YAAuB,CAAC,CACvD,EAEA,OAAAF,EAAiB,QAAUM,EAEpBG,EAAiBH,CAAa,CACvC,EAAG,CAACJ,CAAK,CAAC,CACZ,CDLO,SAASQ,GAAe,CAC7B,GAAM,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAC5B,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvBC,EAAMC,EAAa,EACnB,CAAE,KAAAC,CAAK,EAAIC,EAAU,EACrBC,EAAsBC,EAAiB,EAEvC,CAAE,OAAAC,CAAO,EAAIC,EAAS,SAAY,CACtC,MAAMC,EAAwBZ,EAAM,aAAa,EACjD,IAAMa,EAAY,MAAML,EAAoB,EAEtCM,EAAW,MAAMC,EAAoBf,EAAM,aAAa,EACxDgB,EAAkBC,EAA6BH,EAAUD,CAAS,EAOxE,MAAO,CAAE,IALG,MAAMT,EAAI,iBACpBY,EACAhB,EAAM,OAAO,SACf,EAEc,UAAAa,CAAU,CAC1B,EAAG,CAAC,CAAC,EAEL,SAAO,SAAMH,EAAQ,CACnB,QAAS,IACPQ,EAAA,cAACC,EAAA,CAAQ,KAAMjB,EAAE,0CAA0C,EAAG,EAEhE,MAAO,IAAM,KACb,QAAS,CAAC,CAAE,OAAQ,CAAE,IAAAkB,EAAK,UAAAP,CAAU,CAAE,IAAM,CAC3C,GAAM,CAACQ,CAAS,EAAIrB,EAAM,WAAW,UACnC,UAAOsB,EAAmB,aAAa,CACzC,EACMC,EAAMC,EAAuB,CACjC,MAAOxB,EAAM,OAAO,MACpB,OAAQM,EAAK,GACb,UAAAe,EACA,IAAAD,CACF,CAAC,EAED,OACEF,EAAA,cAACO,EAAA,CAAI,WAAY,EAAG,cAAc,UAChCP,EAAA,cAACO,EAAA,CAAI,IAAK,GACRP,EAAA,cAACQ,EAAA,CAAK,KAAK,WACTR,EAAA,cAACS,EAAA,IAAY,CACf,EACAT,EAAA,cAACU,EAAA,CACC,QAAQ,mDACR,WAAY,CAACV,EAAA,cAACW,EAAA,CAAK,IAAKhB,EAAW,CAAE,EACvC,CACF,EACAK,EAAA,cAACU,EAAA,CACC,QAAQ,8BACR,WAAY,CAACV,EAAA,cAACW,EAAA,CAAK,IAAKN,EAAK,CAAE,EACjC,CACF,CAEJ,CACF,CAAC,CACH","names":["init_esm_shims","init_esm_shims","import_variant","React","init_esm_shims","preview","useCallback","useEffect","useRef","usePreviewServer","previewServerRef","useRef","model","useProjectModel","useEffect","useCallback","previewServer","preview","getViteConfig","getViteServerUrl","ServeCommand","model","useProjectModel","t","useTranslation","arm","useARMClient","site","useSiteId","createPreviewServer","usePreviewServer","status","useAsync","assertBuildOutputExists","serverUrl","manifest","readAppManifestFile","updatedManifest","updateAppManifestWithBaseUrl","React","Spinner","tag","component","DevCenterComponent","url","createDashboardPageUrl","Box_default","Text","SuccessIcon","Trans","Link"]}
1
+ {"version":3,"sources":["../src/components/ServeCommand/index.ts","../src/components/ServeCommand/ServeCommand.tsx","../src/components/ServeCommand/hooks/usePreviewServer.ts"],"sourcesContent":["export { ServeCommand } from './ServeCommand.js';\n","import { isType, match } from 'variant';\nimport { updateAppManifestWithBaseUrl } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport {\n Box,\n Link,\n Spinner,\n SuccessIcon,\n Text,\n useAsync,\n} from '@wix/cli-ui-kit';\nimport React from 'react';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { createDashboardPageUrl } from '../../dashboard-page-url.js';\nimport { useProjectModel } from '../../model.js';\nimport { readAppManifestFile } from '../../app-manifest/file.js';\nimport { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport { assertBuildOutputExists } from '../../files/assert-build-output-exists.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { usePreviewServer } from './hooks/usePreviewServer.js';\n\nexport function ServeCommand() {\n const { model } = useProjectModel();\n const { t } = useTranslation();\n const arm = useARMClient();\n const { site } = useSiteId();\n const createPreviewServer = usePreviewServer();\n\n const { status } = useAsync(async () => {\n await assertBuildOutputExists(model.projectFolder);\n const serverUrl = await createPreviewServer();\n\n const manifest = await readAppManifestFile(model.projectFolder);\n const updatedManifest = updateAppManifestWithBaseUrl(manifest, serverUrl);\n\n const tag = await arm.createAppRelease(\n updatedManifest,\n model.config.projectId\n );\n\n return { tag, serverUrl };\n }, []);\n\n return match(status, {\n Loading: () => (\n <Spinner text={t('serve_command.starting_serve_environment')}></Spinner>\n ),\n Error: () => null,\n Success: ({ result: { tag, serverUrl } }) => {\n const [component] = model.components.filter(\n isType(DevCenterComponent.DashboardPage)\n );\n const url = createDashboardPageUrl({\n appId: model.config.appId,\n siteId: site.id,\n component,\n tag,\n });\n\n return (\n <Box paddingTop={1} flexDirection=\"column\">\n <Box gap={1}>\n <Text skin=\"success\">\n <SuccessIcon />\n </Text>\n <Trans\n i18nKey=\"serve_command.starting_serve_environment_success\"\n components={[<Link url={serverUrl} />]}\n />\n </Box>\n <Trans\n i18nKey=\"general.dashboard_page_text\"\n components={[<Link url={url} />]}\n />\n </Box>\n );\n },\n });\n}\n","import { preview, type PreviewServer } from 'vite';\nimport { useCallback, useEffect, useRef } from 'react';\nimport { useProjectModel } from '../../../model.js';\nimport { getViteConfig } from '../../../vite/index.js';\nimport { getViteServerUrl } from '../../../vite/vite-server-url.js';\nimport { ConfigType } from '../../../vite/vite-config-options.js';\n\nexport function usePreviewServer() {\n const previewServerRef = useRef<PreviewServer>();\n const { model } = useProjectModel();\n\n useEffect(() => {\n return () => {\n previewServerRef.current?.httpServer.close();\n };\n }, []);\n\n return useCallback(async () => {\n const previewServer = await preview(\n await getViteConfig(model, { type: ConfigType.build })\n );\n\n previewServerRef.current = previewServer;\n\n return getViteServerUrl(previewServer);\n }, [model]);\n}\n"],"mappings":";;qfAAAA,ICAAC,IAAA,IAAAC,EAA8B,SAW9B,OAAOC,MAAW,QCXlBC,IAAA,OAAS,WAAAC,MAAmC,OAC5C,OAAS,eAAAC,EAAa,aAAAC,EAAW,UAAAC,MAAc,QAMxC,SAASC,GAAmB,CACjC,IAAMC,EAAmBC,EAAsB,EACzC,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAElC,OAAAC,EAAU,IACD,IAAM,CACXJ,EAAiB,SAAS,WAAW,MAAM,CAC7C,EACC,CAAC,CAAC,EAEEK,EAAY,SAAY,CAC7B,IAAMC,EAAgB,MAAMC,EAC1B,MAAMC,EAAcN,EAAO,CAAE,YAAuB,CAAC,CACvD,EAEA,OAAAF,EAAiB,QAAUM,EAEpBG,EAAiBH,CAAa,CACvC,EAAG,CAACJ,CAAK,CAAC,CACZ,CDLO,SAASQ,GAAe,CAC7B,GAAM,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAC5B,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvBC,EAAMC,EAAa,EACnB,CAAE,KAAAC,CAAK,EAAIC,EAAU,EACrBC,EAAsBC,EAAiB,EAEvC,CAAE,OAAAC,CAAO,EAAIC,EAAS,SAAY,CACtC,MAAMC,EAAwBZ,EAAM,aAAa,EACjD,IAAMa,EAAY,MAAML,EAAoB,EAEtCM,EAAW,MAAMC,EAAoBf,EAAM,aAAa,EACxDgB,EAAkBC,EAA6BH,EAAUD,CAAS,EAOxE,MAAO,CAAE,IALG,MAAMT,EAAI,iBACpBY,EACAhB,EAAM,OAAO,SACf,EAEc,UAAAa,CAAU,CAC1B,EAAG,CAAC,CAAC,EAEL,SAAO,SAAMH,EAAQ,CACnB,QAAS,IACPQ,EAAA,cAACC,EAAA,CAAQ,KAAMjB,EAAE,0CAA0C,EAAG,EAEhE,MAAO,IAAM,KACb,QAAS,CAAC,CAAE,OAAQ,CAAE,IAAAkB,EAAK,UAAAP,CAAU,CAAE,IAAM,CAC3C,GAAM,CAACQ,CAAS,EAAIrB,EAAM,WAAW,UACnC,UAAOsB,EAAmB,aAAa,CACzC,EACMC,EAAMC,EAAuB,CACjC,MAAOxB,EAAM,OAAO,MACpB,OAAQM,EAAK,GACb,UAAAe,EACA,IAAAD,CACF,CAAC,EAED,OACEF,EAAA,cAACO,EAAA,CAAI,WAAY,EAAG,cAAc,UAChCP,EAAA,cAACO,EAAA,CAAI,IAAK,GACRP,EAAA,cAACQ,EAAA,CAAK,KAAK,WACTR,EAAA,cAACS,EAAA,IAAY,CACf,EACAT,EAAA,cAACU,EAAA,CACC,QAAQ,mDACR,WAAY,CAACV,EAAA,cAACW,EAAA,CAAK,IAAKhB,EAAW,CAAE,EACvC,CACF,EACAK,EAAA,cAACU,EAAA,CACC,QAAQ,8BACR,WAAY,CAACV,EAAA,cAACW,EAAA,CAAK,IAAKN,EAAK,CAAE,EACjC,CACF,CAEJ,CACF,CAAC,CACH","names":["init_esm_shims","init_esm_shims","import_variant","React","init_esm_shims","preview","useCallback","useEffect","useRef","usePreviewServer","previewServerRef","useRef","model","useProjectModel","useEffect","useCallback","previewServer","preview","getViteConfig","getViteServerUrl","ServeCommand","model","useProjectModel","t","useTranslation","arm","useARMClient","site","useSiteId","createPreviewServer","usePreviewServer","status","useAsync","assertBuildOutputExists","serverUrl","manifest","readAppManifestFile","updatedManifest","updateAppManifestWithBaseUrl","React","Spinner","tag","component","DevCenterComponent","url","createDashboardPageUrl","Box_default","Text","SuccessIcon","Trans","Link"]}
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{c as a}from"./chunk-XTSD25NR.js";import"./chunk-AWOTQVII.js";import"./chunk-KZZTM2KZ.js";import"./chunk-DWQSXNK2.js";import"./chunk-TUKI3OEQ.js";import"./chunk-NBPYX6UX.js";import"./chunk-YT3VC22W.js";import"./chunk-HFDLXX7R.js";export{a as SiteIdProvider};
4
+ //# sourceMappingURL=SiteIdProvider-KTD7B3MF.js.map
@@ -1,4 +1,4 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
- import{a as n,b as a,c}from"./chunk-FGP4AKBM.js";import{b as p}from"./chunk-DUZ55BRL.js";import{a as m}from"./chunk-IJ6QC2OQ.js";import"./chunk-JI4J5GCL.js";import{Q as i,c as r,d as e}from"./chunk-52CFCSNQ.js";import{h as t}from"./chunk-HFDLXX7R.js";t();import{cwd as f}from"node:process";import{build as s}from"vite";async function A(){let o=await i(f());n(o.components);let d=await s(await p(o,{type:"build"})).catch(()=>{throw new r({code:e.FailedToBuildApp()})}),l=await a({appId:o.config.appId,components:o.components,sentryDSN:o.config.sentryDSN,componentSourceBuilder:c({model:o,buildOutput:d})});await m({projectFolder:o.projectFolder,manifest:l})}export{A as build};
4
- //# sourceMappingURL=build-2RGFEOAH.js.map
3
+ import{a as n,b as a,c}from"./chunk-XCS5TRON.js";import{b as p}from"./chunk-LWF2UMZJ.js";import{a as m}from"./chunk-SI3YQ623.js";import"./chunk-EUINJR7Q.js";import{$ as i,c as r,d as e}from"./chunk-YT3VC22W.js";import{h as t}from"./chunk-HFDLXX7R.js";t();import{cwd as f}from"node:process";import{build as s}from"vite";async function A(){let o=await i(f());n(o.components);let d=await s(await p(o,{type:"build"})).catch(()=>{throw new r({code:e.FailedToBuildApp()})}),l=await a({appId:o.config.appId,components:o.components,sentryDSN:o.config.sentryDSN,componentSourceBuilder:c({model:o,buildOutput:d})});await m({projectFolder:o.projectFolder,manifest:l})}export{A as build};
4
+ //# sourceMappingURL=build-K7HCLEXF.js.map
@@ -1,4 +1,4 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
- import{D as s,G as a,c as o,d as e,o as t}from"./chunk-52CFCSNQ.js";import{h as r}from"./chunk-HFDLXX7R.js";r();async function c(i){let n=s(i),p=a(i);if(!await t(n)||!await t(p))throw new o({code:e.BuiltProjectNeeded()})}export{c as a};
4
- //# sourceMappingURL=chunk-BNCDZAQC.js.map
3
+ import{F as s,I as a,c as o,d as e,o as t}from"./chunk-YT3VC22W.js";import{h as r}from"./chunk-HFDLXX7R.js";r();async function c(i){let n=s(i),p=a(i);if(!await t(n)||!await t(p))throw new o({code:e.BuiltProjectNeeded()})}export{c as a};
4
+ //# sourceMappingURL=chunk-2DYAAR6J.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
- import{h as v}from"./chunk-52CFCSNQ.js";import{a as $,c as E,e as he,h as m}from"./chunk-HFDLXX7R.js";var H=E(D=>{"use strict";m();var V=class extends Error{constructor(e,t,i){super(i),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},k=class extends V{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};D.CommanderError=V;D.InvalidArgumentError=k});var S=E(P=>{"use strict";m();var{InvalidArgumentError:ue}=H(),N=class{constructor(e,t){switch(this.description=t||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,i)=>{if(!this.argChoices.includes(t))throw new ue(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,i):t},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function ce(l){let e=l.name()+(l.variadic===!0?"...":"");return l.required?"<"+e+">":"["+e+"]"}P.Argument=N;P.humanReadableArgName=ce});var q=E(B=>{"use strict";m();var{humanReadableArgName:pe}=S(),I=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let t=e.commands.filter(i=>!i._hidden);if(e._hasImplicitHelpCommand()){let[,i,n]=e._helpCommandnameAndArgs.match(/([^ ]+) *(.*)/),s=e.createCommand(i).helpOption(!1);s.description(e._helpCommandDescription),n&&s.arguments(n),t.push(s)}return this.sortSubcommands&&t.sort((i,n)=>i.name().localeCompare(n.name())),t}compareOptions(e,t){let i=n=>n.short?n.short.replace(/^-/,""):n.long.replace(/^--/,"");return i(e).localeCompare(i(t))}visibleOptions(e){let t=e.options.filter(s=>!s.hidden),i=e._hasHelpOption&&e._helpShortFlag&&!e._findOption(e._helpShortFlag),n=e._hasHelpOption&&!e._findOption(e._helpLongFlag);if(i||n){let s;i?n?s=e.createOption(e._helpFlags,e._helpDescription):s=e.createOption(e._helpShortFlag,e._helpDescription):s=e.createOption(e._helpLongFlag,e._helpDescription),t.push(s)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let i=e.parent;i;i=i.parent){let n=i.options.filter(s=>!s.hidden);t.push(...n)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||""}),e.registeredArguments.find(t=>t.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(i=>pe(i)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(t?" "+t:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((i,n)=>Math.max(i,t.subcommandTerm(n).length),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((i,n)=>Math.max(i,t.optionTerm(n).length),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((i,n)=>Math.max(i,t.optionTerm(n).length),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((i,n)=>Math.max(i,t.argumentTerm(n).length),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+"|"+e._aliases[0]);let i="";for(let n=e.parent;n;n=n.parent)i=n.name()+" "+i;return i+t+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];return e.argChoices&&t.push(`choices: ${e.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0?`${e.description} (${t.join(", ")})`:e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let i=`(${t.join(", ")})`;return e.description?`${e.description} ${i}`:i}return e.description}formatHelp(e,t){let i=t.padWidth(e,t),n=t.helpWidth||80,s=2,r=2;function a(d,w){if(w){let F=`${d.padEnd(i+r)}${w}`;return t.wrap(F,n-s,i+r)}return d}function o(d){return d.join(`
3
+ import{h as v}from"./chunk-YT3VC22W.js";import{a as $,c as E,e as he,h as m}from"./chunk-HFDLXX7R.js";var H=E(D=>{"use strict";m();var V=class extends Error{constructor(e,t,i){super(i),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},k=class extends V{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};D.CommanderError=V;D.InvalidArgumentError=k});var S=E(P=>{"use strict";m();var{InvalidArgumentError:ue}=H(),N=class{constructor(e,t){switch(this.description=t||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,i)=>{if(!this.argChoices.includes(t))throw new ue(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,i):t},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function ce(l){let e=l.name()+(l.variadic===!0?"...":"");return l.required?"<"+e+">":"["+e+"]"}P.Argument=N;P.humanReadableArgName=ce});var q=E(B=>{"use strict";m();var{humanReadableArgName:pe}=S(),I=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let t=e.commands.filter(i=>!i._hidden);if(e._hasImplicitHelpCommand()){let[,i,n]=e._helpCommandnameAndArgs.match(/([^ ]+) *(.*)/),s=e.createCommand(i).helpOption(!1);s.description(e._helpCommandDescription),n&&s.arguments(n),t.push(s)}return this.sortSubcommands&&t.sort((i,n)=>i.name().localeCompare(n.name())),t}compareOptions(e,t){let i=n=>n.short?n.short.replace(/^-/,""):n.long.replace(/^--/,"");return i(e).localeCompare(i(t))}visibleOptions(e){let t=e.options.filter(s=>!s.hidden),i=e._hasHelpOption&&e._helpShortFlag&&!e._findOption(e._helpShortFlag),n=e._hasHelpOption&&!e._findOption(e._helpLongFlag);if(i||n){let s;i?n?s=e.createOption(e._helpFlags,e._helpDescription):s=e.createOption(e._helpShortFlag,e._helpDescription):s=e.createOption(e._helpLongFlag,e._helpDescription),t.push(s)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let i=e.parent;i;i=i.parent){let n=i.options.filter(s=>!s.hidden);t.push(...n)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||""}),e.registeredArguments.find(t=>t.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(i=>pe(i)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(t?" "+t:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((i,n)=>Math.max(i,t.subcommandTerm(n).length),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((i,n)=>Math.max(i,t.optionTerm(n).length),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((i,n)=>Math.max(i,t.optionTerm(n).length),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((i,n)=>Math.max(i,t.argumentTerm(n).length),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+"|"+e._aliases[0]);let i="";for(let n=e.parent;n;n=n.parent)i=n.name()+" "+i;return i+t+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];return e.argChoices&&t.push(`choices: ${e.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0?`${e.description} (${t.join(", ")})`:e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let i=`(${t.join(", ")})`;return e.description?`${e.description} ${i}`:i}return e.description}formatHelp(e,t){let i=t.padWidth(e,t),n=t.helpWidth||80,s=2,r=2;function a(d,w){if(w){let F=`${d.padEnd(i+r)}${w}`;return t.wrap(F,n-s,i+r)}return d}function o(d){return d.join(`
4
4
  `).replace(/^/gm," ".repeat(s))}let h=[`Usage: ${t.commandUsage(e)}`,""],u=t.commandDescription(e);u.length>0&&(h=h.concat([t.wrap(u,n,0),""]));let c=t.visibleArguments(e).map(d=>a(t.argumentTerm(d),t.argumentDescription(d)));c.length>0&&(h=h.concat(["Arguments:",o(c),""]));let f=t.visibleOptions(e).map(d=>a(t.optionTerm(d),t.optionDescription(d)));if(f.length>0&&(h=h.concat(["Options:",o(f),""])),this.showGlobalOptions){let d=t.visibleGlobalOptions(e).map(w=>a(t.optionTerm(w),t.optionDescription(w)));d.length>0&&(h=h.concat(["Global Options:",o(d),""]))}let x=t.visibleCommands(e).map(d=>a(t.subcommandTerm(d),t.subcommandDescription(d)));return x.length>0&&(h=h.concat(["Commands:",o(x),""])),h.join(`
5
5
  `)}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}wrap(e,t,i,n=40){let s=" \\f\\t\\v\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF",r=new RegExp(`[\\n][${s}]+`);if(e.match(r))return e;let a=t-i;if(a<n)return e;let o=e.slice(0,i),h=e.slice(i).replace(`\r
6
6
  `,`
@@ -21,4 +21,4 @@ Expecting one of '${i.join("', '")}'`);return this._lifeCycleHooks[e]?this._life
21
21
  `),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this.registeredArguments.map(i=>Ae(i));return[].concat(this.options.length||this._hasHelpOption?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?t:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=b.basename(e,b.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp();return t.helpWidth===void 0&&(t.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),t.formatHelp(this,t)}_getHelpContext(e){e=e||{};let t={error:!!e.error},i;return t.error?i=n=>this._outputConfiguration.writeErr(n):i=n=>this._outputConfiguration.writeOut(n),t.write=e.write||i,t.command=this,t}outputHelp(e){let t;typeof e=="function"&&(t=e,e=void 0);let i=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(s=>s.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let n=this.helpInformation(i);if(t&&(n=t(n),typeof n!="string"&&!Buffer.isBuffer(n)))throw new Error("outputHelp callback must return a string or a Buffer");i.write(n),this._helpLongFlag&&this.emit(this._helpLongFlag),this.emit("afterHelp",i),this._getCommandAndAncestors().forEach(s=>s.emit("afterAllHelp",i))}helpOption(e,t){if(typeof e=="boolean")return this._hasHelpOption=e,this;this._helpFlags=e||this._helpFlags,this._helpDescription=t||this._helpDescription;let i=be(this._helpFlags);return this._helpShortFlag=i.shortFlag,this._helpLongFlag=i.longFlag,this}help(e){this.outputHelp(e);let t=p.exitCode||0;t===0&&e&&typeof e!="function"&&e.error&&(t=1),this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let i=["beforeAll","before","after","afterAll"];if(!i.includes(e))throw new Error(`Unexpected value for position to addHelpText.
22
22
  Expecting one of '${i.join("', '")}'`);let n=`${e}Help`;return this.on(n,s=>{let r;typeof t=="function"?r=t({error:s.error,command:s.command}):r=t,r&&s.write(`${r}
23
23
  `)}),this}};function X(l,e){l._hasHelpOption&&e.find(i=>i===l._helpLongFlag||i===l._helpShortFlag)&&(l.outputHelp(),l._exit(0,"commander.helpDisplayed","(outputHelp)"))}function Z(l){return l.map(e=>{if(!e.startsWith("--inspect"))return e;let t,i="127.0.0.1",n="9229",s;return(s=e.match(/^(--inspect(-brk)?)$/))!==null?t=s[1]:(s=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=s[1],/^\d+$/.test(s[3])?n=s[3]:i=s[3]):(s=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=s[1],i=s[3],n=s[4]),t&&n!=="0"?`${t}=${i}:${parseInt(n)+1}`:e})}ee.Command=G});var re=E((_,se)=>{"use strict";m();var{Argument:Ee}=S(),{Command:ie}=te(),{CommanderError:xe,InvalidArgumentError:ne}=H(),{Help:$e}=q(),{Option:ve}=M();_=se.exports=new ie;_.program=_;_.Command=ie;_.Option=ve;_.Argument=Ee;_.Help=$e;_.CommanderError=xe;_.InvalidArgumentError=ne;_.InvalidOptionArgumentError=ne});var ae=E((g,oe)=>{"use strict";m();var O=re();g=oe.exports={};g.program=new O.Command;g.Argument=O.Argument;g.Command=O.Command;g.CommanderError=O.CommanderError;g.Help=O.Help;g.InvalidArgumentError=O.InvalidArgumentError;g.InvalidOptionArgumentError=O.InvalidArgumentError;g.Option=O.Option;g.createCommand=l=>new O.Command(l);g.createOption=(l,e)=>new O.Option(l,e);g.createArgument=(l,e)=>new O.Argument(l,e)});m();m();m();var le=he(ae(),1),{program:Ue,createCommand:Ge,createArgument:Re,createOption:Be,CommanderError:Je,InvalidArgumentError:R,InvalidOptionArgumentError:Ke,Command:ze,Argument:Ye,Option:Qe,Help:Xe}=le.default;function He(l){let e=v.union([v.string().uuid(),v.literal("current")]).transform(t=>t==="current"?void 0:t).safeParse(l);if(e.success)return e.data;throw new R('Value must be a valid GUID or "current"')}function Ve(l){let e=v.string().url().safeParse(l);if(e.success)return e.data;throw new R("Value must be a valid URL")}export{Ge as a,R as b,Qe as c,He as d,Ve as e};
24
- //# sourceMappingURL=chunk-ZVAVQTPJ.js.map
24
+ //# sourceMappingURL=chunk-3CWGDMDQ.js.map