@wix/cli 1.1.48 → 1.1.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/DevCommand-O2LAA4RH.js +4 -0
- package/build/DevCommand-O2LAA4RH.js.map +1 -0
- package/build/{LoginCommand-NLI4JML5.js → LoginCommand-CVWBK5LH.js} +2 -2
- package/build/{LogoutCommand-C57ZNKT5.js → LogoutCommand-DKEBJ6NZ.js} +2 -2
- package/build/{WhoamiCommand-W7GLY3WG.js → WhoamiCommand-G53BCTLV.js} +2 -2
- package/build/check.js +1 -1
- package/build/{chunk-XHLDYCRC.js → chunk-3N2RGPEO.js} +5 -5
- package/build/chunk-3N2RGPEO.js.map +1 -0
- package/build/chunk-CAVNZXU4.js +4 -0
- package/build/chunk-CAVNZXU4.js.map +1 -0
- package/build/chunk-CYL3Y4I7.js +4 -0
- package/build/chunk-CYL3Y4I7.js.map +1 -0
- package/build/chunk-DGA2THYK.js +4 -0
- package/build/chunk-DGA2THYK.js.map +1 -0
- package/build/chunk-DZP4F4PP.js +14 -0
- package/build/chunk-DZP4F4PP.js.map +1 -0
- package/build/{chunk-AQJFGMCV.js → chunk-EWDYGUEU.js} +4 -4
- package/build/{chunk-AQJFGMCV.js.map → chunk-EWDYGUEU.js.map} +1 -1
- package/build/{chunk-GCM6E6UB.js → chunk-EY7RCO4T.js} +4 -4
- package/build/{chunk-BVN6MXUP.js → chunk-F2WOLODY.js} +2 -2
- package/build/chunk-F2WOLODY.js.map +1 -0
- package/build/{chunk-4Y2R5QID.js → chunk-GHYSGKNT.js} +2 -2
- package/build/chunk-GHYSGKNT.js.map +1 -0
- package/build/{chunk-NRX52J22.js → chunk-HWUPEJKT.js} +2 -2
- package/build/chunk-KXTG6FT3.js +6 -0
- package/build/chunk-KXTG6FT3.js.map +1 -0
- package/build/{chunk-XN36DVPR.js → chunk-L2ARP6U6.js} +2 -2
- package/build/chunk-L2ARP6U6.js.map +1 -0
- package/build/{chunk-UDD4OHCT.js → chunk-LWKR3S3U.js} +3 -3
- package/build/{chunk-UDD4OHCT.js.map → chunk-LWKR3S3U.js.map} +1 -1
- package/build/{chunk-HYMGR3RL.js → chunk-MEE2DVIY.js} +2 -2
- package/build/chunk-MEE2DVIY.js.map +1 -0
- package/build/{chunk-X5FGKR74.js → chunk-OLH3K4XG.js} +2 -2
- package/build/{chunk-ZCXNKYD2.js → chunk-QUB5H5DM.js} +2 -2
- package/build/chunk-QUB5H5DM.js.map +1 -0
- package/build/{chunk-PDKZVNCQ.js → chunk-RA7SC7ZN.js} +2 -2
- package/build/chunk-RA7SC7ZN.js.map +1 -0
- package/build/chunk-SPHZH5LL.js +4 -0
- package/build/chunk-SPHZH5LL.js.map +1 -0
- package/build/{chunk-6TDWVLRD.js → chunk-TMNJT4K2.js} +1 -1
- package/build/{chunk-6TDWVLRD.js.map → chunk-TMNJT4K2.js.map} +1 -1
- package/build/{chunk-ZWFH6MKQ.js → chunk-VTKRZTKJ.js} +2 -2
- package/build/chunk-VTKRZTKJ.js.map +1 -0
- package/build/chunk-W3WL2B3H.js +25 -0
- package/build/chunk-W3WL2B3H.js.map +1 -0
- package/build/{chunk-CNRVJIPG.js → chunk-WX3CWNNN.js} +2 -2
- package/build/chunk-XAYMT57N.js +4 -0
- package/build/chunk-XAYMT57N.js.map +1 -0
- package/build/{dev-XOTPKYHR.js → dev-E3IDFQKC.js} +4 -4
- package/build/dev-E3IDFQKC.js.map +1 -0
- package/build/index.js +5 -26
- package/build/index.js.map +1 -1
- package/build/{install-VNEFWOSA.js → install-ZNSNEIWX.js} +2 -2
- package/build/install-ZNSNEIWX.js.map +1 -0
- package/build/{preview-YCUHLGVE.js → preview-Y3WXIDLO.js} +2 -2
- package/build/preview-Y3WXIDLO.js.map +1 -0
- package/build/{publish-XTLLB6KE.js → publish-YPRUNEKX.js} +2 -2
- package/build/publish-YPRUNEKX.js.map +1 -0
- package/build/render-command-5TPOVVOS.js +4 -0
- package/build/render-command-5TPOVVOS.js.map +1 -0
- package/build/{render-command-GMJJM3EK.js → render-command-JJ2AQM7Q.js} +2 -2
- package/build/{run-command-VVLPCPAA.js → run-command-O2IEOEOD.js} +2 -2
- package/build/run-command-O2IEOEOD.js.map +1 -0
- package/build/src-4XIAVX4E.js +4 -0
- package/build/src-4XIAVX4E.js.map +1 -0
- package/build/{src-CZRQVWWJ.js → src-D4HRJKXU.js} +2 -2
- package/build/{src-YMGQ6GZL.js → src-HCEIAPMW.js} +2 -2
- package/build/{src-7ZO4JB2L.js → src-SUE6BJDY.js} +2 -2
- package/build/src-Z7HIP3VD.js +4 -0
- package/build/src-Z7HIP3VD.js.map +1 -0
- package/build/{src-ZUXRDORN.js → src-ZIMNO3M4.js} +2 -2
- package/build/sync-types-CSACSRJ6.js +4 -0
- package/build/{uninstall-7GXNOJQG.js → uninstall-R3ALTRIA.js} +2 -2
- package/build/uninstall-R3ALTRIA.js.map +1 -0
- package/build/{update-notifier-LCY3CRNY.js → update-notifier-S5PQKIDE.js} +2 -2
- package/package.json +4 -2
- package/build/chunk-2NLIPYRH.js +0 -6
- package/build/chunk-2NLIPYRH.js.map +0 -1
- package/build/chunk-4Y2R5QID.js.map +0 -1
- package/build/chunk-BVN6MXUP.js.map +0 -1
- package/build/chunk-FZFQS2M3.js +0 -4
- package/build/chunk-FZFQS2M3.js.map +0 -1
- package/build/chunk-GIQJZQOY.js +0 -4
- package/build/chunk-GIQJZQOY.js.map +0 -1
- package/build/chunk-HYMGR3RL.js.map +0 -1
- package/build/chunk-MZPTRVWN.js +0 -14
- package/build/chunk-MZPTRVWN.js.map +0 -1
- package/build/chunk-PDKZVNCQ.js.map +0 -1
- package/build/chunk-SYHT5LTW.js +0 -4
- package/build/chunk-SYHT5LTW.js.map +0 -1
- package/build/chunk-T7C26E3I.js +0 -4
- package/build/chunk-T7C26E3I.js.map +0 -1
- package/build/chunk-XHLDYCRC.js.map +0 -1
- package/build/chunk-XN36DVPR.js.map +0 -1
- package/build/chunk-ZCXNKYD2.js.map +0 -1
- package/build/chunk-ZWFH6MKQ.js.map +0 -1
- package/build/dev-XOTPKYHR.js.map +0 -1
- package/build/install-VNEFWOSA.js.map +0 -1
- package/build/preview-YCUHLGVE.js.map +0 -1
- package/build/publish-XTLLB6KE.js.map +0 -1
- package/build/run-command-VVLPCPAA.js.map +0 -1
- package/build/sync-types-IDJJDEEN.js +0 -4
- package/build/uninstall-7GXNOJQG.js.map +0 -1
- /package/build/{LoginCommand-NLI4JML5.js.map → LoginCommand-CVWBK5LH.js.map} +0 -0
- /package/build/{LogoutCommand-C57ZNKT5.js.map → LogoutCommand-DKEBJ6NZ.js.map} +0 -0
- /package/build/{WhoamiCommand-W7GLY3WG.js.map → WhoamiCommand-G53BCTLV.js.map} +0 -0
- /package/build/{chunk-GCM6E6UB.js.map → chunk-EY7RCO4T.js.map} +0 -0
- /package/build/{chunk-NRX52J22.js.map → chunk-HWUPEJKT.js.map} +0 -0
- /package/build/{chunk-X5FGKR74.js.map → chunk-OLH3K4XG.js.map} +0 -0
- /package/build/{chunk-CNRVJIPG.js.map → chunk-WX3CWNNN.js.map} +0 -0
- /package/build/{render-command-GMJJM3EK.js.map → render-command-JJ2AQM7Q.js.map} +0 -0
- /package/build/{src-7ZO4JB2L.js.map → src-D4HRJKXU.js.map} +0 -0
- /package/build/{src-CZRQVWWJ.js.map → src-HCEIAPMW.js.map} +0 -0
- /package/build/{src-YMGQ6GZL.js.map → src-SUE6BJDY.js.map} +0 -0
- /package/build/{src-ZUXRDORN.js.map → src-ZIMNO3M4.js.map} +0 -0
- /package/build/{sync-types-IDJJDEEN.js.map → sync-types-CSACSRJ6.js.map} +0 -0
- /package/build/{update-notifier-LCY3CRNY.js.map → update-notifier-S5PQKIDE.js.map} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createRequire as _createRequire } from 'node:module';
|
|
2
|
+
const require = _createRequire(import.meta.url);
|
|
3
|
+
import{c as we,h as _e,i as Se,j as Re,k as xt}from"./chunk-LWKR3S3U.js";import{c as It,k as wt,l as M}from"./chunk-WX3CWNNN.js";import{a as R,b as Q,d as ye,e as ge,j as ve,l as Ft,m as U,n as J,o as k,p as Ae,q as xe,t as B,w as At}from"./chunk-OLH3K4XG.js";import{a as Nt,b as vt,c as tt,e as Dt}from"./chunk-HWUPEJKT.js";import{a as p,b as L}from"./chunk-CUZEHDNU.js";import{a as T,c as l,e as v}from"./chunk-EWDYGUEU.js";import{c as qt,e as d,i as a}from"./chunk-UO4ZAUJK.js";var be=qt((Fn,Te)=>{"use strict";a();function _(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}Te.exports=_;_.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};_.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};_.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),r=this._cachedTimeouts.slice(-1);else return!1;var o=this;return this._timer=setTimeout(function(){o._attempts++,o._operationTimeoutCb&&(o._timeout=setTimeout(function(){o._operationTimeoutCb(o._attempts)},o._operationTimeout),o._options.unref&&o._timeout.unref()),o._fn(o._attempts)},r),this._options.unref&&this._timer.unref(),!0};_.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};_.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};_.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};_.prototype.start=_.prototype.try;_.prototype.errors=function(){return this._errors};_.prototype.attempts=function(){return this._attempts};_.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,r=0,o=0;o<this._errors.length;o++){var n=this._errors[o],i=n.message,s=(t[i]||0)+1;t[i]=s,s>=r&&(e=n,r=s)}return e}});var Oe=qt(F=>{"use strict";a();var Xr=be();F.operation=function(t){var e=F.timeouts(t);return new Xr(e,{forever:t&&(t.forever||t.retries===1/0),unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};F.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in t)e[r]=t[r];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var o=[],n=0;n<e.retries;n++)o.push(this.createTimeout(n,e));return t&&t.forever&&!o.length&&o.push(this.createTimeout(n,e)),o.sort(function(i,s){return i-s}),o};F.createTimeout=function(t,e){var r=e.randomize?Math.random()+1:1,o=Math.round(r*Math.max(e.minTimeout,1)*Math.pow(e.factor,t));return o=Math.min(o,e.maxTimeout),o};F.wrap=function(t,e,r){if(e instanceof Array&&(r=e,e=null),!r){r=[];for(var o in t)typeof t[o]=="function"&&r.push(o)}for(var n=0;n<r.length;n++){var i=r[n],s=t[i];t[i]=function(u){var m=F.operation(e),f=Array.prototype.slice.call(arguments,1),h=f.pop();f.push(function(y){m.retry(y)||(y&&(arguments[0]=m.mainError()),h.apply(this,arguments))}),m.attempt(function(){u.apply(t,f)})}.bind(t,s),t[i].options=e}}});var ke=qt((Un,Pe)=>{"use strict";a();Pe.exports=Oe()});a();a();a();var mr=d(T(),1);a();a();var Ce=d(ke(),1),Yr=new Set(["Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed"]),Ut=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}},Zr=(t,e,r)=>{let o=r.retries-(e-1);return t.attemptNumber=e,t.retriesLeft=o,t},Qr=t=>Yr.has(t),Ee=t=>globalThis.DOMException===void 0?new Error(t):new DOMException(t);async function et(t,e){return new Promise((r,o)=>{e={onFailedAttempt(){},retries:10,...e};let n=Ce.default.operation(e);n.attempt(async i=>{try{r(await t(i))}catch(s){if(!(s instanceof Error)){o(new TypeError(`Non-error was thrown: "${s}". You should only throw errors.`));return}if(s instanceof Ut)n.stop(),o(s.originalError);else if(s instanceof TypeError&&!Qr(s.message))n.stop(),o(s);else{Zr(s,i,e);try{await e.onFailedAttempt(s)}catch(c){o(c);return}n.retry(s)||o(n.mainError())}}}),e.signal&&!e.signal.aborted&&e.signal.addEventListener("abort",()=>{n.stop();let i=e.signal.reason===void 0?Ee("The operation was aborted."):e.signal.reason;o(i instanceof Error?i:Ee(i))},{once:!0})})}a();a();a();a();function qe(t=""){let[e,r]=to(t);return r?{schemaName:r,schemaType:e}:{schemaName:e}}var to=t=>t.split("#");a();a();function Fe(t,e,r,o){let n=t;for(let i of e.split(".")){if(!n)return r;n=n[i]}return`${n}${o}`}var eo="_",ro=["wix.com","editorx.com"],oo=["42.wixprod.net","uw2-edt-1.wixprod.net"],no="dev.wix-code.com",ao=/{(.*)}/,io=new RegExp(`\\.(${ro.join("|")})$`),so=new RegExp(`\\.(${oo.join("|")})$`),co=new RegExp(`.*\\.${no}$`);function _t(t){let e=fo(t.host),r=ho(e,t.domainToMappings),o=uo(t.protoPath,t.data||{});return lo(o,r)}function uo(t,e){return t.split("/").map(r=>mo(r,e)).join("/")}function mo(t,e){let r=t.match(ao)||[],o=r[1];if(o){let n=t.replace(r[0],"");return Fe(e,o,t,n)}return t}function fo(t){return po(t).replace(io,"._base_domain_").replace(so,"._api_base_domain_").replace(co,"*.dev.wix-code.com")}function po(t){return t.replace("create.editorx.com","editor.editorx.com")}function ho(t,e){let r=e[t]||e[eo];return!r&&yo(t)?e[go]:r}function lo(t,e){let r=e?.find(o=>t.startsWith(o.destPath));return r?r.srcPath+t.slice(r.destPath.length):t}function yo(t){return!!t.match(/\._base_domain_$/)}var go="www._base_domain_";a();a();var Jt=typeof Buffer=="function",Yn=typeof TextDecoder=="function"?new TextDecoder:void 0,Ie=typeof TextEncoder=="function"?new TextEncoder:void 0,vo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",rt=Array.prototype.slice.call(vo),Zn=(t=>{let e={};return t.forEach((r,o)=>e[r]=o),e})(rt);var b=String.fromCharCode.bind(String),Qn=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):t=>new Uint8Array(Array.prototype.slice.call(t,0)),Ao=t=>t.replace(/=/g,"").replace(/[+\/]/g,e=>e=="+"?"-":"_");var xo=t=>{let e,r,o,n,i="",s=t.length%3;for(let c=0;c<t.length;){if((r=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255||(n=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");e=r<<16|o<<8|n,i+=rt[e>>18&63]+rt[e>>12&63]+rt[e>>6&63]+rt[e&63]}return s?i.slice(0,s-3)+"===".substring(s):i},De=typeof btoa=="function"?t=>btoa(t):Jt?t=>Buffer.from(t,"binary").toString("base64"):xo,wo=Jt?t=>Buffer.from(t).toString("base64"):t=>{let r=[];for(let o=0,n=t.length;o<n;o+=4096)r.push(b.apply(null,t.subarray(o,o+4096)));return De(r.join(""))};var _o=t=>{if(t.length<2){var e=t.charCodeAt(0);return e<128?t:e<2048?b(192|e>>>6)+b(128|e&63):b(224|e>>>12&15)+b(128|e>>>6&63)+b(128|e&63)}else{var e=65536+(t.charCodeAt(0)-55296)*1024+(t.charCodeAt(1)-56320);return b(240|e>>>18&7)+b(128|e>>>12&63)+b(128|e>>>6&63)+b(128|e&63)}},So=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Ro=t=>t.replace(So,_o),Ne=Jt?t=>Buffer.from(t,"utf8").toString("base64"):Ie?t=>wo(Ie.encode(t)):t=>De(Ro(t)),Ue=(t,e=!1)=>e?Ao(Ne(t)):Ne(t);function Je(t,e=""){let r={};return Object.entries(t).forEach(([o,n])=>{let i=n!==null&&typeof n=="object"&&!Array.isArray(n),s=To(e,o);if(i){let c=Je(n,s);Object.assign(r,c)}else r[s]=n}),r}function To(t,e){return`${t}${t?".":""}${e}`}function St(t,e){let r=Je(t),o=Object.entries(r).reduce((n,[i,s])=>((Array.isArray(s)?s:[s]).forEach(u=>{u!=null&&n.append(i,u)}),n),new URLSearchParams);return e&&o.append(".r",Ue(JSON.stringify(t),!0)),o}a();a();var g;(function(t){t[t.TO_JSON=0]="TO_JSON",t[t.FROM_JSON=1]="FROM_JSON"})(g||(g={}));a();function Le(t,e={},r){return function(n={},i){return typeof n=="string"?n:s(t,n);function s(f,h){let y={};return[null,void 0].includes(h)?h:(Object.entries(h).forEach(([Z,q])=>{let Vr=f[Z],{schemaName:yt,schemaType:jr}=qe(Vr),Wr=jr==="Map",$r=u(yt)?.checkRepetable?.(q)??Array.isArray(q),gt;$r?gt=q.map(Gr=>c(Gr,yt)):Wr?gt=m(q,yt):gt=c(q,yt),y[Z]=gt}),y)}function c(f,h){if(!h)return f;let y=e[h];if(u(h))return u(h).transform(f);if(y)return s(y,f);throw new Error(`${h} is neither schema nor serializable type`)}function u(f){return r[f]?.[i]}function m(f,h){return Object.entries(f).reduce((y,[Z,q])=>(y[Z]=c(q,h),y),{})}}}a();a();var Be={types:["google.protobuf.Timestamp"],[g.TO_JSON]:{transform:t=>t?.toISOString()},[g.FROM_JSON]:{transform:t=>t?new Date(t):void 0}};a();var Me={types:["google.protobuf.FieldMask"],[g.TO_JSON]:{transform:t=>t.join(","),checkRepetable:t=>t.some(e=>Array.isArray(e))},[g.FROM_JSON]:{transform:t=>typeof t=="object"?t.paths:t.split(",")}};a();var ze={types:["google.protobuf.BytesValue","BYTES"],[g.TO_JSON]:{transform:t=>{let e=t.reduce((r,o)=>r+String.fromCharCode(o),"");return btoa(e)}},[g.FROM_JSON]:{transform:t=>Uint8Array.from(atob(t),e=>e.charCodeAt(0))}};a();var He={types:["google.protobuf.Duration"],[g.TO_JSON]:{transform:({seconds:t="0",nanos:e=0})=>{let r="";return e!==0&&(r=`.${e.toString().padStart(9,"0")}`),`${t}${r}s`}},[g.FROM_JSON]:{transform:t=>{let[e,r]=t.substring(0,t.length-1).split(".");return{seconds:e,nanos:bo(r)}}}};function bo(t){let e=0;if(t!==void 0){let r=3-t.length/3;e=parseInt(t,10)*Math.pow(1e3,r)}return e}a();var Ke={types:["FLOAT","DOUBLE","google.protobuf.FloatValue","google.protobuf.DoubleValue"],[g.TO_JSON]:{transform:t=>isFinite(t)?t:t.toString()},[g.FROM_JSON]:{transform:t=>t==="NaN"?NaN:t==="Infinity"?1/0:t==="-Infinity"?-1/0:t}};var Ve=[Be,Me,ze,He,Ke];a();function je(t){return t.reduce((e,r)=>{let o=r.types.reduce((n,i)=>({...n,[i]:r}),{});return{...e,...o}},{})}var Oo=je([...Ve]);function O(t,e={}){let r=Le(t,e,Oo);return{fromJSON(o){let n=Po(o)||o;return r(n,g.FROM_JSON)},toJSON(o){return r(o,g.TO_JSON)}}}function Po(t){try{return JSON.parse(t)}catch{}}var ko={dateCreated:"google.protobuf.Timestamp",dateUpdated:"google.protobuf.Timestamp"},Eo={account:"_account"};var Co={};function qo(t){var e={"api._api_base_domain_":[{srcPath:"/account-server",destPath:""}],"www._base_domain_":[{srcPath:"/_api/account-server",destPath:""}],"manage._base_domain_":[{srcPath:"/_api/account-server",destPath:""},{srcPath:"/account-server",destPath:""}],"premium._base_domain_":[{srcPath:"/_api/account-server",destPath:""}],"editor._base_domain_":[{srcPath:"/_api/account-server",destPath:""}],"blocks._base_domain_":[{srcPath:"/_api/account-server",destPath:""}],"create.editorx":[{srcPath:"/_api/account-server",destPath:""}],"bo._base_domain_":[{srcPath:"/account-server",destPath:""}],"wixbo.ai":[{srcPath:"/account-server",destPath:""}],"wix-bo.com":[{srcPath:"/account-server",destPath:""}],"www.wixapis.com":[{srcPath:"/accounts",destPath:""}],"users._base_domain_":[{srcPath:"/_api/account-server",destPath:""}],"*.dev.wix-code.com":[{srcPath:"/_api/account-server",destPath:""}]};return _t(Object.assign(t,{domainToMappings:e}))}function We(t){var e=O(Co,{}),r=e.toJSON,o=e.fromJSON,n=O(Eo,{_account:ko}).fromJSON;function i(s){var c=s.host,u=r(t),m={entityFqdn:"wix.identity.account.v2.account",method:"GET",methodFqn:"com.wixpress.account.api.AccountService.getMyAccount",url:qo({protoPath:"/v1/accounts/my_account",data:u,host:c}),params:St(u),transformResponse:n};return m}return i.fromReq=o,i.__isAmbassador=!0,i}a();var Fo={},Io={};var No={body:"BYTES"},Do={body:"BYTES"},Uo={},Jo={};function Lt(t){var e={"manage._base_domain_":[{srcPath:"/oauth2",destPath:"/v1/oauth"}],"www.wixapis.com":[{srcPath:"/oauth2",destPath:"/v1/oauth"},{srcPath:"/oauth2/token_info",destPath:"/v1/token_info"}],"users._base_domain_":[{srcPath:"/v1/oauth/device/verify",destPath:"/v1/oauth/device/verify"},{srcPath:"/v1/oauth/manage/user-code",destPath:"/v1/oauth/manage/user-code"},{srcPath:"/v2/oauth/device/verify",destPath:"/v2/oauth/device/verify"}],_:[{srcPath:"/_api/oauth2",destPath:"/v1/oauth"}],"platform.rise.ai":[{srcPath:"/oauth2",destPath:"/v1/oauth"}]};return _t(Object.assign(t,{domainToMappings:e}))}function Bt(t){var e=O(No,{}),r=e.toJSON,o=e.fromJSON,n=O(Do,{}).fromJSON;function i(s){var c=s.host,u=r(t),m={entityFqdn:"wix.identity.oauth.v1.refresh_token",method:"POST",methodFqn:"wix.identity.oauth2.v1.Oauth2Ng.Token",url:Lt({protoPath:"/v1/oauth/token",data:u,host:c}),data:u,transformResponse:n};return m}return i.fromReq=o,i.__isAmbassador=!0,i}function $e(t){var e=O(Fo,{}),r=e.toJSON,o=e.fromJSON,n=O(Io,{}).fromJSON;function i(s){var c=s.host,u=r(t),m={entityFqdn:"wix.identity.oauth.v1.refresh_token",method:"GET",methodFqn:"wix.identity.oauth2.v1.Oauth2Ng.DeviceCode",url:Lt({protoPath:"/v1/oauth/device/code",data:u,host:c}),params:St(u),transformResponse:n};return m}return i.fromReq=o,i.__isAmbassador=!0,i}function Ge(t){var e=O(Uo,{}),r=e.toJSON,o=e.fromJSON,n=O(Jo,{}).fromJSON;function i(s){var c=s.host,u=r(t),m={entityFqdn:"wix.identity.oauth.v1.refresh_token",method:"POST",methodFqn:"wix.identity.oauth2.v1.Oauth2Ng.RevokeRefreshToken",url:Lt({protoPath:"/v1/oauth/revoke",data:u,host:c}),data:u,transformResponse:n};return m}return i.fromReq=o,i.__isAmbassador=!0,i}a();var Ye=d(It(),1);a();var Xe=d(It(),1);function z(t){return Xe.HttpClient.isHttpError(t)}var Lo={backoffice:"https://manage.wix.com",editor:"https://editor.wix.com",code:"https://code.wix.com",general:"https://www.wix.com",standalone:void 0};function E(t,e){return(...r)=>e.apply(t,r).catch(o=>{throw z(o)&&!t.isCancel(o)&&!o.response?new l({code:v.NetworkError({cause:o}),cause:o,info:{code:o.code}}):o})}function Rt({getAppToken:t,createHeaders:e,type:r}){let o=(0,Ye.createHttpClient)({baseURL:Lo[r],...r!=="standalone"?{getAppToken:t}:{},createHeaders:()=>({...e?.(),"X-XSRF-TOKEN":"nocheck",Cookie:"XSRF-TOKEN=nocheck","User-Agent":"wix-cli"})});return{...o,request:E(o,o.request),get:E(o,o.get),delete:E(o,o.delete),head:E(o,o.head),options:E(o,o.options),post:E(o,o.post),put:E(o,o.put),patch:E(o,o.patch)}}var K=d(T(),1);a();var Ze=p.object({deviceCode:p.string(),verificationUri:p.string().url(),userCode:p.string(),expiresIn:p.number()}),Mt=p.object({access_token:p.string(),refresh_token:p.string(),expires_in:p.number()}).transform(t=>({accessToken:t.access_token,refreshToken:t.refresh_token,expiresIn:t.expires_in})),zt=p.object({userId:p.string().uuid(),email:p.string().email()}),Qe=p.object({account:p.object({slug:p.string(),accountId:p.string().uuid(),accountOwner:p.string().uuid()})}),Ht=p.object({accessToken:p.string(),refreshToken:p.string(),expiresIn:p.number(),issuedAt:p.number()}),tr=Ht.extend({userInfo:zt}),er=p.object({token:p.string(),accountId:p.string().uuid(),userInfo:p.object({userId:p.string().uuid(),email:p.string()})});var{InvalidResponseData:Bo,FailedToGetAuthToken:Mo,FailedToGetDeviceCode:zo,FailedToRenewAuthToken:Ho,FailedToRenewAuthTokenSiteNotFound:Ko,FailedToRevokeRefreshToken:Vo}=v,Kt="6f95cec8-3e98-48b9-b4e5-1fb92fcd9973",rr=()=>Math.floor(Date.now()/1e3),ot=class extends Error{},H=(0,K.variant)({TokenRenewed:(0,K.payload)(),RefreshTokenRevoked:(0,K.fields)()}),Vt=class{constructor(e){this.httpClient=e;let{minRetryTimeout:r}=L();this.retryOptions={retries:3,minTimeout:r,maxTimeout:3*1e3}}retryOptions;async requestDeviceCode(e={}){try{let{data:r}=await et(()=>this.httpClient.request($e({...e,clientId:Kt})),this.retryOptions);return Ze.parse(r)}catch(r){throw new l({code:zo(),cause:r})}}async createToken(e){try{let r={clientId:Kt,grantType:"urn:ietf:params:oauth:grant-type:device_code",scope:"offline_access",...e};return{...await et(async()=>{let{data:n,requestId:i}=await this.httpClient.request(Bt(r)),s=Mt.safeParse(n);if(s.success)return s.data;throw new l({code:Bo(),cause:s.error,info:{requestId:i,data:n}})},this.retryOptions),issuedAt:rr()}}catch(r){throw z(r)&&(r.response?.data?.message==="Device code is not yet verified"||r.response?.data?.error==="authorization_pending")?new ot("Device code is not yet verified."):new l({code:Mo(),cause:r})}}async renewToken(e){try{let r={clientId:Kt,grantType:"refresh_token",...e},{data:o}=await et(()=>this.httpClient.request(Bt(r)),this.retryOptions),n=Mt.parse(o);return H.TokenRenewed({...n,issuedAt:rr()})}catch(r){if(z(r)){if(r.response?.status===400&&r.response.data?.error==="invalid_grant")return H.RefreshTokenRevoked({cause:r});if(e.siteId&&r.response?.status===404&&r.response.data?.details?.applicationError?.code==="SITE_NOT_FOUND")throw new l({code:Ko({siteId:e.siteId}),cause:r})}throw new l({code:Ho(),cause:r})}}async revokeRefreshToken(e,{email:r}){try{let{data:o}=await this.httpClient.request(Ge(e));return o}catch(o){throw new l({code:Vo({email:r}),info:{email:r},cause:o})}}async userInfo({accessToken:e}){try{let r=Rt({type:"backoffice",getAppToken:async()=>e}),{data:o}=await r.get("/_serverless/wix-cli-userinfo/userinfo");return zt.parse(o)}catch(r){throw new l({code:v.FailedToGetUserInfo(),cause:r})}}async getMyAccount({token:e}){try{let r=Rt({type:"backoffice",getAppToken:async()=>e}),{data:o}=await r.request(We({}));return Qe.parse(o).account}catch(r){throw z(r)&&r.response?.status===428&&r.response.data?.details?.applicationError?.code===48876?new l({code:v.InvalidApiKey(),cause:r}):new l({code:v.FailedToGetMyAccount(),cause:r})}}},S=new Vt(Rt({type:"backoffice"}));a();import{unlink as jo,rm as Wo}from"node:fs/promises";import{resolve as at}from"node:path";var x=d(T(),1);function or(){return at(Dt(),"auth.json")}function Tt(){return at(Dt(),"auth")}function nr(){return at(Tt(),"api-key.json")}function ar(){return at(Tt(),"account.json")}function ir(t){return at(Tt(),`${t}.json`)}var Wt=(0,x.variant)({Authenticated:(0,x.payload)(),Unauthenticated:{}});async function $t(){let t=nr();if(!await tt(t))return Wt.Unauthenticated();let e=await vt(t),r=er.parse(e);return Wt.Authenticated(r)}async function sr(t){try{let e=nr();await Nt(e,t)}catch(e){throw new l({code:v.FailedToSaveApiKeyAuthData({cause:e}),cause:e})}}var nt=(0,x.variant)({Authenticated:(0,x.fields)(),Unauthenticated:{},Expired:(0,x.fields)()});async function it(){let t=ar();if(!await tt(t))return nt.Unauthenticated();let e=await vt(t),r=tr.parse(e);return j(r)?nt.Authenticated(r):nt.Expired(r)}var jt=(0,x.variant)({Authenticated:(0,x.fields)(),Unauthenticated:{},Expired:(0,x.fields)()});async function cr(t){let e=ir(t);if(!await tt(e))return jt.Unauthenticated();let r=await vt(e),o=Ht.parse(r);return j(o)?jt.Authenticated(o):jt.Expired(o)}async function st(t,e){try{let r=e?ir(e):ar();await Nt(r,t)}catch(r){throw new l({code:v.FailedToSaveAuthData({cause:r}),cause:r})}}async function V(){try{await Wo(Tt(),{recursive:!0,force:!0})}catch(t){throw new l({code:v.FailedToDeleteAuthData({cause:t}),cause:t})}await Gt()&&await $o()}async function $o(){try{await jo(or())}catch(t){throw new l({code:v.FailedToDeleteLegacyAuthData({cause:t}),cause:t})}}async function Gt(){return tt(or())}function j(t){let e=Math.floor(Date.now()/1e3),r=10*60,o=t.expiresIn-r;return t.issuedAt+o>e}async function Go(){let t=await $t();if((0,x.isType)(t,Wt.Authenticated))return t.payload.userInfo;let e=await it();return(0,x.match)(e,{Authenticated:({userInfo:r})=>r,Expired:({userInfo:r})=>r,Unauthenticated:()=>null})}function ur({authData:{token:t,accountId:e,userInfo:r},siteId:o}){return{getAccessToken:async()=>t,getRefreshToken:()=>{throw new Error("API key auth does not support refresh tokens")},getRequestHeaders:()=>({"wix-account-id":e,...o&&{"wix-site-id":o}}),userInfo:r}}var I={async isLoggedIn({siteId:t}={}){let e=await $t();return(0,mr.match)(e,{Authenticated:({payload:r})=>ur({authData:r,siteId:t}),Unauthenticated:()=>null})},async login({token:t}){let{accountId:e,accountOwner:r,slug:o}=await S.getMyAccount({token:t}),n={token:t,accountId:e,userInfo:{userId:r,email:o}};return await V(),await sr(n),ur({authData:n})}};a();a();a();var Xt=class{value;next;constructor(e){this.value=e}},ct=class{#t;#e;#r;constructor(){this.clear()}enqueue(e){let r=new Xt(e);this.#t?(this.#e.next=r,this.#e=r):(this.#t=r,this.#e=r),this.#r++}dequeue(){let e=this.#t;if(e)return this.#t=this.#t.next,this.#r--,e.value}clear(){this.#t=void 0,this.#e=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let e=this.#t;for(;e;)yield e.value,e=e.next}};function ut(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=new ct,r=0,o=()=>{r--,e.size>0&&e.dequeue()()},n=async(c,u,m)=>{r++;let f=(async()=>c(...m))();u(f);try{await f}catch{}o()},i=(c,u,m)=>{e.enqueue(n.bind(void 0,c,u,m)),(async()=>(await Promise.resolve(),r<t&&e.size>0&&e.dequeue()()))()},s=(c,...u)=>new Promise(m=>{i(c,m,u)});return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>e.size},clearQueue:{value:()=>{e.clear()}}}),s}var C=d(T(),1);a();a();var W=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Yt=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},fr=t=>globalThis.DOMException===void 0?new Yt(t):new DOMException(t),pr=t=>{let e=t.reason===void 0?fr("This operation was aborted."):t.reason;return e instanceof Error?e:fr(e)};function Zt(t,e){let{milliseconds:r,fallback:o,message:n,customTimers:i={setTimeout,clearTimeout}}=e,s,u=new Promise((m,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(e.signal){let{signal:y}=e;y.aborted&&f(pr(y)),y.addEventListener("abort",()=>{f(pr(y))})}if(r===Number.POSITIVE_INFINITY){t.then(m,f);return}let h=new W;s=i.setTimeout.call(void 0,()=>{if(o){try{m(o())}catch(y){f(y)}return}typeof t.cancel=="function"&&t.cancel(),n===!1?m():n instanceof Error?f(n):(h.message=n??`Promise timed out after ${r} milliseconds`,f(h))},r),(async()=>{try{m(await t)}catch(y){f(y)}})()}).finally(()=>{u.clear()});return u.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},u}var Qt=Symbol("resolveValue");async function mt(t,e={}){let{interval:r=20,timeout:o=Number.POSITIVE_INFINITY,before:n=!0}=e,i,s=!1,c=new Promise((u,m)=>{let f=async()=>{try{let h=await t();if(typeof h=="object"&&h[Qt])u(h[Qt]);else{if(typeof h!="boolean")throw new TypeError("Expected condition to return a boolean");h===!0?u():s||(i=setTimeout(f,r))}}catch(h){m(h)}};n?f():i=setTimeout(f,r)});if(o===Number.POSITIVE_INFINITY)return c;try{return await Zt(c,typeof o=="number"?{milliseconds:o}:o)}finally{s=!0,clearTimeout(i)}}mt.resolveWith=t=>({[Qt]:t});var dr=t=>1e3*t;async function Xo({deviceCode:t,expiresIn:e},{signal:r}){try{let o=await mt(async()=>{try{let s=await S.createToken({deviceCode:t});return mt.resolveWith(s)}catch(s){if(s instanceof ot)return!1;throw s}},{interval:L().waitForLoginInterval??dr(3),timeout:{milliseconds:dr(e),signal:r}}),n=await S.userInfo({accessToken:o.accessToken}),i={...o,userInfo:n};return await V(),await st(i),i}catch(o){throw o instanceof W?new l({code:v.DeviceCodeTimedOut()}):o}}async function lr({refreshToken:t,userInfo:e}){let r=await S.renewToken({refreshToken:t});return(0,C.isType)(r,H.TokenRenewed)&&await st({...r.payload,userInfo:e}),r}async function Yo(){let t=await it();return(0,C.match)(t,{Authenticated:e=>e,Unauthenticated:()=>null,Expired:async e=>{let r=await lr(e);return(0,C.match)(r,{TokenRenewed:({payload:o})=>({...o,userInfo:e.userInfo}),RefreshTokenRevoked:(0,C.constant)(null)})}})}function hr({userInfo:t,...e}){let r=ut(1),o={...e};return{getAccessToken:()=>r(async()=>{if(j(o))return o.accessToken;let n=await lr({...o,userInfo:t});return(0,C.match)(n,{TokenRenewed:({payload:i})=>(o=i,o.accessToken),RefreshTokenRevoked:({cause:i})=>{throw new l({code:v.FailedToRenewAuthTokenRefreshTokenRevoked(),cause:i})}})}),getRefreshToken:()=>o.refreshToken,userInfo:t}}var P={async isLoggedIn(){let t=await I.isLoggedIn();if(t)return t;let e=await Yo();return e?hr(e):null},async login({deviceCode:t,signal:e}){let r=await Xo(t,{signal:e});return hr(r)}};a();var w=d(T(),1);async function vr({accountRefreshToken:t,siteId:e}){let r=await S.renewToken({refreshToken:t,siteId:e});return(0,w.isType)(r,H.TokenRenewed)&&await st(r.payload,e),r}var bt=(0,w.variant)({Ok:(0,w.payload)(),RefreshTokenRevoked:(0,w.fields)()});async function yr({siteId:t,accountRefreshToken:e}){let r=await cr(t);return(0,w.matcher)(r).with({Authenticated:o=>bt.Ok(o)}).when(["Unauthenticated","Expired"],async()=>{let o=await vr({accountRefreshToken:e,siteId:t});return(0,w.match)(o,{TokenRenewed:({payload:n})=>bt.Ok(n),RefreshTokenRevoked:({cause:n})=>bt.RefreshTokenRevoked({cause:n})})}).complete()}function gr({siteAuth:t,accountRefreshToken:e,siteId:r,userInfo:o}){let n=ut(1),i={...t};return{getAccessToken:()=>n(async()=>{if(j(i))return i.accessToken;let s=await vr({accountRefreshToken:e,siteId:r});return(0,w.match)(s,{TokenRenewed:({payload:c})=>(i=c,i.accessToken),RefreshTokenRevoked:({cause:c})=>{throw new l({code:v.FailedToRenewAuthTokenRefreshTokenRevoked(),cause:c})}})}),getRefreshToken:()=>i.refreshToken,userInfo:o}}var te=t=>({async isLoggedIn(){let e=await I.isLoggedIn({siteId:t});if(e)return e;let r=await P.isLoggedIn();if(r){let o=r.getRefreshToken(),n=await yr({siteId:t,accountRefreshToken:o});if((0,w.isType)(n,bt.Ok))return gr({siteId:t,siteAuth:n.payload,accountRefreshToken:o,userInfo:r.userInfo})}return null},async login({deviceCode:e,signal:r}){let o=await P.login({deviceCode:e,signal:r}),n=o.getRefreshToken(),i=await yr({siteId:t,accountRefreshToken:n});return(0,w.match)(i,{Ok:({payload:s})=>gr({siteId:t,siteAuth:s,accountRefreshToken:n,userInfo:o.userInfo}),RefreshTokenRevoked:({cause:s})=>{throw new l({code:v.FailedToRenewAuthTokenRefreshTokenRevoked(),cause:s})}})}});a();var Ar=d(T(),1);async function Zo(){let t=await it();return(0,Ar.isType)(t,nt.Unauthenticated)||await S.revokeRefreshToken({token:t.refreshToken},t.userInfo),await V(),null}a();var wr=d(R(),1);a();var xr=d(R(),1),$=(0,xr.createContext)(null);function ee(){let t=(0,wr.useContext)($);if(!t)throw new Error("useAuth() cannot be used without an <AuthProvider>");return t}a();var _r=d(R(),1);var Sr=d(T(),1);var Qo=({token:t,onLogin:e,onError:r})=>{let o=xt(),{status:n}=k(async()=>(o.report(wt({})),I.login({token:t})),[],{onSuccess:i=>{o.report(M({isSuccess:!0})),e(i)},onError:i=>{o.report(M({isSuccess:!1,...i instanceof Error?{errorType:i.name}:{errorType:"unknown",errorMessage:JSON.stringify(i)}})),r(i)}});return(0,Sr.match)(n,{Error:()=>null,Loading:()=>_r.default.createElement(U,null),Success:()=>null})};a();var pt=d(R(),1);var Mr=d(T(),1);var Ot={"login.instructions_title":"Authorize the CLI to access your Wix account:","login.instructions_details":`1. Copy this code to the clipboard: <0>{code}</0>
|
|
4
|
+
2. Press <1/> to <2>log in</2> and then paste the code`,"login.legacy_auth_notice":"We implemented a new and more secure login method. You'll need to re-login to continue using the CLI.","login.error_opening_browser":"Failed to open browser, please try opening <0/> manually."};a();var A=d(R(),1);a();a();import kt from"node:process";import{Buffer as Rn}from"node:buffer";import qr from"node:path";import{fileURLToPath as Tn}from"node:url";import bn from"node:child_process";import me,{constants as Fr}from"node:fs/promises";a();import br from"node:process";import an from"node:os";import sn from"node:fs";a();import on from"node:fs";a();import Rr from"node:fs";var re;function en(){try{return Rr.statSync("/.dockerenv"),!0}catch{return!1}}function rn(){try{return Rr.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function oe(){return re===void 0&&(re=en()||rn()),re}var ne,nn=()=>{try{return on.statSync("/run/.containerenv"),!0}catch{return!1}};function G(){return ne===void 0&&(ne=nn()||oe()),ne}var Tr=()=>{if(br.platform!=="linux")return!1;if(an.release().toLowerCase().includes("microsoft"))return!G();try{return sn.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!G():!1}catch{return!1}},ft=br.env.__IS_WSL_TEST__?Tr:Tr();a();function N(t,e,r){let o=n=>Object.defineProperty(t,e,{value:n,enumerable:!0,writable:!0});return Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get(){let n=r();return o(n),n},set(n){o(n)}}),t}a();import{promisify as xn}from"node:util";import ce from"node:process";import{execFile as wn}from"node:child_process";a();import{promisify as cn}from"node:util";import un from"node:process";import{execFile as mn}from"node:child_process";var fn=cn(mn);async function ae(){if(un.platform!=="darwin")throw new Error("macOS only");let{stdout:t}=await fn("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]);return/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(t)?.groups.id??"com.apple.Safari"}a();a();import pn from"node:process";import{promisify as dn}from"node:util";import{execFile as hn,execFileSync as Gs}from"node:child_process";var ln=dn(hn);async function Or(t,{humanReadableOutput:e=!0}={}){if(pn.platform!=="darwin")throw new Error("macOS only");let r=e?[]:["-ss"],{stdout:o}=await ln("osascript",["-e",t,r]);return o.trim()}async function ie(t){return Or(`tell application "Finder" to set app_path to application file id "${t}" as string
|
|
5
|
+
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}a();import{promisify as yn}from"node:util";import{execFile as gn}from"node:child_process";var vn=yn(gn),An={AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},MSEdgeDHTML:{name:"Edge",id:"com.microsoft.edge"},MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"}},Pt=class extends Error{};async function se(t=vn){let{stdout:e}=await t("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),r=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(e);if(!r)throw new Pt(`Cannot find Windows browser in stdout: ${JSON.stringify(e)}`);let{id:o}=r.groups,n=An[o];if(!n)throw new Pt(`Unknown browser ID: ${o}`);return n}var _n=xn(wn),Sn=t=>t.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,e=>e.toUpperCase());async function ue(){if(ce.platform==="darwin"){let t=await ae();return{name:await ie(t),id:t}}if(ce.platform==="linux"){let{stdout:t}=await _n("xdg-mime",["query","default","x-scheme-handler/http"]),e=t.trim();return{name:Sn(e.replace(/.desktop$/,"").replace("-"," ")),id:e}}if(ce.platform==="win32")return se();throw new Error("Only macOS, Linux, and Windows are supported")}var fe=qr.dirname(Tn(import.meta.url)),Pr=qr.join(fe,"xdg-open"),{platform:X,arch:kr}=kt,On=(()=>{let t="/mnt/",e;return async function(){if(e)return e;let r="/etc/wsl.conf",o=!1;try{await me.access(r,Fr.F_OK),o=!0}catch{}if(!o)return t;let n=await me.readFile(r,{encoding:"utf8"}),i=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(n);return i?(e=i.groups.mountPoint.trim(),e=e.endsWith("/")?e:`${e}/`,e):t}})(),Er=async(t,e)=>{let r;for(let o of t)try{return await e(o)}catch(n){r=n}throw r},Et=async t=>{if(t={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...t},Array.isArray(t.app))return Er(t.app,c=>Et({...t,app:c}));let{name:e,arguments:r=[]}=t.app??{};if(r=[...r],Array.isArray(e))return Er(e,c=>Et({...t,app:{name:c,arguments:r}}));if(e==="browser"||e==="browserPrivate"){let c={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","microsoft-edge.desktop":"edge"},u={chrome:"--incognito",firefox:"--private-window",edge:"--inPrivate"},m=await ue();if(m.id in c){let f=c[m.id];return e==="browserPrivate"&&r.push(u[f]),Et({...t,app:{name:Y[f],arguments:r}})}throw new Error(`${m.name} is not supported as a default browser`)}let o,n=[],i={};if(X==="darwin")o="open",t.wait&&n.push("--wait-apps"),t.background&&n.push("--background"),t.newInstance&&n.push("--new"),e&&n.push("-a",e);else if(X==="win32"||ft&&!G()&&!e){let c=await On();o=ft?`${c}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`:`${kt.env.SYSTEMROOT||kt.env.windir||"C:\\Windows"}\\System32\\WindowsPowerShell\\v1.0\\powershell`,n.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),ft||(i.windowsVerbatimArguments=!0);let u=["Start"];t.wait&&u.push("-Wait"),e?(u.push(`"\`"${e}\`""`),t.target&&r.push(t.target)):t.target&&u.push(`"${t.target}"`),r.length>0&&(r=r.map(m=>`"\`"${m}\`""`),u.push("-ArgumentList",r.join(","))),t.target=Rn.from(u.join(" "),"utf16le").toString("base64")}else{if(e)o=e;else{let c=!fe||fe==="/",u=!1;try{await me.access(Pr,Fr.X_OK),u=!0}catch{}o=kt.versions.electron??(X==="android"||c||!u)?"xdg-open":Pr}r.length>0&&n.push(...r),t.wait||(i.stdio="ignore",i.detached=!0)}X==="darwin"&&r.length>0&&n.push("--args",...r),t.target&&n.push(t.target);let s=bn.spawn(o,n,i);return t.wait?new Promise((c,u)=>{s.once("error",u),s.once("close",m=>{if(!t.allowNonzeroExitCode&&m>0){u(new Error(`Exited with code ${m}`));return}c(s)})}):(s.unref(),s)},Pn=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a `target`");return Et({...e,target:t})};function Cr(t){if(typeof t=="string"||Array.isArray(t))return t;let{[kr]:e}=t;if(!e)throw new Error(`${kr} is not supported`);return e}function pe({[X]:t},{wsl:e}){if(e&&ft)return Cr(e);if(!t)throw new Error(`${X} is not supported`);return Cr(t)}var Y={};N(Y,"chrome",()=>pe({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));N(Y,"firefox",()=>pe({darwin:"firefox",win32:"C:\\Program Files\\Mozilla Firefox\\firefox.exe",linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));N(Y,"edge",()=>pe({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));N(Y,"browser",()=>"browser");N(Y,"browserPrivate",()=>"browserPrivate");var Ir=Pn;a();var Nr=d(It(),1);async function Dr(t,e){await(0,Nr.createHttpClient)().post(t,void 0,{params:{url:e}})}async function Ur(t){let{userBrowserTestEndpoint:e}=L();e?await Dr(e,t):await Ir(t,{background:!0})}a();var Jr=d(R(),1);function Lr(t){return(0,Jr.useMemo)(()=>{let e=new URL(t);return e.searchParams.set("color","developer"),e.searchParams.set("studio","true"),e.toString()},[t])}var Br=({userCode:t,verificationUri:e})=>{let r=Lr(e),{reportError:o}=Se(),[n,i]=(0,A.useState)(null);return ye((s,c)=>{c.return&&Ur(r).catch(u=>{o(u),i(u)})}),A.default.createElement(A.default.Fragment,null,A.default.createElement(B,{i18nKey:"login.instructions_title"}),A.default.createElement(Q,{flexDirection:"column",marginTop:1,marginBottom:1,marginLeft:2},A.default.createElement(B,{i18nKey:"login.instructions_details",components:[A.default.createElement(ge,{skin:"legacyBlue"}),A.default.createElement(ve,{value:"enter"}),A.default.createElement(Ft,{url:r})],values:{code:t}})),n&&A.default.createElement(A.default.Fragment,null,A.default.createElement(Q,{flexDirection:"column",marginBottom:1},A.default.createElement(we,{error:n})),A.default.createElement(B,{i18nKey:"login.error_opening_browser",components:[A.default.createElement(Ft,{url:r})]})))};var de=({loginFn:t,onLogin:e,onError:r})=>{let o=xt();function n(c){o.report(M({isSuccess:!1,...c instanceof Error?{errorType:c.name}:{errorType:"unknown",errorMessage:JSON.stringify(c)}})),r(c)}let i=Ae(async({signal:c},u)=>{try{let m=await t({deviceCode:u,signal:c});o.report(M({isSuccess:!0})),e(m)}catch(m){n(m)}}),{status:s}=k(async()=>(o.report(wt({})),S.requestDeviceCode()),[],{onSuccess:c=>{i.execute(c)},onError:n});return(0,Mr.match)(s,{Error:()=>null,Loading:()=>pt.default.createElement(U,null),Success:({result:{userCode:c,verificationUri:u}})=>pt.default.createElement(Br,{userCode:c,verificationUri:u})})};function kn(t){return pt.default.createElement(At,{messages:Ot},pt.default.createElement(de,{loginFn:P.login,...t}))}a();var he=d(R(),1);a();var ht=d(R(),1),Kr=d(T(),1);a();var dt=d(R(),1),zr=d(T(),1);var Hr=({children:t})=>{let{status:e}=k(Gt,[],{onError:()=>{}});return(0,zr.match)(e,{Error:()=>null,Loading:()=>null,Success:({result:r})=>dt.default.createElement(dt.default.Fragment,null,r&&dt.default.createElement(Q,{marginBottom:1},dt.default.createElement(B,{i18nKey:"login.legacy_auth_notice"})),t)})};var Ct=({authStrategy:{login:t,isLoggedIn:e},onLogin:r,onError:o,children:n})=>{let{status:i,merge:s}=k(e,[],{onSuccess:c=>{c&&r(c)},onError:o});return(0,Kr.match)(i,{Loading:()=>ht.default.createElement(U,null),Error:()=>null,Success:({result:c})=>c===null?ht.default.createElement(At,{messages:Ot},ht.default.createElement(Hr,null,ht.default.createElement(de,{loginFn:t,onLogin:u=>{s({result:u}),r(u)},onError:o}))):n(c)})};var En=({children:t,onError:e,onLogin:r})=>{let o=J();return he.default.createElement(Ct,{authStrategy:P,onLogin:({userInfo:n})=>r?.(n),onError:e??o},({getAccessToken:n,getRequestHeaders:i,userInfo:s})=>he.default.createElement($.Provider,{value:{getAccessToken:n,getRequestHeaders:i,userInfo:s}},t))};a();var lt=d(R(),1);var le=({children:t,siteId:e,onError:r,onLogin:o})=>{let n=J(),i=(0,lt.useMemo)(()=>te(e),[e]);return lt.default.createElement(Ct,{authStrategy:i,onLogin:({userInfo:s})=>o?.(s),onError:r??n},({getAccessToken:s,getRequestHeaders:c,userInfo:u})=>lt.default.createElement($.Provider,{value:{getAccessToken:s,getRequestHeaders:c,userInfo:u}},t))};a();var D=d(R(),1);var Cn=({onReady:t})=>{let e=J(),r=ee();return(0,D.useEffect)(()=>{t(r),e()},[e,r,t]),null};function qn(t,e,r){return new Promise((o,n)=>{xe(D.default.createElement(_e,{value:r},D.default.createElement(Re,{value:e},D.default.createElement(le,{siteId:t},D.default.createElement(Cn,{onReady:o}))))).catch(i=>n(i))})}var{isLoggedIn:ku}=P;export{z as a,Rt as b,et as c,_t as d,St as e,O as f,Go as g,ut as h,Zt as i,mt as j,Zo as k,ee as l,Qo as m,Ur as n,kn as o,En as p,le as q,qn as r,ku as s};
|
|
6
|
+
//# sourceMappingURL=chunk-KXTG6FT3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/p-retry/node_modules/retry/lib/retry_operation.js","../../../node_modules/p-retry/node_modules/retry/lib/retry.js","../../../node_modules/p-retry/node_modules/retry/index.js","../../cli-auth/src/index.ts","../../cli-auth/src/auth-strategies/index.ts","../../cli-auth/src/auth-strategies/api-key-auth-strategy.ts","../../cli-auth/src/client.ts","../../../node_modules/p-retry/index.js","../../../node_modules/@wix/ambassador-identity-account-v2-account/http.impl.ts","../../../node_modules/@wix/metro-runtime/src/index.ts","../../../node_modules/@wix/metro-runtime/src/serialization/index.ts","../../../node_modules/@wix/metro-runtime/src/serialization/utils.ts","../../../node_modules/@wix/metro-runtime/src/url-resolver.ts","../../../node_modules/@wix/metro-runtime/src/utils.ts","../../../node_modules/@wix/metro-runtime/src/flatten-params.ts","../../../node_modules/js-base64/base64.mjs","../../../node_modules/@wix/metro-runtime/src/ambassador-index.ts","../../../node_modules/@wix/metro-runtime/src/serializer/domain.ts","../../../node_modules/@wix/metro-runtime/src/serializer/serializer.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/converters.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/timestamp.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/field-mask.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/bytes.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/duration.ts","../../../node_modules/@wix/metro-runtime/src/serializer/protobuf-converters/float.ts","../../../node_modules/@wix/metro-runtime/src/serializer/utils.ts","../../../node_modules/@wix/ambassador-identity-oauth-v1-refresh-token/http.impl.ts","../../cli-http-client/src/create-http-client.ts","../../cli-http-client/src/is-http-error.ts","../../cli-auth/src/schemas.ts","../../cli-auth/src/auth-data.ts","../../cli-auth/src/auth-strategies/account-auth-strategy.ts","../../../node_modules/p-limit/index.js","../../../node_modules/p-limit/node_modules/yocto-queue/index.js","../../../node_modules/p-wait-for/index.js","../../../node_modules/p-timeout/index.js","../../cli-auth/src/auth-strategies/site-auth-strategy.ts","../../cli-auth/src/logout.ts","../../cli-auth/src/useAuth.ts","../../cli-auth/src/context.ts","../../cli-auth/src/components/ApiKeyLogin.tsx","../../cli-auth/src/components/Login.tsx","../../cli-auth/src/messages.json","../../cli-auth/src/components/LoginInstructions.tsx","../../user-browser/src/index.ts","../../../node_modules/open/index.js","../../../node_modules/is-wsl/index.js","../../../node_modules/is-inside-container/index.js","../../../node_modules/is-docker/index.js","../../../node_modules/define-lazy-prop/index.js","../../../node_modules/default-browser/index.js","../../../node_modules/default-browser-id/index.js","../../../node_modules/bundle-name/index.js","../../../node_modules/run-applescript/index.js","../../../node_modules/default-browser/windows.js","../../user-browser/src/open-testkit.ts","../../cli-auth/src/useColoredVerificationUri.ts","../../cli-auth/src/providers/AccountAuthProvider.tsx","../../cli-auth/src/components/EnsureLoggedIn.tsx","../../cli-auth/src/components/WarnLegacyAuthData.tsx","../../cli-auth/src/providers/SiteAuthProvider.tsx","../../cli-auth/src/authenticate.tsx"],"sourcesContent":["function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","module.exports = require('./lib/retry');","import { accountAuthStrategy } from './auth-strategies/index.js';\n\nexport const { isLoggedIn: isLoggedInToAccount } = accountAuthStrategy;\n\nexport { logout } from './logout.js';\nexport { getUserInfo } from './auth-data.js';\nexport type { UserInfo } from './schemas.js';\nexport { useAuth } from './useAuth.js';\nexport { ApiKeyLogin } from './components/ApiKeyLogin.js';\nexport { LoginWithI18n as Login } from './components/Login.js';\nexport { AccountAuthProvider } from './providers/AccountAuthProvider.js';\nexport { SiteAuthProvider } from './providers/SiteAuthProvider.js';\nexport { authenticateWithSiteId } from './authenticate.js';\nexport type { AuthState } from './context.js';\n","export type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nexport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\nexport { accountAuthStrategy } from './account-auth-strategy.js';\nexport { createSiteAuthStrategy } from './site-auth-strategy.js';\n","import { match } from 'variant';\nimport { client } from '../client.js';\nimport type { ApiKeyAuth } from '../schemas.js';\nimport {\n readApiKeyAuthData,\n saveApiKeyAuthData,\n deleteAuthData,\n} from '../auth-data.js';\nimport type {\n ApiKeyAuthStrategy,\n AuthStrategyState,\n} from './auth-strategy-types.js';\n\nfunction createApiKeyAuthState({\n authData: { token, accountId, userInfo },\n siteId,\n}: {\n authData: ApiKeyAuth;\n siteId?: string;\n}): AuthStrategyState {\n return {\n getAccessToken: async () => token,\n getRefreshToken: () => {\n throw new Error('API key auth does not support refresh tokens');\n },\n getRequestHeaders: () => ({\n 'wix-account-id': accountId,\n ...(siteId && { 'wix-site-id': siteId }),\n }),\n userInfo,\n };\n}\n\nexport const apiKeyAuthStrategy: ApiKeyAuthStrategy = {\n async isLoggedIn({ siteId }: { siteId?: string } = {}) {\n const apiKeyAuth = await readApiKeyAuthData();\n\n return match(apiKeyAuth, {\n Authenticated: ({ payload }) => {\n return createApiKeyAuthState({ authData: payload, siteId });\n },\n Unauthenticated: () => null,\n });\n },\n async login({ token }) {\n const { accountId, accountOwner, slug } = await client.getMyAccount({\n token,\n });\n\n const authData: ApiKeyAuth = {\n token,\n accountId,\n userInfo: {\n userId: accountOwner,\n // TODO: this should be the email of the account owner, not the slug\n // https://jira.wixpress.com/browse/FEDINF-12201\n email: slug,\n },\n };\n\n await deleteAuthData();\n await saveApiKeyAuthData(authData);\n\n return createApiKeyAuthState({ authData });\n },\n};\n","import pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport type {\n DeviceCodeRequest,\n RevokeRefreshTokenRequest,\n} from '@wix/ambassador-identity-oauth-v1-refresh-token/types';\nimport { getMyAccount } from '@wix/ambassador-identity-account-v2-account/http';\nimport {\n deviceCode as deviceCodeRequest,\n token as tokenRequest,\n revokeRefreshToken,\n} from '@wix/ambassador-identity-oauth-v1-refresh-token/http';\nimport type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport { isHttpError, createHttpClient } from '@wix/cli-http-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { fields, payload, variant } from 'variant';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { SiteAuth, UserInfo } from './schemas.js';\nimport {\n deviceCodeSchema,\n tokenSchema,\n userInfoSchema,\n getMyAccountSchema,\n} from './schemas.js';\n\nconst {\n InvalidResponseData,\n FailedToGetAuthToken,\n FailedToGetDeviceCode,\n FailedToRenewAuthToken,\n FailedToRenewAuthTokenSiteNotFound,\n FailedToRevokeRefreshToken,\n} = CliErrorCode;\n\nconst clientId = '6f95cec8-3e98-48b9-b4e5-1fb92fcd9973';\n\nconst getCurrentTimestamp = () => Math.floor(Date.now() / 1000);\n\ninterface TokenRequest {\n clientId: string;\n grantType: string;\n scope?: string;\n deviceCode?: string;\n refreshToken?: string;\n siteId?: string;\n}\n\ninterface TokenResponse {\n access_token: string;\n refresh_token: string;\n expires_in: number;\n}\n\nexport class DeviceCodeNotYetVerifiedError extends Error {}\n\nexport const RenewTokenData = variant({\n TokenRenewed: payload<SiteAuth>(),\n RefreshTokenRevoked: fields<{ cause: HttpError }>(),\n});\n\nclass AuthClient {\n private readonly retryOptions: Options;\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n retries: 3,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n async requestDeviceCode(req: DeviceCodeRequest = {}) {\n try {\n const { data } = await pRetry(\n () => this.httpClient.request(deviceCodeRequest({ ...req, clientId })),\n this.retryOptions\n );\n\n return deviceCodeSchema.parse(data);\n } catch (error) {\n throw new CliError({\n code: FailedToGetDeviceCode(),\n cause: error,\n });\n }\n }\n\n async createToken(req: { deviceCode: string }) {\n try {\n const payload: TokenRequest = {\n clientId,\n grantType: 'urn:ietf:params:oauth:grant-type:device_code',\n scope: 'offline_access',\n ...req,\n };\n\n const tokenData = await pRetry(async () => {\n // any is needed because `tokenRequest` uses `RawHttpRequest` and `RawHttpResponse` which are not typed correctly\n const { data, requestId } =\n await this.httpClient.request<TokenResponse>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tokenRequest(payload as any) as any\n );\n\n const result = tokenSchema.safeParse(data);\n\n if (result.success) {\n return result.data;\n }\n\n throw new CliError({\n code: InvalidResponseData(),\n cause: result.error,\n info: { requestId, data },\n });\n }, this.retryOptions);\n\n return {\n ...tokenData,\n issuedAt: getCurrentTimestamp(),\n };\n } catch (error) {\n if (\n isHttpError(error) &&\n (error.response?.data?.message === 'Device code is not yet verified' ||\n // https://github.com/wix-private/wix-cli/pull/655#discussion_r1145992702\n error.response?.data?.error === 'authorization_pending')\n ) {\n throw new DeviceCodeNotYetVerifiedError(\n 'Device code is not yet verified.'\n );\n }\n\n throw new CliError({\n code: FailedToGetAuthToken(),\n cause: error,\n });\n }\n }\n\n async renewToken(req: { refreshToken: string; siteId?: string }) {\n try {\n const payload: TokenRequest = {\n clientId,\n grantType: 'refresh_token',\n ...req,\n };\n\n // any is needed because `tokenRequest` uses `RawHttpRequest` and `RawHttpResponse` which are not typed correctly\n const { data } = await pRetry(\n () =>\n this.httpClient.request<TokenResponse>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n tokenRequest(payload as any) as any\n ),\n this.retryOptions\n );\n\n const tokenData = tokenSchema.parse(data);\n\n return RenewTokenData.TokenRenewed({\n ...tokenData,\n issuedAt: getCurrentTimestamp(),\n });\n } catch (error) {\n if (isHttpError(error)) {\n if (\n error.response?.status === 400 &&\n error.response.data?.error === 'invalid_grant'\n ) {\n return RenewTokenData.RefreshTokenRevoked({ cause: error });\n }\n if (\n req.siteId &&\n error.response?.status === 404 &&\n error.response.data?.details?.applicationError?.code ===\n 'SITE_NOT_FOUND'\n ) {\n throw new CliError({\n code: FailedToRenewAuthTokenSiteNotFound({ siteId: req.siteId }),\n cause: error,\n });\n }\n }\n\n throw new CliError({\n code: FailedToRenewAuthToken(),\n cause: error,\n });\n }\n }\n\n async revokeRefreshToken(\n req: RevokeRefreshTokenRequest,\n { email }: UserInfo\n ) {\n try {\n const { data } = await this.httpClient.request(revokeRefreshToken(req));\n\n return data;\n } catch (error) {\n throw new CliError({\n code: FailedToRevokeRefreshToken({\n email,\n }),\n info: {\n email,\n },\n cause: error,\n });\n }\n }\n\n async userInfo({ accessToken }: { accessToken: string }) {\n try {\n const httpClient = createHttpClient({\n type: 'backoffice',\n getAppToken: async () => accessToken,\n });\n const { data: userInfoData } = await httpClient.get(\n '/_serverless/wix-cli-userinfo/userinfo'\n );\n\n return userInfoSchema.parse(userInfoData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetUserInfo(),\n cause: error,\n });\n }\n }\n\n async getMyAccount({ token }: { token: string }) {\n try {\n const httpClient = createHttpClient({\n type: 'backoffice',\n getAppToken: async () => token,\n });\n const { data } = await httpClient.request(getMyAccount({}));\n\n return getMyAccountSchema.parse(data).account;\n } catch (error) {\n // 48876 is code for `TargetAccountIsMissingErrorCode`,\n // which in this case means that user tried to log in with invalid API key.\n if (\n isHttpError(error) &&\n error.response?.status === 428 &&\n error.response.data?.details?.applicationError?.code === 48876\n ) {\n throw new CliError({\n code: CliErrorCode.InvalidApiKey(),\n cause: error,\n });\n }\n throw new CliError({\n code: CliErrorCode.FailedToGetMyAccount(),\n cause: error,\n });\n }\n }\n}\n\nexport const client = new AuthClient(createHttpClient({ type: 'backoffice' }));\n","import retry from 'retry';\n\nconst networkErrorMsgs = new Set([\n\t'Failed to fetch', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari\n\t'Network request failed', // `cross-fetch`\n\t'fetch failed', // Undici (Node.js)\n]);\n\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\n\t\tif (message instanceof Error) {\n\t\t\tthis.originalError = message;\n\t\t\t({message} = message);\n\t\t} else {\n\t\t\tthis.originalError = new Error(message);\n\t\t\tthis.originalError.stack = this.stack;\n\t\t}\n\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\nconst decorateErrorWithCounts = (error, attemptNumber, options) => {\n\t// Minus 1 from attemptNumber because the first attempt does not count as a retry\n\tconst retriesLeft = options.retries - (attemptNumber - 1);\n\n\terror.attemptNumber = attemptNumber;\n\terror.retriesLeft = retriesLeft;\n\treturn error;\n};\n\nconst isNetworkError = errorMessage => networkErrorMsgs.has(errorMessage);\n\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new Error(errorMessage)\n\t: new DOMException(errorMessage);\n\nexport default async function pRetry(input, options) {\n\treturn new Promise((resolve, reject) => {\n\t\toptions = {\n\t\t\tonFailedAttempt() {},\n\t\t\tretries: 10,\n\t\t\t...options,\n\t\t};\n\n\t\tconst operation = retry.operation(options);\n\n\t\toperation.attempt(async attemptNumber => {\n\t\t\ttry {\n\t\t\t\tresolve(await input(attemptNumber));\n\t\t\t} catch (error) {\n\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\treject(new TypeError(`Non-error was thrown: \"${error}\". You should only throw errors.`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (error instanceof AbortError) {\n\t\t\t\t\toperation.stop();\n\t\t\t\t\treject(error.originalError);\n\t\t\t\t} else if (error instanceof TypeError && !isNetworkError(error.message)) {\n\t\t\t\t\toperation.stop();\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tdecorateErrorWithCounts(error, attemptNumber, options);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait options.onFailedAttempt(error);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!operation.retry(error)) {\n\t\t\t\t\t\treject(operation.mainError());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (options.signal && !options.signal.aborted) {\n\t\t\toptions.signal.addEventListener('abort', () => {\n\t\t\t\toperation.stop();\n\t\t\t\tconst reason = options.signal.reason === undefined\n\t\t\t\t\t? getDOMException('The operation was aborted.')\n\t\t\t\t\t: options.signal.reason;\n\t\t\t\treject(reason instanceof Error ? reason : getDOMException(reason));\n\t\t\t}, {\n\t\t\t\tonce: true,\n\t\t\t});\n\t\t}\n\t});\n}\n",null,"export * from './serialization';\nexport * from './url-resolver';\nexport * from './flatten-params';\n","export * from './utils';\n","type SchemaType = 'Array' | 'Map';\n\nexport function parseLeanSchemaRef(renderedSchemaName: string = ''): {\n schemaName: string;\n schemaType?: SchemaType;\n} {\n const [typeOrName, schemaName] = getSchemaNameAndType(renderedSchemaName);\n\n if (schemaName) {\n return {\n schemaName,\n schemaType: typeOrName as SchemaType,\n };\n }\n\n return {\n schemaName: typeOrName,\n };\n}\n\n// if there is no type, returns only the name\nconst getSchemaNameAndType = (leanSchema: string): string[] =>\n leanSchema.split('#');\n","import { findByPath } from './utils';\n\nconst USER_DOMAIN = '_';\n\nconst DOMAINS = ['wix.com', 'editorx.com'];\n\nconst WIX_API_DOMAINS = ['42.wixprod.net', 'uw2-edt-1.wixprod.net'];\n\nconst DEV_WIX_CODE_DOMAIN = 'dev.wix-code.com';\n\nconst REGEX_CAPTURE_PROTO_FIELD = /{(.*)}/;\n\nconst REGEX_CAPTURE_DOMAINS = new RegExp(`\\\\.(${DOMAINS.join('|')})$`);\n\nconst REGEX_CAPTURE_API_DOMAINS = new RegExp(\n `\\\\.(${WIX_API_DOMAINS.join('|')})$`,\n);\n\nconst REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN = new RegExp(\n `.*\\\\.${DEV_WIX_CODE_DOMAIN}$`,\n);\n\nexport type ResolveUrlOpts = {\n // resource path as defined in proto file, including all wildcards & co.\n protoPath: string;\n\n // domain as defined on FP to its mappings (might be more than one)\n // www._base_domain_ => [{ srcPath: '/_api/foo', destPath: '/api' }]\n domainToMappings: DomainToMappings;\n\n // actual payload attached to request, needed in order to rersolve path,\n // in case it conatins some dynamic parameters\n data?: object;\n\n // request's host\n host: string;\n};\n\nexport function resolveUrl(opts: ResolveUrlOpts) {\n const domain = resolveDomain(opts.host);\n const mappings = resolveMappingsByDomain(domain, opts.domainToMappings);\n const path = injectDataIntoProtoPath(opts.protoPath, opts.data || {});\n\n return resolvePath(path, mappings);\n}\n\nfunction injectDataIntoProtoPath(protoPath: string, data: object) {\n return protoPath\n .split('/')\n .map((path) => maybeProtoPathToData(path, data))\n .join('/');\n}\n\nfunction maybeProtoPathToData(protoPath: string, data: object) {\n const protoRegExpMatch = protoPath.match(REGEX_CAPTURE_PROTO_FIELD) || [];\n\n const field = protoRegExpMatch[1];\n\n if (field) {\n const suffix = protoPath.replace(protoRegExpMatch[0]!, '');\n return findByPath(data, field, protoPath, suffix);\n }\n\n return protoPath;\n}\n\nfunction resolveDomain(host: string) {\n const resolvedHost = fixHostExceptions(host);\n\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\n// hosts which standard string replacing doesn't apply to them, will be fixed here.\nfunction fixHostExceptions(host: string) {\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}\n\nfunction resolveMappingsByDomain(\n domain: string,\n domainToMappings: DomainToMappings,\n) {\n const mappings = domainToMappings[domain] || domainToMappings[USER_DOMAIN];\n\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\n return mappings;\n}\n\nfunction resolvePath(protoPath: string, mappings: Mapping[]) {\n const mapping = mappings?.find((m) => protoPath.startsWith(m.destPath));\n\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\n return mapping.srcPath + protoPath.slice(mapping.destPath.length);\n}\n\ntype Mapping = {\n srcPath: string;\n destPath: string;\n};\n\ntype DomainToMappings = Record<string, Mapping[]>;\n\nfunction isBaseDomain(domain: string) {\n return !!domain.match(/\\._base_domain_$/);\n}\n\nconst wwwBaseDomain = 'www._base_domain_';\n","export function findByPath(\n obj: object,\n path: string,\n defaultValue: string,\n suffix: string,\n) {\n let result: any = obj;\n for (const field of path.split('.')) {\n if (!result) {\n return defaultValue;\n }\n result = result[field];\n }\n\n return `${result}${suffix}`;\n}\n","import { encode } from 'js-base64';\n\n// Flatten a nested object to params object { field: { text: 'foo' } } => { field.text ='foo' }\nfunction flattenParams(data: object, path = '') {\n const params: any = {};\n\n Object.entries(data).forEach(([key, value]) => {\n const isObject =\n value !== null && typeof value === 'object' && !Array.isArray(value);\n const fieldPath = resolvePath(path, key);\n\n if (isObject) {\n const serializedObject = flattenParams(value, fieldPath);\n Object.assign(params, serializedObject);\n } else {\n params[fieldPath] = value;\n }\n });\n\n return params;\n}\n\nfunction resolvePath(path: string, key: string) {\n return `${path}${path ? '.' : ''}${key}`;\n}\n\nexport function toURLSearchParams(params: any, isComplexRequest?: boolean) {\n const flatten = flattenParams(params);\n\n const searchParams = Object.entries(flatten).reduce(\n (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\n keyParams.forEach((param: any) => {\n if (param === undefined || param === null) {\n return;\n }\n\n urlSearchParams.append(key, param);\n });\n\n return urlSearchParams;\n },\n new URLSearchParams(),\n );\n\n // https://github.com/wix-private/server-infra/tree/master/framework/grpc/rest#complex-requests-messages-with-get-mappings\n if (isComplexRequest) {\n searchParams.append('.r', encode(JSON.stringify(params), true));\n }\n\n return searchParams;\n}\n","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.7';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","import type {\n RenderedLeanSchema,\n RenderedLeanSchemaFields,\n} from '@wix/metro-public-utils';\nimport { ConverterType, Payload } from './serializer/domain';\nimport { schemaSerializer } from './serializer/serializer';\nimport { protobufConverters } from './serializer/protobuf-converters/converters';\nimport { typeToConverterSet } from './serializer/utils';\n\nconst ambassadorConverters = typeToConverterSet([...protobufConverters]);\n\nexport type { GoogleProtoDuration } from './serializer/protobuf-converters/types';\n\nexport function serializer<T>(\n rootSchema: RenderedLeanSchemaFields,\n depSchemas: RenderedLeanSchema = {},\n) {\n const transform = schemaSerializer(\n rootSchema,\n depSchemas,\n ambassadorConverters,\n );\n\n return {\n fromJSON(jsonOrString: Payload | string): T {\n const jsonOrText = safeJsonParse(jsonOrString) || jsonOrString;\n return transform(jsonOrText, ConverterType.FROM_JSON) as T;\n },\n\n toJSON(json: T) {\n return transform(json, ConverterType.TO_JSON) as Payload;\n },\n };\n}\n\nfunction safeJsonParse(someString: string): any {\n try {\n return JSON.parse(someString);\n } catch (error) {}\n}\n","export enum ConverterType {\n TO_JSON,\n FROM_JSON,\n}\n\nexport type Payload = any;\n\nexport type Converter = {\n transform: (val: any) => any;\n checkRepetable?: (val: any) => boolean;\n};\n\nexport type ConverterSet = {\n types: string[];\n [ConverterType.FROM_JSON]: Converter;\n [ConverterType.TO_JSON]: Converter;\n};\n\nexport type TypeToConverterSet = Record<string, ConverterSet>;\n","import type {\n RenderedLeanSchemaFields,\n RenderedLeanSchema,\n} from '@wix/metro-public-utils';\nimport { parseLeanSchemaRef } from '..';\nimport { ConverterType, Payload, TypeToConverterSet } from './domain';\n\nexport function schemaSerializer(\n rootSchema: RenderedLeanSchemaFields,\n depSchemas: RenderedLeanSchema = {},\n converterSets: TypeToConverterSet,\n) {\n return function serialize(\n json: Payload = {},\n converterType: ConverterType,\n ): Payload {\n return typeof json === 'string' ? json : transformSchema(rootSchema, json);\n\n function transformSchema(\n schema: RenderedLeanSchemaFields,\n payload: any,\n ): Payload {\n const result = {} as Payload;\n if ([null, undefined].includes(payload)) {\n return payload;\n }\n\n Object.entries(payload).forEach(([key, val]) => {\n const renderedSchemaName = schema[key];\n const { schemaName, schemaType } =\n parseLeanSchemaRef(renderedSchemaName);\n\n const isMap = schemaType === 'Map';\n const isRepeatable =\n getConverter(schemaName)?.checkRepetable?.(val) ?? Array.isArray(val);\n\n let parsedValue;\n\n if (isRepeatable) {\n parsedValue = (val as any[]).map((v) => applyField(v, schemaName));\n } else if (isMap) {\n parsedValue = applyFieldOnMap(val, schemaName);\n } else {\n parsedValue = applyField(val, schemaName);\n }\n\n result[key] = parsedValue;\n });\n\n return result;\n }\n\n function applyField(val: unknown, schemaOrSerializer?: string) {\n if (!schemaOrSerializer) {\n return val;\n }\n\n const maybeSchema = depSchemas[schemaOrSerializer];\n const maybeConverter = getConverter(schemaOrSerializer);\n\n if (maybeConverter) {\n return getConverter(schemaOrSerializer).transform(val);\n } else if (maybeSchema) {\n return transformSchema(maybeSchema, val);\n }\n\n throw new Error(\n `${schemaOrSerializer} is neither schema nor serializable type`,\n );\n }\n\n function getConverter(name: string) {\n return converterSets[name]?.[converterType];\n }\n\n function applyFieldOnMap(val: any, sanitizedSchemaOrSerializer: string) {\n return Object.entries(val).reduce<Record<string, any>>(\n (acc, [propertyName, value]) => {\n acc[propertyName] = applyField(value, sanitizedSchemaOrSerializer);\n return acc;\n },\n {},\n );\n }\n };\n}\n","import { ConverterSet } from '../domain';\nimport { timestamp } from './timestamp';\nimport { fieldMask } from './field-mask';\nimport { bytes } from './bytes';\nimport { duration } from './duration';\nimport { float } from './float';\n\nexport const protobufConverters: ConverterSet[] = [\n timestamp,\n fieldMask,\n bytes,\n duration,\n float,\n];\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const timestamp: ConverterSet = {\n types: ['google.protobuf.Timestamp'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: Date) => val?.toISOString(),\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string) => (val ? new Date(val) : undefined),\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const fieldMask: ConverterSet = {\n types: ['google.protobuf.FieldMask'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: string[]) => val.join(','),\n\n /**\n * This one handles cases where we have a repeated google.protobuf.FieldMask type,\n * so it will look like: [['foo', 'bar'], ['qux']].\n *\n * The problem is that the serializer detects it as an array with actual fields (strings),\n * while in practice it is an array of multiple google.protobuf.FieldMask.\n *\n * We should determine if the items are actual fields (so each item is a string),\n * or arrays of google.protobuf.FieldMask (so each item is array that has items with fields).\n *\n * Another approach could be marking on the schama itseld each field if it's a repeatable or not,\n * it's not a good appraoch, but as long as google.protobuf.FieldMask is our only issue, it's\n * not _that_ bad solution.\n */\n checkRepetable: (val: string[] | string[][]) => {\n return val.some((v: string | string[]) => Array.isArray(v));\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string | { paths: string[] }) => {\n /**\n * Support Scala FW JSON mapping bug, for more details see:\n *\n * https://github.com/wix-private/server-infra/issues/17953\n */\n if (typeof val === 'object') {\n return val.paths;\n }\n\n return val.split(',');\n },\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const bytes: ConverterSet = {\n types: ['google.protobuf.BytesValue', 'BYTES'],\n\n [ConverterType.TO_JSON]: {\n transform: (val: number[]) => {\n const chars = val.reduce((res, c) => res + String.fromCharCode(c), '');\n\n return btoa(chars);\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string) => {\n return Uint8Array.from(atob(val), (c) => c.charCodeAt(0));\n },\n },\n};\n","import { ConverterSet, ConverterType } from '../domain';\nimport { GoogleProtoDuration } from './types';\n\nexport const duration: ConverterSet = {\n types: ['google.protobuf.Duration'],\n\n [ConverterType.TO_JSON]: {\n transform: ({ seconds = '0', nanos = 0 }: GoogleProtoDuration) => {\n let nanosPortion = '';\n\n if (nanos !== 0) {\n nanosPortion = `.${nanos.toString().padStart(9, '0')}`;\n }\n\n return `${seconds}${nanosPortion}s`;\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string): GoogleProtoDuration => {\n const [seconds, nanos] = val.substring(0, val.length - 1).split('.');\n\n return {\n seconds,\n nanos: nanosForString(nanos),\n };\n },\n },\n};\n\nfunction nanosForString(nanos: string) {\n let res = 0;\n\n if (nanos !== undefined) {\n const precision = 3 - nanos.length / 3;\n res = parseInt(nanos, 10) * Math.pow(1000, precision);\n }\n\n return res;\n}\n","import { ConverterSet, ConverterType } from '../domain';\n\nexport const float: ConverterSet = {\n types: [\n 'FLOAT',\n 'DOUBLE',\n 'google.protobuf.FloatValue',\n 'google.protobuf.DoubleValue',\n ],\n\n [ConverterType.TO_JSON]: {\n transform: (val: number) => {\n return isFinite(val) ? val : val.toString();\n },\n },\n\n [ConverterType.FROM_JSON]: {\n transform: (val: string | number) => {\n if (val === 'NaN') {\n return NaN;\n }\n\n if (val === 'Infinity') {\n return Infinity;\n }\n\n if (val === '-Infinity') {\n return -Infinity;\n }\n\n return val;\n },\n },\n};\n","import { TypeToConverterSet, ConverterSet } from './domain';\n\nexport function typeToConverterSet(\n converterSets: ConverterSet[],\n): TypeToConverterSet {\n return converterSets.reduce((result, converterSet) => {\n const types = converterSet.types.reduce((typeResult, type) => {\n return {\n ...typeResult,\n [type]: converterSet,\n };\n }, {} as TypeToConverterSet);\n\n return {\n ...result,\n ...types,\n };\n }, {} as TypeToConverterSet);\n}\n",null,"import { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { IHttpClient, Headers } from '@wix/http-client';\nimport { createHttpClient as createHttpClientOriginal } from '@wix/http-client';\nimport { isHttpError } from './is-http-error.js';\n\nexport interface CreateHttpClientOptions {\n getAppToken?: () => Promise<string>;\n createHeaders?: () => Headers;\n\n type: keyof typeof baseUrls;\n}\n\nconst baseUrls = {\n backoffice: 'https://manage.wix.com',\n editor: 'https://editor.wix.com',\n code: 'https://code.wix.com',\n general: 'https://www.wix.com',\n standalone: undefined,\n};\n\nfunction interceptRequest<P extends unknown[], R>(\n client: IHttpClient,\n fn: (...args: P) => Promise<R>\n) {\n return (...args: P) =>\n fn.apply(client, args).catch((error: unknown) => {\n if (isHttpError(error) && !client.isCancel(error) && !error.response) {\n // Network error\n throw new CliError({\n code: CliErrorCode.NetworkError({ cause: error }),\n cause: error,\n info: { code: error.code },\n });\n }\n\n throw error;\n });\n}\n\nexport function createHttpClient({\n getAppToken,\n createHeaders,\n type,\n}: CreateHttpClientOptions): IHttpClient {\n const client = createHttpClientOriginal({\n baseURL: baseUrls[type],\n ...(type !== 'standalone'\n ? {\n getAppToken,\n }\n : {}),\n createHeaders: () => ({\n ...createHeaders?.(),\n // See https://wix.slack.com/archives/C0JLGMT28/p1667219337530909\n 'X-XSRF-TOKEN': 'nocheck',\n Cookie: 'XSRF-TOKEN=nocheck',\n 'User-Agent': 'wix-cli',\n }),\n });\n\n return {\n ...client,\n request: interceptRequest(client, client.request),\n get: interceptRequest(client, client.get),\n delete: interceptRequest(client, client.delete),\n head: interceptRequest(client, client.head),\n options: interceptRequest(client, client.options),\n post: interceptRequest(client, client.post),\n put: interceptRequest(client, client.put),\n patch: interceptRequest(client, client.patch),\n };\n}\n","import type { IHttpError } from '@wix/http-client';\nimport { HttpClient } from '@wix/http-client';\n\nexport function isHttpError(error: unknown): error is IHttpError {\n return HttpClient.isHttpError(error);\n}\n","import { z } from 'zod';\n\nexport const deviceCodeSchema = z.object({\n deviceCode: z.string(),\n verificationUri: z.string().url(),\n userCode: z.string(),\n expiresIn: z.number(),\n});\n\nexport type DeviceCodeResponse = z.TypeOf<typeof deviceCodeSchema>;\n\nexport const tokenSchema = z\n .object({\n access_token: z.string(),\n refresh_token: z.string(),\n expires_in: z.number(),\n })\n .transform((token) => ({\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n expiresIn: token.expires_in,\n }));\n\nexport const userInfoSchema = z.object({\n userId: z.string().uuid(),\n email: z.string().email(),\n});\n\nexport type UserInfo = z.TypeOf<typeof userInfoSchema>;\n\nexport const getMyAccountSchema = z.object({\n account: z.object({\n slug: z.string(),\n accountId: z.string().uuid(),\n accountOwner: z.string().uuid(),\n }),\n});\n\nexport const siteAuthSchema = z.object({\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresIn: z.number(),\n issuedAt: z.number(),\n});\n\nexport type SiteAuth = z.TypeOf<typeof siteAuthSchema>;\n\nexport const accountAuthSchema = siteAuthSchema.extend({\n userInfo: userInfoSchema,\n});\n\nexport type AccountAuth = z.TypeOf<typeof accountAuthSchema>;\n\nexport const apiKeyAuthSchema = z.object({\n token: z.string(),\n accountId: z.string().uuid(),\n userInfo: z.object({\n userId: z.string().uuid(),\n email: z.string(),\n }),\n});\n\nexport type ApiKeyAuth = z.TypeOf<typeof apiKeyAuthSchema>;\n","import { unlink, rm } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { getDataDirPath } from '@wix/cli-data-dir';\nimport type { VariantOf } from 'variant';\nimport { match, fields, variant, payload, isType } from 'variant';\nimport { pathExists, readJson, writeJson } from '@wix/cli-fs';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { ApiKeyAuth, AccountAuth, SiteAuth, UserInfo } from './schemas.js';\nimport {\n apiKeyAuthSchema,\n accountAuthSchema,\n siteAuthSchema,\n} from './schemas.js';\n\nfunction getLegacyAuthDataFilePath() {\n return resolve(getDataDirPath(), 'auth.json');\n}\n\nfunction getAuthDataFolder() {\n return resolve(getDataDirPath(), 'auth');\n}\n\nfunction getApiKeyAuthDataFilePath() {\n return resolve(getAuthDataFolder(), 'api-key.json');\n}\n\nfunction getAccountAuthDataFilePath() {\n return resolve(getAuthDataFolder(), 'account.json');\n}\n\nfunction getSiteAuthDataFilePath(siteId: string) {\n return resolve(getAuthDataFolder(), `${siteId}.json`);\n}\n\nconst ApiKeyAuthData = variant({\n Authenticated: payload<ApiKeyAuth>(),\n Unauthenticated: {},\n});\n\ntype ApiKeyAuthData = VariantOf<typeof ApiKeyAuthData>;\n\nexport async function readApiKeyAuthData(): Promise<ApiKeyAuthData> {\n const apiKeyAuthDataFilePath = getApiKeyAuthDataFilePath();\n\n if (!(await pathExists(apiKeyAuthDataFilePath))) {\n return ApiKeyAuthData.Unauthenticated();\n }\n\n const apiKeyFileContents = await readJson(apiKeyAuthDataFilePath);\n const savedApiKeyAuthData = apiKeyAuthSchema.parse(apiKeyFileContents);\n\n return ApiKeyAuthData.Authenticated(savedApiKeyAuthData);\n}\n\nexport async function saveApiKeyAuthData(authData: ApiKeyAuth) {\n try {\n const targetFilePath = getApiKeyAuthDataFilePath();\n\n await writeJson(targetFilePath, authData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToSaveApiKeyAuthData({\n cause: error,\n }),\n cause: error,\n });\n }\n}\n\nexport const AccountAuthData = variant({\n Authenticated: fields<AccountAuth>(),\n Unauthenticated: {},\n Expired: fields<AccountAuth>(),\n});\nexport type AccountAuthData = VariantOf<typeof AccountAuthData>;\n\nexport async function readAccountAuthData(): Promise<AccountAuthData> {\n const accountAuthDataFilePath = getAccountAuthDataFilePath();\n\n if (!(await pathExists(accountAuthDataFilePath))) {\n return AccountAuthData.Unauthenticated();\n }\n\n const authFileContents = await readJson(accountAuthDataFilePath);\n const savedAccountAuthData = accountAuthSchema.parse(authFileContents);\n\n if (!isValidToken(savedAccountAuthData)) {\n return AccountAuthData.Expired(savedAccountAuthData);\n }\n\n return AccountAuthData.Authenticated(savedAccountAuthData);\n}\n\nconst SiteAuthData = variant({\n Authenticated: fields<SiteAuth>(),\n Unauthenticated: {},\n Expired: fields<SiteAuth>(),\n});\n\ntype SiteAuthData = VariantOf<typeof SiteAuthData>;\n\nexport async function readSiteAuthData(siteId: string): Promise<SiteAuthData> {\n const siteAuthDataFilePath = getSiteAuthDataFilePath(siteId);\n\n if (!(await pathExists(siteAuthDataFilePath))) {\n return SiteAuthData.Unauthenticated();\n }\n\n const authFileContents = await readJson(siteAuthDataFilePath);\n const savedSiteAuthData = siteAuthSchema.parse(authFileContents);\n\n if (!isValidToken(savedSiteAuthData)) {\n return SiteAuthData.Expired(savedSiteAuthData);\n }\n\n return SiteAuthData.Authenticated(savedSiteAuthData);\n}\n\nexport async function saveAuthData(\n authData: AccountAuth | SiteAuth,\n siteId?: string\n) {\n try {\n const targetFilePath = siteId\n ? getSiteAuthDataFilePath(siteId)\n : getAccountAuthDataFilePath();\n\n await writeJson(targetFilePath, authData);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToSaveAuthData({\n cause: error,\n }),\n cause: error,\n });\n }\n}\n\nexport async function deleteAuthData() {\n try {\n await rm(getAuthDataFolder(), { recursive: true, force: true });\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToDeleteAuthData({\n cause: error,\n }),\n cause: error,\n });\n }\n\n if (await hasLegacyAuthData()) {\n await deleteLegacyAuthData();\n }\n}\n\nasync function deleteLegacyAuthData() {\n try {\n await unlink(getLegacyAuthDataFilePath());\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToDeleteLegacyAuthData({\n cause: error,\n }),\n cause: error,\n });\n }\n}\n\nexport async function hasLegacyAuthData() {\n return pathExists(getLegacyAuthDataFilePath());\n}\n\nexport function isValidToken(authData: {\n expiresIn: number;\n issuedAt: number;\n}): boolean {\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const tokenOffset = 10 * 60; // 10 minutes\n const tokenLifetime = authData.expiresIn - tokenOffset;\n const tokenGenerationTimestamp = authData.issuedAt;\n\n return tokenGenerationTimestamp + tokenLifetime > currentTimestamp;\n}\n\nexport async function getUserInfo(): Promise<UserInfo | null> {\n const apiKeyAuthData = await readApiKeyAuthData();\n\n if (isType(apiKeyAuthData, ApiKeyAuthData.Authenticated)) {\n return apiKeyAuthData.payload.userInfo;\n }\n\n const accountAuthData = await readAccountAuthData();\n return match(accountAuthData, {\n Authenticated: ({ userInfo }) => userInfo,\n Expired: ({ userInfo }) => userInfo,\n Unauthenticated: () => null,\n });\n}\n","import pLimit from 'p-limit';\nimport { match, constant, isType } from 'variant';\nimport pWaitFor, { TimeoutError } from 'p-wait-for';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport type { AccountAuth, DeviceCodeResponse } from '../schemas.js';\nimport {\n client,\n RenewTokenData,\n DeviceCodeNotYetVerifiedError,\n} from '../client.js';\nimport {\n isValidToken,\n deleteAuthData,\n readAccountAuthData,\n saveAuthData,\n} from '../auth-data.js';\nimport type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nimport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\n\nconst seconds = (n: number) => 1000 * n;\n\nasync function waitForLogin(\n { deviceCode, expiresIn }: DeviceCodeResponse,\n { signal }: { signal: AbortSignal }\n) {\n try {\n const authData = await pWaitFor(\n async () => {\n try {\n const tokenData = await client.createToken({\n deviceCode,\n });\n\n return pWaitFor.resolveWith(tokenData);\n } catch (error) {\n if (error instanceof DeviceCodeNotYetVerifiedError) {\n // continue polling\n return false;\n }\n\n throw error;\n }\n },\n {\n interval: getTestOverrides().waitForLoginInterval ?? seconds(3),\n timeout: { milliseconds: seconds(expiresIn), signal },\n }\n );\n\n const userInfo = await client.userInfo({\n accessToken: authData.accessToken,\n });\n\n const result = { ...authData, userInfo };\n\n await deleteAuthData();\n await saveAuthData(result);\n\n return result;\n } catch (error) {\n if (error instanceof TimeoutError) {\n throw new CliError({ code: CliErrorCode.DeviceCodeTimedOut() });\n }\n\n throw error;\n }\n}\n\nasync function renewAccountAuth({ refreshToken, userInfo }: AccountAuth) {\n const renewTokenResult = await client.renewToken({ refreshToken });\n\n if (isType(renewTokenResult, RenewTokenData.TokenRenewed)) {\n await saveAuthData({ ...renewTokenResult.payload, userInfo });\n }\n\n return renewTokenResult;\n}\n\nasync function getNonExpiredAccountAuth(): Promise<AccountAuth | null> {\n const accountAuthStatus = await readAccountAuthData();\n\n return match(accountAuthStatus, {\n Authenticated: (accountAuth) => accountAuth,\n Unauthenticated: () => null,\n Expired: async (accountAuth) => {\n const renewTokenResult = await renewAccountAuth(accountAuth);\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => ({\n ...newTokenData,\n userInfo: accountAuth.userInfo,\n }),\n RefreshTokenRevoked: constant(null),\n });\n },\n });\n}\n\nfunction createAccountAuthState({\n userInfo,\n ...initialTokenData\n}: AccountAuth): AuthStrategyState {\n const limiter = pLimit(1);\n let tokenData = { ...initialTokenData };\n\n return {\n getAccessToken: () => {\n return limiter(async () => {\n if (isValidToken(tokenData)) {\n return tokenData.accessToken;\n }\n\n const renewTokenResult = await renewAccountAuth({\n ...tokenData,\n userInfo,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => {\n tokenData = newTokenData;\n return tokenData.accessToken;\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n });\n },\n getRefreshToken: () => tokenData.refreshToken,\n userInfo,\n };\n}\n\nexport const accountAuthStrategy: AuthStrategy = {\n async isLoggedIn() {\n const apiKeyAuth = await apiKeyAuthStrategy.isLoggedIn();\n\n if (apiKeyAuth) {\n return apiKeyAuth;\n }\n\n const accountAuth = await getNonExpiredAccountAuth();\n\n if (accountAuth) {\n return createAccountAuthState(accountAuth);\n }\n\n return null;\n },\n async login({ deviceCode, signal }) {\n const accountAuth = await waitForLogin(deviceCode, { signal });\n\n return createAccountAuthState(accountAuth);\n },\n};\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, args) => {\n\t\tqueue.enqueue(run.bind(undefined, fn, resolve, args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import pTimeout from 'p-timeout';\n\nconst resolveValue = Symbol('resolveValue');\n\nexport default async function pWaitFor(condition, options = {}) {\n\tconst {\n\t\tinterval = 20,\n\t\ttimeout = Number.POSITIVE_INFINITY,\n\t\tbefore = true,\n\t} = options;\n\n\tlet retryTimeout;\n\tlet abort = false;\n\n\tconst promise = new Promise((resolve, reject) => {\n\t\tconst check = async () => {\n\t\t\ttry {\n\t\t\t\tconst value = await condition();\n\n\t\t\t\tif (typeof value === 'object' && value[resolveValue]) {\n\t\t\t\t\tresolve(value[resolveValue]);\n\t\t\t\t} else if (typeof value !== 'boolean') {\n\t\t\t\t\tthrow new TypeError('Expected condition to return a boolean');\n\t\t\t\t} else if (value === true) {\n\t\t\t\t\tresolve();\n\t\t\t\t} else if (!abort) {\n\t\t\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\n\t\tif (before) {\n\t\t\tcheck();\n\t\t} else {\n\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t}\n\t});\n\n\tif (timeout === Number.POSITIVE_INFINITY) {\n\t\treturn promise;\n\t}\n\n\ttry {\n\t\treturn await pTimeout(promise, typeof timeout === 'number' ? {milliseconds: timeout} : timeout);\n\t} finally {\n\t\tabort = true;\n\t\tclearTimeout(retryTimeout);\n\t}\n}\n\npWaitFor.resolveWith = value => ({[resolveValue]: value});\n\nexport {TimeoutError} from 'p-timeout';\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import pLimit from 'p-limit';\nimport { match, matcher, variant, payload, fields, isType } from 'variant';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { HttpError } from '@wix/cli-http-client';\nimport type { SiteAuth, UserInfo } from '../schemas.js';\nimport { client, RenewTokenData } from '../client.js';\nimport { isValidToken, readSiteAuthData, saveAuthData } from '../auth-data.js';\nimport type { AuthStrategyState, AuthStrategy } from './auth-strategy-types.js';\nimport { apiKeyAuthStrategy } from './api-key-auth-strategy.js';\nimport { accountAuthStrategy } from './account-auth-strategy.js';\n\nasync function renewSiteAuth({\n accountRefreshToken,\n siteId,\n}: {\n accountRefreshToken: string;\n siteId: string;\n}) {\n const renewTokenResult = await client.renewToken({\n refreshToken: accountRefreshToken,\n siteId,\n });\n\n if (isType(renewTokenResult, RenewTokenData.TokenRenewed)) {\n await saveAuthData(renewTokenResult.payload, siteId);\n }\n\n return renewTokenResult;\n}\n\nconst AuthenticationResult = variant({\n Ok: payload<SiteAuth>(),\n RefreshTokenRevoked: fields<{ cause: HttpError }>(),\n});\nasync function ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n}: {\n siteId: string;\n accountRefreshToken: string;\n}) {\n const siteAuthStatus = await readSiteAuthData(siteId);\n\n return matcher(siteAuthStatus)\n .with({ Authenticated: (data) => AuthenticationResult.Ok(data) })\n .when(['Unauthenticated', 'Expired'], async () => {\n const renewTokenResult = await renewSiteAuth({\n accountRefreshToken,\n siteId,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload }) => AuthenticationResult.Ok(payload),\n RefreshTokenRevoked: ({ cause }) => {\n return AuthenticationResult.RefreshTokenRevoked({ cause });\n },\n });\n })\n .complete();\n}\n\nfunction createSiteAuthState({\n siteAuth: initialTokenData,\n accountRefreshToken,\n siteId,\n userInfo,\n}: {\n siteId: string;\n accountRefreshToken: string;\n userInfo: UserInfo;\n siteAuth: SiteAuth;\n}): AuthStrategyState {\n const limiter = pLimit(1);\n let tokenData = { ...initialTokenData };\n\n return {\n getAccessToken: () => {\n return limiter(async () => {\n if (isValidToken(tokenData)) {\n return tokenData.accessToken;\n }\n\n const renewTokenResult = await renewSiteAuth({\n accountRefreshToken,\n siteId,\n });\n\n return match(renewTokenResult, {\n TokenRenewed: ({ payload: newTokenData }) => {\n tokenData = newTokenData;\n return tokenData.accessToken;\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n });\n },\n getRefreshToken: () => tokenData.refreshToken,\n userInfo: userInfo,\n };\n}\n\nexport const createSiteAuthStrategy = (siteId: string): AuthStrategy => ({\n async isLoggedIn() {\n const apiKeyAuth = await apiKeyAuthStrategy.isLoggedIn({ siteId });\n\n if (apiKeyAuth) {\n return apiKeyAuth;\n }\n\n const accountAuth = await accountAuthStrategy.isLoggedIn();\n\n if (accountAuth) {\n const accountRefreshToken = accountAuth.getRefreshToken();\n const siteAuthResult = await ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n });\n\n if (isType(siteAuthResult, AuthenticationResult.Ok)) {\n return createSiteAuthState({\n siteId,\n siteAuth: siteAuthResult.payload,\n accountRefreshToken,\n userInfo: accountAuth.userInfo,\n });\n }\n }\n\n return null;\n },\n async login({ deviceCode, signal }) {\n const accountAuth = await accountAuthStrategy.login({ deviceCode, signal });\n const accountRefreshToken = accountAuth.getRefreshToken();\n const siteAuthResult = await ensureAuthenticatedToSite({\n siteId,\n accountRefreshToken,\n });\n\n return match(siteAuthResult, {\n Ok: ({ payload: siteAuth }) => {\n return createSiteAuthState({\n siteId,\n siteAuth,\n accountRefreshToken,\n userInfo: accountAuth.userInfo,\n });\n },\n RefreshTokenRevoked: ({ cause }) => {\n throw new CliError({\n code: CliErrorCode.FailedToRenewAuthTokenRefreshTokenRevoked(),\n cause,\n });\n },\n });\n },\n});\n","import { isType } from 'variant';\nimport {\n deleteAuthData,\n readAccountAuthData,\n AccountAuthData,\n} from './auth-data.js';\nimport { client } from './client.js';\n\nexport async function logout() {\n const authData = await readAccountAuthData();\n if (!isType(authData, AccountAuthData.Unauthenticated)) {\n await client.revokeRefreshToken(\n { token: authData.refreshToken },\n authData.userInfo\n );\n }\n\n await deleteAuthData();\n\n return null;\n}\n","import { useContext } from 'react';\nimport { AuthContext } from './context.js';\nimport type { AuthState } from './context.js';\n\nexport function useAuth(): AuthState {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error('useAuth() cannot be used without an <AuthProvider>');\n }\n\n return context;\n}\n","import { createContext } from 'react';\nimport type { AuthStrategyState } from './auth-strategies/index.js';\n\nexport type AuthState = Pick<\n AuthStrategyState,\n 'getAccessToken' | 'getRequestHeaders' | 'userInfo'\n>;\n\nexport const AuthContext = createContext<AuthState | null>(null);\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Spinner, useAsync } from '@wix/cli-ui-kit';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliLoginStart, wixCliLoginEnd } from '@wix/bi-logger-wix-cli/v2';\nimport { match } from 'variant';\nimport { apiKeyAuthStrategy } from '../auth-strategies/index.js';\nimport type { AuthStrategyState } from '../auth-strategies/index.js';\n\ninterface Props {\n token: string;\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n}\n\nexport const ApiKeyLogin: FC<Props> = ({ token, onLogin, onError }) => {\n const biLogger = useBiLogger();\n\n const { status } = useAsync(\n async () => {\n void biLogger.report(wixCliLoginStart({}));\n\n return apiKeyAuthStrategy.login({ token });\n },\n [],\n {\n onSuccess: (authData) => {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: true,\n })\n );\n onLogin(authData);\n },\n onError: (error) => {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: false,\n ...(error instanceof Error\n ? {\n errorType: error.name,\n }\n : {\n errorType: 'unknown',\n errorMessage: JSON.stringify(error),\n }),\n })\n );\n\n onError(error);\n },\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner />,\n Success: () => null,\n });\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Spinner, useAsync, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { I18nProvider } from '@wix/cli-i18n';\nimport { useBiLogger } from '@wix/cli-telemetry-react';\nimport { wixCliLoginStart, wixCliLoginEnd } from '@wix/bi-logger-wix-cli/v2';\nimport { match } from 'variant';\nimport type { DeviceCodeResponse } from '../schemas.js';\nimport messages from '../messages.json';\nimport { accountAuthStrategy } from '../auth-strategies/index.js';\nimport type {\n AuthStrategy,\n AuthStrategyState,\n} from '../auth-strategies/index.js';\nimport { LoginInstructions } from './LoginInstructions.js';\nimport { client } from '../client.js';\n\ninterface Props {\n loginFn: AuthStrategy['login'];\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n}\n\nexport const Login: FC<Props> = ({ loginFn, onLogin, onError }) => {\n const biLogger = useBiLogger();\n\n function handleError(error: unknown) {\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: false,\n ...(error instanceof Error\n ? {\n errorType: error.name,\n }\n : {\n errorType: 'unknown',\n errorMessage: JSON.stringify(error),\n }),\n })\n );\n\n onError(error);\n }\n\n const loginAction = useAsyncCallback(\n async ({ signal }, deviceCodeResponse: DeviceCodeResponse) => {\n try {\n const authData = await loginFn({\n deviceCode: deviceCodeResponse,\n signal,\n });\n void biLogger.report(\n wixCliLoginEnd({\n isSuccess: true,\n })\n );\n onLogin(authData);\n } catch (error) {\n handleError(error);\n }\n }\n );\n\n const { status } = useAsync(\n async () => {\n void biLogger.report(wixCliLoginStart({}));\n\n return client.requestDeviceCode();\n },\n [],\n {\n onSuccess: (deviceCodeResponse) => {\n void loginAction.execute(deviceCodeResponse);\n },\n onError: handleError,\n }\n );\n\n return match(status, {\n Error: () => null,\n Loading: () => <Spinner />,\n Success: ({ result: { userCode, verificationUri } }) => (\n <LoginInstructions\n userCode={userCode}\n verificationUri={verificationUri}\n />\n ),\n });\n};\n\nexport function LoginWithI18n(props: Omit<Props, 'loginFn'>) {\n return (\n <I18nProvider messages={messages}>\n <Login loginFn={accountAuthStrategy.login} {...props} />\n </I18nProvider>\n );\n}\n","{\n \"login.instructions_title\": \"Authorize the CLI to access your Wix account:\",\n \"login.instructions_details\": \"1. Copy this code to the clipboard: <0>{code}</0>\\n2. Press <1/> to <2>log in</2> and then paste the code\",\n \"login.legacy_auth_notice\": \"We implemented a new and more secure login method. You'll need to re-login to continue using the CLI.\",\n \"login.error_opening_browser\": \"Failed to open browser, please try opening <0/> manually.\"\n}\n","import React, { useState } from 'react';\nimport type { FC } from 'react';\nimport { Box, Text, Link, useInput, Key } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { openBrowser } from '@wix/user-browser';\nimport { ErrorViewer, useErrorReporter } from '@wix/cli-error-reporting';\nimport { useColoredVerificationUri } from '../useColoredVerificationUri.js';\n\ninterface Props {\n userCode: string;\n verificationUri: string;\n}\n\nexport const LoginInstructions: FC<Props> = ({ userCode, verificationUri }) => {\n const coloredVerificationUri = useColoredVerificationUri(verificationUri);\n const { reportError } = useErrorReporter();\n const [openBrowserError, setOpenBrowserError] = useState<unknown>(null);\n\n useInput((input, key) => {\n if (key.return) {\n openBrowser(coloredVerificationUri).catch((error: unknown) => {\n reportError(error);\n setOpenBrowserError(error);\n });\n }\n });\n\n return (\n <>\n <Trans i18nKey=\"login.instructions_title\" />\n <Box flexDirection=\"column\" marginTop={1} marginBottom={1} marginLeft={2}>\n <Trans\n i18nKey=\"login.instructions_details\"\n components={[\n <Text skin=\"legacyBlue\" />,\n <Key value=\"enter\" />,\n <Link url={coloredVerificationUri} />,\n ]}\n values={{ code: userCode }}\n />\n </Box>\n\n {openBrowserError && (\n <>\n <Box flexDirection=\"column\" marginBottom={1}>\n <ErrorViewer error={openBrowserError} />\n </Box>\n\n <Trans\n i18nKey=\"login.error_opening_browser\"\n components={[<Link url={coloredVerificationUri} />]}\n />\n </>\n )}\n </>\n );\n};\n","import open from 'open';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { open as openTestkit } from './open-testkit.js';\n\nexport async function openBrowser(url: string) {\n const { userBrowserTestEndpoint: testEndpoint } = getTestOverrides();\n\n if (testEndpoint) {\n await openTestkit(testEndpoint, url);\n } else {\n await open(url, {\n background: true,\n });\n }\n}\n","import process from 'node:process';\nimport {Buffer} from 'node:buffer';\nimport path from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport childProcess from 'node:child_process';\nimport fs, {constants as fsConstants} from 'node:fs/promises';\nimport isWsl from 'is-wsl';\nimport defineLazyProperty from 'define-lazy-prop';\nimport defaultBrowser from 'default-browser';\nimport isInsideContainer from 'is-inside-container';\n\n// Path to included `xdg-open`.\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst localXdgOpenPath = path.join(__dirname, 'xdg-open');\n\nconst {platform, arch} = process;\n\n/**\nGet the mount point for fixed drives in WSL.\n\n@inner\n@returns {string} The mount point.\n*/\nconst getWslDrivesMountPoint = (() => {\n\t// Default value for \"root\" param\n\t// according to https://docs.microsoft.com/en-us/windows/wsl/wsl-config\n\tconst defaultMountPoint = '/mnt/';\n\n\tlet mountPoint;\n\n\treturn async function () {\n\t\tif (mountPoint) {\n\t\t\t// Return memoized mount point value\n\t\t\treturn mountPoint;\n\t\t}\n\n\t\tconst configFilePath = '/etc/wsl.conf';\n\n\t\tlet isConfigFileExists = false;\n\t\ttry {\n\t\t\tawait fs.access(configFilePath, fsConstants.F_OK);\n\t\t\tisConfigFileExists = true;\n\t\t} catch {}\n\n\t\tif (!isConfigFileExists) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tconst configContent = await fs.readFile(configFilePath, {encoding: 'utf8'});\n\t\tconst configMountPoint = /(?<!#.*)root\\s*=\\s*(?<mountPoint>.*)/g.exec(configContent);\n\n\t\tif (!configMountPoint) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tmountPoint = configMountPoint.groups.mountPoint.trim();\n\t\tmountPoint = mountPoint.endsWith('/') ? mountPoint : `${mountPoint}/`;\n\n\t\treturn mountPoint;\n\t};\n})();\n\nconst pTryEach = async (array, mapper) => {\n\tlet latestError;\n\n\tfor (const item of array) {\n\t\ttry {\n\t\t\treturn await mapper(item); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tlatestError = error;\n\t\t}\n\t}\n\n\tthrow latestError;\n};\n\nconst baseOpen = async options => {\n\toptions = {\n\t\twait: false,\n\t\tbackground: false,\n\t\tnewInstance: false,\n\t\tallowNonzeroExitCode: false,\n\t\t...options,\n\t};\n\n\tif (Array.isArray(options.app)) {\n\t\treturn pTryEach(options.app, singleApp => baseOpen({\n\t\t\t...options,\n\t\t\tapp: singleApp,\n\t\t}));\n\t}\n\n\tlet {name: app, arguments: appArguments = []} = options.app ?? {};\n\tappArguments = [...appArguments];\n\n\tif (Array.isArray(app)) {\n\t\treturn pTryEach(app, appName => baseOpen({\n\t\t\t...options,\n\t\t\tapp: {\n\t\t\t\tname: appName,\n\t\t\t\targuments: appArguments,\n\t\t\t},\n\t\t}));\n\t}\n\n\tif (app === 'browser' || app === 'browserPrivate') {\n\t\t// IDs from default-browser for macOS and windows are the same\n\t\tconst ids = {\n\t\t\t'com.google.chrome': 'chrome',\n\t\t\t'google-chrome.desktop': 'chrome',\n\t\t\t'org.mozilla.firefox': 'firefox',\n\t\t\t'firefox.desktop': 'firefox',\n\t\t\t'com.microsoft.msedge': 'edge',\n\t\t\t'com.microsoft.edge': 'edge',\n\t\t\t'microsoft-edge.desktop': 'edge',\n\t\t};\n\n\t\t// Incognito flags for each browser in `apps`.\n\t\tconst flags = {\n\t\t\tchrome: '--incognito',\n\t\t\tfirefox: '--private-window',\n\t\t\tedge: '--inPrivate',\n\t\t};\n\n\t\tconst browser = await defaultBrowser();\n\t\tif (browser.id in ids) {\n\t\t\tconst browserName = ids[browser.id];\n\n\t\t\tif (app === 'browserPrivate') {\n\t\t\t\tappArguments.push(flags[browserName]);\n\t\t\t}\n\n\t\t\treturn baseOpen({\n\t\t\t\t...options,\n\t\t\t\tapp: {\n\t\t\t\t\tname: apps[browserName],\n\t\t\t\t\targuments: appArguments,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthrow new Error(`${browser.name} is not supported as a default browser`);\n\t}\n\n\tlet command;\n\tconst cliArguments = [];\n\tconst childProcessOptions = {};\n\n\tif (platform === 'darwin') {\n\t\tcommand = 'open';\n\n\t\tif (options.wait) {\n\t\t\tcliArguments.push('--wait-apps');\n\t\t}\n\n\t\tif (options.background) {\n\t\t\tcliArguments.push('--background');\n\t\t}\n\n\t\tif (options.newInstance) {\n\t\t\tcliArguments.push('--new');\n\t\t}\n\n\t\tif (app) {\n\t\t\tcliArguments.push('-a', app);\n\t\t}\n\t} else if (platform === 'win32' || (isWsl && !isInsideContainer() && !app)) {\n\t\tconst mountPoint = await getWslDrivesMountPoint();\n\n\t\tcommand = isWsl\n\t\t\t? `${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`\n\t\t\t: `${process.env.SYSTEMROOT || process.env.windir || 'C:\\\\Windows'}\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\powershell`;\n\n\t\tcliArguments.push(\n\t\t\t'-NoProfile',\n\t\t\t'-NonInteractive',\n\t\t\t'-ExecutionPolicy',\n\t\t\t'Bypass',\n\t\t\t'-EncodedCommand',\n\t\t);\n\n\t\tif (!isWsl) {\n\t\t\tchildProcessOptions.windowsVerbatimArguments = true;\n\t\t}\n\n\t\tconst encodedArguments = ['Start'];\n\n\t\tif (options.wait) {\n\t\t\tencodedArguments.push('-Wait');\n\t\t}\n\n\t\tif (app) {\n\t\t\t// Double quote with double quotes to ensure the inner quotes are passed through.\n\t\t\t// Inner quotes are delimited for PowerShell interpretation with backticks.\n\t\t\tencodedArguments.push(`\"\\`\"${app}\\`\"\"`);\n\t\t\tif (options.target) {\n\t\t\t\tappArguments.push(options.target);\n\t\t\t}\n\t\t} else if (options.target) {\n\t\t\tencodedArguments.push(`\"${options.target}\"`);\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tappArguments = appArguments.map(argument => `\"\\`\"${argument}\\`\"\"`);\n\t\t\tencodedArguments.push('-ArgumentList', appArguments.join(','));\n\t\t}\n\n\t\t// Using Base64-encoded command, accepted by PowerShell, to allow special characters.\n\t\toptions.target = Buffer.from(encodedArguments.join(' '), 'utf16le').toString('base64');\n\t} else {\n\t\tif (app) {\n\t\t\tcommand = app;\n\t\t} else {\n\t\t\t// When bundled by Webpack, there's no actual package file path and no local `xdg-open`.\n\t\t\tconst isBundled = !__dirname || __dirname === '/';\n\n\t\t\t// Check if local `xdg-open` exists and is executable.\n\t\t\tlet exeLocalXdgOpen = false;\n\t\t\ttry {\n\t\t\t\tawait fs.access(localXdgOpenPath, fsConstants.X_OK);\n\t\t\t\texeLocalXdgOpen = true;\n\t\t\t} catch {}\n\n\t\t\tconst useSystemXdgOpen = process.versions.electron\n\t\t\t\t?? (platform === 'android' || isBundled || !exeLocalXdgOpen);\n\t\t\tcommand = useSystemXdgOpen ? 'xdg-open' : localXdgOpenPath;\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tcliArguments.push(...appArguments);\n\t\t}\n\n\t\tif (!options.wait) {\n\t\t\t// `xdg-open` will block the process unless stdio is ignored\n\t\t\t// and it's detached from the parent even if it's unref'd.\n\t\t\tchildProcessOptions.stdio = 'ignore';\n\t\t\tchildProcessOptions.detached = true;\n\t\t}\n\t}\n\n\tif (platform === 'darwin' && appArguments.length > 0) {\n\t\tcliArguments.push('--args', ...appArguments);\n\t}\n\n\t// This has to come after `--args`.\n\tif (options.target) {\n\t\tcliArguments.push(options.target);\n\t}\n\n\tconst subprocess = childProcess.spawn(command, cliArguments, childProcessOptions);\n\n\tif (options.wait) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tsubprocess.once('error', reject);\n\n\t\t\tsubprocess.once('close', exitCode => {\n\t\t\t\tif (!options.allowNonzeroExitCode && exitCode > 0) {\n\t\t\t\t\treject(new Error(`Exited with code ${exitCode}`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve(subprocess);\n\t\t\t});\n\t\t});\n\t}\n\n\tsubprocess.unref();\n\n\treturn subprocess;\n};\n\nconst open = (target, options) => {\n\tif (typeof target !== 'string') {\n\t\tthrow new TypeError('Expected a `target`');\n\t}\n\n\treturn baseOpen({\n\t\t...options,\n\t\ttarget,\n\t});\n};\n\nexport const openApp = (name, options) => {\n\tif (typeof name !== 'string' && !Array.isArray(name)) {\n\t\tthrow new TypeError('Expected a valid `name`');\n\t}\n\n\tconst {arguments: appArguments = []} = options ?? {};\n\tif (appArguments !== undefined && appArguments !== null && !Array.isArray(appArguments)) {\n\t\tthrow new TypeError('Expected `appArguments` as Array type');\n\t}\n\n\treturn baseOpen({\n\t\t...options,\n\t\tapp: {\n\t\t\tname,\n\t\t\targuments: appArguments,\n\t\t},\n\t});\n};\n\nfunction detectArchBinary(binary) {\n\tif (typeof binary === 'string' || Array.isArray(binary)) {\n\t\treturn binary;\n\t}\n\n\tconst {[arch]: archBinary} = binary;\n\n\tif (!archBinary) {\n\t\tthrow new Error(`${arch} is not supported`);\n\t}\n\n\treturn archBinary;\n}\n\nfunction detectPlatformBinary({[platform]: platformBinary}, {wsl}) {\n\tif (wsl && isWsl) {\n\t\treturn detectArchBinary(wsl);\n\t}\n\n\tif (!platformBinary) {\n\t\tthrow new Error(`${platform} is not supported`);\n\t}\n\n\treturn detectArchBinary(platformBinary);\n}\n\nexport const apps = {};\n\ndefineLazyProperty(apps, 'chrome', () => detectPlatformBinary({\n\tdarwin: 'google chrome',\n\twin32: 'chrome',\n\tlinux: ['google-chrome', 'google-chrome-stable', 'chromium'],\n}, {\n\twsl: {\n\t\tia32: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',\n\t\tx64: ['/mnt/c/Program Files/Google/Chrome/Application/chrome.exe', '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'],\n\t},\n}));\n\ndefineLazyProperty(apps, 'firefox', () => detectPlatformBinary({\n\tdarwin: 'firefox',\n\twin32: 'C:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe',\n\tlinux: 'firefox',\n}, {\n\twsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe',\n}));\n\ndefineLazyProperty(apps, 'edge', () => detectPlatformBinary({\n\tdarwin: 'microsoft edge',\n\twin32: 'msedge',\n\tlinux: ['microsoft-edge', 'microsoft-edge-dev'],\n}, {\n\twsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe',\n}));\n\ndefineLazyProperty(apps, 'browser', () => 'browser');\n\ndefineLazyProperty(apps, 'browserPrivate', () => 'browserPrivate');\n\nexport default open;\n","import process from 'node:process';\nimport os from 'node:os';\nimport fs from 'node:fs';\nimport isInsideContainer from 'is-inside-container';\n\nconst isWsl = () => {\n\tif (process.platform !== 'linux') {\n\t\treturn false;\n\t}\n\n\tif (os.release().toLowerCase().includes('microsoft')) {\n\t\tif (isInsideContainer()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft')\n\t\t\t? !isInsideContainer() : false;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default process.env.__IS_WSL_TEST__ ? isWsl : isWsl();\n","import fs from 'node:fs';\nimport isDocker from 'is-docker';\n\nlet cachedResult;\n\n// Podman detection\nconst hasContainerEnv = () => {\n\ttry {\n\t\tfs.statSync('/run/.containerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport default function isInsideContainer() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (cachedResult === undefined) {\n\t\tcachedResult = hasContainerEnv() || isDocker();\n\t}\n\n\treturn cachedResult;\n}\n","import fs from 'node:fs';\n\nlet isDockerCached;\n\nfunction hasDockerEnv() {\n\ttry {\n\t\tfs.statSync('/.dockerenv');\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction hasDockerCGroup() {\n\ttry {\n\t\treturn fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport default function isDocker() {\n\t// TODO: Use `??=` when targeting Node.js 16.\n\tif (isDockerCached === undefined) {\n\t\tisDockerCached = hasDockerEnv() || hasDockerCGroup();\n\t}\n\n\treturn isDockerCached;\n}\n","export default function defineLazyProperty(object, propertyName, valueGetter) {\n\tconst define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true});\n\n\tObject.defineProperty(object, propertyName, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\tget() {\n\t\t\tconst result = valueGetter();\n\t\t\tdefine(result);\n\t\t\treturn result;\n\t\t},\n\t\tset(value) {\n\t\t\tdefine(value);\n\t\t}\n\t});\n\n\treturn object;\n}\n","import {promisify} from 'node:util';\nimport process from 'node:process';\nimport {execFile} from 'node:child_process';\nimport defaultBrowserId from 'default-browser-id';\nimport bundleName from 'bundle-name';\nimport windows from './windows.js';\n\nconst execFileAsync = promisify(execFile);\n\n// Inlined: https://github.com/sindresorhus/titleize/blob/main/index.js\nconst titleize = string => string.toLowerCase().replaceAll(/(?:^|\\s|-)\\S/g, x => x.toUpperCase());\n\nexport default async function defaultBrowser() {\n\tif (process.platform === 'darwin') {\n\t\tconst id = await defaultBrowserId();\n\t\tconst name = await bundleName(id);\n\t\treturn {name, id};\n\t}\n\n\tif (process.platform === 'linux') {\n\t\tconst {stdout} = await execFileAsync('xdg-mime', ['query', 'default', 'x-scheme-handler/http']);\n\t\tconst id = stdout.trim();\n\t\tconst name = titleize(id.replace(/.desktop$/, '').replace('-', ' '));\n\t\treturn {name, id};\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn windows();\n\t}\n\n\tthrow new Error('Only macOS, Linux, and Windows are supported');\n}\n","import {promisify} from 'node:util';\nimport process from 'node:process';\nimport {execFile} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\nexport default async function defaultBrowserId() {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst {stdout} = await execFileAsync('defaults', ['read', 'com.apple.LaunchServices/com.apple.launchservices.secure', 'LSHandlers']);\n\n\t// `(?!-)` is to prevent matching `LSHandlerRoleAll = \"-\";`.\n\tconst match = /LSHandlerRoleAll = \"(?!-)(?<id>[^\"]+?)\";\\s+?LSHandlerURLScheme = (?:http|https);/.exec(stdout);\n\n\treturn match?.groups.id ?? 'com.apple.Safari';\n}\n","import {runAppleScript} from 'run-applescript';\n\nexport default async function bundleName(bundleId) {\n\treturn runAppleScript(`tell application \"Finder\" to set app_path to application file id \"${bundleId}\" as string\\ntell application \"System Events\" to get value of property list item \"CFBundleName\" of property list file (app_path & \":Contents:Info.plist\")`);\n}\n","import process from 'node:process';\nimport {promisify} from 'node:util';\nimport {execFile, execFileSync} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\nexport async function runAppleScript(script, {humanReadableOutput = true} = {}) {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst outputArguments = humanReadableOutput ? [] : ['-ss'];\n\n\tconst {stdout} = await execFileAsync('osascript', ['-e', script, outputArguments]);\n\treturn stdout.trim();\n}\n\nexport function runAppleScriptSync(script, {humanReadableOutput = true} = {}) {\n\tif (process.platform !== 'darwin') {\n\t\tthrow new Error('macOS only');\n\t}\n\n\tconst outputArguments = humanReadableOutput ? [] : ['-ss'];\n\n\tconst stdout = execFileSync('osascript', ['-e', script, ...outputArguments], {\n\t\tencoding: 'utf8',\n\t\tstdio: ['ignore', 'pipe', 'ignore'],\n\t\ttimeout: 500,\n\t});\n\n\treturn stdout.trim();\n}\n","import {promisify} from 'node:util';\nimport {execFile} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\n// Windows doesn't have browser IDs in the same way macOS/Linux does so we give fake\n// ones that look real and match the macOS/Linux versions for cross-platform apps.\nconst windowsBrowserProgIds = {\n\tAppXq0fevzme2pys62n3e0fbqa7peapykr8v: {name: 'Edge', id: 'com.microsoft.edge.old'},\n\tMSEdgeDHTML: {name: 'Edge', id: 'com.microsoft.edge'}, // On macOS, it's \"com.microsoft.edgemac\"\n\tMSEdgeHTM: {name: 'Edge', id: 'com.microsoft.edge'}, // Newer Edge/Win10 releases\n\t'IE.HTTP': {name: 'Internet Explorer', id: 'com.microsoft.ie'},\n\tFirefoxURL: {name: 'Firefox', id: 'org.mozilla.firefox'},\n\tChromeHTML: {name: 'Chrome', id: 'com.google.chrome'},\n\tBraveHTML: {name: 'Brave', id: 'com.brave.Browser'},\n\tBraveBHTML: {name: 'Brave Beta', id: 'com.brave.Browser.beta'},\n\tBraveSSHTM: {name: 'Brave Nightly', id: 'com.brave.Browser.nightly'},\n};\n\nexport class UnknownBrowserError extends Error {}\n\nexport default async function defaultBrowser(_execFileAsync = execFileAsync) {\n\tconst {stdout} = await _execFileAsync('reg', [\n\t\t'QUERY',\n\t\t' HKEY_CURRENT_USER\\\\Software\\\\Microsoft\\\\Windows\\\\Shell\\\\Associations\\\\UrlAssociations\\\\http\\\\UserChoice',\n\t\t'/v',\n\t\t'ProgId',\n\t]);\n\n\tconst match = /ProgId\\s*REG_SZ\\s*(?<id>\\S+)/.exec(stdout);\n\tif (!match) {\n\t\tthrow new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(stdout)}`);\n\t}\n\n\tconst {id} = match.groups;\n\n\tconst browser = windowsBrowserProgIds[id];\n\tif (!browser) {\n\t\tthrow new UnknownBrowserError(`Unknown browser ID: ${id}`);\n\t}\n\n\treturn browser;\n}\n","import { createHttpClient } from '@wix/http-client';\n\nexport async function open(testEndpoint: string, url: string) {\n await createHttpClient().post(testEndpoint, undefined, {\n params: {\n url,\n },\n });\n}\n","import { useMemo } from 'react';\n\nexport function useColoredVerificationUri(verificationUri: string): string {\n return useMemo(() => {\n const coloredUri = new URL(verificationUri);\n coloredUri.searchParams.set('color', 'developer');\n coloredUri.searchParams.set('studio', 'true');\n return coloredUri.toString();\n }, [verificationUri]);\n}\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useExit } from '@wix/cli-ui-kit';\nimport { AuthContext } from '../context.js';\nimport type { UserInfo } from '../schemas.js';\nimport { accountAuthStrategy } from '../auth-strategies/index.js';\nimport { EnsureLoggedIn } from '../components/EnsureLoggedIn.js';\n\ninterface Props {\n children: ReactNode;\n onError?: (error: unknown) => void;\n onLogin?: (userInfo: UserInfo) => void;\n}\n\nexport const AccountAuthProvider: FC<Props> = ({\n children,\n onError,\n onLogin,\n}) => {\n const exit = useExit();\n\n return (\n <EnsureLoggedIn\n authStrategy={accountAuthStrategy}\n onLogin={({ userInfo }) => onLogin?.(userInfo)}\n onError={onError ?? exit}\n >\n {({ getAccessToken, getRequestHeaders, userInfo }) => (\n <AuthContext.Provider\n value={{ getAccessToken, getRequestHeaders, userInfo }}\n >\n {children}\n </AuthContext.Provider>\n )}\n </EnsureLoggedIn>\n );\n};\n","import React from 'react';\nimport type { ReactNode, FC } from 'react';\nimport { match } from 'variant';\nimport { useAsync, Spinner } from '@wix/cli-ui-kit';\nimport { I18nProvider } from '@wix/cli-i18n';\nimport type {\n AuthStrategy,\n AuthStrategyState,\n} from '../auth-strategies/index.js';\nimport { Login } from './Login.js';\nimport { WarnLegacyAuthData } from './WarnLegacyAuthData.js';\nimport messages from '../messages.json';\n\ninterface Props {\n authStrategy: AuthStrategy;\n onLogin: (data: AuthStrategyState) => void;\n onError: (error: unknown) => void;\n children: (data: AuthStrategyState) => ReactNode;\n}\n\nexport const EnsureLoggedIn: FC<Props> = ({\n authStrategy: { login, isLoggedIn },\n onLogin,\n onError,\n children,\n}) => {\n const { status, merge: updateAccountAuth } = useAsync(isLoggedIn, [], {\n onSuccess: (result) => {\n if (result) {\n onLogin(result);\n }\n },\n onError,\n });\n\n return match(status, {\n Loading: () => <Spinner />,\n Error: () => null,\n Success: ({ result: accountAuth }) => {\n if (accountAuth === null) {\n return (\n <I18nProvider messages={messages}>\n <WarnLegacyAuthData>\n <Login\n loginFn={login}\n onLogin={(data) => {\n updateAccountAuth({ result: data });\n onLogin(data);\n }}\n onError={onError}\n />\n </WarnLegacyAuthData>\n </I18nProvider>\n );\n }\n\n return children(accountAuth);\n },\n });\n};\n","import React from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { match } from 'variant';\nimport { Box, useAsync } from '@wix/cli-ui-kit';\nimport { Trans } from '@wix/cli-i18n';\nimport { hasLegacyAuthData } from '../auth-data.js';\n\ninterface Props {\n children: ReactNode;\n}\n\nexport const WarnLegacyAuthData: FC<Props> = ({ children }) => {\n const { status } = useAsync(hasLegacyAuthData, [], { onError: () => {} });\n\n return match(status, {\n Error: () => null,\n Loading: () => null,\n Success: ({ result }) => (\n <>\n {result && (\n <Box marginBottom={1}>\n <Trans i18nKey=\"login.legacy_auth_notice\" />\n </Box>\n )}\n {children}\n </>\n ),\n });\n};\n","import React, { useMemo } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useExit } from '@wix/cli-ui-kit';\nimport type { UserInfo } from '../schemas.js';\nimport { AuthContext } from '../context.js';\nimport { EnsureLoggedIn } from '../components/EnsureLoggedIn.js';\nimport { createSiteAuthStrategy } from '../auth-strategies/index.js';\n\ninterface Props {\n siteId: string;\n onError?: (error: unknown) => void;\n onLogin?: (userInfo: UserInfo) => void;\n children: ReactNode;\n}\n\nexport const SiteAuthProvider: FC<Props> = ({\n children,\n siteId,\n onError,\n onLogin,\n}) => {\n const exit = useExit();\n const authStrategy = useMemo(() => createSiteAuthStrategy(siteId), [siteId]);\n\n return (\n <EnsureLoggedIn\n authStrategy={authStrategy}\n onLogin={({ userInfo }) => onLogin?.(userInfo)}\n onError={onError ?? exit}\n >\n {({ getAccessToken, getRequestHeaders, userInfo }) => (\n <AuthContext.Provider\n value={{ getAccessToken, getRequestHeaders, userInfo }}\n >\n {children}\n </AuthContext.Provider>\n )}\n </EnsureLoggedIn>\n );\n};\n","import React, { useEffect } from 'react';\nimport type { FC } from 'react';\nimport { render, useExit } from '@wix/cli-ui-kit';\nimport { BiProvider } from '@wix/cli-telemetry-react';\nimport type { BiLogger } from '@wix/cli-telemetry';\nimport { ErrorReporterProvider } from '@wix/cli-error-reporting';\nimport type { ErrorReporter } from '@wix/cli-error-reporting';\nimport type { AuthState } from './context.js';\nimport { SiteAuthProvider } from './providers/SiteAuthProvider.js';\nimport { useAuth } from './useAuth.js';\n\nconst Wrapper: FC<{ onReady: (data: AuthState) => void }> = ({ onReady }) => {\n const exit = useExit();\n const auth = useAuth();\n\n useEffect(() => {\n onReady(auth);\n exit();\n }, [exit, auth, onReady]);\n\n return null;\n};\n\n/**\n * @deprecated migrate to ink & use `SiteAuthProvider` directly\n */\nexport function authenticateWithSiteId(\n siteId: string,\n biLogger: BiLogger,\n errorReporter: ErrorReporter\n): Promise<AuthState> {\n return new Promise<AuthState>((resolve, reject) => {\n render(\n <ErrorReporterProvider value={errorReporter}>\n <BiProvider value={biLogger}>\n <SiteAuthProvider siteId={siteId}>\n <Wrapper onReady={resolve} />\n </SiteAuthProvider>\n </BiProvider>\n </ErrorReporterProvider>\n ).catch((error: unknown) => reject(error));\n });\n}\n"],"mappings":"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","names":["require_retry_operation","__commonJSMin","exports","module","init_esm_shims","RetryOperation","timeouts","options","err","currentTime","timeout","self","fn","timeoutOps","counts","mainError","mainErrorCount","i","error","message","count","require_retry","__commonJSMin","exports","init_esm_shims","RetryOperation","options","timeouts","opts","key","i","a","b","attempt","random","timeout","obj","methods","method","original","op","args","callback","err","require_retry","__commonJSMin","exports","module","init_esm_shims","init_esm_shims","init_esm_shims","init_esm_shims","import_variant","init_esm_shims","init_esm_shims","import_retry","networkErrorMsgs","AbortError","message","decorateErrorWithCounts","error","attemptNumber","options","retriesLeft","isNetworkError","errorMessage","getDOMException","pRetry","input","resolve","reject","operation","retry","reason","init_esm_shims","init_esm_shims","init_esm_shims","init_esm_shims","parseLeanSchemaRef","renderedSchemaName","typeOrName","schemaName","getSchemaNameAndType","leanSchema","init_esm_shims","init_esm_shims","findByPath","obj","path","defaultValue","suffix","result","field","USER_DOMAIN","DOMAINS","WIX_API_DOMAINS","DEV_WIX_CODE_DOMAIN","REGEX_CAPTURE_PROTO_FIELD","REGEX_CAPTURE_DOMAINS","REGEX_CAPTURE_API_DOMAINS","REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN","resolveUrl","opts","domain","resolveDomain","mappings","resolveMappingsByDomain","path","injectDataIntoProtoPath","resolvePath","protoPath","data","maybeProtoPathToData","protoRegExpMatch","field","suffix","findByPath","host","fixHostExceptions","domainToMappings","isBaseDomain","wwwBaseDomain","mapping","m","init_esm_shims","init_esm_shims","_hasBuffer","_TD","_TE","b64ch","b64chs","b64tab","a","tab","c","i","_fromCC","_U8Afrom","it","_mkUriSafe","src","m0","btoaPolyfill","bin","u32","c0","c1","c2","asc","pad","i","b64chs","_btoa","_hasBuffer","_fromUint8Array","u8a","strs","l","_fromCC","cb_utob","c","cc","_fromCC","re_utob","utob","u","_encode","_hasBuffer","s","_TE","_fromUint8Array","_btoa","encode","src","urlsafe","_mkUriSafe","flattenParams","data","path","params","key","value","isObject","fieldPath","resolvePath","serializedObject","toURLSearchParams","isComplexRequest","flatten","searchParams","urlSearchParams","param","encode","init_esm_shims","init_esm_shims","ConverterType","init_esm_shims","schemaSerializer","rootSchema","depSchemas","converterSets","json","converterType","transformSchema","schema","payload","result","key","val","renderedSchemaName","schemaName","schemaType","parseLeanSchemaRef","isMap","isRepeatable","getConverter","parsedValue","v","applyField","applyFieldOnMap","schemaOrSerializer","maybeSchema","name","sanitizedSchemaOrSerializer","acc","propertyName","value","init_esm_shims","init_esm_shims","timestamp","ConverterType","val","init_esm_shims","fieldMask","ConverterType","val","v","init_esm_shims","bytes","ConverterType","val","chars","res","c","init_esm_shims","duration","ConverterType","seconds","nanos","nanosPortion","val","nanosForString","res","precision","init_esm_shims","float","ConverterType","val","protobufConverters","timestamp","fieldMask","bytes","duration","float","init_esm_shims","typeToConverterSet","converterSets","result","converterSet","types","typeResult","type","ambassadorConverters","typeToConverterSet","protobufConverters","serializer","rootSchema","depSchemas","transform","schemaSerializer","jsonOrString","jsonOrText","safeJsonParse","ConverterType","json","someString","_account","_accountResponse","_getMyAccountRequest","resolveComWixpressAccountApiAccountServiceUrl","opts","domainToMappings","resolveUrl","getMyAccount","payload","_a","serializer","_getMyAccountRequest","toReq","fromReq","fromRes","_accountResponse","_account","__getMyAccount","host","serializedData","metadata","resolveComWixpressAccountApiAccountServiceUrl","toURLSearchParams","init_esm_shims","_deviceCodeRequest","_deviceCodeResponse","_rawHttpRequest","_rawHttpResponse","_revokeRefreshTokenRequest","_revokeRefreshTokenResponse","resolveWixIdentityOauth2V1Oauth2NgUrl","opts","domainToMappings","resolveUrl","token","payload","_a","serializer","_rawHttpRequest","toReq","fromReq","fromRes","_rawHttpResponse","__token","host","serializedData","metadata","resolveWixIdentityOauth2V1Oauth2NgUrl","deviceCode","_deviceCodeRequest","_deviceCodeResponse","__deviceCode","toURLSearchParams","revokeRefreshToken","payload","_a","serializer","_revokeRefreshTokenRequest","toReq","fromReq","fromRes","_revokeRefreshTokenResponse","__revokeRefreshToken","host","serializedData","metadata","resolveWixIdentityOauth2V1Oauth2NgUrl","init_esm_shims","import_http_client","init_esm_shims","import_http_client","isHttpError","error","baseUrls","interceptRequest","client","fn","args","error","isHttpError","CliError","CliErrorCode","createHttpClient","getAppToken","createHeaders","type","createHttpClientOriginal","import_variant","init_esm_shims","deviceCodeSchema","z","tokenSchema","token","userInfoSchema","getMyAccountSchema","siteAuthSchema","accountAuthSchema","apiKeyAuthSchema","InvalidResponseData","FailedToGetAuthToken","FailedToGetDeviceCode","FailedToRenewAuthToken","FailedToRenewAuthTokenSiteNotFound","FailedToRevokeRefreshToken","CliErrorCode","clientId","getCurrentTimestamp","DeviceCodeNotYetVerifiedError","RenewTokenData","AuthClient","httpClient","minRetryTimeout","getTestOverrides","req","data","pRetry","deviceCode","deviceCodeSchema","error","CliError","payload","requestId","token","result","tokenSchema","isHttpError","tokenData","email","revokeRefreshToken","accessToken","createHttpClient","userInfoData","userInfoSchema","getMyAccount","getMyAccountSchema","client","init_esm_shims","unlink","rm","resolve","import_variant","getLegacyAuthDataFilePath","resolve","getDataDirPath","getAuthDataFolder","getApiKeyAuthDataFilePath","getAccountAuthDataFilePath","getSiteAuthDataFilePath","siteId","ApiKeyAuthData","readApiKeyAuthData","apiKeyAuthDataFilePath","pathExists","apiKeyFileContents","readJson","savedApiKeyAuthData","apiKeyAuthSchema","saveApiKeyAuthData","authData","targetFilePath","writeJson","error","CliError","CliErrorCode","AccountAuthData","readAccountAuthData","accountAuthDataFilePath","authFileContents","savedAccountAuthData","accountAuthSchema","isValidToken","SiteAuthData","readSiteAuthData","siteAuthDataFilePath","savedSiteAuthData","siteAuthSchema","saveAuthData","deleteAuthData","rm","hasLegacyAuthData","deleteLegacyAuthData","unlink","currentTimestamp","tokenOffset","tokenLifetime","getUserInfo","apiKeyAuthData","accountAuthData","userInfo","createApiKeyAuthState","token","accountId","userInfo","siteId","apiKeyAuthStrategy","apiKeyAuth","readApiKeyAuthData","payload","accountOwner","slug","client","authData","deleteAuthData","saveApiKeyAuthData","init_esm_shims","init_esm_shims","init_esm_shims","Node","value","Queue","#head","#tail","#size","node","current","pLimit","concurrency","queue","Queue","activeCount","next","run","fn","resolve","args","result","enqueue","generator","import_variant","init_esm_shims","init_esm_shims","TimeoutError","message","AbortError","getDOMException","errorMessage","getAbortedReason","signal","reason","pTimeout","promise","options","milliseconds","fallback","customTimers","timer","cancelablePromise","resolve","reject","timeoutError","error","resolveValue","pWaitFor","condition","options","interval","timeout","before","retryTimeout","abort","promise","resolve","reject","check","value","error","pTimeout","seconds","n","waitForLogin","deviceCode","expiresIn","signal","authData","pWaitFor","tokenData","client","error","DeviceCodeNotYetVerifiedError","getTestOverrides","userInfo","result","deleteAuthData","saveAuthData","TimeoutError","CliError","CliErrorCode","renewAccountAuth","refreshToken","renewTokenResult","RenewTokenData","getNonExpiredAccountAuth","accountAuthStatus","readAccountAuthData","accountAuth","newTokenData","createAccountAuthState","initialTokenData","limiter","pLimit","isValidToken","cause","accountAuthStrategy","apiKeyAuth","apiKeyAuthStrategy","init_esm_shims","import_variant","renewSiteAuth","accountRefreshToken","siteId","renewTokenResult","client","RenewTokenData","saveAuthData","AuthenticationResult","ensureAuthenticatedToSite","siteAuthStatus","readSiteAuthData","data","payload","cause","createSiteAuthState","initialTokenData","userInfo","limiter","pLimit","tokenData","isValidToken","newTokenData","CliError","CliErrorCode","createSiteAuthStrategy","apiKeyAuth","apiKeyAuthStrategy","accountAuth","accountAuthStrategy","siteAuthResult","deviceCode","signal","siteAuth","init_esm_shims","import_variant","logout","authData","readAccountAuthData","AccountAuthData","client","deleteAuthData","init_esm_shims","import_react","init_esm_shims","import_react","AuthContext","useAuth","context","AuthContext","init_esm_shims","import_react","import_variant","ApiKeyLogin","token","onLogin","onError","biLogger","useBiLogger","status","useAsync","wixCliLoginStart","apiKeyAuthStrategy","authData","wixCliLoginEnd","error","React","Spinner","init_esm_shims","import_react","import_variant","messages_default","init_esm_shims","import_react","init_esm_shims","init_esm_shims","process","Buffer","path","fileURLToPath","childProcess","fs","fsConstants","init_esm_shims","process","os","fs","init_esm_shims","fs","init_esm_shims","fs","isDockerCached","hasDockerEnv","hasDockerCGroup","isDocker","cachedResult","hasContainerEnv","fs","isInsideContainer","isDocker","isWsl","process","os","isInsideContainer","fs","is_wsl_default","init_esm_shims","defineLazyProperty","object","propertyName","valueGetter","define","value","result","init_esm_shims","promisify","process","execFile","init_esm_shims","promisify","process","execFile","execFileAsync","defaultBrowserId","stdout","init_esm_shims","init_esm_shims","process","promisify","execFile","execFileSync","execFileAsync","runAppleScript","script","humanReadableOutput","outputArguments","stdout","bundleName","bundleId","runAppleScript","init_esm_shims","promisify","execFile","execFileAsync","windowsBrowserProgIds","UnknownBrowserError","defaultBrowser","_execFileAsync","stdout","match","id","browser","execFileAsync","promisify","execFile","titleize","string","x","defaultBrowser","process","id","defaultBrowserId","bundleName","stdout","__dirname","path","fileURLToPath","localXdgOpenPath","platform","arch","process","getWslDrivesMountPoint","defaultMountPoint","mountPoint","configFilePath","isConfigFileExists","fs","fsConstants","configContent","configMountPoint","pTryEach","array","mapper","latestError","item","error","baseOpen","options","singleApp","app","appArguments","appName","ids","flags","browser","defaultBrowser","browserName","apps","command","cliArguments","childProcessOptions","is_wsl_default","isInsideContainer","encodedArguments","argument","Buffer","isBundled","exeLocalXdgOpen","subprocess","childProcess","resolve","reject","exitCode","open","target","detectArchBinary","binary","arch","archBinary","detectPlatformBinary","platform","platformBinary","wsl","is_wsl_default","apps","defineLazyProperty","open_default","open","init_esm_shims","import_http_client","open","testEndpoint","url","openBrowser","url","testEndpoint","getTestOverrides","open","open_default","init_esm_shims","import_react","useColoredVerificationUri","verificationUri","coloredUri","LoginInstructions","userCode","verificationUri","coloredVerificationUri","useColoredVerificationUri","reportError","useErrorReporter","openBrowserError","setOpenBrowserError","use_input_default","input","key","openBrowser","error","React","Trans","Box_default","Text","Key","Link","ErrorViewer","Login","loginFn","onLogin","onError","biLogger","useBiLogger","handleError","error","wixCliLoginEnd","loginAction","useAsyncCallback","signal","deviceCodeResponse","authData","status","useAsync","wixCliLoginStart","client","React","Spinner","userCode","verificationUri","LoginInstructions","LoginWithI18n","props","I18nProvider","messages_default","accountAuthStrategy","init_esm_shims","import_react","init_esm_shims","import_react","import_variant","init_esm_shims","import_react","import_variant","WarnLegacyAuthData","children","status","useAsync","hasLegacyAuthData","result","React","Box_default","Trans","EnsureLoggedIn","login","isLoggedIn","onLogin","onError","children","status","updateAccountAuth","useAsync","result","React","Spinner","accountAuth","I18nProvider","messages_default","WarnLegacyAuthData","Login","data","AccountAuthProvider","children","onError","onLogin","exit","useExit","React","EnsureLoggedIn","accountAuthStrategy","userInfo","getAccessToken","getRequestHeaders","AuthContext","init_esm_shims","import_react","SiteAuthProvider","children","siteId","onError","onLogin","exit","useExit","authStrategy","createSiteAuthStrategy","React","EnsureLoggedIn","userInfo","getAccessToken","getRequestHeaders","AuthContext","init_esm_shims","import_react","Wrapper","onReady","exit","useExit","auth","useAuth","authenticateWithSiteId","siteId","biLogger","errorReporter","resolve","reject","render","React","ErrorReporterProvider","BiProvider","SiteAuthProvider","error","isLoggedInToAccount","accountAuthStrategy"]}
|