@wix/cli-app 1.1.30 → 1.1.32
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.
- package/build/CreateVersionCommand-AKOX3F4R.js +4 -0
- package/build/{CreateVersionCommand-NFKBKYN5.js.map → CreateVersionCommand-AKOX3F4R.js.map} +1 -1
- package/build/DevCommand-CVMI3OND.js +4 -0
- package/build/{DevCommand-CSOEONPY.js.map → DevCommand-CVMI3OND.js.map} +1 -1
- package/build/GenerateCommand-57P6KOOM.js +99 -0
- package/build/{GenerateCommand-LHTPLGNF.js.map → GenerateCommand-57P6KOOM.js.map} +1 -1
- package/build/LogsCommand-P5LW5VOI.js +4 -0
- package/build/{LogsCommand-GUWLKR7V.js.map → LogsCommand-P5LW5VOI.js.map} +1 -1
- package/build/PreviewCommand-AXFQVFBV.js +4 -0
- package/build/ServeCommand-CEFAI6Z4.js +4 -0
- package/build/{ServeCommand-PHOYGKPH.js.map → ServeCommand-CEFAI6Z4.js.map} +1 -1
- package/build/{build-N3GC2AJW.js → build-ISANKZIW.js} +2 -2
- package/build/chunk-6PKE6DT4.js +4 -0
- package/build/{chunk-VH4K3U5M.js.map → chunk-6PKE6DT4.js.map} +1 -1
- package/build/chunk-A5N3P734.js +4 -0
- package/build/{chunk-ZFOHUOI6.js.map → chunk-A5N3P734.js.map} +1 -1
- package/build/{chunk-BD6TU75M.js → chunk-ARPIRV47.js} +2 -2
- package/build/chunk-BOQ3NCXF.js +4 -0
- package/build/{chunk-25SA6SIS.js.map → chunk-BOQ3NCXF.js.map} +1 -1
- package/build/{chunk-TTWJWXLR.js → chunk-DPW3BI3Y.js} +2 -2
- package/build/chunk-DRRMAC33.js +100 -0
- package/build/chunk-DRRMAC33.js.map +1 -0
- package/build/chunk-EI7JLTNP.js +4 -0
- package/build/{chunk-H6SYLT4B.js.map → chunk-EI7JLTNP.js.map} +1 -1
- package/build/chunk-H2U4YHRN.js +4 -0
- package/build/{chunk-OR2CAHGP.js.map → chunk-H2U4YHRN.js.map} +1 -1
- package/build/chunk-J5ANBYWF.js +11 -0
- package/build/chunk-J5ANBYWF.js.map +1 -0
- package/build/{chunk-2T5VKPKE.js → chunk-K5V5YWVI.js} +2 -2
- package/build/chunk-KWUMJ6JQ.js +4 -0
- package/build/{chunk-Q5WWBUFO.js.map → chunk-KWUMJ6JQ.js.map} +1 -1
- package/build/chunk-LE2AC3SJ.js +4 -0
- package/build/chunk-MDC42U33.js +4 -0
- package/build/chunk-MDC42U33.js.map +1 -0
- package/build/chunk-MRVGH2GQ.js +4 -0
- package/build/{chunk-L3HVHNTA.js.map → chunk-MRVGH2GQ.js.map} +1 -1
- package/build/chunk-NXQAYU44.js +116 -0
- package/build/chunk-NXQAYU44.js.map +1 -0
- package/build/chunk-RPI6ANLU.js +4 -0
- package/build/{chunk-AS45KVJN.js.map → chunk-RPI6ANLU.js.map} +1 -1
- package/build/{chunk-SQZ5XNZ2.js → chunk-VQJRKVSE.js} +2 -2
- package/build/{chunk-SQZ5XNZ2.js.map → chunk-VQJRKVSE.js.map} +1 -1
- package/build/{chunk-5QLZSP2U.js → chunk-W2OGV6HU.js} +36 -36
- package/build/{chunk-5QLZSP2U.js.map → chunk-W2OGV6HU.js.map} +1 -1
- package/build/{chunk-XQLBMLA6.js → chunk-ZRKMSAZQ.js} +3 -3
- package/build/{chunk-XQLBMLA6.js.map → chunk-ZRKMSAZQ.js.map} +1 -1
- package/build/{chunk-EF6HOPCP.js → chunk-ZSNZ62EG.js} +2 -2
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/preview-ABI3GMT6.js +4 -0
- package/build/{preview-QZCCFP23.js.map → preview-ABI3GMT6.js.map} +1 -1
- package/build/render-command-F4KJL2DD.js +4 -0
- package/build/{render-command-AOEWP2JP.js.map → render-command-F4KJL2DD.js.map} +1 -1
- package/package.json +5 -5
- package/build/CreateVersionCommand-NFKBKYN5.js +0 -4
- package/build/DevCommand-CSOEONPY.js +0 -4
- package/build/GenerateCommand-LHTPLGNF.js +0 -99
- package/build/LogsCommand-GUWLKR7V.js +0 -4
- package/build/PreviewCommand-QAYLTUIX.js +0 -4
- package/build/ServeCommand-PHOYGKPH.js +0 -4
- package/build/chunk-25SA6SIS.js +0 -4
- package/build/chunk-5CHNGZ6H.js +0 -87
- package/build/chunk-5CHNGZ6H.js.map +0 -1
- package/build/chunk-AS45KVJN.js +0 -4
- package/build/chunk-C47JQ5AQ.js +0 -4
- package/build/chunk-C47JQ5AQ.js.map +0 -1
- package/build/chunk-E74YEX6I.js +0 -11
- package/build/chunk-E74YEX6I.js.map +0 -1
- package/build/chunk-GFH6QCDG.js +0 -4
- package/build/chunk-GFH6QCDG.js.map +0 -1
- package/build/chunk-GRIMGGL3.js +0 -4
- package/build/chunk-H6SYLT4B.js +0 -4
- package/build/chunk-JUS465G2.js +0 -19
- package/build/chunk-JUS465G2.js.map +0 -1
- package/build/chunk-L3HVHNTA.js +0 -4
- package/build/chunk-OR2CAHGP.js +0 -4
- package/build/chunk-PEDWEHXR.js +0 -99
- package/build/chunk-PEDWEHXR.js.map +0 -1
- package/build/chunk-Q5WWBUFO.js +0 -4
- package/build/chunk-VH4K3U5M.js +0 -4
- package/build/chunk-WZE4EKUX.js +0 -4
- package/build/chunk-WZE4EKUX.js.map +0 -1
- package/build/chunk-YLBOH353.js +0 -21
- package/build/chunk-YLBOH353.js.map +0 -1
- package/build/chunk-ZFOHUOI6.js +0 -4
- package/build/preview-QZCCFP23.js +0 -4
- package/build/render-command-AOEWP2JP.js +0 -4
- /package/build/{PreviewCommand-QAYLTUIX.js.map → PreviewCommand-AXFQVFBV.js.map} +0 -0
- /package/build/{build-N3GC2AJW.js.map → build-ISANKZIW.js.map} +0 -0
- /package/build/{chunk-BD6TU75M.js.map → chunk-ARPIRV47.js.map} +0 -0
- /package/build/{chunk-TTWJWXLR.js.map → chunk-DPW3BI3Y.js.map} +0 -0
- /package/build/{chunk-2T5VKPKE.js.map → chunk-K5V5YWVI.js.map} +0 -0
- /package/build/{chunk-GRIMGGL3.js.map → chunk-LE2AC3SJ.js.map} +0 -0
- /package/build/{chunk-EF6HOPCP.js.map → chunk-ZSNZ62EG.js.map} +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createRequire as _createRequire } from 'node:module';
|
|
2
|
+
const require = _createRequire(import.meta.url);
|
|
3
|
+
import{a as Q}from"./chunk-ZRKMSAZQ.js";import{Ea as U,Fa as J,Ga as K,La as $,Ma as X,db as Y}from"./chunk-NXQAYU44.js";import{O as H,R as q,V as O,W as R,a as k,b as B,d as E,e as S,l as t,w as d,z as f}from"./chunk-DRRMAC33.js";import{e as y,h as l}from"./chunk-V4TR6DCM.js";l();l();var L=y(k(),1);var v=y(B(),1);l();var o=y(k(),1),A=y(B(),1);l();var c=y(k(),1),b=y(B(),1);import{createServer as le}from"node:http";l();var x=y(B(),1),se=t.any(),ie=t.enum(["info","error","warn","debug","log"]),me=t.object({message:t.array(se),level:ie,timestamp:t.number()}),ae=t.object({stack:t.string(),name:t.string(),message:t.string(),timestamp:t.number()}),ge=t.object({_type:t.literal("log"),exceptions:t.array(ae),logs:t.array(me)}).passthrough(),pe=t.object({_type:t.literal("session-timeout")}).passthrough(),ce=t.discriminatedUnion("_type",[ge,pe]),W=(0,x.variant)({Log:(0,x.fields)(),Exception:(0,x.fields)()}),P="/logs",Z=(e,r)=>{let n,a;if(e.method==="POST"&&e.url===P){let m="";e.on("data",i=>{m+=i.toString()}),e.on("end",()=>{let i;try{i=ce.parse(JSON.parse(m))}catch(g){return a(S.FailedToParseLog(),g,{body:m}),r.statusCode=400,r.end()}let s=[];i._type==="log"&&(s.push(...i.exceptions.map(g=>W.Exception(g))),s.push(...i.logs.map(g=>W.Log(g)))),(0,x.match)(i._type,{log:()=>{n(s)},"session-timeout":()=>{a(S.LogsConnectionTimeout(),{},{body:m}),r.statusCode=200,r.end()}}),r.statusCode=200,r.end()})}else r.statusCode=404,r.end("Not Found");let u={onLog:m=>(n=m,u),onError:m=>(a=m,u)};return u};var F=(0,b.variant)({Success:{},Connecting:{},Failure:{}}),ue=/([0-9a-f-]{36})/,ee=({onLog:e,version:r,appId:n})=>{let[a,u]=(0,c.useState)(F.Connecting()),[m,i]=(0,c.useState)(),[s,g]=(0,c.useState)(),[T,D]=(0,c.useState)(),{getAppByVersion:j}=K(),N=Q(),_=J({type:"backoffice"}),h=(0,c.useMemo)(()=>le((p,C)=>{Z(p,C).onLog(e).onError((I,V,ne)=>{throw h.close(),new E({code:I,cause:V,info:ne})})}),[e]);(0,c.useEffect)(()=>(h?.listen(0,async()=>{let p=h.address().port;i(p)}),()=>{h?.listening&&h.close()}),[h]),(0,c.useEffect)(()=>{m&&N(m).then(({url:p})=>{D(p)}).catch(p=>{throw u(F.Failure()),new E({code:S.FailedToConnectToLogsService(),cause:p})})},[N,m]);let{status:z}=q(async()=>{let{data:p}=await j({appId:n,version:r});return p},[]);return(0,c.useEffect)(()=>{(0,b.match)(z,{Success:({result:p})=>{let C=p.components.find(V=>V.compType===U.TOPOLOGY),I=ue.exec(C?.compData.topology.topology.backendApiUrl??"");if(I)g(I[1]);else throw new E({code:S.FailedToGetLogsTopology()})},Error:()=>null,Loading:()=>{}})},[z]),(0,c.useEffect)(()=>{if(T&&s){let p={appId:n,deploymentId:s,destinationUrl:T+P};_.request($(p)).then(()=>{u(F.Success())}).catch(C=>{throw u(F.Failure()),new E({code:S.FailedToConnectToLogsService(),cause:C})})}},[n,T,s,_]),(0,c.useEffect)(()=>()=>{a.type==="Success"&&s&&_.request(X({appId:n,deploymentId:s}))},[a,s,n,_]),a};l();var oe=y(k(),1);var G=({message:e,level:r})=>{let n="unknown";return typeof e=="object"?n=JSON.stringify(e):n=String(e),oe.default.createElement(f,{skin:r==="error"?"error":"standard"},n)};var te=({version:e,appId:r})=>{let{t:n}=R(),[a,u]=(0,o.useState)([]),m=ee({appId:r,version:e,onLog:(0,o.useCallback)(i=>{u(s=>[...s,...i])},[u])});return(0,A.match)(m,{Success:()=>o.default.createElement(d,{marginTop:1,marginBottom:1,flexDirection:"column"},o.default.createElement(d,{marginBottom:1,flexDirection:"column"},o.default.createElement(f,null,o.default.createElement(O,{i18nKey:"logs_command.listening_to_logs"})),o.default.createElement(f,null,o.default.createElement(O,{i18nKey:"logs_command.prod_env_logs",values:{version:e}}))),a.map((i,s)=>o.default.createElement(d,{key:s,flexDirection:"column"},o.default.createElement(d,{columnGap:1},o.default.createElement(d,{flexShrink:0},o.default.createElement(f,{skin:"secondary"},new Date(i.timestamp).toLocaleTimeString())),o.default.createElement(d,{columnGap:1},(0,A.match)(i,{Log:({message:g,level:T})=>g.map((D,j)=>o.default.createElement(G,{key:`${s}-${j}`,message:D,level:T})),Exception:({message:g})=>o.default.createElement(G,{key:s,message:g,level:"error"})}))),(0,A.match)(i,{Log:()=>null,Exception:({stack:g})=>o.default.createElement(f,{skin:"error"},g)})))),Connecting:()=>o.default.createElement(H,{text:n("logs_command.connecting")}),Failure:()=>null})};var re=(0,v.variant)({Valid:(0,v.fields)(),Error:(0,v.fields)()}),de=({version:e})=>e?re.Valid({version:e}):re.Error({message:L.default.createElement(O,{i18nKey:"logs_command.logs_without_version"})}),fe=({version:e})=>{let{model:r}=Y(),n=(0,L.useMemo)(()=>de({version:e}),[e]);return(0,v.match)(n,{Valid:({version:a})=>L.default.createElement(te,{version:a,appId:r.config.appId}),Error:({message:a})=>L.default.createElement(d,{rowGap:1,marginTop:1,marginBottom:1,flexDirection:"column"},L.default.createElement(d,{gap:1},L.default.createElement(f,{skin:"error"},a)))})};export{fe as LogsCommand};
|
|
4
|
+
//# sourceMappingURL=LogsCommand-P5LW5VOI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/LogsCommand/index.ts","../src/components/LogsCommand/LogsCommand.tsx","../src/components/LogsCommand/DisplayServerLogs.tsx","../src/components/LogsCommand/useLogsServer.ts","../src/components/LogsCommand/logsReqHandler.ts","../src/components/LogsCommand/ServerLogMessage.tsx"],"sourcesContent":["export { LogsCommand } from './LogsCommand.js';\n","import type { FC } from 'react';\nimport React, { useMemo } from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { Box, Text } from '@wix/cli-ui-kit';\nimport { fields, match, variant } from 'variant';\nimport { DisplayServerLogs } from './DisplayServerLogs.js';\nimport { useProjectModel } from '../../model.js';\n\nconst ValidationResult = variant({\n Valid: fields<{ version: string }>(),\n Error: fields<{ message: React.JSX.Element }>(),\n});\n\nconst validateInput = ({ version }: { version?: string }) => {\n if (!version) {\n return ValidationResult.Error({\n message: <Trans i18nKey=\"logs_command.logs_without_version\" />,\n });\n }\n return ValidationResult.Valid({ version });\n};\n\nexport const LogsCommand: FC<{\n version?: string;\n}> = ({ version }) => {\n const { model } = useProjectModel();\n\n const validationResult = useMemo(() => validateInput({ version }), [version]);\n\n return match(validationResult, {\n Valid: ({ version }) => (\n <DisplayServerLogs version={version} appId={model.config.appId} />\n ),\n Error: ({ message }) => (\n <Box rowGap={1} marginTop={1} marginBottom={1} flexDirection=\"column\">\n <Box gap={1}>\n <Text skin=\"error\">{message}</Text>\n </Box>\n </Box>\n ),\n });\n};\n","import type { FC } from 'react';\nimport React, { useState, useCallback } from 'react';\nimport { match } from 'variant';\nimport { Spinner, Box, Text } from '@wix/cli-ui-kit';\nimport { useTranslation, Trans } from '@wix/cli-i18n';\nimport { useLogsServer } from './useLogsServer.js';\nimport type { AggregatedLog } from './logsReqHandler.js';\nimport { ServerLogMessage } from './ServerLogMessage.js';\n\nexport const DisplayServerLogs: FC<{\n version: string;\n appId: string;\n}> = ({ version, appId }) => {\n const { t } = useTranslation();\n const [logs, setLogs] = useState<AggregatedLog[]>([]);\n const serverResult = useLogsServer({\n appId,\n version,\n onLog: useCallback(\n (serverLogs) => {\n setLogs((prevLogs) => {\n return [...prevLogs, ...serverLogs];\n });\n },\n [setLogs]\n ),\n });\n\n return match(serverResult, {\n Success: () => (\n <Box marginTop={1} marginBottom={1} flexDirection=\"column\">\n <Box marginBottom={1} flexDirection=\"column\">\n <Text>\n <Trans i18nKey=\"logs_command.listening_to_logs\" />\n </Text>\n <Text>\n <Trans i18nKey=\"logs_command.prod_env_logs\" values={{ version }} />\n </Text>\n </Box>\n\n {logs.map((log, logIdx) => (\n <Box key={logIdx} flexDirection=\"column\">\n <Box columnGap={1}>\n <Box flexShrink={0}>\n <Text skin=\"secondary\">\n {new Date(log.timestamp).toLocaleTimeString()}\n </Text>\n </Box>\n <Box columnGap={1}>\n {match(log, {\n Log: ({ message, level }) =>\n message.map((msgItem, idx) => (\n <ServerLogMessage\n key={`${logIdx}-${idx}`}\n message={msgItem}\n level={level}\n />\n )),\n Exception: ({ message }) => (\n <ServerLogMessage\n key={logIdx}\n message={message}\n level=\"error\"\n />\n ),\n })}\n </Box>\n </Box>\n {match(log, {\n Log: () => null,\n Exception: ({ stack }) => <Text skin=\"error\">{stack}</Text>,\n })}\n </Box>\n ))}\n </Box>\n ),\n Connecting: () => <Spinner text={t('logs_command.connecting')} />,\n Failure: () => null,\n });\n};\n","import { useEffect, useMemo, useState } from 'react';\nimport { createServer } from 'node:http';\nimport type { AddressInfo } from 'node:net';\nimport { variant, type VariantOf, match } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { useAsync } from '@wix/cli-ui-kit';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport {\n attachLogger,\n deattachLogger,\n} from '@wix/ambassador-ctp-app-cloud-backend-service-v1-app-cloud-backend-deployment/http';\nimport { useTunnel } from '@wix/cli-tunnel';\nimport {\n useDevCenterClient,\n ComponentType,\n type TopologyComponent,\n} from '@wix/dev-center-client';\nimport type { OnLog } from './logsReqHandler.js';\nimport { LOGS_ENDPOINT, logsReqHandler } from './logsReqHandler.js';\n\nconst ServerResult = variant({\n Success: {},\n Connecting: {},\n Failure: {},\n});\n\nconst deploymentIdRegex = /([0-9a-f-]{36})/;\n\nexport const useLogsServer = ({\n onLog,\n version,\n appId,\n}: {\n onLog: OnLog;\n version: string;\n appId: string;\n}) => {\n const [result, setResult] = useState<VariantOf<typeof ServerResult>>(\n ServerResult.Connecting()\n );\n const [localServerPort, setLocalServerPort] = useState<number>();\n const [deploymentId, setDeploymentId] = useState<string>();\n const [tunnelUrl, setTunnelUrl] = useState<string>();\n const { getAppByVersion } = useDevCenterClient();\n const createTunnelClient = useTunnel();\n const httpClient = useHttpClient({ type: 'backoffice' });\n\n const server = useMemo(() => {\n return createServer((req, res) => {\n logsReqHandler(req, res)\n .onLog(onLog)\n .onError((code, err, info) => {\n server.close();\n throw new CliError({ code, cause: err, info });\n });\n });\n }, [onLog]);\n\n useEffect(() => {\n server?.listen(0, async () => {\n const port = (server.address() as AddressInfo).port;\n setLocalServerPort(port);\n });\n return () => {\n if (server?.listening) {\n server.close();\n }\n };\n }, [server]);\n\n useEffect(() => {\n if (localServerPort) {\n createTunnelClient(localServerPort)\n .then(({ url }) => {\n setTunnelUrl(url);\n })\n .catch((err) => {\n setResult(ServerResult.Failure());\n throw new CliError({\n code: CliErrorCode.FailedToConnectToLogsService(),\n cause: err,\n });\n });\n }\n }, [createTunnelClient, localServerPort]);\n\n const { status } = useAsync(async () => {\n const { data } = await getAppByVersion({ appId, version });\n return data;\n }, []);\n\n useEffect(() => {\n match(status, {\n Success: ({ result }) => {\n const topologyComponent = result.components.find(\n (component): component is TopologyComponent => {\n return component.compType === ComponentType.TOPOLOGY;\n }\n );\n const match = deploymentIdRegex.exec(\n topologyComponent?.compData.topology.topology.backendApiUrl ?? ''\n );\n if (match) {\n setDeploymentId(match[1]);\n } else {\n throw new CliError({\n code: CliErrorCode.FailedToGetLogsTopology(),\n });\n }\n },\n Error: () => null,\n Loading: () => {},\n });\n }, [status]);\n\n useEffect(() => {\n if (tunnelUrl && deploymentId) {\n const loggerReq = {\n appId,\n deploymentId,\n destinationUrl: tunnelUrl + LOGS_ENDPOINT,\n };\n httpClient\n .request(attachLogger(loggerReq))\n .then(() => {\n setResult(ServerResult.Success());\n })\n .catch((err) => {\n setResult(ServerResult.Failure());\n throw new CliError({\n code: CliErrorCode.FailedToConnectToLogsService(),\n cause: err,\n });\n });\n }\n }, [appId, tunnelUrl, deploymentId, httpClient]);\n\n useEffect(() => {\n return () => {\n // Detach the logger depending on the `result` state.\n // This is why I place it in a separate `useEffect` from the one that attaches the logger.\n // Otherwise, it will cause a circular dependency.\n if (result.type === 'Success' && deploymentId) {\n httpClient.request(\n deattachLogger({\n appId,\n deploymentId,\n })\n );\n }\n };\n }, [result, deploymentId, appId, httpClient]);\n\n return result;\n};\n","import type { IncomingMessage, ServerResponse } from 'node:http';\nimport type { CliErrorCodeType } from '@wix/cli-error';\nimport { CliErrorCode } from '@wix/cli-error';\nimport { z } from 'zod';\nimport { variant, fields, match, type VariantOf } from 'variant';\n\nconst LogMessageSchema = z.any();\nexport type LogMessage = z.infer<typeof LogMessageSchema>;\n\nconst LogMessageLevelSchema = z.enum(['info', 'error', 'warn', 'debug', 'log']);\nexport type LogMessageLevel = z.infer<typeof LogMessageLevelSchema>;\n\nconst LogItemSchema = z.object({\n message: z.array(LogMessageSchema),\n level: LogMessageLevelSchema,\n timestamp: z.number(),\n});\n\ntype LogItem = z.infer<typeof LogItemSchema>;\n\nconst ExceptionItemSchema = z.object({\n stack: z.string(),\n name: z.string(),\n message: z.string(),\n timestamp: z.number(),\n});\n\ntype ExceptionItem = z.infer<typeof ExceptionItemSchema>;\n\nconst LogResponseSchema = z\n .object({\n _type: z.literal('log'),\n exceptions: z.array(ExceptionItemSchema),\n logs: z.array(LogItemSchema),\n })\n .passthrough();\n\nconst SessionTimeoutResponseSchema = z\n .object({\n _type: z.literal('session-timeout'),\n })\n .passthrough();\n\nconst ServerLogResponseSchema = z.discriminatedUnion('_type', [\n LogResponseSchema,\n SessionTimeoutResponseSchema,\n]);\n\ntype ServerLogResponse = z.infer<typeof ServerLogResponseSchema>;\n\nconst AggregatedLog = variant({\n Log: fields<LogItem>(),\n Exception: fields<ExceptionItem>(),\n});\nexport type AggregatedLog = VariantOf<typeof AggregatedLog>;\n\nexport type OnLog = (data: AggregatedLog[]) => void;\nexport type OnError = (\n errType: CliErrorCodeType,\n err: unknown,\n info?: Record<string, unknown>\n) => void;\n\nexport const LOGS_ENDPOINT = '/logs';\n\nexport const logsReqHandler = (req: IncomingMessage, res: ServerResponse) => {\n let onLog: OnLog;\n let onError: OnError;\n\n if (req.method === 'POST' && req.url === LOGS_ENDPOINT) {\n let body = '';\n\n req.on('data', (chunk) => {\n body += chunk.toString();\n });\n\n req.on('end', () => {\n let parsedBody: ServerLogResponse;\n try {\n parsedBody = ServerLogResponseSchema.parse(JSON.parse(body));\n } catch (err) {\n onError(CliErrorCode.FailedToParseLog(), err, { body });\n res.statusCode = 400;\n return res.end();\n }\n\n const resultLogs: AggregatedLog[] = [];\n\n if (parsedBody._type === 'log') {\n resultLogs.push(\n ...parsedBody.exceptions.map((exception) =>\n AggregatedLog.Exception(exception)\n )\n );\n resultLogs.push(\n ...parsedBody.logs.map((log) => AggregatedLog.Log(log))\n );\n }\n\n match(parsedBody._type, {\n log: () => {\n onLog(resultLogs);\n },\n 'session-timeout': () => {\n onError(CliErrorCode.LogsConnectionTimeout(), {}, { body });\n res.statusCode = 200;\n res.end();\n },\n });\n\n res.statusCode = 200;\n res.end();\n });\n } else {\n res.statusCode = 404;\n res.end('Not Found');\n }\n\n const api = {\n onLog: (callback: OnLog) => {\n onLog = callback;\n return api;\n },\n onError: (callback: OnError) => {\n onError = callback;\n return api;\n },\n };\n\n return api;\n};\n","import React, { type FC } from 'react';\nimport { Text } from '@wix/cli-ui-kit';\nimport type { LogMessage, LogMessageLevel } from './logsReqHandler.js';\n\nexport const ServerLogMessage: FC<{\n message: LogMessage;\n level: LogMessageLevel;\n}> = ({ message, level }) => {\n let content = 'unknown';\n\n if (typeof message === 'object') {\n content = JSON.stringify(message);\n } else {\n content = String(message);\n }\n\n return <Text skin={level === 'error' ? 'error' : 'standard'}>{content}</Text>;\n};\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","createServer","init_esm_shims","import_variant","LogMessageSchema","z","LogMessageLevelSchema","LogItemSchema","ExceptionItemSchema","LogResponseSchema","SessionTimeoutResponseSchema","ServerLogResponseSchema","AggregatedLog","LOGS_ENDPOINT","logsReqHandler","req","res","onLog","onError","body","chunk","parsedBody","err","CliErrorCode","resultLogs","exception","log","api","callback","ServerResult","deploymentIdRegex","useLogsServer","onLog","version","appId","result","setResult","localServerPort","setLocalServerPort","deploymentId","setDeploymentId","tunnelUrl","setTunnelUrl","getAppByVersion","useDevCenterClient","createTunnelClient","useTunnel","httpClient","useHttpClient","server","createServer","req","res","logsReqHandler","code","err","info","CliError","port","url","CliErrorCode","status","useAsync","data","topologyComponent","component","ComponentType","match","loggerReq","LOGS_ENDPOINT","attachLogger","deattachLogger","init_esm_shims","import_react","ServerLogMessage","message","level","content","React","Text","DisplayServerLogs","version","appId","t","useTranslation","logs","setLogs","serverResult","useLogsServer","serverLogs","prevLogs","React","Box_default","Text","Trans","log","logIdx","message","level","msgItem","idx","ServerLogMessage","stack","Spinner","ValidationResult","validateInput","version","React","Trans","LogsCommand","model","useProjectModel","validationResult","DisplayServerLogs","message","Box_default","Text"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/LogsCommand/index.ts","../src/components/LogsCommand/LogsCommand.tsx","../src/components/LogsCommand/DisplayServerLogs.tsx","../src/components/LogsCommand/useLogsServer.ts","../src/components/LogsCommand/logsReqHandler.ts","../src/components/LogsCommand/ServerLogMessage.tsx"],"sourcesContent":["export { LogsCommand } from './LogsCommand.js';\n","import type { FC } from 'react';\nimport React, { useMemo } from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { Box, Text } from '@wix/cli-ui-kit';\nimport { fields, match, variant } from 'variant';\nimport { DisplayServerLogs } from './DisplayServerLogs.js';\nimport { useProjectModel } from '../../model.js';\n\nconst ValidationResult = variant({\n Valid: fields<{ version: string }>(),\n Error: fields<{ message: React.JSX.Element }>(),\n});\n\nconst validateInput = ({ version }: { version?: string }) => {\n if (!version) {\n return ValidationResult.Error({\n message: <Trans i18nKey=\"logs_command.logs_without_version\" />,\n });\n }\n return ValidationResult.Valid({ version });\n};\n\nexport const LogsCommand: FC<{\n version?: string;\n}> = ({ version }) => {\n const { model } = useProjectModel();\n\n const validationResult = useMemo(() => validateInput({ version }), [version]);\n\n return match(validationResult, {\n Valid: ({ version }) => (\n <DisplayServerLogs version={version} appId={model.config.appId} />\n ),\n Error: ({ message }) => (\n <Box rowGap={1} marginTop={1} marginBottom={1} flexDirection=\"column\">\n <Box gap={1}>\n <Text skin=\"error\">{message}</Text>\n </Box>\n </Box>\n ),\n });\n};\n","import type { FC } from 'react';\nimport React, { useState, useCallback } from 'react';\nimport { match } from 'variant';\nimport { Spinner, Box, Text } from '@wix/cli-ui-kit';\nimport { useTranslation, Trans } from '@wix/cli-i18n';\nimport { useLogsServer } from './useLogsServer.js';\nimport type { AggregatedLog } from './logsReqHandler.js';\nimport { ServerLogMessage } from './ServerLogMessage.js';\n\nexport const DisplayServerLogs: FC<{\n version: string;\n appId: string;\n}> = ({ version, appId }) => {\n const { t } = useTranslation();\n const [logs, setLogs] = useState<AggregatedLog[]>([]);\n const serverResult = useLogsServer({\n appId,\n version,\n onLog: useCallback(\n (serverLogs) => {\n setLogs((prevLogs) => {\n return [...prevLogs, ...serverLogs];\n });\n },\n [setLogs]\n ),\n });\n\n return match(serverResult, {\n Success: () => (\n <Box marginTop={1} marginBottom={1} flexDirection=\"column\">\n <Box marginBottom={1} flexDirection=\"column\">\n <Text>\n <Trans i18nKey=\"logs_command.listening_to_logs\" />\n </Text>\n <Text>\n <Trans i18nKey=\"logs_command.prod_env_logs\" values={{ version }} />\n </Text>\n </Box>\n\n {logs.map((log, logIdx) => (\n <Box key={logIdx} flexDirection=\"column\">\n <Box columnGap={1}>\n <Box flexShrink={0}>\n <Text skin=\"secondary\">\n {new Date(log.timestamp).toLocaleTimeString()}\n </Text>\n </Box>\n <Box columnGap={1}>\n {match(log, {\n Log: ({ message, level }) =>\n message.map((msgItem, idx) => (\n <ServerLogMessage\n key={`${logIdx}-${idx}`}\n message={msgItem}\n level={level}\n />\n )),\n Exception: ({ message }) => (\n <ServerLogMessage\n key={logIdx}\n message={message}\n level=\"error\"\n />\n ),\n })}\n </Box>\n </Box>\n {match(log, {\n Log: () => null,\n Exception: ({ stack }) => <Text skin=\"error\">{stack}</Text>,\n })}\n </Box>\n ))}\n </Box>\n ),\n Connecting: () => <Spinner text={t('logs_command.connecting')} />,\n Failure: () => null,\n });\n};\n","import { useEffect, useMemo, useState } from 'react';\nimport { createServer } from 'node:http';\nimport type { AddressInfo } from 'node:net';\nimport { variant, type VariantOf, match } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { useAsync } from '@wix/cli-ui-kit';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport {\n attachLogger,\n deattachLogger,\n} from '@wix/ambassador-ctp-app-cloud-backend-service-v1-app-cloud-backend-deployment/http';\nimport { useTunnel } from '@wix/cli-tunnel';\nimport {\n useDevCenterClient,\n ComponentType,\n type TopologyComponent,\n} from '@wix/dev-center-client';\nimport type { OnLog } from './logsReqHandler.js';\nimport { LOGS_ENDPOINT, logsReqHandler } from './logsReqHandler.js';\n\nconst ServerResult = variant({\n Success: {},\n Connecting: {},\n Failure: {},\n});\n\nconst deploymentIdRegex = /([0-9a-f-]{36})/;\n\nexport const useLogsServer = ({\n onLog,\n version,\n appId,\n}: {\n onLog: OnLog;\n version: string;\n appId: string;\n}) => {\n const [result, setResult] = useState<VariantOf<typeof ServerResult>>(\n ServerResult.Connecting()\n );\n const [localServerPort, setLocalServerPort] = useState<number>();\n const [deploymentId, setDeploymentId] = useState<string>();\n const [tunnelUrl, setTunnelUrl] = useState<string>();\n const { getAppByVersion } = useDevCenterClient();\n const createTunnelClient = useTunnel();\n const httpClient = useHttpClient({ type: 'backoffice' });\n\n const server = useMemo(() => {\n return createServer((req, res) => {\n logsReqHandler(req, res)\n .onLog(onLog)\n .onError((code, err, info) => {\n server.close();\n throw new CliError({ code, cause: err, info });\n });\n });\n }, [onLog]);\n\n useEffect(() => {\n server?.listen(0, async () => {\n const port = (server.address() as AddressInfo).port;\n setLocalServerPort(port);\n });\n return () => {\n if (server?.listening) {\n server.close();\n }\n };\n }, [server]);\n\n useEffect(() => {\n if (localServerPort) {\n createTunnelClient(localServerPort)\n .then(({ url }) => {\n setTunnelUrl(url);\n })\n .catch((err) => {\n setResult(ServerResult.Failure());\n throw new CliError({\n code: CliErrorCode.FailedToConnectToLogsService(),\n cause: err,\n });\n });\n }\n }, [createTunnelClient, localServerPort]);\n\n const { status } = useAsync(async () => {\n const { data } = await getAppByVersion({ appId, version });\n return data;\n }, []);\n\n useEffect(() => {\n match(status, {\n Success: ({ result }) => {\n const topologyComponent = result.components.find(\n (component): component is TopologyComponent => {\n return component.compType === ComponentType.TOPOLOGY;\n }\n );\n const match = deploymentIdRegex.exec(\n topologyComponent?.compData.topology.topology.backendApiUrl ?? ''\n );\n if (match) {\n setDeploymentId(match[1]);\n } else {\n throw new CliError({\n code: CliErrorCode.FailedToGetLogsTopology(),\n });\n }\n },\n Error: () => null,\n Loading: () => {},\n });\n }, [status]);\n\n useEffect(() => {\n if (tunnelUrl && deploymentId) {\n const loggerReq = {\n appId,\n deploymentId,\n destinationUrl: tunnelUrl + LOGS_ENDPOINT,\n };\n httpClient\n .request(attachLogger(loggerReq))\n .then(() => {\n setResult(ServerResult.Success());\n })\n .catch((err) => {\n setResult(ServerResult.Failure());\n throw new CliError({\n code: CliErrorCode.FailedToConnectToLogsService(),\n cause: err,\n });\n });\n }\n }, [appId, tunnelUrl, deploymentId, httpClient]);\n\n useEffect(() => {\n return () => {\n // Detach the logger depending on the `result` state.\n // This is why I place it in a separate `useEffect` from the one that attaches the logger.\n // Otherwise, it will cause a circular dependency.\n if (result.type === 'Success' && deploymentId) {\n httpClient.request(\n deattachLogger({\n appId,\n deploymentId,\n })\n );\n }\n };\n }, [result, deploymentId, appId, httpClient]);\n\n return result;\n};\n","import type { IncomingMessage, ServerResponse } from 'node:http';\nimport type { CliErrorCodeType } from '@wix/cli-error';\nimport { CliErrorCode } from '@wix/cli-error';\nimport { z } from 'zod';\nimport { variant, fields, match, type VariantOf } from 'variant';\n\nconst LogMessageSchema = z.any();\nexport type LogMessage = z.infer<typeof LogMessageSchema>;\n\nconst LogMessageLevelSchema = z.enum(['info', 'error', 'warn', 'debug', 'log']);\nexport type LogMessageLevel = z.infer<typeof LogMessageLevelSchema>;\n\nconst LogItemSchema = z.object({\n message: z.array(LogMessageSchema),\n level: LogMessageLevelSchema,\n timestamp: z.number(),\n});\n\ntype LogItem = z.infer<typeof LogItemSchema>;\n\nconst ExceptionItemSchema = z.object({\n stack: z.string(),\n name: z.string(),\n message: z.string(),\n timestamp: z.number(),\n});\n\ntype ExceptionItem = z.infer<typeof ExceptionItemSchema>;\n\nconst LogResponseSchema = z\n .object({\n _type: z.literal('log'),\n exceptions: z.array(ExceptionItemSchema),\n logs: z.array(LogItemSchema),\n })\n .passthrough();\n\nconst SessionTimeoutResponseSchema = z\n .object({\n _type: z.literal('session-timeout'),\n })\n .passthrough();\n\nconst ServerLogResponseSchema = z.discriminatedUnion('_type', [\n LogResponseSchema,\n SessionTimeoutResponseSchema,\n]);\n\ntype ServerLogResponse = z.infer<typeof ServerLogResponseSchema>;\n\nconst AggregatedLog = variant({\n Log: fields<LogItem>(),\n Exception: fields<ExceptionItem>(),\n});\nexport type AggregatedLog = VariantOf<typeof AggregatedLog>;\n\nexport type OnLog = (data: AggregatedLog[]) => void;\nexport type OnError = (\n errType: CliErrorCodeType,\n err: unknown,\n info?: Record<string, unknown>\n) => void;\n\nexport const LOGS_ENDPOINT = '/logs';\n\nexport const logsReqHandler = (req: IncomingMessage, res: ServerResponse) => {\n let onLog: OnLog;\n let onError: OnError;\n\n if (req.method === 'POST' && req.url === LOGS_ENDPOINT) {\n let body = '';\n\n req.on('data', (chunk) => {\n body += chunk.toString();\n });\n\n req.on('end', () => {\n let parsedBody: ServerLogResponse;\n try {\n parsedBody = ServerLogResponseSchema.parse(JSON.parse(body));\n } catch (err) {\n onError(CliErrorCode.FailedToParseLog(), err, { body });\n res.statusCode = 400;\n return res.end();\n }\n\n const resultLogs: AggregatedLog[] = [];\n\n if (parsedBody._type === 'log') {\n resultLogs.push(\n ...parsedBody.exceptions.map((exception) =>\n AggregatedLog.Exception(exception)\n )\n );\n resultLogs.push(\n ...parsedBody.logs.map((log) => AggregatedLog.Log(log))\n );\n }\n\n match(parsedBody._type, {\n log: () => {\n onLog(resultLogs);\n },\n 'session-timeout': () => {\n onError(CliErrorCode.LogsConnectionTimeout(), {}, { body });\n res.statusCode = 200;\n res.end();\n },\n });\n\n res.statusCode = 200;\n res.end();\n });\n } else {\n res.statusCode = 404;\n res.end('Not Found');\n }\n\n const api = {\n onLog: (callback: OnLog) => {\n onLog = callback;\n return api;\n },\n onError: (callback: OnError) => {\n onError = callback;\n return api;\n },\n };\n\n return api;\n};\n","import React, { type FC } from 'react';\nimport { Text } from '@wix/cli-ui-kit';\nimport type { LogMessage, LogMessageLevel } from './logsReqHandler.js';\n\nexport const ServerLogMessage: FC<{\n message: LogMessage;\n level: LogMessageLevel;\n}> = ({ message, level }) => {\n let content = 'unknown';\n\n if (typeof message === 'object') {\n content = JSON.stringify(message);\n } else {\n content = String(message);\n }\n\n return <Text skin={level === 'error' ? 'error' : 'standard'}>{content}</Text>;\n};\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","createServer","init_esm_shims","import_variant","LogMessageSchema","z","LogMessageLevelSchema","LogItemSchema","ExceptionItemSchema","LogResponseSchema","SessionTimeoutResponseSchema","ServerLogResponseSchema","AggregatedLog","LOGS_ENDPOINT","logsReqHandler","req","res","onLog","onError","body","chunk","parsedBody","err","CliErrorCode","resultLogs","exception","log","api","callback","ServerResult","deploymentIdRegex","useLogsServer","onLog","version","appId","result","setResult","localServerPort","setLocalServerPort","deploymentId","setDeploymentId","tunnelUrl","setTunnelUrl","getAppByVersion","useDevCenterClient","createTunnelClient","useTunnel","httpClient","useHttpClient","server","createServer","req","res","logsReqHandler","code","err","info","CliError","port","url","CliErrorCode","status","useAsync","data","topologyComponent","component","ComponentType","match","loggerReq","LOGS_ENDPOINT","attachLogger","deattachLogger","init_esm_shims","import_react","ServerLogMessage","message","level","content","React","Text","DisplayServerLogs","version","appId","t","useTranslation","logs","setLogs","serverResult","useLogsServer","serverLogs","prevLogs","React","Box_default","Text","Trans","log","logIdx","message","level","msgItem","idx","ServerLogMessage","stack","Spinner","ValidationResult","validateInput","version","React","Trans","LogsCommand","model","useProjectModel","validationResult","DisplayServerLogs","message","Box_default","Text"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createRequire as _createRequire } from 'node:module';
|
|
2
|
+
const require = _createRequire(import.meta.url);
|
|
3
|
+
import{a}from"./chunk-RPI6ANLU.js";import"./chunk-MRVGH2GQ.js";import"./chunk-QZS4ARDD.js";import"./chunk-MDC42U33.js";import"./chunk-K5V5YWVI.js";import"./chunk-ZSNZ62EG.js";import"./chunk-ARPIRV47.js";import"./chunk-DPW3BI3Y.js";import"./chunk-6PKE6DT4.js";import"./chunk-A5N3P734.js";import"./chunk-KWUMJ6JQ.js";import"./chunk-NXQAYU44.js";import"./chunk-DRRMAC33.js";import"./chunk-V4TR6DCM.js";export{a as PreviewCommand};
|
|
4
|
+
//# sourceMappingURL=PreviewCommand-AXFQVFBV.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 I,b as A}from"./chunk-W2OGV6HU.js";import{a as k,b as K}from"./chunk-MRVGH2GQ.js";import{b as M}from"./chunk-MDC42U33.js";import"./chunk-ZSNZ62EG.js";import"./chunk-ARPIRV47.js";import{b as h}from"./chunk-6PKE6DT4.js";import{g as j,h as U,i as b}from"./chunk-A5N3P734.js";import{b as F}from"./chunk-KWUMJ6JQ.js";import{db as c}from"./chunk-NXQAYU44.js";import{A as w,B as E,D as C,N as y,O as T,R as B,V as a,W as _,a as u,b as G,w as i,z as P}from"./chunk-DRRMAC33.js";import{e as s,h as r}from"./chunk-V4TR6DCM.js";r();r();var l=s(u(),1);r();var t=s(u(),1),V=s(G(),1);r();var m=s(u(),1);import{preview as H}from"vite";function N(){let o=(0,m.useRef)(),{model:n}=c();return(0,m.useEffect)(()=>()=>{o.current?.httpServer.close()},[]),(0,m.useCallback)(async()=>{let v=await H(await A(n,{type:"build"}));return o.current=v,I(v)},[n])}var D=(0,t.createContext)(null),x=({children:o})=>{let{model:n}=c(),{t:v}=_(),O=j(),W=N(),{status:q}=B(async()=>{await k(n.projectFolder);let p=await W(),S=await h(n.projectFolder),z=F(S,p);return{armTag:await O.createAppRelease(z,n.config.projectId),serverUrl:p}},[]);return(0,V.match)(q,{Error:()=>null,Loading:()=>t.default.createElement(T,{text:v("serve_command.starting_serve_environment")}),Success:({result:{armTag:p,serverUrl:S}})=>t.default.createElement(D.Provider,{value:{serverUrl:S}},t.default.createElement(U,{armTag:p},o))})};function g(){let o=(0,t.useContext)(D);if(o===null)throw new Error("useServeEnvironment() cannot be used without an <ServeEnvironmentProvider>");return o}r();var e=s(u(),1);function L(){let{site:o}=b(),{serverUrl:n}=g();return e.default.createElement(i,{flexDirection:"column"},e.default.createElement(i,{gap:1},e.default.createElement(P,{skin:"success"},e.default.createElement(C,null)),e.default.createElement(a,{i18nKey:"serve_command.starting_serve_environment_success",components:[e.default.createElement(y,{url:n})]})),e.default.createElement(i,{gap:1},e.default.createElement(w,null),e.default.createElement(a,{i18nKey:"serve_command.production_build"})),e.default.createElement(i,{gap:1,paddingTop:1,paddingBottom:1},e.default.createElement(E,null),e.default.createElement(a,{i18nKey:"general.dev_site.current",values:{name:o.displayName}})),e.default.createElement(i,{paddingBottom:1,flexDirection:"column"},e.default.createElement(K,null)))}var J=()=>l.default.createElement(M,null,l.default.createElement(x,null,l.default.createElement(L,null)));export{J as ServeCommand,x as ServeEnvironmentProvider,g as useServeEnvironment};
|
|
4
|
+
//# sourceMappingURL=ServeCommand-CEFAI6Z4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ServeCommand/index.ts","../src/components/ServeCommand/ServeCommand.tsx","../src/components/ServeCommand/ServeEnvironment.tsx","../src/components/ServeCommand/hooks/usePreviewServer.ts","../src/components/ServeCommand/ServeCommandScreen.tsx"],"sourcesContent":["export { ServeCommand } from './ServeCommand.js';\nexport {\n ServeEnvironmentProvider,\n useServeEnvironment,\n} from './ServeEnvironment.js';\n","import React, { type FC } from 'react';\nimport { SiteIdProvider } from '../../site-id/SiteIdProvider.js';\nimport { ServeEnvironmentProvider } from './ServeEnvironment.js';\nimport { ServeCommandScreen } from './ServeCommandScreen.js';\n\nexport const ServeCommand: FC = () => {\n return (\n <SiteIdProvider>\n <ServeEnvironmentProvider>\n <ServeCommandScreen />\n </ServeEnvironmentProvider>\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 { updateAppManifestWithBaseUrl } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport { Spinner, useAsync } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { ArmTagProvider } from '../../context/armTag.js';\nimport { readAppManifestFile } from '../../app-manifest/file.js';\nimport { assertBuildOutputExists } from '../../files/assert-build-output-exists.js';\nimport { usePreviewServer } from './hooks/usePreviewServer.js';\nimport { useProjectModel } from '../../model.js';\n\ntype ServeEnvironment = {\n serverUrl: string;\n};\n\nconst ServeEnvironmentContext = createContext<ServeEnvironment | null>(null);\n\nexport const ServeEnvironmentProvider: FC<{\n children: ReactNode;\n}> = ({ children }) => {\n const { model } = useProjectModel();\n const { t } = useTranslation();\n const arm = useARMClient();\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 armTag = await arm.createAppRelease(\n updatedManifest,\n model.config.projectId\n );\n\n return { armTag, serverUrl };\n }, []);\n\n return match(status, {\n Error: () => null,\n Loading: () => (\n <Spinner text={t('serve_command.starting_serve_environment')}></Spinner>\n ),\n Success: ({ result: { armTag, serverUrl } }) => (\n <ServeEnvironmentContext.Provider value={{ serverUrl }}>\n <ArmTagProvider armTag={armTag}>{children}</ArmTagProvider>\n </ServeEnvironmentContext.Provider>\n ),\n });\n};\n\nexport function useServeEnvironment(): ServeEnvironment {\n const context = useContext(ServeEnvironmentContext);\n if (context === null) {\n throw new Error(\n 'useServeEnvironment() cannot be used without an <ServeEnvironmentProvider>'\n );\n }\n return context;\n}\n","import { preview, type PreviewServer } from 'vite';\nimport { useCallback, useEffect, useRef } from 'react';\nimport { useProjectModel } from '../../../model.js';\nimport { getClientViteConfig } 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 getClientViteConfig(model, { type: ConfigType.build })\n );\n\n previewServerRef.current = previewServer;\n\n return getViteServerUrl(previewServer);\n }, [model]);\n}\n","import {\n Box,\n InfoIcon,\n Link,\n PointerIcon,\n SuccessIcon,\n Text,\n} from '@wix/cli-ui-kit';\nimport React from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { useServeEnvironment } from './ServeEnvironment.js';\nimport { PlatformViewer } from '../Platform/PlatformViewer.js';\n\nexport function ServeCommandScreen() {\n const { site } = useSiteId();\n const { serverUrl } = useServeEnvironment();\n\n return (\n <Box 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 <Box gap={1}>\n <InfoIcon />\n <Trans i18nKey=\"serve_command.production_build\" />\n </Box>\n <Box gap={1} paddingTop={1} paddingBottom={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"general.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box paddingBottom={1} flexDirection=\"column\">\n <PlatformViewer />\n </Box>\n </Box>\n );\n}\n"],"mappings":";;
|
|
1
|
+
{"version":3,"sources":["../src/components/ServeCommand/index.ts","../src/components/ServeCommand/ServeCommand.tsx","../src/components/ServeCommand/ServeEnvironment.tsx","../src/components/ServeCommand/hooks/usePreviewServer.ts","../src/components/ServeCommand/ServeCommandScreen.tsx"],"sourcesContent":["export { ServeCommand } from './ServeCommand.js';\nexport {\n ServeEnvironmentProvider,\n useServeEnvironment,\n} from './ServeEnvironment.js';\n","import React, { type FC } from 'react';\nimport { SiteIdProvider } from '../../site-id/SiteIdProvider.js';\nimport { ServeEnvironmentProvider } from './ServeEnvironment.js';\nimport { ServeCommandScreen } from './ServeCommandScreen.js';\n\nexport const ServeCommand: FC = () => {\n return (\n <SiteIdProvider>\n <ServeEnvironmentProvider>\n <ServeCommandScreen />\n </ServeEnvironmentProvider>\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 { updateAppManifestWithBaseUrl } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport { Spinner, useAsync } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { ArmTagProvider } from '../../context/armTag.js';\nimport { readAppManifestFile } from '../../app-manifest/file.js';\nimport { assertBuildOutputExists } from '../../files/assert-build-output-exists.js';\nimport { usePreviewServer } from './hooks/usePreviewServer.js';\nimport { useProjectModel } from '../../model.js';\n\ntype ServeEnvironment = {\n serverUrl: string;\n};\n\nconst ServeEnvironmentContext = createContext<ServeEnvironment | null>(null);\n\nexport const ServeEnvironmentProvider: FC<{\n children: ReactNode;\n}> = ({ children }) => {\n const { model } = useProjectModel();\n const { t } = useTranslation();\n const arm = useARMClient();\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 armTag = await arm.createAppRelease(\n updatedManifest,\n model.config.projectId\n );\n\n return { armTag, serverUrl };\n }, []);\n\n return match(status, {\n Error: () => null,\n Loading: () => (\n <Spinner text={t('serve_command.starting_serve_environment')}></Spinner>\n ),\n Success: ({ result: { armTag, serverUrl } }) => (\n <ServeEnvironmentContext.Provider value={{ serverUrl }}>\n <ArmTagProvider armTag={armTag}>{children}</ArmTagProvider>\n </ServeEnvironmentContext.Provider>\n ),\n });\n};\n\nexport function useServeEnvironment(): ServeEnvironment {\n const context = useContext(ServeEnvironmentContext);\n if (context === null) {\n throw new Error(\n 'useServeEnvironment() cannot be used without an <ServeEnvironmentProvider>'\n );\n }\n return context;\n}\n","import { preview, type PreviewServer } from 'vite';\nimport { useCallback, useEffect, useRef } from 'react';\nimport { useProjectModel } from '../../../model.js';\nimport { getClientViteConfig } 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 getClientViteConfig(model, { type: ConfigType.build })\n );\n\n previewServerRef.current = previewServer;\n\n return getViteServerUrl(previewServer);\n }, [model]);\n}\n","import {\n Box,\n InfoIcon,\n Link,\n PointerIcon,\n SuccessIcon,\n Text,\n} from '@wix/cli-ui-kit';\nimport React from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { useServeEnvironment } from './ServeEnvironment.js';\nimport { PlatformViewer } from '../Platform/PlatformViewer.js';\n\nexport function ServeCommandScreen() {\n const { site } = useSiteId();\n const { serverUrl } = useServeEnvironment();\n\n return (\n <Box 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 <Box gap={1}>\n <InfoIcon />\n <Trans i18nKey=\"serve_command.production_build\" />\n </Box>\n <Box gap={1} paddingTop={1} paddingBottom={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"general.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box paddingBottom={1} flexDirection=\"column\">\n <PlatformViewer />\n </Box>\n </Box>\n );\n}\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","import_react","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","preview","usePreviewServer","previewServerRef","model","useProjectModel","previewServer","preview","getViteConfig","getViteServerUrl","ServeEnvironmentContext","ServeEnvironmentProvider","children","model","useProjectModel","t","useTranslation","arm","useARMClient","createPreviewServer","usePreviewServer","status","useAsync","assertBuildOutputExists","serverUrl","manifest","readAppManifestFile","updatedManifest","updateAppManifestWithBaseUrl","React","Spinner","armTag","ArmTagProvider","useServeEnvironment","context","init_esm_shims","import_react","ServeCommandScreen","site","useSiteId","serverUrl","useServeEnvironment","React","Box_default","Text","SuccessIcon","Trans","Link","InfoIcon","PointerIcon","PlatformViewer","ServeCommand","React","SiteIdProvider","ServeEnvironmentProvider","ServeCommandScreen"]}
|
|
@@ -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 s,c as u,d as f}from"./chunk-
|
|
4
|
-
//# sourceMappingURL=build-
|
|
3
|
+
import{a as s,c as u,d as f}from"./chunk-BOQ3NCXF.js";import{b as m,c as d}from"./chunk-W2OGV6HU.js";import{a as l}from"./chunk-6PKE6DT4.js";import"./chunk-KWUMJ6JQ.js";import{Oa as c,bb as a,ma as n}from"./chunk-NXQAYU44.js";import{b as E,d as t,e as i}from"./chunk-DRRMAC33.js";import{e as g,h as p}from"./chunk-V4TR6DCM.js";p();import{cwd as b}from"node:process";import{build as w}from"vite";var r=g(E(),1);async function M(){let o=await a(b());if(o.components.length===0)throw new t({code:i.NoExtensionsFound()});s(o.components);let C=o.components.filter(e=>(0,r.isType)(e,n.Api)||(0,r.isType)(e,n.Event)||(0,r.isType)(e,n.ServicePlugin)).length>0?await w(await d(o,{type:"build"},{appSecret:"__APP_SECRET__",webhooksPublicKey:"__WEBHOOKS_PUBLIC_KEY__"})).catch(e=>{throw new t({code:i.FailedToBuildApp({cause:e}),cause:e})}):void 0,_=await w(await m(o,{type:"build"},{baseBackendUrl:c})).catch(e=>{throw new t({code:i.FailedToBuildApp({cause:e}),cause:e})}),B=await u({appId:o.config.appId,components:o.components,sentryDSN:o.config.sentryDSN,componentSourceBuilder:f({model:o,clientBuildOutput:_,backendBuildOutput:C})});await l({projectFolder:o.projectFolder,manifest:B})}export{M as build};
|
|
4
|
+
//# sourceMappingURL=build-ISANKZIW.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 r}from"./chunk-KWUMJ6JQ.js";import{fa as i,k as p}from"./chunk-NXQAYU44.js";import{h as n}from"./chunk-V4TR6DCM.js";n();async function A({projectFolder:t,manifest:e}){let a=i(t);return p(a,e)}async function M(t){let e=i(t);return r(e)}export{A as a,M as b};
|
|
4
|
+
//# sourceMappingURL=chunk-6PKE6DT4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/app-manifest/file.ts"],"sourcesContent":["import { writeJson } from '@wix/cli-fs';\nimport { getAppManifestPath } from '@wix/cli-app-definitions';\nimport type { AppManifest } from '@wix/cli-app-manifest';\nimport { readAppManifest } from '@wix/cli-app-manifest';\n\nexport async function writeAppManifestFile({\n projectFolder,\n manifest,\n}: {\n projectFolder: string;\n manifest: AppManifest;\n}) {\n const manifestPath = getAppManifestPath(projectFolder);\n\n return writeJson(manifestPath, manifest);\n}\n\nexport async function readAppManifestFile(projectFolder: string) {\n const manifestPath = getAppManifestPath(projectFolder);\n\n return readAppManifest(manifestPath);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/app-manifest/file.ts"],"sourcesContent":["import { writeJson } from '@wix/cli-fs';\nimport { getAppManifestPath } from '@wix/cli-app-definitions';\nimport type { AppManifest } from '@wix/cli-app-manifest';\nimport { readAppManifest } from '@wix/cli-app-manifest';\n\nexport async function writeAppManifestFile({\n projectFolder,\n manifest,\n}: {\n projectFolder: string;\n manifest: AppManifest;\n}) {\n const manifestPath = getAppManifestPath(projectFolder);\n\n return writeJson(manifestPath, manifest);\n}\n\nexport async function readAppManifestFile(projectFolder: string) {\n const manifestPath = getAppManifestPath(projectFolder);\n\n return readAppManifest(manifestPath);\n}\n"],"mappings":";;gIAAAA,IAKA,eAAsBC,EAAqB,CACzC,cAAAC,EACA,SAAAC,CACF,EAGG,CACD,IAAMC,EAAeC,EAAmBH,CAAa,EAErD,OAAOI,EAAUF,EAAcD,CAAQ,CACzC,CAEA,eAAsBI,EAAoBL,EAAuB,CAC/D,IAAME,EAAeC,EAAmBH,CAAa,EAErD,OAAOM,EAAgBJ,CAAY,CACrC","names":["init_esm_shims","writeAppManifestFile","projectFolder","manifest","manifestPath","getAppManifestPath","writeJson","readAppManifestFile","readAppManifest"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createRequire as _createRequire } from 'node:module';
|
|
2
|
+
const require = _createRequire(import.meta.url);
|
|
3
|
+
import{Aa as $,Fa as T,a as g,b as P,d as l,db as V,f as b,x as H}from"./chunk-NXQAYU44.js";import{L as J,N as j,V as z,a as S,b as F,d as u,e as _,l as c,m as A,x as M,z as E}from"./chunk-DRRMAC33.js";import{e as v,h as s}from"./chunk-V4TR6DCM.js";s();s();var pe={},ne={},me={},ce={};var de={},le={},ue={},fe={};function q(r){var e={"api._api_base_domain_":[{srcPath:"/apps-release-manager-service-web",destPath:""}],"bo._base_domain_":[{srcPath:"/apps-release-manager-service-web",destPath:""}],"wixbo.ai":[{srcPath:"/apps-release-manager-service-web",destPath:""}],"www._base_domain_":[{srcPath:"/apps-release-manager-service-web/artifacts-release-manager/app-releases",destPath:"/artifacts-release-manager/app-releases"},{srcPath:"/_api/apps-release-manager-service-web/artifacts-release-manager/app-releases",destPath:"/artifacts-release-manager/app-releases"},{srcPath:"/apps-release-manager-service-web/apps/create",destPath:"/apps/create"},{srcPath:"/apps-release-manager-service-web/apps/promote",destPath:"/apps/promote"},{srcPath:"/apps-release-manager-service-web/apps/tags",destPath:"/apps/tags"},{srcPath:"/apps-release-manager-service-web/apps/create-components",destPath:"/apps/create-components"}],"manage._base_domain_":[{srcPath:"/apps-release-manager-service-web/apps/promote",destPath:"/apps/promote"},{srcPath:"/apps-release-manager-service-web/apps/create",destPath:"/apps/create"},{srcPath:"/apps-release-manager-service-web/apps/tags",destPath:"/apps/tags"},{srcPath:"/apps-release-manager-service-web/apps/create-components",destPath:"/apps/create-components"}]};return P(Object.assign(r,{domainToMappings:e}))}function W(r){var e=l(pe,{}),t=e.toJSON,a=e.fromJSON,i=l(ne,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"POST",methodFqn:"com.wix.ctp.AppsReleaseManagerService.CreateAppRelease",url:q({protoPath:"/apps/create/{appId}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}function k(r){var e=l(ue,{}),t=e.toJSON,a=e.fromJSON,i=l(fe,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"PUT",methodFqn:"com.wix.ctp.AppsReleaseManagerService.UpdateAppRelease",url:q({protoPath:"/apps/tags/{tag}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}function Q(r){var e=l(me,{}),t=e.toJSON,a=e.fromJSON,i=l(ce,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"POST",methodFqn:"com.wix.ctp.AppsReleaseManagerService.CreateComponents",url:q({protoPath:"/apps/create-components/{appId}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}function G(r){var e=l(de,{}),t=e.toJSON,a=e.fromJSON,i=l(le,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"POST",methodFqn:"com.wix.ctp.AppsReleaseManagerService.PromoteAppReleaseToDevCenter",url:q({protoPath:"/apps/promote/{appId}/{tag}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}var O=v(F(),1);s();var B=c.object({newVersion:c.string()}),K=c.object({tag:c.string()});var{AppPermissionDenied:I}=_,X=(0,O.variant)({TagUpdated:{},TagNotFound:(0,O.fields)()}),w=class{constructor(e){this.httpClient=e;let{minRetryTimeout:t}=A();this.retryOptions={retries:3,minTimeout:t,maxTimeout:3*1e3}}retryOptions;createComponents=async(e,t,a)=>{try{await g(()=>this.httpClient.request(Q({appId:e,componentConfigs:t,projectId:a})),this.retryOptions)}catch(i){throw b(i)&&i.response?.status===403?new u({code:I({appId:e}),cause:i}):new u({code:_.FailedToCreateComponents(),cause:i})}};createAppRelease=async(e,t)=>{try{let{data:a}=await g(()=>this.httpClient.request(W({appId:e.appId,componentConfigs:e.components,projectId:t})),this.retryOptions);return K.parse(a).tag}catch(a){throw b(a)&&a.response?.status===403?new u({code:I({appId:e.appId}),cause:a}):new u({code:_.FailedToCreateAppRelease(),cause:a})}};updateAppRelease=async(e,t)=>{try{return await g(()=>this.httpClient.request(k({appId:e.appId,componentConfigs:e.components,tag:t})),this.retryOptions),X.TagUpdated()}catch(a){if(b(a)){if(a.response?.status===404)return X.TagNotFound({cause:a});if(a.response?.status===403)throw new u({code:I({appId:e.appId}),cause:a})}throw new u({code:_.FailedToUpdateAppRelease(),cause:a})}};promoteToDevCenter=async(e,t,a)=>{let{data:i}=await g(()=>this.httpClient.request(G({appId:e,tag:t,versionType:a})),this.retryOptions);return B.parse(i)}};s();var Y=v(S(),1);function he(){let r=T({type:"backoffice"});return(0,Y.useMemo)(()=>new w(r),[r])}s();s();var R=v(S(),1),Z=(0,R.createContext)(null),We=({children:r,armTag:e})=>R.default.createElement(Z.Provider,{value:{armTag:e}},r),ee=()=>{let r=(0,R.useContext)(Z);if(r===null)throw new Error("useArmTag() cannot be used without an <ArmTagProvider>");return r};s();s();var ve={},ge={sites:"_site"},_e={createdDate:"google.protobuf.Timestamp",updatedDate:"google.protobuf.Timestamp",trashedDate:"google.protobuf.Timestamp"};function Se(r){var e={"www._base_domain_":[{srcPath:"/_api/sites-list",destPath:"/api"},{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"feedback._base_domain_":[{srcPath:"/_api/sites-list",destPath:"/api"}],"manage._base_domain_":[{srcPath:"/_api/sites-list",destPath:"/api"},{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"},{srcPath:"/_api/sites-list-data",destPath:"/api/sites-list-data"}],"www.wixapis.com":[{srcPath:"/site-list/v2/sites",destPath:"/v2/sites"}],"api._api_base_domain_":[{srcPath:"/sites-list",destPath:""}],"bo._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"wixbo.ai":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"dev._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"editor._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"blocks._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"create.editorx":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}]};return P(Object.assign(r,{domainToMappings:e}))}function L(r){var e=l(ve,{}),t=e.toJSON,a=e.fromJSON,i=l(ge,{_site:_e}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.site_list.v2.site",method:"POST",methodFqn:"com.wixpress.sitelist.api.SiteListServiceV2.QuerySites",url:Se({protoPath:"/v2/sites/query",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}s();var Re=c.object({id:c.string(),displayName:c.string(),viewUrl:c.union([c.string().url(),c.literal("")]).optional()}),U=c.object({sites:c.array(Re)});var C=class{constructor(e){this.httpClient=e;let{minRetryTimeout:t}=A();this.retryOptions={retries:3,minTimeout:t,maxTimeout:3*1e3}}retryOptions;querySites=async(e={})=>{try{let{data:t}=await g(()=>this.httpClient.request(L(e)),this.retryOptions);return U.parse(t).sites}catch(t){throw new u({code:_.FailedToQuerySites(),cause:t,info:{...e}})}};getSite=async e=>{try{let{data:t}=await g(()=>this.httpClient.request(L({query:{filter:{id:{$in:[e]}}}})),this.retryOptions),{sites:a}=U.parse(t);return a.at(0)??null}catch(t){throw new u({code:_.FailedToGetSite(),cause:t,info:{id:e}})}}};s();var te=v(S(),1);function ye(){let r=T({type:"backoffice"});return(0,te.useMemo)(()=>new C(r),[r])}s();s();var re=v(S(),1),ae=(0,re.createContext)(null);s();var x=v(F(),1),D=(0,x.variant)({NotConfigured:{},NotFound:(0,x.fields)(),Resolved:(0,x.fields)()});s();async function wt({projectFolder:r,siteListClient:{getSite:e},siteId:t,writeDebugLog:a}){let i=t||(await $(r,a))?.siteId;if(!i)return D.NotConfigured();let o=await e(i);return o?D.Resolved({site:o}):D.NotFound({id:i})}s();var se=v(S(),1);function oe(){let r=(0,se.useContext)(ae);if(r===null)throw new Error("useSiteId() cannot be used without an <SiteIdProvider>");return r}s();var y=v(S(),1);var N=v(F(),1);function It(){let{model:r}=V(),{site:e}=oe(),{armTag:t}=ee();return{appId:r.config.appId,site:e,tag:t}}var ie=r=>{let e=new URL(r.toString()),t=["specs.UseAppsRuntimeCache","specs.ApplyQueryParamsOverrides"].map(a=>`${a}:true`).join(";");return e.searchParams.append("petri_ovr",t),e};function Lt({envConfig:r,platformType:e,siteOverrideId:t}){let{site:a,tag:i}=r,o=(0,N.match)(e,{Dashboard:()=>new URL(`dashboard/${a.id}`,"https://manage.wix.com/"),Editor:()=>ie(new URL(`https://wix.com/editor/${a.id}`)),Site:()=>{let d=ie(new URL(a.viewUrl));return t&&d.searchParams.append("site-override",t),d}});return o.searchParams.append("apps-override",i),o.toString()}function Ut({envConfig:r,extension:e}){let{appId:t,site:a,tag:i}=r,o=(0,N.matcher)(e).with({DashboardPage:()=>new URL(`dashboard/${a.id}/app/${t}${e.route}`,"https://manage.wix.com/")}).when(["DashboardMenuPlugin","DashboardPlugin","DashboardModal"],()=>new URL(`dashboard/${a.id}${e.route}`,"https://manage.wix.com/")).complete();return o.searchParams.append("apps-override",i),o.toString()}var Mt=async({url:r,title:e},t)=>{try{await H(r)}catch{t({type:"error",prefix:"app",msg:y.default.createElement(J,{type:"error"},y.default.createElement(z,{i18nKey:"general.open_page_error",components:[y.default.createElement(E,{bold:!0})],values:{title:e}}),y.default.createElement(M,null),y.default.createElement(j,{url:r}))})}};export{C as a,ye as b,ae as c,D as d,wt as e,w as f,he as g,We as h,oe as i,It as j,ie as k,Lt as l,Ut as m,Mt as n};
|
|
4
|
+
//# sourceMappingURL=chunk-A5N3P734.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../arm-client/src/client.ts","../../../node_modules/@wix/ambassador-ctp-gradual-rollout-v1-app-config/http.impl.ts","../../arm-client/src/schemas.ts","../../arm-client/src/useARMClient.ts","../../arm-client/src/index.ts","../src/context/armTag.tsx","../../site-list-client/src/site-list-client.ts","../../../node_modules/@wix/ambassador-site-list-v2-site/http.impl.ts","../../site-list-client/src/schemas.ts","../../site-list-client/src/useSiteListClient.ts","../../site-list-client/src/index.ts","../src/site-id/context.ts","../src/site-id/site-id-state.ts","../src/site-id/resolve-configured-site.ts","../src/site-id/useSiteId.ts","../src/components/extensions/utils.tsx"],"sourcesContent":["import type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport type { AppManifest } from '@wix/cli-app-manifest';\nimport type { Options } from 'p-retry';\nimport type {\n VersionType,\n ComponentConfig,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/types';\nimport {\n createAppRelease,\n promoteAppReleaseToDevCenter,\n updateAppRelease,\n createComponents,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/http';\nimport pRetry from 'p-retry';\nimport { fields, variant } from 'variant';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { createAppReleaseSchema, promoteAppReleaseSchema } from './schemas.js';\n\nconst { AppPermissionDenied } = CliErrorCode;\n\nexport const UpdateAppReleaseData = variant({\n TagUpdated: {},\n TagNotFound: fields<{ cause: HttpError }>(),\n});\n\nexport class ARMClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n createComponents = async (\n appId: string,\n componentConfigs: ComponentConfig[],\n projectId: string\n ) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n createComponents({\n appId,\n componentConfigs,\n projectId,\n })\n ),\n this.retryOptions\n );\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateComponents(),\n cause: e,\n });\n }\n };\n\n createAppRelease = async (manifest: AppManifest, projectId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n createAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n projectId,\n })\n ),\n this.retryOptions\n );\n\n return createAppReleaseSchema.parse(data).tag;\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateAppRelease(),\n cause: e,\n });\n }\n };\n\n updateAppRelease = async (manifest: AppManifest, tag: string) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n updateAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n tag,\n })\n ),\n this.retryOptions\n );\n\n return UpdateAppReleaseData.TagUpdated();\n } catch (e) {\n if (isHttpError(e)) {\n if (e.response?.status === 404) {\n return UpdateAppReleaseData.TagNotFound({ cause: e });\n }\n if (e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n }\n throw new CliError({\n code: CliErrorCode.FailedToUpdateAppRelease(),\n cause: e,\n });\n }\n };\n\n promoteToDevCenter = async (\n appId: string,\n tag: string,\n versionType: VersionType\n ) => {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n promoteAppReleaseToDevCenter({ appId, tag, versionType })\n ),\n this.retryOptions\n );\n\n return promoteAppReleaseSchema.parse(data);\n };\n}\n",null,"import { z } from 'zod';\n\nexport const promoteAppReleaseSchema = z.object({\n newVersion: z.string(),\n});\n\nexport const createAppReleaseSchema = z.object({\n tag: z.string(),\n});\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { ARMClient } from './client.js';\n\nexport function useARMClient(): ARMClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new ARMClient(httpClient), [httpClient]);\n}\n","export { ARMClient } from './client.js';\nexport { useARMClient } from './useARMClient.js';\n","import React, {\n useContext,\n createContext,\n type FC,\n type ReactNode,\n} from 'react';\n\ntype ArmTag = {\n armTag: string;\n};\n\nexport const ArmTagContext = createContext<ArmTag | null>(null);\n\nexport const ArmTagProvider: FC<{ children: ReactNode; armTag: string }> = ({\n children,\n armTag,\n}) => {\n return (\n <ArmTagContext.Provider value={{ armTag }}>\n {children}\n </ArmTagContext.Provider>\n );\n};\n\nexport const useArmTag = () => {\n const context = useContext(ArmTagContext);\n\n if (context === null) {\n throw new Error('useArmTag() cannot be used without an <ArmTagProvider>');\n }\n\n return context;\n};\n","import pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { QuerySitesRequest } from '@wix/ambassador-site-list-v2-site/types';\nimport { querySites } from '@wix/ambassador-site-list-v2-site/http';\nimport type { HttpClient } from '@wix/cli-http-client';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { querySitesSchema } from './schemas.js';\n\nexport class SiteListClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n querySites = async (opts: QuerySitesRequest = {}) => {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(querySites(opts)),\n this.retryOptions\n );\n\n return querySitesSchema.parse(data).sites;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToQuerySites(),\n cause: e,\n info: { ...opts },\n });\n }\n };\n\n getSite = async (id: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n querySites({ query: { filter: { id: { $in: [id] } } } })\n ),\n this.retryOptions\n );\n\n const { sites } = querySitesSchema.parse(data);\n return sites.at(0) ?? null;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSite(),\n cause: e,\n info: { id },\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const siteSchema = z.object({\n id: z.string(),\n displayName: z.string(),\n viewUrl: z.union([z.string().url(), z.literal('')]).optional(),\n});\n\nexport const querySitesSchema = z.object({\n sites: z.array(siteSchema),\n});\n\nexport type Site = z.TypeOf<typeof siteSchema>;\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { SiteListClient } from './site-list-client.js';\n\nexport function useSiteListClient(): SiteListClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new SiteListClient(httpClient), [httpClient]);\n}\n","export { SiteListClient } from './site-list-client.js';\nexport type { Site } from './schemas.js';\nexport { useSiteListClient } from './useSiteListClient.js';\n","import { createContext } from 'react';\nimport type { Site } from '@wix/site-list-client';\n\nexport type SiteIdState = {\n site: Site;\n setSite: (site: Site) => Promise<void>;\n};\n\nexport const SiteIdContext = createContext<SiteIdState | null>(null);\n","import { variant, fields, type VariantOf, type TypeNames } from 'variant';\nimport { type Site } from '@wix/site-list-client';\n\nexport const SiteIdState = variant({\n NotConfigured: {},\n NotFound: fields<{ id: string }>(),\n Resolved: fields<{ site: Site }>(),\n});\n\nexport type SiteIdState<T extends TypeNames<typeof SiteIdState> = undefined> =\n VariantOf<typeof SiteIdState, T>;\n","import type { SiteListClient } from '@wix/site-list-client';\nimport type { WriteDebugLogFn } from '@wix/cli-debug-log';\nimport { readAppConfig } from '../files/app.config.js';\nimport { SiteIdState } from './site-id-state.js';\n\nexport async function resolveConfiguredSite({\n projectFolder,\n siteListClient: { getSite },\n siteId,\n writeDebugLog,\n}: {\n projectFolder: string;\n siteListClient: SiteListClient;\n siteId?: string;\n writeDebugLog?: WriteDebugLogFn;\n}) {\n const resolvedSiteId = !siteId\n ? (await readAppConfig(projectFolder, writeDebugLog))?.siteId\n : siteId;\n\n if (!resolvedSiteId) {\n return SiteIdState.NotConfigured();\n }\n\n const site = await getSite(resolvedSiteId);\n\n if (!site) {\n return SiteIdState.NotFound({ id: resolvedSiteId });\n }\n\n return SiteIdState.Resolved({ site });\n}\n","import { useContext } from 'react';\nimport { SiteIdContext, type SiteIdState } from './context.js';\n\nexport function useSiteId(): SiteIdState {\n const context = useContext(SiteIdContext);\n if (context === null) {\n throw new Error('useSiteId() cannot be used without an <SiteIdProvider>');\n }\n return context;\n}\n","import React from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { matcher, match } from 'variant';\nimport { openBrowser } from '@wix/user-browser';\nimport type { Site } from '@wix/site-list-client';\nimport { Alert, Link, Text, Newline } from '@wix/cli-ui-kit';\nimport type { PlatformType } from '@wix/cli-app-definitions';\nimport type { WriteLogFn } from '../DevCommand/devEnvLogs/useDevEnvLogs.js';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { useArmTag } from '../../context/armTag.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type { DashboardExtension } from './useExtensions.js';\n\nexport type EnvConfig = {\n site: Site;\n appId: string;\n tag: string;\n};\n\nexport function useEnvConfig(): EnvConfig {\n const { model } = useProjectModel();\n const { site } = useSiteId();\n const { armTag } = useArmTag();\n\n return {\n appId: model.config.appId,\n site,\n tag: armTag,\n };\n}\n\n// CSMv2 overrides are still not open to users, we need to open it explicitly.\n// TODO: remove it when the rollout is complete.\nexport const addCSMv2FTs = (url: URL) => {\n const clonedUrl = new URL(url.toString());\n const petriOvr = [\n 'specs.UseAppsRuntimeCache',\n 'specs.ApplyQueryParamsOverrides',\n ]\n .map((spec) => `${spec}:true`)\n .join(';');\n clonedUrl.searchParams.append('petri_ovr', petriOvr);\n return clonedUrl;\n};\n\nexport function resolvePlatformUrl({\n envConfig,\n platformType,\n siteOverrideId,\n}: {\n envConfig: EnvConfig;\n platformType: PlatformType;\n siteOverrideId?: string;\n}) {\n const { site, tag } = envConfig;\n\n const url = match(platformType, {\n Dashboard: () => new URL(`dashboard/${site.id}`, 'https://manage.wix.com/'),\n Editor: () => addCSMv2FTs(new URL(`https://wix.com/editor/${site.id}`)),\n Site: () => {\n const siteUrl = addCSMv2FTs(new URL(site.viewUrl!));\n if (siteOverrideId) {\n siteUrl.searchParams.append('site-override', siteOverrideId);\n }\n return siteUrl;\n },\n });\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport function resolveDashboardExtensionUrl({\n envConfig,\n extension,\n}: {\n envConfig: EnvConfig;\n extension: DevCenterComponent<DashboardExtension>;\n}) {\n const { appId, site, tag } = envConfig;\n\n const url = matcher(extension)\n .with({\n DashboardPage: () =>\n new URL(\n `dashboard/${site.id}/app/${appId}${extension.route}`,\n 'https://manage.wix.com/'\n ),\n })\n .when(\n ['DashboardMenuPlugin', 'DashboardPlugin', 'DashboardModal'],\n () =>\n new URL(\n `dashboard/${site.id}${extension.route}`,\n 'https://manage.wix.com/'\n )\n )\n .complete();\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport const openPage = async (\n { url, title }: { url: string; title: string },\n writeLog: WriteLogFn\n) => {\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=\"general.open_page_error\"\n components={[<Text bold />]}\n values={{ title }}\n />\n <Newline />\n <Link url={url} />\n </Alert>\n ),\n });\n }\n};\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","_createAppReleaseRequest","_createAppReleaseResponse","_createComponentsRequest","_createComponentsResponse","_promoteAppReleaseToDevCenterRequest","_promoteAppReleaseToDevCenterResponse","_updateAppReleaseRequest","_updateAppReleaseResponse","resolveComWixCtpAppsReleaseManagerServiceUrl","opts","domainToMappings","resolveUrl","createAppRelease","payload","_a","serializer","_createAppReleaseRequest","toReq","fromReq","fromRes","_createAppReleaseResponse","__createAppRelease","host","serializedData","metadata","updateAppRelease","__updateAppRelease","createComponents","_createComponentsRequest","_createComponentsResponse","__createComponents","promoteAppReleaseToDevCenter","payload","_a","serializer","_promoteAppReleaseToDevCenterRequest","toReq","fromReq","fromRes","_promoteAppReleaseToDevCenterResponse","__promoteAppReleaseToDevCenter","host","serializedData","metadata","resolveComWixCtpAppsReleaseManagerServiceUrl","import_variant","init_esm_shims","promoteAppReleaseSchema","z","createAppReleaseSchema","AppPermissionDenied","CliErrorCode","UpdateAppReleaseData","ARMClient","httpClient","minRetryTimeout","getTestOverrides","appId","componentConfigs","projectId","pRetry","createComponents","e","isHttpError","CliError","manifest","data","createAppRelease","createAppReleaseSchema","tag","updateAppRelease","versionType","promoteAppReleaseToDevCenter","promoteAppReleaseSchema","init_esm_shims","import_react","useARMClient","httpClient","useHttpClient","ARMClient","init_esm_shims","init_esm_shims","import_react","ArmTagContext","ArmTagProvider","children","armTag","React","useArmTag","context","init_esm_shims","init_esm_shims","_querySitesRequest","_querySitesResponse","_site","resolveComWixpressSitelistApiSiteListServiceV2Url","opts","domainToMappings","resolveUrl","querySites","payload","_a","serializer","toReq","fromReq","fromRes","__querySites","host","serializedData","metadata","init_esm_shims","siteSchema","z","querySitesSchema","SiteListClient","httpClient","minRetryTimeout","getTestOverrides","opts","data","pRetry","querySites","querySitesSchema","e","CliError","CliErrorCode","id","sites","init_esm_shims","import_react","useSiteListClient","httpClient","useHttpClient","SiteListClient","init_esm_shims","init_esm_shims","import_react","SiteIdContext","init_esm_shims","import_variant","SiteIdState","init_esm_shims","resolveConfiguredSite","projectFolder","getSite","siteId","writeDebugLog","resolvedSiteId","readAppConfig","SiteIdState","site","init_esm_shims","import_react","useSiteId","context","SiteIdContext","init_esm_shims","import_react","import_variant","useEnvConfig","model","useProjectModel","site","useSiteId","armTag","useArmTag","addCSMv2FTs","url","clonedUrl","petriOvr","spec","resolvePlatformUrl","envConfig","platformType","siteOverrideId","tag","siteUrl","resolveDashboardExtensionUrl","extension","appId","openPage","title","writeLog","openBrowser","React","Alert","Trans","Text","Newline","Link"]}
|
|
1
|
+
{"version":3,"sources":["../../arm-client/src/client.ts","../../../node_modules/@wix/ambassador-ctp-gradual-rollout-v1-app-config/http.impl.ts","../../arm-client/src/schemas.ts","../../arm-client/src/useARMClient.ts","../../arm-client/src/index.ts","../src/context/armTag.tsx","../../site-list-client/src/site-list-client.ts","../../../node_modules/@wix/ambassador-site-list-v2-site/http.impl.ts","../../site-list-client/src/schemas.ts","../../site-list-client/src/useSiteListClient.ts","../../site-list-client/src/index.ts","../src/site-id/context.ts","../src/site-id/site-id-state.ts","../src/site-id/resolve-configured-site.ts","../src/site-id/useSiteId.ts","../src/components/extensions/utils.tsx"],"sourcesContent":["import type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport type { AppManifest } from '@wix/cli-app-manifest';\nimport type { Options } from 'p-retry';\nimport type {\n VersionType,\n ComponentConfig,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/types';\nimport {\n createAppRelease,\n promoteAppReleaseToDevCenter,\n updateAppRelease,\n createComponents,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/http';\nimport pRetry from 'p-retry';\nimport { fields, variant } from 'variant';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { createAppReleaseSchema, promoteAppReleaseSchema } from './schemas.js';\n\nconst { AppPermissionDenied } = CliErrorCode;\n\nexport const UpdateAppReleaseData = variant({\n TagUpdated: {},\n TagNotFound: fields<{ cause: HttpError }>(),\n});\n\nexport class ARMClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n createComponents = async (\n appId: string,\n componentConfigs: ComponentConfig[],\n projectId: string\n ) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n createComponents({\n appId,\n componentConfigs,\n projectId,\n })\n ),\n this.retryOptions\n );\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateComponents(),\n cause: e,\n });\n }\n };\n\n createAppRelease = async (manifest: AppManifest, projectId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n createAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n projectId,\n })\n ),\n this.retryOptions\n );\n\n return createAppReleaseSchema.parse(data).tag;\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateAppRelease(),\n cause: e,\n });\n }\n };\n\n updateAppRelease = async (manifest: AppManifest, tag: string) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n updateAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n tag,\n })\n ),\n this.retryOptions\n );\n\n return UpdateAppReleaseData.TagUpdated();\n } catch (e) {\n if (isHttpError(e)) {\n if (e.response?.status === 404) {\n return UpdateAppReleaseData.TagNotFound({ cause: e });\n }\n if (e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n }\n throw new CliError({\n code: CliErrorCode.FailedToUpdateAppRelease(),\n cause: e,\n });\n }\n };\n\n promoteToDevCenter = async (\n appId: string,\n tag: string,\n versionType: VersionType\n ) => {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n promoteAppReleaseToDevCenter({ appId, tag, versionType })\n ),\n this.retryOptions\n );\n\n return promoteAppReleaseSchema.parse(data);\n };\n}\n",null,"import { z } from 'zod';\n\nexport const promoteAppReleaseSchema = z.object({\n newVersion: z.string(),\n});\n\nexport const createAppReleaseSchema = z.object({\n tag: z.string(),\n});\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { ARMClient } from './client.js';\n\nexport function useARMClient(): ARMClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new ARMClient(httpClient), [httpClient]);\n}\n","export { ARMClient } from './client.js';\nexport { useARMClient } from './useARMClient.js';\n","import React, {\n useContext,\n createContext,\n type FC,\n type ReactNode,\n} from 'react';\n\ntype ArmTag = {\n armTag: string;\n};\n\nexport const ArmTagContext = createContext<ArmTag | null>(null);\n\nexport const ArmTagProvider: FC<{ children: ReactNode; armTag: string }> = ({\n children,\n armTag,\n}) => {\n return (\n <ArmTagContext.Provider value={{ armTag }}>\n {children}\n </ArmTagContext.Provider>\n );\n};\n\nexport const useArmTag = () => {\n const context = useContext(ArmTagContext);\n\n if (context === null) {\n throw new Error('useArmTag() cannot be used without an <ArmTagProvider>');\n }\n\n return context;\n};\n","import pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { QuerySitesRequest } from '@wix/ambassador-site-list-v2-site/types';\nimport { querySites } from '@wix/ambassador-site-list-v2-site/http';\nimport type { HttpClient } from '@wix/cli-http-client';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { querySitesSchema } from './schemas.js';\n\nexport class SiteListClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n querySites = async (opts: QuerySitesRequest = {}) => {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(querySites(opts)),\n this.retryOptions\n );\n\n return querySitesSchema.parse(data).sites;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToQuerySites(),\n cause: e,\n info: { ...opts },\n });\n }\n };\n\n getSite = async (id: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n querySites({ query: { filter: { id: { $in: [id] } } } })\n ),\n this.retryOptions\n );\n\n const { sites } = querySitesSchema.parse(data);\n return sites.at(0) ?? null;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSite(),\n cause: e,\n info: { id },\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const siteSchema = z.object({\n id: z.string(),\n displayName: z.string(),\n viewUrl: z.union([z.string().url(), z.literal('')]).optional(),\n});\n\nexport const querySitesSchema = z.object({\n sites: z.array(siteSchema),\n});\n\nexport type Site = z.TypeOf<typeof siteSchema>;\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { SiteListClient } from './site-list-client.js';\n\nexport function useSiteListClient(): SiteListClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new SiteListClient(httpClient), [httpClient]);\n}\n","export { SiteListClient } from './site-list-client.js';\nexport type { Site } from './schemas.js';\nexport { useSiteListClient } from './useSiteListClient.js';\n","import { createContext } from 'react';\nimport type { Site } from '@wix/site-list-client';\n\nexport type SiteIdState = {\n site: Site;\n setSite: (site: Site) => Promise<void>;\n};\n\nexport const SiteIdContext = createContext<SiteIdState | null>(null);\n","import { variant, fields, type VariantOf, type TypeNames } from 'variant';\nimport { type Site } from '@wix/site-list-client';\n\nexport const SiteIdState = variant({\n NotConfigured: {},\n NotFound: fields<{ id: string }>(),\n Resolved: fields<{ site: Site }>(),\n});\n\nexport type SiteIdState<T extends TypeNames<typeof SiteIdState> = undefined> =\n VariantOf<typeof SiteIdState, T>;\n","import type { SiteListClient } from '@wix/site-list-client';\nimport type { WriteDebugLogFn } from '@wix/cli-debug-log';\nimport { readAppConfig } from '../files/app.config.js';\nimport { SiteIdState } from './site-id-state.js';\n\nexport async function resolveConfiguredSite({\n projectFolder,\n siteListClient: { getSite },\n siteId,\n writeDebugLog,\n}: {\n projectFolder: string;\n siteListClient: SiteListClient;\n siteId?: string;\n writeDebugLog?: WriteDebugLogFn;\n}) {\n const resolvedSiteId = !siteId\n ? (await readAppConfig(projectFolder, writeDebugLog))?.siteId\n : siteId;\n\n if (!resolvedSiteId) {\n return SiteIdState.NotConfigured();\n }\n\n const site = await getSite(resolvedSiteId);\n\n if (!site) {\n return SiteIdState.NotFound({ id: resolvedSiteId });\n }\n\n return SiteIdState.Resolved({ site });\n}\n","import { useContext } from 'react';\nimport { SiteIdContext, type SiteIdState } from './context.js';\n\nexport function useSiteId(): SiteIdState {\n const context = useContext(SiteIdContext);\n if (context === null) {\n throw new Error('useSiteId() cannot be used without an <SiteIdProvider>');\n }\n return context;\n}\n","import React from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { matcher, match } from 'variant';\nimport { openBrowser } from '@wix/user-browser';\nimport type { Site } from '@wix/site-list-client';\nimport { Alert, Link, Text, Newline } from '@wix/cli-ui-kit';\nimport type { PlatformType } from '@wix/cli-app-definitions';\nimport type { WriteLogFn } from '../DevCommand/devEnvLogs/useDevEnvLogs.js';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { useArmTag } from '../../context/armTag.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type { DashboardExtension } from './useExtensions.js';\n\nexport type EnvConfig = {\n site: Site;\n appId: string;\n tag: string;\n};\n\nexport function useEnvConfig(): EnvConfig {\n const { model } = useProjectModel();\n const { site } = useSiteId();\n const { armTag } = useArmTag();\n\n return {\n appId: model.config.appId,\n site,\n tag: armTag,\n };\n}\n\n// CSMv2 overrides are still not open to users, we need to open it explicitly.\n// TODO: remove it when the rollout is complete.\nexport const addCSMv2FTs = (url: URL) => {\n const clonedUrl = new URL(url.toString());\n const petriOvr = [\n 'specs.UseAppsRuntimeCache',\n 'specs.ApplyQueryParamsOverrides',\n ]\n .map((spec) => `${spec}:true`)\n .join(';');\n clonedUrl.searchParams.append('petri_ovr', petriOvr);\n return clonedUrl;\n};\n\nexport function resolvePlatformUrl({\n envConfig,\n platformType,\n siteOverrideId,\n}: {\n envConfig: EnvConfig;\n platformType: PlatformType;\n siteOverrideId?: string;\n}) {\n const { site, tag } = envConfig;\n\n const url = match(platformType, {\n Dashboard: () => new URL(`dashboard/${site.id}`, 'https://manage.wix.com/'),\n Editor: () => addCSMv2FTs(new URL(`https://wix.com/editor/${site.id}`)),\n Site: () => {\n const siteUrl = addCSMv2FTs(new URL(site.viewUrl!));\n if (siteOverrideId) {\n siteUrl.searchParams.append('site-override', siteOverrideId);\n }\n return siteUrl;\n },\n });\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport function resolveDashboardExtensionUrl({\n envConfig,\n extension,\n}: {\n envConfig: EnvConfig;\n extension: DevCenterComponent<DashboardExtension>;\n}) {\n const { appId, site, tag } = envConfig;\n\n const url = matcher(extension)\n .with({\n DashboardPage: () =>\n new URL(\n `dashboard/${site.id}/app/${appId}${extension.route}`,\n 'https://manage.wix.com/'\n ),\n })\n .when(\n ['DashboardMenuPlugin', 'DashboardPlugin', 'DashboardModal'],\n () =>\n new URL(\n `dashboard/${site.id}${extension.route}`,\n 'https://manage.wix.com/'\n )\n )\n .complete();\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport const openPage = async (\n { url, title }: { url: string; title: string },\n writeLog: WriteLogFn\n) => {\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=\"general.open_page_error\"\n components={[<Text bold />]}\n values={{ title }}\n />\n <Newline />\n <Link url={url} />\n </Alert>\n ),\n });\n }\n};\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","_createAppReleaseRequest","_createAppReleaseResponse","_createComponentsRequest","_createComponentsResponse","_promoteAppReleaseToDevCenterRequest","_promoteAppReleaseToDevCenterResponse","_updateAppReleaseRequest","_updateAppReleaseResponse","resolveComWixCtpAppsReleaseManagerServiceUrl","opts","domainToMappings","resolveUrl","createAppRelease","payload","_a","serializer","_createAppReleaseRequest","toReq","fromReq","fromRes","_createAppReleaseResponse","__createAppRelease","host","serializedData","metadata","updateAppRelease","__updateAppRelease","createComponents","_createComponentsRequest","_createComponentsResponse","__createComponents","promoteAppReleaseToDevCenter","payload","_a","serializer","_promoteAppReleaseToDevCenterRequest","toReq","fromReq","fromRes","_promoteAppReleaseToDevCenterResponse","__promoteAppReleaseToDevCenter","host","serializedData","metadata","resolveComWixCtpAppsReleaseManagerServiceUrl","import_variant","init_esm_shims","promoteAppReleaseSchema","z","createAppReleaseSchema","AppPermissionDenied","CliErrorCode","UpdateAppReleaseData","ARMClient","httpClient","minRetryTimeout","getTestOverrides","appId","componentConfigs","projectId","pRetry","createComponents","e","isHttpError","CliError","manifest","data","createAppRelease","createAppReleaseSchema","tag","updateAppRelease","versionType","promoteAppReleaseToDevCenter","promoteAppReleaseSchema","init_esm_shims","import_react","useARMClient","httpClient","useHttpClient","ARMClient","init_esm_shims","init_esm_shims","import_react","ArmTagContext","ArmTagProvider","children","armTag","React","useArmTag","context","init_esm_shims","init_esm_shims","_querySitesRequest","_querySitesResponse","_site","resolveComWixpressSitelistApiSiteListServiceV2Url","opts","domainToMappings","resolveUrl","querySites","payload","_a","serializer","toReq","fromReq","fromRes","__querySites","host","serializedData","metadata","init_esm_shims","siteSchema","z","querySitesSchema","SiteListClient","httpClient","minRetryTimeout","getTestOverrides","opts","data","pRetry","querySites","querySitesSchema","e","CliError","CliErrorCode","id","sites","init_esm_shims","import_react","useSiteListClient","httpClient","useHttpClient","SiteListClient","init_esm_shims","init_esm_shims","import_react","SiteIdContext","init_esm_shims","import_variant","SiteIdState","init_esm_shims","resolveConfiguredSite","projectFolder","getSite","siteId","writeDebugLog","resolvedSiteId","readAppConfig","SiteIdState","site","init_esm_shims","import_react","useSiteId","context","SiteIdContext","init_esm_shims","import_react","import_variant","useEnvConfig","model","useProjectModel","site","useSiteId","armTag","useArmTag","addCSMv2FTs","url","clonedUrl","petriOvr","spec","resolvePlatformUrl","envConfig","platformType","siteOverrideId","tag","siteUrl","resolveDashboardExtensionUrl","extension","appId","openPage","title","writeLog","openBrowser","React","Alert","Trans","Text","Newline","Link"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as _createRequire } from 'node:module';
|
|
2
2
|
const require = _createRequire(import.meta.url);
|
|
3
|
-
import{e as x}from"./chunk-
|
|
3
|
+
import{e as x}from"./chunk-NXQAYU44.js";import{a as b,c as a}from"./chunk-DRRMAC33.js";import{e as s,h as n}from"./chunk-V4TR6DCM.js";n();var r=s(b(),1),c=s(a(),1);import{dirname as L}from"node:path";import{appendFileSync as D,mkdirSync as w}from"node:fs";n();var f=s(x(),1),l=s(a(),1);function u(e){if(f.HttpClient.isHttpError(e))return e;let o=e instanceof Error?l.default.cause(e):null;return o?u(o):null}n();function d(e){return{request:{baseURL:e.config?.baseURL,url:e.config?.url,method:e.config?.method,headers:e.config?.headers,data:e.config?.data},response:{code:e.code,message:e.message,status:e.response?.status,headers:e.response?.headers,data:e.response?.data}}}function y(e,o){try{let t=`----- CLI crash report at ${new Date().toISOString()}
|
|
4
4
|
`;if(o instanceof Error){t+=`Error Trace
|
|
5
5
|
`,t+=`${c.default.fullStack(o)}
|
|
6
6
|
`,t+=`Error Info
|
|
@@ -8,4 +8,4 @@ import{e as x}from"./chunk-PEDWEHXR.js";import{a as b,c as a}from"./chunk-JUS465
|
|
|
8
8
|
`;let i=u(o);i&&(t+=`Request Info
|
|
9
9
|
`,t+=`${JSON.stringify(d(i),null,2)}
|
|
10
10
|
`)}w(L(e),{recursive:!0}),D(e,t)}catch{}}var m=(0,r.createContext)(null),k=({filePath:e,children:o})=>{let t=(0,r.useCallback)(i=>y(e,i),[e]);return r.default.createElement(m.Provider,{value:t},o)},R=()=>{let e=(0,r.useContext)(m);if(e===null)throw new Error("useDebugLog() cannot be used without an <DebugLogProvider>");return e};export{k as a,R as b};
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-ARPIRV47.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createRequire as _createRequire } from 'node:module';
|
|
2
|
+
const require = _createRequire(import.meta.url);
|
|
3
|
+
import{D as P,H as p,I as B,J as M,N as g,O as A,P as I,Q as w,Ta as O,Va as U,da as T,la as N,ma as h,na as f,oa as x,qa as k}from"./chunk-NXQAYU44.js";import{b as y,d as u,e as c}from"./chunk-DRRMAC33.js";import{e as E,h as l}from"./chunk-V4TR6DCM.js";l();var C=E(y(),1);import{randomUUID as V}from"node:crypto";var _=t=>{let r=new Map;[...t.filter(i=>!(0,C.isType)(i,h.Api)&&!(0,C.isType)(i,h.Event)&&!(0,C.isType)(i,h.ServicePlugin))].sort((i,d)=>i.id.localeCompare(d.id)).forEach(i=>{let d=r.get(i.id)??[];d.push(i),r.set(i.id,d)});let e=new Map;if(r.forEach((i,d)=>{i.length>1&&e.set(d,i)}),e.size)throw new u({code:c.DuplicateComponentIdsError({issues:Array.from(e.entries()).map(([i,d])=>({id:i,components:d.map(n=>(0,C.match)(n,{DashboardPage:({title:s,relativePath:m})=>({name:s,type:"page",path:f(m,"json")}),DashboardPlugin:({title:s,relativePath:m})=>({name:s,type:"plugin",path:f(m,"json")}),DashboardMenuPlugin:({title:s,relativePath:m})=>({name:s,type:"menu-plugin",path:m}),DashboardModal:({title:s,relativePath:m})=>({name:s,type:"modal",path:f(m,"json")}),DashboardSidebarCategory:({label:s})=>({name:s,type:"sidebar-category",path:P}),EmbeddedScript:({relativePath:s})=>({name:s,type:"embedded-script",path:f(s,"json")}),CustomElement:({name:s,relativePath:m})=>({name:s,type:"custom-element",path:f(m,"json")}),Topology:({name:s})=>({name:s,type:"topology",path:""})})).sort((n,s)=>n.name.localeCompare(s.name)),suggestedId:V()}))})})};l();var R=E(y(),1);import{randomUUID as G}from"node:crypto";function L(t){return t!=null&&t!==!1}var H=(t,r)=>{if(t.experiments)return{appId:r,componentId:t.id,spec:t.experiments.enabledBy,variantValue:"true"}},K=t=>({compId:t.id,compType:p.CUSTOM_ELEMENT_WIDGET,compName:t.name,compData:{customElementWidget:{base:{name:t.name},widgetData:{tagName:t.tagName,scriptType:I.ES_MODULE,scriptUrl:"https://dummy.web.com"},size:{width:{defaultWidth:t.width.defaultWidth,allowStretch:t.width.allowStretch,stretchByDefault:t.width.stretchByDefault},height:{defaultHeight:t.height.defaultHeight,heightMode:w.FIXED}},installation:{base:{autoAdd:t.installation?.autoAddToSite,essential:t.installation?.essential,maxInstances:t.installation?.essential?1:0},widget:{region:B.BODY}},behaviors:{},dependencies:t.dependencies}}});async function pe({appId:t,components:r,sentryDSN:a,componentSourceBuilder:o}){return _(r),{appId:t,components:(await Promise.all(r.map((0,R.match)({DashboardPage:async e=>{let i=e.sentryDSN??a;return{compId:e.id,compType:p.BACK_OFFICE_PAGE,compData:{backOfficePage:{hostingPlatform:g.BUSINESS_MANAGER,fullPage:e.sidebar?.whenActive?.hideSidebar,hideInSidebar:e.sidebar?.disabled,priority:e.sidebar?.priority,routePath:e.route.slice(1),title:e.title,pageCategoryId:e.sidebar?.categoryId,activeSidebarPageId:e.sidebar?.whenActive?.selectedPageId,requiredPermission:e.requiredPermission,previousRoutePaths:e.additionalRoutes,...i?{errorReporting:{url:i}}:void 0,...await o(e)}},compName:e.title,experiment:H(e,t)}},DashboardPlugin:async e=>({compId:e.id,compType:p.BACK_OFFICE_EXTENSION_WIDGET,compData:{backOfficeExtensionWidget:{hostingPlatform:g.BUSINESS_MANAGER,extends:e.extends,title:e.title,requiredPermission:e.requiredPermission,width:e.width,height:e.height,...await o(e),...e.sentryDSN?{errorReporting:{url:e.sentryDSN}}:void 0}},compName:e.title}),DashboardMenuPlugin:async e=>({compId:e.id,compType:p.BACK_OFFICE_EXTENSION_MENU_ITEM,compData:{backOfficeExtensionMenuItem:{hostingPlatform:g.BUSINESS_MANAGER,id:e.id,title:e.title,subtitle:e.subtitle,iconKey:e.iconKey,extends:e.extends,action:e.action,requiredPermission:e.requiredPermission,...e.sentryDSN?{errorReporting:{url:e.sentryDSN}}:void 0}},compName:e.title}),DashboardModal:async e=>({compId:e.id,compType:p.BACK_OFFICE_MODAL,compData:{backOfficeModal:{hostingPlatform:g.BUSINESS_MANAGER,title:e.title,requiredPermission:e.requiredPermission,width:e.width,height:e.height,...await o(e),...e.sentryDSN?{errorReporting:{url:e.sentryDSN}}:void 0}},compName:e.title}),DashboardSidebarCategory:async e=>({compId:e.id,compType:p.BACK_OFFICE_SIDEBAR_CATEGORY,compData:{backOfficeSidebarCategory:{hostingPlatform:g.BUSINESS_MANAGER,title:e.label,priority:e.priority}},compName:e.label}),EmbeddedScript:async e=>({compId:e.id,compType:p.EMBEDDED_SCRIPT,compName:e.name,compData:{embeddedScriptComponentData:{name:e.name,pages:M.NONE_PAGES,placement:e.placement,connectArticleUrl:"",embedCategory:e.scriptType,dependencies:e.dependencies,loadOnce:!0,allowedForFreeSite:!0,...await o(e)}}}),CustomElement:async e=>{let{scriptUrl:i,settingsUrl:d}=await o(e),n=K(e);return{...n,compData:{customElementWidget:{...n.compData.customElementWidget,widgetData:{...n.compData.customElementWidget.widgetData,scriptUrl:i},behaviors:{...n.compData.customElementWidget.behaviors,...e.relativePanelPath?{settings:{settingsUrl:d}}:{}}}}}},Topology:async e=>({compId:e.id,compType:p.TOPOLOGY,compName:e.name,compData:{topology:{topology:{backendApiUrl:e.backendApiUrl}}}}),Api:()=>null,Event:async e=>(await o(e)).map(({webhookSlug:d})=>({compName:d,compId:G(),compType:p.WEBHOOK,compData:{webhook:{callbackUrl:"__WEBHOOKS_URL_PLACEHOLDER__",webhookSlug:d}}})),ServicePlugin:()=>null})))).filter(L).flat()}}l();var W=E(y(),1);import{join as q}from"node:path";l();function F(t){if(!("output"in t||Array.isArray(t)))throw new u({code:c.InvalidViteBuildOutput()});return Array.isArray(t)?t.flatMap(o=>o.output):t.output}function v(t,r){let o=F(t).find(e=>e.type==="chunk"&&e.facadeModuleId===r);if(!o)throw new u({code:c.ViteModuleBundleNotFound()});return o.fileName}function j(t,r){let o=F(t).find(e=>e.fileName===r);if(!o||!("source"in o))throw new u({code:c.ViteFileNotFoundInOutput({fileName:r})});return o.source.toString()}async function $(t,r){let a=new URL(t.relativePath,r).href;return await fetch(a).then(e=>e.text())}async function X(t,r){let a=new URL("__get-registered-events",r).href,o=await fetch(a);return o.ok?(await o.json())[`/${t.relativePath}`]??[]:[]}async function Y(t,r){let a=T(r.projectFolder),o=q(a,"getRegisteredEvents.mjs"),{getRegisteredEvents:e}=await import(o);return(await e())[`/${t.relativePath}`]}var b=(t,r,a)=>{if(!r.config.trusted)return{iframeUrl:x(t.id)};let o=k(t.id),e=a?v(a,o):`/@id/${o}?import`;return{scriptAsset:{exportedName:t.id,containerId:r.config.appId,url:e,scriptType:A.MODULE}}},z=async(t,r,a)=>({template:r?j(r,t.relativePath):await $(t,a)}),J=async(t,r,a,o)=>{let e=a?await Y(t,r):await X(t,o);return(await Promise.all(e?.map(N))).map(d=>({webhookSlug:d}))},Q=(t,r)=>{let a=U(t.id);return{scriptUrl:r?v(r,a):`/@id/${a}?import`,settingsUrl:O(t.id)}};function ve({model:t,clientBuildOutput:r,backendBuildOutput:a,clientDevServerUrl:o,backendDevServerUrl:e}){return async i=>(0,W.match)(i,{EmbeddedScript:n=>z(n,r,o),DashboardSidebarCategory:()=>{},CustomElement:n=>Q(n,r),DashboardPage:n=>b(n,t,r),DashboardPlugin:n=>b(n,t,r),DashboardModal:n=>b(n,t,r),DashboardMenuPlugin:()=>{},Topology:()=>{},Api:()=>{},Event:n=>J(n,t,a,e),ServicePlugin:()=>{}})}export{_ as a,K as b,pe as c,ve as d};
|
|
4
|
+
//# sourceMappingURL=chunk-BOQ3NCXF.js.map
|