@wix/cli-app 1.1.29 → 1.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/build/CreateVersionCommand-5BULGDHW.js +4 -0
  2. package/build/CreateVersionCommand-5BULGDHW.js.map +1 -0
  3. package/build/DevCommand-MXZUVA5G.js +4 -0
  4. package/build/{DevCommand-633NWCLQ.js.map → DevCommand-MXZUVA5G.js.map} +1 -1
  5. package/build/GenerateCommand-7ASJKBK2.js +99 -0
  6. package/build/{GenerateCommand-34IW76Y4.js.map → GenerateCommand-7ASJKBK2.js.map} +1 -1
  7. package/build/LogsCommand-KEFNJUBL.js +4 -0
  8. package/build/{LogsCommand-GU5NEGDM.js.map → LogsCommand-KEFNJUBL.js.map} +1 -1
  9. package/build/PreviewCommand-BWLPYFTW.js +4 -0
  10. package/build/ServeCommand-BH655VZV.js +4 -0
  11. package/build/{ServeCommand-MAYZIVWR.js.map → ServeCommand-BH655VZV.js.map} +1 -1
  12. package/build/{build-C2QHH4GM.js → build-OKG7MQPN.js} +2 -2
  13. package/build/chunk-533OQ5SU.js +4 -0
  14. package/build/{chunk-AJDTZZ2Y.js.map → chunk-533OQ5SU.js.map} +1 -1
  15. package/build/{chunk-KNRVYLFR.js → chunk-AAPM44JZ.js} +2 -2
  16. package/build/{chunk-QCSHQZSL.js → chunk-AC2U3YAW.js} +3 -3
  17. package/build/{chunk-QCSHQZSL.js.map → chunk-AC2U3YAW.js.map} +1 -1
  18. package/build/{chunk-6QCZ66ZY.js → chunk-BO3GDVSJ.js} +2 -2
  19. package/build/chunk-BUB7G3II.js +4 -0
  20. package/build/{chunk-FE7W5QGG.js.map → chunk-BUB7G3II.js.map} +1 -1
  21. package/build/chunk-DGSU23ZZ.js +4 -0
  22. package/build/{chunk-F2BT3QI2.js.map → chunk-DGSU23ZZ.js.map} +1 -1
  23. package/build/chunk-DPJN7TRY.js +4 -0
  24. package/build/{chunk-6LHDB57R.js.map → chunk-DPJN7TRY.js.map} +1 -1
  25. package/build/{chunk-H7YD4ZIQ.js → chunk-DQQG35J6.js} +2 -2
  26. package/build/chunk-DRRMAC33.js +100 -0
  27. package/build/chunk-DRRMAC33.js.map +1 -0
  28. package/build/chunk-EGB6BHIM.js +4 -0
  29. package/build/{chunk-WCCMJGPW.js.map → chunk-EGB6BHIM.js.map} +1 -1
  30. package/build/chunk-HNCYDCAD.js +116 -0
  31. package/build/chunk-HNCYDCAD.js.map +1 -0
  32. package/build/chunk-IMUWPUOG.js +4 -0
  33. package/build/chunk-IMUWPUOG.js.map +1 -0
  34. package/build/chunk-J5ANBYWF.js +11 -0
  35. package/build/chunk-J5ANBYWF.js.map +1 -0
  36. package/build/chunk-LE2AC3SJ.js +4 -0
  37. package/build/{chunk-MPXGERTE.js → chunk-MB3D7Y3B.js} +2 -2
  38. package/build/{chunk-A34XNN7U.js → chunk-NXUGQOWV.js} +36 -36
  39. package/build/{chunk-A34XNN7U.js.map → chunk-NXUGQOWV.js.map} +1 -1
  40. package/build/{chunk-FZZXP2P4.js → chunk-P2MQOXIV.js} +2 -2
  41. package/build/{chunk-FZZXP2P4.js.map → chunk-P2MQOXIV.js.map} +1 -1
  42. package/build/chunk-QP4M2ZZS.js +4 -0
  43. package/build/{chunk-SOHGHBBX.js.map → chunk-QP4M2ZZS.js.map} +1 -1
  44. package/build/chunk-U2XLB5AO.js +4 -0
  45. package/build/chunk-U2XLB5AO.js.map +1 -0
  46. package/build/chunk-VZ2WROQY.js +4 -0
  47. package/build/{chunk-LMRZDSMG.js.map → chunk-VZ2WROQY.js.map} +1 -1
  48. package/build/index.js +2 -2
  49. package/build/index.js.map +1 -1
  50. package/build/preview-A2JB6NDU.js +4 -0
  51. package/build/{preview-M5WLJYGF.js.map → preview-A2JB6NDU.js.map} +1 -1
  52. package/build/render-command-CHJCQHTD.js +4 -0
  53. package/build/{render-command-NIHYATMR.js.map → render-command-CHJCQHTD.js.map} +1 -1
  54. package/package.json +6 -6
  55. package/build/CreateVersionCommand-DGIXNZES.js +0 -4
  56. package/build/CreateVersionCommand-DGIXNZES.js.map +0 -1
  57. package/build/DevCommand-633NWCLQ.js +0 -4
  58. package/build/GenerateCommand-34IW76Y4.js +0 -99
  59. package/build/LogsCommand-GU5NEGDM.js +0 -4
  60. package/build/PreviewCommand-TVARD4U7.js +0 -4
  61. package/build/ServeCommand-MAYZIVWR.js +0 -4
  62. package/build/chunk-3P4K75OM.js +0 -19
  63. package/build/chunk-3P4K75OM.js.map +0 -1
  64. package/build/chunk-4PUNWCPT.js +0 -4
  65. package/build/chunk-4PUNWCPT.js.map +0 -1
  66. package/build/chunk-6LHDB57R.js +0 -4
  67. package/build/chunk-AJDTZZ2Y.js +0 -4
  68. package/build/chunk-BW2SFAIF.js +0 -4
  69. package/build/chunk-BW2SFAIF.js.map +0 -1
  70. package/build/chunk-E74YEX6I.js +0 -11
  71. package/build/chunk-E74YEX6I.js.map +0 -1
  72. package/build/chunk-F2BT3QI2.js +0 -4
  73. package/build/chunk-FE7W5QGG.js +0 -4
  74. package/build/chunk-FYEWVXGB.js +0 -4
  75. package/build/chunk-FYEWVXGB.js.map +0 -1
  76. package/build/chunk-KXT7H3VS.js +0 -4
  77. package/build/chunk-LMRZDSMG.js +0 -4
  78. package/build/chunk-NVCJNH3P.js +0 -87
  79. package/build/chunk-NVCJNH3P.js.map +0 -1
  80. package/build/chunk-RJ3MQM5O.js +0 -21
  81. package/build/chunk-RJ3MQM5O.js.map +0 -1
  82. package/build/chunk-SOHGHBBX.js +0 -4
  83. package/build/chunk-UQBGYX5T.js +0 -4
  84. package/build/chunk-UQBGYX5T.js.map +0 -1
  85. package/build/chunk-VVBF2YKE.js +0 -99
  86. package/build/chunk-VVBF2YKE.js.map +0 -1
  87. package/build/chunk-WCCMJGPW.js +0 -4
  88. package/build/preview-M5WLJYGF.js +0 -4
  89. package/build/render-command-NIHYATMR.js +0 -4
  90. /package/build/{PreviewCommand-TVARD4U7.js.map → PreviewCommand-BWLPYFTW.js.map} +0 -0
  91. /package/build/{build-C2QHH4GM.js.map → build-OKG7MQPN.js.map} +0 -0
  92. /package/build/{chunk-KNRVYLFR.js.map → chunk-AAPM44JZ.js.map} +0 -0
  93. /package/build/{chunk-6QCZ66ZY.js.map → chunk-BO3GDVSJ.js.map} +0 -0
  94. /package/build/{chunk-H7YD4ZIQ.js.map → chunk-DQQG35J6.js.map} +0 -0
  95. /package/build/{chunk-KXT7H3VS.js.map → chunk-LE2AC3SJ.js.map} +0 -0
  96. /package/build/{chunk-MPXGERTE.js.map → chunk-MB3D7Y3B.js.map} +0 -0
@@ -1,4 +1,4 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
- import{Sa as i,aa as d}from"./chunk-VVBF2YKE.js";import{a as b,b as D}from"./chunk-3P4K75OM.js";import{e as r,h as p}from"./chunk-V4TR6DCM.js";p();var n=r(b(),1),u=r(D(),1);var E=(0,u.typeCatalog)(d);function C(){let{model:t}=i(),e=(0,n.useMemo)(()=>{let o=t.components.reduce((s,a)=>(s[a.type].push(a),s),{DashboardPage:[],DashboardSidebarCategory:[],EmbeddedScript:[],CustomElement:[],DashboardPlugin:[],DashboardMenuPlugin:[],DashboardModal:[],Topology:[],Api:[],Event:[],ServicePlugin:[]});return o.DashboardPage=o.DashboardPage?.sort((s,a)=>s.route.localeCompare(a.route)),o},[t.components]),h=(0,n.useMemo)(()=>[...e.DashboardPage,...e.DashboardMenuPlugin,...e.DashboardPlugin,...e.DashboardModal],[e]),l=(0,n.useCallback)(o=>o?e[o].length>0:t.components.length>0,[e,t.components]),m=(0,n.useCallback)(o=>e[o],[e]);return{dashboardExtensions:h,getExtensions:m,hasExtensions:l}}export{C as a};
4
- //# sourceMappingURL=chunk-6QCZ66ZY.js.map
3
+ import{db as i,ma as d}from"./chunk-HNCYDCAD.js";import{a as b,b as D}from"./chunk-DRRMAC33.js";import{e as r,h as p}from"./chunk-V4TR6DCM.js";p();var n=r(b(),1),u=r(D(),1);var E=(0,u.typeCatalog)(d);function C(){let{model:t}=i(),e=(0,n.useMemo)(()=>{let o=t.components.reduce((s,a)=>(s[a.type].push(a),s),{DashboardPage:[],DashboardSidebarCategory:[],EmbeddedScript:[],CustomElement:[],DashboardPlugin:[],DashboardMenuPlugin:[],DashboardModal:[],Topology:[],Api:[],Event:[],ServicePlugin:[]});return o.DashboardPage=o.DashboardPage?.sort((s,a)=>s.route.localeCompare(a.route)),o},[t.components]),h=(0,n.useMemo)(()=>[...e.DashboardPage,...e.DashboardMenuPlugin,...e.DashboardPlugin,...e.DashboardModal],[e]),l=(0,n.useCallback)(o=>o?e[o].length>0:t.components.length>0,[e,t.components]),m=(0,n.useCallback)(o=>e[o],[e]);return{dashboardExtensions:h,getExtensions:m,hasExtensions:l}}export{C as a};
4
+ //# sourceMappingURL=chunk-BO3GDVSJ.js.map
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{Ka as e,u as r}from"./chunk-HNCYDCAD.js";import{a as m}from"./chunk-DRRMAC33.js";import{e as t,h as i}from"./chunk-V4TR6DCM.js";i();var p=t(m(),1);function f(){let o=r();return(0,p.useMemo)(()=>e(o),[o])}i();export{f as a};
4
+ //# sourceMappingURL=chunk-BUB7G3II.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bi/useWixCliAppBi.ts","../src/bi/index.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliAppBiEvents } from './events.js';\n\nexport function useWixCliAppBi() {\n const biLogger = useBiLogger();\n return useMemo(() => wixCliAppBiEvents(biLogger), [biLogger]);\n}\n","export { useWixCliAppBi } from './useWixCliAppBi.js';\n"],"mappings":";;wKAAAA,IAAA,IAAAC,EAAwB,SAIjB,SAASC,GAAiB,CAC/B,IAAMC,EAAWC,EAAY,EAC7B,SAAO,WAAQ,IAAMC,EAAkBF,CAAQ,EAAG,CAACA,CAAQ,CAAC,CAC9D,CCPAG","names":["init_esm_shims","import_react","useWixCliAppBi","biLogger","useBiLogger","wixCliAppBiEvents","init_esm_shims"]}
1
+ {"version":3,"sources":["../src/bi/useWixCliAppBi.ts","../src/bi/index.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliAppBiEvents } from './events.js';\n\nexport function useWixCliAppBi() {\n const biLogger = useBiLogger();\n return useMemo(() => wixCliAppBiEvents(biLogger), [biLogger]);\n}\n","export { useWixCliAppBi } from './useWixCliAppBi.js';\n"],"mappings":";;uIAAAA,IAAA,IAAAC,EAAwB,SAIjB,SAASC,GAAiB,CAC/B,IAAMC,EAAWC,EAAY,EAC7B,SAAO,WAAQ,IAAMC,EAAkBF,CAAQ,EAAG,CAACA,CAAQ,CAAC,CAC9D,CCPAG","names":["init_esm_shims","import_react","useWixCliAppBi","biLogger","useBiLogger","wixCliAppBiEvents","init_esm_shims"]}
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{D as P,H as p,I as B,J as M,N as g,O as A,P as I,Q as w,Ta as O,Va as U,da as T,la as N,ma as h,na as f,oa as x,qa as k}from"./chunk-HNCYDCAD.js";import{b as y,d as u,e as c}from"./chunk-DRRMAC33.js";import{e as E,h as l}from"./chunk-V4TR6DCM.js";l();var C=E(y(),1);import{randomUUID as V}from"node:crypto";var _=t=>{let r=new Map;[...t.filter(i=>!(0,C.isType)(i,h.Api)&&!(0,C.isType)(i,h.Event)&&!(0,C.isType)(i,h.ServicePlugin))].sort((i,d)=>i.id.localeCompare(d.id)).forEach(i=>{let d=r.get(i.id)??[];d.push(i),r.set(i.id,d)});let e=new Map;if(r.forEach((i,d)=>{i.length>1&&e.set(d,i)}),e.size)throw new u({code:c.DuplicateComponentIdsError({issues:Array.from(e.entries()).map(([i,d])=>({id:i,components:d.map(n=>(0,C.match)(n,{DashboardPage:({title:s,relativePath:m})=>({name:s,type:"page",path:f(m,"json")}),DashboardPlugin:({title:s,relativePath:m})=>({name:s,type:"plugin",path:f(m,"json")}),DashboardMenuPlugin:({title:s,relativePath:m})=>({name:s,type:"menu-plugin",path:m}),DashboardModal:({title:s,relativePath:m})=>({name:s,type:"modal",path:f(m,"json")}),DashboardSidebarCategory:({label:s})=>({name:s,type:"sidebar-category",path:P}),EmbeddedScript:({relativePath:s})=>({name:s,type:"embedded-script",path:f(s,"json")}),CustomElement:({name:s,relativePath:m})=>({name:s,type:"custom-element",path:f(m,"json")}),Topology:({name:s})=>({name:s,type:"topology",path:""})})).sort((n,s)=>n.name.localeCompare(s.name)),suggestedId:V()}))})})};l();var R=E(y(),1);import{randomUUID as G}from"node:crypto";function L(t){return t!=null&&t!==!1}var H=(t,r)=>{if(t.experiments)return{appId:r,componentId:t.id,spec:t.experiments.enabledBy,variantValue:"true"}},K=t=>({compId:t.id,compType:p.CUSTOM_ELEMENT_WIDGET,compName:t.name,compData:{customElementWidget:{base:{name:t.name},widgetData:{tagName:t.tagName,scriptType:I.ES_MODULE,scriptUrl:"https://dummy.web.com"},size:{width:{defaultWidth:t.width.defaultWidth,allowStretch:t.width.allowStretch,stretchByDefault:t.width.stretchByDefault},height:{defaultHeight:t.height.defaultHeight,heightMode:w.FIXED}},installation:{base:{autoAdd:t.installation?.autoAddToSite,essential:t.installation?.essential,maxInstances:t.installation?.essential?1:0},widget:{region:B.BODY}},behaviors:{},dependencies:t.dependencies}}});async function pe({appId:t,components:r,sentryDSN:a,componentSourceBuilder:o}){return _(r),{appId:t,components:(await Promise.all(r.map((0,R.match)({DashboardPage:async e=>{let i=e.sentryDSN??a;return{compId:e.id,compType:p.BACK_OFFICE_PAGE,compData:{backOfficePage:{hostingPlatform:g.BUSINESS_MANAGER,fullPage:e.sidebar?.whenActive?.hideSidebar,hideInSidebar:e.sidebar?.disabled,priority:e.sidebar?.priority,routePath:e.route.slice(1),title:e.title,pageCategoryId:e.sidebar?.categoryId,activeSidebarPageId:e.sidebar?.whenActive?.selectedPageId,requiredPermission:e.requiredPermission,previousRoutePaths:e.additionalRoutes,...i?{errorReporting:{url:i}}:void 0,...await o(e)}},compName:e.title,experiment:H(e,t)}},DashboardPlugin:async e=>({compId:e.id,compType:p.BACK_OFFICE_EXTENSION_WIDGET,compData:{backOfficeExtensionWidget:{hostingPlatform:g.BUSINESS_MANAGER,extends:e.extends,title:e.title,requiredPermission:e.requiredPermission,width:e.width,height:e.height,...await o(e),...e.sentryDSN?{errorReporting:{url:e.sentryDSN}}:void 0}},compName:e.title}),DashboardMenuPlugin:async e=>({compId:e.id,compType:p.BACK_OFFICE_EXTENSION_MENU_ITEM,compData:{backOfficeExtensionMenuItem:{hostingPlatform:g.BUSINESS_MANAGER,id:e.id,title:e.title,subtitle:e.subtitle,iconKey:e.iconKey,extends:e.extends,action:e.action,requiredPermission:e.requiredPermission,...e.sentryDSN?{errorReporting:{url:e.sentryDSN}}:void 0}},compName:e.title}),DashboardModal:async e=>({compId:e.id,compType:p.BACK_OFFICE_MODAL,compData:{backOfficeModal:{hostingPlatform:g.BUSINESS_MANAGER,title:e.title,requiredPermission:e.requiredPermission,width:e.width,height:e.height,...await o(e),...e.sentryDSN?{errorReporting:{url:e.sentryDSN}}:void 0}},compName:e.title}),DashboardSidebarCategory:async e=>({compId:e.id,compType:p.BACK_OFFICE_SIDEBAR_CATEGORY,compData:{backOfficeSidebarCategory:{hostingPlatform:g.BUSINESS_MANAGER,title:e.label,priority:e.priority}},compName:e.label}),EmbeddedScript:async e=>({compId:e.id,compType:p.EMBEDDED_SCRIPT,compName:e.name,compData:{embeddedScriptComponentData:{name:e.name,pages:M.NONE_PAGES,placement:e.placement,connectArticleUrl:"",embedCategory:e.scriptType,dependencies:e.dependencies,loadOnce:!0,allowedForFreeSite:!0,...await o(e)}}}),CustomElement:async e=>{let{scriptUrl:i,settingsUrl:d}=await o(e),n=K(e);return{...n,compData:{customElementWidget:{...n.compData.customElementWidget,widgetData:{...n.compData.customElementWidget.widgetData,scriptUrl:i},behaviors:{...n.compData.customElementWidget.behaviors,...e.relativePanelPath?{settings:{settingsUrl:d}}:{}}}}}},Topology:async e=>({compId:e.id,compType:p.TOPOLOGY,compName:e.name,compData:{topology:{topology:{backendApiUrl:e.backendApiUrl}}}}),Api:()=>null,Event:async e=>(await o(e)).map(({webhookSlug:d})=>({compName:d,compId:G(),compType:p.WEBHOOK,compData:{webhook:{callbackUrl:"__WEBHOOKS_URL_PLACEHOLDER__",webhookSlug:d}}})),ServicePlugin:()=>null})))).filter(L).flat()}}l();var W=E(y(),1);import{join as q}from"node:path";l();function F(t){if(!("output"in t||Array.isArray(t)))throw new u({code:c.InvalidViteBuildOutput()});return Array.isArray(t)?t.flatMap(o=>o.output):t.output}function v(t,r){let o=F(t).find(e=>e.type==="chunk"&&e.facadeModuleId===r);if(!o)throw new u({code:c.ViteModuleBundleNotFound()});return o.fileName}function j(t,r){let o=F(t).find(e=>e.fileName===r);if(!o||!("source"in o))throw new u({code:c.ViteFileNotFoundInOutput({fileName:r})});return o.source.toString()}async function $(t,r){let a=new URL(t.relativePath,r).href;return await fetch(a).then(e=>e.text())}async function X(t,r){let a=new URL("__get-registered-events",r).href,o=await fetch(a);return o.ok?(await o.json())[`/${t.relativePath}`]??[]:[]}async function Y(t,r){let a=T(r.projectFolder),o=q(a,"getRegisteredEvents.mjs"),{getRegisteredEvents:e}=await import(o);return(await e())[`/${t.relativePath}`]}var b=(t,r,a)=>{if(!r.config.trusted)return{iframeUrl:x(t.id)};let o=k(t.id),e=a?v(a,o):`/@id/${o}?import`;return{scriptAsset:{exportedName:t.id,containerId:r.config.appId,url:e,scriptType:A.MODULE}}},z=async(t,r,a)=>({template:r?j(r,t.relativePath):await $(t,a)}),J=async(t,r,a,o)=>{let e=a?await Y(t,r):await X(t,o);return(await Promise.all(e?.map(N))).map(d=>({webhookSlug:d}))},Q=(t,r)=>{let a=U(t.id);return{scriptUrl:r?v(r,a):`/@id/${a}?import`,settingsUrl:O(t.id)}};function ve({model:t,clientBuildOutput:r,backendBuildOutput:a,clientDevServerUrl:o,backendDevServerUrl:e}){return async i=>(0,W.match)(i,{EmbeddedScript:n=>z(n,r,o),DashboardSidebarCategory:()=>{},CustomElement:n=>Q(n,r),DashboardPage:n=>b(n,t,r),DashboardPlugin:n=>b(n,t,r),DashboardModal:n=>b(n,t,r),DashboardMenuPlugin:()=>{},Topology:()=>{},Api:()=>{},Event:n=>J(n,t,a,e),ServicePlugin:()=>{}})}export{_ as a,K as b,pe as c,ve as d};
4
+ //# sourceMappingURL=chunk-DGSU23ZZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/app-manifest/validate.ts","../src/app-manifest/create.ts","../src/app-manifest/component-source.ts","../src/app-manifest/build-output-data-extractor.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { isType, match } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { CONFIG_FILENAME } from '@wix/cli-core-definitions';\nimport { replaceExtension } from '../dev-center/components/path.js';\nimport type { BackendComponent } from '../dev-center/components/dev-center-component.js';\nimport { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\n\ntype NonBackendComponent = Exclude<DevCenterComponent, BackendComponent>;\n\nexport const validateComponents = (components: DevCenterComponent[]) => {\n const devCenterComponentsToIdMap: Map<string, NonBackendComponent[]> =\n new Map();\n\n const componentsWithConfig = components.filter(\n (component): component is NonBackendComponent =>\n !isType(component, DevCenterComponent.Api) &&\n !isType(component, DevCenterComponent.Event) &&\n !isType(component, DevCenterComponent.ServicePlugin)\n );\n\n const sortedComponentsById = [...componentsWithConfig].sort((a, b) =>\n a.id.localeCompare(b.id)\n );\n sortedComponentsById.forEach((component) => {\n const componentList = devCenterComponentsToIdMap.get(component.id) ?? [];\n componentList.push(component);\n devCenterComponentsToIdMap.set(component.id, componentList);\n });\n\n const devCenterComponentsWithSameIDMap: Map<string, NonBackendComponent[]> =\n new Map();\n\n devCenterComponentsToIdMap.forEach((devCenterComponents, key) => {\n if (devCenterComponents.length > 1) {\n devCenterComponentsWithSameIDMap.set(key, devCenterComponents);\n }\n });\n\n if (devCenterComponentsWithSameIDMap.size) {\n throw new CliError({\n code: CliErrorCode.DuplicateComponentIdsError({\n issues: Array.from(devCenterComponentsWithSameIDMap.entries()).map(\n ([id, devCenterComponents]) => {\n return {\n id,\n components: devCenterComponents\n .map((component) =>\n match(component, {\n DashboardPage: ({ title, relativePath }) => ({\n name: title,\n type: 'page' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n DashboardPlugin: ({ title, relativePath }) => ({\n name: title,\n type: 'plugin' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n DashboardMenuPlugin: ({ title, relativePath }) => ({\n name: title,\n type: 'menu-plugin' as const,\n // We can use the relative path since the path already points to the menu config json\n path: relativePath,\n }),\n DashboardModal: ({ title, relativePath }) => ({\n name: title,\n type: 'modal' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n DashboardSidebarCategory: ({ label }) => ({\n name: label,\n type: 'sidebar-category' as const,\n path: CONFIG_FILENAME,\n }),\n EmbeddedScript: ({ relativePath }) => ({\n name: relativePath,\n type: 'embedded-script' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n CustomElement: ({ name, relativePath }) => ({\n name,\n type: 'custom-element' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n Topology: ({ name }) => ({\n name,\n type: 'topology' as const,\n // Topology component doesn't have a config file\n path: '',\n }),\n })\n )\n .sort((a, b) => a.name.localeCompare(b.name)),\n suggestedId: randomUUID(),\n };\n }\n ),\n }),\n });\n }\n};\n","import {\n ComponentType,\n BackOfficeHostingPlatforms,\n EmbeddedScriptPages,\n HeightMode,\n RegionType,\n CustomElementScriptType,\n} from '@wix/ambassador-devcenter-components-v1-component/types';\nimport { match } from 'variant';\nimport { randomUUID } from 'node:crypto';\nimport type {\n AppManifest,\n ComponentExperiment,\n BackofficePage,\n BackofficeExtensionWidget,\n BackofficeExtensionMenuItem,\n BackofficeSideCategory,\n BackofficeModal,\n EmbeddedScript,\n CustomElement,\n Webhook,\n Topology,\n} from '@wix/cli-app-manifest';\nimport { validateComponents } from './validate.js';\nimport type { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\nimport type { ComponentSourceBuilder } from './component-source.js';\n\ntype CreateAppManifestParams = {\n appId: string;\n backendServerUrl?: string;\n components: DevCenterComponent[];\n sentryDSN?: string;\n componentSourceBuilder: ComponentSourceBuilder;\n};\n\nfunction isTruthy<T>(x: T | undefined | null | false): x is T {\n return x !== undefined && x !== null && x !== false;\n}\n\nconst getExperiment = (\n component: DevCenterComponent<'DashboardPage'>,\n appId: string\n): ComponentExperiment => {\n if (component.experiments) {\n return {\n appId,\n componentId: component.id,\n spec: component.experiments.enabledBy,\n variantValue: 'true',\n };\n }\n return undefined;\n};\n\nexport const createCustomElementConfig = (\n component: DevCenterComponent<'CustomElement'>\n): CustomElement => {\n return {\n compId: component.id,\n compType: ComponentType.CUSTOM_ELEMENT_WIDGET as const,\n compName: component.name,\n compData: {\n customElementWidget: {\n base: {\n name: component.name,\n },\n widgetData: {\n tagName: component.tagName,\n scriptType: CustomElementScriptType.ES_MODULE,\n scriptUrl: 'https://dummy.web.com',\n },\n size: {\n width: {\n defaultWidth: component.width.defaultWidth,\n allowStretch: component.width.allowStretch,\n stretchByDefault: component.width.stretchByDefault,\n },\n height: {\n defaultHeight: component.height.defaultHeight,\n heightMode: HeightMode.FIXED,\n },\n },\n installation: {\n base: {\n autoAdd: component.installation?.autoAddToSite,\n essential: component.installation?.essential,\n maxInstances: component.installation?.essential ? 1 : 0,\n },\n widget: { region: RegionType.BODY },\n },\n behaviors: {},\n dependencies: component.dependencies,\n },\n },\n };\n};\n\nexport async function createAppManifest({\n appId,\n components,\n sentryDSN,\n componentSourceBuilder,\n}: CreateAppManifestParams): Promise<AppManifest> {\n validateComponents(components);\n\n return {\n appId,\n components: (\n await Promise.all(\n components.map(\n match({\n DashboardPage: async (component): Promise<BackofficePage> => {\n const componentSentryDSN = component.sentryDSN ?? sentryDSN;\n return {\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_PAGE as const,\n compData: {\n backOfficePage: {\n hostingPlatform:\n BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n fullPage: component.sidebar?.whenActive?.hideSidebar,\n hideInSidebar: component.sidebar?.disabled,\n priority: component.sidebar?.priority,\n routePath: component.route.slice(1),\n title: component.title,\n pageCategoryId: component.sidebar?.categoryId,\n activeSidebarPageId:\n component.sidebar?.whenActive?.selectedPageId,\n requiredPermission: component.requiredPermission,\n previousRoutePaths: component.additionalRoutes,\n ...(componentSentryDSN\n ? { errorReporting: { url: componentSentryDSN } }\n : undefined),\n ...(await componentSourceBuilder(component)),\n },\n },\n compName: component.title,\n experiment: getExperiment(component, appId),\n };\n },\n DashboardPlugin: async (\n component\n ): Promise<BackofficeExtensionWidget> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_EXTENSION_WIDGET as const,\n compData: {\n backOfficeExtensionWidget: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n extends: component.extends,\n title: component.title,\n requiredPermission: component.requiredPermission,\n width: component.width,\n height: component.height,\n ...(await componentSourceBuilder(component)),\n ...(component.sentryDSN\n ? { errorReporting: { url: component.sentryDSN } }\n : undefined),\n },\n },\n compName: component.title,\n }),\n DashboardMenuPlugin: async (\n component\n ): Promise<BackofficeExtensionMenuItem> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_EXTENSION_MENU_ITEM as const,\n compData: {\n backOfficeExtensionMenuItem: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n id: component.id,\n title: component.title,\n subtitle: component.subtitle,\n iconKey: component.iconKey,\n extends: component.extends,\n action: component.action,\n requiredPermission: component.requiredPermission,\n ...(component.sentryDSN\n ? { errorReporting: { url: component.sentryDSN } }\n : undefined),\n },\n },\n compName: component.title,\n }),\n DashboardModal: async (component): Promise<BackofficeModal> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_MODAL as const,\n compData: {\n backOfficeModal: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n title: component.title,\n requiredPermission: component.requiredPermission,\n width: component.width,\n height: component.height,\n ...(await componentSourceBuilder(component)),\n ...(component.sentryDSN\n ? { errorReporting: { url: component.sentryDSN } }\n : undefined),\n },\n },\n compName: component.title,\n }),\n DashboardSidebarCategory: async (\n component\n ): Promise<BackofficeSideCategory> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_SIDEBAR_CATEGORY as const,\n compData: {\n backOfficeSidebarCategory: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n title: component.label,\n priority: component.priority,\n },\n },\n compName: component.label,\n }),\n EmbeddedScript: async (component): Promise<EmbeddedScript> => ({\n compId: component.id,\n compType: ComponentType.EMBEDDED_SCRIPT as const,\n compName: component.name,\n compData: {\n embeddedScriptComponentData: {\n name: component.name,\n pages: EmbeddedScriptPages.NONE_PAGES,\n placement: component.placement,\n connectArticleUrl: '',\n embedCategory: component.scriptType,\n dependencies: component.dependencies,\n loadOnce: true,\n allowedForFreeSite: true,\n ...(await componentSourceBuilder(component)),\n },\n },\n }),\n CustomElement: async (component): Promise<CustomElement> => {\n const { scriptUrl, settingsUrl } = await componentSourceBuilder(\n component\n );\n\n const basicConfig = createCustomElementConfig(component);\n\n return {\n ...basicConfig,\n compData: {\n customElementWidget: {\n ...basicConfig.compData.customElementWidget,\n widgetData: {\n ...basicConfig.compData.customElementWidget.widgetData,\n scriptUrl,\n },\n behaviors: {\n ...basicConfig.compData.customElementWidget.behaviors,\n ...(component.relativePanelPath\n ? { settings: { settingsUrl } }\n : {}),\n },\n },\n },\n };\n },\n Topology: async (component): Promise<Topology> => {\n return {\n compId: component.id,\n compType: ComponentType.TOPOLOGY as const,\n compName: component.name,\n compData: {\n topology: {\n topology: {\n backendApiUrl: component.backendApiUrl,\n },\n },\n },\n };\n },\n Api: () => null,\n Event: async (component): Promise<Array<Webhook>> => {\n const webhookSlugs = await componentSourceBuilder(component);\n\n return webhookSlugs.map(({ webhookSlug }) => ({\n compName: webhookSlug,\n compId: randomUUID(),\n compType: ComponentType.WEBHOOK,\n compData: {\n webhook: {\n callbackUrl: '__WEBHOOKS_URL_PLACEHOLDER__',\n webhookSlug,\n },\n },\n }));\n },\n ServicePlugin: () => null,\n })\n )\n )\n )\n .filter(isTruthy)\n .flat(),\n };\n}\n","import { BackOfficeScriptAssetType } from '@wix/ambassador-devcenter-components-v1-component/types';\nimport type { ComponentSource } from '@wix/cli-app-manifest';\nimport { match } from 'variant';\nimport { join } from 'node:path';\nimport { getAppBackendBuildFolder } from '@wix/cli-app-definitions';\nimport type * as GetRegisteredEvents from '@wix/cli-cloudflare-runtime/getRegisteredEvents';\nimport { getBackendEventSlug } from '@wix/extensions-data-client';\nimport {\n virtualModuleIdForScriptAsset,\n virtualPathForHTMLAsset,\n} from '../dev-center/components/dashboard/config.js';\nimport {\n virtualModuleIdForCustomElementScriptAsset,\n virtualPathForCustomElementPanelHTMLAsset,\n} from '../dev-center/components/site/config.js';\nimport type { ProjectModel } from '../model.js';\nimport type { ViteBuildOutput } from './build-output-data-extractor.js';\nimport {\n extractModuleBundleContent,\n extractModuleBundleName,\n} from './build-output-data-extractor.js';\nimport type { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\n\ntype DashboardSource =\n | {\n iframeUrl: string;\n scriptAsset?: never;\n }\n | {\n scriptAsset: ComponentSource['scriptAsset'];\n iframeUrl?: never;\n };\n\ntype EmbeddedScriptSource = {\n template: string;\n};\n\ntype CustomElementSource = { scriptUrl: string; settingsUrl: string };\n\ntype EventSource = {\n webhookSlug: string;\n};\n\nexport type ComponentSourceBuilder = <T extends DevCenterComponent>(\n component: T\n) => Promise<\n T extends DevCenterComponent<'EmbeddedScript'>\n ? EmbeddedScriptSource\n : T extends DevCenterComponent<'CustomElement'>\n ? CustomElementSource\n : T extends DevCenterComponent<'DashboardPage'>\n ? DashboardSource\n : T extends DevCenterComponent<'DashboardPlugin'>\n ? DashboardSource\n : T extends DevCenterComponent<'DashboardModal'>\n ? DashboardSource\n : T extends DevCenterComponent<'Event'>\n ? Array<EventSource>\n : undefined\n>;\n\nasync function getEmbeddedScriptDevTemplate(\n component: DevCenterComponent<'EmbeddedScript'>,\n backendDevServerUrl?: string\n) {\n const url = new URL(component.relativePath, backendDevServerUrl).href;\n const devTemplate = await fetch(url).then((res) => res.text());\n\n return devTemplate;\n}\n\nasync function getEventDevSlugs(\n component: DevCenterComponent<'Event'>,\n backendDevServerUrl?: string\n) {\n const url = new URL(`__get-registered-events`, backendDevServerUrl).href;\n const response = await fetch(url);\n\n if (!response.ok) {\n return [];\n }\n\n const eventTypes = await response.json();\n const devSlugs = eventTypes[`/${component.relativePath}`];\n\n return devSlugs as Array<string>;\n}\n\nasync function getEventProdSlugs(\n component: DevCenterComponent<'Event'>,\n model: ProjectModel\n) {\n const backendBuildFolder = getAppBackendBuildFolder(model.projectFolder);\n const outputFilepath = join(backendBuildFolder, 'getRegisteredEvents.mjs');\n\n const { getRegisteredEvents } = await (import(outputFilepath) as Promise<\n typeof GetRegisteredEvents\n >);\n\n const eventsMap = await getRegisteredEvents();\n\n return eventsMap[`/${component.relativePath}`];\n}\n\nconst dashboardSourceBuilder = (\n component:\n | DevCenterComponent<'DashboardPage'>\n | DevCenterComponent<'DashboardPlugin'>\n | DevCenterComponent<'DashboardModal'>,\n model: ProjectModel,\n clientBuildOutput?: ViteBuildOutput\n): DashboardSource => {\n if (!model.config.trusted) {\n return {\n iframeUrl: virtualPathForHTMLAsset(component.id),\n };\n }\n const moduleId = virtualModuleIdForScriptAsset(component.id);\n const componentUrl = clientBuildOutput\n ? extractModuleBundleName(clientBuildOutput, moduleId)\n : `/@id/${moduleId}?import`;\n\n return {\n scriptAsset: {\n exportedName: component.id,\n containerId: model.config.appId,\n url: componentUrl,\n scriptType: BackOfficeScriptAssetType.MODULE,\n },\n };\n};\n\nconst embeddedScriptBuilder = async (\n component: DevCenterComponent<'EmbeddedScript'>,\n clientBuildOutput?: ViteBuildOutput,\n devServerUrl?: string\n): Promise<EmbeddedScriptSource> => {\n return {\n template: clientBuildOutput\n ? extractModuleBundleContent(clientBuildOutput, component.relativePath)\n : await getEmbeddedScriptDevTemplate(component, devServerUrl),\n };\n};\n\nconst eventSourceBuilder = async (\n component: DevCenterComponent<'Event'>,\n model: ProjectModel,\n backendBuildOutput?: ViteBuildOutput,\n backendDevServerUrl?: string\n): Promise<Array<EventSource>> => {\n const fullSlugNames = backendBuildOutput\n ? await getEventProdSlugs(component, model)\n : await getEventDevSlugs(component, backendDevServerUrl);\n\n const webhookSlugs = await Promise.all(\n fullSlugNames?.map(getBackendEventSlug)\n );\n\n return webhookSlugs.map((webhookSlug) => ({\n webhookSlug,\n }));\n};\n\nconst customElementBuilder = (\n component: DevCenterComponent<'CustomElement'>,\n clientBuildOutput?: ViteBuildOutput\n): CustomElementSource => {\n const moduleId = virtualModuleIdForCustomElementScriptAsset(component.id);\n const componentUrl = clientBuildOutput\n ? extractModuleBundleName(clientBuildOutput, moduleId)\n : `/@id/${moduleId}?import`;\n\n return {\n scriptUrl: componentUrl,\n settingsUrl: virtualPathForCustomElementPanelHTMLAsset(component.id),\n };\n};\n\nexport function getComponentSourceBuilder({\n model,\n clientBuildOutput,\n backendBuildOutput,\n clientDevServerUrl,\n backendDevServerUrl,\n}: {\n model: ProjectModel;\n clientBuildOutput?: ViteBuildOutput;\n backendBuildOutput?: ViteBuildOutput;\n clientDevServerUrl?: string;\n backendDevServerUrl?: string;\n}) {\n return (async (component: DevCenterComponent) => {\n const source = match(component, {\n EmbeddedScript: (embeddedScriptComponent) =>\n embeddedScriptBuilder(\n embeddedScriptComponent,\n clientBuildOutput,\n clientDevServerUrl\n ),\n DashboardSidebarCategory: () => {},\n CustomElement: (customElementComponent) =>\n customElementBuilder(customElementComponent, clientBuildOutput),\n DashboardPage: (dashboardPageComponent) =>\n dashboardSourceBuilder(\n dashboardPageComponent,\n model,\n clientBuildOutput\n ),\n DashboardPlugin: (dashboardPluginComponent) =>\n dashboardSourceBuilder(\n dashboardPluginComponent,\n model,\n clientBuildOutput\n ),\n DashboardModal: (dashboardModalComponent) =>\n dashboardSourceBuilder(\n dashboardModalComponent,\n model,\n clientBuildOutput\n ),\n DashboardMenuPlugin: () => {},\n Topology: () => {},\n Api: () => {},\n Event: (component) =>\n eventSourceBuilder(\n component,\n model,\n backendBuildOutput,\n backendDevServerUrl\n ),\n ServicePlugin: () => {},\n });\n\n return source;\n }) as ComponentSourceBuilder;\n}\n","import { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { build } from 'vite';\n\nexport type ViteBuildOutput = Awaited<ReturnType<typeof build>>;\n\nfunction extractBuildOutputs(buildOutput: ViteBuildOutput) {\n const isValidRollupOutput =\n 'output' in buildOutput || Array.isArray(buildOutput);\n\n if (!isValidRollupOutput) {\n throw new CliError({ code: CliErrorCode.InvalidViteBuildOutput() });\n }\n\n const outputs = Array.isArray(buildOutput)\n ? buildOutput.flatMap((output) => output.output)\n : buildOutput.output;\n\n return outputs;\n}\n\nexport function extractModuleBundleName(\n buildOutput: ViteBuildOutput,\n moduleId: string\n) {\n const outputs = extractBuildOutputs(buildOutput);\n\n const output = outputs.find(\n (output) => output.type === 'chunk' && output.facadeModuleId === moduleId\n );\n\n if (!output) {\n throw new CliError({ code: CliErrorCode.ViteModuleBundleNotFound() });\n }\n\n return output.fileName;\n}\n\nexport function extractModuleBundleContent(\n buildOutput: ViteBuildOutput,\n fileName: string\n) {\n const outputs = extractBuildOutputs(buildOutput);\n\n const output = outputs.find((output) => output.fileName === fileName);\n\n if (!output || !('source' in output)) {\n throw new CliError({\n code: CliErrorCode.ViteFileNotFoundInOutput({ fileName }),\n });\n }\n\n return output.source.toString();\n}\n"],"mappings":"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","names":["init_esm_shims","import_variant","randomUUID","validateComponents","components","devCenterComponentsToIdMap","component","DevCenterComponent","a","b","componentList","devCenterComponentsWithSameIDMap","devCenterComponents","key","CliError","CliErrorCode","id","title","relativePath","replaceExtension","label","CONFIG_FILENAME","name","randomUUID","init_esm_shims","import_variant","randomUUID","isTruthy","x","getExperiment","component","appId","createCustomElementConfig","ComponentType","CustomElementScriptType","HeightMode","RegionType","createAppManifest","components","sentryDSN","componentSourceBuilder","validateComponents","componentSentryDSN","BackOfficeHostingPlatforms","EmbeddedScriptPages","scriptUrl","settingsUrl","basicConfig","webhookSlug","randomUUID","init_esm_shims","import_variant","join","init_esm_shims","extractBuildOutputs","buildOutput","CliError","CliErrorCode","output","extractModuleBundleName","moduleId","extractModuleBundleContent","fileName","getEmbeddedScriptDevTemplate","component","backendDevServerUrl","url","res","getEventDevSlugs","response","getEventProdSlugs","model","backendBuildFolder","getAppBackendBuildFolder","outputFilepath","join","getRegisteredEvents","dashboardSourceBuilder","clientBuildOutput","virtualPathForHTMLAsset","moduleId","virtualModuleIdForScriptAsset","componentUrl","extractModuleBundleName","BackOfficeScriptAssetType","embeddedScriptBuilder","devServerUrl","extractModuleBundleContent","eventSourceBuilder","backendBuildOutput","fullSlugNames","getBackendEventSlug","webhookSlug","customElementBuilder","virtualModuleIdForCustomElementScriptAsset","virtualPathForCustomElementPanelHTMLAsset","getComponentSourceBuilder","clientDevServerUrl","embeddedScriptComponent","customElementComponent","dashboardPageComponent","dashboardPluginComponent","dashboardModalComponent"]}
1
+ {"version":3,"sources":["../src/app-manifest/validate.ts","../src/app-manifest/create.ts","../src/app-manifest/component-source.ts","../src/app-manifest/build-output-data-extractor.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { isType, match } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { CONFIG_FILENAME } from '@wix/cli-core-definitions';\nimport { replaceExtension } from '../dev-center/components/path.js';\nimport type { BackendComponent } from '../dev-center/components/dev-center-component.js';\nimport { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\n\ntype NonBackendComponent = Exclude<DevCenterComponent, BackendComponent>;\n\nexport const validateComponents = (components: DevCenterComponent[]) => {\n const devCenterComponentsToIdMap: Map<string, NonBackendComponent[]> =\n new Map();\n\n const componentsWithConfig = components.filter(\n (component): component is NonBackendComponent =>\n !isType(component, DevCenterComponent.Api) &&\n !isType(component, DevCenterComponent.Event) &&\n !isType(component, DevCenterComponent.ServicePlugin)\n );\n\n const sortedComponentsById = [...componentsWithConfig].sort((a, b) =>\n a.id.localeCompare(b.id)\n );\n sortedComponentsById.forEach((component) => {\n const componentList = devCenterComponentsToIdMap.get(component.id) ?? [];\n componentList.push(component);\n devCenterComponentsToIdMap.set(component.id, componentList);\n });\n\n const devCenterComponentsWithSameIDMap: Map<string, NonBackendComponent[]> =\n new Map();\n\n devCenterComponentsToIdMap.forEach((devCenterComponents, key) => {\n if (devCenterComponents.length > 1) {\n devCenterComponentsWithSameIDMap.set(key, devCenterComponents);\n }\n });\n\n if (devCenterComponentsWithSameIDMap.size) {\n throw new CliError({\n code: CliErrorCode.DuplicateComponentIdsError({\n issues: Array.from(devCenterComponentsWithSameIDMap.entries()).map(\n ([id, devCenterComponents]) => {\n return {\n id,\n components: devCenterComponents\n .map((component) =>\n match(component, {\n DashboardPage: ({ title, relativePath }) => ({\n name: title,\n type: 'page' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n DashboardPlugin: ({ title, relativePath }) => ({\n name: title,\n type: 'plugin' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n DashboardMenuPlugin: ({ title, relativePath }) => ({\n name: title,\n type: 'menu-plugin' as const,\n // We can use the relative path since the path already points to the menu config json\n path: relativePath,\n }),\n DashboardModal: ({ title, relativePath }) => ({\n name: title,\n type: 'modal' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n DashboardSidebarCategory: ({ label }) => ({\n name: label,\n type: 'sidebar-category' as const,\n path: CONFIG_FILENAME,\n }),\n EmbeddedScript: ({ relativePath }) => ({\n name: relativePath,\n type: 'embedded-script' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n CustomElement: ({ name, relativePath }) => ({\n name,\n type: 'custom-element' as const,\n path: replaceExtension(relativePath, 'json'),\n }),\n Topology: ({ name }) => ({\n name,\n type: 'topology' as const,\n // Topology component doesn't have a config file\n path: '',\n }),\n })\n )\n .sort((a, b) => a.name.localeCompare(b.name)),\n suggestedId: randomUUID(),\n };\n }\n ),\n }),\n });\n }\n};\n","import {\n ComponentType,\n BackOfficeHostingPlatforms,\n EmbeddedScriptPages,\n HeightMode,\n RegionType,\n CustomElementScriptType,\n} from '@wix/ambassador-devcenter-components-v1-component/types';\nimport { match } from 'variant';\nimport { randomUUID } from 'node:crypto';\nimport type {\n AppManifest,\n ComponentExperiment,\n BackofficePage,\n BackofficeExtensionWidget,\n BackofficeExtensionMenuItem,\n BackofficeSideCategory,\n BackofficeModal,\n EmbeddedScript,\n CustomElement,\n Webhook,\n Topology,\n} from '@wix/cli-app-manifest';\nimport { validateComponents } from './validate.js';\nimport type { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\nimport type { ComponentSourceBuilder } from './component-source.js';\n\ntype CreateAppManifestParams = {\n appId: string;\n backendServerUrl?: string;\n components: DevCenterComponent[];\n sentryDSN?: string;\n componentSourceBuilder: ComponentSourceBuilder;\n};\n\nfunction isTruthy<T>(x: T | undefined | null | false): x is T {\n return x !== undefined && x !== null && x !== false;\n}\n\nconst getExperiment = (\n component: DevCenterComponent<'DashboardPage'>,\n appId: string\n): ComponentExperiment => {\n if (component.experiments) {\n return {\n appId,\n componentId: component.id,\n spec: component.experiments.enabledBy,\n variantValue: 'true',\n };\n }\n return undefined;\n};\n\nexport const createCustomElementConfig = (\n component: DevCenterComponent<'CustomElement'>\n): CustomElement => {\n return {\n compId: component.id,\n compType: ComponentType.CUSTOM_ELEMENT_WIDGET as const,\n compName: component.name,\n compData: {\n customElementWidget: {\n base: {\n name: component.name,\n },\n widgetData: {\n tagName: component.tagName,\n scriptType: CustomElementScriptType.ES_MODULE,\n scriptUrl: 'https://dummy.web.com',\n },\n size: {\n width: {\n defaultWidth: component.width.defaultWidth,\n allowStretch: component.width.allowStretch,\n stretchByDefault: component.width.stretchByDefault,\n },\n height: {\n defaultHeight: component.height.defaultHeight,\n heightMode: HeightMode.FIXED,\n },\n },\n installation: {\n base: {\n autoAdd: component.installation?.autoAddToSite,\n essential: component.installation?.essential,\n maxInstances: component.installation?.essential ? 1 : 0,\n },\n widget: { region: RegionType.BODY },\n },\n behaviors: {},\n dependencies: component.dependencies,\n },\n },\n };\n};\n\nexport async function createAppManifest({\n appId,\n components,\n sentryDSN,\n componentSourceBuilder,\n}: CreateAppManifestParams): Promise<AppManifest> {\n validateComponents(components);\n\n return {\n appId,\n components: (\n await Promise.all(\n components.map(\n match({\n DashboardPage: async (component): Promise<BackofficePage> => {\n const componentSentryDSN = component.sentryDSN ?? sentryDSN;\n return {\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_PAGE as const,\n compData: {\n backOfficePage: {\n hostingPlatform:\n BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n fullPage: component.sidebar?.whenActive?.hideSidebar,\n hideInSidebar: component.sidebar?.disabled,\n priority: component.sidebar?.priority,\n routePath: component.route.slice(1),\n title: component.title,\n pageCategoryId: component.sidebar?.categoryId,\n activeSidebarPageId:\n component.sidebar?.whenActive?.selectedPageId,\n requiredPermission: component.requiredPermission,\n previousRoutePaths: component.additionalRoutes,\n ...(componentSentryDSN\n ? { errorReporting: { url: componentSentryDSN } }\n : undefined),\n ...(await componentSourceBuilder(component)),\n },\n },\n compName: component.title,\n experiment: getExperiment(component, appId),\n };\n },\n DashboardPlugin: async (\n component\n ): Promise<BackofficeExtensionWidget> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_EXTENSION_WIDGET as const,\n compData: {\n backOfficeExtensionWidget: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n extends: component.extends,\n title: component.title,\n requiredPermission: component.requiredPermission,\n width: component.width,\n height: component.height,\n ...(await componentSourceBuilder(component)),\n ...(component.sentryDSN\n ? { errorReporting: { url: component.sentryDSN } }\n : undefined),\n },\n },\n compName: component.title,\n }),\n DashboardMenuPlugin: async (\n component\n ): Promise<BackofficeExtensionMenuItem> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_EXTENSION_MENU_ITEM as const,\n compData: {\n backOfficeExtensionMenuItem: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n id: component.id,\n title: component.title,\n subtitle: component.subtitle,\n iconKey: component.iconKey,\n extends: component.extends,\n action: component.action,\n requiredPermission: component.requiredPermission,\n ...(component.sentryDSN\n ? { errorReporting: { url: component.sentryDSN } }\n : undefined),\n },\n },\n compName: component.title,\n }),\n DashboardModal: async (component): Promise<BackofficeModal> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_MODAL as const,\n compData: {\n backOfficeModal: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n title: component.title,\n requiredPermission: component.requiredPermission,\n width: component.width,\n height: component.height,\n ...(await componentSourceBuilder(component)),\n ...(component.sentryDSN\n ? { errorReporting: { url: component.sentryDSN } }\n : undefined),\n },\n },\n compName: component.title,\n }),\n DashboardSidebarCategory: async (\n component\n ): Promise<BackofficeSideCategory> => ({\n compId: component.id,\n compType: ComponentType.BACK_OFFICE_SIDEBAR_CATEGORY as const,\n compData: {\n backOfficeSidebarCategory: {\n hostingPlatform: BackOfficeHostingPlatforms.BUSINESS_MANAGER,\n title: component.label,\n priority: component.priority,\n },\n },\n compName: component.label,\n }),\n EmbeddedScript: async (component): Promise<EmbeddedScript> => ({\n compId: component.id,\n compType: ComponentType.EMBEDDED_SCRIPT as const,\n compName: component.name,\n compData: {\n embeddedScriptComponentData: {\n name: component.name,\n pages: EmbeddedScriptPages.NONE_PAGES,\n placement: component.placement,\n connectArticleUrl: '',\n embedCategory: component.scriptType,\n dependencies: component.dependencies,\n loadOnce: true,\n allowedForFreeSite: true,\n ...(await componentSourceBuilder(component)),\n },\n },\n }),\n CustomElement: async (component): Promise<CustomElement> => {\n const { scriptUrl, settingsUrl } = await componentSourceBuilder(\n component\n );\n\n const basicConfig = createCustomElementConfig(component);\n\n return {\n ...basicConfig,\n compData: {\n customElementWidget: {\n ...basicConfig.compData.customElementWidget,\n widgetData: {\n ...basicConfig.compData.customElementWidget.widgetData,\n scriptUrl,\n },\n behaviors: {\n ...basicConfig.compData.customElementWidget.behaviors,\n ...(component.relativePanelPath\n ? { settings: { settingsUrl } }\n : {}),\n },\n },\n },\n };\n },\n Topology: async (component): Promise<Topology> => {\n return {\n compId: component.id,\n compType: ComponentType.TOPOLOGY as const,\n compName: component.name,\n compData: {\n topology: {\n topology: {\n backendApiUrl: component.backendApiUrl,\n },\n },\n },\n };\n },\n Api: () => null,\n Event: async (component): Promise<Array<Webhook>> => {\n const webhookSlugs = await componentSourceBuilder(component);\n\n return webhookSlugs.map(({ webhookSlug }) => ({\n compName: webhookSlug,\n compId: randomUUID(),\n compType: ComponentType.WEBHOOK,\n compData: {\n webhook: {\n callbackUrl: '__WEBHOOKS_URL_PLACEHOLDER__',\n webhookSlug,\n },\n },\n }));\n },\n ServicePlugin: () => null,\n })\n )\n )\n )\n .filter(isTruthy)\n .flat(),\n };\n}\n","import { BackOfficeScriptAssetType } from '@wix/ambassador-devcenter-components-v1-component/types';\nimport type { ComponentSource } from '@wix/cli-app-manifest';\nimport { match } from 'variant';\nimport { join } from 'node:path';\nimport { getAppBackendBuildFolder } from '@wix/cli-app-definitions';\nimport type * as GetRegisteredEvents from '@wix/cli-cloudflare-runtime/getRegisteredEvents';\nimport { getBackendEventSlug } from '@wix/extensions-data-client';\nimport {\n virtualModuleIdForScriptAsset,\n virtualPathForHTMLAsset,\n} from '../dev-center/components/dashboard/config.js';\nimport {\n virtualModuleIdForCustomElementScriptAsset,\n virtualPathForCustomElementPanelHTMLAsset,\n} from '../dev-center/components/site/config.js';\nimport type { ProjectModel } from '../model.js';\nimport type { ViteBuildOutput } from './build-output-data-extractor.js';\nimport {\n extractModuleBundleContent,\n extractModuleBundleName,\n} from './build-output-data-extractor.js';\nimport type { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\n\ntype DashboardSource =\n | {\n iframeUrl: string;\n scriptAsset?: never;\n }\n | {\n scriptAsset: ComponentSource['scriptAsset'];\n iframeUrl?: never;\n };\n\ntype EmbeddedScriptSource = {\n template: string;\n};\n\ntype CustomElementSource = { scriptUrl: string; settingsUrl: string };\n\ntype EventSource = {\n webhookSlug: string;\n};\n\nexport type ComponentSourceBuilder = <T extends DevCenterComponent>(\n component: T\n) => Promise<\n T extends DevCenterComponent<'EmbeddedScript'>\n ? EmbeddedScriptSource\n : T extends DevCenterComponent<'CustomElement'>\n ? CustomElementSource\n : T extends DevCenterComponent<'DashboardPage'>\n ? DashboardSource\n : T extends DevCenterComponent<'DashboardPlugin'>\n ? DashboardSource\n : T extends DevCenterComponent<'DashboardModal'>\n ? DashboardSource\n : T extends DevCenterComponent<'Event'>\n ? Array<EventSource>\n : undefined\n>;\n\nasync function getEmbeddedScriptDevTemplate(\n component: DevCenterComponent<'EmbeddedScript'>,\n backendDevServerUrl?: string\n) {\n const url = new URL(component.relativePath, backendDevServerUrl).href;\n const devTemplate = await fetch(url).then((res) => res.text());\n\n return devTemplate;\n}\n\nasync function getEventDevSlugs(\n component: DevCenterComponent<'Event'>,\n backendDevServerUrl?: string\n) {\n const url = new URL(`__get-registered-events`, backendDevServerUrl).href;\n const response = await fetch(url);\n\n if (!response.ok) {\n return [];\n }\n\n const eventTypes = await response.json();\n const devSlugs = eventTypes[`/${component.relativePath}`] ?? [];\n\n return devSlugs as Array<string>;\n}\n\nasync function getEventProdSlugs(\n component: DevCenterComponent<'Event'>,\n model: ProjectModel\n) {\n const backendBuildFolder = getAppBackendBuildFolder(model.projectFolder);\n const outputFilepath = join(backendBuildFolder, 'getRegisteredEvents.mjs');\n\n const { getRegisteredEvents } = await (import(outputFilepath) as Promise<\n typeof GetRegisteredEvents\n >);\n\n const eventsMap = await getRegisteredEvents();\n\n return eventsMap[`/${component.relativePath}`];\n}\n\nconst dashboardSourceBuilder = (\n component:\n | DevCenterComponent<'DashboardPage'>\n | DevCenterComponent<'DashboardPlugin'>\n | DevCenterComponent<'DashboardModal'>,\n model: ProjectModel,\n clientBuildOutput?: ViteBuildOutput\n): DashboardSource => {\n if (!model.config.trusted) {\n return {\n iframeUrl: virtualPathForHTMLAsset(component.id),\n };\n }\n const moduleId = virtualModuleIdForScriptAsset(component.id);\n const componentUrl = clientBuildOutput\n ? extractModuleBundleName(clientBuildOutput, moduleId)\n : `/@id/${moduleId}?import`;\n\n return {\n scriptAsset: {\n exportedName: component.id,\n containerId: model.config.appId,\n url: componentUrl,\n scriptType: BackOfficeScriptAssetType.MODULE,\n },\n };\n};\n\nconst embeddedScriptBuilder = async (\n component: DevCenterComponent<'EmbeddedScript'>,\n clientBuildOutput?: ViteBuildOutput,\n devServerUrl?: string\n): Promise<EmbeddedScriptSource> => {\n return {\n template: clientBuildOutput\n ? extractModuleBundleContent(clientBuildOutput, component.relativePath)\n : await getEmbeddedScriptDevTemplate(component, devServerUrl),\n };\n};\n\nconst eventSourceBuilder = async (\n component: DevCenterComponent<'Event'>,\n model: ProjectModel,\n backendBuildOutput?: ViteBuildOutput,\n backendDevServerUrl?: string\n): Promise<Array<EventSource>> => {\n const fullSlugNames = backendBuildOutput\n ? await getEventProdSlugs(component, model)\n : await getEventDevSlugs(component, backendDevServerUrl);\n\n const webhookSlugs = await Promise.all(\n fullSlugNames?.map(getBackendEventSlug)\n );\n\n return webhookSlugs.map((webhookSlug) => ({\n webhookSlug,\n }));\n};\n\nconst customElementBuilder = (\n component: DevCenterComponent<'CustomElement'>,\n clientBuildOutput?: ViteBuildOutput\n): CustomElementSource => {\n const moduleId = virtualModuleIdForCustomElementScriptAsset(component.id);\n const componentUrl = clientBuildOutput\n ? extractModuleBundleName(clientBuildOutput, moduleId)\n : `/@id/${moduleId}?import`;\n\n return {\n scriptUrl: componentUrl,\n settingsUrl: virtualPathForCustomElementPanelHTMLAsset(component.id),\n };\n};\n\nexport function getComponentSourceBuilder({\n model,\n clientBuildOutput,\n backendBuildOutput,\n clientDevServerUrl,\n backendDevServerUrl,\n}: {\n model: ProjectModel;\n clientBuildOutput?: ViteBuildOutput;\n backendBuildOutput?: ViteBuildOutput;\n clientDevServerUrl?: string;\n backendDevServerUrl?: string;\n}) {\n return (async (component: DevCenterComponent) => {\n const source = match(component, {\n EmbeddedScript: (embeddedScriptComponent) =>\n embeddedScriptBuilder(\n embeddedScriptComponent,\n clientBuildOutput,\n clientDevServerUrl\n ),\n DashboardSidebarCategory: () => {},\n CustomElement: (customElementComponent) =>\n customElementBuilder(customElementComponent, clientBuildOutput),\n DashboardPage: (dashboardPageComponent) =>\n dashboardSourceBuilder(\n dashboardPageComponent,\n model,\n clientBuildOutput\n ),\n DashboardPlugin: (dashboardPluginComponent) =>\n dashboardSourceBuilder(\n dashboardPluginComponent,\n model,\n clientBuildOutput\n ),\n DashboardModal: (dashboardModalComponent) =>\n dashboardSourceBuilder(\n dashboardModalComponent,\n model,\n clientBuildOutput\n ),\n DashboardMenuPlugin: () => {},\n Topology: () => {},\n Api: () => {},\n Event: (component) =>\n eventSourceBuilder(\n component,\n model,\n backendBuildOutput,\n backendDevServerUrl\n ),\n ServicePlugin: () => {},\n });\n\n return source;\n }) as ComponentSourceBuilder;\n}\n","import { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { build } from 'vite';\n\nexport type ViteBuildOutput = Awaited<ReturnType<typeof build>>;\n\nfunction extractBuildOutputs(buildOutput: ViteBuildOutput) {\n const isValidRollupOutput =\n 'output' in buildOutput || Array.isArray(buildOutput);\n\n if (!isValidRollupOutput) {\n throw new CliError({ code: CliErrorCode.InvalidViteBuildOutput() });\n }\n\n const outputs = Array.isArray(buildOutput)\n ? buildOutput.flatMap((output) => output.output)\n : buildOutput.output;\n\n return outputs;\n}\n\nexport function extractModuleBundleName(\n buildOutput: ViteBuildOutput,\n moduleId: string\n) {\n const outputs = extractBuildOutputs(buildOutput);\n\n const output = outputs.find(\n (output) => output.type === 'chunk' && output.facadeModuleId === moduleId\n );\n\n if (!output) {\n throw new CliError({ code: CliErrorCode.ViteModuleBundleNotFound() });\n }\n\n return output.fileName;\n}\n\nexport function extractModuleBundleContent(\n buildOutput: ViteBuildOutput,\n fileName: string\n) {\n const outputs = extractBuildOutputs(buildOutput);\n\n const output = outputs.find((output) => output.fileName === fileName);\n\n if (!output || !('source' in output)) {\n throw new CliError({\n code: CliErrorCode.ViteFileNotFoundInOutput({ fileName }),\n });\n }\n\n return output.source.toString();\n}\n"],"mappings":"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","names":["init_esm_shims","import_variant","randomUUID","validateComponents","components","devCenterComponentsToIdMap","component","DevCenterComponent","a","b","componentList","devCenterComponentsWithSameIDMap","devCenterComponents","key","CliError","CliErrorCode","id","title","relativePath","replaceExtension","label","CONFIG_FILENAME","name","randomUUID","init_esm_shims","import_variant","randomUUID","isTruthy","x","getExperiment","component","appId","createCustomElementConfig","ComponentType","CustomElementScriptType","HeightMode","RegionType","createAppManifest","components","sentryDSN","componentSourceBuilder","validateComponents","componentSentryDSN","BackOfficeHostingPlatforms","EmbeddedScriptPages","scriptUrl","settingsUrl","basicConfig","webhookSlug","randomUUID","init_esm_shims","import_variant","join","init_esm_shims","extractBuildOutputs","buildOutput","CliError","CliErrorCode","output","extractModuleBundleName","moduleId","extractModuleBundleContent","fileName","getEmbeddedScriptDevTemplate","component","backendDevServerUrl","url","res","getEventDevSlugs","response","getEventProdSlugs","model","backendBuildFolder","getAppBackendBuildFolder","outputFilepath","join","getRegisteredEvents","dashboardSourceBuilder","clientBuildOutput","virtualPathForHTMLAsset","moduleId","virtualModuleIdForScriptAsset","componentUrl","extractModuleBundleName","BackOfficeScriptAssetType","embeddedScriptBuilder","devServerUrl","extractModuleBundleContent","eventSourceBuilder","backendBuildOutput","fullSlugNames","getBackendEventSlug","webhookSlug","customElementBuilder","virtualModuleIdForCustomElementScriptAsset","virtualPathForCustomElementPanelHTMLAsset","getComponentSourceBuilder","clientDevServerUrl","embeddedScriptComponent","customElementComponent","dashboardPageComponent","dashboardPluginComponent","dashboardModalComponent"]}
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{Aa as $,Fa as T,a as g,b as P,d as l,db as V,f as b,x as H}from"./chunk-HNCYDCAD.js";import{L as J,N as j,V as z,a as S,b as F,d as u,e as _,l as c,m as A,x as M,z as E}from"./chunk-DRRMAC33.js";import{e as v,h as s}from"./chunk-V4TR6DCM.js";s();s();var pe={},ne={},me={},ce={};var de={},le={},ue={},fe={};function q(r){var e={"api._api_base_domain_":[{srcPath:"/apps-release-manager-service-web",destPath:""}],"bo._base_domain_":[{srcPath:"/apps-release-manager-service-web",destPath:""}],"wixbo.ai":[{srcPath:"/apps-release-manager-service-web",destPath:""}],"www._base_domain_":[{srcPath:"/apps-release-manager-service-web/artifacts-release-manager/app-releases",destPath:"/artifacts-release-manager/app-releases"},{srcPath:"/_api/apps-release-manager-service-web/artifacts-release-manager/app-releases",destPath:"/artifacts-release-manager/app-releases"},{srcPath:"/apps-release-manager-service-web/apps/create",destPath:"/apps/create"},{srcPath:"/apps-release-manager-service-web/apps/promote",destPath:"/apps/promote"},{srcPath:"/apps-release-manager-service-web/apps/tags",destPath:"/apps/tags"},{srcPath:"/apps-release-manager-service-web/apps/create-components",destPath:"/apps/create-components"}],"manage._base_domain_":[{srcPath:"/apps-release-manager-service-web/apps/promote",destPath:"/apps/promote"},{srcPath:"/apps-release-manager-service-web/apps/create",destPath:"/apps/create"},{srcPath:"/apps-release-manager-service-web/apps/tags",destPath:"/apps/tags"},{srcPath:"/apps-release-manager-service-web/apps/create-components",destPath:"/apps/create-components"}]};return P(Object.assign(r,{domainToMappings:e}))}function W(r){var e=l(pe,{}),t=e.toJSON,a=e.fromJSON,i=l(ne,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"POST",methodFqn:"com.wix.ctp.AppsReleaseManagerService.CreateAppRelease",url:q({protoPath:"/apps/create/{appId}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}function k(r){var e=l(ue,{}),t=e.toJSON,a=e.fromJSON,i=l(fe,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"PUT",methodFqn:"com.wix.ctp.AppsReleaseManagerService.UpdateAppRelease",url:q({protoPath:"/apps/tags/{tag}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}function Q(r){var e=l(me,{}),t=e.toJSON,a=e.fromJSON,i=l(ce,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"POST",methodFqn:"com.wix.ctp.AppsReleaseManagerService.CreateComponents",url:q({protoPath:"/apps/create-components/{appId}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}function G(r){var e=l(de,{}),t=e.toJSON,a=e.fromJSON,i=l(le,{}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.ctp.gradual_rollout.v1.app_config",method:"POST",methodFqn:"com.wix.ctp.AppsReleaseManagerService.PromoteAppReleaseToDevCenter",url:q({protoPath:"/apps/promote/{appId}/{tag}",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}var O=v(F(),1);s();var B=c.object({newVersion:c.string()}),K=c.object({tag:c.string()});var{AppPermissionDenied:I}=_,X=(0,O.variant)({TagUpdated:{},TagNotFound:(0,O.fields)()}),w=class{constructor(e){this.httpClient=e;let{minRetryTimeout:t}=A();this.retryOptions={retries:3,minTimeout:t,maxTimeout:3*1e3}}retryOptions;createComponents=async(e,t,a)=>{try{await g(()=>this.httpClient.request(Q({appId:e,componentConfigs:t,projectId:a})),this.retryOptions)}catch(i){throw b(i)&&i.response?.status===403?new u({code:I({appId:e}),cause:i}):new u({code:_.FailedToCreateComponents(),cause:i})}};createAppRelease=async(e,t)=>{try{let{data:a}=await g(()=>this.httpClient.request(W({appId:e.appId,componentConfigs:e.components,projectId:t})),this.retryOptions);return K.parse(a).tag}catch(a){throw b(a)&&a.response?.status===403?new u({code:I({appId:e.appId}),cause:a}):new u({code:_.FailedToCreateAppRelease(),cause:a})}};updateAppRelease=async(e,t)=>{try{return await g(()=>this.httpClient.request(k({appId:e.appId,componentConfigs:e.components,tag:t})),this.retryOptions),X.TagUpdated()}catch(a){if(b(a)){if(a.response?.status===404)return X.TagNotFound({cause:a});if(a.response?.status===403)throw new u({code:I({appId:e.appId}),cause:a})}throw new u({code:_.FailedToUpdateAppRelease(),cause:a})}};promoteToDevCenter=async(e,t,a)=>{let{data:i}=await g(()=>this.httpClient.request(G({appId:e,tag:t,versionType:a})),this.retryOptions);return B.parse(i)}};s();var Y=v(S(),1);function he(){let r=T({type:"backoffice"});return(0,Y.useMemo)(()=>new w(r),[r])}s();s();var R=v(S(),1),Z=(0,R.createContext)(null),We=({children:r,armTag:e})=>R.default.createElement(Z.Provider,{value:{armTag:e}},r),ee=()=>{let r=(0,R.useContext)(Z);if(r===null)throw new Error("useArmTag() cannot be used without an <ArmTagProvider>");return r};s();s();var ve={},ge={sites:"_site"},_e={createdDate:"google.protobuf.Timestamp",updatedDate:"google.protobuf.Timestamp",trashedDate:"google.protobuf.Timestamp"};function Se(r){var e={"www._base_domain_":[{srcPath:"/_api/sites-list",destPath:"/api"},{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"feedback._base_domain_":[{srcPath:"/_api/sites-list",destPath:"/api"}],"manage._base_domain_":[{srcPath:"/_api/sites-list",destPath:"/api"},{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"},{srcPath:"/_api/sites-list-data",destPath:"/api/sites-list-data"}],"www.wixapis.com":[{srcPath:"/site-list/v2/sites",destPath:"/v2/sites"}],"api._api_base_domain_":[{srcPath:"/sites-list",destPath:""}],"bo._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"wixbo.ai":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"dev._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"editor._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"blocks._base_domain_":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}],"create.editorx":[{srcPath:"/_api/sites-list/v2/sites",destPath:"/v2/sites"}]};return P(Object.assign(r,{domainToMappings:e}))}function L(r){var e=l(ve,{}),t=e.toJSON,a=e.fromJSON,i=l(ge,{_site:_e}).fromJSON;function o(d){var f=d.host,m=t(r),h={entityFqdn:"wix.site_list.v2.site",method:"POST",methodFqn:"com.wixpress.sitelist.api.SiteListServiceV2.QuerySites",url:Se({protoPath:"/v2/sites/query",data:m,host:f}),data:m,transformResponse:i};return h}return o.fromReq=a,o.__isAmbassador=!0,o}s();var Re=c.object({id:c.string(),displayName:c.string(),viewUrl:c.union([c.string().url(),c.literal("")]).optional()}),U=c.object({sites:c.array(Re)});var C=class{constructor(e){this.httpClient=e;let{minRetryTimeout:t}=A();this.retryOptions={retries:3,minTimeout:t,maxTimeout:3*1e3}}retryOptions;querySites=async(e={})=>{try{let{data:t}=await g(()=>this.httpClient.request(L(e)),this.retryOptions);return U.parse(t).sites}catch(t){throw new u({code:_.FailedToQuerySites(),cause:t,info:{...e}})}};getSite=async e=>{try{let{data:t}=await g(()=>this.httpClient.request(L({query:{filter:{id:{$in:[e]}}}})),this.retryOptions),{sites:a}=U.parse(t);return a.at(0)??null}catch(t){throw new u({code:_.FailedToGetSite(),cause:t,info:{id:e}})}}};s();var te=v(S(),1);function ye(){let r=T({type:"backoffice"});return(0,te.useMemo)(()=>new C(r),[r])}s();s();var re=v(S(),1),ae=(0,re.createContext)(null);s();var x=v(F(),1),D=(0,x.variant)({NotConfigured:{},NotFound:(0,x.fields)(),Resolved:(0,x.fields)()});s();async function wt({projectFolder:r,siteListClient:{getSite:e},siteId:t,writeDebugLog:a}){let i=t||(await $(r,a))?.siteId;if(!i)return D.NotConfigured();let o=await e(i);return o?D.Resolved({site:o}):D.NotFound({id:i})}s();var se=v(S(),1);function oe(){let r=(0,se.useContext)(ae);if(r===null)throw new Error("useSiteId() cannot be used without an <SiteIdProvider>");return r}s();var y=v(S(),1);var N=v(F(),1);function It(){let{model:r}=V(),{site:e}=oe(),{armTag:t}=ee();return{appId:r.config.appId,site:e,tag:t}}var ie=r=>{let e=new URL(r.toString()),t=["specs.UseAppsRuntimeCache","specs.ApplyQueryParamsOverrides"].map(a=>`${a}:true`).join(";");return e.searchParams.append("petri_ovr",t),e};function Lt({envConfig:r,platformType:e,siteOverrideId:t}){let{site:a,tag:i}=r,o=(0,N.match)(e,{Dashboard:()=>new URL(`dashboard/${a.id}`,"https://manage.wix.com/"),Editor:()=>ie(new URL(`https://wix.com/editor/${a.id}`)),Site:()=>{let d=ie(new URL(a.viewUrl));return t&&d.searchParams.append("site-override",t),d}});return o.searchParams.append("apps-override",i),o.toString()}function Ut({envConfig:r,extension:e}){let{appId:t,site:a,tag:i}=r,o=(0,N.matcher)(e).with({DashboardPage:()=>new URL(`dashboard/${a.id}/app/${t}${e.route}`,"https://manage.wix.com/")}).when(["DashboardMenuPlugin","DashboardPlugin","DashboardModal"],()=>new URL(`dashboard/${a.id}${e.route}`,"https://manage.wix.com/")).complete();return o.searchParams.append("apps-override",i),o.toString()}var Mt=async({url:r,title:e},t)=>{try{await H(r)}catch{t({type:"error",prefix:"app",msg:y.default.createElement(J,{type:"error"},y.default.createElement(z,{i18nKey:"general.open_page_error",components:[y.default.createElement(E,{bold:!0})],values:{title:e}}),y.default.createElement(M,null),y.default.createElement(j,{url:r}))})}};export{C as a,ye as b,ae as c,D as d,wt as e,w as f,he as g,We as h,oe as i,It as j,ie as k,Lt as l,Ut as m,Mt as n};
4
+ //# sourceMappingURL=chunk-DPJN7TRY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../arm-client/src/client.ts","../../../node_modules/@wix/ambassador-ctp-gradual-rollout-v1-app-config/http.impl.ts","../../arm-client/src/schemas.ts","../../arm-client/src/useARMClient.ts","../../arm-client/src/index.ts","../src/context/armTag.tsx","../../site-list-client/src/site-list-client.ts","../../../node_modules/@wix/ambassador-site-list-v2-site/http.impl.ts","../../site-list-client/src/schemas.ts","../../site-list-client/src/useSiteListClient.ts","../../site-list-client/src/index.ts","../src/site-id/context.ts","../src/site-id/site-id-state.ts","../src/site-id/resolve-configured-site.ts","../src/site-id/useSiteId.ts","../src/components/extensions/utils.tsx"],"sourcesContent":["import type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport type { AppManifest } from '@wix/cli-app-manifest';\nimport type { Options } from 'p-retry';\nimport type {\n VersionType,\n ComponentConfig,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/types';\nimport {\n createAppRelease,\n promoteAppReleaseToDevCenter,\n updateAppRelease,\n createComponents,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/http';\nimport pRetry from 'p-retry';\nimport { fields, variant } from 'variant';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { createAppReleaseSchema, promoteAppReleaseSchema } from './schemas.js';\n\nconst { AppPermissionDenied } = CliErrorCode;\n\nexport const UpdateAppReleaseData = variant({\n TagUpdated: {},\n TagNotFound: fields<{ cause: HttpError }>(),\n});\n\nexport class ARMClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n createComponents = async (\n appId: string,\n componentConfigs: ComponentConfig[],\n projectId: string\n ) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n createComponents({\n appId,\n componentConfigs,\n projectId,\n })\n ),\n this.retryOptions\n );\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateComponents(),\n cause: e,\n });\n }\n };\n\n createAppRelease = async (manifest: AppManifest, projectId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n createAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n projectId,\n })\n ),\n this.retryOptions\n );\n\n return createAppReleaseSchema.parse(data).tag;\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateAppRelease(),\n cause: e,\n });\n }\n };\n\n updateAppRelease = async (manifest: AppManifest, tag: string) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n updateAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n tag,\n })\n ),\n this.retryOptions\n );\n\n return UpdateAppReleaseData.TagUpdated();\n } catch (e) {\n if (isHttpError(e)) {\n if (e.response?.status === 404) {\n return UpdateAppReleaseData.TagNotFound({ cause: e });\n }\n if (e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n }\n throw new CliError({\n code: CliErrorCode.FailedToUpdateAppRelease(),\n cause: e,\n });\n }\n };\n\n promoteToDevCenter = async (\n appId: string,\n tag: string,\n versionType: VersionType\n ) => {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n promoteAppReleaseToDevCenter({ appId, tag, versionType })\n ),\n this.retryOptions\n );\n\n return promoteAppReleaseSchema.parse(data);\n };\n}\n",null,"import { z } from 'zod';\n\nexport const promoteAppReleaseSchema = z.object({\n newVersion: z.string(),\n});\n\nexport const createAppReleaseSchema = z.object({\n tag: z.string(),\n});\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { ARMClient } from './client.js';\n\nexport function useARMClient(): ARMClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new ARMClient(httpClient), [httpClient]);\n}\n","export { ARMClient } from './client.js';\nexport { useARMClient } from './useARMClient.js';\n","import React, {\n useContext,\n createContext,\n type FC,\n type ReactNode,\n} from 'react';\n\ntype ArmTag = {\n armTag: string;\n};\n\nexport const ArmTagContext = createContext<ArmTag | null>(null);\n\nexport const ArmTagProvider: FC<{ children: ReactNode; armTag: string }> = ({\n children,\n armTag,\n}) => {\n return (\n <ArmTagContext.Provider value={{ armTag }}>\n {children}\n </ArmTagContext.Provider>\n );\n};\n\nexport const useArmTag = () => {\n const context = useContext(ArmTagContext);\n\n if (context === null) {\n throw new Error('useArmTag() cannot be used without an <ArmTagProvider>');\n }\n\n return context;\n};\n","import pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { QuerySitesRequest } from '@wix/ambassador-site-list-v2-site/types';\nimport { querySites } from '@wix/ambassador-site-list-v2-site/http';\nimport type { HttpClient } from '@wix/cli-http-client';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { querySitesSchema } from './schemas.js';\n\nexport class SiteListClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n querySites = async (opts: QuerySitesRequest = {}) => {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(querySites(opts)),\n this.retryOptions\n );\n\n return querySitesSchema.parse(data).sites;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToQuerySites(),\n cause: e,\n info: { ...opts },\n });\n }\n };\n\n getSite = async (id: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n querySites({ query: { filter: { id: { $in: [id] } } } })\n ),\n this.retryOptions\n );\n\n const { sites } = querySitesSchema.parse(data);\n return sites.at(0) ?? null;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSite(),\n cause: e,\n info: { id },\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const siteSchema = z.object({\n id: z.string(),\n displayName: z.string(),\n viewUrl: z.union([z.string().url(), z.literal('')]).optional(),\n});\n\nexport const querySitesSchema = z.object({\n sites: z.array(siteSchema),\n});\n\nexport type Site = z.TypeOf<typeof siteSchema>;\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { SiteListClient } from './site-list-client.js';\n\nexport function useSiteListClient(): SiteListClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new SiteListClient(httpClient), [httpClient]);\n}\n","export { SiteListClient } from './site-list-client.js';\nexport type { Site } from './schemas.js';\nexport { useSiteListClient } from './useSiteListClient.js';\n","import { createContext } from 'react';\nimport type { Site } from '@wix/site-list-client';\n\nexport type SiteIdState = {\n site: Site;\n setSite: (site: Site) => Promise<void>;\n};\n\nexport const SiteIdContext = createContext<SiteIdState | null>(null);\n","import { variant, fields, type VariantOf, type TypeNames } from 'variant';\nimport { type Site } from '@wix/site-list-client';\n\nexport const SiteIdState = variant({\n NotConfigured: {},\n NotFound: fields<{ id: string }>(),\n Resolved: fields<{ site: Site }>(),\n});\n\nexport type SiteIdState<T extends TypeNames<typeof SiteIdState> = undefined> =\n VariantOf<typeof SiteIdState, T>;\n","import type { SiteListClient } from '@wix/site-list-client';\nimport type { WriteDebugLogFn } from '@wix/cli-debug-log';\nimport { readAppConfig } from '../files/app.config.js';\nimport { SiteIdState } from './site-id-state.js';\n\nexport async function resolveConfiguredSite({\n projectFolder,\n siteListClient: { getSite },\n siteId,\n writeDebugLog,\n}: {\n projectFolder: string;\n siteListClient: SiteListClient;\n siteId?: string;\n writeDebugLog?: WriteDebugLogFn;\n}) {\n const resolvedSiteId = !siteId\n ? (await readAppConfig(projectFolder, writeDebugLog))?.siteId\n : siteId;\n\n if (!resolvedSiteId) {\n return SiteIdState.NotConfigured();\n }\n\n const site = await getSite(resolvedSiteId);\n\n if (!site) {\n return SiteIdState.NotFound({ id: resolvedSiteId });\n }\n\n return SiteIdState.Resolved({ site });\n}\n","import { useContext } from 'react';\nimport { SiteIdContext, type SiteIdState } from './context.js';\n\nexport function useSiteId(): SiteIdState {\n const context = useContext(SiteIdContext);\n if (context === null) {\n throw new Error('useSiteId() cannot be used without an <SiteIdProvider>');\n }\n return context;\n}\n","import React from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { matcher, match } from 'variant';\nimport { openBrowser } from '@wix/user-browser';\nimport type { Site } from '@wix/site-list-client';\nimport { Alert, Link, Text, Newline } from '@wix/cli-ui-kit';\nimport type { PlatformType } from '@wix/cli-app-definitions';\nimport type { WriteLogFn } from '../DevCommand/devEnvLogs/useDevEnvLogs.js';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { useArmTag } from '../../context/armTag.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type { DashboardExtension } from './useExtensions.js';\n\nexport type EnvConfig = {\n site: Site;\n appId: string;\n tag: string;\n};\n\nexport function useEnvConfig(): EnvConfig {\n const { model } = useProjectModel();\n const { site } = useSiteId();\n const { armTag } = useArmTag();\n\n return {\n appId: model.config.appId,\n site,\n tag: armTag,\n };\n}\n\n// CSMv2 overrides are still not open to users, we need to open it explicitly.\n// TODO: remove it when the rollout is complete.\nexport const addCSMv2FTs = (url: URL) => {\n const clonedUrl = new URL(url.toString());\n const petriOvr = [\n 'specs.UseAppsRuntimeCache',\n 'specs.ApplyQueryParamsOverrides',\n ]\n .map((spec) => `${spec}:true`)\n .join(';');\n clonedUrl.searchParams.append('petri_ovr', petriOvr);\n return clonedUrl;\n};\n\nexport function resolvePlatformUrl({\n envConfig,\n platformType,\n siteOverrideId,\n}: {\n envConfig: EnvConfig;\n platformType: PlatformType;\n siteOverrideId?: string;\n}) {\n const { site, tag } = envConfig;\n\n const url = match(platformType, {\n Dashboard: () => new URL(`dashboard/${site.id}`, 'https://manage.wix.com/'),\n Editor: () => addCSMv2FTs(new URL(`https://wix.com/editor/${site.id}`)),\n Site: () => {\n const siteUrl = addCSMv2FTs(new URL(site.viewUrl!));\n if (siteOverrideId) {\n siteUrl.searchParams.append('site-override', siteOverrideId);\n }\n return siteUrl;\n },\n });\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport function resolveDashboardExtensionUrl({\n envConfig,\n extension,\n}: {\n envConfig: EnvConfig;\n extension: DevCenterComponent<DashboardExtension>;\n}) {\n const { appId, site, tag } = envConfig;\n\n const url = matcher(extension)\n .with({\n DashboardPage: () =>\n new URL(\n `dashboard/${site.id}/app/${appId}${extension.route}`,\n 'https://manage.wix.com/'\n ),\n })\n .when(\n ['DashboardMenuPlugin', 'DashboardPlugin', 'DashboardModal'],\n () =>\n new URL(\n `dashboard/${site.id}${extension.route}`,\n 'https://manage.wix.com/'\n )\n )\n .complete();\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport const openPage = async (\n { url, title }: { url: string; title: string },\n writeLog: WriteLogFn\n) => {\n try {\n await openBrowser(url);\n } catch (error) {\n writeLog({\n type: 'error',\n prefix: 'app',\n msg: (\n <Alert type=\"error\">\n <Trans\n i18nKey=\"general.open_page_error\"\n components={[<Text bold />]}\n values={{ title }}\n />\n <Newline />\n <Link url={url} />\n </Alert>\n ),\n });\n }\n};\n"],"mappings":";;2VAAAA,ICaAC,IAIA,IAAMC,GAA2B,CAAA,EAC3BC,GAA4B,CAAA,EAC5BC,GAA2B,CAAA,EAC3BC,GAA4B,CAAA,EAGlC,IAAMC,GAAuC,CAAA,EACvCC,GAAwC,CAAA,EACxCC,GAA2B,CAAA,EAC3BC,GAA4B,CAAA,EAElC,SAASC,EACPC,EAA8C,CAE9C,IAAMC,EAAmB,CACvB,wBAAyB,CACvB,CACE,QAAS,oCACT,SAAU,KAGd,mBAAoB,CAClB,CACE,QAAS,oCACT,SAAU,KAGd,WAAY,CACV,CACE,QAAS,oCACT,SAAU,KAGd,oBAAqB,CACnB,CACE,QACE,2EACF,SAAU,2CAEZ,CACE,QACE,gFACF,SAAU,2CAEZ,CACE,QAAS,gDACT,SAAU,gBAEZ,CACE,QAAS,iDACT,SAAU,iBAEZ,CACE,QAAS,8CACT,SAAU,cAEZ,CACE,QAAS,2DACT,SAAU,4BAGd,uBAAwB,CACtB,CACE,QAAS,iDACT,SAAU,iBAEZ,CACE,QAAS,gDACT,SAAU,gBAEZ,CACE,QAAS,8CACT,SAAU,cAEZ,CACE,QAAS,2DACT,SAAU,6BAKhB,OAAOC,EAAW,OAAO,OAAOF,EAAM,CAAE,iBAAgBC,CAAA,CAAE,CAAC,CAC7D,CAEM,SAAUE,EACdC,EAAgC,CAE1B,IAAAC,EAAuCC,EAC3CC,GACA,CAAA,CAAE,EAFYC,EAAKH,EAAA,OAAYI,EAAOJ,EAAA,SAItBK,EAAYJ,EAAWK,GAA2B,CAAA,CAAE,EAAC,SAEvE,SAASC,EAAmBP,EAAa,KAAXQ,EAAIR,EAAA,KAC1BS,EAAiBN,EAAMJ,CAAO,EAC9BW,EAAW,CACf,WAAY,wCACZ,OAAQ,OACR,UAAW,yDACX,IAAKhB,EAA6C,CAChD,UAAW,uBACX,KAAMe,EACN,KAAID,EACL,EACD,KAAMC,EACN,kBAAmBJ,GAGrB,OAAOK,CACT,CAEA,OAAAH,EAAmB,QAAUH,EAC7BG,EAAmB,eAAiB,GAC7BA,CACT,CAEM,SAAUI,EACdZ,EAAgC,CAE1B,IAAAC,EAAuCC,EAC3CT,GACA,CAAA,CAAE,EAFYW,EAAKH,EAAA,OAAYI,EAAOJ,EAAA,SAItBK,EAAYJ,EAAWR,GAA2B,CAAA,CAAE,EAAC,SAEvE,SAASmB,EAAmBZ,EAAa,KAAXQ,EAAIR,EAAA,KAC1BS,EAAiBN,EAAMJ,CAAO,EAC9BW,EAAW,CACf,WAAY,wCACZ,OAAQ,MACR,UAAW,yDACX,IAAKhB,EAA6C,CAChD,UAAW,mBACX,KAAMe,EACN,KAAID,EACL,EACD,KAAMC,EACN,kBAAmBJ,GAGrB,OAAOK,CACT,CAEA,OAAAE,EAAmB,QAAUR,EAC7BQ,EAAmB,eAAiB,GAC7BA,CACT,CAEM,SAAUC,EACdd,EAAgC,CAE1B,IAAAC,EAAuCC,EAC3Ca,GACA,CAAA,CAAE,EAFYX,EAAKH,EAAA,OAAYI,EAAOJ,EAAA,SAItBK,EAAYJ,EAAWc,GAA2B,CAAA,CAAE,EAAC,SAEvE,SAASC,EAAmBhB,EAAa,KAAXQ,EAAIR,EAAA,KAC1BS,EAAiBN,EAAMJ,CAAO,EAC9BW,EAAW,CACf,WAAY,wCACZ,OAAQ,OACR,UAAW,yDACX,IAAKhB,EAA6C,CAChD,UAAW,kCACX,KAAMe,EACN,KAAID,EACL,EACD,KAAMC,EACN,kBAAmBJ,GAGrB,OAAOK,CACT,CAEA,OAAAM,EAAmB,QAAUZ,EAC7BY,EAAmB,eAAiB,GAC7BA,CACT,CAkCM,SAAUC,EACdC,EAA4C,CAEtC,IAAAC,EAAuCC,EAC3CC,GACA,CAAA,CAAE,EAFYC,EAAKH,EAAA,OAAYI,EAAOJ,EAAA,SAItBK,EAAYJ,EAC5BK,GACA,CAAA,CAAE,EACH,SAED,SAASC,EAA+BP,EAAa,KAAXQ,EAAIR,EAAA,KACtCS,EAAiBN,EAAMJ,CAAO,EAC9BW,EAAW,CACf,WAAY,wCACZ,OAAQ,OACR,UACE,qEACF,IAAKC,EAA6C,CAChD,UAAW,8BACX,KAAMF,EACN,KAAID,EACL,EACD,KAAMC,EACN,kBAAmBJ,GAGrB,OAAOK,CACT,CAEA,OAAAH,EAA+B,QAAUH,EACzCG,EAA+B,eAAiB,GACzCA,CACT,CDzPA,IAAAK,EAAgC,SEdhCC,IAEO,IAAMC,EAA0BC,EAAE,OAAO,CAC9C,WAAYA,EAAE,OAAO,CACvB,CAAC,EAEYC,EAAyBD,EAAE,OAAO,CAC7C,IAAKA,EAAE,OAAO,CAChB,CAAC,EFYD,GAAM,CAAE,oBAAAE,CAAoB,EAAIC,EAEnBC,KAAuB,WAAQ,CAC1C,WAAY,CAAC,EACb,eAAa,UAA6B,CAC5C,CAAC,EAEYC,EAAN,KAAgB,CAGrB,YAA6BC,EAAwB,CAAxB,gBAAAA,EAC3B,GAAM,CAAE,gBAAAC,CAAgB,EAAIC,EAAiB,EAE7C,KAAK,aAAe,CAClB,QAAS,EACT,WAAYD,EACZ,WAAY,EAAI,GAClB,CACF,CAViB,aAYjB,iBAAmB,MACjBE,EACAC,EACAC,IACG,CACH,GAAI,CACF,MAAMC,EACJ,IACE,KAAK,WAAW,QACdC,EAAiB,CACf,MAAAJ,EACA,iBAAAC,EACA,UAAAC,CACF,CAAC,CACH,EACF,KAAK,YACP,CACF,OAASG,EAAG,CACV,MAAIC,EAAYD,CAAC,GAAKA,EAAE,UAAU,SAAW,IACrC,IAAIE,EAAS,CACjB,KAAMd,EAAoB,CAAE,MAAAO,CAAM,CAAC,EACnC,MAAOK,CACT,CAAC,EAEG,IAAIE,EAAS,CACjB,KAAMb,EAAa,yBAAyB,EAC5C,MAAOW,CACT,CAAC,CACH,CACF,EAEA,iBAAmB,MAAOG,EAAuBN,IAAsB,CACrE,GAAI,CACF,GAAM,CAAE,KAAAO,CAAK,EAAI,MAAMN,EACrB,IACE,KAAK,WAAW,QACdO,EAAiB,CACf,MAAOF,EAAS,MAChB,iBAAkBA,EAAS,WAC3B,UAAAN,CACF,CAAC,CACH,EACF,KAAK,YACP,EAEA,OAAOS,EAAuB,MAAMF,CAAI,EAAE,GAC5C,OAASJ,EAAG,CACV,MAAIC,EAAYD,CAAC,GAAKA,EAAE,UAAU,SAAW,IACrC,IAAIE,EAAS,CACjB,KAAMd,EAAoB,CAAE,MAAOe,EAAS,KAAM,CAAC,EACnD,MAAOH,CACT,CAAC,EAEG,IAAIE,EAAS,CACjB,KAAMb,EAAa,yBAAyB,EAC5C,MAAOW,CACT,CAAC,CACH,CACF,EAEA,iBAAmB,MAAOG,EAAuBI,IAAgB,CAC/D,GAAI,CACF,aAAMT,EACJ,IACE,KAAK,WAAW,QACdU,EAAiB,CACf,MAAOL,EAAS,MAChB,iBAAkBA,EAAS,WAC3B,IAAAI,CACF,CAAC,CACH,EACF,KAAK,YACP,EAEOjB,EAAqB,WAAW,CACzC,OAASU,EAAG,CACV,GAAIC,EAAYD,CAAC,EAAG,CAClB,GAAIA,EAAE,UAAU,SAAW,IACzB,OAAOV,EAAqB,YAAY,CAAE,MAAOU,CAAE,CAAC,EAEtD,GAAIA,EAAE,UAAU,SAAW,IACzB,MAAM,IAAIE,EAAS,CACjB,KAAMd,EAAoB,CAAE,MAAOe,EAAS,KAAM,CAAC,EACnD,MAAOH,CACT,CAAC,CAEL,CACA,MAAM,IAAIE,EAAS,CACjB,KAAMb,EAAa,yBAAyB,EAC5C,MAAOW,CACT,CAAC,CACH,CACF,EAEA,mBAAqB,MACnBL,EACAY,EACAE,IACG,CACH,GAAM,CAAE,KAAAL,CAAK,EAAI,MAAMN,EACrB,IACE,KAAK,WAAW,QACdY,EAA6B,CAAE,MAAAf,EAAO,IAAAY,EAAK,YAAAE,CAAY,CAAC,CAC1D,EACF,KAAK,YACP,EAEA,OAAOE,EAAwB,MAAMP,CAAI,CAC3C,CACF,EGrJAQ,IAAA,IAAAC,EAAwB,SAIjB,SAASC,IAA0B,CACxC,IAAMC,EAAaC,EAAc,CAAE,KAAM,YAAa,CAAC,EACvD,SAAO,WAAQ,IAAM,IAAIC,EAAUF,CAAU,EAAG,CAACA,CAAU,CAAC,CAC9D,CCPAG,ICAAC,IAAA,IAAAC,EAKO,SAMMC,KAAgB,iBAA6B,IAAI,EAEjDC,GAA8D,CAAC,CAC1E,SAAAC,EACA,OAAAC,CACF,IAEI,EAAAC,QAAA,cAACJ,EAAc,SAAd,CAAuB,MAAO,CAAE,OAAAG,CAAO,GACrCD,CACH,EAISG,GAAY,IAAM,CAC7B,IAAMC,KAAU,cAAWN,CAAa,EAExC,GAAIM,IAAY,KACd,MAAM,IAAI,MAAM,wDAAwD,EAG1E,OAAOA,CACT,EChCAC,ICOAC,IAMA,IAAMC,GAAqB,CAAA,EACrBC,GAAsB,CAAE,MAAO,OAAO,EACtCC,GAAQ,CACZ,YAAa,4BACb,YAAa,4BACb,YAAa,6BAGf,SAASC,GACPC,EAA8C,CAE9C,IAAMC,EAAmB,CACvB,oBAAqB,CACnB,CACE,QAAS,mBACT,SAAU,QAEZ,CACE,QAAS,4BACT,SAAU,cAGd,yBAA0B,CACxB,CACE,QAAS,mBACT,SAAU,SAGd,uBAAwB,CACtB,CACE,QAAS,mBACT,SAAU,QAEZ,CACE,QAAS,4BACT,SAAU,aAEZ,CACE,QAAS,wBACT,SAAU,yBAGd,kBAAmB,CACjB,CACE,QAAS,sBACT,SAAU,cAGd,wBAAyB,CACvB,CACE,QAAS,cACT,SAAU,KAGd,mBAAoB,CAClB,CACE,QAAS,4BACT,SAAU,cAGd,WAAY,CACV,CACE,QAAS,4BACT,SAAU,cAGd,oBAAqB,CACnB,CACE,QAAS,4BACT,SAAU,cAGd,uBAAwB,CACtB,CACE,QAAS,4BACT,SAAU,cAGd,uBAAwB,CACtB,CACE,QAAS,4BACT,SAAU,cAGd,iBAAkB,CAChB,CACE,QAAS,4BACT,SAAU,eAKhB,OAAOC,EAAW,OAAO,OAAOF,EAAM,CAAE,iBAAgBC,CAAA,CAAE,CAAC,CAC7D,CAOM,SAAUE,EACdC,EAA0B,CAEpB,IAAAC,EAAuCC,EAC3CV,GACA,CAAA,CAAE,EAFYW,EAAKF,EAAA,OAAYG,EAAOH,EAAA,SAItBI,EAAYH,EAAWT,GAAqB,CAAE,MAAKC,EAAA,CAAE,EAAC,SAExE,SAASY,EAAaL,EAAa,KAAXM,EAAIN,EAAA,KACpBO,EAAiBL,EAAMH,CAAO,EAC9BS,EAAW,CACf,WAAY,wBACZ,OAAQ,OACR,UAAW,yDACX,IAAKd,GAAkD,CACrD,UAAW,kBACX,KAAMa,EACN,KAAID,EACL,EACD,KAAMC,EACN,kBAAmBH,GAGrB,OAAOI,CACT,CAEA,OAAAH,EAAa,QAAUF,EACvBE,EAAa,eAAiB,GACvBA,CACT,CC/IAI,IAEO,IAAMC,GAAaC,EAAE,OAAO,CACjC,GAAIA,EAAE,OAAO,EACb,YAAaA,EAAE,OAAO,EACtB,QAASA,EAAE,MAAM,CAACA,EAAE,OAAO,EAAE,IAAI,EAAGA,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,CAC/D,CAAC,EAEYC,EAAmBD,EAAE,OAAO,CACvC,MAAOA,EAAE,MAAMD,EAAU,CAC3B,CAAC,EFDM,IAAMG,EAAN,KAAqB,CAG1B,YAA6BC,EAAwB,CAAxB,gBAAAA,EAC3B,GAAM,CAAE,gBAAAC,CAAgB,EAAIC,EAAiB,EAE7C,KAAK,aAAe,CAClB,QAAS,EACT,WAAYD,EACZ,WAAY,EAAI,GAClB,CACF,CAViB,aAYjB,WAAa,MAAOE,EAA0B,CAAC,IAAM,CACnD,GAAI,CACF,GAAM,CAAE,KAAAC,CAAK,EAAI,MAAMC,EACrB,IAAM,KAAK,WAAW,QAAQC,EAAWH,CAAI,CAAC,EAC9C,KAAK,YACP,EAEA,OAAOI,EAAiB,MAAMH,CAAI,EAAE,KACtC,OAASI,EAAG,CACV,MAAM,IAAIC,EAAS,CACjB,KAAMC,EAAa,mBAAmB,EACtC,MAAOF,EACP,KAAM,CAAE,GAAGL,CAAK,CAClB,CAAC,CACH,CACF,EAEA,QAAU,MAAOQ,GAAe,CAC9B,GAAI,CACF,GAAM,CAAE,KAAAP,CAAK,EAAI,MAAMC,EACrB,IACE,KAAK,WAAW,QACdC,EAAW,CAAE,MAAO,CAAE,OAAQ,CAAE,GAAI,CAAE,IAAK,CAACK,CAAE,CAAE,CAAE,CAAE,CAAE,CAAC,CACzD,EACF,KAAK,YACP,EAEM,CAAE,MAAAC,CAAM,EAAIL,EAAiB,MAAMH,CAAI,EAC7C,OAAOQ,EAAM,GAAG,CAAC,GAAK,IACxB,OAASJ,EAAG,CACV,MAAM,IAAIC,EAAS,CACjB,KAAMC,EAAa,gBAAgB,EACnC,MAAOF,EACP,KAAM,CAAE,GAAAG,CAAG,CACb,CAAC,CACH,CACF,CACF,EG3DAE,IAAA,IAAAC,GAAwB,SAIjB,SAASC,IAAoC,CAClD,IAAMC,EAAaC,EAAc,CAAE,KAAM,YAAa,CAAC,EACvD,SAAO,YAAQ,IAAM,IAAIC,EAAeF,CAAU,EAAG,CAACA,CAAU,CAAC,CACnE,CCPAG,ICAAC,IAAA,IAAAC,GAA8B,SAQjBC,MAAgB,kBAAkC,IAAI,ECRnEC,IAAA,IAAAC,EAAgE,SAGnDC,KAAc,WAAQ,CACjC,cAAe,CAAC,EAChB,YAAU,UAAuB,EACjC,YAAU,UAAuB,CACnC,CAAC,ECPDC,IAKA,eAAsBC,GAAsB,CAC1C,cAAAC,EACA,eAAgB,CAAE,QAAAC,CAAQ,EAC1B,OAAAC,EACA,cAAAC,CACF,EAKG,CACD,IAAMC,EAAkBF,IACnB,MAAMG,EAAcL,EAAeG,CAAa,IAAI,OAGzD,GAAI,CAACC,EACH,OAAOE,EAAY,cAAc,EAGnC,IAAMC,EAAO,MAAMN,EAAQG,CAAc,EAEzC,OAAKG,EAIED,EAAY,SAAS,CAAE,KAAAC,CAAK,CAAC,EAH3BD,EAAY,SAAS,CAAE,GAAIF,CAAe,CAAC,CAItD,CC/BAI,IAAA,IAAAC,GAA2B,SAGpB,SAASC,IAAyB,CACvC,IAAMC,KAAU,eAAWC,EAAa,EACxC,GAAID,IAAY,KACd,MAAM,IAAI,MAAM,wDAAwD,EAE1E,OAAOA,CACT,CCTAE,IAAA,IAAAC,EAAkB,SAElB,IAAAC,EAA+B,SAkBxB,SAASC,IAA0B,CACxC,GAAM,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAC5B,CAAE,KAAAC,CAAK,EAAIC,GAAU,EACrB,CAAE,OAAAC,CAAO,EAAIC,GAAU,EAE7B,MAAO,CACL,MAAOL,EAAM,OAAO,MACpB,KAAAE,EACA,IAAKE,CACP,CACF,CAIO,IAAME,GAAeC,GAAa,CACvC,IAAMC,EAAY,IAAI,IAAID,EAAI,SAAS,CAAC,EAClCE,EAAW,CACf,4BACA,iCACF,EACG,IAAKC,GAAS,GAAGA,CAAI,OAAO,EAC5B,KAAK,GAAG,EACX,OAAAF,EAAU,aAAa,OAAO,YAAaC,CAAQ,EAC5CD,CACT,EAEO,SAASG,GAAmB,CACjC,UAAAC,EACA,aAAAC,EACA,eAAAC,CACF,EAIG,CACD,GAAM,CAAE,KAAAZ,EAAM,IAAAa,CAAI,EAAIH,EAEhBL,KAAM,SAAMM,EAAc,CAC9B,UAAW,IAAM,IAAI,IAAI,aAAaX,EAAK,EAAE,GAAI,yBAAyB,EAC1E,OAAQ,IAAMI,GAAY,IAAI,IAAI,0BAA0BJ,EAAK,EAAE,EAAE,CAAC,EACtE,KAAM,IAAM,CACV,IAAMc,EAAUV,GAAY,IAAI,IAAIJ,EAAK,OAAQ,CAAC,EAClD,OAAIY,GACFE,EAAQ,aAAa,OAAO,gBAAiBF,CAAc,EAEtDE,CACT,CACF,CAAC,EAED,OAAAT,EAAI,aAAa,OAAO,gBAAiBQ,CAAG,EAErCR,EAAI,SAAS,CACtB,CAEO,SAASU,GAA6B,CAC3C,UAAAL,EACA,UAAAM,CACF,EAGG,CACD,GAAM,CAAE,MAAAC,EAAO,KAAAjB,EAAM,IAAAa,CAAI,EAAIH,EAEvBL,KAAM,WAAQW,CAAS,EAC1B,KAAK,CACJ,cAAe,IACb,IAAI,IACF,aAAahB,EAAK,EAAE,QAAQiB,CAAK,GAAGD,EAAU,KAAK,GACnD,yBACF,CACJ,CAAC,EACA,KACC,CAAC,sBAAuB,kBAAmB,gBAAgB,EAC3D,IACE,IAAI,IACF,aAAahB,EAAK,EAAE,GAAGgB,EAAU,KAAK,GACtC,yBACF,CACJ,EACC,SAAS,EAEZ,OAAAX,EAAI,aAAa,OAAO,gBAAiBQ,CAAG,EAErCR,EAAI,SAAS,CACtB,CAEO,IAAMa,GAAW,MACtB,CAAE,IAAAb,EAAK,MAAAc,CAAM,EACbC,IACG,CACH,GAAI,CACF,MAAMC,EAAYhB,CAAG,CACvB,MAAgB,CACde,EAAS,CACP,KAAM,QACN,OAAQ,MACR,IACE,EAAAE,QAAA,cAACC,EAAA,CAAM,KAAK,SACV,EAAAD,QAAA,cAACE,EAAA,CACC,QAAQ,0BACR,WAAY,CAAC,EAAAF,QAAA,cAACG,EAAA,CAAK,KAAI,GAAC,CAAE,EAC1B,OAAQ,CAAE,MAAAN,CAAM,EAClB,EACA,EAAAG,QAAA,cAACI,EAAA,IAAQ,EACT,EAAAJ,QAAA,cAACK,EAAA,CAAK,IAAKtB,EAAK,CAClB,CAEJ,CAAC,CACH,CACF","names":["init_esm_shims","init_esm_shims","_createAppReleaseRequest","_createAppReleaseResponse","_createComponentsRequest","_createComponentsResponse","_promoteAppReleaseToDevCenterRequest","_promoteAppReleaseToDevCenterResponse","_updateAppReleaseRequest","_updateAppReleaseResponse","resolveComWixCtpAppsReleaseManagerServiceUrl","opts","domainToMappings","resolveUrl","createAppRelease","payload","_a","serializer","_createAppReleaseRequest","toReq","fromReq","fromRes","_createAppReleaseResponse","__createAppRelease","host","serializedData","metadata","updateAppRelease","__updateAppRelease","createComponents","_createComponentsRequest","_createComponentsResponse","__createComponents","promoteAppReleaseToDevCenter","payload","_a","serializer","_promoteAppReleaseToDevCenterRequest","toReq","fromReq","fromRes","_promoteAppReleaseToDevCenterResponse","__promoteAppReleaseToDevCenter","host","serializedData","metadata","resolveComWixCtpAppsReleaseManagerServiceUrl","import_variant","init_esm_shims","promoteAppReleaseSchema","z","createAppReleaseSchema","AppPermissionDenied","CliErrorCode","UpdateAppReleaseData","ARMClient","httpClient","minRetryTimeout","getTestOverrides","appId","componentConfigs","projectId","pRetry","createComponents","e","isHttpError","CliError","manifest","data","createAppRelease","createAppReleaseSchema","tag","updateAppRelease","versionType","promoteAppReleaseToDevCenter","promoteAppReleaseSchema","init_esm_shims","import_react","useARMClient","httpClient","useHttpClient","ARMClient","init_esm_shims","init_esm_shims","import_react","ArmTagContext","ArmTagProvider","children","armTag","React","useArmTag","context","init_esm_shims","init_esm_shims","_querySitesRequest","_querySitesResponse","_site","resolveComWixpressSitelistApiSiteListServiceV2Url","opts","domainToMappings","resolveUrl","querySites","payload","_a","serializer","toReq","fromReq","fromRes","__querySites","host","serializedData","metadata","init_esm_shims","siteSchema","z","querySitesSchema","SiteListClient","httpClient","minRetryTimeout","getTestOverrides","opts","data","pRetry","querySites","querySitesSchema","e","CliError","CliErrorCode","id","sites","init_esm_shims","import_react","useSiteListClient","httpClient","useHttpClient","SiteListClient","init_esm_shims","init_esm_shims","import_react","SiteIdContext","init_esm_shims","import_variant","SiteIdState","init_esm_shims","resolveConfiguredSite","projectFolder","getSite","siteId","writeDebugLog","resolvedSiteId","readAppConfig","SiteIdState","site","init_esm_shims","import_react","useSiteId","context","SiteIdContext","init_esm_shims","import_react","import_variant","useEnvConfig","model","useProjectModel","site","useSiteId","armTag","useArmTag","addCSMv2FTs","url","clonedUrl","petriOvr","spec","resolvePlatformUrl","envConfig","platformType","siteOverrideId","tag","siteUrl","resolveDashboardExtensionUrl","extension","appId","openPage","title","writeLog","openBrowser","React","Alert","Trans","Text","Newline","Link"]}
1
+ {"version":3,"sources":["../../arm-client/src/client.ts","../../../node_modules/@wix/ambassador-ctp-gradual-rollout-v1-app-config/http.impl.ts","../../arm-client/src/schemas.ts","../../arm-client/src/useARMClient.ts","../../arm-client/src/index.ts","../src/context/armTag.tsx","../../site-list-client/src/site-list-client.ts","../../../node_modules/@wix/ambassador-site-list-v2-site/http.impl.ts","../../site-list-client/src/schemas.ts","../../site-list-client/src/useSiteListClient.ts","../../site-list-client/src/index.ts","../src/site-id/context.ts","../src/site-id/site-id-state.ts","../src/site-id/resolve-configured-site.ts","../src/site-id/useSiteId.ts","../src/components/extensions/utils.tsx"],"sourcesContent":["import type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport type { AppManifest } from '@wix/cli-app-manifest';\nimport type { Options } from 'p-retry';\nimport type {\n VersionType,\n ComponentConfig,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/types';\nimport {\n createAppRelease,\n promoteAppReleaseToDevCenter,\n updateAppRelease,\n createComponents,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/http';\nimport pRetry from 'p-retry';\nimport { fields, variant } from 'variant';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { createAppReleaseSchema, promoteAppReleaseSchema } from './schemas.js';\n\nconst { AppPermissionDenied } = CliErrorCode;\n\nexport const UpdateAppReleaseData = variant({\n TagUpdated: {},\n TagNotFound: fields<{ cause: HttpError }>(),\n});\n\nexport class ARMClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n createComponents = async (\n appId: string,\n componentConfigs: ComponentConfig[],\n projectId: string\n ) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n createComponents({\n appId,\n componentConfigs,\n projectId,\n })\n ),\n this.retryOptions\n );\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateComponents(),\n cause: e,\n });\n }\n };\n\n createAppRelease = async (manifest: AppManifest, projectId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n createAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n projectId,\n })\n ),\n this.retryOptions\n );\n\n return createAppReleaseSchema.parse(data).tag;\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToCreateAppRelease(),\n cause: e,\n });\n }\n };\n\n updateAppRelease = async (manifest: AppManifest, tag: string) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n updateAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n tag,\n })\n ),\n this.retryOptions\n );\n\n return UpdateAppReleaseData.TagUpdated();\n } catch (e) {\n if (isHttpError(e)) {\n if (e.response?.status === 404) {\n return UpdateAppReleaseData.TagNotFound({ cause: e });\n }\n if (e.response?.status === 403) {\n throw new CliError({\n code: AppPermissionDenied({ appId: manifest.appId }),\n cause: e,\n });\n }\n }\n throw new CliError({\n code: CliErrorCode.FailedToUpdateAppRelease(),\n cause: e,\n });\n }\n };\n\n promoteToDevCenter = async (\n appId: string,\n tag: string,\n versionType: VersionType\n ) => {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n promoteAppReleaseToDevCenter({ appId, tag, versionType })\n ),\n this.retryOptions\n );\n\n return promoteAppReleaseSchema.parse(data);\n };\n}\n",null,"import { z } from 'zod';\n\nexport const promoteAppReleaseSchema = z.object({\n newVersion: z.string(),\n});\n\nexport const createAppReleaseSchema = z.object({\n tag: z.string(),\n});\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { ARMClient } from './client.js';\n\nexport function useARMClient(): ARMClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new ARMClient(httpClient), [httpClient]);\n}\n","export { ARMClient } from './client.js';\nexport { useARMClient } from './useARMClient.js';\n","import React, {\n useContext,\n createContext,\n type FC,\n type ReactNode,\n} from 'react';\n\ntype ArmTag = {\n armTag: string;\n};\n\nexport const ArmTagContext = createContext<ArmTag | null>(null);\n\nexport const ArmTagProvider: FC<{ children: ReactNode; armTag: string }> = ({\n children,\n armTag,\n}) => {\n return (\n <ArmTagContext.Provider value={{ armTag }}>\n {children}\n </ArmTagContext.Provider>\n );\n};\n\nexport const useArmTag = () => {\n const context = useContext(ArmTagContext);\n\n if (context === null) {\n throw new Error('useArmTag() cannot be used without an <ArmTagProvider>');\n }\n\n return context;\n};\n","import pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { QuerySitesRequest } from '@wix/ambassador-site-list-v2-site/types';\nimport { querySites } from '@wix/ambassador-site-list-v2-site/http';\nimport type { HttpClient } from '@wix/cli-http-client';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { querySitesSchema } from './schemas.js';\n\nexport class SiteListClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n querySites = async (opts: QuerySitesRequest = {}) => {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(querySites(opts)),\n this.retryOptions\n );\n\n return querySitesSchema.parse(data).sites;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToQuerySites(),\n cause: e,\n info: { ...opts },\n });\n }\n };\n\n getSite = async (id: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n querySites({ query: { filter: { id: { $in: [id] } } } })\n ),\n this.retryOptions\n );\n\n const { sites } = querySitesSchema.parse(data);\n return sites.at(0) ?? null;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSite(),\n cause: e,\n info: { id },\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const siteSchema = z.object({\n id: z.string(),\n displayName: z.string(),\n viewUrl: z.union([z.string().url(), z.literal('')]).optional(),\n});\n\nexport const querySitesSchema = z.object({\n sites: z.array(siteSchema),\n});\n\nexport type Site = z.TypeOf<typeof siteSchema>;\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { SiteListClient } from './site-list-client.js';\n\nexport function useSiteListClient(): SiteListClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new SiteListClient(httpClient), [httpClient]);\n}\n","export { SiteListClient } from './site-list-client.js';\nexport type { Site } from './schemas.js';\nexport { useSiteListClient } from './useSiteListClient.js';\n","import { createContext } from 'react';\nimport type { Site } from '@wix/site-list-client';\n\nexport type SiteIdState = {\n site: Site;\n setSite: (site: Site) => Promise<void>;\n};\n\nexport const SiteIdContext = createContext<SiteIdState | null>(null);\n","import { variant, fields, type VariantOf, type TypeNames } from 'variant';\nimport { type Site } from '@wix/site-list-client';\n\nexport const SiteIdState = variant({\n NotConfigured: {},\n NotFound: fields<{ id: string }>(),\n Resolved: fields<{ site: Site }>(),\n});\n\nexport type SiteIdState<T extends TypeNames<typeof SiteIdState> = undefined> =\n VariantOf<typeof SiteIdState, T>;\n","import type { SiteListClient } from '@wix/site-list-client';\nimport type { WriteDebugLogFn } from '@wix/cli-debug-log';\nimport { readAppConfig } from '../files/app.config.js';\nimport { SiteIdState } from './site-id-state.js';\n\nexport async function resolveConfiguredSite({\n projectFolder,\n siteListClient: { getSite },\n siteId,\n writeDebugLog,\n}: {\n projectFolder: string;\n siteListClient: SiteListClient;\n siteId?: string;\n writeDebugLog?: WriteDebugLogFn;\n}) {\n const resolvedSiteId = !siteId\n ? (await readAppConfig(projectFolder, writeDebugLog))?.siteId\n : siteId;\n\n if (!resolvedSiteId) {\n return SiteIdState.NotConfigured();\n }\n\n const site = await getSite(resolvedSiteId);\n\n if (!site) {\n return SiteIdState.NotFound({ id: resolvedSiteId });\n }\n\n return SiteIdState.Resolved({ site });\n}\n","import { useContext } from 'react';\nimport { SiteIdContext, type SiteIdState } from './context.js';\n\nexport function useSiteId(): SiteIdState {\n const context = useContext(SiteIdContext);\n if (context === null) {\n throw new Error('useSiteId() cannot be used without an <SiteIdProvider>');\n }\n return context;\n}\n","import React from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { matcher, match } from 'variant';\nimport { openBrowser } from '@wix/user-browser';\nimport type { Site } from '@wix/site-list-client';\nimport { Alert, Link, Text, Newline } from '@wix/cli-ui-kit';\nimport type { PlatformType } from '@wix/cli-app-definitions';\nimport type { WriteLogFn } from '../DevCommand/devEnvLogs/useDevEnvLogs.js';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/useSiteId.js';\nimport { useArmTag } from '../../context/armTag.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type { DashboardExtension } from './useExtensions.js';\n\nexport type EnvConfig = {\n site: Site;\n appId: string;\n tag: string;\n};\n\nexport function useEnvConfig(): EnvConfig {\n const { model } = useProjectModel();\n const { site } = useSiteId();\n const { armTag } = useArmTag();\n\n return {\n appId: model.config.appId,\n site,\n tag: armTag,\n };\n}\n\n// CSMv2 overrides are still not open to users, we need to open it explicitly.\n// TODO: remove it when the rollout is complete.\nexport const addCSMv2FTs = (url: URL) => {\n const clonedUrl = new URL(url.toString());\n const petriOvr = [\n 'specs.UseAppsRuntimeCache',\n 'specs.ApplyQueryParamsOverrides',\n ]\n .map((spec) => `${spec}:true`)\n .join(';');\n clonedUrl.searchParams.append('petri_ovr', petriOvr);\n return clonedUrl;\n};\n\nexport function resolvePlatformUrl({\n envConfig,\n platformType,\n siteOverrideId,\n}: {\n envConfig: EnvConfig;\n platformType: PlatformType;\n siteOverrideId?: string;\n}) {\n const { site, tag } = envConfig;\n\n const url = match(platformType, {\n Dashboard: () => new URL(`dashboard/${site.id}`, 'https://manage.wix.com/'),\n Editor: () => addCSMv2FTs(new URL(`https://wix.com/editor/${site.id}`)),\n Site: () => {\n const siteUrl = addCSMv2FTs(new URL(site.viewUrl!));\n if (siteOverrideId) {\n siteUrl.searchParams.append('site-override', siteOverrideId);\n }\n return siteUrl;\n },\n });\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport function resolveDashboardExtensionUrl({\n envConfig,\n extension,\n}: {\n envConfig: EnvConfig;\n extension: DevCenterComponent<DashboardExtension>;\n}) {\n const { appId, site, tag } = envConfig;\n\n const url = matcher(extension)\n .with({\n DashboardPage: () =>\n new URL(\n `dashboard/${site.id}/app/${appId}${extension.route}`,\n 'https://manage.wix.com/'\n ),\n })\n .when(\n ['DashboardMenuPlugin', 'DashboardPlugin', 'DashboardModal'],\n () =>\n new URL(\n `dashboard/${site.id}${extension.route}`,\n 'https://manage.wix.com/'\n )\n )\n .complete();\n\n url.searchParams.append('apps-override', tag);\n\n return url.toString();\n}\n\nexport const openPage = async (\n { url, title }: { url: string; title: string },\n writeLog: WriteLogFn\n) => {\n try {\n await openBrowser(url);\n } catch (error) {\n writeLog({\n type: 'error',\n prefix: 'app',\n msg: (\n <Alert type=\"error\">\n <Trans\n i18nKey=\"general.open_page_error\"\n components={[<Text bold />]}\n values={{ title }}\n />\n <Newline />\n <Link url={url} />\n </Alert>\n ),\n });\n }\n};\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","_createAppReleaseRequest","_createAppReleaseResponse","_createComponentsRequest","_createComponentsResponse","_promoteAppReleaseToDevCenterRequest","_promoteAppReleaseToDevCenterResponse","_updateAppReleaseRequest","_updateAppReleaseResponse","resolveComWixCtpAppsReleaseManagerServiceUrl","opts","domainToMappings","resolveUrl","createAppRelease","payload","_a","serializer","_createAppReleaseRequest","toReq","fromReq","fromRes","_createAppReleaseResponse","__createAppRelease","host","serializedData","metadata","updateAppRelease","__updateAppRelease","createComponents","_createComponentsRequest","_createComponentsResponse","__createComponents","promoteAppReleaseToDevCenter","payload","_a","serializer","_promoteAppReleaseToDevCenterRequest","toReq","fromReq","fromRes","_promoteAppReleaseToDevCenterResponse","__promoteAppReleaseToDevCenter","host","serializedData","metadata","resolveComWixCtpAppsReleaseManagerServiceUrl","import_variant","init_esm_shims","promoteAppReleaseSchema","z","createAppReleaseSchema","AppPermissionDenied","CliErrorCode","UpdateAppReleaseData","ARMClient","httpClient","minRetryTimeout","getTestOverrides","appId","componentConfigs","projectId","pRetry","createComponents","e","isHttpError","CliError","manifest","data","createAppRelease","createAppReleaseSchema","tag","updateAppRelease","versionType","promoteAppReleaseToDevCenter","promoteAppReleaseSchema","init_esm_shims","import_react","useARMClient","httpClient","useHttpClient","ARMClient","init_esm_shims","init_esm_shims","import_react","ArmTagContext","ArmTagProvider","children","armTag","React","useArmTag","context","init_esm_shims","init_esm_shims","_querySitesRequest","_querySitesResponse","_site","resolveComWixpressSitelistApiSiteListServiceV2Url","opts","domainToMappings","resolveUrl","querySites","payload","_a","serializer","toReq","fromReq","fromRes","__querySites","host","serializedData","metadata","init_esm_shims","siteSchema","z","querySitesSchema","SiteListClient","httpClient","minRetryTimeout","getTestOverrides","opts","data","pRetry","querySites","querySitesSchema","e","CliError","CliErrorCode","id","sites","init_esm_shims","import_react","useSiteListClient","httpClient","useHttpClient","SiteListClient","init_esm_shims","init_esm_shims","import_react","SiteIdContext","init_esm_shims","import_variant","SiteIdState","init_esm_shims","resolveConfiguredSite","projectFolder","getSite","siteId","writeDebugLog","resolvedSiteId","readAppConfig","SiteIdState","site","init_esm_shims","import_react","useSiteId","context","SiteIdContext","init_esm_shims","import_react","import_variant","useEnvConfig","model","useProjectModel","site","useSiteId","armTag","useArmTag","addCSMv2FTs","url","clonedUrl","petriOvr","spec","resolvePlatformUrl","envConfig","platformType","siteOverrideId","tag","siteUrl","resolveDashboardExtensionUrl","extension","appId","openPage","title","writeLog","openBrowser","React","Alert","Trans","Text","Newline","Link"]}
@@ -1,6 +1,6 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
- import{e as x}from"./chunk-VVBF2YKE.js";import{a as b,c as a}from"./chunk-3P4K75OM.js";import{e as s,h as n}from"./chunk-V4TR6DCM.js";n();var r=s(b(),1),c=s(a(),1);import{dirname as L}from"node:path";import{appendFileSync as D,mkdirSync as w}from"node:fs";n();var f=s(x(),1),l=s(a(),1);function u(e){if(f.HttpClient.isHttpError(e))return e;let o=e instanceof Error?l.default.cause(e):null;return o?u(o):null}n();function d(e){return{request:{baseURL:e.config?.baseURL,url:e.config?.url,method:e.config?.method,headers:e.config?.headers,data:e.config?.data},response:{code:e.code,message:e.message,status:e.response?.status,headers:e.response?.headers,data:e.response?.data}}}function y(e,o){try{let t=`----- CLI crash report at ${new Date().toISOString()}
3
+ import{e as x}from"./chunk-HNCYDCAD.js";import{a as b,c as a}from"./chunk-DRRMAC33.js";import{e as s,h as n}from"./chunk-V4TR6DCM.js";n();var r=s(b(),1),c=s(a(),1);import{dirname as L}from"node:path";import{appendFileSync as D,mkdirSync as w}from"node:fs";n();var f=s(x(),1),l=s(a(),1);function u(e){if(f.HttpClient.isHttpError(e))return e;let o=e instanceof Error?l.default.cause(e):null;return o?u(o):null}n();function d(e){return{request:{baseURL:e.config?.baseURL,url:e.config?.url,method:e.config?.method,headers:e.config?.headers,data:e.config?.data},response:{code:e.code,message:e.message,status:e.response?.status,headers:e.response?.headers,data:e.response?.data}}}function y(e,o){try{let t=`----- CLI crash report at ${new Date().toISOString()}
4
4
  `;if(o instanceof Error){t+=`Error Trace
5
5
  `,t+=`${c.default.fullStack(o)}
6
6
  `,t+=`Error Info
@@ -8,4 +8,4 @@ import{e as x}from"./chunk-VVBF2YKE.js";import{a as b,c as a}from"./chunk-3P4K75
8
8
  `;let i=u(o);i&&(t+=`Request Info
9
9
  `,t+=`${JSON.stringify(d(i),null,2)}
10
10
  `)}w(L(e),{recursive:!0}),D(e,t)}catch{}}var m=(0,r.createContext)(null),k=({filePath:e,children:o})=>{let t=(0,r.useCallback)(i=>y(e,i),[e]);return r.default.createElement(m.Provider,{value:t},o)},R=()=>{let e=(0,r.useContext)(m);if(e===null)throw new Error("useDebugLog() cannot be used without an <DebugLogProvider>");return e};export{k as a,R as b};
11
- //# sourceMappingURL=chunk-H7YD4ZIQ.js.map
11
+ //# sourceMappingURL=chunk-DQQG35J6.js.map