diff --git a/app/srv/core/main.js b/app/srv/core/main.js index 955c2146..ce33835e 100644 --- a/app/srv/core/main.js +++ b/app/srv/core/main.js @@ -42,7 +42,7 @@ ${d}`),f.pop(),`{${k}}`}case"number":return isFinite(g)?String(g):t?t(g):"null"; `):" "+ew(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:sB};function aB(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ki(null,e)}function Fc(e){return aB(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),wc.getAdapter(e.adapter||xr.adapter)(e).then(function(i){return aB(e),i.data=ks.call(e,e.transformResponse,i),i.headers=ft.from(i.headers),i},function(i){return Ss(i)||(aB(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 tw=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(tw(c),tw(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 Dc="1.6.7";var IB={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{IB[e]=function(i){return typeof i===e||"a"+(t<1?"n ":" ")+e}});var Aw={};IB.transitional=function(t,A,i){function n(r,o){return"[Axios v"+Dc+"] 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&&!Aw[o]&&(Aw[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 Dx(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 kc={assertOptions:Dx,validators:IB};var bi=kc.validators,Hr=class{constructor(t){this.defaults=t,this.interceptors={request:new jf,response:new jf}}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&&kc.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}:kc.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=[Fc.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}}},iw=cB;function lB(e){return function(A){return e.apply(null,A)}}function gB(e){return w.isObject(e)&&e.isAxiosError===!0}var uB={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(uB).forEach(([e,t])=>{uB[t]=e});var nw=uB;function rw(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 rw($A(e,n))},A}var He=rw(xr);He.Axios=Ns;He.CanceledError=Ki;He.CancelToken=iw;He.isCancel=Ss;He.VERSION=Dc;He.toFormData=qi;He.AxiosError=j;He.Cancel=He.CanceledError;He.all=function(t){return Promise.all(t)};He.spread=lB;He.isAxiosError=gB;He.mergeConfig=$A;He.AxiosHeaders=ft;He.formToJSON=e=>mc(w.isHTMLForm(e)?new FormData(e):e);He.getAdapter=wc.getAdapter;He.HttpStatusCode=nw;He.default=He;var Sc=He;var{Axios:O1,AxiosError:L1,CanceledError:Y1,isCancel:P1,CancelToken:V1,VERSION:z1,all:T1,Cancel:_1,isAxiosError:X1,spread:Z1,toFormData:W1,AxiosHeaders:j1,HttpStatusCode:$1,formToJSON:eq,getAdapter:tq,mergeConfig:Aq}=Sc;BigInt.prototype.toJSON=function(){return"BigInt::"+this.toString()};var kx=typeof window<"u"?window:null,ow=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(kx!==null){let l=new URL(location.href),u="";if(a.host===l.host||ow&&typeof ow.server_hook=="function"?u=a.toString():u=`${l.protocol}//${l.host}/_proxy/${encodeURIComponent(a.toString())}`,u){if(o)return(await Sc({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,sw)}catch{return f}}}}let I=await(await fetch(a,t?{method:"POST",body:n,headers:i}:void 0)).text();try{return JSON.parse(I,sw)}catch{return I}},sw=(e,t)=>typeof t=="string"&&t.startsWith("BigInt::")?BigInt(t.substring(8)):t;var Fw=K(ww());var vr=async(e,t)=>{let A=(0,Fw.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 CB(`${r}/_prasi/prisma/index.d.ts`),"runtime/index.d.ts":await CB(`${r}/_prasi/prisma/runtime/index.d.ts`),"runtime/library.d.ts":await CB(`${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()},CB=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 Dw(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,D]of Object.entries(s)){let d=u[parseInt(C)];u&&u.includes(d)&&D&&typeof D!="string"&&typeof D!="number"||(l=l.replace(`:${d}?`,D+""),l=l.replace(`:${d}`,D+""))}let g=`${A}${l}`,f=await Dw(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}},Dw=async(e,t)=>await Mr(e,t,{"content-type":"application/json"});var Nw=K(Uw());var Dn=e=>{let t="";return new Proxy({},{get(A,i){return i==="_schema"?{tables:async()=>Gs({name:t,action:"schema_tables",table:"",params:[]},e),columns:async n=>Gs({name:t,action:"schema_columns",table:n,params:[]},e),rels:async n=>Gs({name:t,action:"schema_rels",table:n,params:[]},e)}:i.startsWith("$")?(...n)=>Gs({name:t,action:"query",table:i,params:n},e):new Proxy({},{get(n,r){return async(...o)=>(i==="query"&&(i=r,r="query"),await Gs({name:t,action:r,table:i,params:o},e))}})}})},Uc={},Gs=async(e,t)=>{let A=new URL(t);A.pathname="/_dbs",e.table&&(A.pathname+=`/${e.table}`);let i=A.toString(),n=(0,Nw.default)(e),r=Uc[n];if(!r||r&&Date.now()-r.timestamp>1e3){Uc[n]={timestamp:Date.now(),promise:Mr(i,e,{"content-type":"application/json"}),result:null};let o=await Uc[n].promise;return Uc[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 Nc=IG;var Rr=e=>({isMobile:e.mode==="mobile",isDesktop:e.mode==="desktop",isEditor:location.pathname.startsWith("/ed/")});var xc=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 Nc(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 Nc(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:Nc,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 xw=(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,Hw=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=xw(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");Gw(e,o),IA(e),e.render(),r.on("update",(s,a)=>{let c=r.getMap("map").get("files")?.get("index.js");Gw(e,c),IA(e),e.render()})}}},Gw=(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=Gc(t);if(e.global_prop=Object.keys(i),typeof i=="object")for(let[n,r]of Object.entries(i))A[n]=r}};var QB=async(e,t,A)=>{e.site=t,!e.script.db&&!e.script.api&&(e.site.code.mode==="old"?await xc({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 Hw(e))};var Mw=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 fc(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! + - `)}`);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,D]of Object.entries(s)){let d=u[parseInt(C)];u&&u.includes(d)&&D&&typeof D!="string"&&typeof D!="number"||(l=l.replace(`:${d}?`,D+""),l=l.replace(`:${d}`,D+""))}let g=`${A}${l}`,f=await Dw(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}},Dw=async(e,t)=>await Mr(e,t,{"content-type":"application/json"});var Nw=K(Uw());var Dn=e=>{let t="";return new Proxy({},{get(A,i){return i==="_schema"?{tables:async()=>Gs({name:t,action:"schema_tables",table:"",params:[]},e),columns:async n=>Gs({name:t,action:"schema_columns",table:n,params:[]},e),rels:async n=>Gs({name:t,action:"schema_rels",table:n,params:[]},e)}:i.startsWith("$")?(...n)=>Gs({name:t,action:"query",table:i,params:n},e):new Proxy({},{get(n,r){return async(...o)=>(i==="query"&&(i=r,r="query"),await Gs({name:t,action:r,table:i,params:o},e))}})}})},Uc={},Gs=async(e,t)=>{let A=new URL(t);A.pathname="/_dbs",e.table&&(A.pathname+=`/${e.table}`);let i=A.toString(),n=(0,Nw.default)(e),r=Uc[n];if(!r||r&&Date.now()-r.timestamp>1e3){Uc[n]={timestamp:Date.now(),promise:Mr(i,e,{"content-type":"application/json"}),result:null};let o=await Uc[n].promise;return Uc[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 Nc=IG;var Rr=e=>({isMobile:e.mode==="mobile",isDesktop:e.mode==="desktop",isEditor:location.pathname.startsWith("/ed/")});var xc=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 Nc(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 Nc(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:Nc,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 xw=(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,Hw=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=xw(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");Gw(e,o),IA(e),e.render(),r.on("update",(s,a)=>{let c=r.getMap("map").get("files")?.get("index.js");Gw(e,c),IA(e),e.render()})}}},Gw=(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=Gc(t);if(e.global_prop=Object.keys(i),typeof i=="object")for(let[n,r]of Object.entries(i))A[n]=r}};var QB=async(e,t,A)=>{e.site=t,!e.script.db&&!e.script.api&&(e.site.code.mode==="old"&&!location.pathname.startsWith("/ed/")?await xc({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 Hw(e))};var Mw=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 fc(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"),cc()||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")),rc.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 vw=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,vw.jsx)(rn,{note:"logging in"});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")},uG=e=>{if(gG(e),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(i=>{kn.list=i,uG(e)});return}if(!kn.route){kn.route=Sr();for(let i of kn.list)kn.route.insert(i.url,i)}let A="/"+location.pathname.split("/").slice(3).join("/");if(!params.page_id){let i=kn.route.lookup(A);if(i&&(params.page_id=i.id,i.params))for(let[n,r]of Object.entries(i.params))["site_id","page_id"].includes(n)||(params[n]=r)}}if(e.sync){if(e.site.id==="--loading--")return!1;if(params.site_id!==e.site.id)return e.site=hA(Pf),e.site.id="--loading--",e.ui.popup.code.init=!1,e.sync.site.load(params.site_id).then(async t=>{t?(await QB(e,t,"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(t=>{if(params.site_id==="_"){alert("asdsa");return}t&&(location.href=`/ed/${params.site_id}/${t.id}`)}),!1}return!e.sync&&!e.sync_assigned?(e.sync_assigned=!0,ry({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(t){e.user.client_id=t},disconnected(){return console.log("offline, reconnecting..."),Ce.offline=!0,e.render(),{reconnect:!0}},async editor_start(t){params.site_id!==t.site_id||params.page_id!==t.page_id?e.page.cur.id||(e.site.id=t.site_id,e.page.cur.id=t.page_id,location.pathname.startsWith("/ed/")&&(location.href=`/ed/${t.site_id}/${t.page_id}`)):(e.site.id=t.site_id,e.page.cur.id=t.page_id,e.render())},site_updated(t){for(let[A,i]of Object.entries(t))A==="js"||A==="js_compiled"?e.site[A]=lG.decode(Et(i)):e.site[A]=i;e.render()},async remote_svlocal(t){let A=null;if(t.type==="page"&&e.page.cur.id===t.id?A=e.page.doc:t.type==="comp"&&e.comp.list[t.id]?A=e.comp.list[t.id].doc:t.type==="code"&&(A=e.code.site.doc),A&&e.sync){let i=RE(A,Et(t.sv_local)),n=KE(A),r=Buffer.from(rA(n)),o=Buffer.from(rA(i)),s=await e.sync.yjs.sv_remote(t.type,t.id,r,o);if(s){if(vE(A,Et(s.diff),"sv_remote"),t.type==="page")delete e.preview.meta_cache[t.id],await IA(e,{note:"sv_remote"});else if(t.type==="comp"){let a=await uc(e,A,t.id);a&&(e.comp.list[t.id].meta=a.meta,e.comp.list[t.id].tree=a.tree),await IA(e,{note:"sv_remote"})}e.render()}}}}}).then(t=>{e.sync=t}),!1):params.page_id!==e.page.cur.id&&location.pathname.startsWith("/ed")?(Mw(e,params.page_id,"change page"),!1):!0},Gc=src=>{if(src){let module={exports:{__esModule:!0}};eval(`try { ${src} } catch(e) { diff --git a/app/web/src/nova/ed/logic/ed-site.ts b/app/web/src/nova/ed/logic/ed-site.ts index 374527bf..ea858a67 100644 --- a/app/web/src/nova/ed/logic/ed-site.ts +++ b/app/web/src/nova/ed/logic/ed-site.ts @@ -6,13 +6,13 @@ export const loadSite = async (p: PG, site: ESite, note: string) => { p.site = site; if (!p.script.db && !p.script.api) { - if (p.site.code.mode === "old") { + if (p.site.code.mode === "old" && !location.pathname.startsWith('/ed/')) { await viLoadLegacy({ mode: p.mode, site: { api_url: p.site.config.api_url, id: p.site.id, - api: { + api: { get() { return p.script.api; },