diff --git a/app/srv/core/main.js b/app/srv/core/main.js index d7b07db7..2851b933 100644 --- a/app/srv/core/main.js +++ b/app/srv/core/main.js @@ -40,7 +40,7 @@ ${d}`),f.pop(),`{${D}}`}case"number":return isFinite(g)?String(g):t?t(g):"null"; `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...A){let i=new this(t);return A.forEach(n=>i.set(n)),i}static accessor(t){let i=(this[zy]=this[zy]={accessors:{}}).accessors,n=this.prototype;function r(o){let s=Ds(o);i[s]||(Ex(n,o),i[s]=!0)}return w.isArray(t)?t.forEach(r):r(t),this}};Gr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);w.reduceDescriptors(Gr.prototype,({value:e},t)=>{let A=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(i){this[A]=i}}});w.freezeMethods(Gr);var ft=Gr;function ks(e,t){let A=this||xr,i=t||A,n=ft.from(i.headers),r=i.data;return w.forEach(e,function(s){r=s.call(A,r,n.normalize(),t?t.status:void 0)}),n.normalize(),r}function Ss(e){return!!(e&&e.__CANCEL__)}function _y(e,t,A){j.call(this,e??"canceled",j.ERR_CANCELED,t,A),this.name="CanceledError"}w.inherits(_y,j,{__CANCEL__:!0});var Ki=_y;function tB(e,t,A){let i=A.config.validateStatus;!A.status||!i||i(A.status)?e(A):t(new j("Request failed with status code "+A.status,[j.ERR_BAD_REQUEST,j.ERR_BAD_RESPONSE][Math.floor(A.status/100)-4],A.config,A.request,A))}var Ty=ut.hasStandardBrowserEnv?{write(e,t,A,i,n,r){let o=[e+"="+encodeURIComponent(t)];w.isNumber(A)&&o.push("expires="+new Date(A).toGMTString()),w.isString(i)&&o.push("path="+i),w.isString(n)&&o.push("domain="+n),r===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){let t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function AB(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function iB(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Us(e,t){return e&&!AB(t)?iB(e,t):t}var Xy=ut.hasStandardBrowserEnv?function(){let t=/(msie|trident)/i.test(navigator.userAgent),A=document.createElement("a"),i;function n(r){let o=r;return t&&(A.setAttribute("href",o),o=A.href),A.setAttribute("href",o),{href:A.href,protocol:A.protocol?A.protocol.replace(/:$/,""):"",host:A.host,search:A.search?A.search.replace(/^\?/,""):"",hash:A.hash?A.hash.replace(/^#/,""):"",hostname:A.hostname,port:A.port,pathname:A.pathname.charAt(0)==="/"?A.pathname:"/"+A.pathname}}return i=n(window.location.href),function(o){let s=w.isString(o)?n(o):o;return s.protocol===i.protocol&&s.host===i.host}}():function(){return function(){return!0}}();function nB(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function mx(e,t){e=e||10;let A=new Array(e),i=new Array(e),n=0,r=0,o;return t=t!==void 0?t:1e3,function(a){let c=Date.now(),I=i[r];o||(o=c),A[n]=a,i[n]=c;let l=r,u=0;for(;l!==n;)u+=A[l++],l=l%e;if(n=(n+1)%e,n===r&&(r=(r+1)%e),c-o{let r=n.loaded,o=n.lengthComputable?n.total:void 0,s=r-A,a=i(s),c=r<=o;A=r;let I={loaded:r,total:o,progress:o?r/o:void 0,bytes:s,rate:a||void 0,estimated:a&&o&&c?(o-r)/a:void 0,event:n};I[t?"download":"upload"]=!0,e(I)}}var yx=typeof XMLHttpRequest<"u",jy=yx&&function(e){return new Promise(function(A,i){let n=e.data,r=ft.from(e.headers).normalize(),{responseType:o,withXSRFToken:s}=e,a;function c(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}let I;if(w.isFormData(n)){if(ut.hasStandardBrowserEnv||ut.hasStandardBrowserWebWorkerEnv)r.setContentType(!1);else if((I=r.getContentType())!==!1){let[C,...k]=I?I.split(";").map(d=>d.trim()).filter(Boolean):[];r.setContentType([C||"multipart/form-data",...k].join("; "))}}let l=new XMLHttpRequest;if(e.auth){let C=e.auth.username||"",k=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";r.set("Authorization","Basic "+btoa(C+":"+k))}let u=Us(e.baseURL,e.url);l.open(e.method.toUpperCase(),Fs(u,e.params,e.paramsSerializer),!0),l.timeout=e.timeout;function g(){if(!l)return;let C=ft.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders()),d={data:!o||o==="text"||o==="json"?l.responseText:l.response,status:l.status,statusText:l.statusText,headers:C,config:e,request:l};tB(function(Q){A(Q),c()},function(Q){i(Q),c()},d),l=null}if("onloadend"in l?l.onloadend=g:l.onreadystatechange=function(){!l||l.readyState!==4||l.status===0&&!(l.responseURL&&l.responseURL.indexOf("file:")===0)||setTimeout(g)},l.onabort=function(){l&&(i(new j("Request aborted",j.ECONNABORTED,e,l)),l=null)},l.onerror=function(){i(new j("Network Error",j.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let k=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",d=e.transitional||pc;e.timeoutErrorMessage&&(k=e.timeoutErrorMessage),i(new j(k,d.clarifyTimeoutError?j.ETIMEDOUT:j.ECONNABORTED,e,l)),l=null},ut.hasStandardBrowserEnv&&(s&&w.isFunction(s)&&(s=s(e)),s||s!==!1&&Xy(u))){let C=e.xsrfHeaderName&&e.xsrfCookieName&&Ty.read(e.xsrfCookieName);C&&r.set(e.xsrfHeaderName,C)}n===void 0&&r.setContentType(null),"setRequestHeader"in l&&w.forEach(r.toJSON(),function(k,d){l.setRequestHeader(d,k)}),w.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),o&&o!=="json"&&(l.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&l.addEventListener("progress",Wy(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&l.upload&&l.upload.addEventListener("progress",Wy(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=C=>{l&&(i(!C||C.type?new Ki(null,e,l):C),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));let f=nB(u);if(f&&ut.protocols.indexOf(f)===-1){i(new j("Unsupported protocol "+f+":",j.ERR_BAD_REQUEST,e));return}l.send(n||null)})};var rB={http:Qc,xhr:jy};w.forEach(rB,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});var $y=e=>`- ${e}`,wx=e=>w.isFunction(e)||e===null||e===!1,yc={getAdapter:e=>{e=w.isArray(e)?e:[e];let{length:t}=e,A,i,n={};for(let r=0;r`adapter ${s} `+(a===!1?"is not supported by the environment":"is not available in the build")),o=t?r.length>1?`since : `+r.map($y).join(` `):" "+$y(r[0]):"as no adapter specified";throw new j("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return i},adapters:rB};function oB(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ki(null,e)}function wc(e){return oB(e),e.headers=ft.from(e.headers),e.data=ks.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),yc.getAdapter(e.adapter||xr.adapter)(e).then(function(i){return oB(e),i.data=ks.call(e,e.transformResponse,i),i.headers=ft.from(i.headers),i},function(i){return Ss(i)||(oB(e),i&&i.response&&(i.response.data=ks.call(e,e.transformResponse,i.response),i.response.headers=ft.from(i.response.headers))),Promise.reject(i)})}var ew=e=>e instanceof ft?e.toJSON():e;function $A(e,t){t=t||{};let A={};function i(c,I,l){return w.isPlainObject(c)&&w.isPlainObject(I)?w.merge.call({caseless:l},c,I):w.isPlainObject(I)?w.merge({},I):w.isArray(I)?I.slice():I}function n(c,I,l){if(w.isUndefined(I)){if(!w.isUndefined(c))return i(void 0,c,l)}else return i(c,I,l)}function r(c,I){if(!w.isUndefined(I))return i(void 0,I)}function o(c,I){if(w.isUndefined(I)){if(!w.isUndefined(c))return i(void 0,c)}else return i(void 0,I)}function s(c,I,l){if(l in t)return i(c,I);if(l in e)return i(void 0,c)}let a={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(c,I)=>n(ew(c),ew(I),!0)};return w.forEach(Object.keys(Object.assign({},e,t)),function(I){let l=a[I]||n,u=l(e[I],t[I],I);w.isUndefined(u)&&l!==s||(A[I]=u)}),A}var Fc="1.6.7";var sB={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{sB[e]=function(i){return typeof i===e||"a"+(t<1?"n ":" ")+e}});var tw={};sB.transitional=function(t,A,i){function n(r,o){return"[Axios v"+Fc+"] Transitional option '"+r+"'"+o+(i?". "+i:"")}return(r,o,s)=>{if(t===!1)throw new j(n(o," has been removed"+(A?" in "+A:"")),j.ERR_DEPRECATED);return A&&!tw[o]&&(tw[o]=!0,console.warn(n(o," has been deprecated since v"+A+" and will be removed in the near future"))),t?t(r,o,s):!0}};function Fx(e,t,A){if(typeof e!="object")throw new j("options must be an object",j.ERR_BAD_OPTION_VALUE);let i=Object.keys(e),n=i.length;for(;n-- >0;){let r=i[n],o=t[r];if(o){let s=e[r],a=s===void 0||o(s,r,e);if(a!==!0)throw new j("option "+r+" must be "+a,j.ERR_BAD_OPTION_VALUE);continue}if(A!==!0)throw new j("Unknown option "+r,j.ERR_BAD_OPTION)}}var Dc={assertOptions:Fx,validators:sB};var bi=Dc.validators,Hr=class{constructor(t){this.defaults=t,this.interceptors={request:new Zf,response:new Zf}}async request(t,A){try{return await this._request(t,A)}catch(i){if(i instanceof Error){let n;Error.captureStackTrace?Error.captureStackTrace(n={}):n=new Error;let r=n.stack?n.stack.replace(/^.+\n/,""):"";i.stack?r&&!String(i.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(i.stack+=` -`+r):i.stack=r}throw i}}_request(t,A){typeof t=="string"?(A=A||{},A.url=t):A=t||{},A=$A(this.defaults,A);let{transitional:i,paramsSerializer:n,headers:r}=A;i!==void 0&&Dc.assertOptions(i,{silentJSONParsing:bi.transitional(bi.boolean),forcedJSONParsing:bi.transitional(bi.boolean),clarifyTimeoutError:bi.transitional(bi.boolean)},!1),n!=null&&(w.isFunction(n)?A.paramsSerializer={serialize:n}:Dc.assertOptions(n,{encode:bi.function,serialize:bi.function},!0)),A.method=(A.method||this.defaults.method||"get").toLowerCase();let o=r&&w.merge(r.common,r[A.method]);r&&w.forEach(["delete","get","head","post","put","patch","common"],f=>{delete r[f]}),A.headers=ft.concat(o,r);let s=[],a=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(A)===!1||(a=a&&C.synchronous,s.unshift(C.fulfilled,C.rejected))});let c=[];this.interceptors.response.forEach(function(C){c.push(C.fulfilled,C.rejected)});let I,l=0,u;if(!a){let f=[wc.bind(this),void 0];for(f.unshift.apply(f,s),f.push.apply(f,c),u=f.length,I=Promise.resolve(A);l{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](n);i._listeners=null}),this.promise.then=n=>{let r,o=new Promise(s=>{i.subscribe(s),r=s}).then(n);return o.cancel=function(){i.unsubscribe(r)},o},t(function(r,o,s){i.reason||(i.reason=new Ki(r,o,s),A(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let A=this._listeners.indexOf(t);A!==-1&&this._listeners.splice(A,1)}static source(){let t;return{token:new e(function(n){t=n}),cancel:t}}},Aw=aB;function IB(e){return function(A){return e.apply(null,A)}}function cB(e){return w.isObject(e)&&e.isAxiosError===!0}var lB={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(lB).forEach(([e,t])=>{lB[t]=e});var iw=lB;function nw(e){let t=new Ns(e),A=ms(Ns.prototype.request,t);return w.extend(A,Ns.prototype,t,{allOwnKeys:!0}),w.extend(A,t,null,{allOwnKeys:!0}),A.create=function(n){return nw($A(e,n))},A}var He=nw(xr);He.Axios=Ns;He.CanceledError=Ki;He.CancelToken=Aw;He.isCancel=Ss;He.VERSION=Fc;He.toFormData=qi;He.AxiosError=j;He.Cancel=He.CanceledError;He.all=function(t){return Promise.all(t)};He.spread=IB;He.isAxiosError=cB;He.mergeConfig=$A;He.AxiosHeaders=ft;He.formToJSON=e=>Ec(w.isHTMLForm(e)?new FormData(e):e);He.getAdapter=yc.getAdapter;He.HttpStatusCode=iw;He.default=He;var kc=He;var{Axios:b1,AxiosError:O1,CanceledError:L1,isCancel:Y1,CancelToken:P1,VERSION:V1,all:z1,Cancel:_1,isAxiosError:T1,spread:X1,toFormData:Z1,AxiosHeaders:W1,HttpStatusCode:j1,formToJSON:$1,getAdapter:eq,mergeConfig:tq}=kc;BigInt.prototype.toJSON=function(){return"BigInt::"+this.toString()};var Dx=typeof window<"u"?window:null,kx=global,Mr=async(e,t,A)=>{let i={...A},n=null,r=!1,o=null,s=[];if(Array.isArray(t))for(let l of t)l instanceof File&&(s.push(l),r=!0),typeof l=="function"&&(o=l);else t instanceof File&&(r=!0,s.push(t));if(!r)n=JSON.stringify(t),i["content-type"]="aplication/json";else{let l=new FormData;for(let u of s)l.append(u.name,u);n=l,delete i["content-type"],i.enctype="multipart/form-data;"}let a=new URL(e);if(Dx!==null){let l=new URL(location.href),u="";if(a.host===l.host||typeof kx.server_hook=="function"?u=a.toString():u=`${l.protocol}//${l.host}/_proxy/${encodeURIComponent(a.toString())}`,u){if(o)return(await kc({method:t?"post":void 0,url:u,data:n,onUploadProgress:o})).data;{let f=await(await fetch(u,t?{method:"POST",body:n,headers:i}:void 0)).text();try{return JSON.parse(f,rw)}catch{return f}}}}let I=await(await fetch(a,t?{method:"POST",body:n,headers:i}:void 0)).text();try{return JSON.parse(I,rw)}catch{return I}},rw=(e,t)=>typeof t=="string"&&t.startsWith("BigInt::")?BigInt(t.substring(8)):t;var yw=K(mw());var vr=async(e,t)=>{let A=(0,yw.default)(e,"/"),i=await Mr(iG(A,"/_prasi/_")),n="";i&&i.prasi&&(n=i.prasi);let r=AG(A);if(n==="v2")await new Promise(o=>{let s=document,a=s.createElement("script");a.onload=async()=>{o()},localStorage.getItem("api-ts-"+A)||localStorage.setItem("api-ts-"+A,Date.now().toString());let c=localStorage.getItem("api-ts-"+A);t?a.src=`${r}/_prasi/load.js?url=${A}&v3&dev=1&ts=${c}`:a.src=`${r}/_prasi/load.js?url=${A}&v3&ts=${c}`,document.querySelector(`script[src="${a.src}"]`)?o():s.body.appendChild(a)});else{let o=await fetch(r+"/_prasi/api-entry");if(Ce.prasiApi[A]={apiEntry:(await o.json()).srv},t){let s=await fetch(r+"/_prasi/api-types");Ce.prasiApi[A].apiTypes=await s.text(),Ce.prasiApi[A].prismaTypes={"prisma.d.ts":await BB(`${r}/_prasi/prisma/index.d.ts`),"runtime/index.d.ts":await BB(`${r}/_prasi/prisma/runtime/index.d.ts`),"runtime/library.d.ts":await BB(`${r}/_prasi/prisma/runtime/library.d.ts`)}}}},AG=e=>{let t=new URL(e);return`${t.protocol}//${t.host}`},iG=(e,t)=>{let A=new URL(e);return A.pathname=t,A.toString()},BB=async(e,t)=>await(await fetch(e)).text();var xs={},Fn=e=>{Ce.prasiApi||(Ce.prasiApi={});try{let t=new URL(e),A=`${t.protocol}//${t.host}`;return Ce.prasiApi[A]||xs[A]||(xs[A]=vr(A,location.hostname.includes("prasi"))),new Proxy({},{get:(i,n)=>{if(n==="_url")return(o,s)=>{let a=new URL(A);a.pathname=o.split("/").filter(l=>l).join("/");let c=new URL(location.href),I="";return a.host===c.host||s===!1?I=a.toString():I=`${c.protocol}//${c.host}/_proxy/${encodeURIComponent(a.toString())}`,I};let r=o=>function(...s){return new Promise(async(a,c)=>{try{let I=Ce.prasiApi[A];if(!I&&xs&&typeof xs[A]=="object"&&(await xs[A],I=Ce.prasiApi[A]),I){if(o==="_raw"){let g=s[0],f=`${A}${g}`,C=await ww(f,s.slice(1));a(C);return}if(I.apiEntry||(I.apiEntry={}),I.apiEntry&&!I.apiEntry[o]){c(`API ${o.toString()} not found, existing API: +`+r):i.stack=r}throw i}}_request(t,A){typeof t=="string"?(A=A||{},A.url=t):A=t||{},A=$A(this.defaults,A);let{transitional:i,paramsSerializer:n,headers:r}=A;i!==void 0&&Dc.assertOptions(i,{silentJSONParsing:bi.transitional(bi.boolean),forcedJSONParsing:bi.transitional(bi.boolean),clarifyTimeoutError:bi.transitional(bi.boolean)},!1),n!=null&&(w.isFunction(n)?A.paramsSerializer={serialize:n}:Dc.assertOptions(n,{encode:bi.function,serialize:bi.function},!0)),A.method=(A.method||this.defaults.method||"get").toLowerCase();let o=r&&w.merge(r.common,r[A.method]);r&&w.forEach(["delete","get","head","post","put","patch","common"],f=>{delete r[f]}),A.headers=ft.concat(o,r);let s=[],a=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(A)===!1||(a=a&&C.synchronous,s.unshift(C.fulfilled,C.rejected))});let c=[];this.interceptors.response.forEach(function(C){c.push(C.fulfilled,C.rejected)});let I,l=0,u;if(!a){let f=[wc.bind(this),void 0];for(f.unshift.apply(f,s),f.push.apply(f,c),u=f.length,I=Promise.resolve(A);l{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](n);i._listeners=null}),this.promise.then=n=>{let r,o=new Promise(s=>{i.subscribe(s),r=s}).then(n);return o.cancel=function(){i.unsubscribe(r)},o},t(function(r,o,s){i.reason||(i.reason=new Ki(r,o,s),A(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;let A=this._listeners.indexOf(t);A!==-1&&this._listeners.splice(A,1)}static source(){let t;return{token:new e(function(n){t=n}),cancel:t}}},Aw=aB;function IB(e){return function(A){return e.apply(null,A)}}function cB(e){return w.isObject(e)&&e.isAxiosError===!0}var lB={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(lB).forEach(([e,t])=>{lB[t]=e});var iw=lB;function nw(e){let t=new Ns(e),A=ms(Ns.prototype.request,t);return w.extend(A,Ns.prototype,t,{allOwnKeys:!0}),w.extend(A,t,null,{allOwnKeys:!0}),A.create=function(n){return nw($A(e,n))},A}var He=nw(xr);He.Axios=Ns;He.CanceledError=Ki;He.CancelToken=Aw;He.isCancel=Ss;He.VERSION=Fc;He.toFormData=qi;He.AxiosError=j;He.Cancel=He.CanceledError;He.all=function(t){return Promise.all(t)};He.spread=IB;He.isAxiosError=cB;He.mergeConfig=$A;He.AxiosHeaders=ft;He.formToJSON=e=>Ec(w.isHTMLForm(e)?new FormData(e):e);He.getAdapter=yc.getAdapter;He.HttpStatusCode=iw;He.default=He;var kc=He;var{Axios:b1,AxiosError:O1,CanceledError:L1,isCancel:Y1,CancelToken:P1,VERSION:V1,all:z1,Cancel:_1,isAxiosError:T1,spread:X1,toFormData:Z1,AxiosHeaders:W1,HttpStatusCode:j1,formToJSON:$1,getAdapter:eq,mergeConfig:tq}=kc;BigInt.prototype.toJSON=function(){return"BigInt::"+this.toString()};var Dx=typeof window<"u"?window:null,kx=typeof global<"u"?global:void 0,Mr=async(e,t,A)=>{let i={...A},n=null,r=!1,o=null,s=[];if(Array.isArray(t))for(let l of t)l instanceof File&&(s.push(l),r=!0),typeof l=="function"&&(o=l);else t instanceof File&&(r=!0,s.push(t));if(!r)n=JSON.stringify(t),i["content-type"]="aplication/json";else{let l=new FormData;for(let u of s)l.append(u.name,u);n=l,delete i["content-type"],i.enctype="multipart/form-data;"}let a=new URL(e);if(Dx!==null){let l=new URL(location.href),u="";if(a.host===l.host||typeof kx.server_hook=="function"?u=a.toString():u=`${l.protocol}//${l.host}/_proxy/${encodeURIComponent(a.toString())}`,u){if(o)return(await kc({method:t?"post":void 0,url:u,data:n,onUploadProgress:o})).data;{let f=await(await fetch(u,t?{method:"POST",body:n,headers:i}:void 0)).text();try{return JSON.parse(f,rw)}catch{return f}}}}let I=await(await fetch(a,t?{method:"POST",body:n,headers:i}:void 0)).text();try{return JSON.parse(I,rw)}catch{return I}},rw=(e,t)=>typeof t=="string"&&t.startsWith("BigInt::")?BigInt(t.substring(8)):t;var yw=K(mw());var vr=async(e,t)=>{let A=(0,yw.default)(e,"/"),i=await Mr(iG(A,"/_prasi/_")),n="";i&&i.prasi&&(n=i.prasi);let r=AG(A);if(n==="v2")await new Promise(o=>{let s=document,a=s.createElement("script");a.onload=async()=>{o()},localStorage.getItem("api-ts-"+A)||localStorage.setItem("api-ts-"+A,Date.now().toString());let c=localStorage.getItem("api-ts-"+A);t?a.src=`${r}/_prasi/load.js?url=${A}&v3&dev=1&ts=${c}`:a.src=`${r}/_prasi/load.js?url=${A}&v3&ts=${c}`,document.querySelector(`script[src="${a.src}"]`)?o():s.body.appendChild(a)});else{let o=await fetch(r+"/_prasi/api-entry");if(Ce.prasiApi[A]={apiEntry:(await o.json()).srv},t){let s=await fetch(r+"/_prasi/api-types");Ce.prasiApi[A].apiTypes=await s.text(),Ce.prasiApi[A].prismaTypes={"prisma.d.ts":await BB(`${r}/_prasi/prisma/index.d.ts`),"runtime/index.d.ts":await BB(`${r}/_prasi/prisma/runtime/index.d.ts`),"runtime/library.d.ts":await BB(`${r}/_prasi/prisma/runtime/library.d.ts`)}}}},AG=e=>{let t=new URL(e);return`${t.protocol}//${t.host}`},iG=(e,t)=>{let A=new URL(e);return A.pathname=t,A.toString()},BB=async(e,t)=>await(await fetch(e)).text();var xs={},Fn=e=>{Ce.prasiApi||(Ce.prasiApi={});try{let t=new URL(e),A=`${t.protocol}//${t.host}`;return Ce.prasiApi[A]||xs[A]||(xs[A]=vr(A,location.hostname.includes("prasi"))),new Proxy({},{get:(i,n)=>{if(n==="_url")return(o,s)=>{let a=new URL(A);a.pathname=o.split("/").filter(l=>l).join("/");let c=new URL(location.href),I="";return a.host===c.host||s===!1?I=a.toString():I=`${c.protocol}//${c.host}/_proxy/${encodeURIComponent(a.toString())}`,I};let r=o=>function(...s){return new Promise(async(a,c)=>{try{let I=Ce.prasiApi[A];if(!I&&xs&&typeof xs[A]=="object"&&(await xs[A],I=Ce.prasiApi[A]),I){if(o==="_raw"){let g=s[0],f=`${A}${g}`,C=await ww(f,s.slice(1));a(C);return}if(I.apiEntry||(I.apiEntry={}),I.apiEntry&&!I.apiEntry[o]){c(`API ${o.toString()} not found, existing API: - ${Object.keys(I.apiEntry||{}).join(` - `)}`);return}let l=I.apiEntry[o].url,u=I.apiEntry[o].args;if(l&&u){if(s.length>0&&u.length>0)for(let[C,k]of Object.entries(s)){let d=u[parseInt(C)];u&&u.includes(d)&&k&&typeof k!="string"&&typeof k!="number"||(l=l.replace(`:${d}?`,k+""),l=l.replace(`:${d}`,k+""))}let g=`${A}${l}`,f=await ww(g,s);a(f)}else console.error(`API Not Found: ${o.toString()}`)}else c("Failed to load API [Proxy]: "+A)}catch(I){c(I)}})};return n==="then"?new Proxy({},{get:(o,s)=>r(s)}):r(n)}})}catch{return null}},ww=async(e,t)=>await Mr(e,t,{"content-type":"application/json"});var Uw=K(kw());var Dn=e=>{let t="";return new Proxy({},{get(A,i){return i.startsWith("$")?(...n)=>Sw({name:t,action:"query",table:i,params:n},e):new Proxy({},{get(n,r){return async(...o)=>(i==="query"&&(i=r,r="query"),await Sw({name:t,action:r,table:i,params:o},e))}})}})},Sc={},Sw=async(e,t)=>{let A=new URL(t);A.pathname="/_dbs",e.table&&(A.pathname+=`/${e.table}`);let i=A.toString(),n=(0,Uw.default)(e),r=Sc[n];if(!r||r&&Date.now()-r.timestamp>1e3){Sc[n]={timestamp:Date.now(),promise:Mr(i,e,{"content-type":"application/json"}),result:null};let o=await Sc[n].promise;return Sc[n].result=o,o}return await r.promise};function aG(e){let t=document.createElement("a");return t.setAttribute("href",e),t.cloneNode(!1).href}function IG(e){return e?new Promise((t,A)=>{let i="$importModule$"+Math.random().toString(32).slice(2),n=document.createElement("script"),r=()=>{delete window[i],n.onerror=null,n.onload=null,n.remove(),URL.revokeObjectURL(n.src),n.src=""};n.defer=!0,n.type="module",n.onerror=()=>{A(new Error(`Failed to import: ${e}`)),r()},n.onload=()=>{t(window[i]),r()};let s=`import * as m from "${Ce.basehost?Ce.basehost+e:aG(e)}"; window.${i} = m;`,a=new Blob([s],{type:"text/javascript"});n.src=URL.createObjectURL(a),document.head.appendChild(n)}):""}var Uc=IG;var Rr=e=>({isMobile:e.mode==="mobile",isDesktop:e.mode==="desktop",isEditor:location.pathname.startsWith("/ed/")});var Nc=async e=>{let t=window;t.exports||(t.exports={});let A=await _db.site.findFirst({where:{id:e.site.id},include:{component_site:!0}});if(A){if(A.component_site)for(let o of A.component_site){let s=`/npm/site/${o.id_site}/site.js`;await Uc(s)}let i=e.site.api_url;if(i||(i=(A.config||{}).api_url||""),!i)return;try{let o=new URL(i);if(i&&o.hostname)try{await vr(i,!0)}catch{console.warn("Failed to load API [Legacy]:",i)}}catch{}let n=`/npm/site/${e.site.id}/site.js`;await Uc(n),e.site.db.get()||e.site.db.set(Dn(i)),e.site.api.get()||e.site.api.set(Fn(i));let r=window;if(A.js_compiled){let o=A.config,s=(c,I)=>(o.api_url&&!I.api&&(I.api=e.site.api.get(),I.db=e.site.db.get()),I.params=r.params,I.module={},new Function(...Object.keys(I),c)(...Object.values(I))),a={...Rr({site:e.site,mode:e.mode}),types:{},exports:r.exports,load:Uc,render:e.render,module:{exports:{}}};if(await s(A.js_compiled,a),a.module.exports)for(let[c,I]of Object.entries(a.module.exports))r.exports[c]=I}}};var Nw=(e,t=0)=>{let A=3735928559^t,i=1103547991^t;for(let n=0,r;n>>16,2246822507),A^=Math.imul(i^i>>>13,3266489909),i=Math.imul(i^i>>>16,2246822507),i^=Math.imul(A^A>>>13,3266489909),4294967296*(2097151&i)+(A>>>0)};var cG=new TextEncoder,Gw=async e=>{let t=e.site.config.api_url;try{let A=new URL(t);if(t&&A.hostname){await vr(t,!0);let i=Ce.prasiApi[t];if(i&&i.apiTypes&&i.prismaTypes){let n=JSON.stringify({api:i.apiTypes,prisma:i.prismaTypes}),r=Nw(n),o=await e.sync?.code.action({type:"check-typings",site_id:e.site.id,hash:r});if(o?.type==="check-typings"&&!o.hash){let s=Buffer.from(rA(cG.encode(n)));e.sync?.code.action({type:"push-typings",site_id:e.site.id,body:s,hash:r})}}e.script.db||(e.script.db=Dn(t)),e.script.api||(e.script.api=Fn(t))}}catch(A){A&&!A.message.toLowerCase().includes("invalid url")&&console.warn("Failed to load API [Snapshot]:",t)}if(e.site.code.snapshot)for(let[A,i]of Object.entries(e.site.code.snapshot)){let n=new Y.Doc;Y.applyUpdate(n,Et(i.bin)),e.code[A]={doc:n};let r=e.code[A].doc;if(r){let o=r.getMap("map").get("files")?.get("index.js");xw(e,o),IA(e),e.render(),r.on("update",(s,a)=>{let c=r.getMap("map").get("files")?.get("index.js");xw(e,c),IA(e),e.render()})}}},xw=(e,t)=>{if(t){let A=window;e.site.config.api_url&&(A.db=Dn(e.site.config.api_url),A.api=Fn(e.site.config.api_url));let i=xc(t);if(e.global_prop=Object.keys(i),typeof i=="object")for(let[n,r]of Object.entries(i))A[n]=r}};var dB=async(e,t,A)=>{e.site=t,!e.script.db&&!e.script.api&&(e.site.code.mode==="old"?await Nc({mode:e.mode,site:{api_url:e.site.config.api_url,id:e.site.id,api:{get(){return e.script.api},set(i){e.script.api=i}},db:{get(){return e.script.db},set(i){e.script.db=i}}},render:()=>{}}):await Gw(e))};var Hw=async(e,t,A,i)=>{if(!e.sync)return;e.status="reload";let n=await e.sync.page.load(t);if(!n){e.status="page-not-found",e.render();return}if(n.comps)for(let[r,o]of Object.entries(n.comps))o&&o.snapshot&&await uc(e,r,o.snapshot);if(e.page.cur=n,n.snapshot){let r=new Y.Doc;Y.applyUpdate(r,Et(n.snapshot));let o=e.page.list[n.id];o||(e.page.list[n.id]={},o=e.page.list[n.id]),o.on_update&&o.doc&&o.doc.off("update",o.on_update),o.on_update=async(s,a)=>{if(a==="local"||!e.sync)return;if(o.page.id!==n.id){alert(`Page ID Mismatch! Refreshing to preventing data loss...`),location.reload();return}let c=await e.sync.yjs.sv_local("page",e.page.cur.id,Buffer.from(rA(s)));if(c){let I=Y.encodeStateAsUpdate(r,Et(c.sv));Y.applyUpdate(r,Et(c.diff),"local"),Ic()||await IA(e,{note:A+" page-on-update"}),await e.sync.yjs.diff_local("page",e.page.cur.id,Buffer.from(rA(I))),e.ui.syncing=!1,e.page.entry=r.getMap("map").get("root")?.get("childs")?.map(l=>l.get("id")),nc.should_render_main&&e.render()}},r.on("update",o.on_update),e.page.doc=r,e.page.doc&&(o.page=e.page.cur,o.doc=e.page.doc,e.page.entry=e.page.doc.getMap("map").get("root")?.get("childs")?.map(s=>s.get("id")),Array.isArray(e.page.entry)||e.sync.code.action({type:"flush-page-cache",page_id:t}).then(()=>{location.reload()})),e.page.doc&&await IA(e,{note:A+" page-init"})}e.status="ready",i!==!1&&e.render()};var Mw=K(ce()),lG=new TextDecoder,kn={list:[],route:null},gG=e=>{let t=JSON.parse(localStorage.getItem("prasi-session")||"null");if(!t&&location.pathname.startsWith("/ed/"))return location.href="/login",(0,Mw.jsx)(rn,{note:"logging in"});if(t?.data?.user?(e.user.id=t.data.user.id,e.user.username=t.data.user.username):(e.user.id="ab1390f5-40d5-448e-a8c3-84b0fb600930",e.user.username="anonymous"),location.pathname.startsWith("/vi/")){if(kn.list.length===0){_db.page.findMany({where:{id_site:params.site_id,is_deleted:!1,is_default_layout:!1},select:{id:!0,url:!0}}).then(n=>{kn.list=n,gG(e)});return}if(!kn.route){kn.route=Sr();for(let n of kn.list)kn.route.insert(n.url,n)}let i="/"+location.pathname.split("/").slice(3).join("/");if(!params.page_id){let n=kn.route.lookup(i);if(n&&(params.page_id=n.id,n.params))for(let[r,o]of Object.entries(n.params))["site_id","page_id"].includes(r)||(params[r]=o)}}if(!params.page_id&&location.pathname.startsWith("/ed"))return(async()=>{let A=await _db.page.findFirst({where:{is_deleted:!1,is_default_layout:!1,site:params.site_id?{id:params.site_id}:{org:{org_user:{some:{id_user:e.user.id}}}},name:{contains:"root",mode:"insensitive"}},select:{id:!0,id_site:!0},orderBy:{site:{name:"asc"}}});if(A)location.href=`/ed/${A.id_site}/${A.id}`;else{let i=await _db.page.findFirst({where:{is_deleted:!1,is_default_layout:!1,site:params.site_id?{id:params.site_id}:{org:{org_user:{some:{id_user:e.user.id}}}},name:{contains:"home",mode:"insensitive"}},select:{id:!0,id_site:!0}});if(i)location.href=`/ed/${i.id_site}/${i.id}`;else{let n=await _db.page.findFirst({where:{is_deleted:!1,is_default_layout:!1,site:params.site_id?{id:params.site_id}:{org:{org_user:{some:{id_user:e.user.id}}}}},select:{id:!0,id_site:!0}});n&&(location.href=`/ed/${n.id_site}/${n.id}`)}}})(),!1;if(e.sync){if(e.site.id==="--loading--")return!1;if(params.site_id!==e.site.id)return e.site=hA(Lf),e.site.id="--loading--",e.ui.popup.code.init=!1,e.sync.site.load(params.site_id).then(async A=>{A?(await dB(e,A,"from-sync"),e.render()):(alert("Site not found. redirecting..."),location.href="/ed/")}),!1;if(!e.page.cur.id&&!params.page_id&¶ms.site_id&&location.pathname.startsWith("/ed/"))return _db.page.findFirst({where:{is_deleted:!1,is_default_layout:!1,id_site:params.site_id},select:{id:!0}}).then(A=>{A&&(location.href=`/ed/${params.site_id}/${A.id}`)}),!1}return!e.sync&&!e.sync_assigned?(e.sync_assigned=!0,ny({user_id:e.user.id,site_id:params.site_id,page_id:params.page_id,events:{opened(){Ce.offline?(console.log("reconnected!"),Ce.offline=!1,e.ui.syncing=!0,e.render()):(Ce.offline=!1,e.render())},shakehand(A){e.user.client_id=A},disconnected(){return console.log("offline, reconnecting..."),Ce.offline=!0,e.render(),{reconnect:!0}},async editor_start(A){params.site_id!==A.site_id||params.page_id!==A.page_id?e.page.cur.id||(e.site.id=A.site_id,e.page.cur.id=A.page_id,location.pathname.startsWith("/ed/")&&(location.href=`/ed/${A.site_id}/${A.page_id}`)):(e.site.id=A.site_id,e.page.cur.id=A.page_id,e.render())},site_updated(A){for(let[i,n]of Object.entries(A))i==="js"||i==="js_compiled"?e.site[i]=lG.decode(Et(n)):e.site[i]=n;e.render()},async remote_svlocal(A){let i=null;if(A.type==="page"&&e.page.cur.id===A.id?i=e.page.doc:A.type==="comp"&&e.comp.list[A.id]?i=e.comp.list[A.id].doc:A.type==="code"&&(i=e.code.site.doc),i&&e.sync){let n=vE(i,Et(A.sv_local)),r=qE(i),o=Buffer.from(rA(r)),s=Buffer.from(rA(n)),a=await e.sync.yjs.sv_remote(A.type,A.id,o,s);if(a){if(ME(i,Et(a.diff),"sv_remote"),A.type==="page")delete e.preview.meta_cache[A.id],await IA(e,{note:"sv_remote"});else if(A.type==="comp"){let c=await gc(e,i,A.id);c&&(e.comp.list[A.id].meta=c.meta,e.comp.list[A.id].tree=c.tree),await IA(e,{note:"sv_remote"})}e.render()}}}}}).then(A=>{e.sync=A}),!1):params.page_id!==e.page.cur.id&&location.pathname.startsWith("/ed")?(Hw(e,params.page_id,"change page"),!1):!0},xc=src=>{if(src){let module={exports:{__esModule:!0}};eval(`try { diff --git a/app/srv/ws/sync/actions/code_action.ts b/app/srv/ws/sync/actions/code_action.ts index fd8ad381..850274d6 100644 --- a/app/srv/ws/sync/actions/code_action.ts +++ b/app/srv/ws/sync/actions/code_action.ts @@ -128,8 +128,6 @@ declare global { index: { head: string[]; body: string[]; render: () => string }; }) => Promise; }; - - function createServer(arg: PrasiServer & { api: any; db: any }): PrasiServer; } ` ); diff --git a/app/srv/ws/sync/editor/code/build-code.ts b/app/srv/ws/sync/editor/code/build-code.ts index 87c4b694..9d4bf757 100644 --- a/app/srv/ws/sync/editor/code/build-code.ts +++ b/app/srv/ws/sync/editor/code/build-code.ts @@ -23,13 +23,11 @@ export const codeBuild = async (id_site: any) => { `\ import type {} from "./typings/global"; -export const server = createServer({ +export const server: PrasiServer = { async http({ req, handle, mode, url, index, server }) { return await handle(req); - }, - db, - api -}); + } +}; ` ); const bun_types = Bun.spawn({ diff --git a/app/web/src/base/load/proxy.ts b/app/web/src/base/load/proxy.ts index 00dc937b..5ecf69be 100644 --- a/app/web/src/base/load/proxy.ts +++ b/app/web/src/base/load/proxy.ts @@ -4,7 +4,7 @@ import axios from "axios"; return `BigInt::` + this.toString(); }; let w = (typeof window !== "undefined" ? window : null) as any; -let g = global as any; +let g = (typeof global !== "undefined" ? global : undefined) as any; export const fetchViaProxy = async ( target_url: string,