@wix/cli-app 1.1.61 → 1.1.62

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-27X5XRUT.js → CreateVersionCommand-IEF6U34E.js} +15 -15
  2. package/build/{DevCommand-6HTMGZ2M.js → DevCommand-SOODXUEP.js} +438 -299
  3. package/build/DevCommand-SOODXUEP.js.map +1 -0
  4. package/build/{GenerateCommand-7IAUS6BH.js → GenerateCommand-ARNW73TM.js} +11 -10
  5. package/build/{GenerateCommand-7IAUS6BH.js.map → GenerateCommand-ARNW73TM.js.map} +1 -1
  6. package/build/{LogsCommand-WPUUN3JU.js → LogsCommand-7TW36YZX.js} +5 -5
  7. package/build/PreviewCommand-ZZKRP2GF.js +23 -0
  8. package/build/{ReleaseCommand-KTVVW67B.js → ReleaseCommand-SB2WWSVP.js} +15 -15
  9. package/build/{ServeCommand-LXJK73IU.js → ServeCommand-GZKF6AN3.js} +14 -14
  10. package/build/{build-KOJIDD4M.js → build-LHCSCFBM.js} +7 -7
  11. package/build/{chunk-ELYFHAX6.js → chunk-2DRVDGHR.js} +1 -4
  12. package/build/chunk-2DRVDGHR.js.map +1 -0
  13. package/build/{chunk-Z7MEHVBF.js → chunk-4WKSS3PU.js} +4 -4
  14. package/build/{chunk-PBUNWOQL.js → chunk-5R5H3Y2D.js} +104 -160
  15. package/build/chunk-5R5H3Y2D.js.map +1 -0
  16. package/build/{chunk-SJY44CC7.js → chunk-6IX6CDWB.js} +10335 -1852
  17. package/build/chunk-6IX6CDWB.js.map +1 -0
  18. package/build/{chunk-XBBIROHO.js → chunk-6US7335E.js} +3 -3
  19. package/build/{chunk-EL6CIFIN.js → chunk-A3FHJ4EK.js} +3 -3
  20. package/build/{chunk-LOLULZLU.js → chunk-HKX5ODUN.js} +3 -3
  21. package/build/{chunk-2GCKBITG.js → chunk-KCNEUOW2.js} +8 -8
  22. package/build/{chunk-63EMUDZG.js → chunk-KJR4P55M.js} +3 -3
  23. package/build/{chunk-A3UPTTKJ.js → chunk-KVM6MGID.js} +3 -3
  24. package/build/{chunk-KJF6LWGQ.js → chunk-LMFNRK6X.js} +2 -2
  25. package/build/{chunk-MKPZBVQD.js → chunk-LULKQBSP.js} +4574 -2552
  26. package/build/chunk-LULKQBSP.js.map +1 -0
  27. package/build/{chunk-MEDHLZDL.js → chunk-MTEB33GR.js} +3 -3
  28. package/build/{chunk-XCKLCHGL.js → chunk-PM4M3SGC.js} +10 -6
  29. package/build/chunk-PM4M3SGC.js.map +1 -0
  30. package/build/{chunk-IL6O6OIL.js → chunk-UE7LDQKD.js} +2 -2
  31. package/build/{chunk-OHF42SKC.js → chunk-UZXKDHQZ.js} +5 -5
  32. package/build/{chunk-KJRYBTZB.js → chunk-V75TFIXI.js} +5 -5
  33. package/build/{chunk-KJRYBTZB.js.map → chunk-V75TFIXI.js.map} +1 -1
  34. package/build/{chunk-S7UPYDTK.js → chunk-YW2RBPPY.js} +3 -3
  35. package/build/{chunk-QZOQAFHK.js → chunk-ZR3N5INU.js} +8 -8
  36. package/build/chunk-ZR3N5INU.js.map +1 -0
  37. package/build/cloudflare-runtime/entry.js +1 -1
  38. package/build/cloudflare-runtime/getRegisteredExtensions.js +1 -1
  39. package/build/index.js +20 -20
  40. package/build/platform-sdk/chunk-3U6QUCP3.js +2 -0
  41. package/build/platform-sdk/chunk-3U6QUCP3.js.map +1 -0
  42. package/build/platform-sdk/{chunk-FWUYJ3UR.js → chunk-FLUCZ5U6.js} +2 -2
  43. package/build/platform-sdk/chunk-VXQAZIAE.js +2 -0
  44. package/build/platform-sdk/{chunk-XYIDODIB.js.map → chunk-VXQAZIAE.js.map} +1 -1
  45. package/build/platform-sdk/chunk-ZM5O3GFB.js +2 -0
  46. package/build/platform-sdk/chunk-ZM5O3GFB.js.map +1 -0
  47. package/build/platform-sdk/dashboard.js +1 -1
  48. package/build/platform-sdk/dashboard.js.map +1 -1
  49. package/build/platform-sdk/editor.js +1 -1
  50. package/build/platform-sdk/editor.js.map +1 -1
  51. package/build/platform-sdk/sdk-context.js +1 -1
  52. package/build/platform-sdk/sdk-context.js.map +1 -1
  53. package/build/platform-sdk/site.js +1 -1
  54. package/build/platform-sdk/site.js.map +1 -1
  55. package/build/platform-sdk/web-methods.js +1 -1
  56. package/build/platform-sdk/web-methods.js.map +1 -1
  57. package/build/{preview-YEREVN42.js → preview-ZAKEXAJH.js} +13 -13
  58. package/build/{render-command-H5DHMFOD.js → render-command-XMQH723O.js} +6 -6
  59. package/package.json +3 -3
  60. package/templates/web-method/dependencies.json +5 -0
  61. package/templates/web-method/files/placeholder.ts.ejs +8 -1
  62. package/build/DevCommand-6HTMGZ2M.js.map +0 -1
  63. package/build/PreviewCommand-CU46IAJE.js +0 -23
  64. package/build/chunk-ELYFHAX6.js.map +0 -1
  65. package/build/chunk-MKPZBVQD.js.map +0 -1
  66. package/build/chunk-PBUNWOQL.js.map +0 -1
  67. package/build/chunk-QZOQAFHK.js.map +0 -1
  68. package/build/chunk-SJY44CC7.js.map +0 -1
  69. package/build/chunk-XCKLCHGL.js.map +0 -1
  70. package/build/platform-sdk/chunk-7EYXEF6M.js +0 -2
  71. package/build/platform-sdk/chunk-7EYXEF6M.js.map +0 -1
  72. package/build/platform-sdk/chunk-BGTZ3RNN.js +0 -2
  73. package/build/platform-sdk/chunk-BGTZ3RNN.js.map +0 -1
  74. package/build/platform-sdk/chunk-NAPHVUFM.js +0 -2
  75. package/build/platform-sdk/chunk-NAPHVUFM.js.map +0 -1
  76. package/build/platform-sdk/chunk-XYIDODIB.js +0 -2
  77. /package/build/{CreateVersionCommand-27X5XRUT.js.map → CreateVersionCommand-IEF6U34E.js.map} +0 -0
  78. /package/build/{LogsCommand-WPUUN3JU.js.map → LogsCommand-7TW36YZX.js.map} +0 -0
  79. /package/build/{PreviewCommand-CU46IAJE.js.map → PreviewCommand-ZZKRP2GF.js.map} +0 -0
  80. /package/build/{ReleaseCommand-KTVVW67B.js.map → ReleaseCommand-SB2WWSVP.js.map} +0 -0
  81. /package/build/{ServeCommand-LXJK73IU.js.map → ServeCommand-GZKF6AN3.js.map} +0 -0
  82. /package/build/{build-KOJIDD4M.js.map → build-LHCSCFBM.js.map} +0 -0
  83. /package/build/{chunk-Z7MEHVBF.js.map → chunk-4WKSS3PU.js.map} +0 -0
  84. /package/build/{chunk-XBBIROHO.js.map → chunk-6US7335E.js.map} +0 -0
  85. /package/build/{chunk-EL6CIFIN.js.map → chunk-A3FHJ4EK.js.map} +0 -0
  86. /package/build/{chunk-LOLULZLU.js.map → chunk-HKX5ODUN.js.map} +0 -0
  87. /package/build/{chunk-2GCKBITG.js.map → chunk-KCNEUOW2.js.map} +0 -0
  88. /package/build/{chunk-63EMUDZG.js.map → chunk-KJR4P55M.js.map} +0 -0
  89. /package/build/{chunk-A3UPTTKJ.js.map → chunk-KVM6MGID.js.map} +0 -0
  90. /package/build/{chunk-KJF6LWGQ.js.map → chunk-LMFNRK6X.js.map} +0 -0
  91. /package/build/{chunk-MEDHLZDL.js.map → chunk-MTEB33GR.js.map} +0 -0
  92. /package/build/{chunk-IL6O6OIL.js.map → chunk-UE7LDQKD.js.map} +0 -0
  93. /package/build/{chunk-OHF42SKC.js.map → chunk-UZXKDHQZ.js.map} +0 -0
  94. /package/build/{chunk-S7UPYDTK.js.map → chunk-YW2RBPPY.js.map} +0 -0
  95. /package/build/platform-sdk/{chunk-FWUYJ3UR.js.map → chunk-FLUCZ5U6.js.map} +0 -0
  96. /package/build/{preview-YEREVN42.js.map → preview-ZAKEXAJH.js.map} +0 -0
  97. /package/build/{render-command-H5DHMFOD.js.map → render-command-XMQH723O.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as n}from"./chunk-BGTZ3RNN.js";import"./chunk-7EYXEF6M.js";import"./chunk-SBZEOPXX.js";function o(e,t=!1){return n(e,t)}var i=["wix.com","editorx.com"];var _=new RegExp(`\\.(${i.join("|")})$`),s=["42.wixprod.net","uw2-edt-1.wixprod.net"],a="dev.wix-code.com";var u=new RegExp(`\\.(${s.join("|")})$`),p=new RegExp(`.*\\.${a}$`);import{wixContext as f}from"@wix/sdk-context";function r(e,t){t==="global"?globalThis.__wix_context__!=null?globalThis.__wix_context__.client=e:globalThis.__wix_context__={client:e}:f.client=e}var b=o(e=>(t,c)=>e.fetchWithAuth(t,c));export{r as enableContext};
1
+ import{a as o}from"./chunk-3U6QUCP3.js";import"./chunk-ZM5O3GFB.js";import"./chunk-SBZEOPXX.js";import{wixContext as n}from"@wix/sdk-context";function r(t,e){e==="global"?globalThis.__wix_context__!=null?globalThis.__wix_context__.client=t:globalThis.__wix_context__={client:t}:n.client=t}var c=o(t=>(e,l)=>t.fetchWithAuth(e,l));export{r as enableContext};
2
2
  //# sourceMappingURL=sdk-context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/@wix/sdk/node_modules/@wix/sdk-runtime/build/rest-modules.js","../../../node_modules/@wix/sdk/build/enable-context.js","../../../node_modules/@wix/sdk/build/context.js"],"sourcesContent":["import { contextualizeRESTModuleV2 } from './context-v2.js';\nexport function createRESTModule(descriptor, elevated = false) {\n return contextualizeRESTModuleV2(descriptor, elevated);\n}\nexport function toURLSearchParams(params, isComplexRequest) {\n const flatten = flattenParams(params);\n const searchParams = Object.entries(flatten).reduce((urlSearchParams, [key, value]) => {\n // inorder to make `foo: [1,2]` turn into `foo=1&foo=2` and not `foo[]=1&foo[]=2`\n const keyParams = Array.isArray(value) ? value : [value];\n keyParams.forEach((param) => {\n if (param === undefined || param === null) {\n return;\n }\n urlSearchParams.append(key, param);\n });\n return urlSearchParams;\n }, new URLSearchParams());\n if (isComplexRequest) {\n searchParams.append('.r', base64Encode(JSON.stringify(params)));\n }\n return searchParams;\n}\nexport function resolveUrl(opts) {\n const domain = resolveDomain(opts.host);\n const mappings = resolveMappingsByDomain(domain, opts.domainToMappings);\n const path = injectDataIntoProtoPath(opts.protoPath, opts.data || {});\n return resolvePathFromMappings(path, mappings);\n}\nfunction flattenParams(data, path = '') {\n const params = {};\n Object.entries(data).forEach(([key, value]) => {\n const isObject = value !== null && typeof value === 'object' && !Array.isArray(value);\n const fieldPath = resolvePath(path, key);\n if (isObject) {\n const serializedObject = flattenParams(value, fieldPath);\n Object.assign(params, serializedObject);\n }\n else {\n params[fieldPath] = value;\n }\n });\n return params;\n}\nfunction resolvePath(path, key) {\n return `${path}${path ? '.' : ''}${key}`;\n}\nconst base64Encode = (value) => {\n const base64 = typeof btoa !== 'undefined'\n ? btoa(value)\n : Buffer.from(value, 'utf-8').toString('base64');\n return base64.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nconst DOMAINS = ['wix.com', 'editorx.com'];\nconst USER_DOMAIN = '_';\nconst REGEX_CAPTURE_DOMAINS = new RegExp(`\\\\.(${DOMAINS.join('|')})$`);\nconst WIX_API_DOMAINS = ['42.wixprod.net', 'uw2-edt-1.wixprod.net'];\nconst DEV_WIX_CODE_DOMAIN = 'dev.wix-code.com';\nconst REGEX_CAPTURE_PROTO_FIELD = /{(.*)}/;\nconst REGEX_CAPTURE_API_DOMAINS = new RegExp(`\\\\.(${WIX_API_DOMAINS.join('|')})$`);\nconst REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN = new RegExp(`.*\\\\.${DEV_WIX_CODE_DOMAIN}$`);\nfunction resolveDomain(host) {\n const resolvedHost = fixHostExceptions(host);\n return resolvedHost\n .replace(REGEX_CAPTURE_DOMAINS, '._base_domain_')\n .replace(REGEX_CAPTURE_API_DOMAINS, '._api_base_domain_')\n .replace(REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN, '*.dev.wix-code.com');\n}\n// hosts which standard string replacing doesn't apply to them, will be fixed here.\nfunction fixHostExceptions(host) {\n // https://system-kb.wixanswers.com/kb/en/article/editorx-domains-matching-to-wixcom\n return host.replace('create.editorx.com', 'editor.editorx.com');\n}\nfunction resolveMappingsByDomain(domain, domainToMappings) {\n const mappings = domainToMappings[domain] || domainToMappings[USER_DOMAIN];\n if (!mappings) {\n if (isBaseDomain(domain)) {\n // fallback <lang>.wix.com sub domains to www.wix.com\n // since all of the languages subdomain are not mapped automatically in FP and we want to support those kind of calls\n // for example: fr.wix.com\n return domainToMappings[wwwBaseDomain];\n }\n }\n return mappings;\n}\nfunction isBaseDomain(domain) {\n return !!domain.match(/\\._base_domain_$/);\n}\nconst wwwBaseDomain = 'www._base_domain_';\nfunction injectDataIntoProtoPath(protoPath, data) {\n return protoPath\n .split('/')\n .map((path) => maybeProtoPathToData(path, data))\n .join('/');\n}\nfunction maybeProtoPathToData(protoPath, data) {\n const protoRegExpMatch = protoPath.match(REGEX_CAPTURE_PROTO_FIELD) || [];\n const field = protoRegExpMatch[1];\n if (field) {\n const suffix = protoPath.replace(protoRegExpMatch[0], '');\n return findByPath(data, field, protoPath, suffix);\n }\n return protoPath;\n}\nfunction findByPath(obj, path, defaultValue, suffix) {\n let result = obj;\n for (const field of path.split('.')) {\n if (!result) {\n return defaultValue;\n }\n result = result[field];\n }\n return `${result}${suffix}`;\n}\nfunction resolvePathFromMappings(protoPath, mappings) {\n const mapping = mappings?.find((m) => protoPath.startsWith(m.destPath));\n if (!mapping) {\n // todo: should we return the path? if no - what should we do in case of testings?\n return protoPath;\n }\n return mapping.srcPath + protoPath.slice(mapping.destPath.length);\n}\n","import { wixContext } from '@wix/sdk-context';\nexport function enableContext(wixClient, contextType) {\n if (contextType === 'global') {\n if (globalThis.__wix_context__ != null) {\n globalThis.__wix_context__.client = wixClient;\n }\n else {\n globalThis.__wix_context__ = { client: wixClient };\n }\n }\n else {\n wixContext.client = wixClient;\n }\n}\n","import { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nexport function elevate(restModule) {\n return createRESTModule(restModule, true);\n}\nexport const fetchWithAuth = createRESTModule((restModuleOpts) => {\n return ((url, options) => restModuleOpts.fetchWithAuth(url, options));\n});\nexport { graphql } from './graphql.js';\nexport { setGlobalWixContext } from './wix-context.js';\nexport { enableContext } from './enable-context.js';\n"],"mappings":"gGACO,SAASA,EAAiBC,EAAYC,EAAW,GAAO,CAC3D,OAAOC,EAA0BF,EAAYC,CAAQ,CACzD,CAiDA,IAAME,EAAU,CAAC,UAAW,aAAa,EAEzC,IAAMC,EAAwB,IAAI,OAAO,OAAOC,EAAQ,KAAK,GAAG,CAAC,IAAI,EAC/DC,EAAkB,CAAC,iBAAkB,uBAAuB,EAC5DC,EAAsB,mBAE5B,IAAMC,EAA4B,IAAI,OAAO,OAAOC,EAAgB,KAAK,GAAG,CAAC,IAAI,EAC3EC,EAAoC,IAAI,OAAO,QAAQC,CAAmB,GAAG,EC3DnF,OAAS,cAAAC,MAAkB,mBACpB,SAASC,EAAcC,EAAWC,EAAa,CAC9CA,IAAgB,SACZ,WAAW,iBAAmB,KAC9B,WAAW,gBAAgB,OAASD,EAGpC,WAAW,gBAAkB,CAAE,OAAQA,CAAU,EAIrDF,EAAW,OAASE,CAE5B,CCTO,IAAME,EAAgBC,EAAkBC,GACnC,CAACC,EAAKC,IAAYF,EAAe,cAAcC,EAAKC,CAAO,CACtE","names":["createRESTModule","descriptor","elevated","contextualizeRESTModuleV2","DOMAINS","REGEX_CAPTURE_DOMAINS","DOMAINS","WIX_API_DOMAINS","DEV_WIX_CODE_DOMAIN","REGEX_CAPTURE_API_DOMAINS","WIX_API_DOMAINS","REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN","DEV_WIX_CODE_DOMAIN","wixContext","enableContext","wixClient","contextType","fetchWithAuth","createRESTModule","restModuleOpts","url","options"]}
1
+ {"version":3,"sources":["../../../node_modules/@wix/sdk/build/enable-context.js","../../../node_modules/@wix/sdk/build/context.js"],"sourcesContent":["import { wixContext } from '@wix/sdk-context';\nexport function enableContext(wixClient, contextType) {\n if (contextType === 'global') {\n if (globalThis.__wix_context__ != null) {\n globalThis.__wix_context__.client = wixClient;\n }\n else {\n globalThis.__wix_context__ = { client: wixClient };\n }\n }\n else {\n wixContext.client = wixClient;\n }\n}\n","import { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nexport function elevate(restModule) {\n return createRESTModule(restModule, true);\n}\nexport const fetchWithAuth = createRESTModule((restModuleOpts) => {\n return ((url, options) => restModuleOpts.fetchWithAuth(url, options));\n});\nexport { graphql } from './graphql.js';\nexport { setGlobalWixContext } from './wix-context.js';\nexport { enableContext } from './enable-context.js';\n"],"mappings":"gGAAA,OAAS,cAAAA,MAAkB,mBACpB,SAASC,EAAcC,EAAWC,EAAa,CAC9CA,IAAgB,SACZ,WAAW,iBAAmB,KAC9B,WAAW,gBAAgB,OAASD,EAGpC,WAAW,gBAAkB,CAAE,OAAQA,CAAU,EAIrDF,EAAW,OAASE,CAE5B,CCTO,IAAME,EAAgBC,EAAkBC,GACnC,CAACC,EAAKC,IAAYF,EAAe,cAAcC,EAAKC,CAAO,CACtE","names":["wixContext","enableContext","wixClient","contextType","fetchWithAuth","createRESTModule","restModuleOpts","url","options"]}
@@ -1,2 +1,2 @@
1
- import{a}from"./chunk-XYIDODIB.js";import"./chunk-BGTZ3RNN.js";import"./chunk-7EYXEF6M.js";import"./chunk-SBZEOPXX.js";function d(){let t=null,n=null;return{promise:new Promise((o,i)=>{t=o,n=i}),resolve:t,reject:n}}var u=t=>{let{createHost:n}=t;return{__type:"host",create:e=>({}),host:e=>{var o,i;let{applicationId:s}=e??{},r=typeof window<"u"?window.wixEmbedsAPI:void 0,l=n(e),p=f();return{...l,apiBaseUrl:p,getMonitoringClient:r==null||r.getMonitoringClientFunction==null?void 0:r.getMonitoringClientFunction(s),essentials:{language:typeof window<"u"?(o=window.commonConfig)==null?void 0:o.language:void 0,locale:typeof window<"u"?(i=window.commonConfig)==null?void 0:i.locale:void 0}}},auth:e=>{let o=typeof window<"u"?window.wixEmbedsAPI:void 0;e||(e=o==null||o.getAccessTokenFunction==null?void 0:o.getAccessTokenFunction());let i=!1,{resolve:s,promise:r}=d();return{getAuthHeaders:async()=>{if(!e&&i&&(e=await r),!e)throw new Error("Failed to resolve auth token");return{headers:{Authorization:await e()}}},getAccessTokenInjector:()=>(i=!0,l=>{s(l)})}}}};function f(){let t=typeof window<"u"?window.wixEmbedsAPI:void 0,n=t==null||t.getExternalBaseUrl==null?void 0:t.getExternalBaseUrl();if(!n)return;let e=new URL(n);return e!=null&&e.pathname&&e.pathname!=="/"?""+e.hostname+e.pathname:e.hostname}var w=t=>{let{clientSdk:n,applicationId:e}=t;return{invoke:async o=>{let{namespace:i,method:s,args:r}=o;if(!n)throw new Error("Wix Site SDK only works in a Wix site environment. Learn more: https://dev.wix.com/docs/sdk/host-modules/site/introduction");return n.invoke({namespace:i,method:s,args:r,applicationId:e,accessToken:"accessToken"})},getAccessToken:()=>{throw new Error("Not implemented")},observeState:()=>({disconnect:()=>{}})}};var m=function(t){let n=typeof $wixContext<"u"&&$wixContext.clientSdk||t?.clientSdk||window.clientSdk,{applicationId:e}=t||{};if(!e)throw new Error('"createHost" was called without a required field "applicationId"');return{channel:w({clientSdk:n,applicationId:e}),close:()=>{}}};var c=u({createHost:m});var S=t=>{let n=c.host({applicationId:t}),e=c.auth(),o=e.getAccessTokenInjector();return a({auth:e,host:n}).enableContext("module"),{injectGetAccessToken:o}};export{S as enableClient};
1
+ import{a}from"./chunk-VXQAZIAE.js";import"./chunk-ZM5O3GFB.js";import"./chunk-SBZEOPXX.js";function d(){let t=null,n=null;return{promise:new Promise((o,i)=>{t=o,n=i}),resolve:t,reject:n}}var u=t=>{let{createHost:n}=t;return{__type:"host",create:e=>({}),host:e=>{var o,i;let{applicationId:s}=e??{},r=typeof window<"u"?window.wixEmbedsAPI:void 0,l=n(e),p=f();return{...l,apiBaseUrl:p,getMonitoringClient:r==null||r.getMonitoringClientFunction==null?void 0:r.getMonitoringClientFunction(s),essentials:{language:typeof window<"u"?(o=window.commonConfig)==null?void 0:o.language:void 0,locale:typeof window<"u"?(i=window.commonConfig)==null?void 0:i.locale:void 0}}},auth:e=>{let o=typeof window<"u"?window.wixEmbedsAPI:void 0;e||(e=o==null||o.getAccessTokenFunction==null?void 0:o.getAccessTokenFunction());let i=!1,{resolve:s,promise:r}=d();return{getAuthHeaders:async()=>{if(!e&&i&&(e=await r),!e)throw new Error("Failed to resolve auth token");return{headers:{Authorization:await e()}}},getAccessTokenInjector:()=>(i=!0,l=>{s(l)})}}}};function f(){let t=typeof window<"u"?window.wixEmbedsAPI:void 0,n=t==null||t.getExternalBaseUrl==null?void 0:t.getExternalBaseUrl();if(!n)return;let e=new URL(n);return e!=null&&e.pathname&&e.pathname!=="/"?""+e.hostname+e.pathname:e.hostname}var w=t=>{let{clientSdk:n,applicationId:e}=t;return{invoke:async o=>{let{namespace:i,method:s,args:r}=o;if(!n)throw new Error("Wix Site SDK only works in a Wix site environment. Learn more: https://dev.wix.com/docs/sdk/host-modules/site/introduction");return n.invoke({namespace:i,method:s,args:r,applicationId:e,accessToken:"accessToken"})},getAccessToken:()=>{throw new Error("Not implemented")},observeState:()=>({disconnect:()=>{}})}};var m=function(t){let n=typeof $wixContext<"u"&&$wixContext.clientSdk||t?.clientSdk||window.clientSdk,{applicationId:e}=t||{};if(!e)throw new Error('"createHost" was called without a required field "applicationId"');return{channel:w({clientSdk:n,applicationId:e}),close:()=>{}}};var c=u({createHost:m});var S=t=>{let n=c.host({applicationId:t}),e=c.auth(),o=e.getAccessTokenInjector();return a({auth:e,host:n}).enableContext("module"),{injectGetAccessToken:o}};export{S as enableClient};
2
2
  //# sourceMappingURL=site.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/@wix/site/src/utils.ts","../../../node_modules/@wix/site/src/websiteHostModule.ts","../../../node_modules/@wix/site/src/channel.ts","../../../node_modules/@wix/site/src/hostPlatform.ts","../../../node_modules/@wix/site/src/index.ts","../src/site.ts"],"sourcesContent":["export function withResolvers<T>(): {\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: any) => void;\n promise: Promise<T>;\n} {\n let resolve = null as any;\n let reject = null as any;\n\n const promise = new Promise<T>((resolveFn, rejectFn) => {\n resolve = resolveFn;\n reject = rejectFn;\n });\n\n return { promise, resolve, reject };\n}\n","import type { HostModule } from '@wix/sdk-types';\nimport { withResolvers } from './utils';\nimport {\n AccessTokenFn,\n CreateAuthStrategy,\n CreateWebsiteHost,\n Host,\n SDK,\n SDKOptions,\n WixEmbedsAPI,\n} from './types';\n\ndeclare global {\n interface Window {\n wixEmbedsAPI?: WixEmbedsAPI;\n commonConfig?: {\n language?: string;\n locale?: string;\n };\n }\n}\n\nexport const createWebsiteModule = ({\n createHost,\n}: {\n createHost: CreateWebsiteHost;\n}): HostModule<SDK, Host> & {\n host: CreateWebsiteHost;\n auth: CreateAuthStrategy;\n} => {\n return {\n __type: 'host',\n create: (_host) => {\n // Here we can implement module methods that could be used by the SDK via \"wixClient.use(website)\" api.\n // We don't have any for now, so we just return an empty object.\n return {};\n },\n host: (options?: SDKOptions) => {\n const { applicationId } = options ?? {};\n const wixEmbedsAPI =\n typeof window !== 'undefined' ? window.wixEmbedsAPI : undefined;\n\n const host = createHost(options);\n const apiBaseUrl = getApiBaseUrl();\n\n return {\n ...host,\n apiBaseUrl,\n getMonitoringClient:\n wixEmbedsAPI?.getMonitoringClientFunction?.(applicationId),\n essentials: {\n language:\n typeof window !== 'undefined'\n ? window.commonConfig?.language\n : undefined,\n locale:\n typeof window !== 'undefined'\n ? window.commonConfig?.locale\n : undefined,\n },\n };\n },\n auth: (getAccessTokenFn?: AccessTokenFn) => {\n const wixEmbedsAPI =\n typeof window !== 'undefined' ? window.wixEmbedsAPI : undefined;\n\n if (!getAccessTokenFn) {\n /*\n We must call wixEmbedsAPI.getAccessTokenFunction() in the main frame and not from async callbacks / setTimeout calls\n since it uses document.currentScript API behind the scenes\n https://developer.mozilla.org/en-US/docs/Web/API/Document/currentScript\n * */\n getAccessTokenFn = wixEmbedsAPI?.getAccessTokenFunction?.();\n }\n\n let injectorCreated = false;\n\n const { resolve: resolveAccessTokenFn, promise: accessTokenFnPromise } =\n withResolvers<AccessTokenFn>();\n\n return {\n getAuthHeaders: async () => {\n if (!getAccessTokenFn && injectorCreated) {\n getAccessTokenFn = await accessTokenFnPromise;\n }\n\n if (!getAccessTokenFn) {\n throw new Error('Failed to resolve auth token');\n }\n\n return {\n headers: {\n Authorization: await getAccessTokenFn(),\n },\n };\n },\n getAccessTokenInjector: () => {\n injectorCreated = true;\n\n return (_getAccessTokenFn: AccessTokenFn) => {\n resolveAccessTokenFn(_getAccessTokenFn);\n };\n },\n };\n },\n };\n};\n\nfunction getApiBaseUrl() {\n const wixEmbedsAPI =\n typeof window !== 'undefined' ? window.wixEmbedsAPI : undefined;\n const apiBaseUrl = wixEmbedsAPI?.getExternalBaseUrl?.();\n if (!apiBaseUrl) {\n return;\n }\n\n // clean the protocol from the URL\n const parsedUrlObject = new URL(apiBaseUrl);\n if (parsedUrlObject?.pathname && parsedUrlObject.pathname !== '/') {\n return `${parsedUrlObject.hostname}${parsedUrlObject.pathname}`;\n }\n\n return parsedUrlObject.hostname;\n}\n","import { ClientSDK, WebsiteChannel } from './types';\n\nexport const createWebsiteChannel = ({\n clientSdk,\n applicationId,\n}: {\n clientSdk?: ClientSDK;\n applicationId: string;\n}): WebsiteChannel => {\n return {\n invoke: async ({ namespace, method, args }) => {\n if (!clientSdk) {\n throw new Error(\n 'Wix Site SDK only works in a Wix site environment. Learn more: https://dev.wix.com/docs/sdk/host-modules/site/introduction',\n );\n }\n\n return clientSdk.invoke({\n namespace,\n method,\n args,\n applicationId,\n accessToken: 'accessToken',\n });\n },\n getAccessToken: () => {\n throw new Error('Not implemented');\n },\n observeState: () => ({\n disconnect: () => {},\n }),\n };\n};\n","import { createWebsiteChannel } from './channel';\nimport type { CreateWebsiteHost, ClientSDK } from './types';\n\ndeclare global {\n interface Window {\n clientSdk?: ClientSDK;\n }\n}\n\ndeclare const $wixContext: {\n clientSdk: ClientSDK;\n};\n\nexport const createHost: CreateWebsiteHost = function (config) {\n const clientSdk =\n (typeof $wixContext !== 'undefined' && $wixContext.clientSdk) ||\n config?.clientSdk ||\n window.clientSdk;\n const { applicationId } = config || {};\n\n if (!applicationId) {\n throw new Error(\n '\"createHost\" was called without a required field \"applicationId\"',\n );\n }\n\n return {\n // environment: {},\n channel: createWebsiteChannel({ clientSdk, applicationId }),\n close: () => {},\n };\n};\n","import { createWebsiteModule } from './websiteHostModule';\nimport { createHost } from './hostPlatform';\n\nexport const site = createWebsiteModule({ createHost });\n\nexport * from './types';\n","import { site } from '@wix/site';\nimport { createClient } from '@wix/sdk';\n\nexport const enableClient = (applicationId: string) => {\n const host = site.host({ applicationId });\n const auth = site.auth();\n const injectGetAccessToken = auth.getAccessTokenInjector();\n\n const wixClient = createClient({\n auth,\n host,\n });\n wixClient.enableContext('module');\n\n return {\n injectGetAccessToken,\n };\n};\n"],"mappings":"uHAAO,SAASA,GAId,CACA,IAAIC,EAAU,KACVC,EAAS,KAOb,MAAO,CAAEC,QALO,IAAIC,QAAW,CAACC,EAAWC,IAAa,CACtDL,EAAUI,EACVH,EAASI,CACX,CAAC,EAEiBL,QAAAA,EAASC,OAAAA,CAAO,CACpC,CCQO,IAAMK,EAAsBC,GAO9B,CAAA,GAP+B,CAClCC,WAAAA,CAGF,EAACD,EAIC,MAAO,CACLE,OAAQ,OACRC,OAASC,IAGA,CAAC,GAEVC,KAAOC,GAAyB,CAAA,IAAAC,EAAAC,EAC9B,GAAM,CAAEC,cAAAA,CAAc,EAAIH,GAAW,CAAC,EAChCI,EACJ,OAAOC,OAAW,IAAcA,OAAOD,aAAeE,OAElDP,EAAOJ,EAAWK,CAAO,EACzBO,EAAaC,EAAc,EAEjC,MAAO,CACL,GAAGT,EACHQ,WAAAA,EACAE,oBACEL,GAAY,MAAZA,EAAcM,6BAA2B,KAAA,OAAzCN,EAAcM,4BAA8BP,CAAa,EAC3DQ,WAAY,CACVC,SACE,OAAOP,OAAW,KAAWJ,EACzBI,OAAOQ,eAAY,KAAA,OAAnBZ,EAAqBW,SACrBN,OACNQ,OACE,OAAOT,OAAW,KAAWH,EACzBG,OAAOQ,eAAY,KAAA,OAAnBX,EAAqBY,OACrBR,MACR,CACF,CACF,EACAS,KAAOC,GAAqC,CAC1C,IAAMZ,EACJ,OAAOC,OAAW,IAAcA,OAAOD,aAAeE,OAEnDU,IAMHA,EAAmBZ,GAAY,MAAZA,EAAca,wBAAsB,KAAA,OAApCb,EAAca,uBAAyB,GAG5D,IAAIC,EAAkB,GAEhB,CAAEC,QAASC,EAAsBC,QAASC,CAAqB,EACnEC,EAA6B,EAE/B,MAAO,CACLC,eAAgB,SAAY,CAK1B,GAJI,CAACR,GAAoBE,IACvBF,EAAmB,MAAMM,GAGvB,CAACN,EACH,MAAM,IAAIS,MAAM,8BAA8B,EAGhD,MAAO,CACLC,QAAS,CACPC,cAAe,MAAMX,EAAiB,CACxC,CACF,CACF,EACAY,uBAAwBA,KACtBV,EAAkB,GAEVW,GAAqC,CAC3CT,EAAqBS,CAAiB,CACxC,EAEJ,CACF,CACF,CACF,EAEA,SAASrB,GAAgB,CACvB,IAAMJ,EACJ,OAAOC,OAAW,IAAcA,OAAOD,aAAeE,OAClDC,EAAaH,GAAY,MAAZA,EAAc0B,oBAAkB,KAAA,OAAhC1B,EAAc0B,mBAAqB,EACtD,GAAI,CAACvB,EACH,OAIF,IAAMwB,EAAkB,IAAIC,IAAIzB,CAAU,EAC1C,OAAIwB,GAAe,MAAfA,EAAiBE,UAAYF,EAAgBE,WAAa,IAC5D,GAAUF,EAAgBG,SAAWH,EAAgBE,SAGhDF,EAAgBG,QACzB,CCzHO,IAAMC,EAAuBC,GAMd,CAAA,GANe,CACnCC,UAAAA,EACAC,cAAAA,CAIF,EAACF,EACC,MAAO,CACLG,OAAQ,MAAAC,GAAuC,CAAA,GAAhC,CAAEC,UAAAA,EAAWC,OAAAA,EAAQC,KAAAA,CAAK,EAACH,EACxC,GAAI,CAACH,EACH,MAAM,IAAIO,MACR,4HACF,EAGF,OAAOP,EAAUE,OAAO,CACtBE,UAAAA,EACAC,OAAAA,EACAC,KAAAA,EACAL,cAAAA,EACAO,YAAa,aACf,CAAC,CACH,EACAC,eAAgBA,IAAM,CACpB,MAAM,IAAIF,MAAM,iBAAiB,CACnC,EACAG,aAAcA,KAAO,CACnBC,WAAYA,IAAM,CAAC,CACrB,EACF,CACF,ECnBO,IAAMC,EAAgC,SAAUC,EAAQ,CAC7D,IAAMC,EACH,OAAOC,YAAgB,KAAeA,YAAYD,WACnDD,GAAQC,WACRE,OAAOF,UACH,CAAEG,cAAAA,CAAc,EAAIJ,GAAU,CAAC,EAErC,GAAI,CAACI,EACH,MAAM,IAAIC,MACR,kEACF,EAGF,MAAO,CAELC,QAASC,EAAqB,CAAEN,UAAAA,EAAWG,cAAAA,CAAc,CAAC,EAC1DI,MAAOA,IAAM,CAAC,CAChB,CACF,EC5BO,IAAMC,EAAOC,EAAoB,CAAEC,WAAAA,CAAW,CAAC,ECA/C,IAAMC,EAAgBC,GAA0B,CACrD,IAAMC,EAAOC,EAAK,KAAK,CAAE,cAAAF,CAAc,CAAC,EAClCG,EAAOD,EAAK,KAAK,EACjBE,EAAuBD,EAAK,uBAAuB,EAMzD,OAJkBE,EAAa,CAC7B,KAAAF,EACA,KAAAF,CACF,CAAC,EACS,cAAc,QAAQ,EAEzB,CACL,qBAAAG,CACF,CACF","names":["withResolvers","resolve","reject","promise","Promise","resolveFn","rejectFn","createWebsiteModule","_ref","createHost","__type","create","_host","host","options","_window$commonConfig","_window$commonConfig2","applicationId","wixEmbedsAPI","window","undefined","apiBaseUrl","getApiBaseUrl","getMonitoringClient","getMonitoringClientFunction","essentials","language","commonConfig","locale","auth","getAccessTokenFn","getAccessTokenFunction","injectorCreated","resolve","resolveAccessTokenFn","promise","accessTokenFnPromise","withResolvers","getAuthHeaders","Error","headers","Authorization","getAccessTokenInjector","_getAccessTokenFn","getExternalBaseUrl","parsedUrlObject","URL","pathname","hostname","createWebsiteChannel","_ref","clientSdk","applicationId","invoke","_ref2","namespace","method","args","Error","accessToken","getAccessToken","observeState","disconnect","createHost","config","clientSdk","$wixContext","window","applicationId","Error","channel","createWebsiteChannel","close","site","createWebsiteModule","createHost","enableClient","applicationId","host","site","auth","injectGetAccessToken","createClient"]}
1
+ {"version":3,"sources":["../../../node_modules/@wix/site/src/utils.ts","../../../node_modules/@wix/site/src/websiteHostModule.ts","../../../node_modules/@wix/site/src/channel.ts","../../../node_modules/@wix/site/src/hostPlatform.ts","../../../node_modules/@wix/site/src/index.ts","../src/site.ts"],"sourcesContent":["export function withResolvers<T>(): {\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: any) => void;\n promise: Promise<T>;\n} {\n let resolve = null as any;\n let reject = null as any;\n\n const promise = new Promise<T>((resolveFn, rejectFn) => {\n resolve = resolveFn;\n reject = rejectFn;\n });\n\n return { promise, resolve, reject };\n}\n","import type { HostModule } from '@wix/sdk-types';\nimport { withResolvers } from './utils';\nimport {\n AccessTokenFn,\n CreateAuthStrategy,\n CreateWebsiteHost,\n Host,\n SDK,\n SDKOptions,\n WixEmbedsAPI,\n} from './types';\n\ndeclare global {\n interface Window {\n wixEmbedsAPI?: WixEmbedsAPI;\n commonConfig?: {\n language?: string;\n locale?: string;\n };\n }\n}\n\nexport const createWebsiteModule = ({\n createHost,\n}: {\n createHost: CreateWebsiteHost;\n}): HostModule<SDK, Host> & {\n host: CreateWebsiteHost;\n auth: CreateAuthStrategy;\n} => {\n return {\n __type: 'host',\n create: (_host) => {\n // Here we can implement module methods that could be used by the SDK via \"wixClient.use(website)\" api.\n // We don't have any for now, so we just return an empty object.\n return {};\n },\n host: (options?: SDKOptions) => {\n const { applicationId } = options ?? {};\n const wixEmbedsAPI =\n typeof window !== 'undefined' ? window.wixEmbedsAPI : undefined;\n\n const host = createHost(options);\n const apiBaseUrl = getApiBaseUrl();\n\n return {\n ...host,\n apiBaseUrl,\n getMonitoringClient:\n wixEmbedsAPI?.getMonitoringClientFunction?.(applicationId),\n essentials: {\n language:\n typeof window !== 'undefined'\n ? window.commonConfig?.language\n : undefined,\n locale:\n typeof window !== 'undefined'\n ? window.commonConfig?.locale\n : undefined,\n },\n };\n },\n auth: (getAccessTokenFn?: AccessTokenFn) => {\n const wixEmbedsAPI =\n typeof window !== 'undefined' ? window.wixEmbedsAPI : undefined;\n\n if (!getAccessTokenFn) {\n /*\n We must call wixEmbedsAPI.getAccessTokenFunction() in the main frame and not from async callbacks / setTimeout calls\n since it uses document.currentScript API behind the scenes\n https://developer.mozilla.org/en-US/docs/Web/API/Document/currentScript\n * */\n getAccessTokenFn = wixEmbedsAPI?.getAccessTokenFunction?.();\n }\n\n let injectorCreated = false;\n\n const { resolve: resolveAccessTokenFn, promise: accessTokenFnPromise } =\n withResolvers<AccessTokenFn>();\n\n return {\n getAuthHeaders: async () => {\n if (!getAccessTokenFn && injectorCreated) {\n getAccessTokenFn = await accessTokenFnPromise;\n }\n\n if (!getAccessTokenFn) {\n throw new Error('Failed to resolve auth token');\n }\n\n return {\n headers: {\n Authorization: await getAccessTokenFn(),\n },\n };\n },\n getAccessTokenInjector: () => {\n injectorCreated = true;\n\n return (_getAccessTokenFn: AccessTokenFn) => {\n resolveAccessTokenFn(_getAccessTokenFn);\n };\n },\n };\n },\n };\n};\n\nfunction getApiBaseUrl() {\n const wixEmbedsAPI =\n typeof window !== 'undefined' ? window.wixEmbedsAPI : undefined;\n const apiBaseUrl = wixEmbedsAPI?.getExternalBaseUrl?.();\n if (!apiBaseUrl) {\n return;\n }\n\n // clean the protocol from the URL\n const parsedUrlObject = new URL(apiBaseUrl);\n if (parsedUrlObject?.pathname && parsedUrlObject.pathname !== '/') {\n return `${parsedUrlObject.hostname}${parsedUrlObject.pathname}`;\n }\n\n return parsedUrlObject.hostname;\n}\n","import { ClientSDK, WebsiteChannel } from './types';\n\nexport const createWebsiteChannel = ({\n clientSdk,\n applicationId,\n}: {\n clientSdk?: ClientSDK;\n applicationId: string;\n}): WebsiteChannel => {\n return {\n invoke: async ({ namespace, method, args }) => {\n if (!clientSdk) {\n throw new Error(\n 'Wix Site SDK only works in a Wix site environment. Learn more: https://dev.wix.com/docs/sdk/host-modules/site/introduction',\n );\n }\n\n return clientSdk.invoke({\n namespace,\n method,\n args,\n applicationId,\n accessToken: 'accessToken',\n });\n },\n getAccessToken: () => {\n throw new Error('Not implemented');\n },\n observeState: () => ({\n disconnect: () => {},\n }),\n };\n};\n","import { createWebsiteChannel } from './channel';\nimport type { CreateWebsiteHost, ClientSDK } from './types';\n\ndeclare global {\n interface Window {\n clientSdk?: ClientSDK;\n }\n}\n\ndeclare const $wixContext: {\n clientSdk: ClientSDK;\n};\n\nexport const createHost: CreateWebsiteHost = function (config) {\n const clientSdk =\n (typeof $wixContext !== 'undefined' && $wixContext.clientSdk) ||\n config?.clientSdk ||\n window.clientSdk;\n const { applicationId } = config || {};\n\n if (!applicationId) {\n throw new Error(\n '\"createHost\" was called without a required field \"applicationId\"',\n );\n }\n\n return {\n // environment: {},\n channel: createWebsiteChannel({ clientSdk, applicationId }),\n close: () => {},\n };\n};\n","import { createWebsiteModule } from './websiteHostModule';\nimport { createHost } from './hostPlatform';\n\nexport const site = createWebsiteModule({ createHost });\n\nexport * from './types';\n","import { site } from '@wix/site';\nimport { createClient } from '@wix/sdk';\n\nexport const enableClient = (applicationId: string) => {\n const host = site.host({ applicationId });\n const auth = site.auth();\n const injectGetAccessToken = auth.getAccessTokenInjector();\n\n const wixClient = createClient({\n auth,\n host,\n });\n wixClient.enableContext('module');\n\n return {\n injectGetAccessToken,\n };\n};\n"],"mappings":"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","names":["withResolvers","resolve","reject","promise","Promise","resolveFn","rejectFn","createWebsiteModule","_ref","createHost","__type","create","_host","host","options","_window$commonConfig","_window$commonConfig2","applicationId","wixEmbedsAPI","window","undefined","apiBaseUrl","getApiBaseUrl","getMonitoringClient","getMonitoringClientFunction","essentials","language","commonConfig","locale","auth","getAccessTokenFn","getAccessTokenFunction","injectorCreated","resolve","resolveAccessTokenFn","promise","accessTokenFnPromise","withResolvers","getAuthHeaders","Error","headers","Authorization","getAccessTokenInjector","_getAccessTokenFn","getExternalBaseUrl","parsedUrlObject","URL","pathname","hostname","createWebsiteChannel","_ref","clientSdk","applicationId","invoke","_ref2","namespace","method","args","Error","accessToken","getAccessToken","observeState","disconnect","createHost","config","clientSdk","$wixContext","window","applicationId","Error","channel","createWebsiteChannel","close","site","createWebsiteModule","createHost","enableClient","applicationId","host","site","auth","injectGetAccessToken","createClient"]}
@@ -1,2 +1,2 @@
1
- import{b as o}from"./chunk-NAPHVUFM.js";import"./chunk-7EYXEF6M.js";import"./chunk-SBZEOPXX.js";function r(e,t=!1){return o(e,t)}var a=["wix.com","editorx.com"];var _=new RegExp(`\\.(${a.join("|")})$`),f=["42.wixprod.net","uw2-edt-1.wixprod.net"],u="dev.wix-code.com";var l=new RegExp(`\\.(${f.join("|")})$`),m=new RegExp(`.*\\.${u}$`);var h=r(e=>async({baseURL:t,filename:s,method:c,args:i})=>{let n=await(await e.fetchWithAuth(`${t}/_webMethods/${s}/${c}.ajax`,{body:JSON.stringify(i),method:"POST"})).json();if(n.exception===!0)throw n.result;return n.result});export{h as callWebMethod};
1
+ import{a as e}from"./chunk-3U6QUCP3.js";import"./chunk-ZM5O3GFB.js";import"./chunk-SBZEOPXX.js";var h=e(o=>async({baseURL:r,filename:s,method:n,args:a})=>{let t=await(await o.fetchWithAuth(`${r}/_webMethods/${s}/${n}.ajax`,{body:JSON.stringify(a),method:"POST"})).json();if(t.exception===!0)throw t.result;return t.result});export{h as callWebMethod};
2
2
  //# sourceMappingURL=web-methods.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/@wix/sdk-runtime/build/rest-modules.js","../../../node_modules/@wix/web-methods-platform/build/client/index.js"],"sourcesContent":["import { contextualizeRESTModuleV2 } from './context-v2.js';\nexport function createRESTModule(descriptor, elevated = false) {\n return contextualizeRESTModuleV2(descriptor, elevated);\n}\nexport function toURLSearchParams(params, isComplexRequest) {\n const flatten = flattenParams(params);\n const searchParams = Object.entries(flatten).reduce((urlSearchParams, [key, value]) => {\n // inorder to make `foo: [1,2]` turn into `foo=1&foo=2` and not `foo[]=1&foo[]=2`\n const keyParams = Array.isArray(value) ? value : [value];\n keyParams.forEach((param) => {\n if (param === undefined || param === null) {\n return;\n }\n urlSearchParams.append(key, param);\n });\n return urlSearchParams;\n }, new URLSearchParams());\n if (isComplexRequest) {\n searchParams.append('.r', base64Encode(JSON.stringify(params)));\n }\n return searchParams;\n}\nexport function resolveUrl(opts) {\n const domain = resolveDomain(opts.host);\n const mappings = resolveMappingsByDomain(domain, opts.domainToMappings);\n const path = injectDataIntoProtoPath(opts.protoPath, opts.data || {});\n return resolvePathFromMappings(path, mappings);\n}\nfunction flattenParams(data, path = '') {\n const params = {};\n Object.entries(data).forEach(([key, value]) => {\n const isObject = value !== null && typeof value === 'object' && !Array.isArray(value);\n const fieldPath = resolvePath(path, key);\n if (isObject) {\n const serializedObject = flattenParams(value, fieldPath);\n Object.assign(params, serializedObject);\n }\n else {\n params[fieldPath] = value;\n }\n });\n return params;\n}\nfunction resolvePath(path, key) {\n return `${path}${path ? '.' : ''}${key}`;\n}\nconst base64Encode = (value) => {\n const base64 = typeof btoa !== 'undefined'\n ? btoa(value)\n : Buffer.from(value, 'utf-8').toString('base64');\n return base64.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nconst DOMAINS = ['wix.com', 'editorx.com'];\nconst USER_DOMAIN = '_';\nconst REGEX_CAPTURE_DOMAINS = new RegExp(`\\\\.(${DOMAINS.join('|')})$`);\nconst WIX_API_DOMAINS = ['42.wixprod.net', 'uw2-edt-1.wixprod.net'];\nconst DEV_WIX_CODE_DOMAIN = 'dev.wix-code.com';\nconst REGEX_CAPTURE_PROTO_FIELD = /{(.*)}/;\nconst REGEX_CAPTURE_API_DOMAINS = new RegExp(`\\\\.(${WIX_API_DOMAINS.join('|')})$`);\nconst REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN = new RegExp(`.*\\\\.${DEV_WIX_CODE_DOMAIN}$`);\nfunction resolveDomain(host) {\n const resolvedHost = fixHostExceptions(host);\n return resolvedHost\n .replace(REGEX_CAPTURE_DOMAINS, '._base_domain_')\n .replace(REGEX_CAPTURE_API_DOMAINS, '._api_base_domain_')\n .replace(REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN, '*.dev.wix-code.com');\n}\n// hosts which standard string replacing doesn't apply to them, will be fixed here.\nfunction fixHostExceptions(host) {\n // https://system-kb.wixanswers.com/kb/en/article/editorx-domains-matching-to-wixcom\n return host.replace('create.editorx.com', 'editor.editorx.com');\n}\nfunction resolveMappingsByDomain(domain, domainToMappings) {\n const mappings = domainToMappings[domain] || domainToMappings[USER_DOMAIN];\n if (!mappings) {\n if (isBaseDomain(domain)) {\n // fallback <lang>.wix.com sub domains to www.wix.com\n // since all of the languages subdomain are not mapped automatically in FP and we want to support those kind of calls\n // for example: fr.wix.com\n return domainToMappings[wwwBaseDomain];\n }\n }\n return mappings;\n}\nfunction isBaseDomain(domain) {\n return !!domain.match(/\\._base_domain_$/);\n}\nconst wwwBaseDomain = 'www._base_domain_';\nfunction injectDataIntoProtoPath(protoPath, data) {\n return protoPath\n .split('/')\n .map((path) => maybeProtoPathToData(path, data))\n .join('/');\n}\nfunction maybeProtoPathToData(protoPath, data) {\n const protoRegExpMatch = protoPath.match(REGEX_CAPTURE_PROTO_FIELD) || [];\n const field = protoRegExpMatch[1];\n if (field) {\n const suffix = protoPath.replace(protoRegExpMatch[0], '');\n return findByPath(data, field, protoPath, suffix);\n }\n return protoPath;\n}\nfunction findByPath(obj, path, defaultValue, suffix) {\n let result = obj;\n for (const field of path.split('.')) {\n if (!result) {\n return defaultValue;\n }\n result = result[field];\n }\n return `${result}${suffix}`;\n}\nfunction resolvePathFromMappings(protoPath, mappings) {\n const mapping = mappings?.find((m) => protoPath.startsWith(m.destPath));\n if (!mapping) {\n // todo: should we return the path? if no - what should we do in case of testings?\n return protoPath;\n }\n return mapping.srcPath + protoPath.slice(mapping.destPath.length);\n}\n","import { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nexport const callWebMethod = createRESTModule((restModuleOpts) => {\n return async ({ baseURL, filename, method, args }) => {\n const response = await restModuleOpts.fetchWithAuth(`${baseURL}/_webMethods/${filename}/${method}.ajax`, {\n body: JSON.stringify(args),\n method: 'POST',\n });\n const json = await response.json();\n // request failed\n if (json.exception === true) {\n throw json.result;\n }\n return json.result;\n };\n});\n"],"mappings":"gGACO,SAASA,EAAiBC,EAAYC,EAAW,GAAO,CAC3D,OAAOC,EAA0BF,EAAYC,CAAQ,CACzD,CAiDA,IAAME,EAAU,CAAC,UAAW,aAAa,EAEzC,IAAMC,EAAwB,IAAI,OAAO,OAAOC,EAAQ,KAAK,GAAG,CAAC,IAAI,EAC/DC,EAAkB,CAAC,iBAAkB,uBAAuB,EAC5DC,EAAsB,mBAE5B,IAAMC,EAA4B,IAAI,OAAO,OAAOC,EAAgB,KAAK,GAAG,CAAC,IAAI,EAC3EC,EAAoC,IAAI,OAAO,QAAQC,CAAmB,GAAG,EC1D5E,IAAMC,EAAgBC,EAAkBC,GACpC,MAAO,CAAE,QAAAC,EAAS,SAAAC,EAAU,OAAAC,EAAQ,KAAAC,CAAK,IAAM,CAKlD,IAAMC,EAAO,MAJI,MAAML,EAAe,cAAc,GAAGC,CAAO,gBAAgBC,CAAQ,IAAIC,CAAM,QAAS,CACrG,KAAM,KAAK,UAAUC,CAAI,EACzB,OAAQ,MACZ,CAAC,GAC2B,KAAK,EAEjC,GAAIC,EAAK,YAAc,GACnB,MAAMA,EAAK,OAEf,OAAOA,EAAK,MAChB,CACH","names":["createRESTModule","descriptor","elevated","contextualizeRESTModuleV2","DOMAINS","REGEX_CAPTURE_DOMAINS","DOMAINS","WIX_API_DOMAINS","DEV_WIX_CODE_DOMAIN","REGEX_CAPTURE_API_DOMAINS","WIX_API_DOMAINS","REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN","DEV_WIX_CODE_DOMAIN","callWebMethod","createRESTModule","restModuleOpts","baseURL","filename","method","args","json"]}
1
+ {"version":3,"sources":["../../../node_modules/@wix/web-methods-platform/build/client/index.js"],"sourcesContent":["import { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nexport const callWebMethod = createRESTModule((restModuleOpts) => {\n return async ({ baseURL, filename, method, args }) => {\n const response = await restModuleOpts.fetchWithAuth(`${baseURL}/_webMethods/${filename}/${method}.ajax`, {\n body: JSON.stringify(args),\n method: 'POST',\n });\n const json = await response.json();\n // request failed\n if (json.exception === true) {\n throw json.result;\n }\n return json.result;\n };\n});\n"],"mappings":"gGACO,IAAMA,EAAgBC,EAAkBC,GACpC,MAAO,CAAE,QAAAC,EAAS,SAAAC,EAAU,OAAAC,EAAQ,KAAAC,CAAK,IAAM,CAKlD,IAAMC,EAAO,MAJI,MAAML,EAAe,cAAc,GAAGC,CAAO,gBAAgBC,CAAQ,IAAIC,CAAM,QAAS,CACrG,KAAM,KAAK,UAAUC,CAAI,EACzB,OAAQ,MACZ,CAAC,GAC2B,KAAK,EAEjC,GAAIC,EAAK,YAAc,GACnB,MAAMA,EAAK,OAEf,OAAOA,EAAK,MAChB,CACH","names":["callWebMethod","createRESTModule","restModuleOpts","baseURL","filename","method","args","json"]}
@@ -2,36 +2,36 @@ import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  createPreviewTag
5
- } from "./chunk-XBBIROHO.js";
5
+ } from "./chunk-6US7335E.js";
6
6
  import {
7
7
  addUserFields
8
- } from "./chunk-S7UPYDTK.js";
9
- import "./chunk-MEDHLZDL.js";
8
+ } from "./chunk-YW2RBPPY.js";
9
+ import "./chunk-MTEB33GR.js";
10
10
  import {
11
11
  ARMClient,
12
12
  SiteListClient,
13
13
  resolveConfiguredSite,
14
14
  resolveDashboardExtensionUrl,
15
15
  resolvePlatformUrl
16
- } from "./chunk-SJY44CC7.js";
17
- import "./chunk-EL6CIFIN.js";
18
- import "./chunk-Z7MEHVBF.js";
19
- import "./chunk-QZOQAFHK.js";
20
- import "./chunk-A3UPTTKJ.js";
21
- import "./chunk-KJRYBTZB.js";
22
- import "./chunk-KJF6LWGQ.js";
16
+ } from "./chunk-6IX6CDWB.js";
17
+ import "./chunk-A3FHJ4EK.js";
18
+ import "./chunk-4WKSS3PU.js";
19
+ import "./chunk-ZR3N5INU.js";
20
+ import "./chunk-KVM6MGID.js";
21
+ import "./chunk-V75TFIXI.js";
22
+ import "./chunk-LMFNRK6X.js";
23
23
  import {
24
24
  DevCenterComponent,
25
25
  PlatformType,
26
26
  createHttpClient,
27
27
  isLoggedInToAccount,
28
28
  uploadApplication
29
- } from "./chunk-MKPZBVQD.js";
29
+ } from "./chunk-LULKQBSP.js";
30
30
  import {
31
31
  CliError,
32
32
  CliErrorCode,
33
33
  require_lib
34
- } from "./chunk-XCKLCHGL.js";
34
+ } from "./chunk-PM4M3SGC.js";
35
35
  import {
36
36
  __toESM,
37
37
  init_esm_shims
@@ -135,4 +135,4 @@ async function nonInteractivePreview(options, model, services) {
135
135
  export {
136
136
  nonInteractivePreview
137
137
  };
138
- //# sourceMappingURL=preview-YEREVN42.js.map
138
+ //# sourceMappingURL=preview-ZAKEXAJH.js.map
@@ -2,14 +2,14 @@ import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  messages_default
5
- } from "./chunk-ELYFHAX6.js";
5
+ } from "./chunk-2DRVDGHR.js";
6
6
  import {
7
7
  addUserFields,
8
8
  reportCommandStartEvent
9
- } from "./chunk-S7UPYDTK.js";
9
+ } from "./chunk-YW2RBPPY.js";
10
10
  import {
11
11
  DebugLogProvider
12
- } from "./chunk-A3UPTTKJ.js";
12
+ } from "./chunk-KVM6MGID.js";
13
13
  import {
14
14
  AccountAuthProvider,
15
15
  BiProvider,
@@ -17,7 +17,7 @@ import {
17
17
  ProjectModelProvider,
18
18
  getDebugLogFilePath,
19
19
  loadProjectModel
20
- } from "./chunk-MKPZBVQD.js";
20
+ } from "./chunk-LULKQBSP.js";
21
21
  import {
22
22
  CliError,
23
23
  CliErrorCode,
@@ -25,7 +25,7 @@ import {
25
25
  render,
26
26
  require_react,
27
27
  version
28
- } from "./chunk-XCKLCHGL.js";
28
+ } from "./chunk-PM4M3SGC.js";
29
29
  import {
30
30
  __toESM,
31
31
  init_esm_shims
@@ -114,4 +114,4 @@ export {
114
114
  renderCommand,
115
115
  runCommand
116
116
  };
117
- //# sourceMappingURL=render-command-H5DHMFOD.js.map
117
+ //# sourceMappingURL=render-command-XMQH723O.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wix/cli-app",
3
3
  "description": "CLI tool for Wix apps",
4
- "version": "1.1.61",
4
+ "version": "1.1.62",
5
5
  "author": "Amit Dahan",
6
6
  "dependencies": {
7
7
  "esbuild": "^0.21.3",
@@ -20,7 +20,7 @@
20
20
  "@wix/ambassador-ctp-gradual-rollout-v1-app-config": "^1.0.73",
21
21
  "@wix/ambassador-devcenter-apps-v1-app": "^1.0.538",
22
22
  "@wix/ambassador-devcenter-components-v1-component": "^1.0.436",
23
- "@wix/app-cloud-uploader": "^1.13.0",
23
+ "@wix/app-cloud-uploader": "^1.14.0",
24
24
  "@wix/arm-client": "0.0.0",
25
25
  "@wix/bi-logger-dev-tools-data": "^1.89.0",
26
26
  "@wix/cli-app-definitions": "0.0.0",
@@ -150,5 +150,5 @@
150
150
  ]
151
151
  }
152
152
  },
153
- "falconPackageHash": "1379b74ffc2f2424efdc5687e763a5e4d093a9c222957524691fea79"
153
+ "falconPackageHash": "f1161d5a4a811cb9404e7c98e7656f61c7ade5d0d10772bf26972107"
154
154
  }
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "@wix/code": "^1.0.2"
4
+ }
5
+ }
@@ -4,7 +4,14 @@ to: <%- filePath -%>.web.ts
4
4
  /**
5
5
  This file allows you to define backend functions that you can call from the front end of this app with type-safety.
6
6
 
7
- To learn more, check out our documentation: https://wix.to/Iabrrso.
7
+ Here's how you can call your web method from your frontend code:
8
+
9
+ import { multiply } from '<path-to-your-web-methods-directory>/<%- fileName -%>.web';
10
+
11
+ multiply(3, 4)
12
+ .then(result => console.log(result));
13
+
14
+ To learn more, check out our documentation: https://wix.to/6LV6Oka.
8
15
  */
9
16
 
10
17
  import { webMethod, Permissions } from '@wix/code/web-methods';
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/DevCommand/index.ts","../src/components/DevCommand/DevCommand.tsx","../src/components/DevCommand/DevCommandScreens.tsx","../src/components/DevCommand/HomeScreen.tsx","../src/components/DevCommand/screen-state.ts","../src/components/Platform/PlatformSelector.tsx","../src/components/DevCommand/DashboardNumericViewer.tsx","../src/components/CloseScreen/CloseScreen.tsx","../src/components/DevCommand/DashboardScreen.tsx","../src/components/DevCommand/DashboardArrowViewer.tsx","../src/components/NumericViewer/index.ts","../src/components/NumericViewer/NumericViewer.tsx","../src/components/DevCommand/SiteSelectorScreen.tsx","../src/components/CloseScreen/index.tsx","../src/components/DevCommand/BackendScreen.tsx","../src/components/DevCommand/BackendNumericViewer.tsx","../src/components/DevCommand/BackendArrowViewer.tsx","../src/components/DevCommand/TunnelingConsent.tsx","../../cli-user-config/src/user-config.ts","../src/components/DevCommand/CustomElementsMigration.tsx","../src/components/DevCommand/RequiredAppsWarning.tsx","../src/components/DevCommand/DevScreenBorder.tsx"],"sourcesContent":["export { DevCommand } from './DevCommand.js';\nexport { DevEnvironmentProvider } from './DevEnvironment.js';\n","import React, { useMemo } from 'react';\nimport type { FC } from 'react';\nimport { SiteProvider } from '../../site/SiteProvider.js';\nimport { DevEnvironmentProvider } from './DevEnvironment.js';\nimport { DevCommandScreens } from './DevCommandScreens.js';\nimport { TunnelingConsent } from './TunnelingConsent.js';\nimport { CustomElementsMigration } from './CustomElementsMigration.js';\nimport { RequiredAppsWarning } from './RequiredAppsWarning.js';\nimport { DevScreenBorder } from './DevScreenBorder.js';\nimport { createLogger } from '../../vite/logger.js';\n\nexport const DevCommand: FC<{ https: boolean }> = ({ https }) => {\n const logger = useMemo(() => createLogger({ timestamp: true }), []);\n\n return (\n <SiteProvider>\n <TunnelingConsent>\n <DevEnvironmentProvider logger={logger} https={https}>\n <CustomElementsMigration>\n <RequiredAppsWarning>\n <DevScreenBorder>\n <DevCommandScreens />\n </DevScreenBorder>\n </RequiredAppsWarning>\n </CustomElementsMigration>\n </DevEnvironmentProvider>\n </TunnelingConsent>\n </SiteProvider>\n );\n};\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { HomeScreen } from './HomeScreen.js';\nimport { SiteSelectorScreen } from './SiteSelectorScreen.js';\nimport { ScreenState } from './screen-state.js';\nimport { DashboardScreen } from './DashboardScreen.js';\nimport { BackendScreen } from './BackendScreen.js';\n\nexport const DevCommandScreens: FC = () => {\n const [screen, setScreen] = useState<ScreenState>(ScreenState.Home());\n\n return match(screen, {\n Home: () => <HomeScreen onScreenChange={setScreen} />,\n SiteSelector: () => <SiteSelectorScreen onScreenChange={setScreen} />,\n DashboardScreen: ({ selectorType }) => (\n <DashboardScreen\n initialSelectorType={selectorType}\n onSelect={() => setScreen(ScreenState.Home())}\n onClose={() => setScreen(ScreenState.Home())}\n />\n ),\n BackendScreen: ({ selectorType }) => (\n <BackendScreen\n initialSelectorType={selectorType}\n onSelect={() => setScreen(ScreenState.Home())}\n onClose={() => setScreen(ScreenState.Home())}\n />\n ),\n });\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Box, Text, Link, useInput, Key } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { isType } from 'variant';\nimport { useSite } from '../../site/index.js';\nimport { ScreenState } from './screen-state.js';\nimport { PlatformSelector } from '../Platform/PlatformSelector.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport { DashboardNumericViewer } from './DashboardNumericViewer.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport { usePlatform } from '../Platform/usePlatform.js';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const HomeScreen: FC<Props> = ({ onScreenChange }) => {\n const { t } = useTranslation();\n const { site } = useSite();\n const bi = useWixCliAppBi();\n const { hasSinglePlatform } = usePlatform();\n const { hasExtensions, dashboardExtensions } = useExtensions();\n const { backendComponents } = useBackendComponents();\n\n useInput(async (input) => {\n if (input === 'c') {\n bi.cliAction({\n question: t('dev_command.dev_site.change'),\n questionKey: 'dev_command.dev_site.change',\n action: 'change_site',\n key: input,\n });\n onScreenChange(ScreenState.SiteSelector());\n }\n });\n\n return (\n <>\n <Box gap={1}>\n <Trans\n i18nKey=\"dev_command.dev_site.current\"\n values={{ siteName: site.displayName }}\n components={[<Text bold skin=\"info\" />]}\n />\n\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"dev_command.dev_site.change\"\n components={[<Key value=\"C\" skin=\"secondary\" />]}\n />\n </Text>\n </Box>\n\n <Box paddingTop={1} paddingBottom={1} flexDirection=\"column\">\n {!hasExtensions() ? (\n <Trans\n i18nKey=\"general.platform.none\"\n // Original link is:\n // https://dev.wix.com/docs/build-apps/developer-tools/cli/get-started/about-the-wix-cli-for-apps\n components={[<Link url=\"https://wix.to/b7o4Ml0\" />]}\n />\n ) : (\n <>\n {hasSinglePlatform(PlatformType.Dashboard()) &&\n backendComponents.length === 0 &&\n dashboardExtensions.some(\n (dashboardExtension) =>\n !isType(dashboardExtension, 'DashboardModal')\n ) ? (\n <DashboardNumericViewer\n onViewMore={(selectorType) =>\n onScreenChange(\n ScreenState.DashboardScreen({\n selectorType,\n })\n )\n }\n />\n ) : (\n <>\n <Trans\n i18nKey=\"general.view_changes\"\n components={[<Text skin=\"secondary\" />]}\n />\n <PlatformSelector\n onMultipleDashboardExtensionSelection={() =>\n onScreenChange(ScreenState.DashboardScreen())\n }\n onMultipleBackendComponentSelection={() =>\n onScreenChange(ScreenState.BackendScreen())\n }\n />\n </>\n )}\n </>\n )}\n </Box>\n </>\n );\n};\n","import { fields, variant } from 'variant';\nimport type { VariantOf } from 'variant';\nimport type { DashboardScreenSelector } from './DashboardScreen.js';\nimport type { BackendScreenSelector } from './BackendScreen.js';\n\nexport const ScreenState = variant({\n Home: {},\n SiteSelector: {},\n DashboardScreen: fields<{ selectorType?: DashboardScreenSelector }>(),\n BackendScreen: fields<{ selectorType?: BackendScreenSelector }>(),\n});\n\nexport type ScreenState = VariantOf<typeof ScreenState>;\n","import React, { useCallback, useMemo } from 'react';\nimport type { FC } from 'react';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { PointerSmallIcon, Key, useInput, Text, Box } from '@wix/cli-ui-kit';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport {\n useOpenPage,\n useResolveDashboardExtensionDevUrl,\n useResolvePlatformDevUrl,\n} from '../extensions/utils.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport { usePlatform } from './usePlatform.js';\nimport { useSite } from '../../site/useSite.js';\n\ninterface PlatformOptionProps {\n inputKey: string;\n label: string;\n suffix?: React.ReactNode;\n disabled?: boolean;\n}\n\nconst PlatformOption: FC<PlatformOptionProps> = ({\n label,\n inputKey,\n suffix,\n disabled,\n}) => {\n const getTextSkin = () => (disabled ? 'secondary' : 'standard');\n\n return (\n <Box>\n <Box marginRight={1}>\n <Box marginRight={1}>\n <Text skin={getTextSkin()}>\n <PointerSmallIcon /> <Key value={inputKey} /> -\n </Text>\n </Box>\n <Box gap={1}>\n <Text skin={getTextSkin()}>{label}</Text>\n </Box>\n </Box>\n <Text skin={getTextSkin()}>{suffix}</Text>\n </Box>\n );\n};\n\ninterface PlatformSelector {\n onMultipleDashboardExtensionSelection: () => void;\n onMultipleBackendComponentSelection: () => void;\n}\n\nexport const PlatformSelector: FC<PlatformSelector> = ({\n onMultipleDashboardExtensionSelection,\n}) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n const { isPlatformExists } = usePlatform();\n const { dashboardExtensions } = useExtensions();\n const resolvePlatformUrl = useResolvePlatformDevUrl();\n const resolveDashboardExtensionUrl = useResolveDashboardExtensionDevUrl();\n const { site } = useSite();\n const openPage = useOpenPage();\n\n const openPlatform = useCallback(\n async (platformType: PlatformType) => {\n await openPage({\n title: platformType.type,\n url: resolvePlatformUrl(platformType),\n });\n },\n [openPage, resolvePlatformUrl]\n );\n\n useInput(async (input) => {\n if (input === 'd' && isPlatformExists(PlatformType.Dashboard())) {\n bi.cliAction({\n question: t('general.view_changes'),\n questionKey: 'general.view_changes',\n action: t('general.platform.dashboard'),\n key: input,\n });\n if (dashboardExtensions.length === 1) {\n await openPage({\n title: 'Dashboard',\n url: resolveDashboardExtensionUrl(dashboardExtensions[0]!),\n });\n } else {\n onMultipleDashboardExtensionSelection();\n }\n }\n if (input === 'e' && isPlatformExists(PlatformType.Editor())) {\n bi.cliAction({\n question: t('general.view_changes'),\n questionKey: 'general.view_changes',\n action: t('general.platform.editor'),\n key: input,\n });\n await openPlatform(PlatformType.Editor());\n }\n if (\n input === 's' &&\n site.viewUrl &&\n isPlatformExists(PlatformType.Site())\n ) {\n bi.cliAction({\n question: t('general.view_changes'),\n questionKey: 'general.view_changes',\n action: t('general.platform.site'),\n key: input,\n });\n await openPlatform(PlatformType.Site());\n }\n // TODO: Uncomment once https://jira.wixpress.com/browse/FEDINF-12234 is done\n // if (input === 'b' && model.backendComponents.length > 0) {\n // bi.cliAction({\n // question: t('general.view_changes'),\n // questionKey: 'general.view_changes',\n // action: t('general.platform.backend'),\n // key: input,\n // });\n // onMultipleBackendComponentSelection();\n // }\n });\n\n const dashboardOptionSuffix = useMemo(() => {\n if (dashboardExtensions.length === 0) {\n return null;\n }\n if (dashboardExtensions.length === 1) {\n return <Text skin=\"secondary\"> - {dashboardExtensions[0]!.route}</Text>;\n }\n return <Text>{String.fromCodePoint(0x25bc)}</Text>; // ▼\n }, [dashboardExtensions]);\n\n return (\n <Box paddingLeft={2} flexDirection=\"column\">\n {isPlatformExists(PlatformType.Site()) && (\n <PlatformOption\n inputKey=\"S\"\n label={\n site.viewUrl\n ? t('general.platform.site')\n : t('general.platform.unpublished_site')\n }\n disabled={!site.viewUrl}\n />\n )}\n {isPlatformExists(PlatformType.Editor()) && (\n <PlatformOption inputKey=\"E\" label={t('general.platform.editor')} />\n )}\n {isPlatformExists(PlatformType.Dashboard()) && (\n <PlatformOption\n inputKey=\"D\"\n label={t('general.platform.dashboard')}\n suffix={dashboardOptionSuffix}\n />\n )}\n {/*\n // TODO: Uncomment once https://jira.wixpress.com/browse/FEDINF-12234 is done\n {(hasComponentByType('Event') || hasComponentByType('ServicePlugin')) && (\n <PlatformOption\n inputKey=\"B\"\n label={t('general.platform.backend')}\n suffix={<Text>{String.fromCodePoint(0x25bc)}</Text>} // ▼\n />\n )} */}\n </Box>\n );\n};\n","import React, { useMemo, useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Box, useInput } from '@wix/cli-ui-kit';\nimport { lookup, match } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport {\n useOpenPage,\n useResolveDashboardExtensionDevUrl,\n} from '../extensions/utils.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport { DashboardScreenSelector } from './DashboardScreen.js';\nimport type { DashboardExtension } from '../extensions/useExtensions.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport { NumericViewer } from '../NumericViewer/index.js';\nimport { NumericOption } from '../NumericViewer/NumericViewer.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\n\nconst MAX_EXTENSIONS = 9;\nconst MAX_DASHBOARD_PAGES = 3;\nconst MAX_PAGE_PLUGINS = 3;\nconst MAX_MENU_PLUGINS = 3;\n\ninterface Props {\n onViewMore: (dashboardScreenSelector: DashboardScreenSelector) => void;\n onSelect?: (page: DevCenterComponent<DashboardExtension>) => void;\n onClose?: () => void;\n}\n\nexport const DashboardNumericViewer: FC<Props> = ({\n onViewMore,\n onSelect,\n onClose,\n}) => {\n const { t } = useTranslation();\n const { getExtensions } = useExtensions();\n const bi = useWixCliAppBi();\n const resolveDashboardExtensionUrl = useResolveDashboardExtensionDevUrl();\n const openPage = useOpenPage();\n\n const dashboardExtensions = useMemo(\n () => ({\n dashboardPages: getExtensions('DashboardPage'),\n dashboardMenuPlugins: getExtensions('DashboardMenuPlugin'),\n dashboardPlugins: getExtensions('DashboardPlugin'),\n }),\n [getExtensions]\n );\n\n const dashboardPagesData = dashboardExtensions.dashboardPages.slice(\n 0,\n dashboardExtensions.dashboardPages.length > MAX_DASHBOARD_PAGES\n ? MAX_DASHBOARD_PAGES - 1\n : dashboardExtensions.dashboardPages.length\n );\n\n const dashboardPagesShowMoreIndex =\n dashboardExtensions.dashboardPages.length > dashboardPagesData.length\n ? dashboardPagesData.length + 1\n : undefined;\n\n const dashboardPagesCount = Math.max(\n dashboardPagesData.length,\n dashboardPagesShowMoreIndex ?? 0\n );\n\n const maxMenuPlugins = Math.min(\n MAX_MENU_PLUGINS,\n Math.floor((MAX_EXTENSIONS - dashboardPagesCount) / 2)\n );\n\n const dashboardMenuPluginsData =\n dashboardExtensions.dashboardMenuPlugins.slice(\n 0,\n dashboardExtensions.dashboardMenuPlugins.length > maxMenuPlugins\n ? maxMenuPlugins - 1\n : dashboardExtensions.dashboardMenuPlugins.length\n );\n\n const dashboardMenuPluginsShowMoreIndex =\n dashboardExtensions.dashboardMenuPlugins.length >\n dashboardMenuPluginsData.length\n ? dashboardMenuPluginsData.length + dashboardPagesCount + 1\n : undefined;\n\n const dashboardMenuPluginsCount = Math.max(\n dashboardMenuPluginsData.length + dashboardPagesCount,\n dashboardMenuPluginsShowMoreIndex ?? 0\n );\n\n const maxPagePlugins = Math.min(\n MAX_PAGE_PLUGINS,\n MAX_EXTENSIONS - dashboardMenuPluginsCount\n );\n\n const dashboardPluginsData = dashboardExtensions.dashboardPlugins.slice(\n 0,\n dashboardExtensions.dashboardPlugins.length > maxPagePlugins\n ? maxPagePlugins - 1\n : dashboardExtensions.dashboardPlugins.length\n );\n\n const dashboardPluginsShowMoreIndex =\n dashboardExtensions.dashboardPlugins.length > dashboardPluginsData.length\n ? dashboardPluginsData.length + dashboardMenuPluginsCount + 1\n : undefined;\n\n const visibleItems: Array<\n NumericOption<DevCenterComponent<DashboardExtension>, DashboardExtension>\n > = [\n ...dashboardPagesData.map((page) =>\n NumericOption.Item({\n title: page.title,\n description: page.route,\n value: page,\n })\n ),\n ...(dashboardPagesShowMoreIndex\n ? [NumericOption.ViewMore('DashboardPage' as DashboardExtension)]\n : []),\n ...dashboardMenuPluginsData.map((menuPlugin) =>\n NumericOption.Item({\n title: menuPlugin.title,\n description: menuPlugin.route,\n value: menuPlugin,\n })\n ),\n ...(dashboardMenuPluginsShowMoreIndex\n ? [NumericOption.ViewMore('DashboardMenuPlugin' as DashboardExtension)]\n : []),\n ...dashboardPluginsData.map((pagePlugin) =>\n NumericOption.Item({\n title: pagePlugin.title,\n description: pagePlugin.route,\n value: pagePlugin,\n })\n ),\n ...(dashboardPluginsShowMoreIndex\n ? [NumericOption.ViewMore('DashboardPlugin' as DashboardExtension)]\n : []),\n ];\n\n const getLabelKey = (\n dashboardExtension: DevCenterComponent<DashboardExtension>\n ) => {\n return match(\n dashboardExtension,\n lookup({\n DashboardPage: 'general.dashboard_pages_viewer.title',\n DashboardMenuPlugin: 'general.dashboard_menu_plugins_viewer.title',\n DashboardPlugin: 'general.dashboard_plugins_viewer.title',\n DashboardModal: '', // NOTE: No key for this type\n })\n );\n };\n\n useInput(async (input) => {\n const inputNumber = Number(input);\n if (inputNumber > 0 && inputNumber <= visibleItems.length) {\n const itemIndex = inputNumber - 1;\n const item = visibleItems.at(itemIndex);\n if (item) {\n await match(item, {\n Item: async (item) => {\n bi.cliAction({\n question: t(getLabelKey(item.value)),\n questionKey: getLabelKey(item.value),\n action: item.title,\n key: input,\n });\n await handleSelect(item.value);\n },\n ViewMore: (viewMore) => {\n bi.cliAction({\n question: t('general.numeric_viewer.show_more'),\n questionKey: 'general.numeric_viewer.show_more',\n action: 'view_more',\n key: input,\n });\n onViewMore(\n DashboardScreenSelector.Arrow({\n dashboardExtension: viewMore.payload,\n })\n );\n },\n });\n }\n }\n });\n\n const handleSelect = useCallback(\n async (dashboardExtension: DevCenterComponent<DashboardExtension>) => {\n const url = resolveDashboardExtensionUrl(dashboardExtension);\n await openPage({ url, title: dashboardExtension.title });\n onSelect?.(dashboardExtension);\n },\n [onSelect, openPage, resolveDashboardExtensionUrl]\n );\n\n const dashboardPages = visibleItems.slice(0, dashboardPagesCount);\n const dashboardMenuPlugins = visibleItems.slice(\n dashboardPagesCount,\n dashboardMenuPluginsCount\n );\n const dashboardPlugins = visibleItems.slice(dashboardMenuPluginsCount);\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n {dashboardPages.length > 0 && (\n <NumericViewer\n startIndex={0}\n titleKey=\"general.dashboard_pages_viewer.title\"\n items={dashboardPages}\n />\n )}\n {dashboardMenuPlugins.length > 0 && (\n <NumericViewer\n startIndex={dashboardPagesCount}\n titleKey=\"general.dashboard_menu_plugins_viewer.title\"\n items={dashboardMenuPlugins}\n />\n )}\n {dashboardPlugins.length > 0 && (\n <NumericViewer\n startIndex={dashboardMenuPluginsCount}\n titleKey=\"general.dashboard_plugins_viewer.title\"\n items={dashboardPlugins}\n />\n )}\n {onClose && <CloseScreen onClose={onClose} />}\n </Box>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Key, Text, useInput } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { useWixCliAppBi } from '../../bi/index.js';\n\ninterface Props {\n onClose: () => void;\n}\n\nexport const CloseScreen: FC<Props> = ({ onClose }) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n\n useInput((_, key) => {\n if (key.escape) {\n bi.cliAction({\n question: t('general.close_screen'),\n questionKey: 'general.close_screen',\n action: 'close',\n key: 'esc',\n });\n onClose();\n }\n });\n\n return (\n <Text skin=\"secondary\">\n <Trans\n i18nKey=\"general.close_screen\"\n components={[<Key value=\"esc\" skin=\"secondary\" />]}\n />\n </Text>\n );\n};\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { fields, match, variant } from 'variant';\nimport type { VariantOf } from 'variant';\nimport { DashboardArrowViewer } from './DashboardArrowViewer.js';\nimport { DashboardNumericViewer } from './DashboardNumericViewer.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type { DashboardExtension } from '../extensions/useExtensions.js';\n\nexport const DashboardScreenSelector = variant({\n Arrow: fields<{\n dashboardExtension: DashboardExtension;\n }>(),\n Numeric: {},\n});\n\nexport type DashboardScreenSelector = VariantOf<typeof DashboardScreenSelector>;\n\ninterface Props {\n onClose: () => void;\n onSelect?: (page: DevCenterComponent<DashboardExtension>) => void;\n initialSelectorType?: DashboardScreenSelector;\n}\n\nexport const DashboardScreen: FC<Props> = ({\n onClose,\n onSelect,\n initialSelectorType = DashboardScreenSelector.Numeric(),\n}) => {\n const [selectorType, setSelectorType] =\n useState<DashboardScreenSelector>(initialSelectorType);\n\n return (\n <>\n {match(selectorType, {\n Arrow: ({ dashboardExtension }) => (\n <DashboardArrowViewer\n dashboardExtension={dashboardExtension}\n onSelect={onSelect}\n onClose={onClose}\n />\n ),\n Numeric: () => (\n <DashboardNumericViewer\n onViewMore={setSelectorType}\n onSelect={onSelect}\n onClose={onClose}\n />\n ),\n })}\n </>\n );\n};\n","import React, { useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Box, SelectInput } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { match, lookup } from 'variant';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport {\n useOpenPage,\n useResolveDashboardExtensionDevUrl,\n} from '../extensions/utils.js';\nimport { useExtensions } from '../extensions/useExtensions.js';\nimport type { DashboardExtension } from '../extensions/useExtensions.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\n\ninterface Props {\n dashboardExtension: DashboardExtension;\n onSelect?: (page: DevCenterComponent<DashboardExtension>) => void;\n onClose: () => void;\n}\n\nexport const DashboardArrowViewer: FC<Props> = ({\n dashboardExtension,\n onClose,\n onSelect,\n}) => {\n const { t } = useTranslation();\n const { getExtensions } = useExtensions();\n const bi = useWixCliAppBi();\n const resolveDashboardExtensionUrl = useResolveDashboardExtensionDevUrl();\n const openPage = useOpenPage();\n\n const getLabelKey = useCallback(\n () =>\n match(\n dashboardExtension,\n lookup({\n DashboardPlugin:\n 'dev_command.dashboard_page_plugin_screen.select_label',\n DashboardMenuPlugin:\n 'dev_command.dashboard_menu_plugin_screen.select_label',\n DashboardPage: 'dev_command.dashboard_pages_screen.select_label',\n DashboardModal: 'dev_command.dashboard_modal_screen.select_label',\n })\n ),\n [dashboardExtension]\n );\n\n const handleSubmit = useCallback(\n async (dashboardExtension: DevCenterComponent<DashboardExtension>) => {\n const url = resolveDashboardExtensionUrl(dashboardExtension);\n bi.cliAction({\n question: t(getLabelKey()),\n questionKey: getLabelKey(),\n action: dashboardExtension.title,\n key: 'enter',\n });\n await openPage({ url, title: dashboardExtension.title });\n onSelect?.(dashboardExtension);\n },\n [resolveDashboardExtensionUrl, bi, t, getLabelKey, openPage, onSelect]\n );\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n <Box flexDirection=\"column\">\n <SelectInput<DevCenterComponent<DashboardExtension>>\n label={t(getLabelKey())}\n options={getExtensions(dashboardExtension).map(\n (dashboardExtensionInstance) => ({\n key: dashboardExtensionInstance.id,\n title: dashboardExtensionInstance.title,\n description: dashboardExtensionInstance.route,\n value: dashboardExtensionInstance,\n })\n )}\n onSubmit={({ value: dashboardExtensionInstance }) =>\n handleSubmit(dashboardExtensionInstance)\n }\n />\n </Box>\n <CloseScreen onClose={onClose} />\n </Box>\n );\n};\n","export { NumericViewer, type NumericOption } from './NumericViewer.js';\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { Box, Text, Key, PointerSmallIcon } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { variant, onTerms, fields, match, payload } from 'variant';\nimport type { TypeNames, GVariantOf } from 'variant';\n\nconst ListItem: FC<{\n itemNumber: number;\n children: ReactNode;\n}> = ({ itemNumber, children }) => {\n const keyValue = `${itemNumber}`;\n return (\n <Box flexDirection=\"row\" gap={1}>\n <Text>\n <PointerSmallIcon /> <Key value={keyValue} /> -\n </Text>\n {children}\n </Box>\n );\n};\n\nexport const NumericOption = variant(\n onTerms(({ I: _I, V }) => ({\n Item: fields<{ title: string; description?: string; value: typeof _I }>(),\n ViewMore: payload(V),\n }))\n);\n\nexport type NumericOption<\n I,\n V,\n TType extends TypeNames<typeof NumericOption> = undefined,\n> = GVariantOf<typeof NumericOption, TType, { I: I; V: V }>;\n\ninterface Props<I, V> {\n startIndex: number;\n titleKey: string;\n items: Array<NumericOption<I, V>>;\n}\n\nexport function NumericViewer<I, V>({\n startIndex,\n titleKey,\n items,\n}: Props<I, V>) {\n return (\n <Box flexDirection=\"column\">\n <Trans i18nKey={titleKey} />\n <Box paddingLeft={2} flexDirection=\"column\">\n {items.map((item, index) => (\n <ListItem\n key={startIndex + index + 1}\n itemNumber={startIndex + index + 1}\n >\n {match(item, {\n Item: ({ title, description }) => (\n <Box flexDirection=\"row\" gap={1}>\n <Text>{title}</Text>\n {description && <Text skin=\"secondary\">({description})</Text>}\n </Box>\n ),\n ViewMore: () => (\n <Trans i18nKey=\"general.numeric_viewer.show_more\" />\n ),\n })}\n </ListItem>\n ))}\n </Box>\n </Box>\n );\n}\n","import React, { useState, useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Alert, Box, PointerIcon } from '@wix/cli-ui-kit';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport type { Site } from '@wix/site-list-client';\nimport { Trans, 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 { useSite } from '../../site/index.js';\nimport { CloseScreen } from '../CloseScreen/index.js';\nimport { ScreenState } from './screen-state.js';\n\ninterface Props {\n onScreenChange: (screen: ScreenState) => void;\n}\n\nexport const SiteSelectorScreen: FC<Props> = ({ onScreenChange }) => {\n const { t } = useTranslation();\n const { model } = useProjectModel();\n const biLogger = useBiLogger();\n const { site, setSite } = useSite();\n const { reportError } = useErrorReporter();\n const [error, setError] = useState<unknown>(null);\n\n const handleError = useCallback(\n (error: unknown) => {\n reportError(error);\n setError(error);\n },\n [reportError, setError]\n );\n\n const handleSubmit = useCallback(\n async (site: Site) => {\n try {\n await setSite(site);\n onScreenChange(ScreenState.Home());\n } catch (e) {\n handleError(e);\n }\n },\n [setSite, onScreenChange, handleError]\n );\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n <Box gap={1}>\n <PointerIcon />\n <Trans\n i18nKey=\"general.dev_site.current\"\n values={{ name: site.displayName }}\n />\n </Box>\n <Box flexDirection=\"column\">\n <SiteSelector\n appId={model.config.appId}\n biLogger={biLogger}\n onSubmit={handleSubmit}\n onError={handleError}\n />\n {error ? (\n <ErrorViewer\n error={error}\n systemErrorOverride={\n <Alert type=\"error\">{t('dev_command.site_selector.error')}</Alert>\n }\n />\n ) : null}\n </Box>\n <CloseScreen onClose={() => onScreenChange(ScreenState.Home())} />\n </Box>\n );\n};\n","export { CloseScreen } from './CloseScreen.js';\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { fields, match, variant } from 'variant';\nimport type { VariantOf } from 'variant';\nimport { BackendNumericViewer } from './BackendNumericViewer.js';\nimport { BackendArrowViewer } from './BackendArrowViewer.js';\nimport type {\n BackendViewerComponent,\n BackendViewerComponentNames,\n} from './backend-viewer.js';\n\nexport const BackendScreenSelector = variant({\n Arrow: fields<{\n backendComponentName: BackendViewerComponentNames;\n }>(),\n Numeric: {},\n});\n\nexport type BackendScreenSelector = VariantOf<typeof BackendScreenSelector>;\n\ninterface Props {\n onClose: () => void;\n onSelect?: (backendComponent: BackendViewerComponent) => void;\n initialSelectorType?: BackendScreenSelector;\n}\n\nexport const BackendScreen: FC<Props> = ({\n onClose,\n onSelect,\n initialSelectorType = BackendScreenSelector.Numeric(),\n}) => {\n const [selectorType, setSelectorType] =\n useState<BackendScreenSelector>(initialSelectorType);\n\n return (\n <>\n {match(selectorType, {\n Arrow: ({ backendComponentName }) => (\n <BackendArrowViewer\n backendComponentName={backendComponentName}\n onSelect={onSelect}\n onClose={onClose}\n />\n ),\n Numeric: () => (\n <BackendNumericViewer\n onViewMore={setSelectorType}\n onClose={onClose}\n />\n ),\n })}\n </>\n );\n};\n","import React, { useCallback } from 'react';\nimport type { FC } from 'react';\nimport { Box, useInput } from '@wix/cli-ui-kit';\nimport { match, lookup } from 'variant';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\nimport {\n NumericOption,\n NumericViewer,\n} from '../NumericViewer/NumericViewer.js';\nimport { BackendScreenSelector } from './BackendScreen.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport type { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport type {\n BackendViewerComponent,\n BackendViewerComponentNames,\n} from './backend-viewer.js';\n\nconst MAX_BACKEND_COMPONENT = 9;\nconst MAX_SERVICE_PLUGINS = 4;\nconst MAX_EVENTS = 5;\n\ninterface Props {\n onViewMore: (backendScreen: BackendScreenSelector) => void;\n onSelect?: (backendComponent: BackendViewerComponent) => void;\n onClose?: () => void;\n}\n\nexport const BackendNumericViewer: FC<Props> = ({\n onViewMore,\n onSelect,\n onClose,\n}) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n const { backendComponentsByType } = useBackendComponents();\n\n const servicePluginsData = backendComponentsByType.ServicePlugin.slice(\n 0,\n backendComponentsByType.ServicePlugin.length > MAX_SERVICE_PLUGINS\n ? MAX_SERVICE_PLUGINS - 1\n : backendComponentsByType.ServicePlugin.length\n );\n\n const servicePluginsShowMoreIndex =\n backendComponentsByType.ServicePlugin.length > servicePluginsData.length\n ? servicePluginsData.length + 1\n : undefined;\n\n const servicePluginsCount = Math.max(\n servicePluginsData.length,\n servicePluginsShowMoreIndex ?? 0\n );\n\n const maxBackendEvents = Math.min(\n MAX_EVENTS,\n MAX_BACKEND_COMPONENT - servicePluginsCount\n );\n\n const backendEventsData = backendComponentsByType.Event.slice(\n 0,\n backendComponentsByType.Event.length > maxBackendEvents\n ? maxBackendEvents - 1\n : backendComponentsByType.Event.length\n );\n\n const backendEventsShowMoreIndex =\n backendComponentsByType.Event.length > backendEventsData.length\n ? backendEventsData.length + servicePluginsCount + 1\n : undefined;\n\n const visibleItems: Array<\n NumericOption<BackendViewerComponent, BackendViewerComponentNames>\n > = [\n ...servicePluginsData.map(\n (servicePlugin: DevCenterComponent<'ServicePlugin'>) =>\n NumericOption.Item({\n title: servicePlugin.servicePlugin.name,\n value: servicePlugin,\n })\n ),\n ...(servicePluginsShowMoreIndex\n ? [NumericOption.ViewMore('ServicePlugin' as BackendViewerComponentNames)]\n : []),\n ...backendEventsData.map((event: DevCenterComponent<'Event'>) =>\n NumericOption.Item({\n title: event.title,\n value: event,\n })\n ),\n ...(backendEventsShowMoreIndex\n ? [NumericOption.ViewMore('Event' as BackendViewerComponentNames)]\n : []),\n ];\n\n const getLabelKey = (backendComponent: BackendViewerComponent) => {\n return match(\n backendComponent,\n lookup({\n Api: 'general.backend_api_viewer.title',\n Event: 'general.backend_events_viewer.title',\n ServicePlugin: 'general.backend_plugin_viewer.title',\n })\n );\n };\n\n useInput((input) => {\n const inputNumber = Number(input);\n if (inputNumber > 0 && inputNumber <= visibleItems.length) {\n const item = visibleItems.at(inputNumber - 1);\n if (item) {\n match(item, {\n Item: (item) => {\n bi.cliAction({\n question: t(getLabelKey(item.value)),\n questionKey: getLabelKey(item.value),\n action: item.title,\n key: input,\n });\n handleSelect(item.value);\n },\n ViewMore: (viewMore) => {\n bi.cliAction({\n question: t('general.numeric_viewer.show_more'),\n questionKey: 'general.numeric_viewer.show_more',\n action: 'view_more',\n key: input,\n });\n onViewMore(\n BackendScreenSelector.Arrow({\n backendComponentName: viewMore.payload,\n })\n );\n },\n });\n }\n }\n });\n\n const handleSelect = useCallback(\n (backendComponent: BackendViewerComponent) => {\n onSelect?.(backendComponent);\n },\n [onSelect]\n );\n\n const backendPlugins = visibleItems.slice(0, servicePluginsCount);\n const backendEvents = visibleItems.slice(servicePluginsCount);\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n {backendPlugins.length > 0 && (\n <NumericViewer\n startIndex={0}\n titleKey=\"general.backend_plugin_viewer.title\"\n items={backendPlugins}\n />\n )}\n {backendEvents.length > 0 && (\n <NumericViewer\n startIndex={servicePluginsCount}\n titleKey=\"general.backend_events_viewer.title\"\n items={backendEvents}\n />\n )}\n {onClose && <CloseScreen onClose={onClose} />}\n </Box>\n );\n};\n","import React, { useCallback, useMemo } from 'react';\nimport type { FC } from 'react';\nimport { Box, SelectInput } from '@wix/cli-ui-kit';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { isType, lookup, match } from 'variant';\nimport { CloseScreen } from '../CloseScreen/CloseScreen.js';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\nimport { useWixCliAppBi } from '../../bi/index.js';\nimport type {\n BackendViewerComponent,\n BackendViewerComponentNames,\n} from './backend-viewer.js';\n\ninterface Props {\n backendComponentName: BackendViewerComponentNames;\n onSelect?: (backendComponent: BackendViewerComponent) => void;\n onClose: () => void;\n}\n\nexport const BackendArrowViewer: FC<Props> = ({\n backendComponentName,\n onClose,\n onSelect,\n}) => {\n const { t } = useTranslation();\n const bi = useWixCliAppBi();\n const { backendComponentsByType } = useBackendComponents();\n\n const getLabelKey = useCallback(\n () =>\n match(\n backendComponentName,\n lookup({\n Api: 'dev_command.backend_apis_screen.select_label',\n Event: 'dev_command.backend_events_screen.select_label',\n ServicePlugin: 'dev_command.backend_plugins_screen.select_label',\n })\n ),\n [backendComponentName]\n );\n\n const getBackendComponentName = (backendComponent: BackendViewerComponent) =>\n isType(backendComponent, 'ServicePlugin')\n ? backendComponent.servicePlugin.name\n : backendComponent.title;\n\n const handleSubmit = useCallback(\n (backendComponent: BackendViewerComponent) => {\n bi.cliAction({\n question: t(getLabelKey()),\n questionKey: getLabelKey(),\n action: getBackendComponentName(backendComponent),\n key: 'enter',\n });\n onSelect?.(backendComponent);\n },\n [bi, getLabelKey, onSelect, t]\n );\n\n const options = useMemo(() => {\n return backendComponentsByType[backendComponentName].map(\n (backendComponent, index) => ({\n key: index.toString(),\n title: getBackendComponentName(backendComponent),\n value: backendComponent,\n })\n );\n }, [backendComponentsByType, backendComponentName]);\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n <Box flexDirection=\"column\">\n <SelectInput<BackendViewerComponent>\n label={t(getLabelKey())}\n options={options}\n onSubmit={({ value: backendComponent }) =>\n handleSubmit(backendComponent)\n }\n />\n </Box>\n <CloseScreen onClose={onClose} />\n </Box>\n );\n};\n","import React, { useState } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { ConfirmInput, Text, useAsync, useExit } from '@wix/cli-ui-kit';\nimport { Trans, useTranslation } from '@wix/cli-i18n';\nimport { readUserConfig, updateUserConfig } from '@wix/cli-user-config';\nimport { match } from 'variant';\nimport { useBackendComponents } from '../../backend/useBackendComponents.js';\n\ninterface Props {\n children: ReactNode;\n}\n\nexport const TunnelingConsent: FC<Props> = ({ children }) => {\n const exit = useExit();\n const { t } = useTranslation();\n const { backendComponents } = useBackendComponents();\n const [approved, setApproved] = useState<boolean>();\n\n const { status } = useAsync(async () => {\n const config = await readUserConfig();\n\n if (config.tunneling) {\n setApproved(true);\n }\n\n return config;\n }, []);\n\n if (backendComponents.length === 0 || approved) {\n return children;\n }\n\n return (\n <>\n {match(status, {\n Success: () => (\n <ConfirmInput\n label={t('dev_command.tunneling.confirm')}\n initialValue={true}\n onSubmit={async (approved) => {\n setApproved(approved);\n await updateUserConfig({ tunneling: approved });\n if (!approved) {\n exit();\n }\n }}\n />\n ),\n Error: () => null,\n Loading: () => null,\n })}\n {approved === false && (\n <Text skin=\"error\">\n <Trans i18nKey=\"dev_command.tunneling.abort_dev\" />\n </Text>\n )}\n </>\n );\n};\n","import { join } from 'node:path';\nimport { getDataDirPath } from '@wix/cli-data-dir';\nimport { pathExists, readJson, writeJson } from '@wix/cli-fs';\nimport {\n userConfigSchema,\n USER_CONFIG_FILENAME,\n} from '@wix/cli-core-definitions';\nimport type { UserConfig } from '@wix/cli-core-definitions';\n\nfunction getUserConfigPath() {\n return join(getDataDirPath(), USER_CONFIG_FILENAME);\n}\n\nexport async function readUserConfig() {\n const configPath = getUserConfigPath();\n const isConfigExist = await pathExists(configPath);\n const json = isConfigExist ? await readJson(configPath) : {};\n return userConfigSchema.parse(json);\n}\n\nexport async function updateUserConfig(config: Partial<UserConfig>) {\n const currentConfig = await readUserConfig();\n const newConfig = {\n ...currentConfig,\n ...config,\n };\n\n const configPath = getUserConfigPath();\n await writeJson(configPath, newConfig);\n}\n","import { setTimeout } from 'node:timers/promises';\nimport React, { useCallback, useState } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match, isType } from 'variant';\nimport { openBrowser } from '@wix/user-browser';\nimport { useTranslation, Trans } from '@wix/cli-i18n';\nimport { ComponentType } from '@wix/ambassador-devcenter-components-v1-component/types';\nimport {\n useAsync,\n Spinner,\n useAsyncCallback,\n useInput,\n Text,\n Key,\n Alert,\n} from '@wix/cli-ui-kit';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { useARMClient } from '@wix/arm-client';\nimport { useErrorReporter } from '@wix/cli-error-reporting';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { PlatformType } from '@wix/cli-app-definitions';\nimport type { CustomElement } from '@wix/cli-app-manifest';\nimport { useProjectModel } from '../../model.js';\nimport { DevCenterComponent } from '../../dev-center/components/dev-center-component.js';\nimport { createCustomElementConfig } from '../../app-manifest/create.js';\nimport { redirectWithCSMv2FTs } from '../extensions/utils.js';\nimport { useSite } from '../../site/useSite.js';\nimport { useArmTag } from '../../context/armTag.js';\n\n// You can find dummy-custom-element codebase at https://github.com/wix-private/wix-cli-internal/tree/9b2a26e76375313eabb735df459944f67d7002d7/packages/wix-cli-dummy-custom-element\nconst DUMMY_CUSTOM_ELEMENT_TAG_NAME = 'wix-cli-dummy-custom-element';\nconst DUMMY_CUSTOM_ELEMENT_URL =\n 'https://www.unpkg.com/@wix/cli-dummy-custom-element';\n\nconst AppUpdater: FC<{\n children: ReactNode;\n newCustomElements: Array<DevCenterComponent<'CustomElement'>>;\n}> = ({ children, newCustomElements }) => {\n const { model } = useProjectModel();\n const { reportError } = useErrorReporter();\n const { createComponents } = useARMClient();\n const httpClient = useHttpClient({ type: 'backoffice' });\n const { site } = useSite();\n const { armTag } = useArmTag();\n\n const [isAppReinstalled, setAppReinstalledFlag] = useState(false);\n\n const prepareNewElements = useAsyncCallback(\n async () => {\n const componentConfigs = newCustomElements.map<CustomElement>(\n (customElement) => {\n const scriptUrl = DUMMY_CUSTOM_ELEMENT_URL;\n const config = createCustomElementConfig(customElement, scriptUrl);\n\n return {\n ...config,\n compData: {\n customElementWidget: {\n ...config.compData.customElementWidget,\n widgetData: {\n ...config.compData.customElementWidget.widgetData,\n tagName: DUMMY_CUSTOM_ELEMENT_TAG_NAME,\n },\n },\n },\n };\n }\n );\n\n await createComponents(\n model.config.appId,\n componentConfigs,\n model.config.projectId\n );\n const { customElementsCreationDelay } = getTestOverrides();\n const [{ data: signedAppMarketParams }] = await Promise.all([\n httpClient\n .post<string>(\n '/_serverless/app-market-json-web-token/json-web-token',\n {\n data: {\n data: JSON.stringify({\n appDefId: model.config.appId,\n version: 'latest',\n }),\n },\n }\n )\n .catch((e: unknown) => {\n throw new CliError({\n code: CliErrorCode.FailedToGenerateAppMarketQueryParam(),\n cause: e,\n });\n }),\n setTimeout(customElementsCreationDelay ?? 5000),\n ]);\n const url = new URL(`https://wix.com/editor/${site.id}`);\n url.searchParams.append('openPanel', 'appMarket');\n url.searchParams.append('preferAppManager', 'true');\n url.searchParams.append('appMarketParams', signedAppMarketParams);\n url.searchParams.append('apps-override', armTag);\n\n await openBrowser(\n redirectWithCSMv2FTs(url, PlatformType.Editor()).toString()\n );\n },\n {\n onError: (error) => {\n reportError(error);\n },\n }\n );\n\n useInput(\n useCallback(\n (input, key) => {\n if (key.return) {\n void prepareNewElements.execute();\n }\n },\n [prepareNewElements]\n ),\n {\n isActive: isType(prepareNewElements.status, 'NotRequested'),\n }\n );\n\n useInput(\n useCallback(\n (input, key) => {\n if (key.return) {\n setAppReinstalledFlag(true);\n }\n },\n [setAppReinstalledFlag]\n ),\n {\n isActive:\n !isAppReinstalled &&\n (isType(prepareNewElements.status, 'Success') ||\n isType(prepareNewElements.status, 'Error')),\n }\n );\n\n if (isAppReinstalled) {\n return children;\n }\n\n return match(prepareNewElements.status, {\n Loading: () => <Spinner />,\n Success: () => {\n return (\n <Alert type=\"warning\">\n <Text>\n <Trans\n i18nKey=\"dev_command.new_custom_element.confirm_reinstall\"\n components={[<Key value=\"enter\" />]}\n />\n </Text>\n </Alert>\n );\n },\n Error: () => (\n <Alert type=\"error\">\n <Text>\n <Trans\n i18nKey=\"dev_command.new_custom_element.reinstall_error\"\n components={[<Key value=\"enter\" />]}\n />\n </Text>\n </Alert>\n ),\n NotRequested: () => (\n <Alert type=\"warning\">\n <Text>\n <Trans\n i18nKey=\"dev_command.new_custom_element.warning\"\n components={[<Key value=\"enter\" />, <Text bold skin=\"info\" />]}\n />\n </Text>\n </Alert>\n ),\n });\n};\n\nexport const CustomElementsMigration: FC<{\n children: ReactNode;\n}> = ({ children }) => {\n const { getAppByVersion } = useDevCenterClient();\n const { model } = useProjectModel();\n const { t } = useTranslation();\n\n const customElementsCheck = useAsync(async () => {\n const localCustomElements = model.components.filter((component) =>\n isType(component, DevCenterComponent.CustomElement)\n );\n\n if (!localCustomElements.length) {\n return [];\n }\n\n const {\n data: { components },\n } = await getAppByVersion({\n appId: model.config.appId,\n });\n\n const existingCustomElements = components.filter(\n (component) => component.compType === ComponentType.CUSTOM_ELEMENT_WIDGET\n );\n\n const newCustomElements = localCustomElements.filter(\n (localCustomElement) =>\n !existingCustomElements.some(\n (customElement) => customElement.compId === localCustomElement.id\n )\n );\n\n return newCustomElements;\n }, []);\n\n return match(customElementsCheck.status, {\n Error: () => null,\n Loading: () => (\n <Spinner text={t('dev_command.custom_elements_migration.loading')} />\n ),\n Success: ({ result: newCustomElements }) =>\n newCustomElements.length ? (\n <AppUpdater newCustomElements={newCustomElements}>\n {children}\n </AppUpdater>\n ) : (\n children\n ),\n });\n};\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useAsync, Spinner, Alert } from '@wix/cli-ui-kit';\nimport { match } from 'variant';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { useMetasiteManagerClient } from '@wix/metasite-manager-client';\nimport { useTranslation } from '@wix/cli-i18n';\nimport { useProjectModel } from '../../model.js';\nimport { useSite } from '../../site/useSite.js';\nimport { useDevEnvironment } from './DevEnvironment.js';\n\nexport const RequiredAppsWarning: FC<{\n children: ReactNode;\n}> = ({ children }) => {\n const { logger } = useDevEnvironment();\n const { site } = useSite();\n const { model } = useProjectModel();\n const { getRequiredApps } = useDevCenterClient();\n const { getSiteInstalledApps } = useMetasiteManagerClient();\n const { t } = useTranslation();\n\n const { status: requiredAppsStatus } = useAsync(async () => {\n const requiredApps = await getRequiredApps(model.config.appId);\n\n if (requiredApps.length === 0) {\n return;\n }\n\n const siteInstalledApps = await getSiteInstalledApps(site.id);\n\n const missingRequiredApps = requiredApps.filter(\n (requiredApp) => !siteInstalledApps.includes(requiredApp.id)\n );\n\n if (missingRequiredApps.length === 0) {\n return;\n }\n\n logger.warn(\n <Alert type=\"warning\">\n {t('dev_command.required_apps.warning', {\n requiredAppNames: missingRequiredApps\n .map((app) => app.name)\n .join(', '),\n })}\n </Alert>\n );\n }, []);\n\n return match(requiredAppsStatus, {\n Loading: () => <Spinner text={t('dev_command.required_apps.loading')} />,\n Error: () => null,\n Success: () => children,\n });\n};\n","import React from 'react';\nimport { Box } from '@wix/cli-ui-kit';\nimport type { FC, ReactNode } from 'react';\n\nexport const DevScreenBorder: FC<{ children: ReactNode }> = ({ children }) => {\n return (\n <Box\n flexDirection=\"column\"\n borderTop\n borderLeft={false}\n borderBottom={false}\n borderRight={false}\n borderStyle=\"round\"\n borderColor=\"blueBright\"\n >\n {children}\n </Box>\n );\n};\n"],"mappings":"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","names":["import_react","import_react","import_variant","import_react","import_variant","React","import_react","import_variant","import_react","React","import_react","import_variant","import_react","import_variant","dashboardExtension","React","React","import_react","import_variant","React","item","React","React","import_react","error","site","React","import_react","import_variant","import_react","import_variant","item","React","import_react","import_variant","React","React","React","import_react","import_variant","React","approved","import_react","import_variant","React","import_react","import_variant","React","import_react","React","React"]}
@@ -1,23 +0,0 @@
1
- import { createRequire as _createRequire } from 'node:module';
2
- const require = _createRequire(import.meta.url);
3
- import {
4
- PreviewCommand
5
- } from "./chunk-2GCKBITG.js";
6
- import "./chunk-OHF42SKC.js";
7
- import "./chunk-PBUNWOQL.js";
8
- import "./chunk-XBBIROHO.js";
9
- import "./chunk-MEDHLZDL.js";
10
- import "./chunk-SJY44CC7.js";
11
- import "./chunk-EL6CIFIN.js";
12
- import "./chunk-Z7MEHVBF.js";
13
- import "./chunk-QZOQAFHK.js";
14
- import "./chunk-A3UPTTKJ.js";
15
- import "./chunk-KJRYBTZB.js";
16
- import "./chunk-KJF6LWGQ.js";
17
- import "./chunk-MKPZBVQD.js";
18
- import "./chunk-XCKLCHGL.js";
19
- import "./chunk-PYIAC2GK.js";
20
- export {
21
- PreviewCommand
22
- };
23
- //# sourceMappingURL=PreviewCommand-CU46IAJE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/messages.json"],"sourcesContent":["{\n \"create_version_command_def.option.version_type\": \"The type of version you would like to create\",\n \"create_version_command_def.option.approve_preview\": \"Approve preview automatically\",\n \"create_version_command_def.option.base_url\": \"The base url for when static files have been uploaded to an external cdn\",\n \"create_version_command_def.option.site\": \"The site id to use for Application Preview urls, defaults to the current selected development site\",\n \"dev_command_def.option.https\": \"Start local dev server on https\",\n \"app_preview_command_def.option.site\": \"The site id to use for Application Preview urls, defaults to the current selected development site\",\n \"app_preview_command_def.option.base_url\": \"The base url for when static files have been uploaded to an external cdn\",\n \"app_preview_command_def.option.no_input\": \"Disable command interactivity\",\n \"general.loading\": \"Loading...\",\n \"general.no_site_id_configured\": \"You don't have a Development Site currently configured\",\n \"general.site_id_not_found\": \"Your currently configured Development Site was not found ({id})\\nThis may happen because the site was deleted or your access has been revoked.\\n\\nPlease select another Development Site to continue\",\n \"general.dashboard_page_text\": \"<0>Click here</0> to open your application in the Wix Dashboard\",\n \"general.dashboard_page_click_here\": \"Click here\",\n \"general.close_screen\": \"Press <0/> to close\",\n \"logs.backend.clear\": \"Press <0/> to clear\",\n \"general.open_page_error\": \"Failed to open the browser for <0>{title}</0>, use the following URL to open it in your browser:\",\n \"general.dashboard_pages_viewer.title\": \"Press a number key to open a dashboard page:\",\n \"general.dashboard_plugins_viewer.title\": \"Press a number key to open a dashboard plugin:\",\n \"general.dashboard_menu_plugins_viewer.title\": \"Press a number key to open a dashboard menu plugin:\",\n \"general.backend_api_viewer.title\": \"Press a number key to trigger an api:\",\n \"general.backend_plugin_viewer.title\": \"Press a number key to trigger an plugin:\",\n \"general.backend_events_viewer.title\": \"Press a number key to trigger an event:\",\n \"general.numeric_viewer.show_more\": \"View more...\",\n \"general.platform.site\": \"Site\",\n \"general.platform.unpublished_site\": \"Site (publish the site to enable site preview)\",\n \"general.platform.editor\": \"Editor\",\n \"general.platform.dashboard\": \"Dashboard\",\n \"general.platform.backend\": \"Backend\",\n \"general.platform.none\": \"Your project doesn't seem to have any extensions.\\n\\nExtensions are the building blocks of your app.\\nMake sure it is configured properly, or read our <0>documentation</0> to start developing your first extension.\",\n \"general.dev_site.current\": \"Current Development Site: {name}\",\n \"general.view_changes\": \"View your local changes: <0>(Press a key to open)</0>\",\n \"general.open_preview.title_single\": \"Open the preview on the\",\n \"general.open_preview.title_multiple\": \"Open the preview on:\",\n \"preview_command.creating_preview\": \"Creating a preview...\",\n \"preview_command.creating_preview_success\": \"Preview created successfully!\",\n \"preview_command.uploading_files\": \"Uploading your application files...\",\n \"preview_command.uploading_files_success\": \"Uploaded successfully!\",\n \"dev_command.site_provider.loading\": \"Resolving development site...\",\n \"dev_command.custom_elements_migration.loading\": \"Checking site widgets installation...\",\n \"preview_command.note_about_temporary_backend\": \"This preview URL will be available for three days. Afterward, you can create a new preview if you need to.\",\n \"dev_command.dev_environment.loading\": \"Starting dev environment...\",\n \"dev_command.dev_environment.started\": \"Development environment ready\",\n \"dev_command.dev_site.change\": \"(Press <0/> to switch)\",\n \"dev_command.dev_site.current\": \"Current Dev Site: <0>{siteName}</0>\",\n \"dev_command.site_selector.error\": \"Failed to change Development Site!\",\n \"dev_command.dashboard_pages_screen.select_label\": \"Select a dashboard page to open\",\n \"dev_command.dashboard_menu_plugin_screen.select_label\": \"Select a dashboard menu plugin to open\",\n \"dev_command.dashboard_page_plugin_screen.select_label\": \"Select a dashboard plugin to open\",\n \"dev_command.dashboard_modal_screen.select_label\": \"Select a dashboard modal to open\",\n \"dev_command.backend_apis_screen.select_label\": \"Select api to trigger\",\n \"dev_command.backend_events_screen.select_label\": \"Select event to trigger\",\n \"dev_command.backend_plugins_screen.select_label\": \"Select plugin to trigger\",\n \"dev_command.required_apps.loading\": \"Checking required apps...\",\n \"dev_command.required_apps.warning\": \"Make sure you have {requiredAppNames} installed on your site\",\n \"dev_command.config_change\": \"Loading App Manifest changes...\",\n \"dev_command.config_update\": \"App Manifest updated. Refresh existing browser tabs to view the latest changes.\",\n \"dev_command.config_didnt_update\": \"No App Manifest update occurred\",\n \"dev_command.blocks_revision_updated\": \"Blocks revision updated.\",\n \"dev_command.tunneling.confirm\": \"To proceed, we'll set up a secure tunnel from your machine for development purposes\",\n \"dev_command.tunneling.abort_dev\": \"Operation aborted. Tunneling is necessary to run your application.\",\n \"dev_command.new_custom_element.warning\": \"New site widget detected. Press <0/> to open the Site Editor, then click <1>Complete Setup</1> to display your widget.\",\n \"dev_command.new_custom_element.confirm_reinstall\": \"Press <0/> when you reinstalled app on your dev site\",\n \"dev_command.new_custom_element.reinstall_error\": \"We had troubles with adding your new site widget. You can try to do it by yourself. Press <0/> to continue\",\n \"serve_command.starting_serve_environment\": \"Starting serve environment...\",\n \"serve_command.starting_serve_environment_success\": \"Serve environment started! <0/>\",\n \"serve_command.production_build\": \"Application is using a production build\",\n \"create_version_command.creating_version\": \"Creating a version...\",\n \"create_version_command.creating_version_success\": \"Successfully created v{version}\",\n \"create_version_command.current_version\": \"Your current version is: v{version}\",\n \"create_version_command.confirm_version_events_warning\": \"Any configured events will be deployed to production and take effect once a new version of your app is created.\",\n \"create_version_command.confirm_version_creation\": \"Continue with creating the new version?\",\n \"create_version_command.confirm_version_creation_aborted\": \"Version creation aborted\",\n \"create_version_command.version_type_question\": \"What type of version would you like to create?\",\n \"create_version_command.version_type_question_minor\": \"Minor (v{version})\",\n \"create_version_command.version_type_question_major\": \"Major (v{version})\",\n \"create_version_command.check_preview_before_version_release\": \"Before creating a new version, let's create a preview of your app\",\n \"create_version_command.checking_validation_status\": \"Checking if this version can be submitted…\",\n \"create_version_command.version_validation_ok\": \"This version can be submitted for review in the <0>App Dashboard</0>\",\n \"create_version_command.version_validation_has_failures\": \"This version has blockers preventing it from being submitted for review.\\nPlease fix them and submit your app in the <0>App Dashboard</0>.\",\n \"embedded_script.type.essential\": \"Essential\",\n \"embedded_script.type.essential.description\": \"Must load regardless of policy\",\n \"embedded_script.type.functional\": \"Functional\",\n \"embedded_script.type.functional.description\": \"Adds optional functionality to the site\",\n \"embedded_script.type.analytics\": \"Analytics\",\n \"embedded_script.type.analytics.description\": \"Adds analytics abilities to the site\",\n \"embedded_script.type.advertising\": \"Advertising\",\n \"embedded_script.type.advertising.description\": \"Adds advertising content or advertising tracking to the site\",\n \"embedded_script.placement.head\": \"Head\",\n \"embedded_script.placement.head.description\": \"In the document head\",\n \"embedded_script.placement.body_start\": \"Body Start\",\n \"embedded_script.placement.body_start.description\": \"Prepended in the body\",\n \"embedded_script.placement.body_end\": \"Body End\",\n \"embedded_script.placement.body_end.description\": \"Appended in the body\",\n \"generate_command.description\": \"Add new extensions to your application\",\n \"generate_command.flow.dashboard_category\": \"Dashboard\",\n \"generate_command.flow.site_category\": \"Site\",\n \"generate_command.flow.backend_category\": \"Backend\",\n \"generate_command.flow.dashboard_page\": \"Dashboard Page\",\n \"generate_command.flow.sidebar_category\": \"Sidebar Category\",\n \"generate_command.flow.dashboard_plugin\": \"Dashboard Plugin\",\n \"generate_command.flow.dashboard_menu_plugin\": \"Dashboard Menu Plugin\",\n \"generate_command.flow.embedded_script\": \"Embedded Script\",\n \"generate_command.flow.site_plugin\": \"Site Plugin\",\n \"generate_command.flow.event\": \"Event\",\n \"generate_command.flow.api.title\": \"API\",\n \"generate_command.flow.web_method.title\": \"Web Method\",\n \"generate_command.flow.dashboard_modal\": \"Dashboard Modal\",\n \"generate_command.flow.custom_element\": \"Site Widget\",\n \"generate_command.flow.service_plugin\": \"Service Plugin\",\n \"generate_command.flow.choose_flow\": \"What kind of extension would you like to generate?\",\n \"generate_command.generation.loading\": \"Generating {subject}...\",\n \"generate_command.generation.done\": \"🚀 The new {extensionType} has been generated successfully.\",\n \"generate_command.generation.ecommerce_notification\": \"ℹ️ eCommerce plugins can require more than one business solution to be installed. To add additional required business solutions, navigate to your app's dashboard.\",\n \"generate_command.generation.learn_more\": \"<0/> Learn more about {extensionType}: <1/>\",\n \"generate_command.generation.install_dependencies_question\": \"Would you like to install dependencies now?\",\n \"generate_command.generation.new_dependencies\": \"⚠️ New app dependencies have been added. Please run <0>{pkgManagerName} install</0> before continuing to work.\",\n \"generate_command.generation.dependencies_installed\": \"✅ Dependencies installed\",\n \"generate_command.dashboard_page.choose_route\": \"Enter the route for the new page:\",\n \"generate_command.dashboard_page.route_placeholder\": \"my-page\",\n \"generate_command.dashboard_page.choose_title\": \"Page title:\",\n \"generate_command.dashboard_page.title_placeholder\": \"My Page\",\n \"generate_command.dashboard_page.add_to_category\": \"Add to a sidebar category?\",\n \"generate_command.dashboard_page.choose_category\": \"Sidebar category:\",\n \"generate_command.sidebar_category.choose_label\": \"Enter the label for the new category:\",\n \"generate_command.sidebar_category.label_placeholder\": \"My App\",\n \"generate_command.custom_element.validation.element_exists\": \"The {extensionType} folder must be unique, please choose a name that has yet to be used in your application.\",\n \"generate_command.custom_element.validation.element_invalid\": \"The {extensionType} folder name must include a hyphen (-) and contain only lowercase letters and numbers.\",\n \"generate_command.custom_element.choose_folder\": \"Enter a folder name for your site widget:\",\n \"generate_command.custom_element.folder_placeholder\": \"my-widget\",\n \"generate_command.custom_element.choose_name\": \"Enter a name for your site widget:\",\n \"generate_command.custom_element.choose_name.error\": \"Enter a name that is shorter than 30 characters.\",\n \"generate_command.custom_element.name_placeholder\": \"My Widget\",\n \"generate_command.custom_element.link_dashboard_page\": \"Link dashboard page to custom element?\",\n \"generate_command.custom_element.choose_dashboard_page\": \"Choose dashboard page:\",\n \"generate_command.site_plugin.choose_folder\": \"Enter a folder name for your site plugin:\",\n \"generate_command.site_plugin.folder_placeholder\": \"my-site-plugin\",\n \"generate_command.site_plugin.choose_name\": \"Enter a name for your site plugin:\",\n \"generate_command.site_plugin.name_placeholder\": \"My Site Plugin\",\n \"generate_command.site_plugin.plugin_app\": \"Select a Wix app to view its plugin slots\",\n \"generate_command.site_plugin.plugin_app.description\": \"(<0>read more</0>)\",\n \"generate_command.site_plugin.choose_placement\": \"Select the slot in which you’d like to place your plugin\",\n \"generate_command.site_plugin.widget_docs\": \"<0>read more</0>\",\n \"generate_command.embedded_script.validation.script_exists\": \"The script folder must be unique, please choose a name that has not been used yet in your application.\",\n \"generate_command.embedded_script.validation.script_invalid\": \"The script folder must be a valid path ([a-z0-9-/]+) and must not start with a dot.\",\n \"generate_command.embedded_script.choose_folder\": \"Script folder (relative to src/site/embedded-scripts):\",\n \"generate_command.embedded_script.folder_placeholder\": \"my-script\",\n \"generate_command.embedded_script.choose_name\": \"Script name:\",\n \"generate_command.embedded_script.name_placeholder\": \"My Script\",\n \"generate_command.embedded_script.choose_type\": \"Script type:\",\n \"generate_command.embedded_script.type_info\": \"Determine if site visitors' consent is needed to run the script, <0>read more</0>\",\n \"generate_command.embedded_script.choose_placement\": \"Placement:\",\n \"generate_command.embedded_script.placement_info\": \"Will determine where the script is embedded\",\n \"generate_command.dashboard_modal.validation.folder_exists\": \"The modal folder must be unique, please choose a folder name that has not been used yet in your application.\",\n \"generate_command.dashboard_modal.validation.folder_invalid\": \"The modal folder must be a valid path ([a-z0-9-/]+) and must not start with a dot.\",\n \"generate_command.dashboard_modal.choose_folder\": \"Enter the folder name for the new modal:\",\n \"generate_command.dashboard_modal.folder_placeholder\": \"my-modal\",\n \"generate_command.dashboard_modal.choose_title\": \"Modal title:\",\n \"generate_command.dashboard_modal.title_placeholder\": \"My Modal\",\n \"generate_command.dashboard_plugin.what_to_extend\": \"What would you like to extend?\",\n \"generate_command.dashboard_plugin.what_to_extend.description\": \"Plugins let you extend Wix apps by embedding your UI inside dedicated slots within a dashboard page (<0>read more</0>)\",\n \"generate_command.dashboard_plugin.what_to_extend.item_description\": \"<0>read more</0>\",\n \"generate_command.dashboard_plugin.choose_folder\": \"Plugin folder (relative to src/dashboard/plugins)\",\n \"generate_command.dashboard_plugin.folder_placeholder\": \"my-plugin\",\n \"generate_command.dashboard_plugin.choose_title\": \"Plugin title\",\n \"generate_command.dashboard_plugin.title_placeholder\": \"My Plugin\",\n \"generate_command.required_app\": \"Would you like to set {appsNames} as a requirement for your app?\",\n \"generate_command.required_app.description\": \"This means sites must have {appsNames} installed before installing your app (<0>read more</0>)\",\n \"generate_command.required_business_solution\": \"Select a business solution your extension requires\",\n \"generate_command.required_business_solution.loading\": \"Checking required apps...\",\n \"generate_command.required_business_solution.none\": \"None\",\n \"generate_command.required_business_solution.already_required\": \"app is already configured as required\",\n \"generate_command.required_business_solution.description\": \"(you can add more required business solutions later)\",\n \"generate_command.required_business_solution.error\": \"Unable to retrieve the required apps from the App Dashboard\",\n \"generate_command.required_business_solution.error.hint\": \"Please manually add required apps directly from the <0>app audience page</0>\",\n \"generate_command.dashboard_menu_plugin.what_to_extend\": \"What would you like to extend?\",\n \"generate_command.dashboard_menu_plugin.what_to_extend.description\": \"Menu Plugins let you extend Wix apps by adding a menu item in a pre-defined slot in a menu on a dashboard page (<0>read more</0>)\",\n \"generate_command.dashboard_menu_plugin.what_to_extend.item_description\": \"<0>read more</0>\",\n \"generate_command.dashboard_menu_plugin.what_to_do\": \"What action will happen after clicking on the menu item?\",\n \"generate_command.dashboard_menu_plugin.what_to_do.navigate_to_page\": \"Navigate to a page\",\n \"generate_command.dashboard_menu_plugin.what_to_do.open_modal\": \"Open a modal\",\n \"generate_command.dashboard_menu_plugin.what_to_do.navigate_to_page.choose_page\": \"Choose a page the menu item will navigate to:\",\n \"generate_command.dashboard_menu_plugin.what_to_do.navigate_to_page.choose_page.info\": \"Choose from a list of available pages in your project or manually add a page from a different app\",\n \"generate_command.dashboard_menu_plugin.what_to_do.navigate_to_page.choose_page.other\": \"Use a page from a different app\",\n \"generate_command.dashboard_menu_plugin.what_to_do.navigate_to_page.choose_page.other.choose_page_id\": \"What is the unique id of the page?\",\n \"generate_command.dashboard_menu_plugin.what_to_do.navigate_to_page.choose_page.other.page_id_invalid\": \"Page id has to be in the format of a uuid\",\n \"generate_command.dashboard_menu_plugin.what_to_do.open_modal.choose_component\": \"Choose the modal to open:\",\n \"generate_command.dashboard_menu_plugin.what_to_do.open_modal.choose_component.info\": \"Choose from a list of available modals in your project or manually add a modal from a different app\",\n \"generate_command.dashboard_menu_plugin.what_to_do.open_modal.choose_component.other\": \"Use a modal from a different app\",\n \"generate_command.dashboard_menu_plugin.what_to_do.open_modal.choose_component.other.choose_component_id\": \"What is the unique id of the modal?\",\n \"generate_command.dashboard_menu_plugin.what_to_do.open_modal.choose_component.other.component_id_invalid\": \"Modal id has to be in the format of a uuid\",\n \"generate_command.dashboard_menu_plugin.choose_folder\": \"Menu Plugin folder (relative to src/dashboard/menu-plugins)\",\n \"generate_command.dashboard_menu_plugin.folder_placeholder\": \"my-plugin\",\n \"generate_command.dashboard_menu_plugin.choose_title\": \"Menu Plugin title\",\n \"generate_command.dashboard_menu_plugin.title_placeholder\": \"My Plugin\",\n \"generate_command.api.api_placeholder\": \"my-api\",\n \"generate_command.api.choose_api_name\": \"How would you like to name your API?\",\n \"generate_command.api.choose_folder\": \"API folder (relative to src/backend/api):\",\n \"generate_command.api.choose_api_name.error\": \"API name must be unique, can not include special characters or spaces, and must be shorter than 20 characters\",\n \"generate_command.api.choose_method\": \"Choose an API method\",\n \"generate_command.web_method.choose_filename.placeholder\": \"backend/my-web-method\",\n \"generate_command.web_method.choose_filename\": \"Web Method file name (relative to the src folder):\",\n \"generate_command.web_method.choose_filename.error\": \"Web Method file name must be unique, can not include special characters or spaces, and must be shorter than 20 characters\",\n \"generate_command.event.choose_folder\": \"Event folder (relative to src/backend/events):\",\n \"generate_command.event.folder_placeholder\": \"my-event\",\n \"generate_command.event.choose_folder.error\": \"Event name must be unique, can not include special characters or spaces, and must be shorter than 20 characters\",\n \"generate_command.service_plugin.choose_type\": \"Which service plugin do you want to create\",\n \"generate_command.service_plugin.choose_name\": \"How would you like to name your service plugin\",\n \"generate_command.service_plugin.name_placeholder\": \"my-service-plugin\",\n \"generate_command.service_plugin.groups.stores\": \"Stores\",\n \"generate_command.service_plugin.ecom_additional_fees\": \"Ecom Additional Fees\",\n \"generate_command.service_plugin.ecom_shipping_rates\": \"Ecom Shipping Rates\",\n \"generate_command.service_plugin.ecom_discount_triggers\": \"Ecom Discount Triggers\",\n \"generate_command.service_plugin.ecom_validations\": \"Ecom Validations\",\n \"generate_command.service_plugin.ecom_payment_settings\": \"Ecom Payment Settings\",\n \"generate_command.service_plugin.ecom_gift_cards_provider\": \"Ecom Gift Cards Provider\",\n \"logs_command_def.option.version\": \"Specify the app version to fetch production logs from\",\n \"logs_command.connecting\": \"Connecting to the log server...\",\n \"logs_command.listening_to_logs\": \"Listening to logs from the server.\",\n \"logs_command.prod_env_logs\": \"Prod Environment logs for the version: {version}\",\n \"release_command_def.description\": \"Release a new version of your application\",\n \"release_command_def.option.site\": \"The site id to use for Application Preview urls, defaults to the current selected development site\",\n \"release_command_def.option.base_url\": \"The base url for when static files have been uploaded to an external cdn\",\n \"release_command.loading_app_details\": \"Loading application details...\",\n \"release_command.check_preview_before_version_release\": \"Before creating a new version, let's create a preview of your app\",\n \"release_command.confirm_version_events_warning\": \"Any configured events will be deployed to production and take effect once a new version of your app is created.\"\n}\n"],"mappings":"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","names":[]}