@wix/cli-app 1.1.10 → 1.1.12
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-NUIIBF7A.js +4 -0
- package/build/{CreateVersionCommand-ZED4C5IK.js.map → CreateVersionCommand-NUIIBF7A.js.map} +1 -1
- package/build/DevCommand-BN25CWVP.js +4 -0
- package/build/{DevCommand-EOGURH5I.js.map → DevCommand-BN25CWVP.js.map} +1 -1
- package/build/GenerateCommand-YJ27MSRT.js +99 -0
- package/build/GenerateCommand-YJ27MSRT.js.map +1 -0
- package/build/PreviewCommand-UC6TGBTC.js +4 -0
- package/build/ServeCommand-HWXGL7AV.js +4 -0
- package/build/{ServeCommand-UAJS2PA6.js.map → ServeCommand-HWXGL7AV.js.map} +1 -1
- package/build/{build-3JHPJZJI.js → build-RP6W4QEA.js} +2 -2
- package/build/chunk-6WJSV7WT.js +4 -0
- package/build/chunk-6WJSV7WT.js.map +1 -0
- package/build/chunk-B5HZNQJV.js +4 -0
- package/build/{chunk-355OHM37.js → chunk-BGJWNKGZ.js} +2 -2
- package/build/{chunk-JBF5X4QY.js → chunk-BO7BWQLZ.js} +2 -2
- package/build/chunk-D2SHWB76.js +4 -0
- package/build/chunk-D2SHWB76.js.map +1 -0
- package/build/{chunk-F35NSBUP.js → chunk-F2KYPCJP.js} +2 -2
- package/build/chunk-F2KYPCJP.js.map +1 -0
- package/build/{chunk-OXEFT2HH.js → chunk-F3BQNR6X.js} +2 -2
- package/build/{chunk-LIHTNDQX.js → chunk-FV67T4ZH.js} +2 -2
- package/build/{chunk-LIHTNDQX.js.map → chunk-FV67T4ZH.js.map} +1 -1
- package/build/chunk-G5KG2B42.js +4 -0
- package/build/{chunk-J3Q3DHMD.js.map → chunk-G5KG2B42.js.map} +1 -1
- package/build/chunk-GCBXRNFB.js +75 -0
- package/build/chunk-GCBXRNFB.js.map +1 -0
- package/build/{chunk-BSEV5LHK.js → chunk-K7GUDJFG.js} +2 -2
- package/build/{chunk-WK54N4GD.js → chunk-OYUGDF7S.js} +2 -2
- package/build/chunk-PJ7ZZBC4.js +11 -0
- package/build/chunk-PJ7ZZBC4.js.map +1 -0
- package/build/{chunk-NXZW6FWB.js → chunk-RQK35Z3D.js} +6 -6
- package/build/chunk-RQK35Z3D.js.map +1 -0
- package/build/{chunk-QE2ZMSXG.js → chunk-UJW3X3T2.js} +2 -2
- package/build/chunk-UZC2NC3I.js +4 -0
- package/build/chunk-UZC2NC3I.js.map +1 -0
- package/build/chunk-VOV46J2K.js +4 -0
- package/build/chunk-VOV46J2K.js.map +1 -0
- package/build/{chunk-BASMMNVW.js → chunk-VWRROJHT.js} +2 -2
- package/build/{chunk-3RXBIY4X.js → chunk-W74FRPRP.js} +2 -2
- package/build/{chunk-M4WZBOPY.js → chunk-Y4THEZGJ.js} +2 -2
- package/build/{chunk-M4WZBOPY.js.map → chunk-Y4THEZGJ.js.map} +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/{preview-EFIEGFXF.js → preview-US5F3VRS.js} +2 -2
- package/build/render-command-SXRUN6CW.js +4 -0
- package/build/{render-command-UUN7DFLA.js.map → render-command-SXRUN6CW.js.map} +1 -1
- package/package.json +3 -3
- package/templates/custom-element/element.json.ejs +4 -0
- package/templates/custom-element/element.tsx.ejs +13 -0
- package/templates/custom-element/panel.tsx.ejs +13 -0
- package/templates/dashboard-plugin/plugin.json.ejs +4 -0
- package/templates/{dashboard-page-plugin → dashboard-plugin}/plugin.tsx.ejs +4 -4
- package/build/CreateVersionCommand-ZED4C5IK.js +0 -4
- package/build/DevCommand-EOGURH5I.js +0 -4
- package/build/GenerateCommand-2GP5ZDIG.js +0 -99
- package/build/GenerateCommand-2GP5ZDIG.js.map +0 -1
- package/build/PreviewCommand-KR2XGCFF.js +0 -4
- package/build/ServeCommand-UAJS2PA6.js +0 -4
- package/build/chunk-BYI27HUJ.js +0 -4
- package/build/chunk-BYI27HUJ.js.map +0 -1
- package/build/chunk-DYVKPZDH.js +0 -75
- package/build/chunk-DYVKPZDH.js.map +0 -1
- package/build/chunk-F35NSBUP.js.map +0 -1
- package/build/chunk-J3Q3DHMD.js +0 -4
- package/build/chunk-JCBXLFRW.js +0 -4
- package/build/chunk-JCBXLFRW.js.map +0 -1
- package/build/chunk-LW6L3WY3.js +0 -11
- package/build/chunk-LW6L3WY3.js.map +0 -1
- package/build/chunk-NXZW6FWB.js.map +0 -1
- package/build/chunk-OTVLQNCK.js +0 -4
- package/build/chunk-T2HZ7OVC.js +0 -4
- package/build/chunk-T2HZ7OVC.js.map +0 -1
- package/build/render-command-UUN7DFLA.js +0 -4
- package/templates/dashboard-page-plugin/plugin.json.ejs +0 -4
- /package/build/{PreviewCommand-KR2XGCFF.js.map → PreviewCommand-UC6TGBTC.js.map} +0 -0
- /package/build/{build-3JHPJZJI.js.map → build-RP6W4QEA.js.map} +0 -0
- /package/build/{chunk-OTVLQNCK.js.map → chunk-B5HZNQJV.js.map} +0 -0
- /package/build/{chunk-355OHM37.js.map → chunk-BGJWNKGZ.js.map} +0 -0
- /package/build/{chunk-JBF5X4QY.js.map → chunk-BO7BWQLZ.js.map} +0 -0
- /package/build/{chunk-OXEFT2HH.js.map → chunk-F3BQNR6X.js.map} +0 -0
- /package/build/{chunk-BSEV5LHK.js.map → chunk-K7GUDJFG.js.map} +0 -0
- /package/build/{chunk-WK54N4GD.js.map → chunk-OYUGDF7S.js.map} +0 -0
- /package/build/{chunk-QE2ZMSXG.js.map → chunk-UJW3X3T2.js.map} +0 -0
- /package/build/{chunk-BASMMNVW.js.map → chunk-VWRROJHT.js.map} +0 -0
- /package/build/{chunk-3RXBIY4X.js.map → chunk-W74FRPRP.js.map} +0 -0
- /package/build/{preview-EFIEGFXF.js.map → preview-US5F3VRS.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{b as We,c as Ve}from"./chunk-6WJSV7WT.js";import{a as ke,b as Be}from"./chunk-Y4THEZGJ.js";import{b as Ke,c as He}from"./chunk-VOV46J2K.js";import{a as F}from"./chunk-UZC2NC3I.js";import{b as Q}from"./chunk-OYUGDF7S.js";import{b as Ue,d as oe,e as te,j as qe,k as Ge,l as k,m as V,n as U,o as K}from"./chunk-G5KG2B42.js";import{c as De,d as we,f as fe,i as be,r as Fe,s as Z,u as R}from"./chunk-RQK35Z3D.js";import{A as y,B as O,d as v,f as I,g as u,h as _e,i as Ee,j as Y,k as Oe,o as Te,q as A,r as L,s as $,t as Le,w as Me,z as Ie}from"./chunk-UJW3X3T2.js";import{b as Ne}from"./chunk-F2KYPCJP.js";import"./chunk-BO7BWQLZ.js";import{E as ee,K as je,N as D,Q as Ae,a as W,c as J,d as z,h as X,i as Ce,ja as re,ma as w}from"./chunk-GCBXRNFB.js";import{e as N,h as t}from"./chunk-HFDLXX7R.js";t();t();import Pe from"react";t();var he=N(W(),1);import ge,{createContext as jr,useContext as Ar}from"react";t();var ze=N(W(),1);import{useCallback as gr}from"react";var Je=async(e,r)=>{let o=await We({appId:e.config.appId,components:e.components,componentSourceBuilder:Ve({model:e,devServerUrl:r})});return Ne(o,r)};function Xe(){let{model:e}=w(),r=Q(),{createAppRelease:o,updateAppRelease:n}=qe();return gr(async({devServerUrl:i,projectModelWatcher:a,onChange:d,onError:m})=>{let{projectId:s}=e.config,c=await Je(e,i),g=await oe(e.projectFolder,r),S=await(async x=>{if(x){let b=await n(c,x);return(0,ze.match)(b,{TagUpdated:()=>x,TagNotFound:({cause:P})=>(r(P),o(c,s))})}return o(c,s)})(g?.devArmTag);return S!==g?.devArmTag&&await te(e.projectFolder,{devArmTag:S}).catch(x=>r(x)),a.onChange(async(x,b)=>{try{if(b==="model-updated"){if(x.components.length===0)return;let P=await Je(x,i);re(c,P)||await n(P,S)}d(b)}catch(P){m(P)}}).onError(m),S},[o,e,n,r])}t();import{useRef as hr,useCallback as Sr,useEffect as yr}from"react";import{createServer as xr}from"vite";t();function Ye({onLog:e}){let r=new WeakSet,o=new Set,n={hasWarned:!1,info(i){e("info",i)},warn(i){n.hasWarned=!0,e("warning",i)},warnOnce(i){o.has(i)||(n.hasWarned=!0,e("warning",i),o.add(i))},error(i,a){n.hasWarned=!0,e("error",i),a?.error&&r.add(a.error)},clearScreen(){},hasErrorLogged(i){return r.has(i)}};return n}function $e({https:e}){let r=hr(),{model:o}=w();return yr(()=>()=>{r.current?.close()},[]),Sr(async({projectModelWatcher:n,onLog:i})=>{let a=await xr(await Be(o,{type:"dev",https:e,projectModelWatcher:n,customLogger:Ye({onLog:i})}));return r.current=a,await a.listen(),{devServerUrl:ke(a),devServer:a}},[o,e])}t();import M,{useCallback as Qe,useEffect as Dr,useState as wr,useMemo as br}from"react";t();import{EOL as Pr}from"node:os";import{createWriteStream as Cr}from"node:fs";var ne=class{constructor(r,o){this.opts=o;this.stream=Cr(je(r),{flags:"w"}),this.stream.on("error",this.opts.onError)}drain=!1;stream;write=r=>{if(this.drain){this.stream.once("drain",()=>{this.drain=!1,this.write(r)});return}this.stream.write(r.concat(Pr),n=>{n&&this.opts.onError(n)})||(this.drain=!0,this.stream.once("drain",()=>{this.drain=!1}))};close=()=>{this.stream.close()}};t();import j from"react";var ie=({type:e,msg:r,error:o,prefix:n="app",timestamp:i})=>j.createElement(v,{columnGap:1},j.createElement(v,{flexShrink:0},j.createElement(u,{skin:"secondary"},i.toLocaleTimeString())),j.createElement(v,{flexShrink:0},j.createElement(u,{skin:e,bold:!0},"[",n,"]")),j.createElement(v,null,e==="error"&&o?j.createElement(Z,{error:o}):typeof r=="string"?j.createElement(u,null,r):r));var _r=()=>M.createElement(v,{flexDirection:"column"},M.createElement(A,{type:"error"},M.createElement(y,{i18nKey:"general.write_dev_log_failure.message",components:[M.createElement(u,{bold:!0})],values:{path:ee}})),M.createElement(v,{paddingTop:1},M.createElement(A,{type:"insight"},M.createElement(y,{i18nKey:"general.write_dev_log_failure.hint"})))),Er=5;function Or(e){return!!/Port \d{1,5} is in use, trying another one/.test(e)}function Ze(){let{model:e}=w(),[r,o]=wr([]),n=Qe(m=>{let s={...m,timestamp:new Date};return o(c=>{let g=[...c,s];return g.length>Er&&g.shift(),g}),s},[]),{renderer:i,stream:a}=br(()=>({renderer:Ie(),stream:new ne(e.projectFolder,{onError(){n({type:"error",msg:M.createElement(_r,null)})}})}),[n,e.projectFolder]),d=Qe(m=>{if(m.msg&&Or(m.msg.toString()))return;let s=n(m),c=i.render(M.createElement(ie,{...s}));a.write(c)},[n,i,a]);return Dr(()=>()=>{i.unmount(),a.close()},[i,a]),{logs:r,writeLog:d}}t();import{useCallback as Fr}from"react";t();t();t();var Tr={},Lr={};function Mr(e){var r={"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 we(Object.assign(e,{domainToMappings:r}))}function Re(e){var r=fe(Tr,{}),o=r.toJSON,n=r.fromJSON,i=fe(Lr,{}).fromJSON;function a(d){var m=d.host,s=o(e),c={entityFqdn:"wix.cli.site_override_service.v1.site_override",method:"POST",methodFqn:"wix.cli.v1.SiteOverrideService.CreateOverride",url:Mr({protoPath:"/v1/site-overrides",data:s,host:m}),data:s,transformResponse:i};return c}return a.fromReq=n,a.__isAmbassador=!0,a}t();var er=X.object({siteOverride:X.object({id:X.string()})});var se=class{constructor(r){this.httpClient=r;let{minRetryTimeout:o}=Ce();this.retryOptions={retries:3,minTimeout:o,maxTimeout:3*1e3}}retryOptions;createOverride=async({appId:r,siteId:o,overrides:n,siteOverrideId:i})=>{try{let{data:a}=await De(()=>this.httpClient.request(Re({siteOverride:{id:i,appId:r,siteId:o,overrides:n}})),this.retryOptions);return er.parse(a).siteOverride}catch(a){throw be(a)&&a.response?.status===403?a.response.data?.details?.applicationError?.code==="PERMISSION_DENIED_FOR_SITE"?new J({code:z.SitePermissionDenied({siteId:o}),cause:a}):new J({code:z.AppPermissionDenied({appId:r}),cause:a}):new J({code:z.FailedToCreateSiteOverride(),cause:a})}}};t();import{useMemo as Ir}from"react";function ve(){let e=Ue({type:"backoffice"});return Ir(()=>new se(e),[e])}t();var rr=N(W(),1);t();var ae;(function(e){e.UNKNOWN_TYPE="UNKNOWN_TYPE",e.EMBEDDED_SCRIPT="EMBEDDED_SCRIPT"})(ae||(ae={}));function ue(e){let r=e.components.filter((0,rr.isType)(Ae.EmbeddedScript));return r.length===0?null:r.reduce((o,n)=>{let i=n.paramsOverride||{};return{...o,[n.id]:{type:ae.EMBEDDED_SCRIPT,componentId:n.id,embeddedScriptOptions:{parameters:i}}}},{})}function or(){let{model:e}=w(),{site:r}=k(),o=Q(),{createOverride:n}=ve();return Fr(async({projectModelWatcher:i})=>{let{appId:a}=e.config,d=await oe(e.projectFolder,o),m=ue(e)??{},{id:s}=await n({appId:a,siteId:r.id,overrides:m,siteOverrideId:d?.devSiteOverrideId});return i.onChange(async(c,g)=>{if(g==="model-updated"){let h=ue(c)??{};re(m,h)||(await n({appId:a,siteId:r.id,overrides:h,siteOverrideId:s}),m=h)}}),s!==d?.devSiteOverrideId&&await te(e.projectFolder,{devSiteOverrideId:s}).catch(c=>o(c)),s},[n,e,r.id,o])}var tr=jr(null),Se=({https:e,children:r})=>{let{t:o}=O(),{reportError:n}=R(),i=$e({https:e}),a=Xe(),d=or(),{logs:m,writeLog:s}=Ze(),{watcher:c}=w(),{status:g}=Me(async()=>{let{devServerUrl:h,devServer:S}=await i({projectModelWatcher:c,onLog(P,ur){s({type:P,msg:ur,prefix:"vite"})}}),x=await a({devServerUrl:h,projectModelWatcher:c,onChange(P){(0,he.match)(P,{"change-received":()=>{s({type:"info",msg:o("dev_command.config_change")})},"model-did-not-change":()=>{s({type:"info",msg:o("dev_command.config_didnt_update")})},"model-updated":()=>{S.ws.send({type:"full-reload"}),s({type:"info",msg:o("dev_command.config_update")})}})},onError(P){n(P),s({type:"error",error:P}),s({type:"info",msg:o("dev_command.config_didnt_update")})}}),b=await d({projectModelWatcher:c});return{devServerUrl:h,armTag:x,siteOverrideId:b,https:e}},[]);return(0,he.match)(g,{Error:()=>null,Loading:()=>ge.createElement(Le,{text:o("dev_command.dev_environment.loading")}),Success:({result:{devServerUrl:h,https:S,armTag:x,siteOverrideId:b}})=>ge.createElement(tr.Provider,{value:{devServerUrl:h,https:S,logs:m,writeLog:s,siteOverrideId:b}},ge.createElement(Ge,{armTag:x},r))})};function T(){let e=Ar(tr);if(e===null)throw new Error("useDevEnvironment() cannot be used without an <DevEnvironmentProvider>");return e}t();var fr=N(W(),1);import xe,{useState as Gr}from"react";t();import p from"react";t();t();var me=N(W(),1),_=(0,me.variant)({Home:{},SiteSelector:{},DashboardPages:(0,me.fields)()});t();import B from"react";var nr=()=>{let{t:e}=O(),{logs:r}=T(),o=!r.length;return B.createElement(B.Fragment,null,B.createElement(v,{gap:1},B.createElement(y,{i18nKey:"dev_command.dev_env_logs.title",components:[B.createElement(u,{skin:o?"secondary":"standard"})],values:{path:ee}})),o&&B.createElement(u,{skin:"secondary"},e("dev_command.dev_env_logs.empty")),r.map(n=>B.createElement(ie,{key:n.timestamp.getTime(),...n})))};t();import C,{useCallback as kr,useMemo as Br}from"react";var ye=({label:e,inputKey:r,suffix:o,disabled:n})=>{let i=()=>n?"secondary":"standard";return C.createElement(v,null,C.createElement(v,{marginRight:1},C.createElement(v,{marginRight:1},C.createElement(u,{skin:i()},C.createElement(Y,null)," ",C.createElement(L,{value:r})," -")),C.createElement(v,{gap:1},C.createElement(u,{skin:i()},e))),C.createElement(u,{skin:i()},o))},ir=({onMultipleDashboardPagesSelection:e})=>{let{writeLog:r,siteOverrideId:o}=T(),{t:n}=O(),{isPlatformExists:i,getExtensions:a}=F(),d=V(),m=a("DashboardPage"),s=kr(g=>{K({title:g.type,url:U({envConfig:d,platformType:g,siteOverrideId:o})},r)},[d,r,o]);I(g=>{g==="d"&&(m.length===0?s(D.Dashboard()):m.length===1?s(D.Dashboard({route:m[0].route})):e()),g==="e"&&s(D.Editor()),g==="s"&&d.site.viewUrl&&s(D.Site())});let c=Br(()=>m.length===0?null:m.length===1?C.createElement(u,{skin:"secondary"}," - ",m[0].route):C.createElement(u,null,String.fromCodePoint(9660)),[m]);return C.createElement(v,{paddingLeft:2,flexDirection:"column"},i(D.Site())&&C.createElement(ye,{inputKey:"S",label:d.site.viewUrl?n("general.platform.site"):n("general.platform.unpublished_site"),disabled:!d.site.viewUrl}),i(D.Editor())&&C.createElement(ye,{inputKey:"E",label:n("general.platform.editor")}),i(D.Dashboard())&&C.createElement(ye,{inputKey:"D",label:n("general.platform.dashboard"),suffix:c}))};t();import E,{useMemo as sr,useCallback as Nr}from"react";var Wr=9,ar=({itemNumber:e,children:r})=>{let o=`${e}`;return E.createElement(u,null,E.createElement(Y,null)," ",E.createElement(L,{value:o})," - ",r)},pe=({onViewMore:e,onSelect:r,maxPages:o=Wr})=>{let{writeLog:n}=T(),{getExtensions:i}=F(),a=V(),d=i("DashboardPage"),m=sr(()=>d.length<=o?d.length:o-1,[d,o]);I(h=>{let S=Number(h),x=m+1;if(S>0&&S<=x){let b=s.at(S-1),P=S===x;if(b)return g(b);if(P)return e?.()}});let{visiblePages:s,showMore:c}=sr(()=>({visiblePages:d.sort((h,S)=>h.route.localeCompare(S.route)).slice(0,m),showMore:d.length>m}),[d,m]),g=Nr(async h=>{let S=U({envConfig:a,platformType:D.Dashboard({route:h.route})});await K({url:S,title:h.title},n),r?.(h)},[r,n,a]);return E.createElement(E.Fragment,null,E.createElement(y,{i18nKey:"general.dashboard_pages_viewer.title"}),E.createElement(v,{paddingLeft:2,flexDirection:"column"},s.map((h,S)=>E.createElement(ar,{key:h.route,itemNumber:S+1},h.title," (",E.createElement(u,{skin:"secondary"},h.route),")")),c&&E.createElement(ar,{itemNumber:o},E.createElement(y,{i18nKey:"general.dashboard_pages_viewer.show_more"}))))};t();var ce=N(W(),1);import G,{useState as Hr}from"react";t();import Vr,{useCallback as Ur,useMemo as Kr}from"react";var mr=({onSelect:e})=>{let{t:r}=O(),{writeLog:o}=T(),{getExtensions:n}=F(),i=V(),a=n("DashboardPage"),d=Kr(()=>a.sort((s,c)=>s.route.localeCompare(c.route)).map(s=>({key:s.route,title:s.title,description:s.route,value:s})),[a]),m=Ur(({value:s})=>{let c=U({envConfig:i,platformType:D.Dashboard({route:s.route})});K({url:c,title:s.title},o),e?.(s)},[e,o,i]);return Vr.createElement(Te,{label:r("dev_command.dashboard_pages_screen.select_label"),options:d,onSubmit:m})};t();import de from"react";var q=({onClose:e})=>(I((r,o)=>{o.escape&&e()}),de.createElement(v,{paddingTop:1},de.createElement(u,{skin:"secondary"},de.createElement(y,{i18nKey:"general.close_screen",components:[de.createElement(L,{value:"esc"})]}))));var le=(0,ce.variant)({Arrow:{},Numeric:{}}),pr=({onSelect:e,onClose:r,selectorType:o})=>{let[n,i]=Hr(o);return G.createElement(G.Fragment,null,(0,ce.match)(n,{Arrow:()=>G.createElement(mr,{onSelect:e}),Numeric:()=>G.createElement(pe,{onSelect:e,onViewMore:()=>i(le.Arrow())})}),G.createElement(q,{onClose:r}))};var dr=({onScreenChange:e})=>{let{site:r}=k(),{devServerUrl:o,https:n,writeLog:i}=T(),{hasSinglePlatform:a,hasExtensions:d}=F(),m=async()=>{try{await Fe(o)}catch{i({type:"error",prefix:"app",msg:p.createElement(A,{type:"error"},p.createElement(y,{i18nKey:"dev_command.dev_environment.https_url.failed_to_open",components:[p.createElement($,{url:o})]}))})}};return I(async s=>{s==="c"&&e(_.SiteSelector()),s==="a"&&n&&await m()}),p.createElement(p.Fragment,null,p.createElement(v,{gap:1},p.createElement(u,{skin:"success"},p.createElement(Oe,null)),p.createElement(y,{i18nKey:"dev_command.dev_environment.started"})),p.createElement(v,{gap:1},p.createElement(_e,null),p.createElement(y,{i18nKey:"dev_command.dev_environment.url",components:[p.createElement($,{url:o})]})),n&&p.createElement(v,{paddingLeft:2},p.createElement(u,{skin:"secondary"},p.createElement(y,{components:[p.createElement(L,{value:"A"})],i18nKey:"dev_command.dev_environment.https_url.open_info"}))),p.createElement(v,{gap:1},p.createElement(Ee,null),p.createElement(y,{i18nKey:"general.dev_site.current",values:{name:r.displayName}})),p.createElement(v,{paddingLeft:2},p.createElement(u,{skin:"secondary"},p.createElement(y,{i18nKey:"dev_command.dev_site.change",components:[p.createElement(L,{value:"C"})]}))),p.createElement(v,{paddingTop:1,paddingBottom:1,flexDirection:"column"},d()?p.createElement(p.Fragment,null,p.createElement(y,{i18nKey:"general.view_changes",components:[p.createElement(u,{skin:"secondary"})]}),a(D.Dashboard())&&d("DashboardPage")?p.createElement(pe,{maxPages:3,onViewMore:()=>e(_.DashboardPages({selectorType:le.Arrow()}))}):p.createElement(ir,{onMultipleDashboardPagesSelection:()=>e(_.DashboardPages({selectorType:le.Numeric()}))})):p.createElement(y,{i18nKey:"general.platform.none",components:[p.createElement($,{url:"https://wix.to/b7o4Ml0"})]})),p.createElement(nr,null))};t();import H,{useState as qr,useCallback as cr}from"react";t();var lr=({onScreenChange:e})=>{let{t:r}=O(),{model:o}=w(),{setSite:n}=k(),{reportError:i}=R(),[a,d]=qr(null),m=cr(c=>{i(c),d(c)},[i,d]),s=cr(async c=>{try{await n(c),e(_.Home())}catch(g){m(g)}},[n,e,m]);return H.createElement(H.Fragment,null,H.createElement(Ke,{appId:o.config.appId,onSubmit:s,onError:m}),a&&H.createElement(Z,{error:a,systemErrorOverride:H.createElement(A,{type:"error"},r("dev_command.site_selector.error"))}),H.createElement(q,{onClose:()=>e(_.Home())}))};var vr=()=>{let[e,r]=Gr(_.Home());return(0,fr.match)(e,{Home:()=>xe.createElement(dr,{onScreenChange:r}),SiteSelector:()=>xe.createElement(lr,{onScreenChange:r}),DashboardPages:({selectorType:o})=>xe.createElement(pr,{selectorType:o,onSelect:()=>r(_.Home()),onClose:()=>r(_.Home())})})};var Jr=({https:e})=>Pe.createElement(He,null,Pe.createElement(Se,{https:e},Pe.createElement(vr,null)));export{Jr as DevCommand,Se as DevEnvironmentProvider};
|
|
4
|
+
//# sourceMappingURL=DevCommand-BN25CWVP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/DevCommand/index.ts","../src/components/DevCommand/DevCommand.tsx","../src/components/DevCommand/DevEnvironment.tsx","../src/components/DevCommand/useArmUpdater.ts","../src/components/DevCommand/useDevServer.ts","../src/vite/custom-logger.ts","../src/components/DevCommand/devEnvLogs/useDevEnvLogs.tsx","../src/files/dev.log.ts","../src/components/DevCommand/devEnvLogs/DevEnvLogLine.tsx","../src/components/DevCommand/useSiteOverrideUpdater.ts","../../site-override-client/src/index.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/useSiteOverrideClient.ts","../src/site-override/createSiteOverrides.ts","../../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/types.impl.ts","../src/components/DevCommand/DevCommandScreens.tsx","../src/components/DevCommand/HomeScreen.tsx","../src/site-id/index.ts","../src/components/DevCommand/screen-state.ts","../src/components/DevCommand/DevEnvLogsViewer.tsx","../src/components/extensions/PlatformSelector.tsx","../src/components/DashboardPages/DashboardPagesNumericViewer.tsx","../src/components/DashboardPages/DashboardPagesScreen.tsx","../src/components/DashboardPages/DashboardPagesArrowViewer.tsx","../src/components/CloseScreen/CloseScreen.tsx","../src/components/DevCommand/SiteSelectorScreen.tsx","../src/components/CloseScreen/index.tsx"],"sourcesContent":["export { DevCommand } from './DevCommand.js';\nexport { DevEnvironmentProvider } from './DevEnvironment.js';\n","import React, { type FC } from 'react';\nimport { SiteIdProvider } from '../../site-id/SiteIdProvider.js';\nimport { DevEnvironmentProvider } from './DevEnvironment.js';\nimport { DevCommandScreens } from './DevCommandScreens.js';\n\nexport const DevCommand: FC<{ https: boolean }> = ({ https }) => {\n return (\n <SiteIdProvider>\n <DevEnvironmentProvider https={https}>\n <DevCommandScreens />\n </DevEnvironmentProvider>\n </SiteIdProvider>\n );\n};\n","import React, {\n type FC,\n type ReactNode,\n createContext,\n useContext,\n} from 'react';\nimport { match } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { useAsync, Spinner } from '@wix/cli-ui-kit';\nimport { useErrorReporter } from '@wix/cli-error-reporting';\nimport { useProjectModel } from '../../model.js';\nimport { useArmUpdater } from './useArmUpdater.js';\nimport { useDevServer } from './useDevServer.js';\nimport {\n useDevEnvLogs,\n type DevEnvLog,\n type WriteLogFn,\n} from './devEnvLogs/useDevEnvLogs.js';\nimport { ArmTagProvider } from '../../context/armTag.js';\nimport { useSiteOverrideUpdater } from './useSiteOverrideUpdater.js';\n\ntype DevEnvironment = {\n siteOverrideId: string;\n https: boolean;\n devServerUrl: string;\n logs: DevEnvLog[];\n writeLog: WriteLogFn;\n};\n\nconst DevEnvironmentContext = createContext<DevEnvironment | null>(null);\n\nexport const DevEnvironmentProvider: FC<{\n https: boolean;\n children: ReactNode;\n}> = ({ https, children }) => {\n const { t } = useTranslation();\n const { reportError } = useErrorReporter();\n const createDevServer = useDevServer({ https });\n const createArmUpdater = useArmUpdater();\n const createSiteOverrideUpdater = useSiteOverrideUpdater();\n const { logs, writeLog } = useDevEnvLogs();\n const { watcher: projectModelWatcher } = useProjectModel();\n\n const { status } = useAsync(async () => {\n const { devServerUrl, devServer } = await createDevServer({\n projectModelWatcher,\n onLog(type, msg) {\n writeLog({ type, msg, prefix: 'vite' });\n },\n });\n\n const armTag = await createArmUpdater({\n devServerUrl,\n projectModelWatcher,\n onChange(changeType) {\n match(changeType, {\n 'change-received': () => {\n writeLog({ type: 'info', msg: t('dev_command.config_change') });\n },\n 'model-did-not-change': () => {\n writeLog({\n type: 'info',\n msg: t('dev_command.config_didnt_update'),\n });\n },\n 'model-updated': () => {\n devServer.ws.send({ type: 'full-reload' });\n writeLog({ type: 'info', msg: t('dev_command.config_update') });\n },\n });\n },\n onError(error) {\n reportError(error);\n writeLog({ type: 'error', error });\n writeLog({ type: 'info', msg: t('dev_command.config_didnt_update') });\n },\n });\n\n const siteOverrideId = await createSiteOverrideUpdater({\n projectModelWatcher,\n });\n\n return { devServerUrl, armTag, siteOverrideId, https };\n }, []);\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner text={t('dev_command.dev_environment.loading')} />,\n Success: ({ result: { devServerUrl, https, armTag, siteOverrideId } }) => (\n <DevEnvironmentContext.Provider\n value={{ devServerUrl, https, logs, writeLog, siteOverrideId }}\n >\n <ArmTagProvider armTag={armTag}>{children}</ArmTagProvider>\n </DevEnvironmentContext.Provider>\n ),\n });\n};\n\nexport function useDevEnvironment(): DevEnvironment {\n const context = useContext(DevEnvironmentContext);\n if (context === null) {\n throw new Error(\n 'useDevEnvironment() cannot be used without an <DevEnvironmentProvider>'\n );\n }\n return context;\n}\n","import { useCallback } from 'react';\nimport { match } from 'variant';\nimport { deepEqual } from 'fast-equals';\nimport { updateAppManifestWithBaseUrl } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport { createAppManifest } from '../../app-manifest/create.js';\nimport { getComponentSourceBuilder } from '../../app-manifest/component-source.js';\nimport type {\n ChangeType,\n ProjectModelWatcher,\n} from '../../app-manifest/project-model-watcher.js';\nimport { readAppConfig, saveAppConfig } from '../../files/app.config.js';\nimport { useProjectModel, type ProjectModel } from '../../model.js';\n\nconst createAppManifestWithBaseUrl = async (\n model: ProjectModel,\n devServerUrl: string\n) => {\n const manifest = await createAppManifest({\n appId: model.config.appId,\n components: model.components,\n componentSourceBuilder: getComponentSourceBuilder({\n model,\n devServerUrl,\n }),\n });\n\n return updateAppManifestWithBaseUrl(manifest, devServerUrl);\n};\n\ninterface CreateOptions {\n devServerUrl: string;\n projectModelWatcher: ProjectModelWatcher;\n onChange: (changeType: ChangeType) => void;\n onError: (e: unknown) => void;\n}\n\nexport function useArmUpdater() {\n const { model } = useProjectModel();\n const writeDebugLog = useDebugLog();\n const { createAppRelease, updateAppRelease } = useARMClient();\n\n return useCallback(\n async ({\n devServerUrl,\n projectModelWatcher,\n onChange,\n onError,\n }: CreateOptions) => {\n const { projectId } = model.config;\n const appManifest = await createAppManifestWithBaseUrl(\n model,\n devServerUrl\n );\n const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);\n\n const createOrUpdateAppRelease = async (tag?: string) => {\n if (tag) {\n const updateState = await updateAppRelease(appManifest, tag);\n return match(updateState, {\n TagUpdated: () => tag,\n TagNotFound: ({ cause }) => {\n writeDebugLog(cause);\n return createAppRelease(appManifest, projectId);\n },\n });\n }\n return createAppRelease(appManifest, projectId);\n };\n\n const armTag = await createOrUpdateAppRelease(appConfig?.devArmTag);\n\n if (armTag !== appConfig?.devArmTag) {\n await saveAppConfig(model.projectFolder, { devArmTag: armTag }).catch(\n (error) => writeDebugLog(error)\n );\n }\n\n projectModelWatcher\n .onChange(async (newModel, changeType) => {\n try {\n if (changeType === 'model-updated') {\n if (newModel.components.length === 0) {\n return;\n }\n\n const updatedAppManifest = await createAppManifestWithBaseUrl(\n newModel,\n devServerUrl\n );\n\n if (!deepEqual(appManifest, updatedAppManifest)) {\n await updateAppRelease(updatedAppManifest, armTag);\n }\n }\n onChange(changeType);\n } catch (e) {\n onError(e);\n }\n })\n .onError(onError);\n\n return armTag;\n },\n [createAppRelease, model, updateAppRelease, writeDebugLog]\n );\n}\n","import { useRef, useCallback, useEffect } from 'react';\nimport { createServer, type ViteDevServer } from 'vite';\nimport { getViteConfig } from '../../vite/index.js';\nimport { getViteServerUrl } from '../../vite/vite-server-url.js';\nimport {\n createCustomLogger,\n type CustomLoggerOptions,\n} from '../../vite/custom-logger.js';\nimport type { ProjectModelWatcher } from '../../app-manifest/project-model-watcher.js';\nimport { useProjectModel } from '../../model.js';\nimport { ConfigType } from '../../vite/vite-config-options.js';\n\ninterface Options {\n projectModelWatcher: ProjectModelWatcher;\n onLog: CustomLoggerOptions['onLog'];\n}\n\nexport function useDevServer({ https }: { https: boolean }) {\n const devServerRef = useRef<ViteDevServer>();\n const { model } = useProjectModel();\n\n useEffect(() => {\n return () => {\n devServerRef.current?.close();\n };\n }, []);\n\n return useCallback(\n async ({ projectModelWatcher, onLog }: Options) => {\n const devServer = await createServer(\n await getViteConfig(model, {\n type: ConfigType.dev,\n https,\n projectModelWatcher,\n customLogger: createCustomLogger({ onLog }),\n })\n );\n devServerRef.current = devServer;\n\n await devServer.listen();\n\n return { devServerUrl: getViteServerUrl(devServer), devServer };\n },\n [model, https]\n );\n}\n","import type { Logger, Rollup } from 'vite';\n\nexport type LogType = 'error' | 'warning' | 'info';\n\nexport interface CustomLoggerOptions {\n onLog: (type: LogType, msg: string) => void;\n}\n\nexport function createCustomLogger({ onLog }: CustomLoggerOptions): Logger {\n const loggedErrors = new WeakSet<Error | Rollup.RollupError>();\n const warnedMessages = new Set<string>();\n\n const logger: Logger = {\n hasWarned: false,\n info(msg) {\n onLog('info', msg);\n },\n warn(msg) {\n logger.hasWarned = true;\n onLog('warning', msg);\n },\n warnOnce(msg) {\n if (warnedMessages.has(msg)) return;\n logger.hasWarned = true;\n onLog('warning', msg);\n warnedMessages.add(msg);\n },\n error(msg, opts) {\n logger.hasWarned = true;\n onLog('error', msg);\n if (opts?.error) {\n loggedErrors.add(opts.error);\n }\n },\n clearScreen() {},\n hasErrorLogged(error) {\n return loggedErrors.has(error);\n },\n };\n\n return logger;\n}\n","import React, {\n useCallback,\n useEffect,\n useState,\n useMemo,\n type ReactNode,\n type FC,\n} from 'react';\nimport { DEV_LOG_PATH } from '@wix/cli-app-definitions';\nimport { Trans } from '@wix/cli-i18n';\nimport { createRendererToString, Alert, Box, Text } from '@wix/cli-ui-kit';\nimport { DevLogStream } from '../../../files/dev.log.js';\nimport { useProjectModel } from '../../../model.js';\nimport type { LogType } from '../../../vite/custom-logger.js';\nimport { DevEnvLogLine } from './DevEnvLogLine.js';\n\ntype GenericLog = (\n | {\n type: LogType;\n msg: ReactNode;\n error?: never;\n }\n | {\n type: 'error';\n msg?: never;\n error: unknown;\n }\n) & { prefix?: LogPrefix };\n\ntype LogPrefix = 'app' | 'vite';\n\nexport type WriteLogFn = (log: GenericLog) => void;\n\nexport type DevEnvLog = GenericLog & {\n timestamp: Date;\n};\n\nconst ErrorMsg: FC = () => (\n <Box flexDirection=\"column\">\n <Alert type=\"error\">\n <Trans\n i18nKey=\"general.write_dev_log_failure.message\"\n components={[<Text bold />]}\n values={{ path: DEV_LOG_PATH }}\n />\n </Alert>\n <Box paddingTop={1}>\n <Alert type=\"insight\">\n <Trans i18nKey=\"general.write_dev_log_failure.hint\" />\n </Alert>\n </Box>\n </Box>\n);\n\nconst MAX_LOGS_TO_SHOW = 5;\n\nfunction isMessageFiltered(message: string) {\n if (/Port \\d{1,5} is in use, trying another one/.test(message)) {\n return true;\n }\n\n return false;\n}\n\nexport function useDevEnvLogs() {\n const { model } = useProjectModel();\n const [logs, setLogs] = useState<DevEnvLog[]>([]);\n\n const insertLog = useCallback((genericLog: GenericLog) => {\n const log = { ...genericLog, timestamp: new Date() };\n setLogs((logs) => {\n const newLogs = [...logs, log];\n if (newLogs.length > MAX_LOGS_TO_SHOW) {\n newLogs.shift();\n }\n return newLogs;\n });\n return log;\n }, []);\n\n const { renderer, stream } = useMemo(() => {\n return {\n renderer: createRendererToString(),\n stream: new DevLogStream(model.projectFolder, {\n onError() {\n insertLog({ type: 'error', msg: <ErrorMsg /> });\n },\n }),\n };\n }, [insertLog, model.projectFolder]);\n\n const writeLog = useCallback<WriteLogFn>(\n (genericLog) => {\n if (genericLog.msg && isMessageFiltered(genericLog.msg.toString())) {\n return;\n }\n\n const log = insertLog(genericLog);\n const content = renderer.render(<DevEnvLogLine {...log} />);\n\n stream.write(content);\n },\n [insertLog, renderer, stream]\n );\n\n useEffect(() => {\n return () => {\n renderer.unmount();\n stream.close();\n };\n }, [renderer, stream]);\n\n return { logs, writeLog };\n}\n","import { EOL } from 'node:os';\nimport { createWriteStream, type WriteStream } from 'node:fs';\nimport { getDevLogPath } from '@wix/cli-app-definitions';\n\nexport class DevLogStream {\n private drain = false;\n private readonly stream: WriteStream;\n\n constructor(\n projectFolder: string,\n private readonly opts: { onError: (err: Error) => void }\n ) {\n this.stream = createWriteStream(getDevLogPath(projectFolder), {\n flags: 'w',\n });\n\n this.stream.on('error', this.opts.onError);\n }\n\n write = (content: string) => {\n if (this.drain) {\n this.stream.once('drain', () => {\n this.drain = false;\n this.write(content);\n });\n return;\n }\n\n const written = this.stream.write(content.concat(EOL), (err) => {\n if (err) {\n this.opts.onError(err);\n }\n });\n if (!written) {\n this.drain = true;\n this.stream.once('drain', () => {\n this.drain = false;\n });\n }\n };\n\n close = () => {\n this.stream.close();\n };\n}\n","import React, { type FC } from 'react';\nimport { Box, Text } from '@wix/cli-ui-kit';\nimport { ErrorViewer } from '@wix/cli-error-reporting';\nimport type { DevEnvLog } from './useDevEnvLogs.js';\n\nexport const DevEnvLogLine: FC<DevEnvLog> = ({\n type,\n msg,\n error,\n prefix = 'app',\n timestamp,\n}) => {\n return (\n <Box columnGap={1}>\n <Box flexShrink={0}>\n <Text skin=\"secondary\">{timestamp.toLocaleTimeString()}</Text>\n </Box>\n <Box flexShrink={0}>\n <Text skin={type} bold>\n [{prefix}]\n </Text>\n </Box>\n <Box>\n {type === 'error' && error ? (\n <ErrorViewer error={error} />\n ) : typeof msg === 'string' ? (\n <Text>{msg}</Text>\n ) : (\n msg\n )}\n </Box>\n </Box>\n );\n};\n","import { useCallback } from 'react';\nimport { deepEqual } from 'fast-equals';\nimport { useSiteOverrideClient } from '@wix/site-override-client';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport type { ProjectModelWatcher } from '../../app-manifest/project-model-watcher.js';\nimport { useProjectModel } from '../../model.js';\nimport { createSiteOverrides } from '../../site-override/createSiteOverrides.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { readAppConfig, saveAppConfig } from '../../files/app.config.js';\n\nexport function useSiteOverrideUpdater() {\n const { model } = useProjectModel();\n const { site } = useSiteId();\n const writeDebugLog = useDebugLog();\n const { createOverride } = useSiteOverrideClient();\n\n return useCallback(\n async ({\n projectModelWatcher,\n }: {\n projectModelWatcher: ProjectModelWatcher;\n }) => {\n const { appId } = model.config;\n const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);\n let overrides = createSiteOverrides(model) ?? {};\n\n const { id: siteOverrideId } = await createOverride({\n appId,\n siteId: site.id,\n overrides,\n siteOverrideId: appConfig?.devSiteOverrideId,\n });\n\n projectModelWatcher.onChange(async (newModel, changeType) => {\n if (changeType === 'model-updated') {\n const updatedOverrides = createSiteOverrides(newModel) ?? {};\n\n if (!deepEqual(overrides, updatedOverrides)) {\n await createOverride({\n appId,\n siteId: site.id,\n overrides: updatedOverrides,\n siteOverrideId,\n });\n overrides = updatedOverrides;\n }\n }\n });\n\n if (siteOverrideId !== appConfig?.devSiteOverrideId) {\n await saveAppConfig(model.projectFolder, {\n devSiteOverrideId: siteOverrideId,\n }).catch((error) => writeDebugLog(error));\n }\n\n return siteOverrideId;\n },\n [createOverride, model, site.id, writeDebugLog]\n );\n}\n","export { SiteOverrideClient } from './client.js';\nexport { useSiteOverrideClient } from './useSiteOverrideClient.js';\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 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: Record<string, ComponentOverride>;\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","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 { 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,"import React, { type FC, useState } from 'react';\nimport { match } from 'variant';\nimport { HomeScreen } from './HomeScreen.js';\nimport { SiteSelectorScreen } from './SiteSelectorScreen.js';\nimport { ScreenState } from './screen-state.js';\nimport { DashboardPagesScreen } from '../DashboardPages/DashboardPagesScreen.js';\n\nexport const DevCommandScreens: FC = () => {\n const [screen, setScreen] = useState<ScreenState>(ScreenState.Home());\n\n return match(screen, {\n Home: () => <HomeScreen onScreenChange={setScreen} />,\n SiteSelector: () => <SiteSelectorScreen onScreenChange={setScreen} />,\n DashboardPages: ({ selectorType }) => (\n <DashboardPagesScreen\n selectorType={selectorType}\n onSelect={() => setScreen(ScreenState.Home())}\n onClose={() => setScreen(ScreenState.Home())}\n />\n ),\n });\n};\n","import React, { type FC } from 'react';\nimport {\n Key,\n Box,\n Text,\n SuccessIcon,\n InfoIcon,\n PointerIcon,\n Link,\n useInput,\n Alert,\n} from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useSiteId } from '../../site-id/index.js';\nimport { ScreenState } from './screen-state.js';\nimport { useDevEnvironment } from './DevEnvironment.js';\nimport { DevEnvLogsViewer } from './DevEnvLogsViewer.js';\nimport { PlatformSelector } from '../extensions/PlatformSelector.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport { DashboardPagesNumericViewer } from '../DashboardPages/DashboardPagesNumericViewer.js';\nimport { DashboardPagesSelector } from '../DashboardPages/DashboardPagesScreen.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const HomeScreen: FC<Props> = ({ onScreenChange }) => {\n const { site } = useSiteId();\n const { devServerUrl, https, writeLog } = useDevEnvironment();\n const { hasSinglePlatform, hasExtensions } = useExtensions();\n\n const openDevServerInBrowser = async () => {\n try {\n await openBrowser(devServerUrl);\n } catch (error) {\n writeLog({\n type: 'error',\n prefix: 'app',\n msg: (\n <Alert type=\"error\">\n <Trans\n i18nKey=\"dev_command.dev_environment.https_url.failed_to_open\"\n components={[<Link url={devServerUrl} />]}\n />\n </Alert>\n ),\n });\n }\n };\n\n useInput(async (input) => {\n if (input === 'c') {\n onScreenChange(ScreenState.SiteSelector());\n }\n if (input === 'a' && https) {\n await openDevServerInBrowser();\n }\n });\n\n return (\n <>\n <Box gap={1}>\n <Text skin=\"success\">\n <SuccessIcon />\n </Text>\n <Trans i18nKey=\"dev_command.dev_environment.started\" />\n </Box>\n <Box gap={1}>\n <InfoIcon />\n <Trans\n i18nKey=\"dev_command.dev_environment.url\"\n components={[<Link url={devServerUrl} />]}\n />\n </Box>\n {https && (\n <Box paddingLeft={2}>\n <Text skin=\"secondary\">\n <Trans\n components={[<Key value=\"A\" />]}\n i18nKey=\"dev_command.dev_environment.https_url.open_info\"\n />\n </Text>\n </Box>\n )}\n <Box gap={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"general.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box paddingLeft={2}>\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"dev_command.dev_site.change\"\n components={[<Key value=\"C\" />]}\n />\n </Text>\n </Box>\n <Box paddingTop={1} paddingBottom={1} flexDirection=\"column\">\n {!hasExtensions() ? (\n <Trans\n i18nKey=\"general.platform.none\"\n // Original link is:\n // https://dev.wix.com/docs/build-apps/developer-tools/cli/get-started/about-the-wix-cli-for-apps\n components={[<Link url=\"https://wix.to/b7o4Ml0\" />]}\n />\n ) : (\n <>\n <Trans\n i18nKey=\"general.view_changes\"\n components={[<Text skin=\"secondary\" />]}\n />\n {hasSinglePlatform(PlatformType.Dashboard()) &&\n hasExtensions('DashboardPage') ? (\n <DashboardPagesNumericViewer\n maxPages={3}\n onViewMore={() =>\n onScreenChange(\n ScreenState.DashboardPages({\n selectorType: DashboardPagesSelector.Arrow(),\n })\n )\n }\n />\n ) : (\n <PlatformSelector\n onMultipleDashboardPagesSelection={() =>\n onScreenChange(\n ScreenState.DashboardPages({\n selectorType: DashboardPagesSelector.Numeric(),\n })\n )\n }\n />\n )}\n </>\n )}\n </Box>\n <DevEnvLogsViewer />\n </>\n );\n};\n","export { SiteIdProvider } from './SiteIdProvider.js';\nexport { useSiteId } from './useSiteId.js';\n","import { fields, variant, type VariantOf } from 'variant';\nimport type { DashboardPagesSelector } from '../DashboardPages/DashboardPagesScreen.js';\n\nexport const ScreenState = variant({\n Home: {},\n SiteSelector: {},\n DashboardPages: fields<{ selectorType: DashboardPagesSelector }>(),\n});\n\nexport type ScreenState = VariantOf<typeof ScreenState>;\n","import React, { type FC } from 'react';\nimport { Text, Box } from '@wix/cli-ui-kit';\nimport { useTranslation, Trans } from '@wix/cli-i18n';\nimport { DEV_LOG_PATH } from '@wix/cli-app-definitions';\nimport { useDevEnvironment } from './DevEnvironment.js';\nimport { DevEnvLogLine } from './devEnvLogs/DevEnvLogLine.js';\n\nexport const DevEnvLogsViewer: FC = () => {\n const { t } = useTranslation();\n const { logs } = useDevEnvironment();\n const isEmpty = !logs.length;\n\n return (\n <>\n <Box gap={1}>\n <Trans\n i18nKey=\"dev_command.dev_env_logs.title\"\n components={[<Text skin={isEmpty ? 'secondary' : 'standard'} />]}\n values={{ path: DEV_LOG_PATH }}\n />\n </Box>\n {isEmpty && (\n <Text skin=\"secondary\">{t('dev_command.dev_env_logs.empty')}</Text>\n )}\n {logs.map((log) => {\n return <DevEnvLogLine key={log.timestamp.getTime()} {...log} />;\n })}\n </>\n );\n};\n","import React, { useCallback, type FC, useMemo } from 'react';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { PointerSmallIcon, Key, useInput, Text, Box } from '@wix/cli-ui-kit';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from './useExtensions.js';\nimport { openPage, resolvePlatformUrl, useEnvConfig } from './utils.js';\nimport { useDevEnvironment } from '../DevCommand/DevEnvironment.js';\n\ntype PlatformOptionProps = {\n inputKey: string;\n label: string;\n suffix?: React.ReactNode;\n disabled?: boolean;\n};\n\nconst PlatformOption: FC<PlatformOptionProps> = ({\n label,\n inputKey,\n suffix,\n disabled,\n}) => {\n const getTextSkin = () => (disabled ? 'secondary' : 'standard');\n\n return (\n <Box>\n <Box marginRight={1}>\n <Box marginRight={1}>\n <Text skin={getTextSkin()}>\n <PointerSmallIcon /> <Key value={inputKey} /> -\n </Text>\n </Box>\n <Box gap={1}>\n <Text skin={getTextSkin()}>{label}</Text>\n </Box>\n </Box>\n <Text skin={getTextSkin()}>{suffix}</Text>\n </Box>\n );\n};\n\ninterface PlatformSelector {\n onMultipleDashboardPagesSelection: () => void;\n}\n\nexport const PlatformSelector: FC<PlatformSelector> = ({\n onMultipleDashboardPagesSelection,\n}) => {\n const { writeLog, siteOverrideId } = useDevEnvironment();\n const { t } = useTranslation();\n const { isPlatformExists, getExtensions } = useExtensions();\n const envConfig = useEnvConfig();\n const dashboardPages = getExtensions('DashboardPage');\n const openPlatform = useCallback(\n (platformType: PlatformType) => {\n openPage(\n {\n title: platformType.type,\n url: resolvePlatformUrl({\n envConfig,\n platformType,\n siteOverrideId,\n }),\n },\n writeLog\n );\n },\n [envConfig, writeLog, siteOverrideId]\n );\n\n useInput((input) => {\n if (input === 'd') {\n if (dashboardPages.length === 0) {\n openPlatform(PlatformType.Dashboard());\n } else if (dashboardPages.length === 1) {\n openPlatform(\n PlatformType.Dashboard({ route: dashboardPages[0].route })\n );\n } else {\n onMultipleDashboardPagesSelection();\n }\n }\n if (input === 'e') {\n openPlatform(PlatformType.Editor());\n }\n if (input === 's' && envConfig.site.viewUrl) {\n openPlatform(PlatformType.Site());\n }\n });\n\n const dashboardOptionSuffix = useMemo(() => {\n if (dashboardPages.length === 0) {\n return null;\n }\n if (dashboardPages.length === 1) {\n return <Text skin=\"secondary\"> - {dashboardPages[0].route}</Text>;\n }\n return <Text>{String.fromCodePoint(0x25bc)}</Text>; // ▼\n }, [dashboardPages]);\n\n return (\n <Box paddingLeft={2} flexDirection=\"column\">\n {isPlatformExists(PlatformType.Site()) && (\n <PlatformOption\n inputKey=\"S\"\n label={\n envConfig.site.viewUrl\n ? t('general.platform.site')\n : t('general.platform.unpublished_site')\n }\n disabled={!envConfig.site.viewUrl}\n />\n )}\n {isPlatformExists(PlatformType.Editor()) && (\n <PlatformOption inputKey=\"E\" label={t('general.platform.editor')} />\n )}\n {isPlatformExists(PlatformType.Dashboard()) && (\n <PlatformOption\n inputKey=\"D\"\n label={t('general.platform.dashboard')}\n suffix={dashboardOptionSuffix}\n />\n )}\n </Box>\n );\n};\n","import React, { type FC, type ReactNode, useMemo, useCallback } from 'react';\nimport { Box, Text, Key, PointerSmallIcon, useInput } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport {\n openPage,\n resolvePlatformUrl,\n useEnvConfig,\n} from '../extensions/utils.js';\nimport { useDevEnvironment } from '../DevCommand/DevEnvironment.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\n\nconst MAX_PAGES = 9;\n\nconst ListItem: FC<{\n itemNumber: number;\n children: ReactNode;\n}> = ({ itemNumber, children }) => {\n const keyValue = `${itemNumber}`;\n return (\n <Text>\n <PointerSmallIcon /> <Key value={keyValue} /> - {children}\n </Text>\n );\n};\n\ninterface NumericViewerProps {\n onViewMore: () => void;\n onSelect?: (page: DevCenterComponent<'DashboardPage'>) => void;\n maxPages?: number;\n}\n\nexport const DashboardPagesNumericViewer: FC<NumericViewerProps> = ({\n onViewMore,\n onSelect,\n maxPages = MAX_PAGES,\n}) => {\n const { writeLog } = useDevEnvironment();\n const { getExtensions } = useExtensions();\n const envConfig = useEnvConfig();\n const dashboardPages = getExtensions('DashboardPage');\n\n const numberOfPagesToShow = useMemo(\n () =>\n dashboardPages.length <= maxPages ? dashboardPages.length : maxPages - 1,\n [dashboardPages, maxPages]\n );\n\n useInput((input) => {\n const inputNumber = Number(input);\n const viewMoreNumber = numberOfPagesToShow + 1;\n\n if (inputNumber > 0 && inputNumber <= viewMoreNumber) {\n const page = visiblePages.at(inputNumber - 1);\n const isViewMore = inputNumber === viewMoreNumber;\n\n if (page) {\n return handleSelect(page);\n } else if (isViewMore) {\n return onViewMore?.();\n }\n }\n });\n\n const { visiblePages, showMore } = useMemo(() => {\n return {\n visiblePages: dashboardPages\n .sort((a, b) => a.route.localeCompare(b.route))\n .slice(0, numberOfPagesToShow),\n showMore: dashboardPages.length > numberOfPagesToShow,\n };\n }, [dashboardPages, numberOfPagesToShow]);\n\n const handleSelect = useCallback(\n async (page: DevCenterComponent<'DashboardPage'>) => {\n const url = resolvePlatformUrl({\n envConfig,\n platformType: PlatformType.Dashboard({ route: page.route }),\n });\n await openPage({ url, title: page.title }, writeLog);\n onSelect?.(page);\n },\n [onSelect, writeLog, envConfig]\n );\n\n return (\n <>\n <Trans i18nKey=\"general.dashboard_pages_viewer.title\" />\n <Box paddingLeft={2} flexDirection=\"column\">\n {visiblePages.map((page, index) => (\n <ListItem key={page.route} itemNumber={index + 1}>\n {page.title} (<Text skin=\"secondary\">{page.route}</Text>)\n </ListItem>\n ))}\n {showMore && (\n <ListItem itemNumber={maxPages}>\n <Trans i18nKey=\"general.dashboard_pages_viewer.show_more\" />\n </ListItem>\n )}\n </Box>\n </>\n );\n};\n","import React, { type FC, useState } from 'react';\nimport { match, variant, type VariantOf } from 'variant';\nimport { DashboardPagesNumericViewer } from './DashboardPagesNumericViewer.js';\nimport { DashboardPagesArrowViewer } from './DashboardPagesArrowViewer.js';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\n\nexport const DashboardPagesSelector = variant({\n Arrow: {},\n Numeric: {},\n});\n\nexport type DashboardPagesSelector = VariantOf<typeof DashboardPagesSelector>;\n\ninterface Props {\n onSelect?: (page: DevCenterComponent<'DashboardPage'>) => void;\n onClose: () => void;\n selectorType: DashboardPagesSelector;\n}\n\nexport const DashboardPagesScreen: FC<Props> = ({\n onSelect,\n onClose,\n selectorType,\n}) => {\n const [_selectorType, setSelectorType] =\n useState<DashboardPagesSelector>(selectorType);\n\n return (\n <>\n {match(_selectorType, {\n Arrow: () => <DashboardPagesArrowViewer onSelect={onSelect} />,\n Numeric: () => (\n <DashboardPagesNumericViewer\n onSelect={onSelect}\n onViewMore={() => setSelectorType(DashboardPagesSelector.Arrow())}\n />\n ),\n })}\n <CloseScreen onClose={onClose} />\n </>\n );\n};\n","import React, { type FC, useCallback, useMemo } from 'react';\nimport { SelectInput, type SelectOption } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport {\n openPage,\n resolvePlatformUrl,\n useEnvConfig,\n} from '../extensions/utils.js';\nimport { useDevEnvironment } from '../DevCommand/DevEnvironment.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\n\ninterface Props {\n onSelect?: (option: DevCenterComponent<'DashboardPage'>) => void;\n}\n\nexport const DashboardPagesArrowViewer: FC<Props> = ({ onSelect }) => {\n const { t } = useTranslation();\n const { writeLog } = useDevEnvironment();\n const { getExtensions } = useExtensions();\n const envConfig = useEnvConfig();\n const dashboardPages = getExtensions('DashboardPage');\n const pagesOptions = useMemo(\n () =>\n dashboardPages\n .sort((a, b) => a.route.localeCompare(b.route))\n .map((page) => ({\n key: page.route,\n title: page.title,\n description: page.route,\n value: page,\n })),\n [dashboardPages]\n );\n const handleSubmit = useCallback(\n ({ value: page }: SelectOption<DevCenterComponent<'DashboardPage'>>) => {\n const url = resolvePlatformUrl({\n envConfig,\n platformType: PlatformType.Dashboard({ route: page.route }),\n });\n openPage({ url, title: page.title }, writeLog);\n onSelect?.(page);\n },\n [onSelect, writeLog, envConfig]\n );\n\n return (\n <SelectInput<DevCenterComponent<'DashboardPage'>>\n label={t('dev_command.dashboard_pages_screen.select_label')}\n options={pagesOptions}\n onSubmit={handleSubmit}\n />\n );\n};\n","import React, { type FC } from 'react';\nimport { Key, Box, Text, useInput } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\n\ninterface Props {\n onClose: () => void;\n}\n\nexport const CloseScreen: FC<Props> = ({ onClose }) => {\n useInput((_, key) => {\n if (key.escape) {\n onClose();\n }\n });\n\n return (\n <Box paddingTop={1}>\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"general.close_screen\"\n components={[<Key value=\"esc\" />]}\n />\n </Text>\n </Box>\n );\n};\n","import React, { type FC, useState, useCallback } from 'react';\nimport { Alert } from '@wix/cli-ui-kit';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport type { Site } from '@wix/site-list-client';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { SiteSelector } from '@wix/cli-site-selector';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/index.js';\nimport { CloseScreen } from '../CloseScreen';\nimport { ScreenState } from './screen-state.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const SiteSelectorScreen: FC<Props> = ({ onScreenChange }) => {\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const { setSite } = useSiteId();\n const { reportError } = useErrorReporter();\n const [error, setError] = useState<unknown>(null);\n\n const handleError = useCallback(\n (error: unknown) => {\n reportError(error);\n setError(error);\n },\n [reportError, setError]\n );\n\n const handleSubmit = useCallback(\n async (site: Site) => {\n try {\n await setSite(site);\n onScreenChange(ScreenState.Home());\n } catch (e) {\n handleError(e);\n }\n },\n [setSite, onScreenChange, handleError]\n );\n\n return (\n <>\n <SiteSelector\n appId={model.config.appId}\n onSubmit={handleSubmit}\n onError={handleError}\n />\n {error && (\n <ErrorViewer\n error={error}\n systemErrorOverride={\n <Alert type=\"error\">{t('dev_command.site_selector.error')}</Alert>\n }\n />\n )}\n <CloseScreen onClose={() => onScreenChange(ScreenState.Home())} />\n </>\n );\n};\n","export { CloseScreen } from './CloseScreen.js';\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","React","init_esm_shims","import_variant","React","createContext","useContext","init_esm_shims","import_variant","useCallback","createAppManifestWithBaseUrl","model","devServerUrl","manifest","createAppManifest","getComponentSourceBuilder","updateAppManifestWithBaseUrl","useArmUpdater","useProjectModel","writeDebugLog","useDebugLog","createAppRelease","updateAppRelease","useARMClient","useCallback","projectModelWatcher","onChange","onError","projectId","appManifest","appConfig","readAppConfig","armTag","tag","updateState","cause","saveAppConfig","error","newModel","changeType","updatedAppManifest","deepEqual","e","init_esm_shims","useRef","useCallback","useEffect","createServer","init_esm_shims","createCustomLogger","onLog","loggedErrors","warnedMessages","logger","msg","opts","error","useDevServer","https","devServerRef","useRef","model","useProjectModel","useEffect","useCallback","projectModelWatcher","onLog","devServer","createServer","getViteConfig","createCustomLogger","getViteServerUrl","init_esm_shims","React","useCallback","useEffect","useState","useMemo","init_esm_shims","EOL","createWriteStream","DevLogStream","projectFolder","opts","createWriteStream","getDevLogPath","content","EOL","err","init_esm_shims","React","DevEnvLogLine","type","msg","error","prefix","timestamp","React","Box_default","Text","ErrorViewer","ErrorMsg","React","Box_default","Alert","Trans","Text","DEV_LOG_PATH","MAX_LOGS_TO_SHOW","isMessageFiltered","message","useDevEnvLogs","model","useProjectModel","logs","setLogs","useState","insertLog","useCallback","genericLog","log","newLogs","renderer","stream","useMemo","createRendererToString","DevLogStream","writeLog","content","DevEnvLogLine","useEffect","init_esm_shims","useCallback","init_esm_shims","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","init_esm_shims","useMemo","useSiteOverrideClient","httpClient","useHttpClient","useMemo","SiteOverrideClient","init_esm_shims","import_variant","init_esm_shims","Type","createSiteOverrides","model","componentsToOverride","DevCenterComponent","acc","component","paramsOverride","Type","useSiteOverrideUpdater","model","useProjectModel","site","useSiteId","writeDebugLog","useDebugLog","createOverride","useSiteOverrideClient","useCallback","projectModelWatcher","appId","appConfig","readAppConfig","overrides","createSiteOverrides","siteOverrideId","newModel","changeType","updatedOverrides","deepEqual","saveAppConfig","error","DevEnvironmentContext","createContext","DevEnvironmentProvider","https","children","t","useTranslation","reportError","useErrorReporter","createDevServer","useDevServer","createArmUpdater","useArmUpdater","createSiteOverrideUpdater","useSiteOverrideUpdater","logs","writeLog","useDevEnvLogs","projectModelWatcher","useProjectModel","status","useAsync","devServerUrl","devServer","type","msg","armTag","changeType","error","siteOverrideId","React","Spinner","ArmTagProvider","useDevEnvironment","context","useContext","init_esm_shims","import_variant","React","useState","init_esm_shims","React","init_esm_shims","init_esm_shims","import_variant","ScreenState","init_esm_shims","React","DevEnvLogsViewer","t","useTranslation","logs","useDevEnvironment","isEmpty","React","Box_default","Trans","Text","DEV_LOG_PATH","log","DevEnvLogLine","init_esm_shims","React","useCallback","useMemo","PlatformOption","label","inputKey","suffix","disabled","getTextSkin","React","Box_default","Text","PointerSmallIcon","Key","PlatformSelector","onMultipleDashboardPagesSelection","writeLog","siteOverrideId","useDevEnvironment","t","useTranslation","isPlatformExists","getExtensions","useExtensions","envConfig","useEnvConfig","dashboardPages","openPlatform","useCallback","platformType","openPage","resolvePlatformUrl","use_input_default","input","PlatformType","dashboardOptionSuffix","useMemo","init_esm_shims","React","useMemo","useCallback","MAX_PAGES","ListItem","itemNumber","children","keyValue","React","Text","PointerSmallIcon","Key","DashboardPagesNumericViewer","onViewMore","onSelect","maxPages","writeLog","useDevEnvironment","getExtensions","useExtensions","envConfig","useEnvConfig","dashboardPages","numberOfPagesToShow","useMemo","use_input_default","input","inputNumber","viewMoreNumber","page","visiblePages","isViewMore","handleSelect","showMore","a","b","useCallback","url","resolvePlatformUrl","PlatformType","openPage","Trans","Box_default","index","init_esm_shims","import_variant","React","useState","init_esm_shims","React","useCallback","useMemo","DashboardPagesArrowViewer","onSelect","t","useTranslation","writeLog","useDevEnvironment","getExtensions","useExtensions","envConfig","useEnvConfig","dashboardPages","pagesOptions","useMemo","a","b","page","handleSubmit","useCallback","url","resolvePlatformUrl","PlatformType","openPage","React","SelectInput","init_esm_shims","React","CloseScreen","onClose","use_input_default","_","key","React","Box_default","Text","Trans","Key","DashboardPagesSelector","DashboardPagesScreen","onSelect","onClose","selectorType","_selectorType","setSelectorType","useState","React","DashboardPagesArrowViewer","DashboardPagesNumericViewer","CloseScreen","HomeScreen","onScreenChange","site","useSiteId","devServerUrl","https","writeLog","useDevEnvironment","hasSinglePlatform","hasExtensions","useExtensions","openDevServerInBrowser","openBrowser","React","Alert","Trans","Link","use_input_default","input","ScreenState","Box_default","Text","SuccessIcon","InfoIcon","Key","PointerIcon","PlatformType","DashboardPagesNumericViewer","DashboardPagesSelector","PlatformSelector","DevEnvLogsViewer","init_esm_shims","React","useState","useCallback","init_esm_shims","SiteSelectorScreen","onScreenChange","t","useTranslation","model","useProjectModel","setSite","useSiteId","reportError","useErrorReporter","error","setError","useState","handleError","useCallback","handleSubmit","site","ScreenState","e","React","SiteSelector","ErrorViewer","Alert","CloseScreen","DevCommandScreens","screen","setScreen","useState","ScreenState","React","HomeScreen","SiteSelectorScreen","selectorType","DashboardPagesScreen","DevCommand","https","React","SiteIdProvider","DevEnvironmentProvider","DevCommandScreens"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/DevCommand/index.ts","../src/components/DevCommand/DevCommand.tsx","../src/components/DevCommand/DevEnvironment.tsx","../src/components/DevCommand/useArmUpdater.ts","../src/components/DevCommand/useDevServer.ts","../src/vite/custom-logger.ts","../src/components/DevCommand/devEnvLogs/useDevEnvLogs.tsx","../src/files/dev.log.ts","../src/components/DevCommand/devEnvLogs/DevEnvLogLine.tsx","../src/components/DevCommand/useSiteOverrideUpdater.ts","../../site-override-client/src/index.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/useSiteOverrideClient.ts","../src/site-override/createSiteOverrides.ts","../../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/types.impl.ts","../src/components/DevCommand/DevCommandScreens.tsx","../src/components/DevCommand/HomeScreen.tsx","../src/site-id/index.ts","../src/components/DevCommand/screen-state.ts","../src/components/DevCommand/DevEnvLogsViewer.tsx","../src/components/extensions/PlatformSelector.tsx","../src/components/DashboardPages/DashboardPagesNumericViewer.tsx","../src/components/DashboardPages/DashboardPagesScreen.tsx","../src/components/DashboardPages/DashboardPagesArrowViewer.tsx","../src/components/CloseScreen/CloseScreen.tsx","../src/components/DevCommand/SiteSelectorScreen.tsx","../src/components/CloseScreen/index.tsx"],"sourcesContent":["export { DevCommand } from './DevCommand.js';\nexport { DevEnvironmentProvider } from './DevEnvironment.js';\n","import React, { type FC } from 'react';\nimport { SiteIdProvider } from '../../site-id/SiteIdProvider.js';\nimport { DevEnvironmentProvider } from './DevEnvironment.js';\nimport { DevCommandScreens } from './DevCommandScreens.js';\n\nexport const DevCommand: FC<{ https: boolean }> = ({ https }) => {\n return (\n <SiteIdProvider>\n <DevEnvironmentProvider https={https}>\n <DevCommandScreens />\n </DevEnvironmentProvider>\n </SiteIdProvider>\n );\n};\n","import React, {\n type FC,\n type ReactNode,\n createContext,\n useContext,\n} from 'react';\nimport { match } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { useAsync, Spinner } from '@wix/cli-ui-kit';\nimport { useErrorReporter } from '@wix/cli-error-reporting';\nimport { useProjectModel } from '../../model.js';\nimport { useArmUpdater } from './useArmUpdater.js';\nimport { useDevServer } from './useDevServer.js';\nimport {\n useDevEnvLogs,\n type DevEnvLog,\n type WriteLogFn,\n} from './devEnvLogs/useDevEnvLogs.js';\nimport { ArmTagProvider } from '../../context/armTag.js';\nimport { useSiteOverrideUpdater } from './useSiteOverrideUpdater.js';\n\ntype DevEnvironment = {\n siteOverrideId: string;\n https: boolean;\n devServerUrl: string;\n logs: DevEnvLog[];\n writeLog: WriteLogFn;\n};\n\nconst DevEnvironmentContext = createContext<DevEnvironment | null>(null);\n\nexport const DevEnvironmentProvider: FC<{\n https: boolean;\n children: ReactNode;\n}> = ({ https, children }) => {\n const { t } = useTranslation();\n const { reportError } = useErrorReporter();\n const createDevServer = useDevServer({ https });\n const createArmUpdater = useArmUpdater();\n const createSiteOverrideUpdater = useSiteOverrideUpdater();\n const { logs, writeLog } = useDevEnvLogs();\n const { watcher: projectModelWatcher } = useProjectModel();\n\n const { status } = useAsync(async () => {\n const { devServerUrl, devServer } = await createDevServer({\n projectModelWatcher,\n onLog(type, msg) {\n writeLog({ type, msg, prefix: 'vite' });\n },\n });\n\n const armTag = await createArmUpdater({\n devServerUrl,\n projectModelWatcher,\n onChange(changeType) {\n match(changeType, {\n 'change-received': () => {\n writeLog({ type: 'info', msg: t('dev_command.config_change') });\n },\n 'model-did-not-change': () => {\n writeLog({\n type: 'info',\n msg: t('dev_command.config_didnt_update'),\n });\n },\n 'model-updated': () => {\n devServer.ws.send({ type: 'full-reload' });\n writeLog({ type: 'info', msg: t('dev_command.config_update') });\n },\n });\n },\n onError(error) {\n reportError(error);\n writeLog({ type: 'error', error });\n writeLog({ type: 'info', msg: t('dev_command.config_didnt_update') });\n },\n });\n\n const siteOverrideId = await createSiteOverrideUpdater({\n projectModelWatcher,\n });\n\n return { devServerUrl, armTag, siteOverrideId, https };\n }, []);\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner text={t('dev_command.dev_environment.loading')} />,\n Success: ({ result: { devServerUrl, https, armTag, siteOverrideId } }) => (\n <DevEnvironmentContext.Provider\n value={{ devServerUrl, https, logs, writeLog, siteOverrideId }}\n >\n <ArmTagProvider armTag={armTag}>{children}</ArmTagProvider>\n </DevEnvironmentContext.Provider>\n ),\n });\n};\n\nexport function useDevEnvironment(): DevEnvironment {\n const context = useContext(DevEnvironmentContext);\n if (context === null) {\n throw new Error(\n 'useDevEnvironment() cannot be used without an <DevEnvironmentProvider>'\n );\n }\n return context;\n}\n","import { useCallback } from 'react';\nimport { match } from 'variant';\nimport { deepEqual } from 'fast-equals';\nimport { updateAppManifestWithBaseUrl } from '@wix/cli-app-manifest';\nimport { useARMClient } from '@wix/arm-client';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport { createAppManifest } from '../../app-manifest/create.js';\nimport { getComponentSourceBuilder } from '../../app-manifest/component-source.js';\nimport type {\n ChangeType,\n ProjectModelWatcher,\n} from '../../app-manifest/project-model-watcher.js';\nimport { readAppConfig, saveAppConfig } from '../../files/app.config.js';\nimport { useProjectModel, type ProjectModel } from '../../model.js';\n\nconst createAppManifestWithBaseUrl = async (\n model: ProjectModel,\n devServerUrl: string\n) => {\n const manifest = await createAppManifest({\n appId: model.config.appId,\n components: model.components,\n componentSourceBuilder: getComponentSourceBuilder({\n model,\n devServerUrl,\n }),\n });\n\n return updateAppManifestWithBaseUrl(manifest, devServerUrl);\n};\n\ninterface CreateOptions {\n devServerUrl: string;\n projectModelWatcher: ProjectModelWatcher;\n onChange: (changeType: ChangeType) => void;\n onError: (e: unknown) => void;\n}\n\nexport function useArmUpdater() {\n const { model } = useProjectModel();\n const writeDebugLog = useDebugLog();\n const { createAppRelease, updateAppRelease } = useARMClient();\n\n return useCallback(\n async ({\n devServerUrl,\n projectModelWatcher,\n onChange,\n onError,\n }: CreateOptions) => {\n const { projectId } = model.config;\n const appManifest = await createAppManifestWithBaseUrl(\n model,\n devServerUrl\n );\n const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);\n\n const createOrUpdateAppRelease = async (tag?: string) => {\n if (tag) {\n const updateState = await updateAppRelease(appManifest, tag);\n return match(updateState, {\n TagUpdated: () => tag,\n TagNotFound: ({ cause }) => {\n writeDebugLog(cause);\n return createAppRelease(appManifest, projectId);\n },\n });\n }\n return createAppRelease(appManifest, projectId);\n };\n\n const armTag = await createOrUpdateAppRelease(appConfig?.devArmTag);\n\n if (armTag !== appConfig?.devArmTag) {\n await saveAppConfig(model.projectFolder, { devArmTag: armTag }).catch(\n (error) => writeDebugLog(error)\n );\n }\n\n projectModelWatcher\n .onChange(async (newModel, changeType) => {\n try {\n if (changeType === 'model-updated') {\n if (newModel.components.length === 0) {\n return;\n }\n\n const updatedAppManifest = await createAppManifestWithBaseUrl(\n newModel,\n devServerUrl\n );\n\n if (!deepEqual(appManifest, updatedAppManifest)) {\n await updateAppRelease(updatedAppManifest, armTag);\n }\n }\n onChange(changeType);\n } catch (e) {\n onError(e);\n }\n })\n .onError(onError);\n\n return armTag;\n },\n [createAppRelease, model, updateAppRelease, writeDebugLog]\n );\n}\n","import { useRef, useCallback, useEffect } from 'react';\nimport { createServer, type ViteDevServer } from 'vite';\nimport { getViteConfig } from '../../vite/index.js';\nimport { getViteServerUrl } from '../../vite/vite-server-url.js';\nimport {\n createCustomLogger,\n type CustomLoggerOptions,\n} from '../../vite/custom-logger.js';\nimport type { ProjectModelWatcher } from '../../app-manifest/project-model-watcher.js';\nimport { useProjectModel } from '../../model.js';\nimport { ConfigType } from '../../vite/vite-config-options.js';\n\ninterface Options {\n projectModelWatcher: ProjectModelWatcher;\n onLog: CustomLoggerOptions['onLog'];\n}\n\nexport function useDevServer({ https }: { https: boolean }) {\n const devServerRef = useRef<ViteDevServer>();\n const { model } = useProjectModel();\n\n useEffect(() => {\n return () => {\n devServerRef.current?.close();\n };\n }, []);\n\n return useCallback(\n async ({ projectModelWatcher, onLog }: Options) => {\n const devServer = await createServer(\n await getViteConfig(model, {\n type: ConfigType.dev,\n https,\n projectModelWatcher,\n customLogger: createCustomLogger({ onLog }),\n })\n );\n devServerRef.current = devServer;\n\n await devServer.listen();\n\n return { devServerUrl: getViteServerUrl(devServer), devServer };\n },\n [model, https]\n );\n}\n","import type { Logger, Rollup } from 'vite';\n\nexport type LogType = 'error' | 'warning' | 'info';\n\nexport interface CustomLoggerOptions {\n onLog: (type: LogType, msg: string) => void;\n}\n\nexport function createCustomLogger({ onLog }: CustomLoggerOptions): Logger {\n const loggedErrors = new WeakSet<Error | Rollup.RollupError>();\n const warnedMessages = new Set<string>();\n\n const logger: Logger = {\n hasWarned: false,\n info(msg) {\n onLog('info', msg);\n },\n warn(msg) {\n logger.hasWarned = true;\n onLog('warning', msg);\n },\n warnOnce(msg) {\n if (warnedMessages.has(msg)) return;\n logger.hasWarned = true;\n onLog('warning', msg);\n warnedMessages.add(msg);\n },\n error(msg, opts) {\n logger.hasWarned = true;\n onLog('error', msg);\n if (opts?.error) {\n loggedErrors.add(opts.error);\n }\n },\n clearScreen() {},\n hasErrorLogged(error) {\n return loggedErrors.has(error);\n },\n };\n\n return logger;\n}\n","import React, {\n useCallback,\n useEffect,\n useState,\n useMemo,\n type ReactNode,\n type FC,\n} from 'react';\nimport { DEV_LOG_PATH } from '@wix/cli-app-definitions';\nimport { Trans } from '@wix/cli-i18n';\nimport { createRendererToString, Alert, Box, Text } from '@wix/cli-ui-kit';\nimport { DevLogStream } from '../../../files/dev.log.js';\nimport { useProjectModel } from '../../../model.js';\nimport type { LogType } from '../../../vite/custom-logger.js';\nimport { DevEnvLogLine } from './DevEnvLogLine.js';\n\ntype GenericLog = (\n | {\n type: LogType;\n msg: ReactNode;\n error?: never;\n }\n | {\n type: 'error';\n msg?: never;\n error: unknown;\n }\n) & { prefix?: LogPrefix };\n\ntype LogPrefix = 'app' | 'vite';\n\nexport type WriteLogFn = (log: GenericLog) => void;\n\nexport type DevEnvLog = GenericLog & {\n timestamp: Date;\n};\n\nconst ErrorMsg: FC = () => (\n <Box flexDirection=\"column\">\n <Alert type=\"error\">\n <Trans\n i18nKey=\"general.write_dev_log_failure.message\"\n components={[<Text bold />]}\n values={{ path: DEV_LOG_PATH }}\n />\n </Alert>\n <Box paddingTop={1}>\n <Alert type=\"insight\">\n <Trans i18nKey=\"general.write_dev_log_failure.hint\" />\n </Alert>\n </Box>\n </Box>\n);\n\nconst MAX_LOGS_TO_SHOW = 5;\n\nfunction isMessageFiltered(message: string) {\n if (/Port \\d{1,5} is in use, trying another one/.test(message)) {\n return true;\n }\n\n return false;\n}\n\nexport function useDevEnvLogs() {\n const { model } = useProjectModel();\n const [logs, setLogs] = useState<DevEnvLog[]>([]);\n\n const insertLog = useCallback((genericLog: GenericLog) => {\n const log = { ...genericLog, timestamp: new Date() };\n setLogs((logs) => {\n const newLogs = [...logs, log];\n if (newLogs.length > MAX_LOGS_TO_SHOW) {\n newLogs.shift();\n }\n return newLogs;\n });\n return log;\n }, []);\n\n const { renderer, stream } = useMemo(() => {\n return {\n renderer: createRendererToString(),\n stream: new DevLogStream(model.projectFolder, {\n onError() {\n insertLog({ type: 'error', msg: <ErrorMsg /> });\n },\n }),\n };\n }, [insertLog, model.projectFolder]);\n\n const writeLog = useCallback<WriteLogFn>(\n (genericLog) => {\n if (genericLog.msg && isMessageFiltered(genericLog.msg.toString())) {\n return;\n }\n\n const log = insertLog(genericLog);\n const content = renderer.render(<DevEnvLogLine {...log} />);\n\n stream.write(content);\n },\n [insertLog, renderer, stream]\n );\n\n useEffect(() => {\n return () => {\n renderer.unmount();\n stream.close();\n };\n }, [renderer, stream]);\n\n return { logs, writeLog };\n}\n","import { EOL } from 'node:os';\nimport { createWriteStream, type WriteStream } from 'node:fs';\nimport { getDevLogPath } from '@wix/cli-app-definitions';\n\nexport class DevLogStream {\n private drain = false;\n private readonly stream: WriteStream;\n\n constructor(\n projectFolder: string,\n private readonly opts: { onError: (err: Error) => void }\n ) {\n this.stream = createWriteStream(getDevLogPath(projectFolder), {\n flags: 'w',\n });\n\n this.stream.on('error', this.opts.onError);\n }\n\n write = (content: string) => {\n if (this.drain) {\n this.stream.once('drain', () => {\n this.drain = false;\n this.write(content);\n });\n return;\n }\n\n const written = this.stream.write(content.concat(EOL), (err) => {\n if (err) {\n this.opts.onError(err);\n }\n });\n if (!written) {\n this.drain = true;\n this.stream.once('drain', () => {\n this.drain = false;\n });\n }\n };\n\n close = () => {\n this.stream.close();\n };\n}\n","import React, { type FC } from 'react';\nimport { Box, Text } from '@wix/cli-ui-kit';\nimport { ErrorViewer } from '@wix/cli-error-reporting';\nimport type { DevEnvLog } from './useDevEnvLogs.js';\n\nexport const DevEnvLogLine: FC<DevEnvLog> = ({\n type,\n msg,\n error,\n prefix = 'app',\n timestamp,\n}) => {\n return (\n <Box columnGap={1}>\n <Box flexShrink={0}>\n <Text skin=\"secondary\">{timestamp.toLocaleTimeString()}</Text>\n </Box>\n <Box flexShrink={0}>\n <Text skin={type} bold>\n [{prefix}]\n </Text>\n </Box>\n <Box>\n {type === 'error' && error ? (\n <ErrorViewer error={error} />\n ) : typeof msg === 'string' ? (\n <Text>{msg}</Text>\n ) : (\n msg\n )}\n </Box>\n </Box>\n );\n};\n","import { useCallback } from 'react';\nimport { deepEqual } from 'fast-equals';\nimport { useSiteOverrideClient } from '@wix/site-override-client';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport type { ProjectModelWatcher } from '../../app-manifest/project-model-watcher.js';\nimport { useProjectModel } from '../../model.js';\nimport { createSiteOverrides } from '../../site-override/createSiteOverrides.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { readAppConfig, saveAppConfig } from '../../files/app.config.js';\n\nexport function useSiteOverrideUpdater() {\n const { model } = useProjectModel();\n const { site } = useSiteId();\n const writeDebugLog = useDebugLog();\n const { createOverride } = useSiteOverrideClient();\n\n return useCallback(\n async ({\n projectModelWatcher,\n }: {\n projectModelWatcher: ProjectModelWatcher;\n }) => {\n const { appId } = model.config;\n const appConfig = await readAppConfig(model.projectFolder, writeDebugLog);\n let overrides = createSiteOverrides(model) ?? {};\n\n const { id: siteOverrideId } = await createOverride({\n appId,\n siteId: site.id,\n overrides,\n siteOverrideId: appConfig?.devSiteOverrideId,\n });\n\n projectModelWatcher.onChange(async (newModel, changeType) => {\n if (changeType === 'model-updated') {\n const updatedOverrides = createSiteOverrides(newModel) ?? {};\n\n if (!deepEqual(overrides, updatedOverrides)) {\n await createOverride({\n appId,\n siteId: site.id,\n overrides: updatedOverrides,\n siteOverrideId,\n });\n overrides = updatedOverrides;\n }\n }\n });\n\n if (siteOverrideId !== appConfig?.devSiteOverrideId) {\n await saveAppConfig(model.projectFolder, {\n devSiteOverrideId: siteOverrideId,\n }).catch((error) => writeDebugLog(error));\n }\n\n return siteOverrideId;\n },\n [createOverride, model, site.id, writeDebugLog]\n );\n}\n","export { SiteOverrideClient } from './client.js';\nexport { useSiteOverrideClient } from './useSiteOverrideClient.js';\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 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: Record<string, ComponentOverride>;\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","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 { 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,"import React, { type FC, useState } from 'react';\nimport { match } from 'variant';\nimport { HomeScreen } from './HomeScreen.js';\nimport { SiteSelectorScreen } from './SiteSelectorScreen.js';\nimport { ScreenState } from './screen-state.js';\nimport { DashboardPagesScreen } from '../DashboardPages/DashboardPagesScreen.js';\n\nexport const DevCommandScreens: FC = () => {\n const [screen, setScreen] = useState<ScreenState>(ScreenState.Home());\n\n return match(screen, {\n Home: () => <HomeScreen onScreenChange={setScreen} />,\n SiteSelector: () => <SiteSelectorScreen onScreenChange={setScreen} />,\n DashboardPages: ({ selectorType }) => (\n <DashboardPagesScreen\n selectorType={selectorType}\n onSelect={() => setScreen(ScreenState.Home())}\n onClose={() => setScreen(ScreenState.Home())}\n />\n ),\n });\n};\n","import React, { type FC } from 'react';\nimport {\n Key,\n Box,\n Text,\n SuccessIcon,\n InfoIcon,\n PointerIcon,\n Link,\n useInput,\n Alert,\n} from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useSiteId } from '../../site-id/index.js';\nimport { ScreenState } from './screen-state.js';\nimport { useDevEnvironment } from './DevEnvironment.js';\nimport { DevEnvLogsViewer } from './DevEnvLogsViewer.js';\nimport { PlatformSelector } from '../extensions/PlatformSelector.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport { DashboardPagesNumericViewer } from '../DashboardPages/DashboardPagesNumericViewer.js';\nimport { DashboardPagesSelector } from '../DashboardPages/DashboardPagesScreen.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const HomeScreen: FC<Props> = ({ onScreenChange }) => {\n const { site } = useSiteId();\n const { devServerUrl, https, writeLog } = useDevEnvironment();\n const { hasSinglePlatform, hasExtensions } = useExtensions();\n\n const openDevServerInBrowser = async () => {\n try {\n await openBrowser(devServerUrl);\n } catch (error) {\n writeLog({\n type: 'error',\n prefix: 'app',\n msg: (\n <Alert type=\"error\">\n <Trans\n i18nKey=\"dev_command.dev_environment.https_url.failed_to_open\"\n components={[<Link url={devServerUrl} />]}\n />\n </Alert>\n ),\n });\n }\n };\n\n useInput(async (input) => {\n if (input === 'c') {\n onScreenChange(ScreenState.SiteSelector());\n }\n if (input === 'a' && https) {\n await openDevServerInBrowser();\n }\n });\n\n return (\n <>\n <Box gap={1}>\n <Text skin=\"success\">\n <SuccessIcon />\n </Text>\n <Trans i18nKey=\"dev_command.dev_environment.started\" />\n </Box>\n <Box gap={1}>\n <InfoIcon />\n <Trans\n i18nKey=\"dev_command.dev_environment.url\"\n components={[<Link url={devServerUrl} />]}\n />\n </Box>\n {https && (\n <Box paddingLeft={2}>\n <Text skin=\"secondary\">\n <Trans\n components={[<Key value=\"A\" />]}\n i18nKey=\"dev_command.dev_environment.https_url.open_info\"\n />\n </Text>\n </Box>\n )}\n <Box gap={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"general.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box paddingLeft={2}>\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"dev_command.dev_site.change\"\n components={[<Key value=\"C\" />]}\n />\n </Text>\n </Box>\n <Box paddingTop={1} paddingBottom={1} flexDirection=\"column\">\n {!hasExtensions() ? (\n <Trans\n i18nKey=\"general.platform.none\"\n // Original link is:\n // https://dev.wix.com/docs/build-apps/developer-tools/cli/get-started/about-the-wix-cli-for-apps\n components={[<Link url=\"https://wix.to/b7o4Ml0\" />]}\n />\n ) : (\n <>\n <Trans\n i18nKey=\"general.view_changes\"\n components={[<Text skin=\"secondary\" />]}\n />\n {hasSinglePlatform(PlatformType.Dashboard()) &&\n hasExtensions('DashboardPage') ? (\n <DashboardPagesNumericViewer\n maxPages={3}\n onViewMore={() =>\n onScreenChange(\n ScreenState.DashboardPages({\n selectorType: DashboardPagesSelector.Arrow(),\n })\n )\n }\n />\n ) : (\n <PlatformSelector\n onMultipleDashboardPagesSelection={() =>\n onScreenChange(\n ScreenState.DashboardPages({\n selectorType: DashboardPagesSelector.Numeric(),\n })\n )\n }\n />\n )}\n </>\n )}\n </Box>\n <DevEnvLogsViewer />\n </>\n );\n};\n","export { SiteIdProvider } from './SiteIdProvider.js';\nexport { useSiteId } from './useSiteId.js';\n","import { fields, variant, type VariantOf } from 'variant';\nimport type { DashboardPagesSelector } from '../DashboardPages/DashboardPagesScreen.js';\n\nexport const ScreenState = variant({\n Home: {},\n SiteSelector: {},\n DashboardPages: fields<{ selectorType: DashboardPagesSelector }>(),\n});\n\nexport type ScreenState = VariantOf<typeof ScreenState>;\n","import React, { type FC } from 'react';\nimport { Text, Box } from '@wix/cli-ui-kit';\nimport { useTranslation, Trans } from '@wix/cli-i18n';\nimport { DEV_LOG_PATH } from '@wix/cli-app-definitions';\nimport { useDevEnvironment } from './DevEnvironment.js';\nimport { DevEnvLogLine } from './devEnvLogs/DevEnvLogLine.js';\n\nexport const DevEnvLogsViewer: FC = () => {\n const { t } = useTranslation();\n const { logs } = useDevEnvironment();\n const isEmpty = !logs.length;\n\n return (\n <>\n <Box gap={1}>\n <Trans\n i18nKey=\"dev_command.dev_env_logs.title\"\n components={[<Text skin={isEmpty ? 'secondary' : 'standard'} />]}\n values={{ path: DEV_LOG_PATH }}\n />\n </Box>\n {isEmpty && (\n <Text skin=\"secondary\">{t('dev_command.dev_env_logs.empty')}</Text>\n )}\n {logs.map((log) => {\n return <DevEnvLogLine key={log.timestamp.getTime()} {...log} />;\n })}\n </>\n );\n};\n","import React, { useCallback, type FC, useMemo } from 'react';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { PointerSmallIcon, Key, useInput, Text, Box } from '@wix/cli-ui-kit';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from './useExtensions.js';\nimport { openPage, resolvePlatformUrl, useEnvConfig } from './utils.js';\nimport { useDevEnvironment } from '../DevCommand/DevEnvironment.js';\n\ntype PlatformOptionProps = {\n inputKey: string;\n label: string;\n suffix?: React.ReactNode;\n disabled?: boolean;\n};\n\nconst PlatformOption: FC<PlatformOptionProps> = ({\n label,\n inputKey,\n suffix,\n disabled,\n}) => {\n const getTextSkin = () => (disabled ? 'secondary' : 'standard');\n\n return (\n <Box>\n <Box marginRight={1}>\n <Box marginRight={1}>\n <Text skin={getTextSkin()}>\n <PointerSmallIcon /> <Key value={inputKey} /> -\n </Text>\n </Box>\n <Box gap={1}>\n <Text skin={getTextSkin()}>{label}</Text>\n </Box>\n </Box>\n <Text skin={getTextSkin()}>{suffix}</Text>\n </Box>\n );\n};\n\ninterface PlatformSelector {\n onMultipleDashboardPagesSelection: () => void;\n}\n\nexport const PlatformSelector: FC<PlatformSelector> = ({\n onMultipleDashboardPagesSelection,\n}) => {\n const { writeLog, siteOverrideId } = useDevEnvironment();\n const { t } = useTranslation();\n const { isPlatformExists, getExtensions } = useExtensions();\n const envConfig = useEnvConfig();\n const dashboardPages = getExtensions('DashboardPage');\n const openPlatform = useCallback(\n (platformType: PlatformType) => {\n openPage(\n {\n title: platformType.type,\n url: resolvePlatformUrl({\n envConfig,\n platformType,\n siteOverrideId,\n }),\n },\n writeLog\n );\n },\n [envConfig, writeLog, siteOverrideId]\n );\n\n useInput((input) => {\n if (input === 'd') {\n if (dashboardPages.length === 0) {\n openPlatform(PlatformType.Dashboard());\n } else if (dashboardPages.length === 1) {\n openPlatform(\n PlatformType.Dashboard({ route: dashboardPages[0].route })\n );\n } else {\n onMultipleDashboardPagesSelection();\n }\n }\n if (input === 'e') {\n openPlatform(PlatformType.Editor());\n }\n if (input === 's' && envConfig.site.viewUrl) {\n openPlatform(PlatformType.Site());\n }\n });\n\n const dashboardOptionSuffix = useMemo(() => {\n if (dashboardPages.length === 0) {\n return null;\n }\n if (dashboardPages.length === 1) {\n return <Text skin=\"secondary\"> - {dashboardPages[0].route}</Text>;\n }\n return <Text>{String.fromCodePoint(0x25bc)}</Text>; // ▼\n }, [dashboardPages]);\n\n return (\n <Box paddingLeft={2} flexDirection=\"column\">\n {isPlatformExists(PlatformType.Site()) && (\n <PlatformOption\n inputKey=\"S\"\n label={\n envConfig.site.viewUrl\n ? t('general.platform.site')\n : t('general.platform.unpublished_site')\n }\n disabled={!envConfig.site.viewUrl}\n />\n )}\n {isPlatformExists(PlatformType.Editor()) && (\n <PlatformOption inputKey=\"E\" label={t('general.platform.editor')} />\n )}\n {isPlatformExists(PlatformType.Dashboard()) && (\n <PlatformOption\n inputKey=\"D\"\n label={t('general.platform.dashboard')}\n suffix={dashboardOptionSuffix}\n />\n )}\n </Box>\n );\n};\n","import React, { type FC, type ReactNode, useMemo, useCallback } from 'react';\nimport { Box, Text, Key, PointerSmallIcon, useInput } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport {\n openPage,\n resolvePlatformUrl,\n useEnvConfig,\n} from '../extensions/utils.js';\nimport { useDevEnvironment } from '../DevCommand/DevEnvironment.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\n\nconst MAX_PAGES = 9;\n\nconst ListItem: FC<{\n itemNumber: number;\n children: ReactNode;\n}> = ({ itemNumber, children }) => {\n const keyValue = `${itemNumber}`;\n return (\n <Text>\n <PointerSmallIcon /> <Key value={keyValue} /> - {children}\n </Text>\n );\n};\n\ninterface NumericViewerProps {\n onViewMore: () => void;\n onSelect?: (page: DevCenterComponent<'DashboardPage'>) => void;\n maxPages?: number;\n}\n\nexport const DashboardPagesNumericViewer: FC<NumericViewerProps> = ({\n onViewMore,\n onSelect,\n maxPages = MAX_PAGES,\n}) => {\n const { writeLog } = useDevEnvironment();\n const { getExtensions } = useExtensions();\n const envConfig = useEnvConfig();\n const dashboardPages = getExtensions('DashboardPage');\n\n const numberOfPagesToShow = useMemo(\n () =>\n dashboardPages.length <= maxPages ? dashboardPages.length : maxPages - 1,\n [dashboardPages, maxPages]\n );\n\n useInput((input) => {\n const inputNumber = Number(input);\n const viewMoreNumber = numberOfPagesToShow + 1;\n\n if (inputNumber > 0 && inputNumber <= viewMoreNumber) {\n const page = visiblePages.at(inputNumber - 1);\n const isViewMore = inputNumber === viewMoreNumber;\n\n if (page) {\n return handleSelect(page);\n } else if (isViewMore) {\n return onViewMore?.();\n }\n }\n });\n\n const { visiblePages, showMore } = useMemo(() => {\n return {\n visiblePages: dashboardPages\n .sort((a, b) => a.route.localeCompare(b.route))\n .slice(0, numberOfPagesToShow),\n showMore: dashboardPages.length > numberOfPagesToShow,\n };\n }, [dashboardPages, numberOfPagesToShow]);\n\n const handleSelect = useCallback(\n async (page: DevCenterComponent<'DashboardPage'>) => {\n const url = resolvePlatformUrl({\n envConfig,\n platformType: PlatformType.Dashboard({ route: page.route }),\n });\n await openPage({ url, title: page.title }, writeLog);\n onSelect?.(page);\n },\n [onSelect, writeLog, envConfig]\n );\n\n return (\n <>\n <Trans i18nKey=\"general.dashboard_pages_viewer.title\" />\n <Box paddingLeft={2} flexDirection=\"column\">\n {visiblePages.map((page, index) => (\n <ListItem key={page.route} itemNumber={index + 1}>\n {page.title} (<Text skin=\"secondary\">{page.route}</Text>)\n </ListItem>\n ))}\n {showMore && (\n <ListItem itemNumber={maxPages}>\n <Trans i18nKey=\"general.dashboard_pages_viewer.show_more\" />\n </ListItem>\n )}\n </Box>\n </>\n );\n};\n","import React, { type FC, useState } from 'react';\nimport { match, variant, type VariantOf } from 'variant';\nimport { DashboardPagesNumericViewer } from './DashboardPagesNumericViewer.js';\nimport { DashboardPagesArrowViewer } from './DashboardPagesArrowViewer.js';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\n\nexport const DashboardPagesSelector = variant({\n Arrow: {},\n Numeric: {},\n});\n\nexport type DashboardPagesSelector = VariantOf<typeof DashboardPagesSelector>;\n\ninterface Props {\n onSelect?: (page: DevCenterComponent<'DashboardPage'>) => void;\n onClose: () => void;\n selectorType: DashboardPagesSelector;\n}\n\nexport const DashboardPagesScreen: FC<Props> = ({\n onSelect,\n onClose,\n selectorType,\n}) => {\n const [_selectorType, setSelectorType] =\n useState<DashboardPagesSelector>(selectorType);\n\n return (\n <>\n {match(_selectorType, {\n Arrow: () => <DashboardPagesArrowViewer onSelect={onSelect} />,\n Numeric: () => (\n <DashboardPagesNumericViewer\n onSelect={onSelect}\n onViewMore={() => setSelectorType(DashboardPagesSelector.Arrow())}\n />\n ),\n })}\n <CloseScreen onClose={onClose} />\n </>\n );\n};\n","import React, { type FC, useCallback, useMemo } from 'react';\nimport { SelectInput, type SelectOption } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport {\n openPage,\n resolvePlatformUrl,\n useEnvConfig,\n} from '../extensions/utils.js';\nimport { useDevEnvironment } from '../DevCommand/DevEnvironment.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\n\ninterface Props {\n onSelect?: (option: DevCenterComponent<'DashboardPage'>) => void;\n}\n\nexport const DashboardPagesArrowViewer: FC<Props> = ({ onSelect }) => {\n const { t } = useTranslation();\n const { writeLog } = useDevEnvironment();\n const { getExtensions } = useExtensions();\n const envConfig = useEnvConfig();\n const dashboardPages = getExtensions('DashboardPage');\n const pagesOptions = useMemo(\n () =>\n dashboardPages\n .sort((a, b) => a.route.localeCompare(b.route))\n .map((page) => ({\n key: page.route,\n title: page.title,\n description: page.route,\n value: page,\n })),\n [dashboardPages]\n );\n const handleSubmit = useCallback(\n ({ value: page }: SelectOption<DevCenterComponent<'DashboardPage'>>) => {\n const url = resolvePlatformUrl({\n envConfig,\n platformType: PlatformType.Dashboard({ route: page.route }),\n });\n openPage({ url, title: page.title }, writeLog);\n onSelect?.(page);\n },\n [onSelect, writeLog, envConfig]\n );\n\n return (\n <SelectInput<DevCenterComponent<'DashboardPage'>>\n label={t('dev_command.dashboard_pages_screen.select_label')}\n options={pagesOptions}\n onSubmit={handleSubmit}\n />\n );\n};\n","import React, { type FC } from 'react';\nimport { Key, Box, Text, useInput } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\n\ninterface Props {\n onClose: () => void;\n}\n\nexport const CloseScreen: FC<Props> = ({ onClose }) => {\n useInput((_, key) => {\n if (key.escape) {\n onClose();\n }\n });\n\n return (\n <Box paddingTop={1}>\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"general.close_screen\"\n components={[<Key value=\"esc\" />]}\n />\n </Text>\n </Box>\n );\n};\n","import React, { type FC, useState, useCallback } from 'react';\nimport { Alert } from '@wix/cli-ui-kit';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport type { Site } from '@wix/site-list-client';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { SiteSelector } from '@wix/cli-site-selector';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/index.js';\nimport { CloseScreen } from '../CloseScreen';\nimport { ScreenState } from './screen-state.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const SiteSelectorScreen: FC<Props> = ({ onScreenChange }) => {\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const { setSite } = useSiteId();\n const { reportError } = useErrorReporter();\n const [error, setError] = useState<unknown>(null);\n\n const handleError = useCallback(\n (error: unknown) => {\n reportError(error);\n setError(error);\n },\n [reportError, setError]\n );\n\n const handleSubmit = useCallback(\n async (site: Site) => {\n try {\n await setSite(site);\n onScreenChange(ScreenState.Home());\n } catch (e) {\n handleError(e);\n }\n },\n [setSite, onScreenChange, handleError]\n );\n\n return (\n <>\n <SiteSelector\n appId={model.config.appId}\n onSubmit={handleSubmit}\n onError={handleError}\n />\n {error && (\n <ErrorViewer\n error={error}\n systemErrorOverride={\n <Alert type=\"error\">{t('dev_command.site_selector.error')}</Alert>\n }\n />\n )}\n <CloseScreen onClose={() => onScreenChange(ScreenState.Home())} />\n </>\n );\n};\n","export { CloseScreen } from './CloseScreen.js';\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","React","init_esm_shims","import_variant","React","createContext","useContext","init_esm_shims","import_variant","useCallback","createAppManifestWithBaseUrl","model","devServerUrl","manifest","createAppManifest","getComponentSourceBuilder","updateAppManifestWithBaseUrl","useArmUpdater","useProjectModel","writeDebugLog","useDebugLog","createAppRelease","updateAppRelease","useARMClient","useCallback","projectModelWatcher","onChange","onError","projectId","appManifest","appConfig","readAppConfig","armTag","tag","updateState","cause","saveAppConfig","error","newModel","changeType","updatedAppManifest","deepEqual","e","init_esm_shims","useRef","useCallback","useEffect","createServer","init_esm_shims","createCustomLogger","onLog","loggedErrors","warnedMessages","logger","msg","opts","error","useDevServer","https","devServerRef","useRef","model","useProjectModel","useEffect","useCallback","projectModelWatcher","onLog","devServer","createServer","getViteConfig","createCustomLogger","getViteServerUrl","init_esm_shims","React","useCallback","useEffect","useState","useMemo","init_esm_shims","EOL","createWriteStream","DevLogStream","projectFolder","opts","createWriteStream","getDevLogPath","content","EOL","err","init_esm_shims","React","DevEnvLogLine","type","msg","error","prefix","timestamp","React","Box_default","Text","ErrorViewer","ErrorMsg","React","Box_default","Alert","Trans","Text","DEV_LOG_PATH","MAX_LOGS_TO_SHOW","isMessageFiltered","message","useDevEnvLogs","model","useProjectModel","logs","setLogs","useState","insertLog","useCallback","genericLog","log","newLogs","renderer","stream","useMemo","createRendererToString","DevLogStream","writeLog","content","DevEnvLogLine","useEffect","init_esm_shims","useCallback","init_esm_shims","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","init_esm_shims","useMemo","useSiteOverrideClient","httpClient","useHttpClient","useMemo","SiteOverrideClient","init_esm_shims","import_variant","init_esm_shims","Type","createSiteOverrides","model","componentsToOverride","DevCenterComponent","acc","component","paramsOverride","Type","useSiteOverrideUpdater","model","useProjectModel","site","useSiteId","writeDebugLog","useDebugLog","createOverride","useSiteOverrideClient","useCallback","projectModelWatcher","appId","appConfig","readAppConfig","overrides","createSiteOverrides","siteOverrideId","newModel","changeType","updatedOverrides","deepEqual","saveAppConfig","error","DevEnvironmentContext","createContext","DevEnvironmentProvider","https","children","t","useTranslation","reportError","useErrorReporter","createDevServer","useDevServer","createArmUpdater","useArmUpdater","createSiteOverrideUpdater","useSiteOverrideUpdater","logs","writeLog","useDevEnvLogs","projectModelWatcher","useProjectModel","status","useAsync","devServerUrl","devServer","type","msg","armTag","changeType","error","siteOverrideId","React","Spinner","ArmTagProvider","useDevEnvironment","context","useContext","init_esm_shims","import_variant","React","useState","init_esm_shims","React","init_esm_shims","init_esm_shims","import_variant","ScreenState","init_esm_shims","React","DevEnvLogsViewer","t","useTranslation","logs","useDevEnvironment","isEmpty","React","Box_default","Trans","Text","DEV_LOG_PATH","log","DevEnvLogLine","init_esm_shims","React","useCallback","useMemo","PlatformOption","label","inputKey","suffix","disabled","getTextSkin","React","Box_default","Text","PointerSmallIcon","Key","PlatformSelector","onMultipleDashboardPagesSelection","writeLog","siteOverrideId","useDevEnvironment","t","useTranslation","isPlatformExists","getExtensions","useExtensions","envConfig","useEnvConfig","dashboardPages","openPlatform","useCallback","platformType","openPage","resolvePlatformUrl","use_input_default","input","PlatformType","dashboardOptionSuffix","useMemo","init_esm_shims","React","useMemo","useCallback","MAX_PAGES","ListItem","itemNumber","children","keyValue","React","Text","PointerSmallIcon","Key","DashboardPagesNumericViewer","onViewMore","onSelect","maxPages","writeLog","useDevEnvironment","getExtensions","useExtensions","envConfig","useEnvConfig","dashboardPages","numberOfPagesToShow","useMemo","use_input_default","input","inputNumber","viewMoreNumber","page","visiblePages","isViewMore","handleSelect","showMore","a","b","useCallback","url","resolvePlatformUrl","PlatformType","openPage","Trans","Box_default","index","init_esm_shims","import_variant","React","useState","init_esm_shims","React","useCallback","useMemo","DashboardPagesArrowViewer","onSelect","t","useTranslation","writeLog","useDevEnvironment","getExtensions","useExtensions","envConfig","useEnvConfig","dashboardPages","pagesOptions","useMemo","a","b","page","handleSubmit","useCallback","url","resolvePlatformUrl","PlatformType","openPage","React","SelectInput","init_esm_shims","React","CloseScreen","onClose","use_input_default","_","key","React","Box_default","Text","Trans","Key","DashboardPagesSelector","DashboardPagesScreen","onSelect","onClose","selectorType","_selectorType","setSelectorType","useState","React","DashboardPagesArrowViewer","DashboardPagesNumericViewer","CloseScreen","HomeScreen","onScreenChange","site","useSiteId","devServerUrl","https","writeLog","useDevEnvironment","hasSinglePlatform","hasExtensions","useExtensions","openDevServerInBrowser","openBrowser","React","Alert","Trans","Link","use_input_default","input","ScreenState","Box_default","Text","SuccessIcon","InfoIcon","Key","PointerIcon","PlatformType","DashboardPagesNumericViewer","DashboardPagesSelector","PlatformSelector","DevEnvLogsViewer","init_esm_shims","React","useState","useCallback","init_esm_shims","SiteSelectorScreen","onScreenChange","t","useTranslation","model","useProjectModel","setSite","useSiteId","reportError","useErrorReporter","error","setError","useState","handleError","useCallback","handleSubmit","site","ScreenState","e","React","SiteSelector","ErrorViewer","Alert","CloseScreen","DevCommandScreens","screen","setScreen","useState","ScreenState","React","HomeScreen","SiteSelectorScreen","selectorType","DashboardPagesScreen","DevCommand","https","React","SiteIdProvider","DevEnvironmentProvider","DevCommandScreens"]}
|