@wix/cli-app 1.1.32 → 1.1.34
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-3ECZI65A.js +4 -0
- package/build/{CreateVersionCommand-AKOX3F4R.js.map → CreateVersionCommand-3ECZI65A.js.map} +1 -1
- package/build/DevCommand-B7WYY2UQ.js +4 -0
- package/build/DevCommand-B7WYY2UQ.js.map +1 -0
- package/build/{GenerateCommand-57P6KOOM.js → GenerateCommand-CIO77YCS.js} +3 -3
- package/build/{GenerateCommand-57P6KOOM.js.map → GenerateCommand-CIO77YCS.js.map} +1 -1
- package/build/LogsCommand-VJ64MYDN.js +4 -0
- package/build/LogsCommand-VJ64MYDN.js.map +1 -0
- package/build/PreviewCommand-BZY2XOZN.js +4 -0
- package/build/ServeCommand-AEELDVFH.js +4 -0
- package/build/ServeCommand-AEELDVFH.js.map +1 -0
- package/build/{build-ISANKZIW.js → build-JVHXDZDD.js} +2 -2
- package/build/{chunk-DPW3BI3Y.js → chunk-2KPKOJPE.js} +2 -2
- package/build/chunk-35SQ77PW.js +4 -0
- package/build/chunk-35SQ77PW.js.map +1 -0
- package/build/{chunk-ZSNZ62EG.js → chunk-COIDN4V4.js} +2 -2
- package/build/{chunk-K5V5YWVI.js → chunk-E6MYDYCH.js} +2 -2
- package/build/{chunk-6PKE6DT4.js → chunk-F4LXYTO3.js} +2 -2
- package/build/chunk-F4YTZ6XA.js +116 -0
- package/build/{chunk-NXQAYU44.js.map → chunk-F4YTZ6XA.js.map} +1 -1
- package/build/{chunk-KWUMJ6JQ.js → chunk-F55KYUXJ.js} +2 -2
- package/build/{chunk-ZRKMSAZQ.js → chunk-FBYP5GID.js} +2 -2
- package/build/{chunk-BOQ3NCXF.js → chunk-HTO6ALNX.js} +2 -2
- package/build/{chunk-BOQ3NCXF.js.map → chunk-HTO6ALNX.js.map} +1 -1
- package/build/{chunk-EI7JLTNP.js → chunk-HTY6QIPX.js} +2 -2
- package/build/{chunk-ARPIRV47.js → chunk-JAY5356K.js} +2 -2
- package/build/{chunk-H2U4YHRN.js → chunk-JKG4PFVP.js} +2 -2
- package/build/{chunk-J5ANBYWF.js → chunk-KQOYEWON.js} +4 -4
- package/build/chunk-KQOYEWON.js.map +1 -0
- package/build/{chunk-DRRMAC33.js → chunk-MB65UVFQ.js} +28 -28
- package/build/chunk-MB65UVFQ.js.map +1 -0
- package/build/chunk-MKVAJTCF.js +4 -0
- package/build/chunk-MKVAJTCF.js.map +1 -0
- package/build/{chunk-MRVGH2GQ.js → chunk-MON4UIEH.js} +2 -2
- package/build/chunk-QTYWYBN3.js +4 -0
- package/build/chunk-QTYWYBN3.js.map +1 -0
- package/build/{chunk-W2OGV6HU.js → chunk-ROZV4SHP.js} +2 -2
- package/build/chunk-X62VPDUS.js +4 -0
- package/build/{chunk-VQJRKVSE.js → chunk-XUF2HJAT.js} +2 -2
- package/build/{chunk-VQJRKVSE.js.map → chunk-XUF2HJAT.js.map} +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/{preview-ABI3GMT6.js → preview-L5LDZK2L.js} +2 -2
- package/build/render-command-IA3LLA3F.js +4 -0
- package/build/render-command-IA3LLA3F.js.map +1 -0
- package/package.json +6 -6
- package/templates/dashboard-plugin/files/plugin.tsx.ejs +11 -0
- package/build/CreateVersionCommand-AKOX3F4R.js +0 -4
- package/build/DevCommand-CVMI3OND.js +0 -4
- package/build/DevCommand-CVMI3OND.js.map +0 -1
- package/build/LogsCommand-P5LW5VOI.js +0 -4
- package/build/LogsCommand-P5LW5VOI.js.map +0 -1
- package/build/PreviewCommand-AXFQVFBV.js +0 -4
- package/build/ServeCommand-CEFAI6Z4.js +0 -4
- package/build/ServeCommand-CEFAI6Z4.js.map +0 -1
- package/build/chunk-A5N3P734.js +0 -4
- package/build/chunk-A5N3P734.js.map +0 -1
- package/build/chunk-DRRMAC33.js.map +0 -1
- package/build/chunk-J5ANBYWF.js.map +0 -1
- package/build/chunk-LE2AC3SJ.js +0 -4
- package/build/chunk-MDC42U33.js +0 -4
- package/build/chunk-MDC42U33.js.map +0 -1
- package/build/chunk-NXQAYU44.js +0 -116
- package/build/chunk-QZS4ARDD.js +0 -4
- package/build/chunk-QZS4ARDD.js.map +0 -1
- package/build/chunk-RPI6ANLU.js +0 -4
- package/build/chunk-RPI6ANLU.js.map +0 -1
- package/build/render-command-F4KJL2DD.js +0 -4
- package/build/render-command-F4KJL2DD.js.map +0 -1
- /package/build/{PreviewCommand-AXFQVFBV.js.map → PreviewCommand-BZY2XOZN.js.map} +0 -0
- /package/build/{build-ISANKZIW.js.map → build-JVHXDZDD.js.map} +0 -0
- /package/build/{chunk-DPW3BI3Y.js.map → chunk-2KPKOJPE.js.map} +0 -0
- /package/build/{chunk-ZSNZ62EG.js.map → chunk-COIDN4V4.js.map} +0 -0
- /package/build/{chunk-K5V5YWVI.js.map → chunk-E6MYDYCH.js.map} +0 -0
- /package/build/{chunk-6PKE6DT4.js.map → chunk-F4LXYTO3.js.map} +0 -0
- /package/build/{chunk-KWUMJ6JQ.js.map → chunk-F55KYUXJ.js.map} +0 -0
- /package/build/{chunk-ZRKMSAZQ.js.map → chunk-FBYP5GID.js.map} +0 -0
- /package/build/{chunk-EI7JLTNP.js.map → chunk-HTY6QIPX.js.map} +0 -0
- /package/build/{chunk-ARPIRV47.js.map → chunk-JAY5356K.js.map} +0 -0
- /package/build/{chunk-H2U4YHRN.js.map → chunk-JKG4PFVP.js.map} +0 -0
- /package/build/{chunk-MRVGH2GQ.js.map → chunk-MON4UIEH.js.map} +0 -0
- /package/build/{chunk-W2OGV6HU.js.map → chunk-ROZV4SHP.js.map} +0 -0
- /package/build/{chunk-LE2AC3SJ.js.map → chunk-X62VPDUS.js.map} +0 -0
- /package/build/{preview-ABI3GMT6.js.map → preview-L5LDZK2L.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-FBYP5GID.js";import{Ea as U,Fa as J,Ga as K,La as $,Ma as X,db as Y}from"./chunk-F4YTZ6XA.js";import{O as H,R as q,V as O,W as R,a as I,b as B,d as F,e as h,l as t,w as f,z as d}from"./chunk-MB65UVFQ.js";import{e as L,h as c}from"./chunk-V4TR6DCM.js";c();c();var S=L(I(),1);var v=L(B(),1);c();var o=L(I(),1),A=L(B(),1);c();var g=L(I(),1),C=L(B(),1);import{createServer as ce}from"node:http";c();var x=L(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(),le=t.discriminatedUnion("_type",[ge,pe]),W=(0,x.variant)({Log:(0,x.fields)(),Exception:(0,x.fields)()}),P="/logs",Z=(e,r)=>{let n,s;if(e.method==="POST"&&e.url===P){let a="";e.on("data",m=>{a+=m.toString()}),e.on("end",()=>{let m;try{m=le.parse(JSON.parse(a))}catch(p){return s(h.FailedToParseLog(),p,{body:a}),r.statusCode=400,r.end()}let i=[];m._type==="log"&&(i.push(...m.exceptions.map(p=>W.Exception(p))),i.push(...m.logs.map(p=>W.Log(p)))),(0,x.match)(m._type,{log:()=>{n(i)},"session-timeout":()=>{r.statusCode=200,r.end(),s(h.LogsConnectionTimeout(),{},{body:a})}}),r.statusCode=200,r.end()})}else r.statusCode=404,r.end("Not Found");let u={onLog:a=>(n=a,u),onError:a=>(s=a,u)};return u};var b=(0,C.variant)({Success:{},Connecting:{},Failure:(0,C.fields)()}),ue=/([0-9a-f-]{36})/,ee=({onLog:e,version:r,appId:n})=>{let[s,u]=(0,g.useState)(b.Connecting()),[a,m]=(0,g.useState)(),[i,p]=(0,g.useState)(),[T,D]=(0,g.useState)(),{getAppByVersion:j}=K(),N=Q(),k=J({type:"backoffice"}),y=(0,g.useMemo)(()=>ce((l,E)=>{Z(l,E).onLog(e).onError((w,V,ne)=>{throw y.close(),new F({code:w,cause:V,info:ne})})}),[e]);(0,g.useEffect)(()=>(y?.listen(0,async()=>{let l=y.address().port;m(l)}),()=>{y?.listening&&y.close()}),[y]),(0,g.useEffect)(()=>{a&&N(a).then(({url:l})=>{D(l)}).catch(l=>{u(b.Failure({cause:l}))})},[N,a]);let{status:z}=q(async()=>{let{data:l}=await j({appId:n,version:r});return l},[]);return(0,g.useEffect)(()=>{(0,C.match)(z,{Success:({result:l})=>{let E=l.components.find(V=>V.compType===U.TOPOLOGY),w=ue.exec(E?.compData.topology.topology.backendApiUrl??"");if(w)p(w[1]);else throw new F({code:h.FailedToGetLogsTopology()})},Error:()=>null,Loading:()=>{}})},[z]),(0,g.useEffect)(()=>{if(T&&i){let l={appId:n,deploymentId:i,destinationUrl:T+P};k.request($(l)).then(()=>{u(b.Success())}).catch(E=>{u(b.Failure({cause:E}))})}},[n,T,i,k]),(0,g.useEffect)(()=>()=>{s.type==="Success"&&i&&k.request(X({appId:n,deploymentId:i}))},[s,i,n,k]),(0,g.useEffect)(()=>{if(s.type==="Failure")throw y.close(),new F({code:h.FailedToConnectToLogsService(),cause:s.cause})},[s,y]),s};c();var oe=L(I(),1);var G=({message:e,level:r})=>{let n="unknown";return typeof e=="object"?n=JSON.stringify(e):n=String(e),oe.default.createElement(d,{skin:r==="error"?"error":"standard"},n)};var te=({version:e,appId:r})=>{let{t:n}=R(),[s,u]=(0,o.useState)([]),a=ee({appId:r,version:e,onLog:(0,o.useCallback)(m=>{u(i=>[...i,...m])},[u])});return(0,A.match)(a,{Success:()=>o.default.createElement(f,{marginTop:1,marginBottom:1,flexDirection:"column"},o.default.createElement(f,{marginBottom:1,flexDirection:"column"},o.default.createElement(d,null,o.default.createElement(O,{i18nKey:"logs_command.listening_to_logs"})),o.default.createElement(d,null,o.default.createElement(O,{i18nKey:"logs_command.prod_env_logs",values:{version:e}}))),s.map((m,i)=>o.default.createElement(f,{key:i,flexDirection:"column"},o.default.createElement(f,{columnGap:1},o.default.createElement(f,{flexShrink:0},o.default.createElement(d,{skin:"secondary"},new Date(m.timestamp).toLocaleTimeString())),o.default.createElement(f,{columnGap:1},(0,A.match)(m,{Log:({message:p,level:T})=>p.map((D,j)=>o.default.createElement(G,{key:`${i}-${j}`,message:D,level:T})),Exception:({message:p})=>o.default.createElement(G,{key:i,message:p,level:"error"})}))),(0,A.match)(m,{Log:()=>null,Exception:({stack:p})=>o.default.createElement(d,{skin:"error"},p)})))),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)()}),fe=({version:e})=>e?re.Valid({version:e}):re.Error({message:S.default.createElement(O,{i18nKey:"logs_command.logs_without_version"})}),de=({version:e})=>{let{model:r}=Y(),n=(0,S.useMemo)(()=>fe({version:e}),[e]);return(0,v.match)(n,{Valid:({version:s})=>S.default.createElement(te,{version:s,appId:r.config.appId}),Error:({message:s})=>S.default.createElement(f,{rowGap:1,marginTop:1,marginBottom:1,flexDirection:"column"},S.default.createElement(f,{gap:1},S.default.createElement(d,{skin:"error"},s)))})};export{de as LogsCommand};
|
|
4
|
+
//# sourceMappingURL=LogsCommand-VJ64MYDN.js.map
|
|
@@ -0,0 +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, fields } 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: fields<{ cause: unknown }>(),\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({ cause: err }));\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({ cause: err }));\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 useEffect(() => {\n if (result.type === 'Failure') {\n server.close();\n throw new CliError({\n code: CliErrorCode.FailedToConnectToLogsService(),\n cause: result.cause,\n });\n }\n }, [result, server]);\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 res.statusCode = 200;\n res.end();\n\n onError(CliErrorCode.LogsConnectionTimeout(), {}, { body });\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","status","useAsync","data","topologyComponent","component","ComponentType","match","CliErrorCode","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-MKVAJTCF.js";import"./chunk-MON4UIEH.js";import"./chunk-35SQ77PW.js";import"./chunk-E6MYDYCH.js";import"./chunk-COIDN4V4.js";import"./chunk-JAY5356K.js";import"./chunk-2KPKOJPE.js";import"./chunk-F4LXYTO3.js";import"./chunk-QTYWYBN3.js";import"./chunk-F55KYUXJ.js";import"./chunk-F4YTZ6XA.js";import"./chunk-MB65UVFQ.js";import"./chunk-V4TR6DCM.js";export{a as PreviewCommand};
|
|
4
|
+
//# sourceMappingURL=PreviewCommand-BZY2XOZN.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 F,b as h}from"./chunk-ROZV4SHP.js";import{a as D,b as L}from"./chunk-MON4UIEH.js";import{b as U,c as K,d as N}from"./chunk-35SQ77PW.js";import"./chunk-COIDN4V4.js";import"./chunk-JAY5356K.js";import{b as j}from"./chunk-F4LXYTO3.js";import{g as b,h as k,i as c,j as V}from"./chunk-QTYWYBN3.js";import{b as M}from"./chunk-F55KYUXJ.js";import{db as u}from"./chunk-F4YTZ6XA.js";import{A as y,B as I,D as B,N as T,O as _,R as O,V as a,W as A,a as d,b as R,w as i,z as E}from"./chunk-MB65UVFQ.js";import{e as s,h as o}from"./chunk-V4TR6DCM.js";o();o();var S=s(d(),1);o();var n=s(d(),1),q=s(R(),1);o();var m=s(d(),1);import{preview as ee}from"vite";function W(){let t=(0,m.useRef)(),{model:r}=u();return(0,m.useEffect)(()=>()=>{t.current?.httpServer.close()},[]),(0,m.useCallback)(async()=>{let v=await ee(await h(r,{type:"build"}));return t.current=v,F(v)},[r])}var z=(0,n.createContext)(null),g=({children:t})=>{let{model:r}=u(),{t:v}=A(),{site:H}=c(),J=b(),{createOverride:Q}=K(),X=W(),{status:Y}=O(async()=>{await D(r.projectFolder);let p=await X(),x=await j(r.projectFolder),P=M(x,p),Z=await J.createAppRelease(P,r.config.projectId),C=N(r),{id:$}=C?await Q({appId:r.config.appId,siteId:H.id,overrides:C}):await Promise.resolve({id:void 0});return{armTag:Z,serverUrl:p,siteOverrideId:$}},[]);return(0,q.match)(Y,{Error:()=>null,Loading:()=>n.default.createElement(_,{text:v("serve_command.starting_serve_environment")}),Success:({result:{armTag:p,serverUrl:x,siteOverrideId:P}})=>n.default.createElement(z.Provider,{value:{serverUrl:x}},n.default.createElement(V,{siteOverrideId:P},n.default.createElement(k,{armTag:p},t)))})};function w(){let t=(0,n.useContext)(z);if(t===null)throw new Error("useServeEnvironment() cannot be used without an <ServeEnvironmentProvider>");return t}o();var e=s(d(),1);function G(){let{site:t}=c(),{serverUrl:r}=w();return e.default.createElement(i,{flexDirection:"column"},e.default.createElement(i,{gap:1},e.default.createElement(E,{skin:"success"},e.default.createElement(B,null)),e.default.createElement(a,{i18nKey:"serve_command.starting_serve_environment_success",components:[e.default.createElement(T,{url:r})]})),e.default.createElement(i,{gap:1},e.default.createElement(y,null),e.default.createElement(a,{i18nKey:"serve_command.production_build"})),e.default.createElement(i,{gap:1,paddingTop:1,paddingBottom:1},e.default.createElement(I,null),e.default.createElement(a,{i18nKey:"general.dev_site.current",values:{name:t.displayName}})),e.default.createElement(i,{paddingBottom:1,flexDirection:"column"},e.default.createElement(L,null)))}var re=()=>S.default.createElement(U,null,S.default.createElement(g,null,S.default.createElement(G,null)));export{re as ServeCommand,g as ServeEnvironmentProvider,w as useServeEnvironment};
|
|
4
|
+
//# sourceMappingURL=ServeCommand-AEELDVFH.js.map
|
|
@@ -0,0 +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 { useSiteOverrideClient } from '@wix/site-override-client';\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';\nimport { useSiteId } from '../../site-id/index.js';\nimport { createSiteOverrides } from '../../site-override/createSiteOverrides.js';\nimport { SiteOverrideProvider } from '../../context/siteOverride.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 { site } = useSiteId();\n const arm = useARMClient();\n const { createOverride } = useSiteOverrideClient();\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 const overrides = createSiteOverrides(model);\n const { id: siteOverrideId } = overrides\n ? await createOverride({\n appId: model.config.appId,\n siteId: site.id,\n overrides,\n })\n : await Promise.resolve({ id: undefined });\n\n return { armTag, serverUrl, siteOverrideId };\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, siteOverrideId } }) => (\n <ServeEnvironmentContext.Provider value={{ serverUrl }}>\n <SiteOverrideProvider siteOverrideId={siteOverrideId}>\n <ArmTagProvider armTag={armTag}>{children}</ArmTagProvider>\n </SiteOverrideProvider>\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":";;siBAAAA,ICAAC,IAAA,IAAAC,EAA+B,SCA/BC,IAAA,IAAAC,EAKO,SACPC,EAAsB,SCNtBC,IACA,IAAAC,EAA+C,SAD/C,OAAS,WAAAC,OAAmC,OAOrC,SAASC,GAAmB,CACjC,IAAMC,KAAmB,UAAsB,EACzC,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAElC,sBAAU,IACD,IAAM,CACXF,EAAiB,SAAS,WAAW,MAAM,CAC7C,EACC,CAAC,CAAC,KAEE,eAAY,SAAY,CAC7B,IAAMG,EAAgB,MAAMC,GAC1B,MAAMC,EAAoBJ,EAAO,CAAE,YAAuB,CAAC,CAC7D,EAEA,OAAAD,EAAiB,QAAUG,EAEpBG,EAAiBH,CAAa,CACvC,EAAG,CAACF,CAAK,CAAC,CACZ,CDDA,IAAMM,KAA0B,iBAAuC,IAAI,EAE9DC,EAER,CAAC,CAAE,SAAAC,CAAS,IAAM,CACrB,GAAM,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAC5B,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvB,CAAE,KAAAC,CAAK,EAAIC,EAAU,EACrBC,EAAMC,EAAa,EACnB,CAAE,eAAAC,CAAe,EAAIC,EAAsB,EAC3CC,EAAsBC,EAAiB,EAEvC,CAAE,OAAAC,CAAO,EAAIC,EAAS,SAAY,CACtC,MAAMC,EAAwBd,EAAM,aAAa,EACjD,IAAMe,EAAY,MAAML,EAAoB,EAEtCM,EAAW,MAAMC,EAAoBjB,EAAM,aAAa,EACxDkB,EAAkBC,EAA6BH,EAAUD,CAAS,EAElEK,EAAS,MAAMd,EAAI,iBACvBY,EACAlB,EAAM,OAAO,SACf,EAEMqB,EAAYC,EAAoBtB,CAAK,EACrC,CAAE,GAAIuB,CAAe,EAAIF,EAC3B,MAAMb,EAAe,CACnB,MAAOR,EAAM,OAAO,MACpB,OAAQI,EAAK,GACb,UAAAiB,CACF,CAAC,EACD,MAAM,QAAQ,QAAQ,CAAE,GAAI,MAAU,CAAC,EAE3C,MAAO,CAAE,OAAAD,EAAQ,UAAAL,EAAW,eAAAQ,CAAe,CAC7C,EAAG,CAAC,CAAC,EAEL,SAAO,SAAMX,EAAQ,CACnB,MAAO,IAAM,KACb,QAAS,IACP,EAAAY,QAAA,cAACC,EAAA,CAAQ,KAAMvB,EAAE,0CAA0C,EAAG,EAEhE,QAAS,CAAC,CAAE,OAAQ,CAAE,OAAAkB,EAAQ,UAAAL,EAAW,eAAAQ,CAAe,CAAE,IACxD,EAAAC,QAAA,cAAC3B,EAAwB,SAAxB,CAAiC,MAAO,CAAE,UAAAkB,CAAU,GACnD,EAAAS,QAAA,cAACE,EAAA,CAAqB,eAAgBH,GACpC,EAAAC,QAAA,cAACG,EAAA,CAAe,OAAQP,GAASrB,CAAS,CAC5C,CACF,CAEJ,CAAC,CACH,EAEO,SAAS6B,GAAwC,CACtD,IAAMC,KAAU,cAAWhC,CAAuB,EAClD,GAAIgC,IAAY,KACd,MAAM,IAAI,MACR,4EACF,EAEF,OAAOA,CACT,CEpFAC,IAQA,IAAAC,EAAkB,SAMX,SAASC,GAAqB,CACnC,GAAM,CAAE,KAAAC,CAAK,EAAIC,EAAU,EACrB,CAAE,UAAAC,CAAU,EAAIC,EAAoB,EAE1C,OACE,EAAAC,QAAA,cAACC,EAAA,CAAI,cAAc,UACjB,EAAAD,QAAA,cAACC,EAAA,CAAI,IAAK,GACR,EAAAD,QAAA,cAACE,EAAA,CAAK,KAAK,WACT,EAAAF,QAAA,cAACG,EAAA,IAAY,CACf,EACA,EAAAH,QAAA,cAACI,EAAA,CACC,QAAQ,mDACR,WAAY,CAAC,EAAAJ,QAAA,cAACK,EAAA,CAAK,IAAKP,EAAW,CAAE,EACvC,CACF,EACA,EAAAE,QAAA,cAACC,EAAA,CAAI,IAAK,GACR,EAAAD,QAAA,cAACM,EAAA,IAAS,EACV,EAAAN,QAAA,cAACI,EAAA,CAAM,QAAQ,iCAAiC,CAClD,EACA,EAAAJ,QAAA,cAACC,EAAA,CAAI,IAAK,EAAG,WAAY,EAAG,cAAe,GACzC,EAAAD,QAAA,cAACO,EAAA,IAAY,EACb,EAAAP,QAAA,cAACI,EAAA,CACC,QAAQ,2BACR,OAAQ,CAAE,KAAMR,EAAK,WAAY,EACnC,CACF,EACA,EAAAI,QAAA,cAACC,EAAA,CAAI,cAAe,EAAG,cAAc,UACnC,EAAAD,QAAA,cAACQ,EAAA,IAAe,CAClB,CACF,CAEJ,CHxCO,IAAMC,GAAmB,IAE5B,EAAAC,QAAA,cAACC,EAAA,KACC,EAAAD,QAAA,cAACE,EAAA,KACC,EAAAF,QAAA,cAACG,EAAA,IAAmB,CACtB,CACF","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","site","useSiteId","arm","useARMClient","createOverride","useSiteOverrideClient","createPreviewServer","usePreviewServer","status","useAsync","assertBuildOutputExists","serverUrl","manifest","readAppManifestFile","updatedManifest","updateAppManifestWithBaseUrl","armTag","overrides","createSiteOverrides","siteOverrideId","React","Spinner","SiteOverrideProvider","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-HTO6ALNX.js";import{b as m,c as d}from"./chunk-ROZV4SHP.js";import{a as l}from"./chunk-F4LXYTO3.js";import"./chunk-F55KYUXJ.js";import{Oa as c,bb as a,ma as n}from"./chunk-F4YTZ6XA.js";import{b as E,d as t,e as i}from"./chunk-MB65UVFQ.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-JVHXDZDD.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as _createRequire } from 'node:module';
|
|
2
2
|
const require = _createRequire(import.meta.url);
|
|
3
|
-
import{b as p}from"./chunk-
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{b as p}from"./chunk-F4LXYTO3.js";import{b as r,c as i}from"./chunk-F55KYUXJ.js";import{h as o}from"./chunk-V4TR6DCM.js";o();var M=async({model:e,arm:a,serveUrl:n,backendServerUrl:t,topologyComponentId:s})=>{let l=await p(e.projectFolder),m=i(r(l,n,t),{id:s,baseApiUrl:t});return a.createAppRelease(m,e.config.projectId)};export{M as a};
|
|
4
|
+
//# sourceMappingURL=chunk-2KPKOJPE.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createRequire as _createRequire } from 'node:module';
|
|
2
|
+
const require = _createRequire(import.meta.url);
|
|
3
|
+
import{b as _e}from"./chunk-JAY5356K.js";import{b as U,c as he,d as Ie,e as Oe}from"./chunk-QTYWYBN3.js";import{Ba as xe,Fa as W,Ga as z,Ha as we,Ia as be,R as ge,a as pe,b as ae,d as Z,db as A,f as le,ma as Ce,r as me,s as ce,t as Se,u as K,x as ye}from"./chunk-F4YTZ6XA.js";import{G as M,H as j,L,M as fe,O as w,P as H,R as O,S as J,V as I,W as f,Y as ve,a as S,b as h,d as g,e as C,l as x,m as B,y as de,z as ue}from"./chunk-MB65UVFQ.js";import{e as l,h as t}from"./chunk-V4TR6DCM.js";t();var T=l(S(),1),oe=l(h(),1);t();var k=l(S(),1),V=l(h(),1);t();t();var y=l(S(),1),je=l(h(),1);t();var ee=l(S(),1),Te=l(h(),1);t();var Pe=l(S(),1);function ze(e){return{cliAction:({question:i,action:o,key:r,additionalInfo:n})=>e.report(be({question:i,action:o,key:r,additionalInfo:JSON.stringify(n)})),cliFlowStepAnswered:({question:i,answer:o,additionalInfo:r})=>e.report(we({question:i,answer:o,additionalInfo:JSON.stringify(r)}))}}function F(){let e=K();return(0,Pe.useMemo)(()=>ze(e),[e])}var Ee=({onSubmit:e,onError:i,sites:o})=>{let r=F(),{t:n}=f(),{getDevSitesCount:s,getDevSitesLimit:m}=z(),{status:_}=O(()=>Promise.all([s(),m()]),[],{onError:i}),c=u=>{r.cliFlowStepAnswered({question:n("site_type_select.label"),answer:u.title}),e(u.value)};return(0,Te.match)(_,{Error:()=>null,Loading:()=>ee.default.createElement(w,{text:n("general.loading")}),Success:({result:[u,v]})=>{let d=u>=v,b=o.length===0;return ee.default.createElement(j,{label:n("site_type_select.label"),options:[{availability:b?M.Disabled({reason:n("site_type_select.no_sites")}):M.Enabled(),title:n("site_type_select.pick_existing_site"),value:"select-existing-site"},{title:n("site_type_select.create_new_dev_site"),value:"create-dev-site",availability:d?M.Disabled({reason:n("site_type_select.create_new_dev_site.disabled",{limit:v})}):M.Enabled()}],onSubmit:c})}})};t();var E=l(S(),1),Ne=l(h(),1);t();var Y=l(S(),1);t();t();var Fe=l(S(),1);t();t();var Ae=x.record(x.object({appDefinitionId:x.string().optional(),permissions:x.object({revoked:x.boolean()}).optional()}));var R=class{constructor(i){this.httpClient=i}isAppInstalled=async({metaSiteId:i,appId:o})=>{try{let{data:r}=await this.httpClient.request({url:`/_api/msm/v1/meta-site/editor-client-spec-map/${i}`}),n=Ae.parse(r);return Object.values(n).some(m=>m.appDefinitionId===o&&!m.permissions?.revoked)}catch(r){throw new g({code:C.FailedToCheckIfAppInstalled(),cause:r})}}};function q(){let e=W({type:"general"});return(0,Fe.useMemo)(()=>new R(e),[e])}var N=l(h(),1);t();var D=l(S(),1);var De=({siteId:e,appId:i})=>{let{t:o}=f(),r=F();return de(async(n,s)=>{s.return&&(r.cliAction({question:o("install_app_on_site.warning.instructions"),key:"enter",action:"install_app_on_site"}),await ye(`https://manage.wix.com/installer/install?metaSiteId=${e}&appId=${i}&platform=cli&version=latest`))}),D.default.createElement(D.default.Fragment,null,D.default.createElement(I,{i18nKey:"install_app_on_site.warning"}),D.default.createElement(I,{i18nKey:"install_app_on_site.warning.instructions",components:[D.default.createElement(fe,{value:"enter"})]}))};var te=(0,N.variant)({Success:{},Canceled:{}});function Ue(e){return e&&typeof e=="object"&&"name"in e&&e.name==="AbortError"}var G=({appId:e,site:i,onSubmit:o,onError:r})=>{let{isAppInstalled:n}=q(),{status:s}=O(async({signal:m})=>{let{appInstallationPollInterval:_}=B();try{return await ce(()=>n({metaSiteId:i.id,appId:e}),{interval:_??2e3,timeout:{milliseconds:60*1e3*2,signal:m}}),te.Success()}catch(c){if(c instanceof me)throw new g({code:C.SiteSelectorTimedout(),cause:c});if(Ue(c))return te.Canceled();throw c}},[],{onError:r,onSuccess:m=>{(0,N.isType)(m,te.Success)&&o()}});return(0,N.match)(s,{Error:()=>null,Loading:()=>Y.default.createElement(De,{siteId:i.id,appId:e}),Success:()=>Y.default.createElement(L,{type:"success"},Y.default.createElement(I,{i18nKey:"install_app_on_site.finished_successfully"}))})};var ke=({status:e,appId:i,onSubmit:o,onError:r})=>{let{t:n}=f();return(0,Ne.match)(e,{NotRequested:()=>null,Error:()=>null,Loading:()=>E.default.createElement(w,{text:n("create_dev_site.loading")}),Success:({result:s})=>E.default.createElement(E.default.Fragment,null,E.default.createElement(I,{i18nKey:"create_dev_site.success",components:[E.default.createElement(ue,{skin:"success",bold:!0})],values:{name:s.displayName}}),E.default.createElement(G,{appId:i,site:s,onSubmit:()=>o(s),onError:r}))})};var Me={"general.loading":"Loading...","site_type_select.label":"Select Development Site","site_type_select.create_new_dev_site":"Create a new Development Site","site_type_select.create_new_dev_site.disabled":"You have reached the maximum number of {limit} Development Sites","site_type_select.pick_existing_site":"Pick an existing site","site_type_select.no_sites":"No sites found","create_dev_site.loading":"Creating your new Development Site...","create_dev_site.success":"Development Site <0>{name}</0> created successfully! \u{1F680}","site_list_select.label":"Select Site","install_app_on_site.warning":"Your new application needs to be installed on the selected Development Site","install_app_on_site.warning.instructions":"Press <0/> to install the application in your browser","install_app_on_site.finished_successfully":"App installed on Development Site."};t();var P=l(S(),1);var qe=l(h(),1);t();var $=l(S(),1);var Le=({onSubmit:e,sites:i})=>{let{t:o}=f(),r=F(),n=(0,$.useCallback)(s=>{r.cliFlowStepAnswered({question:o("site_list_select.label"),answer:s.title}),e(s.value)},[r,e,o]);return $.default.createElement(j,{label:o("site_list_select.label"),options:i.map(s=>({key:s.id,title:s.displayName,description:s.viewUrl,value:s})),onSubmit:n})};var Be=({sites:e,appId:i,onSubmit:o,onError:r})=>{let{t:n}=f(),{isAppInstalled:s}=q(),[m,_]=(0,P.useState)(null),c=J((v,d)=>s({metaSiteId:d.id,appId:i}),{onError:r});async function u(v){await c.execute(v)?o(v):_(v)}return P.default.createElement(P.default.Fragment,null,P.default.createElement(Le,{onSubmit:u,sites:e}),(0,qe.isType)(c.status,"Loading")&&P.default.createElement(w,{text:n("general.loading")}),m&&P.default.createElement(G,{appId:i,site:m,onSubmit:()=>o(m),onError:r}))};var re=({appId:e,biLogger:i,onSubmit:o,onError:r})=>{let[n,s]=(0,y.useState)(null),{createDevSite:m}=z(),_=U(),{status:c}=O(()=>_.querySites({query:{cursorPaging:{limit:100}}}),[],{onError:r}),u=J(()=>m(),{onError:r});function v(d){s(d),d==="create-dev-site"&&u.execute()}return y.default.createElement(Se,{value:i},y.default.createElement(ve,{messages:Me},(0,je.match)(c,{Error:()=>null,Loading:()=>y.default.createElement(w,{text:y.default.createElement(I,{i18nKey:"general.loading"})}),Success:({result:d})=>y.default.createElement(y.default.Fragment,null,y.default.createElement(Ee,{onSubmit:v,onError:r,sites:d}),n==="create-dev-site"&&y.default.createElement(ke,{status:u.status,appId:e,onSubmit:o,onError:r}),n==="select-existing-site"&&y.default.createElement(Be,{sites:d,appId:e,onSubmit:o,onError:r}))})))};var ie=({state:e,onSubmit:i})=>{let o=H(),{t:r}=f(),{model:n}=A(),s=K();return k.default.createElement(k.default.Fragment,null,(0,V.match)(e,{NotConfigured:(0,V.constant)(k.default.createElement(L,{type:"insight"},r("general.no_site_id_configured"))),NotFound:({id:m})=>k.default.createElement(L,{type:"error"},r("general.site_id_not_found",{id:m}))}),k.default.createElement(re,{appId:n.config.appId,biLogger:s,onSubmit:i,onError:o}))};var Ye=({children:e,siteId:i})=>{let o=H(),{model:{projectFolder:r}}=A(),n=_e(),s=U(),{t:m}=f(),{status:_,merge:c}=O(async()=>Oe({projectFolder:r,siteListClient:s,siteId:i,writeDebugLog:n}),[]),u=(0,T.useCallback)(async d=>{try{await xe(r,{siteId:d.id}),c({result:Ie.Resolved({site:d})})}catch{throw new g({code:C.FailedToSaveDevelopmentSite({path:ge})})}},[c,r]),v=(0,T.useCallback)(d=>u(d).catch(o),[o,u]);return(0,oe.match)(_,{Error:()=>null,Loading:()=>T.default.createElement(w,{text:m("dev_command.site_provider.loading")}),Success:({result:d})=>(0,oe.match)(d,{NotConfigured:b=>T.default.createElement(ie,{state:b,onSubmit:v}),NotFound:b=>T.default.createElement(ie,{state:b,onSubmit:v}),Resolved:({site:b})=>T.default.createElement(he.Provider,{value:{site:b,setSite:u}},typeof e=="function"?e(b):e)})})};t();var Ke=l(S(),1);t();t();var Ge={},$e={};function Ve(e){var i={"cronulla-jobs._base_domain_":[{srcPath:"/serverless/site-override",destPath:""}],"bo._base_domain_":[{srcPath:"/_serverless/site-override",destPath:""}],"wixbo.ai":[{srcPath:"/_serverless/site-override",destPath:""}],"manage._base_domain_":[{srcPath:"/_serverless/site-override",destPath:""}]};return ae(Object.assign(e,{domainToMappings:i}))}function He(e){var i=Z(Ge,{}),o=i.toJSON,r=i.fromJSON,n=Z($e,{}).fromJSON;function s(m){var _=m.host,c=o(e),u={entityFqdn:"wix.cli.site_override_service.v1.site_override",method:"POST",methodFqn:"wix.cli.v1.SiteOverrideService.CreateOverride",url:Ve({protoPath:"/v1/site-overrides",data:c,host:_}),data:c,transformResponse:n};return u}return s.fromReq=r,s.__isAmbassador=!0,s}t();var Je=x.object({siteOverride:x.object({id:x.string()})});var Q=class{constructor(i){this.httpClient=i;let{minRetryTimeout:o}=B();this.retryOptions={retries:3,minTimeout:o,maxTimeout:3*1e3}}retryOptions;createOverride=async({appId:i,siteId:o,overrides:r,siteOverrideId:n})=>{try{let{data:s}=await pe(()=>this.httpClient.request(He({siteOverride:{id:n,appId:i,siteId:o,overrides:r}})),this.retryOptions);return Je.parse(s).siteOverride}catch(s){throw le(s)&&s.response?.status===403?s.response.data?.details?.applicationError?.code==="PERMISSION_DENIED_FOR_SITE"?new g({code:C.SitePermissionDenied({siteId:o}),cause:s}):new g({code:C.AppPermissionDenied({appId:i}),cause:s}):new g({code:C.FailedToCreateSiteOverride(),cause:s})}}};function Qe(){let e=W({type:"backoffice"});return(0,Ke.useMemo)(()=>new Q(e),[e])}t();t();var We=l(h(),1);t();var X;(function(e){e.UNKNOWN_TYPE="UNKNOWN_TYPE",e.EMBEDDED_SCRIPT="EMBEDDED_SCRIPT"})(X||(X={}));function mi(e){let i=e.components.filter((0,We.isType)(Ce.EmbeddedScript));return i.length===0?null:i.reduce((o,r)=>{let n=r.paramsOverride||{};return{...o,[r.id]:{type:X.EMBEDDED_SCRIPT,componentId:r.id,embeddedScriptOptions:{parameters:n}}}},{})}t();t();var se=l(S(),1),ne=l(h(),1);function gi(){let{model:e}=A(),i=(0,se.useCallback)(r=>e.components.some(n=>n.platforms.some((0,ne.isType)(r.type))),[e.components]),o=(0,se.useCallback)(r=>e.components.every(n=>n.platforms.some((0,ne.isType)(r.type))||n.platforms.length===0),[e.components]);return{isPlatformExists:i,hasSinglePlatform:o}}export{re as a,Ye as b,Qe as c,mi as d,gi as e};
|
|
4
|
+
//# sourceMappingURL=chunk-35SQ77PW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/site-id/SiteIdProvider.tsx","../src/site-id/ResolveSiteId.tsx","../../cli-site-selector/src/index.ts","../../cli-site-selector/src/SiteSelector.tsx","../../cli-site-selector/src/SiteTypeSelect.tsx","../../cli-site-selector/src/bi.ts","../../cli-site-selector/src/CreateDevSite.tsx","../../cli-site-selector/src/WaitForAppToBeInstalled.tsx","../../metasite-manager-client/src/index.ts","../../metasite-manager-client/src/useMetasiteManagerClient.ts","../../metasite-manager-client/src/metasite-manager-client.ts","../../metasite-manager-client/src/schemas.ts","../../cli-site-selector/src/OpenBrowser.tsx","../../cli-site-selector/src/messages.json","../../cli-site-selector/src/SelectExistingSite.tsx","../../cli-site-selector/src/SiteListSelect.tsx","../../site-override-client/src/useSiteOverrideClient.ts","../../site-override-client/src/client.ts","../../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/http.impl.ts","../../site-override-client/src/schemas.ts","../../site-override-client/src/index.ts","../src/site-override/createSiteOverrides.ts","../../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/types.impl.ts","../src/site-id/index.ts","../src/components/Platform/usePlatform.tsx"],"sourcesContent":["import React, { type FC, type ReactNode, useCallback } from 'react';\nimport { match } from 'variant';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { APP_CONFIG_PATH } from '@wix/cli-app-definitions';\nimport { useAsync, useExit, Spinner } from '@wix/cli-ui-kit';\nimport { type Site, useSiteListClient } from '@wix/site-list-client';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { saveAppConfig } from '../files/app.config.js';\nimport { useProjectModel } from '../model.js';\nimport { ResolveSiteId } from './ResolveSiteId.js';\nimport { SiteIdContext } from './context.js';\nimport { SiteIdState } from './site-id-state.js';\nimport { resolveConfiguredSite } from './resolve-configured-site.js';\n\nexport const SiteIdProvider: FC<{\n siteId?: string;\n children: ReactNode | ((site: Site) => ReactNode);\n}> = ({ children, siteId }) => {\n const exit = useExit();\n const {\n model: { projectFolder },\n } = useProjectModel();\n const writeDebugLog = useDebugLog();\n const siteListClient = useSiteListClient();\n const { t } = useTranslation();\n\n const { status, merge } = useAsync(\n async () =>\n resolveConfiguredSite({\n projectFolder,\n siteListClient,\n siteId,\n writeDebugLog,\n }),\n []\n );\n\n const setSite = useCallback(\n async (site: Site) => {\n try {\n await saveAppConfig(projectFolder, { siteId: site.id });\n merge({ result: SiteIdState.Resolved({ site }) });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToSaveDevelopmentSite({\n path: APP_CONFIG_PATH,\n }),\n });\n }\n },\n [merge, projectFolder]\n );\n\n const handleResolveSiteId = useCallback(\n (site: Site) => setSite(site).catch(exit),\n [exit, setSite]\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner text={t('dev_command.site_provider.loading')} />,\n Success: ({ result: state }) => {\n return match(state, {\n NotConfigured: (variant) => (\n <ResolveSiteId state={variant} onSubmit={handleResolveSiteId} />\n ),\n NotFound: (variant) => (\n <ResolveSiteId state={variant} onSubmit={handleResolveSiteId} />\n ),\n Resolved: ({ site }) => (\n <SiteIdContext.Provider\n value={{\n site,\n setSite,\n }}\n >\n {typeof children === 'function' ? children(site) : children}\n </SiteIdContext.Provider>\n ),\n });\n },\n });\n};\n","import React, { type FC } from 'react';\nimport { match, constant } from 'variant';\nimport type { Site } from '@wix/site-list-client';\nimport { Alert, useExit } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { SiteSelector } from '@wix/cli-site-selector';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { useProjectModel } from '../model.js';\nimport type { SiteIdState } from './site-id-state.js';\n\ninterface Props {\n state: SiteIdState<'NotConfigured' | 'NotFound'>;\n onSubmit: (site: Site) => void;\n}\n\nexport const ResolveSiteId: FC<Props> = ({ state, onSubmit }) => {\n const exit = useExit();\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const biLogger = useBiLogger();\n\n return (\n <>\n {match(state, {\n NotConfigured: constant(\n <Alert type=\"insight\">{t('general.no_site_id_configured')}</Alert>\n ),\n NotFound: ({ id }) => (\n <Alert type=\"error\">{t('general.site_id_not_found', { id })}</Alert>\n ),\n })}\n <SiteSelector\n appId={model.config.appId}\n biLogger={biLogger}\n onSubmit={onSubmit}\n onError={exit}\n />\n </>\n );\n};\n","export { SiteSelector } from './SiteSelector.js';\n","import React, { type FC, useState } from 'react';\nimport { match } from 'variant';\nimport { I18nProvider, Trans } from '@wix/cli-i18n';\nimport type { Site } from '@wix/site-list-client';\nimport { Spinner, useAsync, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { useSiteListClient } from '@wix/site-list-client';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport { BiProvider } from '@wix/cli-telemetry-react';\nimport { SiteTypeSelect, type SiteType } from './SiteTypeSelect.js';\nimport { CreateDevSite } from './CreateDevSite.js';\nimport messages from './messages.json';\nimport { SelectExistingSite } from './SelectExistingSite.js';\n\ninterface Props {\n appId: string;\n biLogger: BiLogger;\n onSubmit: (site: Site) => void;\n onError: (error: unknown) => void;\n}\n\nexport const SiteSelector: FC<Props> = ({\n appId,\n biLogger,\n onSubmit,\n onError,\n}) => {\n const [siteType, setSiteType] = useState<SiteType | null>(null);\n const { createDevSite } = useDevCenterClient();\n const siteListClient = useSiteListClient();\n\n const { status } = useAsync(\n () =>\n siteListClient.querySites({\n query: {\n cursorPaging: {\n limit: 100,\n },\n },\n }),\n [],\n {\n onError,\n }\n );\n\n const createSite = useAsyncCallback(() => createDevSite(), {\n onError,\n });\n\n function handleSelectSiteType(siteType: SiteType) {\n setSiteType(siteType);\n if (siteType === 'create-dev-site') {\n createSite.execute();\n }\n }\n\n return (\n <BiProvider value={biLogger}>\n <I18nProvider messages={messages}>\n {match(status, {\n Error: () => null,\n Loading: () => <Spinner text={<Trans i18nKey=\"general.loading\" />} />,\n Success: ({ result: sites }) => (\n <>\n <SiteTypeSelect\n onSubmit={handleSelectSiteType}\n onError={onError}\n sites={sites}\n />\n {siteType === 'create-dev-site' && (\n <CreateDevSite\n status={createSite.status}\n appId={appId}\n onSubmit={onSubmit}\n onError={onError}\n />\n )}\n {siteType === 'select-existing-site' && (\n <SelectExistingSite\n sites={sites}\n appId={appId}\n onSubmit={onSubmit}\n onError={onError}\n />\n )}\n </>\n ),\n })}\n </I18nProvider>\n </BiProvider>\n );\n};\n","import React, { type FC } from 'react';\nimport { match } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport type { SelectOption } from '@wix/cli-ui-kit';\nimport {\n Spinner,\n SelectInput,\n useAsync,\n SelectOptionAvailability,\n} from '@wix/cli-ui-kit';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport type { Site } from '@wix/site-list-client';\nimport { useSiteSelectorBi } from './bi.js';\n\nexport type SiteType = 'create-dev-site' | 'select-existing-site';\ninterface Props {\n onSubmit: (siteType: SiteType) => void;\n onError: (error: unknown) => void;\n sites: Site[];\n}\n\nexport const SiteTypeSelect: FC<Props> = ({ onSubmit, onError, sites }) => {\n const bi = useSiteSelectorBi();\n const { t } = useTranslation();\n const { getDevSitesCount, getDevSitesLimit } = useDevCenterClient();\n const { status } = useAsync(\n () => Promise.all([getDevSitesCount(), getDevSitesLimit()]),\n [],\n { onError }\n );\n\n const handleSubmit = (option: SelectOption<SiteType>) => {\n bi.cliFlowStepAnswered({\n question: t('site_type_select.label'),\n answer: option.title,\n });\n onSubmit(option.value);\n };\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner text={t('general.loading')} />,\n Success: ({ result: [devSitesCount, devSitesLimit] }) => {\n const isDevSitesLimitReached = devSitesCount >= devSitesLimit;\n const userHasNoSites = sites.length === 0;\n\n return (\n <SelectInput<SiteType>\n label={t('site_type_select.label')}\n options={[\n {\n availability: userHasNoSites\n ? SelectOptionAvailability.Disabled({\n reason: t('site_type_select.no_sites'),\n })\n : SelectOptionAvailability.Enabled(),\n title: t('site_type_select.pick_existing_site'),\n value: 'select-existing-site',\n },\n {\n title: t('site_type_select.create_new_dev_site'),\n value: 'create-dev-site',\n availability: isDevSitesLimitReached\n ? SelectOptionAvailability.Disabled({\n reason: t('site_type_select.create_new_dev_site.disabled', {\n limit: devSitesLimit,\n }),\n })\n : SelectOptionAvailability.Enabled(),\n },\n ]}\n onSubmit={handleSubmit}\n />\n );\n },\n });\n};\n","import { useMemo } from 'react';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport {\n wixCliAction,\n wixCliAppFlowStepsAnswers,\n} from '@wix/bi-logger-dev-tools-data/v2';\n\nexport function siteSelectorBiEvents(biLogger: BiLogger) {\n return {\n cliAction: ({\n question,\n action,\n key,\n additionalInfo,\n }: {\n question: string;\n action: string;\n key: string;\n additionalInfo?: Record<string, unknown>;\n }) =>\n biLogger.report(\n wixCliAction({\n question,\n action,\n key,\n additionalInfo: JSON.stringify(additionalInfo),\n })\n ),\n cliFlowStepAnswered: ({\n question,\n answer,\n additionalInfo,\n }: {\n question: string;\n answer: string;\n additionalInfo?: Record<string, unknown>;\n }) =>\n biLogger.report(\n wixCliAppFlowStepsAnswers({\n question,\n answer,\n additionalInfo: JSON.stringify(additionalInfo),\n })\n ),\n };\n}\n\nexport function useSiteSelectorBi() {\n const biLogger = useBiLogger();\n return useMemo(() => siteSelectorBiEvents(biLogger), [biLogger]);\n}\n","import React, { type FC } from 'react';\nimport { match } from 'variant';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport type { AsyncCallbackStatus } from '@wix/cli-ui-kit';\nimport { Text, Spinner } from '@wix/cli-ui-kit';\nimport type { Site } from '@wix/site-list-client';\nimport { WaitForAppToBeInstalled } from './WaitForAppToBeInstalled.js';\n\ninterface Props {\n status: AsyncCallbackStatus<Site>;\n appId: string;\n onSubmit: (site: Site) => void;\n onError: (error: unknown) => void;\n}\n\nexport const CreateDevSite: FC<Props> = ({\n status,\n appId,\n onSubmit,\n onError,\n}) => {\n const { t } = useTranslation();\n\n return match(status, {\n NotRequested: () => null,\n Error: () => null,\n Loading: () => <Spinner text={t('create_dev_site.loading')} />,\n Success: ({ result }) => (\n <>\n <Trans\n i18nKey=\"create_dev_site.success\"\n components={[<Text skin=\"success\" bold />]}\n values={{ name: result.displayName }}\n />\n <WaitForAppToBeInstalled\n appId={appId}\n site={result}\n onSubmit={() => onSubmit(result)}\n onError={onError}\n />\n </>\n ),\n });\n};\n","import pWaitFor, { TimeoutError } from 'p-wait-for';\nimport React, { type FC } from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { Alert, useAsync } from '@wix/cli-ui-kit';\nimport { useMetasiteManagerClient } from '@wix/metasite-manager-client';\nimport { isType, match, variant } from 'variant';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { Site } from '@wix/site-list-client';\nimport { OpenBrowser } from './OpenBrowser.js';\n\ninterface Props {\n site: Site;\n appId: string;\n onSubmit: () => void;\n onError: (error: unknown) => void;\n}\n\nexport const AppInstallData = variant({\n Success: {},\n Canceled: {},\n});\n\nfunction isAbortError(error: unknown) {\n return (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n error.name === 'AbortError'\n );\n}\n\nexport const WaitForAppToBeInstalled: FC<Props> = ({\n appId,\n site,\n onSubmit,\n onError,\n}) => {\n const { isAppInstalled } = useMetasiteManagerClient();\n\n const { status } = useAsync(\n async ({ signal }) => {\n const { appInstallationPollInterval } = getTestOverrides();\n\n try {\n await pWaitFor(() => isAppInstalled({ metaSiteId: site.id, appId }), {\n interval: appInstallationPollInterval ?? 2000,\n timeout: {\n milliseconds: 60 * 1000 * 2,\n signal,\n },\n });\n\n return AppInstallData.Success();\n } catch (error) {\n if (error instanceof TimeoutError) {\n throw new CliError({\n code: CliErrorCode.SiteSelectorTimedout(),\n cause: error,\n });\n }\n\n if (isAbortError(error)) {\n return AppInstallData.Canceled();\n }\n\n throw error;\n }\n },\n [],\n {\n onError,\n onSuccess: (result) => {\n if (isType(result, AppInstallData.Success)) {\n onSubmit();\n }\n },\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <OpenBrowser siteId={site.id} appId={appId} />,\n Success: () => (\n <Alert type=\"success\">\n <Trans i18nKey=\"install_app_on_site.finished_successfully\" />\n </Alert>\n ),\n });\n};\n","export { useMetasiteManagerClient } from './useMetasiteManagerClient.js';\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { MetasiteManagerClient } from './metasite-manager-client.js';\n\nexport function useMetasiteManagerClient(): MetasiteManagerClient {\n const httpClient = useHttpClient({ type: 'general' });\n return useMemo(() => new MetasiteManagerClient(httpClient), [httpClient]);\n}\n","import { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { HttpClient } from '@wix/cli-http-client';\nimport { clientSpecMapSchema } from './schemas.js';\n\nexport class MetasiteManagerClient {\n constructor(private readonly httpClient: HttpClient) {}\n\n public isAppInstalled = async ({\n metaSiteId,\n appId,\n }: {\n metaSiteId: string;\n appId: string;\n }) => {\n try {\n const { data } = await this.httpClient.request({\n url: `/_api/msm/v1/meta-site/editor-client-spec-map/${metaSiteId}`,\n });\n\n const clientSpecMap = clientSpecMapSchema.parse(data);\n\n const isInstalled = Object.values(clientSpecMap).some(\n (spec) => spec.appDefinitionId === appId && !spec.permissions?.revoked\n );\n\n return isInstalled;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToCheckIfAppInstalled(),\n cause: e,\n });\n }\n };\n}\n","import { z } from 'zod';\n\nexport const clientSpecMapSchema = z.record(\n z.object({\n appDefinitionId: z.string().optional(),\n permissions: z.object({ revoked: z.boolean() }).optional(),\n })\n);\n\nexport type ClientSpecMap = z.TypeOf<typeof clientSpecMapSchema>;\n","import React, { type FC } from 'react';\nimport { Key, useInput } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { useSiteSelectorBi } from './bi.js';\n\ninterface Props {\n siteId: string;\n appId: string;\n}\n\nexport const OpenBrowser: FC<Props> = ({ siteId, appId }) => {\n const { t } = useTranslation();\n const bi = useSiteSelectorBi();\n\n useInput(async (input, key) => {\n if (key.return) {\n bi.cliAction({\n question: t('install_app_on_site.warning.instructions'),\n key: 'enter',\n action: 'install_app_on_site',\n });\n await openBrowser(\n `https://manage.wix.com/installer/install?metaSiteId=${siteId}&appId=${appId}&platform=cli&version=latest`\n );\n }\n });\n\n return (\n <>\n <Trans i18nKey=\"install_app_on_site.warning\" />\n <Trans\n i18nKey=\"install_app_on_site.warning.instructions\"\n components={[<Key value=\"enter\" />]}\n />\n </>\n );\n};\n","{\n \"general.loading\": \"Loading...\",\n \"site_type_select.label\": \"Select Development Site\",\n \"site_type_select.create_new_dev_site\": \"Create a new Development Site\",\n \"site_type_select.create_new_dev_site.disabled\": \"You have reached the maximum number of {limit} Development Sites\",\n \"site_type_select.pick_existing_site\": \"Pick an existing site\",\n \"site_type_select.no_sites\": \"No sites found\",\n \"create_dev_site.loading\": \"Creating your new Development Site...\",\n \"create_dev_site.success\": \"Development Site <0>{name}</0> created successfully! 🚀\",\n \"site_list_select.label\": \"Select Site\",\n \"install_app_on_site.warning\": \"Your new application needs to be installed on the selected Development Site\",\n \"install_app_on_site.warning.instructions\": \"Press <0/> to install the application in your browser\",\n \"install_app_on_site.finished_successfully\": \"App installed on Development Site.\"\n}\n","import React, { useState } from 'react';\nimport { Spinner, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { useMetasiteManagerClient } from '@wix/metasite-manager-client';\nimport type { Site } from '@wix/site-list-client';\nimport { isType } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { WaitForAppToBeInstalled } from './WaitForAppToBeInstalled.js';\nimport { SiteListSelect } from './SiteListSelect.js';\n\ninterface Props {\n sites: Site[];\n appId: string;\n onSubmit: (site: Site) => void;\n onError: (error: unknown) => void;\n}\n\nexport const SelectExistingSite = ({\n sites,\n appId,\n onSubmit,\n onError,\n}: Props) => {\n const { t } = useTranslation();\n const { isAppInstalled } = useMetasiteManagerClient();\n const [siteToInstallAppOn, setSiteToInstallAppOn] = useState<Site | null>(\n null\n );\n const checkAppInstalled = useAsyncCallback(\n (_, site: Site) => isAppInstalled({ metaSiteId: site.id, appId }),\n {\n onError,\n }\n );\n\n async function handleSelectSite(site: Site) {\n const isInstalled = await checkAppInstalled.execute(site);\n if (isInstalled) {\n onSubmit(site);\n } else {\n setSiteToInstallAppOn(site);\n }\n }\n\n return (\n <>\n <SiteListSelect onSubmit={handleSelectSite} sites={sites} />\n {isType(checkAppInstalled.status, 'Loading') && (\n <Spinner text={t('general.loading')} />\n )}\n {siteToInstallAppOn && (\n <WaitForAppToBeInstalled\n appId={appId}\n site={siteToInstallAppOn}\n onSubmit={() => onSubmit(siteToInstallAppOn)}\n onError={onError}\n />\n )}\n </>\n );\n};\n","import React, { useCallback, type FC } from 'react';\nimport { useTranslation } from '@wix/cli-i18n';\nimport type { SelectOption } from '@wix/cli-ui-kit';\nimport { SelectInput } from '@wix/cli-ui-kit';\nimport { type Site } from '@wix/site-list-client';\nimport { useSiteSelectorBi } from './bi.js';\n\ninterface Props {\n onSubmit: (site: Site) => void;\n sites: Site[];\n}\n\nexport const SiteListSelect: FC<Props> = ({ onSubmit, sites }) => {\n const { t } = useTranslation();\n const bi = useSiteSelectorBi();\n\n const handleSubmit = useCallback(\n (option: SelectOption<Site>) => {\n bi.cliFlowStepAnswered({\n question: t('site_list_select.label'),\n answer: option.title,\n });\n onSubmit(option.value);\n },\n [bi, onSubmit, t]\n );\n\n return (\n <SelectInput<Site>\n label={t('site_list_select.label')}\n options={sites.map((site) => ({\n key: site.id,\n title: site.displayName,\n description: site.viewUrl,\n value: site,\n }))}\n onSubmit={handleSubmit}\n />\n );\n};\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { SiteOverrideClient } from './client.js';\n\nexport function useSiteOverrideClient() {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new SiteOverrideClient(httpClient), [httpClient]);\n}\n","import type { HttpClient } from '@wix/cli-http-client';\nimport type { Options } from 'p-retry';\nimport pRetry from 'p-retry';\nimport { createOverride } from '@wix/ambassador-cli-site-override-service-v1-site-override/http';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { ComponentOverride } from '@wix/ambassador-cli-site-override-service-v1-site-override/types';\nimport { createOverrideSchema } from './schemas.js';\n\nexport type ComponentsForSiteOverride = Record<string, ComponentOverride>;\n\nexport class SiteOverrideClient {\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 public createOverride = async ({\n appId,\n siteId,\n overrides,\n siteOverrideId,\n }: {\n appId: string;\n siteId: string;\n overrides: ComponentsForSiteOverride;\n siteOverrideId?: string;\n }) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n createOverride({\n siteOverride: {\n id: siteOverrideId,\n appId,\n siteId,\n overrides,\n },\n })\n ),\n this.retryOptions\n );\n\n return createOverrideSchema.parse(data).siteOverride;\n } catch (error) {\n if (isHttpError(error) && error.response?.status === 403) {\n if (\n error.response.data?.details?.applicationError?.code ===\n 'PERMISSION_DENIED_FOR_SITE'\n ) {\n throw new CliError({\n code: CliErrorCode.SitePermissionDenied({ siteId }),\n cause: error,\n });\n }\n\n throw new CliError({\n code: CliErrorCode.AppPermissionDenied({ appId }),\n cause: error,\n });\n }\n\n throw new CliError({\n code: CliErrorCode.FailedToCreateSiteOverride(),\n cause: error,\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const createOverrideSchema = z.object({\n siteOverride: z.object({\n id: z.string(),\n }),\n});\n","export { SiteOverrideClient } from './client.js';\nexport type { ComponentsForSiteOverride } from './client.js';\nexport { useSiteOverrideClient } from './useSiteOverrideClient.js';\n","import { isType } from 'variant';\nimport {\n Type,\n type ComponentOverride,\n} from '@wix/ambassador-cli-site-override-service-v1-site-override/types';\nimport type { ProjectModel } from '../model.js';\nimport { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\n\nexport function createSiteOverrides(model: ProjectModel) {\n const componentsToOverride = model.components.filter(\n isType(DevCenterComponent.EmbeddedScript)\n );\n\n if (componentsToOverride.length === 0) {\n return null;\n }\n\n return componentsToOverride.reduce<Record<string, ComponentOverride>>(\n (acc, component) => {\n const paramsOverride = component.paramsOverride || {};\n\n return {\n ...acc,\n [component.id]: {\n type: Type.EMBEDDED_SCRIPT,\n componentId: component.id,\n embeddedScriptOptions: { parameters: paramsOverride },\n },\n };\n },\n {}\n );\n}\n",null,"export { SiteIdProvider } from './SiteIdProvider.js';\nexport { useSiteId } from './useSiteId.js';\n","import { useCallback } from 'react';\nimport { isType } from 'variant';\nimport type { PlatformType } from '@wix/cli-app-definitions';\nimport { useProjectModel } from '../../model.js';\n\nexport function usePlatform() {\n const { model } = useProjectModel();\n\n const isPlatformExists = useCallback(\n (platformType: PlatformType) =>\n model.components.some((component) =>\n component.platforms.some(isType(platformType.type))\n ),\n [model.components]\n );\n\n const hasSinglePlatform = useCallback(\n (platformType: PlatformType) =>\n model.components.every(\n (component) =>\n component.platforms.some(isType(platformType.type)) ||\n component.platforms.length === 0\n ),\n [model.components]\n );\n\n return {\n isPlatformExists,\n hasSinglePlatform,\n };\n}\n"],"mappings":"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","names":["init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","init_esm_shims","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","siteSelectorBiEvents","biLogger","question","action","key","additionalInfo","wixCliAction","answer","wixCliAppFlowStepsAnswers","useSiteSelectorBi","useBiLogger","SiteTypeSelect","onSubmit","onError","sites","bi","useSiteSelectorBi","t","useTranslation","getDevSitesCount","getDevSitesLimit","useDevCenterClient","status","useAsync","handleSubmit","option","React","Spinner","devSitesCount","devSitesLimit","isDevSitesLimitReached","userHasNoSites","SelectInput","SelectOptionAvailability","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","init_esm_shims","init_esm_shims","import_react","init_esm_shims","init_esm_shims","clientSpecMapSchema","z","MetasiteManagerClient","httpClient","metaSiteId","appId","data","clientSpecMap","clientSpecMapSchema","spec","e","CliError","CliErrorCode","useMetasiteManagerClient","httpClient","useHttpClient","MetasiteManagerClient","import_variant","init_esm_shims","import_react","OpenBrowser","siteId","appId","t","useTranslation","bi","useSiteSelectorBi","use_input_default","input","key","openBrowser","React","Trans","Key","AppInstallData","isAbortError","error","WaitForAppToBeInstalled","appId","site","onSubmit","onError","isAppInstalled","useMetasiteManagerClient","status","useAsync","signal","appInstallationPollInterval","getTestOverrides","pWaitFor","TimeoutError","CliError","CliErrorCode","result","React","OpenBrowser","Alert","Trans","CreateDevSite","status","appId","onSubmit","onError","t","useTranslation","React","Spinner","result","Trans","Text","WaitForAppToBeInstalled","messages_default","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","SiteListSelect","onSubmit","sites","t","useTranslation","bi","useSiteSelectorBi","handleSubmit","option","React","SelectInput","site","SelectExistingSite","sites","appId","onSubmit","onError","t","useTranslation","isAppInstalled","useMetasiteManagerClient","siteToInstallAppOn","setSiteToInstallAppOn","checkAppInstalled","useAsyncCallback","_","site","handleSelectSite","React","SiteListSelect","Spinner","WaitForAppToBeInstalled","SiteSelector","appId","biLogger","onSubmit","onError","siteType","setSiteType","createDevSite","useDevCenterClient","siteListClient","useSiteListClient","status","useAsync","createSite","useAsyncCallback","handleSelectSiteType","React","BiProvider","I18nProvider","messages_default","Spinner","Trans","sites","SiteTypeSelect","CreateDevSite","SelectExistingSite","ResolveSiteId","state","onSubmit","exit","useExit","t","useTranslation","model","useProjectModel","biLogger","useBiLogger","React","Alert","id","SiteSelector","SiteIdProvider","children","siteId","exit","useExit","projectFolder","useProjectModel","writeDebugLog","useDebugLog","siteListClient","useSiteListClient","t","useTranslation","status","merge","useAsync","resolveConfiguredSite","setSite","site","saveAppConfig","SiteIdState","CliError","CliErrorCode","APP_CONFIG_PATH","handleResolveSiteId","React","Spinner","state","variant","ResolveSiteId","SiteIdContext","init_esm_shims","import_react","init_esm_shims","init_esm_shims","_createOverrideRequest","_createOverrideResponse","resolveWixCliV1SiteOverrideServiceUrl","opts","domainToMappings","resolveUrl","createOverride","payload","_a","serializer","_createOverrideRequest","toReq","fromReq","fromRes","_createOverrideResponse","__createOverride","host","serializedData","metadata","resolveWixCliV1SiteOverrideServiceUrl","init_esm_shims","createOverrideSchema","z","SiteOverrideClient","httpClient","minRetryTimeout","getTestOverrides","appId","siteId","overrides","siteOverrideId","data","pRetry","createOverride","createOverrideSchema","error","isHttpError","CliError","CliErrorCode","useSiteOverrideClient","httpClient","useHttpClient","SiteOverrideClient","init_esm_shims","init_esm_shims","import_variant","init_esm_shims","Type","createSiteOverrides","model","componentsToOverride","DevCenterComponent","acc","component","paramsOverride","Type","init_esm_shims","init_esm_shims","import_react","import_variant","usePlatform","model","useProjectModel","isPlatformExists","platformType","component","hasSinglePlatform"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as _createRequire } from 'node:module';
|
|
2
2
|
const require = _createRequire(import.meta.url);
|
|
3
|
-
import{db as i,ma as d}from"./chunk-
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{db as i,ma as d}from"./chunk-F4YTZ6XA.js";import{a as b,b as D}from"./chunk-MB65UVFQ.js";import{e as r,h as p}from"./chunk-V4TR6DCM.js";p();var n=r(b(),1),u=r(D(),1);var E=(0,u.typeCatalog)(d);function C(){let{model:t}=i(),e=(0,n.useMemo)(()=>{let o=t.components.reduce((s,a)=>(s[a.type].push(a),s),{DashboardPage:[],DashboardSidebarCategory:[],EmbeddedScript:[],CustomElement:[],DashboardPlugin:[],DashboardMenuPlugin:[],DashboardModal:[],Topology:[],Api:[],Event:[],ServicePlugin:[]});return o.DashboardPage=o.DashboardPage?.sort((s,a)=>s.route.localeCompare(a.route)),o},[t.components]),h=(0,n.useMemo)(()=>[...e.DashboardPage,...e.DashboardMenuPlugin,...e.DashboardPlugin,...e.DashboardModal],[e]),l=(0,n.useCallback)(o=>o?e[o].length>0:t.components.length>0,[e,t.components]),m=(0,n.useCallback)(o=>e[o],[e]);return{dashboardExtensions:h,getExtensions:m,hasExtensions:l}}export{C as a};
|
|
4
|
+
//# sourceMappingURL=chunk-COIDN4V4.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as _createRequire } from 'node:module';
|
|
2
2
|
const require = _createRequire(import.meta.url);
|
|
3
|
-
import{db as i,ma as r}from"./chunk-
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{db as i,ma as r}from"./chunk-F4YTZ6XA.js";import{a as f,b as C}from"./chunk-MB65UVFQ.js";import{e as p,h as c}from"./chunk-V4TR6DCM.js";c();var s=p(f(),1),m=p(C(),1);function k(){let{model:t}=i(),n=(0,s.useMemo)(()=>{let l=t.components.filter((0,m.isType)(r.Api)).sort((e,o)=>e.title.localeCompare(o.title)),a=t.components.filter((0,m.isType)(r.Event)).sort((e,o)=>e.title.localeCompare(o.title)),u=t.components.filter((0,m.isType)(r.ServicePlugin)).sort((e,o)=>e.componentName.localeCompare(o.componentName));return{Api:l,Event:a,ServicePlugin:u}},[t.components]);return{backendComponents:[...n.Api,...n.Event,...n.ServicePlugin],backendComponentsByType:n}}export{k as a};
|
|
4
|
+
//# sourceMappingURL=chunk-E6MYDYCH.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as _createRequire } from 'node:module';
|
|
2
2
|
const require = _createRequire(import.meta.url);
|
|
3
|
-
import{a as r}from"./chunk-
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
import{a as r}from"./chunk-F55KYUXJ.js";import{fa as i,k as p}from"./chunk-F4YTZ6XA.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-F4LXYTO3.js.map
|