@wix/cli-app 1.1.39 → 1.1.40

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 (97) hide show
  1. package/build/CreateVersionCommand-O5BVX2VS.js +4 -0
  2. package/build/CreateVersionCommand-O5BVX2VS.js.map +1 -0
  3. package/build/DevCommand-CRZL2PKO.js +4 -0
  4. package/build/DevCommand-CRZL2PKO.js.map +1 -0
  5. package/build/{GenerateCommand-7ZGIGNPF.js → GenerateCommand-SMG3IJQB.js} +19 -19
  6. package/build/GenerateCommand-SMG3IJQB.js.map +1 -0
  7. package/build/LogsCommand-M66KGJ6O.js +4 -0
  8. package/build/LogsCommand-M66KGJ6O.js.map +1 -0
  9. package/build/PreviewCommand-QQUEB3JU.js +4 -0
  10. package/build/{ServeCommand-T5PQKB57.js → ServeCommand-INMICJZO.js} +2 -2
  11. package/build/build-IIIEPXQV.js +4 -0
  12. package/build/build-IIIEPXQV.js.map +1 -0
  13. package/build/{chunk-BW3SDDV3.js → chunk-3YJCDGCN.js} +2 -2
  14. package/build/{chunk-6QCQALVT.js → chunk-5SA2INZ4.js} +2 -2
  15. package/build/chunk-GDSAERE7.js +10 -0
  16. package/build/chunk-GDSAERE7.js.map +1 -0
  17. package/build/{chunk-IBNMP32R.js → chunk-I5NQ52AS.js} +2 -2
  18. package/build/{chunk-4YU6J2EW.js → chunk-K3TY5EJT.js} +2 -2
  19. package/build/{chunk-KLTGX7JQ.js → chunk-L3ID3ZSB.js} +2 -2
  20. package/build/{chunk-JVH77HC6.js → chunk-LORL7RCM.js} +2 -2
  21. package/build/chunk-LORL7RCM.js.map +1 -0
  22. package/build/{chunk-GK5AZX2F.js → chunk-N5J27JBU.js} +2 -2
  23. package/build/{chunk-TRE6G7GA.js → chunk-NEJZ2NNG.js} +2 -2
  24. package/build/{chunk-35BUZ7CK.js → chunk-NQAHAISJ.js} +2 -2
  25. package/build/{chunk-3Q7TAN43.js → chunk-OU5XEMIQ.js} +2 -2
  26. package/build/chunk-P3SK6O7I.js +100 -0
  27. package/build/chunk-P3SK6O7I.js.map +1 -0
  28. package/build/chunk-R6BWGOF7.js +116 -0
  29. package/build/chunk-R6BWGOF7.js.map +1 -0
  30. package/build/{chunk-QT3P4FJP.js → chunk-RPKQITNR.js} +2 -2
  31. package/build/{chunk-PBBKM3Z3.js → chunk-VC3QC6IA.js} +51 -51
  32. package/build/chunk-VC3QC6IA.js.map +1 -0
  33. package/build/{chunk-7OVUUUVH.js → chunk-WOVDKZ5J.js} +2 -2
  34. package/build/chunk-X3PZHSTL.js +4 -0
  35. package/build/chunk-X3PZHSTL.js.map +1 -0
  36. package/build/{chunk-I2Z6OIJW.js → chunk-YUHF6CTW.js} +2 -2
  37. package/build/chunk-YUHF6CTW.js.map +1 -0
  38. package/build/chunk-Z7XO554G.js +4 -0
  39. package/build/chunk-Z7XO554G.js.map +1 -0
  40. package/build/cloudflare-runtime/entry.js +365 -0
  41. package/build/cloudflare-runtime/getRegisteredExtensions.js +166 -0
  42. package/build/index.js +2 -2
  43. package/build/index.js.map +1 -1
  44. package/build/miniflare/worker-entry.js +2767 -0
  45. package/build/platform-sdk/chunk-DGX4CFXG.js +2 -0
  46. package/build/platform-sdk/chunk-DGX4CFXG.js.map +1 -0
  47. package/build/platform-sdk/chunk-UZ376HBX.js +2 -0
  48. package/build/platform-sdk/chunk-UZ376HBX.js.map +1 -0
  49. package/build/platform-sdk/dashboard.js +1 -1
  50. package/build/platform-sdk/dashboard.js.map +1 -1
  51. package/build/platform-sdk/editor.js +1 -1
  52. package/build/platform-sdk/site.js +1 -1
  53. package/build/{preview-HS2NEMQI.js → preview-D53ROXPK.js} +2 -2
  54. package/build/{render-command-FB3VVOAQ.js → render-command-JAWSRO4L.js} +2 -2
  55. package/package.json +8 -5
  56. package/build/CreateVersionCommand-C6UP5ORQ.js +0 -4
  57. package/build/CreateVersionCommand-C6UP5ORQ.js.map +0 -1
  58. package/build/DevCommand-BO6KQHRP.js +0 -4
  59. package/build/DevCommand-BO6KQHRP.js.map +0 -1
  60. package/build/GenerateCommand-7ZGIGNPF.js.map +0 -1
  61. package/build/LogsCommand-W5CRI6WA.js +0 -4
  62. package/build/LogsCommand-W5CRI6WA.js.map +0 -1
  63. package/build/PreviewCommand-DWQCCBBZ.js +0 -4
  64. package/build/build-CNTVWU2X.js +0 -4
  65. package/build/build-CNTVWU2X.js.map +0 -1
  66. package/build/chunk-I2Z6OIJW.js.map +0 -1
  67. package/build/chunk-JVH77HC6.js.map +0 -1
  68. package/build/chunk-MIBBNKYS.js +0 -116
  69. package/build/chunk-MIBBNKYS.js.map +0 -1
  70. package/build/chunk-PBBKM3Z3.js.map +0 -1
  71. package/build/chunk-QDPEZ5A2.js +0 -4
  72. package/build/chunk-QDPEZ5A2.js.map +0 -1
  73. package/build/chunk-R3JUFM5X.js +0 -100
  74. package/build/chunk-R3JUFM5X.js.map +0 -1
  75. package/build/chunk-RZI5OJAA.js +0 -10
  76. package/build/chunk-RZI5OJAA.js.map +0 -1
  77. package/build/chunk-VAOLKVA2.js +0 -4
  78. package/build/chunk-VAOLKVA2.js.map +0 -1
  79. package/build/platform-sdk/chunk-OSR2I5MY.js +0 -2
  80. package/build/platform-sdk/chunk-OSR2I5MY.js.map +0 -1
  81. package/build/platform-sdk/chunk-SHVQ4QZG.js +0 -2
  82. package/build/platform-sdk/chunk-SHVQ4QZG.js.map +0 -1
  83. /package/build/{PreviewCommand-DWQCCBBZ.js.map → PreviewCommand-QQUEB3JU.js.map} +0 -0
  84. /package/build/{ServeCommand-T5PQKB57.js.map → ServeCommand-INMICJZO.js.map} +0 -0
  85. /package/build/{chunk-BW3SDDV3.js.map → chunk-3YJCDGCN.js.map} +0 -0
  86. /package/build/{chunk-6QCQALVT.js.map → chunk-5SA2INZ4.js.map} +0 -0
  87. /package/build/{chunk-IBNMP32R.js.map → chunk-I5NQ52AS.js.map} +0 -0
  88. /package/build/{chunk-4YU6J2EW.js.map → chunk-K3TY5EJT.js.map} +0 -0
  89. /package/build/{chunk-KLTGX7JQ.js.map → chunk-L3ID3ZSB.js.map} +0 -0
  90. /package/build/{chunk-GK5AZX2F.js.map → chunk-N5J27JBU.js.map} +0 -0
  91. /package/build/{chunk-TRE6G7GA.js.map → chunk-NEJZ2NNG.js.map} +0 -0
  92. /package/build/{chunk-35BUZ7CK.js.map → chunk-NQAHAISJ.js.map} +0 -0
  93. /package/build/{chunk-3Q7TAN43.js.map → chunk-OU5XEMIQ.js.map} +0 -0
  94. /package/build/{chunk-QT3P4FJP.js.map → chunk-RPKQITNR.js.map} +0 -0
  95. /package/build/{chunk-7OVUUUVH.js.map → chunk-WOVDKZ5J.js.map} +0 -0
  96. /package/build/{preview-HS2NEMQI.js.map → preview-D53ROXPK.js.map} +0 -0
  97. /package/build/{render-command-FB3VVOAQ.js.map → render-command-JAWSRO4L.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{Ua as e,u as r}from"./chunk-MIBBNKYS.js";import{a as m}from"./chunk-R3JUFM5X.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-7OVUUUVH.js.map
3
+ import{Ua as e,u as r}from"./chunk-R6BWGOF7.js";import{a as m}from"./chunk-P3SK6O7I.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-WOVDKZ5J.js.map
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{a as Q,b as W}from"./chunk-NEJZ2NNG.js";import{b as M,c as Y,d as q}from"./chunk-Z7XO554G.js";import{a as K}from"./chunk-5SA2INZ4.js";import{a as J}from"./chunk-I5NQ52AS.js";import{g as N,h as V,j as H,k as z}from"./chunk-L3ID3ZSB.js";import{La as L,Oa as h,Pa as j,Qa as E,Za as G,ob as D,u as F}from"./chunk-R6BWGOF7.js";import{B as _,L as O,O as b,R as k,S as l,V as B,W as U,a as f,b as A,w as d,z as I}from"./chunk-P3SK6O7I.js";import{e as c,h as t}from"./chunk-V4TR6DCM.js";t();t();var x=c(f(),1);t();var e=c(f(),1),Z=c(A(),1);t();var v=c(f(),1),X=c(A(),1),C=({status:i,loadingText:s,successText:n})=>(0,X.match)(i,{NotRequested:()=>null,Loading:()=>v.default.createElement(b,{text:s}),Error:()=>null,Success:()=>v.default.createElement(O,{type:"success"},n)});var $=({baseUrl:i,onPreviewCreated:s})=>{let{site:n}=H(),{t:m}=U(),{model:r}=D(),{backendComponents:R}=K(),ee=N(),re=F(),{getAppByVersion:oe}=E(),{createOverride:te}=Y(),ie=j({type:"backoffice"}),y=l(()=>G(r.config.appId,r.projectFolder,re,ie,R.length>0)),ne=l((p,o)=>te({appId:r.config.appId,siteId:n.id,overrides:o})),P=l((p,o,u,a)=>J({model:r,arm:ee,serveUrl:o,backendServerUrl:a,topologyComponentId:u})),{status:se}=k(async()=>{await Q(r.projectFolder);let{serveUrl:p,backendServerUrl:o}=i?{serveUrl:i,backendServerUrl:void 0}:await y.execute(),{data:{components:u}}=await oe({appId:r.config.appId}),a=u.find(pe=>pe.compType===h.TOPOLOGY),S=q(r),{id:me}=S?await ne.execute(S):await Promise.resolve({id:void 0}),T=await P.execute(p,a?.compId,o);return a&&await L(r.projectFolder,{topologyComponentId:a.compId}),s?.(T,o),{armTag:T,siteOverrideId:me}},[]);return e.default.createElement(e.default.Fragment,null,e.default.createElement(C,{status:y.status,loadingText:m("preview_command.uploading_files"),successText:m("preview_command.uploading_files_success")}),e.default.createElement(C,{status:P.status,loadingText:m("preview_command.creating_preview"),successText:m("preview_command.creating_preview_success")}),(0,Z.match)(se,{Error:()=>null,Loading:()=>null,Success:({result:{armTag:p,siteOverrideId:o}})=>e.default.createElement(z,{siteOverrideId:o},e.default.createElement(V,{armTag:p},e.default.createElement(d,{rowGap:1,marginY:1,flexDirection:"column"},e.default.createElement(d,{gap:1},e.default.createElement(_,null),e.default.createElement(B,{i18nKey:"general.dev_site.current",values:{name:n.displayName}})),e.default.createElement(d,{rowGap:1},e.default.createElement(W,null)),e.default.createElement(I,{skin:"info"},m("preview_command.note_about_temporary_backend")))))}))};var ae=({baseUrl:i,siteIdOverride:s,onPreviewCreated:n})=>x.default.createElement(M,{siteId:s},x.default.createElement($,{baseUrl:i,onPreviewCreated:n}));export{ae as a};
4
+ //# sourceMappingURL=chunk-X3PZHSTL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/PreviewCommand/index.ts","../src/components/PreviewCommand/PreviewCommand.tsx","../src/components/PreviewCommand/Preview.tsx","../src/components/PreviewCommand/ActionStatus.tsx"],"sourcesContent":["export { PreviewCommand } from './PreviewCommand.js';\n","import React from 'react';\nimport type { FC } from 'react';\nimport { SiteIdProvider } from '../../site-id/index.js';\nimport { Preview } from './Preview.js';\n\nexport const PreviewCommand: FC<{\n baseUrl?: string;\n siteIdOverride?: string;\n onPreviewCreated?: (tag: string) => void;\n}> = ({ baseUrl, siteIdOverride, onPreviewCreated }) => {\n return (\n <SiteIdProvider siteId={siteIdOverride}>\n <Preview baseUrl={baseUrl} onPreviewCreated={onPreviewCreated} />\n </SiteIdProvider>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { useARMClient } from '@wix/arm-client';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport {\n Text,\n Box,\n PointerIcon,\n useAsync,\n useAsyncCallback,\n} from '@wix/cli-ui-kit';\nimport { useDevCenterClient, ComponentType } from '@wix/dev-center-client';\nimport type { TopologyComponent } from '@wix/dev-center-client';\nimport type { ComponentsForSiteOverride } from '@wix/site-override-client';\nimport { useSiteOverrideClient } from '@wix/site-override-client';\nimport { useProjectModel } from '../../model.js';\nimport { useSiteId } from '../../site-id/index.js';\nimport { ArmTagProvider } from '../../context/armTag.js';\nimport { createPreviewTag } from '../../preview/create-preview-tag.js';\nimport { uploadApplication } from '../../hosting/upload-application.js';\nimport { assertBuildOutputExists } from '../../files/assert-build-output-exists.js';\nimport { ActionStatus } from './ActionStatus.js';\nimport { PlatformViewer } from '../Platform/PlatformViewer.js';\nimport { saveAppConfig } from '../../files/app.config.js';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\nimport { createSiteOverrides } from '../../site-override/createSiteOverrides.js';\nimport { SiteOverrideProvider } from '../../context/siteOverride.js';\n\nexport const Preview: FC<{\n baseUrl?: string;\n onPreviewCreated?: (tag: string, backendServerUrl?: string) => void;\n}> = ({ baseUrl, onPreviewCreated }) => {\n const { site } = useSiteId();\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const { backendComponents } = useBackendComponents();\n const arm = useARMClient();\n const biLogger = useBiLogger();\n const { getAppByVersion } = useDevCenterClient();\n const { createOverride } = useSiteOverrideClient();\n const httpClient = useHttpClient({ type: 'backoffice' });\n\n const uploadApplicationAction = useAsyncCallback(() =>\n uploadApplication(\n model.config.appId,\n model.projectFolder,\n biLogger,\n httpClient,\n backendComponents.length > 0\n )\n );\n\n const createSiteOverrideIdAction = useAsyncCallback(\n (_, overrides: ComponentsForSiteOverride) =>\n createOverride({\n appId: model.config.appId,\n siteId: site.id,\n overrides,\n })\n );\n\n const createPreviewTagAction = useAsyncCallback(\n (\n _,\n serveUrl: string,\n topologyComponentId?: string,\n backendServerUrl?: string\n ) =>\n createPreviewTag({\n model,\n arm,\n serveUrl,\n backendServerUrl,\n topologyComponentId,\n })\n );\n\n const { status: createPreviewStatus } = useAsync(async () => {\n await assertBuildOutputExists(model.projectFolder);\n const { serveUrl, backendServerUrl } = baseUrl\n ? { serveUrl: baseUrl, backendServerUrl: undefined }\n : await uploadApplicationAction.execute();\n const {\n data: { components },\n } = await getAppByVersion({\n appId: model.config.appId,\n });\n const topologyComponent = components.find(\n (component): component is TopologyComponent => {\n return component.compType === ComponentType.TOPOLOGY;\n }\n );\n const overrides = createSiteOverrides(model);\n const { id: siteOverrideId } = overrides\n ? await createSiteOverrideIdAction.execute(overrides)\n : await Promise.resolve({ id: undefined });\n const armTag = await createPreviewTagAction.execute(\n serveUrl,\n topologyComponent?.compId,\n backendServerUrl\n );\n\n if (topologyComponent) {\n // Once there is topology in production I want to use the same id for dev as well,\n // to reduce confusion during debug.\n await saveAppConfig(model.projectFolder, {\n topologyComponentId: topologyComponent.compId,\n });\n }\n\n onPreviewCreated?.(armTag, backendServerUrl);\n\n return { armTag, siteOverrideId };\n }, []);\n\n return (\n <>\n <ActionStatus\n status={uploadApplicationAction.status}\n loadingText={t('preview_command.uploading_files')}\n successText={t('preview_command.uploading_files_success')}\n />\n <ActionStatus\n status={createPreviewTagAction.status}\n loadingText={t('preview_command.creating_preview')}\n successText={t('preview_command.creating_preview_success')}\n />\n {match(createPreviewStatus, {\n Error: () => null,\n Loading: () => null,\n Success: ({ result: { armTag, siteOverrideId } }) => (\n <SiteOverrideProvider siteOverrideId={siteOverrideId}>\n <ArmTagProvider armTag={armTag}>\n <Box rowGap={1} marginY={1} flexDirection=\"column\">\n <Box gap={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"general.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box rowGap={1}>\n <PlatformViewer />\n </Box>\n <Text skin=\"info\">\n {t('preview_command.note_about_temporary_backend')}\n </Text>\n </Box>\n </ArmTagProvider>\n </SiteOverrideProvider>\n ),\n })}\n </>\n );\n};\n","import type { AsyncCallbackStatus } from '@wix/cli-ui-kit';\nimport { Alert, Spinner } from '@wix/cli-ui-kit';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { match } from 'variant';\n\nexport const ActionStatus: FC<{\n status: AsyncCallbackStatus<unknown>;\n loadingText: string;\n successText: string;\n}> = ({ status, loadingText, successText }) =>\n match(status, {\n NotRequested: () => null,\n Loading: () => <Spinner text={loadingText} />,\n Error: () => null,\n Success: () => <Alert type=\"success\">{successText}</Alert>,\n });\n"],"mappings":"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","names":["init_esm_shims","init_esm_shims","import_react","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","ActionStatus","status","loadingText","successText","React","Spinner","Alert","Preview","baseUrl","onPreviewCreated","site","useSiteId","t","useTranslation","model","useProjectModel","backendComponents","useBackendComponents","arm","useARMClient","biLogger","useBiLogger","getAppByVersion","useDevCenterClient","createOverride","useSiteOverrideClient","httpClient","useHttpClient","uploadApplicationAction","useAsyncCallback","uploadApplication","createSiteOverrideIdAction","_","overrides","createPreviewTagAction","serveUrl","topologyComponentId","backendServerUrl","createPreviewTag","createPreviewStatus","useAsync","assertBuildOutputExists","components","topologyComponent","component","ComponentType","createSiteOverrides","siteOverrideId","armTag","saveAppConfig","React","ActionStatus","SiteOverrideProvider","ArmTagProvider","Box_default","PointerIcon","Trans","PlatformViewer","Text","PreviewCommand","baseUrl","siteIdOverride","onPreviewCreated","React","SiteIdProvider","Preview"]}
@@ -1,4 +1,4 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
- import{v as f,w as m}from"./chunk-MIBBNKYS.js";import{f as l,g as d,v as U}from"./chunk-R3JUFM5X.js";import{e as O,h as o}from"./chunk-V4TR6DCM.js";o();import{randomUUID as k}from"node:crypto";function L(r,t){r.updateDefaults(N(t))}function N(r){return r?{_client_id:r,_uuid:r,logged_user_id:r,logged_account_id:r,target_account_id:r}:{_client_id:k()}}o();import{uptime as h}from"node:process";o();var u=O(U(),1);import V from"node:os";import{platform as b,version as B}from"node:process";function w({cliVersion:r,flow:t}){return{...t?{flow:t}:{},cliVersion:r,isCI:u.default,nodeVersion:B,osName:F(),osVersion:V.release()}}function F(){switch(b){case"darwin":return"mac";case"win32":return"windows";default:return"linux"}}var x=()=>Math.round(h()*1e3);function j({biLogger:r,command:t,flow:y,cliVersion:E,projectId:p,extensions:n}){let S=t.opts(),C=t.args,_=new Set(["apiKey"]),c=Object.fromEntries(Object.entries(S).map(([e,s])=>{let v=_.has(e)?"<censored>":s;return[e,v]})),i={command:t.name(),arguments:C.join(","),flags:Object.keys(c).length?JSON.stringify(c):""};return r.report(f({...w({cliVersion:E,flow:y}),...i,...p?{projectId:p}:{},isValid:!0})),{succeed(){r.report(m({...i,...n?{extensions:JSON.stringify(n)}:{},duration:x(),isSuccess:!0,isValid:!0}))},failed(e){let s=l(e)?{errorType:d(e)?"SystemError":"UserError",errorName:e.name,errorMessage:e.message}:e instanceof Error?{errorType:"UnknownError",errorName:e.name,errorMessage:e.message}:{errorType:"UnknownError",errorMessage:JSON.stringify(e)};r.report(m({...i,...s,...n?{extensions:JSON.stringify(n)}:{},duration:x(),isSuccess:!1,isValid:!0}))}}}o();export{L as a,j as b};
4
- //# sourceMappingURL=chunk-I2Z6OIJW.js.map
3
+ import{v as f,w as m}from"./chunk-R6BWGOF7.js";import{f as d,g as l,v as U}from"./chunk-P3SK6O7I.js";import{e as O,h as o}from"./chunk-V4TR6DCM.js";o();import{randomUUID as k}from"node:crypto";function L(r,t){r.updateDefaults(N(t))}function N(r){return r?{_client_id:r,_uuid:r,logged_user_id:r,logged_account_id:r,target_account_id:r}:{_client_id:k()}}o();import{uptime as h}from"node:process";o();var u=O(U(),1);import V from"node:os";import{platform as b,version as B}from"node:process";function w({cliVersion:r,flow:t}){return{...t?{flow:t}:{},cliVersion:r,isCI:u.default,nodeVersion:B,osName:F(),osVersion:V.release()}}function F(){switch(b){case"darwin":return"mac";case"win32":return"windows";default:return"linux"}}var x=()=>Math.round(h()*1e3);function j({biLogger:r,command:t,flow:y,cliVersion:E,projectId:p,extensions:i}){let S=t.opts(),v=t.args,C=new Set(["apiKey"]),c=Object.fromEntries(Object.entries(S).map(([e,s])=>{let _=C.has(e)?"<censored>":s;return[e,_]})),n={command:t.name(),arguments:v.join(","),flags:Object.keys(c).length?JSON.stringify(c):""};return r.report(f({...w({cliVersion:E,flow:y}),...n,...p?{projectId:p}:{},isValid:!0})),{succeed(){r.report(m({...n,...i?{extensions:JSON.stringify(i)}:{},duration:x(),isSuccess:!0,isValid:!0}))},failed(e){let s=d(e)?{errorType:l(e)?"SystemError":"UserError",errorName:e.name,errorMessage:e.message}:e instanceof Error?{errorType:"UnknownError",errorName:e.name,errorMessage:e.message}:{errorType:"UnknownError",errorMessage:JSON.stringify(e)};r.report(m({...n,...s,...i?{extensions:JSON.stringify(i)}:{},duration:x(),isSuccess:!1,isValid:!0}))}}}o();export{L as a,j as b};
4
+ //# sourceMappingURL=chunk-YUHF6CTW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../cli-telemetry/src/add-user-fields.ts","../../cli-telemetry/src/command-bi-event.ts","../../cli-telemetry/src/environment.ts","../../cli-telemetry/src/index.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { BiLogger } from '@wix/wix-bi-logger-client';\n\nexport function addUserFields(logger: BiLogger, userId: string) {\n logger.updateDefaults(resolveUserFields(userId));\n}\n\nexport function resolveUserFields(userId?: string): Record<string, string> {\n if (!userId) {\n // anonymous users need to have an identifier for the bi platform to accept the event\n return {\n _client_id: randomUUID(),\n };\n }\n\n return {\n _client_id: userId,\n _uuid: userId,\n logged_user_id: userId,\n logged_account_id: userId,\n target_account_id: userId,\n };\n}\n","import type { BiLogger } from '@wix/wix-bi-logger-client';\nimport {\n wixCliCliCommand,\n wixCliCliCommandStatus,\n} from '@wix/bi-logger-wix-cli/v2';\nimport { isCliError, isCliSystemError } from '@wix/cli-error';\nimport { uptime } from 'node:process';\nimport { getEnvironmentInfo } from './environment.js';\n\ninterface CommandLike {\n name: () => string;\n args: string[];\n opts: () => Record<string, unknown>;\n}\n\nconst getDuration = () => Math.round(uptime() * 1000);\n\nexport function reportCommandStartEvent({\n biLogger,\n command,\n flow,\n cliVersion,\n projectId,\n extensions,\n}: {\n biLogger: BiLogger;\n command: CommandLike;\n flow: 'Apps' | 'Sites' | null;\n cliVersion: string;\n projectId?: string;\n extensions?: Record<string, number>;\n}) {\n const options = command.opts();\n const args = command.args;\n\n const privateOptions = new Set(['apiKey']);\n const sanitizedOptions = Object.fromEntries(\n Object.entries(options).map(([flagName, flagValue]) => {\n const value = privateOptions.has(flagName) ? '<censored>' : flagValue;\n return [flagName, value];\n })\n );\n\n const commandFields = {\n command: command.name(),\n arguments: args.join(','),\n flags: Object.keys(sanitizedOptions).length\n ? JSON.stringify(sanitizedOptions)\n : '',\n };\n\n void biLogger.report(\n wixCliCliCommand({\n ...getEnvironmentInfo({ cliVersion, flow }),\n ...commandFields,\n ...(projectId ? { projectId } : {}),\n isValid: true,\n })\n );\n\n return {\n succeed() {\n void biLogger.report(\n wixCliCliCommandStatus({\n ...commandFields,\n ...(extensions ? { extensions: JSON.stringify(extensions) } : {}),\n duration: getDuration(),\n isSuccess: true,\n isValid: true,\n })\n );\n },\n failed(error: unknown) {\n const errorFields = isCliError(error)\n ? {\n errorType: isCliSystemError(error) ? 'SystemError' : 'UserError',\n errorName: error.name,\n errorMessage: error.message,\n }\n : error instanceof Error\n ? {\n errorType: 'UnknownError',\n errorName: error.name,\n errorMessage: error.message,\n }\n : {\n errorType: 'UnknownError',\n errorMessage: JSON.stringify(error),\n };\n\n void biLogger.report(\n wixCliCliCommandStatus({\n ...commandFields,\n ...errorFields,\n ...(extensions ? { extensions: JSON.stringify(extensions) } : {}),\n duration: getDuration(),\n isSuccess: false,\n isValid: true,\n })\n );\n },\n };\n}\n","import os from 'node:os';\nimport { platform, version as nodeVersion } from 'node:process';\nimport isCI from 'is-ci';\n\nexport function getEnvironmentInfo({\n cliVersion,\n flow,\n}: {\n cliVersion: string;\n flow: 'Sites' | 'Apps' | null;\n}) {\n return {\n ...(flow ? { flow } : {}),\n cliVersion,\n isCI,\n nodeVersion,\n osName: getOsName(),\n osVersion: os.release(),\n };\n}\n\nexport type EnvironmentInfo = ReturnType<typeof getEnvironmentInfo>;\n\n// https://stackoverflow.com/a/8684009\nfunction getOsName() {\n switch (platform) {\n case 'darwin':\n return 'mac';\n case 'win32':\n return 'windows';\n default:\n return 'linux';\n }\n}\n","export type { BiLogger } from '@wix/wix-bi-logger-client';\nexport { createBiLogger } from './create-bi-logger.js';\nexport { reportCommandStartEvent } from './command-bi-event.js';\nexport { addUserFields } from './add-user-fields.js';\n"],"mappings":";;oJAAAA,IAAA,OAAS,cAAAC,MAAkB,cAGpB,SAASC,EAAcC,EAAkBC,EAAgB,CAC9DD,EAAO,eAAeE,EAAkBD,CAAM,CAAC,CACjD,CAEO,SAASC,EAAkBD,EAAyC,CACzE,OAAKA,EAOE,CACL,WAAYA,EACZ,MAAOA,EACP,eAAgBA,EAChB,kBAAmBA,EACnB,kBAAmBA,CACrB,EAXS,CACL,WAAYH,EAAW,CACzB,CAUJ,CCtBAK,IAMA,OAAS,UAAAC,MAAc,eCNvBC,IAEA,IAAAC,EAAiB,SAFjB,OAAOC,MAAQ,UACf,OAAS,YAAAC,EAAU,WAAWC,MAAmB,eAG1C,SAASC,EAAmB,CACjC,WAAAC,EACA,KAAAC,CACF,EAGG,CACD,MAAO,CACL,GAAIA,EAAO,CAAE,KAAAA,CAAK,EAAI,CAAC,EACvB,WAAAD,EACA,OAAAE,QACA,YAAAJ,EACA,OAAQK,EAAU,EAClB,UAAWP,EAAG,QAAQ,CACxB,CACF,CAKA,SAASO,GAAY,CACnB,OAAQN,EAAU,CAChB,IAAK,SACH,MAAO,MACT,IAAK,QACH,MAAO,UACT,QACE,MAAO,OACX,CACF,CDlBA,IAAMO,EAAc,IAAM,KAAK,MAAMC,EAAO,EAAI,GAAI,EAE7C,SAASC,EAAwB,CACtC,SAAAC,EACA,QAAAC,EACA,KAAAC,EACA,WAAAC,EACA,UAAAC,EACA,WAAAC,CACF,EAOG,CACD,IAAMC,EAAUL,EAAQ,KAAK,EACvBM,EAAON,EAAQ,KAEfO,EAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,EACnCC,EAAmB,OAAO,YAC9B,OAAO,QAAQH,CAAO,EAAE,IAAI,CAAC,CAACI,EAAUC,CAAS,IAAM,CACrD,IAAMC,EAAQJ,EAAe,IAAIE,CAAQ,EAAI,aAAeC,EAC5D,MAAO,CAACD,EAAUE,CAAK,CACzB,CAAC,CACH,EAEMC,EAAgB,CACpB,QAASZ,EAAQ,KAAK,EACtB,UAAWM,EAAK,KAAK,GAAG,EACxB,MAAO,OAAO,KAAKE,CAAgB,EAAE,OACjC,KAAK,UAAUA,CAAgB,EAC/B,EACN,EAEA,OAAKT,EAAS,OACZc,EAAiB,CACf,GAAGC,EAAmB,CAAE,WAAAZ,EAAY,KAAAD,CAAK,CAAC,EAC1C,GAAGW,EACH,GAAIT,EAAY,CAAE,UAAAA,CAAU,EAAI,CAAC,EACjC,QAAS,EACX,CAAC,CACH,EAEO,CACL,SAAU,CACHJ,EAAS,OACZgB,EAAuB,CACrB,GAAGH,EACH,GAAIR,EAAa,CAAE,WAAY,KAAK,UAAUA,CAAU,CAAE,EAAI,CAAC,EAC/D,SAAUR,EAAY,EACtB,UAAW,GACX,QAAS,EACX,CAAC,CACH,CACF,EACA,OAAOoB,EAAgB,CACrB,IAAMC,EAAcC,EAAWF,CAAK,EAChC,CACE,UAAWG,EAAiBH,CAAK,EAAI,cAAgB,YACrD,UAAWA,EAAM,KACjB,aAAcA,EAAM,OACtB,EACAA,aAAiB,MACjB,CACE,UAAW,eACX,UAAWA,EAAM,KACjB,aAAcA,EAAM,OACtB,EACA,CACE,UAAW,eACX,aAAc,KAAK,UAAUA,CAAK,CACpC,EAECjB,EAAS,OACZgB,EAAuB,CACrB,GAAGH,EACH,GAAGK,EACH,GAAIb,EAAa,CAAE,WAAY,KAAK,UAAUA,CAAU,CAAE,EAAI,CAAC,EAC/D,SAAUR,EAAY,EACtB,UAAW,GACX,QAAS,EACX,CAAC,CACH,CACF,CACF,CACF,CEtGAwB","names":["init_esm_shims","randomUUID","addUserFields","logger","userId","resolveUserFields","init_esm_shims","uptime","init_esm_shims","import_is_ci","os","platform","nodeVersion","getEnvironmentInfo","cliVersion","flow","isCI","getOsName","getDuration","uptime","reportCommandStartEvent","biLogger","command","flow","cliVersion","projectId","extensions","options","args","privateOptions","sanitizedOptions","flagName","flagValue","value","commandFields","wixCliCliCommand","getEnvironmentInfo","wixCliCliCommandStatus","error","errorFields","isCliError","isCliSystemError","init_esm_shims"]}
@@ -0,0 +1,4 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import{b as Ce}from"./chunk-RPKQITNR.js";import{b as Y,c as Oe,d as Te,e as Pe}from"./chunk-L3ID3ZSB.js";import{La as be,Pa as W,Qa as U,Ra as he,Sa as Ie,T as xe,a as ae,b as me,d as Z,f as le,ob as F,r as ce,s as de,t as ye,u as z,va as we,x as ge}from"./chunk-R6BWGOF7.js";import{D as Se,G as B,H,L as ee,M as ve,O as w,P as K,R as O,S as J,V as b,W as f,Y as _e,a as S,b as h,d as g,e as C,l as x,m as j,w as ue,y as fe,z as L}from"./chunk-P3SK6O7I.js";import{e as m,h as t}from"./chunk-V4TR6DCM.js";t();var E=m(S(),1),se=m(h(),1);t();var M=m(S(),1),V=m(h(),1);t();t();var y=m(S(),1),Ke=m(h(),1);t();var te=m(S(),1),Ae=m(h(),1);t();var Ee=m(S(),1);function Ye(e){return{cliAction:({question:i,action:o,key:r,additionalInfo:n})=>{e.report(Ie({question:i,action:o,key:r,additionalInfo:JSON.stringify(n)}))},cliFlowStepAnswered:({question:i,answer:o,additionalInfo:r})=>{e.report(he({question:i,answer:o,additionalInfo:JSON.stringify(r)}))}}}function D(){let e=z();return(0,Ee.useMemo)(()=>Ye(e),[e])}var Fe=({onSubmit:e,onError:i,sites:o})=>{let r=D(),{t:n}=f(),{getDevSitesCount:s,getDevSitesLimit:l}=U(),{status:_}=O(()=>Promise.all([s(),l()]),[],{onError:i}),c=u=>{r.cliFlowStepAnswered({question:n("site_type_select.label"),answer:u.title}),e(u.value)};return(0,Ae.match)(_,{Error:()=>null,Loading:()=>te.default.createElement(w,{text:n("general.loading")}),Success:({result:[u,v]})=>{let d=u>=v,I=o.length===0;return te.default.createElement(H,{label:n("site_type_select.label"),options:[{availability:I?B.Disabled({reason:n("site_type_select.no_sites")}):B.Enabled(),title:n("site_type_select.pick_existing_site"),value:"select-existing-site"},{title:n("site_type_select.create_new_dev_site"),value:"create-dev-site",availability:d?B.Disabled({reason:n("site_type_select.create_new_dev_site.disabled",{limit:v})}):B.Enabled()}],onSubmit:c})}})};t();var A=m(S(),1),Me=m(h(),1);t();var T=m(S(),1);t();t();var ke=m(S(),1);t();t();var De=x.record(x.object({appDefinitionId:x.string().optional(),permissions:x.object({revoked:x.boolean()}).optional()}));var G=class{constructor(i){this.httpClient=i}isAppInstalled=async({metaSiteId:i,appId:o})=>{try{let{data:r}=await this.httpClient.request({url:`/_api/msm/v1/meta-site/editor-client-spec-map/${i}`}),n=De.parse(r);return Object.values(n).some(l=>l.appDefinitionId===o&&!l.permissions?.revoked)}catch(r){throw new g({code:C.FailedToCheckIfAppInstalled(),cause:r})}}};function q(){let e=W({type:"general"});return(0,ke.useMemo)(()=>new G(e),[e])}var N=m(h(),1);t();var k=m(S(),1);var Ne=({siteId:e,appId:i})=>{let{t:o}=f(),r=D();return fe(async(n,s)=>{s.return&&(r.cliAction({question:o("install_app_on_site.warning.instructions"),key:"enter",action:"install_app_on_site"}),await ge(`https://manage.wix.com/installer/install?metaSiteId=${e}&appId=${i}&platform=cli&version=latest`))}),k.default.createElement(k.default.Fragment,null,k.default.createElement(b,{i18nKey:"install_app_on_site.warning"}),k.default.createElement(b,{i18nKey:"install_app_on_site.warning.instructions",components:[k.default.createElement(ve,{value:"Enter"})]}))};var re=(0,N.variant)({Success:{},Canceled:{}});function Ge(e){return e&&typeof e=="object"&&"name"in e&&e.name==="AbortError"}var $=({appId:e,site:i,onSubmit:o,onError:r})=>{let{isAppInstalled:n}=q(),{status:s}=O(async({signal:l})=>{let{appInstallationPollInterval:_}=j();try{return await de(()=>n({metaSiteId:i.id,appId:e}),{interval:_??2e3,timeout:{milliseconds:60*1e3*2,signal:l}}),re.Success()}catch(c){if(c instanceof ce)throw new g({code:C.SiteSelectorTimedout(),cause:c});if(Ge(c))return re.Canceled();throw c}},[],{onError:r,onSuccess:l=>{(0,N.isType)(l,re.Success)&&o()}});return(0,N.match)(s,{Error:()=>null,Loading:()=>T.default.createElement(Ne,{siteId:i.id,appId:e}),Success:()=>T.default.createElement(ue,{marginBottom:1,marginLeft:-2},T.default.createElement(L,null,T.default.createElement(Se,null)," ",T.default.createElement(L,{skin:"successEmphasized"}," ",T.default.createElement(b,{i18nKey:"general.success"})," ")," ",T.default.createElement(b,{i18nKey:"install_app_on_site.finished_successfully"})))})};var Le=({status:e,appId:i,onSubmit:o,onError:r})=>{let{t:n}=f();return(0,Me.match)(e,{NotRequested:()=>null,Error:()=>null,Loading:()=>A.default.createElement(w,{text:n("create_dev_site.loading")}),Success:({result:s})=>A.default.createElement(A.default.Fragment,null,A.default.createElement(b,{i18nKey:"create_dev_site.success",components:[A.default.createElement(L,{skin:"success",bold:!0})],values:{name:s.displayName}}),A.default.createElement($,{appId:i,site:s,onSubmit:()=>o(s),onError:r}))})};var Be={"general.loading":"Loading...","general.success":"Success","site_type_select.label":"Select Development Site","site_type_select.create_new_dev_site":"Create a new Development Site","site_type_select.create_new_dev_site.disabled":"You have reached the maximum number of {limit} Development Sites","site_type_select.pick_existing_site":"Pick an existing site","site_type_select.no_sites":"No sites found","create_dev_site.loading":"Creating your new Development Site...","create_dev_site.success":"Development Site <0>{name}</0> created successfully! \u{1F680}","site_list_select.label":"Select Site","install_app_on_site.warning":"Your new application needs to be installed on the selected Development Site","install_app_on_site.warning.instructions":"Press <0/> to install the application in your browser","install_app_on_site.finished_successfully":"App installed on Development Site."};t();var P=m(S(),1);var je=m(h(),1);t();var R=m(S(),1);var qe=({onSubmit:e,sites:i})=>{let{t:o}=f(),r=D(),n=(0,R.useCallback)(s=>{r.cliFlowStepAnswered({question:o("site_list_select.label"),answer:s.title}),e(s.value)},[r,e,o]);return R.default.createElement(H,{label:o("site_list_select.label"),options:i.map(s=>({key:s.id,title:s.displayName,description:s.viewUrl,value:s})),onSubmit:n})};var He=({sites:e,appId:i,onSubmit:o,onError:r})=>{let{t:n}=f(),{isAppInstalled:s}=q(),[l,_]=(0,P.useState)(null),c=J((v,d)=>s({metaSiteId:d.id,appId:i}),{onError:r});async function u(v){await c.execute(v)?o(v):_(v)}return P.default.createElement(P.default.Fragment,null,P.default.createElement(qe,{onSubmit:u,sites:e}),(0,je.isType)(c.status,"Loading")&&P.default.createElement(w,{text:n("general.loading")}),l&&P.default.createElement($,{appId:i,site:l,onSubmit:()=>o(l),onError:r}))};var ie=({appId:e,biLogger:i,onSubmit:o,onError:r})=>{let[n,s]=(0,y.useState)(null),{createDevSite:l}=U(),_=Y(),{status:c}=O(()=>_.querySites({query:{cursorPaging:{limit:100}}}),[],{onError:r}),u=J(()=>l(),{onError:r});function v(d){s(d),d==="create-dev-site"&&u.execute()}return y.default.createElement(ye,{value:i},y.default.createElement(_e,{messages:Be},(0,Ke.match)(c,{Error:()=>null,Loading:()=>y.default.createElement(w,{text:y.default.createElement(b,{i18nKey:"general.loading"})}),Success:({result:d})=>y.default.createElement(y.default.Fragment,null,y.default.createElement(Fe,{onSubmit:v,onError:r,sites:d}),n==="create-dev-site"&&y.default.createElement(Le,{status:u.status,appId:e,onSubmit:o,onError:r}),n==="select-existing-site"&&y.default.createElement(He,{sites:d,appId:e,onSubmit:o,onError:r}))})))};var oe=({state:e,onSubmit:i})=>{let o=K(),{t:r}=f(),{model:n}=F(),s=z();return M.default.createElement(M.default.Fragment,null,(0,V.match)(e,{NotConfigured:(0,V.constant)(M.default.createElement(ee,{type:"insight"},r("general.no_site_id_configured"))),NotFound:({id:l})=>M.default.createElement(ee,{type:"error"},r("general.site_id_not_found",{id:l}))}),M.default.createElement(ie,{appId:n.config.appId,biLogger:s,onSubmit:i,onError:o}))};var Re=({children:e,siteId:i})=>{let o=K(),{model:{projectFolder:r}}=F(),n=Ce(),s=Y(),{t:l}=f(),{status:_,merge:c}=O(async()=>Pe({projectFolder:r,siteListClient:s,siteId:i,writeDebugLog:n}),[]),u=(0,E.useCallback)(async d=>{try{await be(r,{siteId:d.id}),c({result:Te.Resolved({site:d})})}catch{throw new g({code:C.FailedToSaveDevelopmentSite({path:xe})})}},[c,r]),v=(0,E.useCallback)(d=>u(d).catch(o),[o,u]);return(0,se.match)(_,{Error:()=>null,Loading:()=>E.default.createElement(w,{text:l("dev_command.site_provider.loading")}),Success:({result:d})=>(0,se.match)(d,{NotConfigured:I=>E.default.createElement(oe,{state:I,onSubmit:v}),NotFound:I=>E.default.createElement(oe,{state:I,onSubmit:v}),Resolved:({site:I})=>E.default.createElement(Oe.Provider,{value:{site:I,setSite:u}},typeof e=="function"?e(I):e)})})};t();var We=m(S(),1);t();t();var Ve={},Qe={};function Xe(e){var i={"cronulla-jobs._base_domain_":[{srcPath:"/serverless/site-override",destPath:""}],"bo._base_domain_":[{srcPath:"/_serverless/site-override",destPath:""}],"wixbo.ai":[{srcPath:"/_serverless/site-override",destPath:""}],"manage._base_domain_":[{srcPath:"/_serverless/site-override",destPath:""}]};return me(Object.assign(e,{domainToMappings:i}))}function Je(e){var i=Z(Ve,{}),o=i.toJSON,r=i.fromJSON,n=Z(Qe,{}).fromJSON;function s(l){var _=l.host,c=o(e),u={entityFqdn:"wix.cli.site_override_service.v1.site_override",method:"POST",methodFqn:"wix.cli.v1.SiteOverrideService.CreateOverride",url:Xe({protoPath:"/v1/site-overrides",data:c,host:_}),data:c,transformResponse:n};return u}return s.fromReq=r,s.__isAmbassador=!0,s}t();var ze=x.object({siteOverride:x.object({id:x.string()})});var Q=class{constructor(i){this.httpClient=i;let{minRetryTimeout:o}=j();this.retryOptions={retries:3,minTimeout:o,maxTimeout:3*1e3}}retryOptions;createOverride=async({appId:i,siteId:o,overrides:r,siteOverrideId:n})=>{try{let{data:s}=await ae(()=>this.httpClient.request(Je({siteOverride:{id:n,appId:i,siteId:o,overrides:r}})),this.retryOptions);return ze.parse(s).siteOverride}catch(s){throw le(s)&&s.response?.status===403?s.response.data?.details?.applicationError?.code==="PERMISSION_DENIED_FOR_SITE"?new g({code:C.SitePermissionDenied({siteId:o}),cause:s}):new g({code:C.AppPermissionDenied({appId:i}),cause:s}):new g({code:C.FailedToCreateSiteOverride(),cause:s})}}};function Ze(){let e=W({type:"backoffice"});return(0,We.useMemo)(()=>new Q(e),[e])}t();t();var Ue=m(h(),1);t();var X;(function(e){e.UNKNOWN_TYPE="UNKNOWN_TYPE",e.EMBEDDED_SCRIPT="EMBEDDED_SCRIPT"})(X||(X={}));function di(e){let i=e.components.filter((0,Ue.isType)(we.EmbeddedScript));return i.length===0?null:i.reduce((o,r)=>{let n=r.paramsOverride??{};return{...o,[r.id]:{type:X.EMBEDDED_SCRIPT,componentId:r.id,embeddedScriptOptions:{parameters:n}}}},{})}t();t();var ne=m(S(),1),pe=m(h(),1);function xi(){let{model:e}=F(),i=(0,ne.useCallback)(r=>e.components.some(n=>n.platforms.some((0,pe.isType)(r.type))),[e.components]),o=(0,ne.useCallback)(r=>e.components.every(n=>n.platforms.some((0,pe.isType)(r.type))||n.platforms.length===0),[e.components]);return{isPlatformExists:i,hasSinglePlatform:o}}export{ie as a,Re as b,Ze as c,di as d,xi as e};
4
+ //# sourceMappingURL=chunk-Z7XO554G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/site-id/SiteIdProvider.tsx","../src/site-id/ResolveSiteId.tsx","../../cli-site-selector/src/index.ts","../../cli-site-selector/src/SiteSelector.tsx","../../cli-site-selector/src/SiteTypeSelect.tsx","../../cli-site-selector/src/bi.ts","../../cli-site-selector/src/CreateDevSite.tsx","../../cli-site-selector/src/WaitForAppToBeInstalled.tsx","../../metasite-manager-client/src/index.ts","../../metasite-manager-client/src/useMetasiteManagerClient.ts","../../metasite-manager-client/src/metasite-manager-client.ts","../../metasite-manager-client/src/schemas.ts","../../cli-site-selector/src/OpenBrowser.tsx","../../cli-site-selector/src/messages.json","../../cli-site-selector/src/SelectExistingSite.tsx","../../cli-site-selector/src/SiteListSelect.tsx","../../site-override-client/src/useSiteOverrideClient.ts","../../site-override-client/src/client.ts","../../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/http.impl.ts","../../site-override-client/src/schemas.ts","../../site-override-client/src/index.ts","../src/site-override/createSiteOverrides.ts","../../../node_modules/@wix/ambassador-cli-site-override-service-v1-site-override/types.impl.ts","../src/site-id/index.ts","../src/components/Platform/usePlatform.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match } from 'variant';\nimport { useDebugLog } from '@wix/cli-debug-log';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { APP_CONFIG_PATH } from '@wix/cli-app-definitions';\nimport { useAsync, useExit, Spinner } from '@wix/cli-ui-kit';\nimport { useSiteListClient } from '@wix/site-list-client';\nimport type { Site } from '@wix/site-list-client';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { saveAppConfig } from '../files/app.config.js';\nimport { useProjectModel } from '../model.js';\nimport { ResolveSiteId } from './ResolveSiteId.js';\nimport { SiteIdContext } from './context.js';\nimport { SiteIdState } from './site-id-state.js';\nimport { resolveConfiguredSite } from './resolve-configured-site.js';\n\nexport const SiteIdProvider: FC<{\n siteId?: string;\n children: ReactNode | ((site: Site) => ReactNode);\n}> = ({ children, siteId }) => {\n const exit = useExit();\n const {\n model: { projectFolder },\n } = useProjectModel();\n const writeDebugLog = useDebugLog();\n const siteListClient = useSiteListClient();\n const { t } = useTranslation();\n\n const { status, merge } = useAsync(\n async () =>\n resolveConfiguredSite({\n projectFolder,\n siteListClient,\n siteId,\n writeDebugLog,\n }),\n []\n );\n\n const setSite = useCallback(\n async (site: Site) => {\n try {\n await saveAppConfig(projectFolder, { siteId: site.id });\n merge({ result: SiteIdState.Resolved({ site }) });\n } catch {\n throw new CliError({\n code: CliErrorCode.FailedToSaveDevelopmentSite({\n path: APP_CONFIG_PATH,\n }),\n });\n }\n },\n [merge, projectFolder]\n );\n\n const handleResolveSiteId = useCallback(\n (site: Site) => setSite(site).catch(exit),\n [exit, setSite]\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner text={t('dev_command.site_provider.loading')} />,\n Success: ({ result: state }) => {\n return match(state, {\n NotConfigured: (variant) => (\n <ResolveSiteId state={variant} onSubmit={handleResolveSiteId} />\n ),\n NotFound: (variant) => (\n <ResolveSiteId state={variant} onSubmit={handleResolveSiteId} />\n ),\n Resolved: ({ site }) => (\n <SiteIdContext.Provider\n value={{\n site,\n setSite,\n }}\n >\n {typeof children === 'function' ? children(site) : children}\n </SiteIdContext.Provider>\n ),\n });\n },\n });\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { match, constant } from 'variant';\nimport type { Site } from '@wix/site-list-client';\nimport { Alert, useExit } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { SiteSelector } from '@wix/cli-site-selector';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { useProjectModel } from '../model.js';\nimport type { SiteIdState } from './site-id-state.js';\n\ninterface Props {\n state: SiteIdState<'NotConfigured' | 'NotFound'>;\n onSubmit: (site: Site) => void;\n}\n\nexport const ResolveSiteId: FC<Props> = ({ state, onSubmit }) => {\n const exit = useExit();\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const biLogger = useBiLogger();\n\n return (\n <>\n {match(state, {\n NotConfigured: constant(\n <Alert type=\"insight\">{t('general.no_site_id_configured')}</Alert>\n ),\n NotFound: ({ id }) => (\n <Alert type=\"error\">{t('general.site_id_not_found', { id })}</Alert>\n ),\n })}\n <SiteSelector\n appId={model.config.appId}\n biLogger={biLogger}\n onSubmit={onSubmit}\n onError={exit}\n />\n </>\n );\n};\n","export { SiteSelector } from './SiteSelector.js';\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { I18nProvider, Trans } from '@wix/cli-i18n';\nimport type { Site } from '@wix/site-list-client';\nimport { Spinner, useAsync, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { useSiteListClient } from '@wix/site-list-client';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport { BiProvider } from '@wix/cli-telemetry-react';\nimport { SiteTypeSelect } from './SiteTypeSelect.js';\nimport type { SiteType } from './SiteTypeSelect.js';\nimport { CreateDevSite } from './CreateDevSite.js';\nimport messages from './messages.json';\nimport { SelectExistingSite } from './SelectExistingSite.js';\n\ninterface Props {\n appId: string;\n biLogger: BiLogger;\n onSubmit: (site: Site) => void;\n onError: (error: unknown) => void;\n}\n\nexport const SiteSelector: FC<Props> = ({\n appId,\n biLogger,\n onSubmit,\n onError,\n}) => {\n const [siteType, setSiteType] = useState<SiteType | null>(null);\n const { createDevSite } = useDevCenterClient();\n const siteListClient = useSiteListClient();\n\n const { status } = useAsync(\n () =>\n siteListClient.querySites({\n query: {\n cursorPaging: {\n limit: 100,\n },\n },\n }),\n [],\n {\n onError,\n }\n );\n\n const createSite = useAsyncCallback(() => createDevSite(), {\n onError,\n });\n\n function handleSelectSiteType(siteType: SiteType) {\n setSiteType(siteType);\n if (siteType === 'create-dev-site') {\n void createSite.execute();\n }\n }\n\n return (\n <BiProvider value={biLogger}>\n <I18nProvider messages={messages}>\n {match(status, {\n Error: () => null,\n Loading: () => <Spinner text={<Trans i18nKey=\"general.loading\" />} />,\n Success: ({ result: sites }) => (\n <>\n <SiteTypeSelect\n onSubmit={handleSelectSiteType}\n onError={onError}\n sites={sites}\n />\n {siteType === 'create-dev-site' && (\n <CreateDevSite\n status={createSite.status}\n appId={appId}\n onSubmit={onSubmit}\n onError={onError}\n />\n )}\n {siteType === 'select-existing-site' && (\n <SelectExistingSite\n sites={sites}\n appId={appId}\n onSubmit={onSubmit}\n onError={onError}\n />\n )}\n </>\n ),\n })}\n </I18nProvider>\n </BiProvider>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport type { SelectOption } from '@wix/cli-ui-kit';\nimport {\n Spinner,\n SelectInput,\n useAsync,\n SelectOptionAvailability,\n} from '@wix/cli-ui-kit';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport type { Site } from '@wix/site-list-client';\nimport { useSiteSelectorBi } from './bi.js';\n\nexport type SiteType = 'create-dev-site' | 'select-existing-site';\ninterface Props {\n onSubmit: (siteType: SiteType) => void;\n onError: (error: unknown) => void;\n sites: Site[];\n}\n\nexport const SiteTypeSelect: FC<Props> = ({ onSubmit, onError, sites }) => {\n const bi = useSiteSelectorBi();\n const { t } = useTranslation();\n const { getDevSitesCount, getDevSitesLimit } = useDevCenterClient();\n const { status } = useAsync(\n () => Promise.all([getDevSitesCount(), getDevSitesLimit()]),\n [],\n { onError }\n );\n\n const handleSubmit = (option: SelectOption<SiteType>) => {\n void bi.cliFlowStepAnswered({\n question: t('site_type_select.label'),\n answer: option.title,\n });\n onSubmit(option.value);\n };\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner text={t('general.loading')} />,\n Success: ({ result: [devSitesCount, devSitesLimit] }) => {\n const isDevSitesLimitReached = devSitesCount >= devSitesLimit;\n const userHasNoSites = sites.length === 0;\n\n return (\n <SelectInput<SiteType>\n label={t('site_type_select.label')}\n options={[\n {\n availability: userHasNoSites\n ? SelectOptionAvailability.Disabled({\n reason: t('site_type_select.no_sites'),\n })\n : SelectOptionAvailability.Enabled(),\n title: t('site_type_select.pick_existing_site'),\n value: 'select-existing-site',\n },\n {\n title: t('site_type_select.create_new_dev_site'),\n value: 'create-dev-site',\n availability: isDevSitesLimitReached\n ? SelectOptionAvailability.Disabled({\n reason: t('site_type_select.create_new_dev_site.disabled', {\n limit: devSitesLimit,\n }),\n })\n : SelectOptionAvailability.Enabled(),\n },\n ]}\n onSubmit={handleSubmit}\n />\n );\n },\n });\n};\n","import { useMemo } from 'react';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport {\n wixCliAction,\n wixCliAppFlowStepsAnswers,\n} from '@wix/bi-logger-dev-tools-data/v2';\n\nexport function siteSelectorBiEvents(biLogger: BiLogger) {\n return {\n cliAction: ({\n question,\n action,\n key,\n additionalInfo,\n }: {\n question: string;\n action: string;\n key: string;\n additionalInfo?: Record<string, unknown>;\n }) => {\n void biLogger.report(\n wixCliAction({\n question,\n action,\n key,\n additionalInfo: JSON.stringify(additionalInfo),\n })\n );\n },\n cliFlowStepAnswered: ({\n question,\n answer,\n additionalInfo,\n }: {\n question: string;\n answer: string;\n additionalInfo?: Record<string, unknown>;\n }) => {\n void biLogger.report(\n wixCliAppFlowStepsAnswers({\n question,\n answer,\n additionalInfo: JSON.stringify(additionalInfo),\n })\n );\n },\n };\n}\n\nexport function useSiteSelectorBi() {\n const biLogger = useBiLogger();\n return useMemo(() => siteSelectorBiEvents(biLogger), [biLogger]);\n}\n","import React from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport type { AsyncCallbackStatus } from '@wix/cli-ui-kit';\nimport { Text, Spinner } from '@wix/cli-ui-kit';\nimport type { Site } from '@wix/site-list-client';\nimport { WaitForAppToBeInstalled } from './WaitForAppToBeInstalled.js';\n\ninterface Props {\n status: AsyncCallbackStatus<Site>;\n appId: string;\n onSubmit: (site: Site) => void;\n onError: (error: unknown) => void;\n}\n\nexport const CreateDevSite: FC<Props> = ({\n status,\n appId,\n onSubmit,\n onError,\n}) => {\n const { t } = useTranslation();\n\n return match(status, {\n NotRequested: () => null,\n Error: () => null,\n Loading: () => <Spinner text={t('create_dev_site.loading')} />,\n Success: ({ result }) => (\n <>\n <Trans\n i18nKey=\"create_dev_site.success\"\n components={[<Text skin=\"success\" bold />]}\n values={{ name: result.displayName }}\n />\n <WaitForAppToBeInstalled\n appId={appId}\n site={result}\n onSubmit={() => onSubmit(result)}\n onError={onError}\n />\n </>\n ),\n });\n};\n","import pWaitFor, { TimeoutError } from 'p-wait-for';\nimport React from 'react';\nimport type { FC } from 'react';\nimport { Trans } from '@wix/cli-i18n';\nimport { Box, SuccessIcon, Text, useAsync } from '@wix/cli-ui-kit';\nimport { useMetasiteManagerClient } from '@wix/metasite-manager-client';\nimport { isType, match, variant } from 'variant';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { Site } from '@wix/site-list-client';\nimport { OpenBrowser } from './OpenBrowser.js';\n\ninterface Props {\n site: Site;\n appId: string;\n onSubmit: () => void;\n onError: (error: unknown) => void;\n}\n\nexport const AppInstallData = variant({\n Success: {},\n Canceled: {},\n});\n\nfunction isAbortError(error: unknown) {\n return (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n error.name === 'AbortError'\n );\n}\n\nexport const WaitForAppToBeInstalled: FC<Props> = ({\n appId,\n site,\n onSubmit,\n onError,\n}) => {\n const { isAppInstalled } = useMetasiteManagerClient();\n\n const { status } = useAsync(\n async ({ signal }) => {\n const { appInstallationPollInterval } = getTestOverrides();\n\n try {\n await pWaitFor(() => isAppInstalled({ metaSiteId: site.id, appId }), {\n interval: appInstallationPollInterval ?? 2000,\n timeout: {\n milliseconds: 60 * 1000 * 2,\n signal,\n },\n });\n\n return AppInstallData.Success();\n } catch (error) {\n if (error instanceof TimeoutError) {\n throw new CliError({\n code: CliErrorCode.SiteSelectorTimedout(),\n cause: error,\n });\n }\n\n if (isAbortError(error)) {\n return AppInstallData.Canceled();\n }\n\n throw error;\n }\n },\n [],\n {\n onError,\n onSuccess: (result) => {\n if (isType(result, AppInstallData.Success)) {\n onSubmit();\n }\n },\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <OpenBrowser siteId={site.id} appId={appId} />,\n Success: () => (\n <Box marginBottom={1} marginLeft={-2}>\n <Text>\n <SuccessIcon />{' '}\n <Text skin=\"successEmphasized\">\n {' '}\n <Trans i18nKey=\"general.success\" />{' '}\n </Text>{' '}\n <Trans i18nKey=\"install_app_on_site.finished_successfully\" />\n </Text>\n </Box>\n ),\n });\n};\n","export { useMetasiteManagerClient } from './useMetasiteManagerClient.js';\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { MetasiteManagerClient } from './metasite-manager-client.js';\n\nexport function useMetasiteManagerClient(): MetasiteManagerClient {\n const httpClient = useHttpClient({ type: 'general' });\n return useMemo(() => new MetasiteManagerClient(httpClient), [httpClient]);\n}\n","import { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { HttpClient } from '@wix/cli-http-client';\nimport { clientSpecMapSchema } from './schemas.js';\n\nexport class MetasiteManagerClient {\n constructor(private readonly httpClient: HttpClient) {}\n\n public isAppInstalled = async ({\n metaSiteId,\n appId,\n }: {\n metaSiteId: string;\n appId: string;\n }) => {\n try {\n const { data } = await this.httpClient.request({\n url: `/_api/msm/v1/meta-site/editor-client-spec-map/${metaSiteId}`,\n });\n\n const clientSpecMap = clientSpecMapSchema.parse(data);\n\n const isInstalled = Object.values(clientSpecMap).some(\n (spec) => spec.appDefinitionId === appId && !spec.permissions?.revoked\n );\n\n return isInstalled;\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToCheckIfAppInstalled(),\n cause: e,\n });\n }\n };\n}\n","import { z } from 'zod';\n\nexport const clientSpecMapSchema = z.record(\n z.object({\n appDefinitionId: z.string().optional(),\n permissions: z.object({ revoked: z.boolean() }).optional(),\n })\n);\n\nexport type ClientSpecMap = z.TypeOf<typeof clientSpecMapSchema>;\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Key, useInput } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { useSiteSelectorBi } from './bi.js';\n\ninterface Props {\n siteId: string;\n appId: string;\n}\n\nexport const OpenBrowser: FC<Props> = ({ siteId, appId }) => {\n const { t } = useTranslation();\n const bi = useSiteSelectorBi();\n\n useInput(async (input, key) => {\n if (key.return) {\n bi.cliAction({\n question: t('install_app_on_site.warning.instructions'),\n key: 'enter',\n action: 'install_app_on_site',\n });\n await openBrowser(\n `https://manage.wix.com/installer/install?metaSiteId=${siteId}&appId=${appId}&platform=cli&version=latest`\n );\n }\n });\n\n return (\n <>\n <Trans i18nKey=\"install_app_on_site.warning\" />\n <Trans\n i18nKey=\"install_app_on_site.warning.instructions\"\n components={[<Key value=\"Enter\" />]}\n />\n </>\n );\n};\n","{\n \"general.loading\": \"Loading...\",\n \"general.success\": \"Success\",\n \"site_type_select.label\": \"Select Development Site\",\n \"site_type_select.create_new_dev_site\": \"Create a new Development Site\",\n \"site_type_select.create_new_dev_site.disabled\": \"You have reached the maximum number of {limit} Development Sites\",\n \"site_type_select.pick_existing_site\": \"Pick an existing site\",\n \"site_type_select.no_sites\": \"No sites found\",\n \"create_dev_site.loading\": \"Creating your new Development Site...\",\n \"create_dev_site.success\": \"Development Site <0>{name}</0> created successfully! 🚀\",\n \"site_list_select.label\": \"Select Site\",\n \"install_app_on_site.warning\": \"Your new application needs to be installed on the selected Development Site\",\n \"install_app_on_site.warning.instructions\": \"Press <0/> to install the application in your browser\",\n \"install_app_on_site.finished_successfully\": \"App installed on Development Site.\"\n}\n","import React, { useState } from 'react';\nimport { Spinner, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { useMetasiteManagerClient } from '@wix/metasite-manager-client';\nimport type { Site } from '@wix/site-list-client';\nimport { isType } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { WaitForAppToBeInstalled } from './WaitForAppToBeInstalled.js';\nimport { SiteListSelect } from './SiteListSelect.js';\n\ninterface Props {\n sites: Site[];\n appId: string;\n onSubmit: (site: Site) => void;\n onError: (error: unknown) => void;\n}\n\nexport const SelectExistingSite = ({\n sites,\n appId,\n onSubmit,\n onError,\n}: Props) => {\n const { t } = useTranslation();\n const { isAppInstalled } = useMetasiteManagerClient();\n const [siteToInstallAppOn, setSiteToInstallAppOn] = useState<Site | null>(\n null\n );\n const checkAppInstalled = useAsyncCallback(\n (_, site: Site) => isAppInstalled({ metaSiteId: site.id, appId }),\n {\n onError,\n }\n );\n\n async function handleSelectSite(site: Site) {\n const isInstalled = await checkAppInstalled.execute(site);\n if (isInstalled) {\n onSubmit(site);\n } else {\n setSiteToInstallAppOn(site);\n }\n }\n\n return (\n <>\n <SiteListSelect onSubmit={handleSelectSite} sites={sites} />\n {isType(checkAppInstalled.status, 'Loading') && (\n <Spinner text={t('general.loading')} />\n )}\n {siteToInstallAppOn && (\n <WaitForAppToBeInstalled\n appId={appId}\n site={siteToInstallAppOn}\n onSubmit={() => onSubmit(siteToInstallAppOn)}\n onError={onError}\n />\n )}\n </>\n );\n};\n","import React, { useCallback } from 'react';\nimport type { FC } from 'react';\nimport { useTranslation } from '@wix/cli-i18n';\nimport type { SelectOption } from '@wix/cli-ui-kit';\nimport { SelectInput } from '@wix/cli-ui-kit';\nimport type { Site } from '@wix/site-list-client';\nimport { useSiteSelectorBi } from './bi.js';\n\ninterface Props {\n onSubmit: (site: Site) => void;\n sites: Site[];\n}\n\nexport const SiteListSelect: FC<Props> = ({ onSubmit, sites }) => {\n const { t } = useTranslation();\n const bi = useSiteSelectorBi();\n\n const handleSubmit = useCallback(\n (option: SelectOption<Site>) => {\n bi.cliFlowStepAnswered({\n question: t('site_list_select.label'),\n answer: option.title,\n });\n onSubmit(option.value);\n },\n [bi, onSubmit, t]\n );\n\n return (\n <SelectInput<Site>\n label={t('site_list_select.label')}\n options={sites.map((site) => ({\n key: site.id,\n title: site.displayName,\n description: site.viewUrl,\n value: site,\n }))}\n onSubmit={handleSubmit}\n />\n );\n};\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { SiteOverrideClient } from './client.js';\n\nexport function useSiteOverrideClient() {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new SiteOverrideClient(httpClient), [httpClient]);\n}\n","import type { HttpClient } from '@wix/cli-http-client';\nimport type { Options } from 'p-retry';\nimport pRetry from 'p-retry';\nimport { createOverride } from '@wix/ambassador-cli-site-override-service-v1-site-override/http';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { ComponentOverride } from '@wix/ambassador-cli-site-override-service-v1-site-override/types';\nimport { createOverrideSchema } from './schemas.js';\n\nexport type ComponentsForSiteOverride = Record<string, ComponentOverride>;\n\nexport class SiteOverrideClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n public createOverride = async ({\n appId,\n siteId,\n overrides,\n siteOverrideId,\n }: {\n appId: string;\n siteId: string;\n overrides: ComponentsForSiteOverride;\n siteOverrideId?: string;\n }) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n createOverride({\n siteOverride: {\n id: siteOverrideId,\n appId,\n siteId,\n overrides,\n },\n })\n ),\n this.retryOptions\n );\n\n return createOverrideSchema.parse(data).siteOverride;\n } catch (error) {\n if (isHttpError(error) && error.response?.status === 403) {\n if (\n error.response.data?.details?.applicationError?.code ===\n 'PERMISSION_DENIED_FOR_SITE'\n ) {\n throw new CliError({\n code: CliErrorCode.SitePermissionDenied({ siteId }),\n cause: error,\n });\n }\n\n throw new CliError({\n code: CliErrorCode.AppPermissionDenied({ appId }),\n cause: error,\n });\n }\n\n throw new CliError({\n code: CliErrorCode.FailedToCreateSiteOverride(),\n cause: error,\n });\n }\n };\n}\n",null,"import { z } from 'zod';\n\nexport const createOverrideSchema = z.object({\n siteOverride: z.object({\n id: z.string(),\n }),\n});\n","export { SiteOverrideClient } from './client.js';\nexport type { ComponentsForSiteOverride } from './client.js';\nexport { useSiteOverrideClient } from './useSiteOverrideClient.js';\n","import { isType } from 'variant';\nimport { Type } from '@wix/ambassador-cli-site-override-service-v1-site-override/types';\nimport type { ComponentOverride } from '@wix/ambassador-cli-site-override-service-v1-site-override/types';\nimport type { ProjectModel } from '../model.js';\nimport { DevCenterComponent } from '../dev-center/components/dev-center-component.js';\n\nexport function createSiteOverrides(model: ProjectModel) {\n const componentsToOverride = model.components.filter(\n isType(DevCenterComponent.EmbeddedScript)\n );\n\n if (componentsToOverride.length === 0) {\n return null;\n }\n\n return componentsToOverride.reduce<Record<string, ComponentOverride>>(\n (acc, component) => {\n const paramsOverride = component.paramsOverride ?? {};\n\n return {\n ...acc,\n [component.id]: {\n type: Type.EMBEDDED_SCRIPT,\n componentId: component.id,\n embeddedScriptOptions: { parameters: paramsOverride },\n },\n };\n },\n {}\n );\n}\n",null,"export { SiteIdProvider } from './SiteIdProvider.js';\nexport { useSiteId } from './useSiteId.js';\n","import { useCallback } from 'react';\nimport { isType } from 'variant';\nimport type { PlatformType } from '@wix/cli-app-definitions';\nimport { useProjectModel } from '../../model.js';\n\nexport function usePlatform() {\n const { model } = useProjectModel();\n\n const isPlatformExists = useCallback(\n (platformType: PlatformType) =>\n model.components.some((component) =>\n component.platforms.some(isType(platformType.type))\n ),\n [model.components]\n );\n\n const hasSinglePlatform = useCallback(\n (platformType: PlatformType) =>\n model.components.every(\n (component) =>\n component.platforms.some(isType(platformType.type)) ||\n component.platforms.length === 0\n ),\n [model.components]\n );\n\n return {\n isPlatformExists,\n hasSinglePlatform,\n };\n}\n"],"mappings":";;wfAAAA,IAAA,IAAAC,EAAmC,SAEnCC,GAAsB,SCFtBC,IAAA,IAAAC,EAAkB,SAElBC,EAAgC,SCFhCC,ICAAC,IAAA,IAAAC,EAAgC,SAEhCC,GAAsB,SCFtBC,IAAA,IAAAC,GAAkB,SAElBC,GAAsB,SCFtBC,IAAA,IAAAC,GAAwB,SAQjB,SAASC,GAAqBC,EAAoB,CACvD,MAAO,CACL,UAAW,CAAC,CACV,SAAAC,EACA,OAAAC,EACA,IAAAC,EACA,eAAAC,CACF,IAKM,CACCJ,EAAS,OACZK,GAAa,CACX,SAAAJ,EACA,OAAAC,EACA,IAAAC,EACA,eAAgB,KAAK,UAAUC,CAAc,CAC/C,CAAC,CACH,CACF,EACA,oBAAqB,CAAC,CACpB,SAAAH,EACA,OAAAK,EACA,eAAAF,CACF,IAIM,CACCJ,EAAS,OACZO,GAA0B,CACxB,SAAAN,EACA,OAAAK,EACA,eAAgB,KAAK,UAAUF,CAAc,CAC/C,CAAC,CACH,CACF,CACF,CACF,CAEO,SAASI,GAAoB,CAClC,IAAMR,EAAWS,EAAY,EAC7B,SAAO,YAAQ,IAAMV,GAAqBC,CAAQ,EAAG,CAACA,CAAQ,CAAC,CACjE,CD/BO,IAAMU,GAA4B,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,MAAAC,CAAM,IAAM,CACzE,IAAMC,EAAKC,EAAkB,EACvB,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvB,CAAE,iBAAAC,EAAkB,iBAAAC,CAAiB,EAAIC,EAAmB,EAC5D,CAAE,OAAAC,CAAO,EAAIC,EACjB,IAAM,QAAQ,IAAI,CAACJ,EAAiB,EAAGC,EAAiB,CAAC,CAAC,EAC1D,CAAC,EACD,CAAE,QAAAP,CAAQ,CACZ,EAEMW,EAAgBC,GAAmC,CAClDV,EAAG,oBAAoB,CAC1B,SAAUE,EAAE,wBAAwB,EACpC,OAAQQ,EAAO,KACjB,CAAC,EACDb,EAASa,EAAO,KAAK,CACvB,EAEA,SAAO,UAAMH,EAAQ,CACnB,MAAO,IAAM,KACb,QAAS,IAAM,GAAAI,QAAA,cAACC,EAAA,CAAQ,KAAMV,EAAE,iBAAiB,EAAG,EACpD,QAAS,CAAC,CAAE,OAAQ,CAACW,EAAeC,CAAa,CAAE,IAAM,CACvD,IAAMC,EAAyBF,GAAiBC,EAC1CE,EAAiBjB,EAAM,SAAW,EAExC,OACE,GAAAY,QAAA,cAACM,EAAA,CACC,MAAOf,EAAE,wBAAwB,EACjC,QAAS,CACP,CACE,aAAcc,EACVE,EAAyB,SAAS,CAChC,OAAQhB,EAAE,2BAA2B,CACvC,CAAC,EACDgB,EAAyB,QAAQ,EACrC,MAAOhB,EAAE,qCAAqC,EAC9C,MAAO,sBACT,EACA,CACE,MAAOA,EAAE,sCAAsC,EAC/C,MAAO,kBACP,aAAca,EACVG,EAAyB,SAAS,CAChC,OAAQhB,EAAE,gDAAiD,CACzD,MAAOY,CACT,CAAC,CACH,CAAC,EACDI,EAAyB,QAAQ,CACvC,CACF,EACA,SAAUT,EACZ,CAEJ,CACF,CAAC,CACH,EE7EAU,IAAA,IAAAC,EAAkB,SAElBC,GAAsB,SCFtBC,IACA,IAAAC,EAAkB,SCDlBC,ICAAC,IAAA,IAAAC,GAAwB,SCAxBC,ICAAC,IAEO,IAAMC,GAAsBC,EAAE,OACnCA,EAAE,OAAO,CACP,gBAAiBA,EAAE,OAAO,EAAE,SAAS,EACrC,YAAaA,EAAE,OAAO,CAAE,QAASA,EAAE,QAAQ,CAAE,CAAC,EAAE,SAAS,CAC3D,CAAC,CACH,EDHO,IAAMC,EAAN,KAA4B,CACjC,YAA6BC,EAAwB,CAAxB,gBAAAA,CAAyB,CAE/C,eAAiB,MAAO,CAC7B,WAAAC,EACA,MAAAC,CACF,IAGM,CACJ,GAAI,CACF,GAAM,CAAE,KAAAC,CAAK,EAAI,MAAM,KAAK,WAAW,QAAQ,CAC7C,IAAK,iDAAiDF,CAAU,EAClE,CAAC,EAEKG,EAAgBC,GAAoB,MAAMF,CAAI,EAMpD,OAJoB,OAAO,OAAOC,CAAa,EAAE,KAC9CE,GAASA,EAAK,kBAAoBJ,GAAS,CAACI,EAAK,aAAa,OACjE,CAGF,OAASC,EAAG,CACV,MAAM,IAAIC,EAAS,CACjB,KAAMC,EAAa,4BAA4B,EAC/C,MAAOF,CACT,CAAC,CACH,CACF,CACF,ED7BO,SAASG,GAAkD,CAChE,IAAMC,EAAaC,EAAc,CAAE,KAAM,SAAU,CAAC,EACpD,SAAO,YAAQ,IAAM,IAAIC,EAAsBF,CAAU,EAAG,CAACA,CAAU,CAAC,CAC1E,CFDA,IAAAG,EAAuC,SKNvCC,IAAA,IAAAC,EAAkB,SAYX,IAAMC,GAAyB,CAAC,CAAE,OAAAC,EAAQ,MAAAC,CAAM,IAAM,CAC3D,GAAM,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvBC,EAAKC,EAAkB,EAE7B,OAAAC,GAAS,MAAOC,EAAOC,IAAQ,CACzBA,EAAI,SACNJ,EAAG,UAAU,CACX,SAAUF,EAAE,0CAA0C,EACtD,IAAK,QACL,OAAQ,qBACV,CAAC,EACD,MAAMO,GACJ,uDAAuDT,CAAM,UAAUC,CAAK,8BAC9E,EAEJ,CAAC,EAGC,EAAAS,QAAA,gBAAAA,QAAA,cACE,EAAAA,QAAA,cAACC,EAAA,CAAM,QAAQ,8BAA8B,EAC7C,EAAAD,QAAA,cAACC,EAAA,CACC,QAAQ,2CACR,WAAY,CAAC,EAAAD,QAAA,cAACE,GAAA,CAAI,MAAM,QAAQ,CAAE,EACpC,CACF,CAEJ,ELnBO,IAAMC,MAAiB,WAAQ,CACpC,QAAS,CAAC,EACV,SAAU,CAAC,CACb,CAAC,EAED,SAASC,GAAaC,EAAgB,CACpC,OACEA,GACA,OAAOA,GAAU,UACjB,SAAUA,GACVA,EAAM,OAAS,YAEnB,CAEO,IAAMC,EAAqC,CAAC,CACjD,MAAAC,EACA,KAAAC,EACA,SAAAC,EACA,QAAAC,CACF,IAAM,CACJ,GAAM,CAAE,eAAAC,CAAe,EAAIC,EAAyB,EAE9C,CAAE,OAAAC,CAAO,EAAIC,EACjB,MAAO,CAAE,OAAAC,CAAO,IAAM,CACpB,GAAM,CAAE,4BAAAC,CAA4B,EAAIC,EAAiB,EAEzD,GAAI,CACF,aAAMC,GAAS,IAAMP,EAAe,CAAE,WAAYH,EAAK,GAAI,MAAAD,CAAM,CAAC,EAAG,CACnE,SAAUS,GAA+B,IACzC,QAAS,CACP,aAAc,GAAK,IAAO,EAC1B,OAAAD,CACF,CACF,CAAC,EAEMZ,GAAe,QAAQ,CAChC,OAASE,EAAO,CACd,GAAIA,aAAiBc,GACnB,MAAM,IAAIC,EAAS,CACjB,KAAMC,EAAa,qBAAqB,EACxC,MAAOhB,CACT,CAAC,EAGH,GAAID,GAAaC,CAAK,EACpB,OAAOF,GAAe,SAAS,EAGjC,MAAME,CACR,CACF,EACA,CAAC,EACD,CACE,QAAAK,EACA,UAAYY,GAAW,IACjB,UAAOA,EAAQnB,GAAe,OAAO,GACvCM,EAAS,CAEb,CACF,CACF,EAEA,SAAO,SAAMI,EAAQ,CACnB,MAAO,IAAM,KACb,QAAS,IAAM,EAAAU,QAAA,cAACC,GAAA,CAAY,OAAQhB,EAAK,GAAI,MAAOD,EAAO,EAC3D,QAAS,IACP,EAAAgB,QAAA,cAACE,GAAA,CAAI,aAAc,EAAG,WAAY,IAChC,EAAAF,QAAA,cAACG,EAAA,KACC,EAAAH,QAAA,cAACI,GAAA,IAAY,EAAG,IAChB,EAAAJ,QAAA,cAACG,EAAA,CAAK,KAAK,qBACR,IACD,EAAAH,QAAA,cAACK,EAAA,CAAM,QAAQ,kBAAkB,EAAG,GACtC,EAAQ,IACR,EAAAL,QAAA,cAACK,EAAA,CAAM,QAAQ,4CAA4C,CAC7D,CACF,CAEJ,CAAC,CACH,EDjFO,IAAMC,GAA2B,CAAC,CACvC,OAAAC,EACA,MAAAC,EACA,SAAAC,EACA,QAAAC,CACF,IAAM,CACJ,GAAM,CAAE,EAAAC,CAAE,EAAIC,EAAe,EAE7B,SAAO,UAAML,EAAQ,CACnB,aAAc,IAAM,KACpB,MAAO,IAAM,KACb,QAAS,IAAM,EAAAM,QAAA,cAACC,EAAA,CAAQ,KAAMH,EAAE,yBAAyB,EAAG,EAC5D,QAAS,CAAC,CAAE,OAAAI,CAAO,IACjB,EAAAF,QAAA,gBAAAA,QAAA,cACE,EAAAA,QAAA,cAACG,EAAA,CACC,QAAQ,0BACR,WAAY,CAAC,EAAAH,QAAA,cAACI,EAAA,CAAK,KAAK,UAAU,KAAI,GAAC,CAAE,EACzC,OAAQ,CAAE,KAAMF,EAAO,WAAY,EACrC,EACA,EAAAF,QAAA,cAACK,EAAA,CACC,MAAOV,EACP,KAAMO,EACN,SAAU,IAAMN,EAASM,CAAM,EAC/B,QAASL,EACX,CACF,CAEJ,CAAC,CACH,EO5CA,IAAAS,GAAA,CACE,kBAAmB,aACnB,kBAAmB,UACnB,yBAA0B,0BAC1B,uCAAwC,gCACxC,gDAAiD,mEACjD,sCAAuC,wBACvC,4BAA6B,iBAC7B,0BAA2B,wCAC3B,0BAA2B,iEAC3B,yBAA0B,cAC1B,8BAA+B,8EAC/B,2CAA4C,wDAC5C,4CAA6C,oCAC/C,ECdAC,IAAA,IAAAC,EAAgC,SAIhC,IAAAC,GAAuB,SCJvBC,IAAA,IAAAC,EAAmC,SAa5B,IAAMC,GAA4B,CAAC,CAAE,SAAAC,EAAU,MAAAC,CAAM,IAAM,CAChE,GAAM,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvBC,EAAKC,EAAkB,EAEvBC,KAAe,eAClBC,GAA+B,CAC9BH,EAAG,oBAAoB,CACrB,SAAUF,EAAE,wBAAwB,EACpC,OAAQK,EAAO,KACjB,CAAC,EACDP,EAASO,EAAO,KAAK,CACvB,EACA,CAACH,EAAIJ,EAAUE,CAAC,CAClB,EAEA,OACE,EAAAM,QAAA,cAACC,EAAA,CACC,MAAOP,EAAE,wBAAwB,EACjC,QAASD,EAAM,IAAKS,IAAU,CAC5B,IAAKA,EAAK,GACV,MAAOA,EAAK,YACZ,YAAaA,EAAK,QAClB,MAAOA,CACT,EAAE,EACF,SAAUJ,EACZ,CAEJ,EDxBO,IAAMK,GAAqB,CAAC,CACjC,MAAAC,EACA,MAAAC,EACA,SAAAC,EACA,QAAAC,CACF,IAAa,CACX,GAAM,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvB,CAAE,eAAAC,CAAe,EAAIC,EAAyB,EAC9C,CAACC,EAAoBC,CAAqB,KAAI,YAClD,IACF,EACMC,EAAoBC,EACxB,CAACC,EAAGC,IAAeP,EAAe,CAAE,WAAYO,EAAK,GAAI,MAAAZ,CAAM,CAAC,EAChE,CACE,QAAAE,CACF,CACF,EAEA,eAAeW,EAAiBD,EAAY,CACtB,MAAMH,EAAkB,QAAQG,CAAI,EAEtDX,EAASW,CAAI,EAEbJ,EAAsBI,CAAI,CAE9B,CAEA,OACE,EAAAE,QAAA,gBAAAA,QAAA,cACE,EAAAA,QAAA,cAACC,GAAA,CAAe,SAAUF,EAAkB,MAAOd,EAAO,KACzD,WAAOU,EAAkB,OAAQ,SAAS,GACzC,EAAAK,QAAA,cAACE,EAAA,CAAQ,KAAMb,EAAE,iBAAiB,EAAG,EAEtCI,GACC,EAAAO,QAAA,cAACG,EAAA,CACC,MAAOjB,EACP,KAAMO,EACN,SAAU,IAAMN,EAASM,CAAkB,EAC3C,QAASL,EACX,CAEJ,CAEJ,EXpCO,IAAMgB,GAA0B,CAAC,CACtC,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,QAAAC,CACF,IAAM,CACJ,GAAM,CAACC,EAAUC,CAAW,KAAI,YAA0B,IAAI,EACxD,CAAE,cAAAC,CAAc,EAAIC,EAAmB,EACvCC,EAAiBC,EAAkB,EAEnC,CAAE,OAAAC,CAAO,EAAIC,EACjB,IACEH,EAAe,WAAW,CACxB,MAAO,CACL,aAAc,CACZ,MAAO,GACT,CACF,CACF,CAAC,EACH,CAAC,EACD,CACE,QAAAL,CACF,CACF,EAEMS,EAAaC,EAAiB,IAAMP,EAAc,EAAG,CACzD,QAAAH,CACF,CAAC,EAED,SAASW,EAAqBV,EAAoB,CAChDC,EAAYD,CAAQ,EAChBA,IAAa,mBACVQ,EAAW,QAAQ,CAE5B,CAEA,OACE,EAAAG,QAAA,cAACC,GAAA,CAAW,MAAOf,GACjB,EAAAc,QAAA,cAACE,GAAA,CAAa,SAAUC,OACrB,UAAMR,EAAQ,CACb,MAAO,IAAM,KACb,QAAS,IAAM,EAAAK,QAAA,cAACI,EAAA,CAAQ,KAAM,EAAAJ,QAAA,cAACK,EAAA,CAAM,QAAQ,kBAAkB,EAAI,EACnE,QAAS,CAAC,CAAE,OAAQC,CAAM,IACxB,EAAAN,QAAA,gBAAAA,QAAA,cACE,EAAAA,QAAA,cAACO,GAAA,CACC,SAAUR,EACV,QAASX,EACT,MAAOkB,EACT,EACCjB,IAAa,mBACZ,EAAAW,QAAA,cAACQ,GAAA,CACC,OAAQX,EAAW,OACnB,MAAOZ,EACP,SAAUE,EACV,QAASC,EACX,EAEDC,IAAa,wBACZ,EAAAW,QAAA,cAACS,GAAA,CACC,MAAOH,EACP,MAAOrB,EACP,SAAUE,EACV,QAASC,EACX,CAEJ,CAEJ,CAAC,CACH,CACF,CAEJ,EF9EO,IAAMsB,GAA2B,CAAC,CAAE,MAAAC,EAAO,SAAAC,CAAS,IAAM,CAC/D,IAAMC,EAAOC,EAAQ,EACf,CAAE,EAAAC,CAAE,EAAIC,EAAe,EACvB,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAC5BC,EAAWC,EAAY,EAE7B,OACE,EAAAC,QAAA,gBAAAA,QAAA,iBACG,SAAMV,EAAO,CACZ,iBAAe,YACb,EAAAU,QAAA,cAACC,GAAA,CAAM,KAAK,WAAWP,EAAE,+BAA+B,CAAE,CAC5D,EACA,SAAU,CAAC,CAAE,GAAAQ,CAAG,IACd,EAAAF,QAAA,cAACC,GAAA,CAAM,KAAK,SAASP,EAAE,4BAA6B,CAAE,GAAAQ,CAAG,CAAC,CAAE,CAEhE,CAAC,EACD,EAAAF,QAAA,cAACG,GAAA,CACC,MAAOP,EAAM,OAAO,MACpB,SAAUE,EACV,SAAUP,EACV,QAASC,EACX,CACF,CAEJ,EDvBO,IAAMY,GAGR,CAAC,CAAE,SAAAC,EAAU,OAAAC,CAAO,IAAM,CAC7B,IAAMC,EAAOC,EAAQ,EACf,CACJ,MAAO,CAAE,cAAAC,CAAc,CACzB,EAAIC,EAAgB,EACdC,EAAgBC,GAAY,EAC5BC,EAAiBC,EAAkB,EACnC,CAAE,EAAAC,CAAE,EAAIC,EAAe,EAEvB,CAAE,OAAAC,EAAQ,MAAAC,CAAM,EAAIC,EACxB,SACEC,GAAsB,CACpB,cAAAX,EACA,eAAAI,EACA,OAAAP,EACA,cAAAK,CACF,CAAC,EACH,CAAC,CACH,EAEMU,KAAU,eACd,MAAOC,GAAe,CACpB,GAAI,CACF,MAAMC,GAAcd,EAAe,CAAE,OAAQa,EAAK,EAAG,CAAC,EACtDJ,EAAM,CAAE,OAAQM,GAAY,SAAS,CAAE,KAAAF,CAAK,CAAC,CAAE,CAAC,CAClD,MAAQ,CACN,MAAM,IAAIG,EAAS,CACjB,KAAMC,EAAa,4BAA4B,CAC7C,KAAMC,EACR,CAAC,CACH,CAAC,CACH,CACF,EACA,CAACT,EAAOT,CAAa,CACvB,EAEMmB,KAAsB,eACzBN,GAAeD,EAAQC,CAAI,EAAE,MAAMf,CAAI,EACxC,CAACA,EAAMc,CAAO,CAChB,EAEA,SAAO,UAAMJ,EAAQ,CACnB,MAAO,IAAM,KACb,QAAS,IAAM,EAAAY,QAAA,cAACC,EAAA,CAAQ,KAAMf,EAAE,mCAAmC,EAAG,EACtE,QAAS,CAAC,CAAE,OAAQgB,CAAM,OACjB,UAAMA,EAAO,CAClB,cAAgBC,GACd,EAAAH,QAAA,cAACI,GAAA,CAAc,MAAOD,EAAS,SAAUJ,EAAqB,EAEhE,SAAWI,GACT,EAAAH,QAAA,cAACI,GAAA,CAAc,MAAOD,EAAS,SAAUJ,EAAqB,EAEhE,SAAU,CAAC,CAAE,KAAAN,CAAK,IAChB,EAAAO,QAAA,cAACK,GAAc,SAAd,CACC,MAAO,CACL,KAAAZ,EACA,QAAAD,CACF,GAEC,OAAOhB,GAAa,WAAaA,EAASiB,CAAI,EAAIjB,CACrD,CAEJ,CAAC,CAEL,CAAC,CACH,EgBrFA8B,IAAA,IAAAC,GAAwB,SCAxBC,ICOAC,IAKA,IAAMC,GAAyB,CAAA,EACzBC,GAA0B,CAAA,EAIhC,SAASC,GACPC,EAA8C,CAE9C,IAAMC,EAAmB,CACvB,8BAA+B,CAC7B,CACE,QAAS,4BACT,SAAU,KAGd,mBAAoB,CAClB,CACE,QAAS,6BACT,SAAU,KAGd,WAAY,CACV,CACE,QAAS,6BACT,SAAU,KAGd,uBAAwB,CACtB,CACE,QAAS,6BACT,SAAU,MAKhB,OAAOC,GAAW,OAAO,OAAOF,EAAM,CAAE,iBAAgBC,CAAA,CAAE,CAAC,CAC7D,CAoCM,SAAUE,GACdC,EAA8B,CAExB,IAAAC,EAAuCC,EAC3CC,GACA,CAAA,CAAE,EAFYC,EAAKH,EAAA,OAAYI,EAAOJ,EAAA,SAItBK,EAAYJ,EAAWK,GAAyB,CAAA,CAAE,EAAC,SAErE,SAASC,EAAiBP,EAAa,KAAXQ,EAAIR,EAAA,KACxBS,EAAiBN,EAAMJ,CAAO,EAC9BW,EAAW,CACf,WAAY,iDACZ,OAAQ,OACR,UAAW,gDACX,IAAKC,GAAsC,CACzC,UAAW,qBACX,KAAMF,EACN,KAAID,EACL,EACD,KAAMC,EACN,kBAAmBJ,GAGrB,OAAOK,CACT,CAEA,OAAAH,EAAiB,QAAUH,EAC3BG,EAAiB,eAAiB,GAC3BA,CACT,CClHAK,IAEO,IAAMC,GAAuBC,EAAE,OAAO,CAC3C,aAAcA,EAAE,OAAO,CACrB,GAAIA,EAAE,OAAO,CACf,CAAC,CACH,CAAC,EFMM,IAAMC,EAAN,KAAyB,CAG9B,YAA6BC,EAAwB,CAAxB,gBAAAA,EAC3B,GAAM,CAAE,gBAAAC,CAAgB,EAAIC,EAAiB,EAE7C,KAAK,aAAe,CAClB,QAAS,EACT,WAAYD,EACZ,WAAY,EAAI,GAClB,CACF,CAViB,aAYV,eAAiB,MAAO,CAC7B,MAAAE,EACA,OAAAC,EACA,UAAAC,EACA,eAAAC,CACF,IAKM,CACJ,GAAI,CACF,GAAM,CAAE,KAAAC,CAAK,EAAI,MAAMC,GACrB,IACE,KAAK,WAAW,QACdC,GAAe,CACb,aAAc,CACZ,GAAIH,EACJ,MAAAH,EACA,OAAAC,EACA,UAAAC,CACF,CACF,CAAC,CACH,EACF,KAAK,YACP,EAEA,OAAOK,GAAqB,MAAMH,CAAI,EAAE,YAC1C,OAASI,EAAO,CACd,MAAIC,GAAYD,CAAK,GAAKA,EAAM,UAAU,SAAW,IAEjDA,EAAM,SAAS,MAAM,SAAS,kBAAkB,OAChD,6BAEM,IAAIE,EAAS,CACjB,KAAMC,EAAa,qBAAqB,CAAE,OAAAV,CAAO,CAAC,EAClD,MAAOO,CACT,CAAC,EAGG,IAAIE,EAAS,CACjB,KAAMC,EAAa,oBAAoB,CAAE,MAAAX,CAAM,CAAC,EAChD,MAAOQ,CACT,CAAC,EAGG,IAAIE,EAAS,CACjB,KAAMC,EAAa,2BAA2B,EAC9C,MAAOH,CACT,CAAC,CACH,CACF,CACF,EDzEO,SAASI,IAAwB,CACtC,IAAMC,EAAaC,EAAc,CAAE,KAAM,YAAa,CAAC,EACvD,SAAO,YAAQ,IAAM,IAAIC,EAAmBF,CAAU,EAAG,CAACA,CAAU,CAAC,CACvE,CIPAG,ICAAC,IAAA,IAAAC,GAAuB,SC6BvBC,IAAA,IAAYC,GAAZ,SAAYA,EAAI,CACdA,EAAA,aAAA,eACAA,EAAA,gBAAA,iBACF,GAHYA,IAAAA,EAAI,CAAA,EAAA,EDvBT,SAASC,GAAoBC,EAAqB,CACvD,IAAMC,EAAuBD,EAAM,WAAW,UAC5C,WAAOE,GAAmB,cAAc,CAC1C,EAEA,OAAID,EAAqB,SAAW,EAC3B,KAGFA,EAAqB,OAC1B,CAACE,EAAKC,IAAc,CAClB,IAAMC,EAAiBD,EAAU,gBAAkB,CAAC,EAEpD,MAAO,CACL,GAAGD,EACH,CAACC,EAAU,EAAE,EAAG,CACd,KAAME,EAAK,gBACX,YAAaF,EAAU,GACvB,sBAAuB,CAAE,WAAYC,CAAe,CACtD,CACF,CACF,EACA,CAAC,CACH,CACF,CE9BAE,ICAAC,IAAA,IAAAC,GAA4B,SAC5BC,GAAuB,SAIhB,SAASC,IAAc,CAC5B,GAAM,CAAE,MAAAC,CAAM,EAAIC,EAAgB,EAE5BC,KAAmB,gBACtBC,GACCH,EAAM,WAAW,KAAMI,GACrBA,EAAU,UAAU,QAAK,WAAOD,EAAa,IAAI,CAAC,CACpD,EACF,CAACH,EAAM,UAAU,CACnB,EAEMK,KAAoB,gBACvBF,GACCH,EAAM,WAAW,MACdI,GACCA,EAAU,UAAU,QAAK,WAAOD,EAAa,IAAI,CAAC,GAClDC,EAAU,UAAU,SAAW,CACnC,EACF,CAACJ,EAAM,UAAU,CACnB,EAEA,MAAO,CACL,iBAAAE,EACA,kBAAAG,CACF,CACF","names":["init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","init_esm_shims","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","siteSelectorBiEvents","biLogger","question","action","key","additionalInfo","wixCliAction","answer","wixCliAppFlowStepsAnswers","useSiteSelectorBi","useBiLogger","SiteTypeSelect","onSubmit","onError","sites","bi","useSiteSelectorBi","t","useTranslation","getDevSitesCount","getDevSitesLimit","useDevCenterClient","status","useAsync","handleSubmit","option","React","Spinner","devSitesCount","devSitesLimit","isDevSitesLimitReached","userHasNoSites","SelectInput","SelectOptionAvailability","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","init_esm_shims","init_esm_shims","import_react","init_esm_shims","init_esm_shims","clientSpecMapSchema","z","MetasiteManagerClient","httpClient","metaSiteId","appId","data","clientSpecMap","clientSpecMapSchema","spec","e","CliError","CliErrorCode","useMetasiteManagerClient","httpClient","useHttpClient","MetasiteManagerClient","import_variant","init_esm_shims","import_react","OpenBrowser","siteId","appId","t","useTranslation","bi","useSiteSelectorBi","use_input_default","input","key","openBrowser","React","Trans","Key","AppInstallData","isAbortError","error","WaitForAppToBeInstalled","appId","site","onSubmit","onError","isAppInstalled","useMetasiteManagerClient","status","useAsync","signal","appInstallationPollInterval","getTestOverrides","pWaitFor","TimeoutError","CliError","CliErrorCode","result","React","OpenBrowser","Box_default","Text","SuccessIcon","Trans","CreateDevSite","status","appId","onSubmit","onError","t","useTranslation","React","Spinner","result","Trans","Text","WaitForAppToBeInstalled","messages_default","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","SiteListSelect","onSubmit","sites","t","useTranslation","bi","useSiteSelectorBi","handleSubmit","option","React","SelectInput","site","SelectExistingSite","sites","appId","onSubmit","onError","t","useTranslation","isAppInstalled","useMetasiteManagerClient","siteToInstallAppOn","setSiteToInstallAppOn","checkAppInstalled","useAsyncCallback","_","site","handleSelectSite","React","SiteListSelect","Spinner","WaitForAppToBeInstalled","SiteSelector","appId","biLogger","onSubmit","onError","siteType","setSiteType","createDevSite","useDevCenterClient","siteListClient","useSiteListClient","status","useAsync","createSite","useAsyncCallback","handleSelectSiteType","React","BiProvider","I18nProvider","messages_default","Spinner","Trans","sites","SiteTypeSelect","CreateDevSite","SelectExistingSite","ResolveSiteId","state","onSubmit","exit","useExit","t","useTranslation","model","useProjectModel","biLogger","useBiLogger","React","Alert","id","SiteSelector","SiteIdProvider","children","siteId","exit","useExit","projectFolder","useProjectModel","writeDebugLog","useDebugLog","siteListClient","useSiteListClient","t","useTranslation","status","merge","useAsync","resolveConfiguredSite","setSite","site","saveAppConfig","SiteIdState","CliError","CliErrorCode","APP_CONFIG_PATH","handleResolveSiteId","React","Spinner","state","variant","ResolveSiteId","SiteIdContext","init_esm_shims","import_react","init_esm_shims","init_esm_shims","_createOverrideRequest","_createOverrideResponse","resolveWixCliV1SiteOverrideServiceUrl","opts","domainToMappings","resolveUrl","createOverride","payload","_a","serializer","_createOverrideRequest","toReq","fromReq","fromRes","_createOverrideResponse","__createOverride","host","serializedData","metadata","resolveWixCliV1SiteOverrideServiceUrl","init_esm_shims","createOverrideSchema","z","SiteOverrideClient","httpClient","minRetryTimeout","getTestOverrides","appId","siteId","overrides","siteOverrideId","data","pRetry","createOverride","createOverrideSchema","error","isHttpError","CliError","CliErrorCode","useSiteOverrideClient","httpClient","useHttpClient","SiteOverrideClient","init_esm_shims","init_esm_shims","import_variant","init_esm_shims","Type","createSiteOverrides","model","componentsToOverride","DevCenterComponent","acc","component","paramsOverride","Type","init_esm_shims","init_esm_shims","import_react","import_variant","usePlatform","model","useProjectModel","isPlatformExists","platformType","component","hasSinglePlatform"]}
@@ -0,0 +1,365 @@
1
+ // src/utils.ts
2
+ import { dirname, sep } from "node:path";
3
+ import { AppStrategy } from "@wix/sdk";
4
+ var supportedMethods = ["GET", "POST", "PUT", "DELETE"];
5
+ function deriveTagName(elementPath) {
6
+ return dirname(elementPath).split(sep).at(-1);
7
+ }
8
+ function createAppStrategy(opts = {}) {
9
+ return AppStrategy({
10
+ ...opts,
11
+ appId: import.meta.env.APP_ID,
12
+ appSecret: import.meta.env.APP_SECRET,
13
+ publicKey: import.meta.env.PUBLIC_KEY
14
+ });
15
+ }
16
+ function isMethodSupported(method) {
17
+ return supportedMethods.includes(method);
18
+ }
19
+ function isAPI(value) {
20
+ return typeof value === "object" && value !== null && supportedMethods.some((method) => method in value);
21
+ }
22
+ function formatError(error) {
23
+ if (import.meta.env.DEV && error instanceof Error) {
24
+ return error.stack;
25
+ }
26
+ return "internal server error";
27
+ }
28
+
29
+ // src/apiHandler.ts
30
+ var ApiHandler = class {
31
+ constructor(apis2, callsHandler) {
32
+ this.callsHandler = callsHandler;
33
+ this.apis = Object.entries(apis2).reduce(
34
+ (acc, [key, value]) => {
35
+ return {
36
+ ...acc,
37
+ [deriveTagName(key)]: value
38
+ };
39
+ },
40
+ {}
41
+ );
42
+ }
43
+ apis;
44
+ async handle(name, request) {
45
+ const { method } = request;
46
+ if (!isMethodSupported(method)) {
47
+ return null;
48
+ }
49
+ if (!name) {
50
+ return null;
51
+ }
52
+ const mod = this.apis[name];
53
+ if (!mod) {
54
+ return null;
55
+ }
56
+ const api = await mod();
57
+ if (!isAPI(api)) {
58
+ return null;
59
+ }
60
+ const handler = api[method];
61
+ if (!handler) {
62
+ return null;
63
+ }
64
+ if (!this.callsHandler) {
65
+ throw new Error("passing a `callsHandler` is required for running APIs");
66
+ }
67
+ const accessToken = request.headers.get("Authorization");
68
+ return this.callsHandler.run(accessToken, null, () => handler(request));
69
+ }
70
+ };
71
+
72
+ // src/eventsHandler.ts
73
+ import { createClient } from "@wix/sdk";
74
+ var EventHandler = class {
75
+ constructor(events2, callsHandler) {
76
+ this.events = events2;
77
+ this.callsHandler = callsHandler;
78
+ this.wixClient = createClient({
79
+ auth: createAppStrategy()
80
+ });
81
+ }
82
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
+ wixClient;
84
+ registeredEvents = /* @__PURE__ */ new Map();
85
+ async initialize() {
86
+ this.wixClient.enableContext("global");
87
+ for (const [eventFilename, loadEventFile] of Object.entries(this.events)) {
88
+ const unbind = this.wixClient.webhooks.on(
89
+ "registered",
90
+ (eventDefinition) => {
91
+ const existingRegisteredEvents = this.registeredEvents.get(eventFilename) ?? [];
92
+ this.registeredEvents.set(eventFilename, [
93
+ ...existingRegisteredEvents,
94
+ eventDefinition.type
95
+ ]);
96
+ }
97
+ );
98
+ try {
99
+ await loadEventFile();
100
+ } finally {
101
+ unbind();
102
+ }
103
+ }
104
+ }
105
+ async handle(request) {
106
+ if (!this.callsHandler) {
107
+ throw new Error(
108
+ "passing a `callsHandler` is required for running events"
109
+ );
110
+ }
111
+ const processedEvent = await this.wixClient.webhooks.parseRequest(request);
112
+ return this.callsHandler.run(
113
+ null,
114
+ processedEvent.instanceId,
115
+ () => this.wixClient.webhooks.executeHandlers(processedEvent)
116
+ );
117
+ }
118
+ getRegisteredEvents() {
119
+ const entries = Array.from(this.registeredEvents.entries());
120
+ return entries.reduce(
121
+ (acc, [filename, registeredEvents]) => {
122
+ return {
123
+ ...acc,
124
+ [filename]: registeredEvents
125
+ };
126
+ },
127
+ {}
128
+ );
129
+ }
130
+ };
131
+
132
+ // src/servicePluginHandler.ts
133
+ import { createClient as createClient2 } from "@wix/sdk";
134
+ var ServicePluginHandler = class {
135
+ constructor(servicePlugins2, callsHandler) {
136
+ this.servicePlugins = servicePlugins2;
137
+ this.callsHandler = callsHandler;
138
+ this.wixClient = createClient2({
139
+ auth: createAppStrategy()
140
+ });
141
+ }
142
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
143
+ wixClient;
144
+ registeredServicePlugins = /* @__PURE__ */ new Map();
145
+ async initialize() {
146
+ this.wixClient.enableContext("global");
147
+ for (const [servicePluginFilename, loadServicePluginFile] of Object.entries(
148
+ this.servicePlugins
149
+ )) {
150
+ const unbind = this.wixClient.servicePlugins.on(
151
+ "registered",
152
+ (servicePluginDefinition) => {
153
+ this.registeredServicePlugins.set(
154
+ servicePluginFilename,
155
+ servicePluginDefinition.componentType
156
+ );
157
+ }
158
+ );
159
+ try {
160
+ await loadServicePluginFile();
161
+ } finally {
162
+ unbind();
163
+ }
164
+ }
165
+ }
166
+ getRegisteredServicePlugins() {
167
+ const entries = Array.from(this.registeredServicePlugins.entries());
168
+ return entries.reduce(
169
+ (acc, [filename, registeredServicePlugin]) => {
170
+ return {
171
+ ...acc,
172
+ [filename]: registeredServicePlugin
173
+ };
174
+ },
175
+ {}
176
+ );
177
+ }
178
+ async handle(request) {
179
+ if (!this.callsHandler) {
180
+ throw new Error(
181
+ "passing a `callsHandler` is required for running service plugins"
182
+ );
183
+ }
184
+ const processedRequest = await this.wixClient.servicePlugins.parseRequest(
185
+ request
186
+ );
187
+ const { instanceId } = processedRequest.metadata;
188
+ const servicePluginData = await this.callsHandler.run(
189
+ null,
190
+ instanceId,
191
+ () => this.wixClient.servicePlugins.executeHandler(
192
+ processedRequest,
193
+ request.url
194
+ )
195
+ );
196
+ return Response.json(servicePluginData);
197
+ }
198
+ };
199
+
200
+ // src/callsHandler.ts
201
+ import { AsyncLocalStorage } from "node:async_hooks";
202
+ import { createClient as createClient3 } from "@wix/sdk";
203
+
204
+ // ../cli-test-overrides/src/unsafe.ts
205
+ import process from "node:process";
206
+
207
+ // ../cli-test-overrides/src/constants.ts
208
+ var TEST_OVERRIDES_ENV_VAR = "WIX_CLI_TEST_OVERRIDES";
209
+
210
+ // ../cli-test-overrides/src/unsafe.ts
211
+ function getTestOverrides() {
212
+ const rawOverrides = process.env[TEST_OVERRIDES_ENV_VAR];
213
+ if (!rawOverrides) {
214
+ return {};
215
+ }
216
+ return JSON.parse(rawOverrides);
217
+ }
218
+
219
+ // src/callsHandler.ts
220
+ var CallsHandler = class {
221
+ wixClient;
222
+ elevatedWixClient;
223
+ asyncLocalStorage = new AsyncLocalStorage();
224
+ constructor() {
225
+ this.wixClient = createClient3({
226
+ auth: {
227
+ getAuthHeaders: (host) => {
228
+ const store = this.asyncLocalStorage.getStore();
229
+ if (!store || !store.auth) {
230
+ throw new Error("Cannot find an authentication strategy");
231
+ }
232
+ return store.auth.getAuthHeaders(host);
233
+ }
234
+ }
235
+ });
236
+ this.elevatedWixClient = createClient3({
237
+ auth: {
238
+ getAuthHeaders: async (host) => {
239
+ const store = this.asyncLocalStorage.getStore();
240
+ if (!store) {
241
+ throw new Error("Cannot find an authentication strategy");
242
+ }
243
+ if (store.elevatedAuth) {
244
+ return store.elevatedAuth.getAuthHeaders(host);
245
+ }
246
+ if (!store.auth) {
247
+ throw new Error("Cannot find an elevated authentication strategy");
248
+ }
249
+ return store.auth.elevated().then((elevatedAuth) => elevatedAuth.getAuthHeaders(host));
250
+ }
251
+ }
252
+ });
253
+ }
254
+ async initialize() {
255
+ this.wixClient.enableContext("global");
256
+ this.elevatedWixClient.enableContext("global", { elevated: true });
257
+ }
258
+ async run(accessToken, instanceId, fn) {
259
+ const { sdkAuthServerBaseUrl: authServerBaseUrl } = getTestOverrides();
260
+ const auth = accessToken ? createAppStrategy({ accessToken, authServerBaseUrl }) : null;
261
+ const elevatedAuth = instanceId ? createAppStrategy({ instanceId, authServerBaseUrl }) : null;
262
+ return this.asyncLocalStorage.run({ auth, elevatedAuth }, fn);
263
+ }
264
+ };
265
+
266
+ // src/initialize.ts
267
+ var logError = (error) => {
268
+ console.error(error instanceof Error ? error.stack : error);
269
+ };
270
+ async function initialize({
271
+ apis: apis2,
272
+ events: events2,
273
+ servicePlugins: servicePlugins2
274
+ }) {
275
+ const callsHandler = new CallsHandler();
276
+ const apiHandler = new ApiHandler(apis2, callsHandler);
277
+ const eventsHandler = new EventHandler(events2, callsHandler);
278
+ const servicePluginHandler = new ServicePluginHandler(
279
+ servicePlugins2,
280
+ callsHandler
281
+ );
282
+ await eventsHandler.initialize();
283
+ await servicePluginHandler.initialize();
284
+ await callsHandler.initialize();
285
+ return {
286
+ async fetch(request) {
287
+ if (request.method === "OPTIONS") {
288
+ return new Response("{}", {
289
+ status: 200,
290
+ headers: {
291
+ "Access-Control-Allow-Origin": "*",
292
+ "Access-Control-Allow-Methods": "*",
293
+ "Access-Control-Allow-Headers": "Authorization,Content-Type"
294
+ }
295
+ });
296
+ }
297
+ const url = new URL(request.url);
298
+ const [endpointName, pathName] = url.pathname.split("/").filter(Boolean);
299
+ if (import.meta.env.DEV) {
300
+ if (endpointName === "__get-registered-events") {
301
+ return Response.json(eventsHandler.getRegisteredEvents());
302
+ }
303
+ if (endpointName === "__get-registered-service-plugins") {
304
+ return Response.json(
305
+ servicePluginHandler.getRegisteredServicePlugins()
306
+ );
307
+ }
308
+ }
309
+ if (endpointName === "service-plugins") {
310
+ return servicePluginHandler.handle(request).catch((error) => {
311
+ logError(error);
312
+ return new Response(formatError(error), { status: 500 });
313
+ });
314
+ }
315
+ if (endpointName === "webhooks") {
316
+ return eventsHandler.handle(request).then(() => {
317
+ return new Response("ok");
318
+ }).catch((error) => {
319
+ logError(error);
320
+ return new Response(formatError(error), { status: 500 });
321
+ });
322
+ }
323
+ if (endpointName === "functions") {
324
+ const response = await apiHandler.handle(pathName, request).catch((error) => {
325
+ logError(error);
326
+ return new Response(formatError(error), { status: 500 });
327
+ }).then((response2) => {
328
+ if (response2) {
329
+ response2.headers.append("Access-Control-Allow-Origin", "*");
330
+ response2.headers.append("Access-Control-Allow-Methods", "*");
331
+ response2.headers.append("Access-Control-Allow-Headers", "*");
332
+ return response2;
333
+ }
334
+ });
335
+ if (response) {
336
+ return response;
337
+ }
338
+ }
339
+ return new Response("not found", { status: 404 });
340
+ }
341
+ };
342
+ }
343
+
344
+ // src/globPatterns.ts
345
+ var apis = import.meta.glob("/src/backend/api/*/api.ts", {
346
+ eager: false
347
+ });
348
+ var events = import.meta.glob("/src/backend/events/*/event.ts", {
349
+ eager: false
350
+ });
351
+ var servicePlugins = import.meta.glob(
352
+ "/src/backend/service-plugins/*/*/plugin.ts",
353
+ {
354
+ eager: false
355
+ }
356
+ );
357
+
358
+ // src/entry.ts
359
+ var entry_default = await initialize({ apis, events, servicePlugins });
360
+ if (import.meta.hot) {
361
+ import.meta.hot.accept();
362
+ }
363
+ export {
364
+ entry_default as default
365
+ };