@metricinsights/pp-dev 0.10.1 → 0.12.0

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@metricinsights/pp-dev",
3
3
  "type": "module",
4
- "version": "0.10.1",
4
+ "version": "0.12.0",
5
5
  "description": "Portal Page dev build tool",
6
6
  "bin": {
7
7
  "pp-dev": "bin/pp-dev.js"
@@ -11,9 +11,17 @@
11
11
  "scripts": {
12
12
  "clean": "rimraf ./dist",
13
13
  "prebuild": "npm run clean",
14
- "build": "npm run build:node && npm run build:client",
14
+ "build": "npm run build:parallel",
15
+ "build:parallel": "npm run build:node && npm run build:client",
15
16
  "build:node": "rollup --config rollup.config.ts --configPlugin typescript && node scripts/postbuild.js",
16
17
  "build:client": "rollup --config src/client/rollup.config.ts --configPlugin typescript",
18
+ "build:watch": "rollup --config rollup.config.ts --configPlugin typescript --watch",
19
+ "build:analyze": "rollup --config rollup.config.ts --configPlugin typescript --configPlugin rollup-plugin-visualizer",
20
+ "build:fast": "npm run build:parallel",
21
+ "build:optimize": "tsx scripts/build-optimizer.js",
22
+ "postbuild": "npm pack && node scripts/rename-pack.js",
23
+ "startup:optimize": "tsx scripts/startup-optimizer.js",
24
+ "startup:profile": "node --prof bin/pp-dev.js",
17
25
  "test": "cd test && npm run build",
18
26
  "release": "semantic-release",
19
27
  "version": "npm version --commit-hooks false --git-tag-version false"
@@ -52,6 +60,12 @@
52
60
  "peerDependencies": {
53
61
  "next": ">= 13 < 16"
54
62
  },
63
+ "peerDependenciesMeta": {
64
+ "next": {
65
+ "optional": true,
66
+ "description": "Required for Next.js development server functionality"
67
+ }
68
+ },
55
69
  "dependencies": {
56
70
  "axios": "^1.7.8",
57
71
  "cac": "^6.7.14",
@@ -68,12 +82,14 @@
68
82
  "jsdom": "^25.0.1",
69
83
  "memory-cache": "^0.2.0",
70
84
  "picocolors": "^1.1.1",
85
+ "rollup": "^4.40.0",
71
86
  "sass": "^1.87.0",
72
87
  "sharp": "^0.33.5",
73
88
  "source-map-support": "^0.5.21",
74
89
  "svgo": "^3.3.2",
75
90
  "svgtofont": "^6.0.1",
76
91
  "typescript": "^5.6.0",
92
+ "vite": "^6.3.3",
77
93
  "vite-plugin-image-optimizer": "^1.1.8",
78
94
  "vite-plugin-zip-pack": "^1.2.4",
79
95
  "winston": "^3.17.0"
@@ -91,17 +107,16 @@
91
107
  "@types/jsdom": "^21.1.7",
92
108
  "@types/memory-cache": "^0.2.6",
93
109
  "@types/node": "^20.17.6",
94
- "esbuild": "^0.25.3",
110
+ "esbuild": "^0.25.8",
95
111
  "prettier": "^3.3.3",
96
112
  "rimraf": "^6.0.1",
97
- "rollup": "^4.40.0",
98
113
  "rollup-plugin-dts": "^6.2.1",
99
114
  "rollup-plugin-scss": "^4.0.1",
115
+ "rollup-plugin-visualizer": "^5.12.0",
100
116
  "semantic-release": "^24.2.3",
101
- "semantic-release-github-pullrequest": "^1.3.0",
102
117
  "semantic-release-monorepo": "^8.0.2",
103
118
  "tslib": "^2.8.1",
104
- "vite": "^6.3.3"
119
+ "tsx": "^4.19.2"
105
120
  },
106
121
  "files": [
107
122
  "bin",
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("./plugin-Dx9CDaej.js"),t=require("vite"),n=require("path"),i=require("fs"),s=require("url"),o=require("ejs"),a=require("esbuild"),r="undefined"!=typeof document?document.currentScript:null;function c(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var p=c(n),l=c(i);const f=n.resolve("undefined"!=typeof __filename&&__filename||s.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:r&&"SCRIPT"===r.tagName.toUpperCase()&&r.src||new URL("index-DRre2UkM.js",document.baseURI).href),"../../.."),u=n.resolve(f,"dist/client/client.js"),{version:d,name:m}=JSON.parse(i.readFileSync(n.resolve(f,"package.json")).toString()),g=d,v=m,j=[".pp-watch.config.js",".pp-watch.config.ts",".pp-watch.config.json"],y=[".pp-dev.config.js",".pp-dev.config.cjs",".pp-dev.config.mjs",".pp-dev.config.ts",".pp-dev.config.cts",".pp-dev.config.mts",".pp-dev.config.json","pp-dev.config.js","pp-dev.config.cjs","pp-dev.config.mjs","pp-dev.config.ts","pp-dev.config.cts","pp-dev.config.mts","pp-dev.config.json"],h=p.dirname("undefined"!=typeof __filename&&__filename||s.fileURLToPath(new URL(".","undefined"==typeof document?require("url").pathToFileURL(__filename).href:r&&"SCRIPT"===r.tagName.toUpperCase()&&r.src||new URL("index-DRre2UkM.js",document.baseURI).href))),b=`/${v}/client`,w=`/${b}`;function P(e){const n=l.readFileSync(p.resolve(h,"client","index.html"),{encoding:"utf8",flag:"r"});let i,s="",a=!1;return{name:"pp-dev:client",apply:"serve",config:e=>(e.optimizeDeps?.exclude?.push(`${v}/client`),e),resolveId(e){const n=new RegExp(`^\\/?${v}\\/client\\/(.*)$`);if(n.test(e))return{id:t.normalizePath(p.join(f,"dist/client",e.replace(n,"$1")))}},transformIndexHtml:async(e,t)=>{t.server?.config.base&&s!==t.server?.config.base&&(s=t.server.config.base,a=!0);const r={html:e,tags:[{tag:"link",injectTo:"head",attrs:{rel:"stylesheet",href:p.posix.join(s,v,"client/client.css")}}]},{backendBaseURL:c,templateLess:l,portalPageId:f,canSync:u=!0}=t.server?.config.clientInjectionPlugin||{};return i&&!a||(i=o.compile(n.replace(new RegExp(`${w}`,"g"),p.posix.join(s,b)),{openDelimiter:"{",closeDelimiter:"}",async:!0})),r.tags.push({tag:"div",injectTo:"body-prepend",children:await(i?.({PACKAGE_NAME:v,VERSION:g,backendBaseURL:c,templateLess:l,portalPageId:f,canSync:u}))}),r.tags.push({tag:"script",injectTo:"body-prepend",attrs:{src:p.posix.join(s,v,"client/client.js"),type:"module"}}),a=!1,r},configureServer(e){e.config.server?.fs?.allow?.push(t.normalizePath(p.resolve(e.config.root,p.dirname(u))))}}}const R=(e,t)=>` * ${t}`;function S(e){return`/*!\n${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,R)}\n */`}async function $(e){const t=process.cwd();let o=!1;if(/\.m[jt]s$/.test(e))o=!0;else if(/\.c[jt]s$/.test(e))o=!1;else try{const e=process.cwd(),t=i.readFileSync(n.resolve(e,"package.json"),{encoding:"utf-8",flag:"r"});o=!!t&&"module"===JSON.parse(t).type}catch(e){}const r=await a.build({absWorkingDir:t,entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,format:o?"esm":"cjs",mainFields:["main"],sourcemap:"inline",metafile:!0}),{text:c}=r.outputFiles[0],p=`${`pp-config.timestamp-${Date.now()}-${Math.random().toString(16).slice(2)}`}.js`,l=s.pathToFileURL(n.resolve(t,p)).toString();i.writeFileSync(p,c);let f={};try{const e=(await import(l)).default;f=e?.default||e}finally{i.unlink(p,(()=>{}))}return f}async function L(e){return(await import(s.pathToFileURL(e).toString())).default}async function O(e){return JSON.parse(i.readFileSync(e,{encoding:"utf-8"}))}async function I(e,t){for(const i of t)if(e.includes(i)){if(/\.[cm]?ts$/i.test(i))return await $(i);if(/\.[cm]?js$/i.test(i))return await L(n.resolve(".",i));if(i.endsWith(".json"))return await O(n.resolve(".",i))}return null}function U(){const e=process.cwd();try{return JSON.parse(i.readFileSync(n.resolve(e,"package.json"),{encoding:"utf-8",flag:"r"}))}catch{return{}}}async function D(){const e=/\.config\.(([cm]?ts)|([cm]?js)|(json))$/,t=process.cwd(),n=i.readdirSync(t,{withFileTypes:!0}).filter((t=>t.isFile()&&e.test(t.name))).map((e=>e.name));let s={},o=!1;const a=await I(n,y);if(a&&(s=a,o=!0),n.length&&!o){const e=await I(n,j);e&&(s={backendBaseURL:e.baseURL,portalPageId:e.portalPageId},o=!0)}const r=U();return o||"object"!=typeof r["pp-dev"]||(s=r["pp-dev"]),s}exports.VERSION=g,exports.getViteConfig=async function(){const t=U().name,n=await D(),i=e.normalizeVitePPDevConfig(Object.assign(n,{templateName:t})),s=[e.vitePPDev(i),P()],{outDir:o,distZip:a,imageOptimizer:r,templateLess:c}=i;if(r){const{ViteImageOptimizer:e}=await import("vite-plugin-image-optimizer");s.push(e("object"==typeof r?r:void 0))}if(a){const{default:e}=await import("vite-plugin-zip-pack");s.push({...e("object"==typeof a?a:{outFileName:`${t}.zip`}),enforce:"post"})}return{base:c?`/p/${t}`:`/pt/${t}`,server:{port:3e3},build:{minify:!1,assetsInlineLimit:4096,rollupOptions:{output:{banner:S}},outDir:o},css:{modules:{localsConvention:"dashes"},scss:{api:"modern"}},ppDevConfig:i,plugins:s}},exports.withPPDev=function(e,t){return async(n,i={})=>{const{PHASE_DEVELOPMENT_SERVER:s}=await import("next/constants.js"),o=await D(),a=U().name,r="function"==typeof e?await e(n,i):e;if(n===s){const e=Object.assign(o,t),{templateLess:n}=e;return Object.assign({basePath:n?`/p/${a}`:`/pt/${a}`,trailingSlash:!0},r,{serverRuntimeConfig:{templateName:a,ppDevConfig:e},publicRuntimeConfig:{templateName:a,ppDevConfig:{backendBaseURL:e.backendBaseURL,portalPageId:e.portalPageId,templateLess:e.templateLess}}})}return Object.assign({basePath:`/pt/${a}`},r)}};
2
- //# sourceMappingURL=index-DRre2UkM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DRre2UkM.js","sources":["../../../src/constants.ts","../../../src/plugins/client-injection-plugin.ts","../../../src/banner/header.ts","../../../src/config.ts","../../../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["PP_DEV_PACKAGE_DIR","resolve","__filename","fileURLToPath","document","require","pathToFileURL","href","_documentCurrentScript","tagName","toUpperCase","src","URL","baseURI","PP_DEV_CLIENT_ENTRY","version","name","JSON","parse","readFileSync","toString","VERSION","PACKAGE_NAME","PP_WATCH_CONFIG_NAMES","PP_DEV_CONFIG_NAMES","DIRNAME","path","dirname","PACKAGE_IMPORT","CLIENT_PATH","clientInjectionPlugin","opts","clientPanelTpl","fs","encoding","flag","render","base","baseChanged","apply","config","optimizeDeps","exclude","push","resolveId","source","pkgRegExp","RegExp","test","id","normalizePath","join","replace","transformIndexHtml","async","html","ctx","server","result","tags","tag","injectTo","attrs","rel","posix","backendBaseURL","templateLess","portalPageId","canSync","compile","openDelimiter","closeDelimiter","children","type","configureServer","allow","root","replacer","substring","$1","header","chunk","loadTsConfig","filePath","cwd","process","isESM","pkg","e","build","absWorkingDir","entryPoints","outfile","write","target","platform","bundle","format","mainFields","sourcemap","metafile","text","code","outputFiles","fileNameTmp","Date","now","Math","random","slice","fileUrl","writeFileSync","conf","import","default","unlink","loadJsConfig","loadJSONConfig","loadConfig","dirFiles","configNames","configName","includes","endsWith","getPkg","getConfig","endsWithRegExp","dirContent","readdirSync","withFileTypes","filter","value","isFile","map","configFound","newConfig","length","watchConfig","baseURL","templateName","ppDevConfig","normalizedPPDevConfig","normalizeVitePPDevConfig","Object","assign","plugins","vitePPDev","outDir","distZip","imageOptimizer","ViteImageOptimizer","undefined","zipPack","outFileName","enforce","port","minify","assetsInlineLimit","rollupOptions","output","banner","css","modules","localsConvention","scss","api","nextjsConfig","phase","nextConfig","PHASE_DEVELOPMENT_SERVER","nextConfiguration","devConfig","basePath","trailingSlash","serverRuntimeConfig","publicRuntimeConfig"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("http-proxy-middleware"),t=require("url"),a=require("vite"),r=require("picocolors"),s=require("axios"),i=require("jsdom"),n=require("https"),o=require("memory-cache"),p=require("path"),c=require("fs"),l=require("crypto"),d=require("process"),h=require("child_process"),u=require("console"),g=require("zlib"),m=require("express"),f="undefined"!=typeof document?document.currentScript:null;function w(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var y=w(o),v=w(p),b=w(l),x=w(d),k=w(h),T=w(u);const P=(e,t,a)=>{const r=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return a.replace(r,((e,...a)=>e.startsWith("!!")?a[1]:`http${a[2]}${t}`))},A=(e,t,a)=>{e.setHeader("location",t),e.statusCode=a,e.end()};function $(e){return e.split("?")[0]}const L=new Map,S="default",I=(e="info",t=S)=>{if(L.has(t))return L.get(t);if(t===S){const r=a.createLogger(e);return L.set(t,r),r}const r=a.createLogger(e);return L.set(t,r),r},E=r.createColors(),j=function(){const e=setInterval((function(){if(document.querySelector("#mi-react-root form")){clearInterval(e);const t=document.querySelector("#mi-react-root form"),a=t?.firstChild,r=a.lastChild.cloneNode(!0);r.innerHTML="";const s=r.cloneNode(!0);s.innerText="OR";const i=r.cloneNode(!0),n=document.createElement("div"),o=`\n<style>\n.helper-login-wrapper {\n font-family: Arial, sans-serif;\n color: #222;\n padding: 8px;\n background-color: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #ddd;\n width: 100%;\n max-width: 400px;\n margin: 0 auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.helper-login-wrapper .title {\n font-weight: bold;\n font-size: 18px;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.helper-login-wrapper .control {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.helper-login-wrapper .control input {\n border: 1px solid #ddd;\n /*padding: 12px;*/\n border-radius: 4px;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n height: 26px;\n}\n\n.helper-login-wrapper .control .caption {\n font-size: 12px;\n color: #666;\n text-align: center;\n}\n\n.helper-login-wrapper .footer {\n margin-top: 16px;\n text-align: center;\n}\n\n.helper-login-wrapper .footer .btn.submit {\n background-color: #007bff;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n width: 100%;\n font-size: 14px;\n transition: background-color 0.3s;\n height: 26px;\n}\n\n.helper-login-wrapper .footer .btn.submit:hover {\n background-color: #0056b3;\n}\n\n.helper-login-wrapper .token-type-switcher {\n display: flex;\n border: 1px solid #ccc;\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 12px;\n width: 100%;\n}\n\n.helper-login-wrapper .token-type-option {\n padding: 4px 8px;\n cursor: pointer;\n background-color: #f8f9fa;\n color: #666;\n font-size: 12px;\n text-align: center;\n transition: background-color 0.2s, color 0.2s;\n border-right: 1px solid #ccc;\n flex: 1;\n}\n\n.helper-login-wrapper .token-type-option:last-child {\n border-right: none;\n}\n\n.helper-login-wrapper .token-type-option.active {\n background-color: #007bff;\n color: white;\n font-weight: bold;\n}\n\n.helper-login-wrapper .token-type-option:not(.active):hover {\n background-color: #e9ecef;\n}\n</style>\n<div class="helper-login-wrapper">\n <div class="title">PP Dev Helper</div>\n\n <div class="token-type-switcher" id="token-type-switcher">\n <div class="token-type-option active" data-value="personal">\n API Token\n </div>\n <div class="token-type-option" data-value="regular">\n Legacy Token\n </div>\n </div>\n\n <div class="control">\n <input type="password" id="helper-token" placeholder="API Token">\n <span class="caption" id="token-caption">\n You can get the API Token\n <a href="https://${host}/api-token" target="_blank" style="color: #007bff; text-decoration: none;">here</a>\n </span>\n </div>\n\n <div class="footer">\n <button id="helper-token-submit" class="btn submit">\n Token Login\n </button>\n </div>\n</div>`;n.innerHTML=o,i.appendChild(n),a.appendChild(s),a.appendChild(i);const p=document.getElementById("token-type-switcher"),c=p?.querySelectorAll(".token-type-option"),l=document.getElementById("helper-token"),d=document.getElementById("token-caption"),h={personal:{placeholder:"API Token",caption:`You can get the API Token\n <a href="https://${host}/api-token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`},regular:{placeholder:"Legacy Token",caption:`You can get the Legacy Token\n <a href="https://${host}/api/get_token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`}},u=e=>{const t=h[e];t&&(l.placeholder=t.placeholder,d.innerHTML=t.caption)};u("personal"),c?.forEach((e=>{e.addEventListener("click",(e=>{const t=e.currentTarget,a=t.dataset.value;c.forEach((e=>e.classList.remove("active"))),t.classList.add("active"),u(a)}))})),document.getElementById("helper-token-submit")?.addEventListener("click",(e=>{e.preventDefault();const t=document.getElementById("helper-token");if(t){if(!t.value)return void alert(`${l.placeholder} is required`);const e=t.value,a=p?.querySelector(".token-type-option.active"),r=a?.dataset.value||"personal";fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:r}),redirect:"follow"}).then((async e=>{const t=e.url&&new URL(e.url,window.location.origin);if(!t||t.pathname.startsWith("/login")||t.pathname.startsWith("/@api/"))try{const t=await e.json();alert(`Login failed: ${t?.error}`)}catch(e){alert("Login failed: Unknown error")}else window.location.href=e.url})).catch((()=>{alert("Login failed")}))}}))}}),100)},O=/^(https?:\/\/)([^/]+)(\/.*)?$/i,C="X-PP-Proxy";function F(t){const{rewritePath:a=/^\/(?!pt).*/i,baseURL:r="",devServer:s,disableSSLValidation:i=!1,miAPI:n}=t;if(!r)throw new Error("Base url is required");const o=r.replace(O,"$2"),p=r.replace(O,"$1$2"),c=import("file-type"),l=I();return e.createProxyMiddleware({selfHandleResponse:!0,pathFilter:(e,r)=>!(t.proxyIgnore||[]).some((t=>"string"==typeof t?e.startsWith(t):"function"!=typeof t.test||t.test(e)))&&("string"==typeof a?e.startsWith(a):Array.isArray(a)?a.some((t=>e.startsWith(t))):"function"==typeof a.test&&a.test(e)),target:r,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[o]:"localhost"},logger:{info:()=>{},log:()=>{},error:()=>{},warn:()=>{}},secure:!i,headers:{host:o,origin:p},on:{proxyReq(e,t,a){const s=t.headers.host,i=e.getHeader("referer");return l.info(`${E.blue("Proxies request:")} ${E.green(t.method)} ${t.url} -> ${E.green(e.method)} ${e.protocol}//${e.host}${e.path}`),s&&i&&"string"==typeof i&&e.setHeader("referer",i.replace(new RegExp(`https?://${s}`),r)),n.personalAccessToken&&e.setHeader("Authorization",`Bearer ${n.personalAccessToken}`),t.socket.on("close",(()=>{setTimeout((()=>{e.destroyed||e.destroy()}),200)})),e},proxyRes:(t,a,r)=>{if(t.headers["content-type"]?.includes("text/event-stream")||t.headers["transfer-encoding"]?.includes("chunked")&&"no"===t.headers["x-accel-buffering"]){l.info(`${E.blue("Start streaming for request:")} ${E.green(a.method)} ${a.url}`);const e=async(e,t,a)=>{a.setHeader(C,1),a.setHeaders(new Map(Object.entries(e.headers))),e.pipe(a)};return e(t,a,r)}const s=e.responseInterceptor((async(e,t,a,r)=>{r.setHeader(C,1);if(await(await c).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(a.url??"",`http://${o}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){const e=function(){const e="pp-dev::redirectCount";let t=+(localStorage.getItem(e)??0);Number.isNaN(t)&&(t=0);let a=window.location.href;const r=function(){const s=new URLSearchParams(window.location.search);s.has("proxyRedirect")?a!==window.location.href?(a=window.location.href,setTimeout(r,t<3?3e3:5e3)):(localStorage.setItem(e,""+ ++t),window.location.href=s.get("proxyRedirect")):localStorage.removeItem(e)};setTimeout(r,3e3)};t+=`<script>(${e.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(t+=`<script>const host = "${o}";\n(${j.toString()})()<\/script>`)}catch{}const r=a.headers.host??"";return((e,t,a)=>{const r=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),s=new RegExp(`${e}`,"gi"),i=a.replace(r,t);return i===a?i.replace(s,t):i})("/auth/saml/login","/login",P(o,r,t))}}));return s(t,a,r)},error(e,t,a){const r=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;l.error(r),a.writable&&a.writeHead(500,{"Content-Type":"text/plain"}),a.end(r)}}})}class R{axios;constructor(e){this.axios=e}async checkAuth(e){return this.axios.get("/data/page/index/auth/info",{headers:Object.assign({},e,{accept:"text/html"}),maxRedirects:0}).then((()=>!0)).catch((()=>!1))}}class B extends R{formdataModulePromise=import("formdata-node");constructor(e){super(e)}getDownloadUrl(e){return`/admin/page/downloadassets/id/${e}`}getDownloadTemplateUrl(e){return`/admin/pagetemplate/downloadassets/id/${e}`}getUploadUrl(e){return`/admin/page/uploadassets/id/${e}`}getUploadTemplateUrl(e){return`/admin/pagetemplate/uploadassets/id/${e}`}async downloadPageAssets(e,t){return this.axios.get(this.getDownloadUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then((e=>e.data))}async uploadPageAssets(e,t,a){const r=new(await this.formdataModulePromise).FormData,{File:s}=await this.formdataModulePromise,i=new s([t],"file.zip",{type:"application/zip"});r.append("file",i);const n=this.getUploadUrl(e);return this.axios.post(n,r,{withCredentials:!0,headers:Object.assign({},a,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:n})})}).then((e=>e.data))}async downloadTemplateAssets(e,t){return this.axios.get(this.getDownloadTemplateUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then((e=>e.data))}async uploadTemplateAssets(e,t,a){const r=new(await this.formdataModulePromise).FormData,{File:s}=await this.formdataModulePromise,i=new s([t],"file.zip",{type:"application/zip"});r.append("file",i,"file.zip");const n=this.getUploadTemplateUrl(e);return this.axios.post(n,r,{withCredentials:!0,headers:Object.assign({},a,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:n})})}).then((e=>e.data))}}class N extends B{getDownloadUrl(e){return`/api/page/id/${e}/asset/download`}getDownloadTemplateUrl(e){return`/api/page_template/id/${e}/asset/download`}getUploadUrl(e){return`/api/page/id/${e}/asset/upload`}getUploadTemplateUrl(e){return`/api/page_template/id/${e}/asset/upload`}}class H extends R{async getAll(e){return(await this.axios.get("/api/page",{withCredentials:!0,headers:Object.assign({},e,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"})})).data.pages}async get(e,t){return(await this.axios.get(`/api/page/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page}async getPageContent(e,t){return(await this.axios.get(`/p/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"text/html","content-type":"application/json"})})).data}async create(e,t){return(await this.axios.post("/api/page",e,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page}}class M extends R{async getAll(e,t){return(await this.axios.get("/api/page_template",{withCredentials:!0,headers:Object.assign({},t,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"}),params:{internal_name:e}})).data.page_templates}async get(e,t){return(await this.axios.get(`/api/page_template/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page_template}}const D="[DEV PAGE. DO NOT DELETE]";class U{#e;#t;#a=null;#r;#s;#i;#n;#o;#p;#c;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:a={},portalPageId:r,templateLess:i=!0,disableSSLValidation:o=!1,v7Features:p=!1,personalAccessToken:c}=t||{};this.#e=a,this.#s=[],this.#r="",this.#i=p,this.#n=c,this.#o=!1,this.#p=Promise.resolve(!1),o&&(s.defaults.httpsAgent=new n.Agent({rejectUnauthorized:!1})),this.#t=s.create({baseURL:e,headers:a}),this.portalPageId=r,this.templateLess=i,this.assetsApi=new(p?N:B)(this.#t),this.pageApi=new H(this.#t),this.pageTemplateApi=new M(this.#t),this.logger=I()}async isTemplateLoaded(){return this.#p}get isV710OrHigher(){return this.#o}#l(e){const t=Object.assign({},e,{host:void 0,referer:void 0});return Object.keys(t).forEach((e=>void 0===t[e]&&delete t[e])),this.#e=t,!t.authorization&&this.#n&&(t.authorization=`Bearer ${this.#n}`),t}get personalAccessToken(){return this.#n}set personalAccessToken(e){this.#n=e}updateHeaders(e){this.#l(e)}get localTemplateHTML(){return'<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8" />\n <title>Local template</title>\n <meta charset="UTF-8" />\n <link rel="icon" type="image/svg+xml" href="/favicon.ico" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n </head>\n <body>\n <div id="mi-react-root"></div>\n <script src="/auth/info.js"><\/script>\n <script src="/js/main.js" defer><\/script>\n <link rel="stylesheet" href="/css/main.css" />\n </body>\n </html>'}async getPageTemplate(e){if(await this.#p||this.#a||(this.#p=new Promise((e=>{this.#c=e}))),this.#a)return Promise.resolve(this.#a);if(void 0===this.templateLess&&(this.templateLess=!1),this.#i){return void 0!==(await this.pageApi.get(this.portalPageId,this.#l(e)).then((e=>(this.logger.info(E.green("Page fetched")),e))).catch((async t=>{throw this.#c(!1),await this.pageApi.checkAuth(this.#l(e))?(this.logger.error(E.red(`Error fetching page data: ${t.message}\n${t.stack}`)),new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.")):t}))).template_id&&(this.#o=!0),this.#a=this.localTemplateHTML,this.logger.info(E.green("Local page template fetched")),this.#c(!0),this.#a}let t=(await this.pageApi.getAll(this.#l(e)).then((e=>(this.logger.info(E.green("Page list fetched")),e))).catch((async t=>{throw this.#c(!1),await this.pageApi.checkAuth(this.#l(e))?(this.logger.error(E.red(`Error fetching page list: ${t.message}\n${t.stack}`)),new Error("Current user does not have access to page list")):t}))).find((e=>e.name===D));return t||(this.logger.warn(E.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:D,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#l(e)).then((e=>(this.logger.info(E.green("Dev page created")),e))).catch((e=>{throw this.logger.error(E.red(`Error creating dev page: ${e.message}`)),this.#c(!1),new Error(`Error when creating dev page.\n That can be caused by missing permissions or page with name "${D}" already exists`)}))),await this.pageApi.getPageContent(t.internal_name,this.#l(e)).then((e=>(this.#a=e,e))).then((e=>(this.#c(!0),this.logger.info(E.green("Page template fetched")),e))).catch((e=>{throw this.#c(!1),this.logger.error(E.red(`Error fetching page template: ${e.message}`)),new Error("Error fetching page template")}))}async getPageVariables(e,t){return this.#a=await this.getPageTemplate(t),this.portalPageId||(this.portalPageId=e,this.templateLess=!1),await this.pageApi.get(e,this.#l(t)).then((e=>{const{tags:t="[]",name:a,template:r}=e;if(r&&t){const e=JSON.parse(t);return this.#s=e,this.#r=a,e}return this.#s=[],this.#r=a,[]})).catch((t=>{if(this.logger.error(E.red(`Error fetching page variables: ${t.message}`)),404===t.response?.status)throw new Error(`Portal Page with id "${e}" not found on instance ${this.#t.getUri()}`);if(401===t.response?.status)throw new Error(`Current user does not have access to page with id "${e}" on instance ${this.#t.getUri()}`);throw t}))}buildPage(e,t=!1){let a="string"==typeof e?e:e.toString("utf-8");for(const e of this.#s)a=a.replace(new RegExp(`\\[${e.name}\\]`,"g"),e.value);const r=new i.JSDOM(t?a:this.#a),s="%%PLACEHOLDER%%";if(!t){const e=r.window.document.createElement("div");e.innerHTML=s;const t=r.window.document.querySelector(".main-side");if(t){const a=t.querySelectorAll("script");a.length?t.insertBefore(e,a.item(a.length-1)):t.append(e)}else{const t=r.window.document.createElement("div");t.append(e),r.window.document.body.append(t)}const a=r.window.document.querySelector("head"),i=a.querySelector("title");i?i.text=this.#r:a.innerHTML+=`<title>${this.#r}</title>`}return r.serialize().replace(new RegExp(`<div>\\s*${s}\\s*<\\/div>`,"i"),a)}async getAssets(){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.downloadPageAssets(this.portalPageId,this.#e);{const e=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const t=await this.pageTemplateApi.get(e.template_id,this.#e);return await this.assetsApi.downloadTemplateAssets(t.id,this.#e)}if(e.template)return await this.assetsApi.downloadTemplateAssets(e.template,this.#e)}}}async updateAssets(e){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.uploadPageAssets(this.portalPageId,e,this.#e);{const t=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const a=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(a.id,e,this.#e)}if(t.template)return await this.assetsApi.uploadTemplateAssets(t.template,e,this.#e)}}}async get(e,t,a=!1){const r=a?t:Object.assign({},this.#l(this.#e),t);return await this.#t.get(e,{headers:r})}}class V{server;opts;eventMap;logger;constructor(e,t){this.server=e,this.opts=t||{},this.eventMap=new Map,this.eventMap.set("info-data:request",this.onInfoDataRequest.bind(this)),this.eventMap.set("template:sync",this.onTemplateSync.bind(this)),this.logger=I(),this.init()}init(){const{ws:e}=this.server;for(const[t,a]of this.eventMap)e.on(t,a)}onInfoDataRequest(){this.server.ws.send({type:"custom",event:"info-data:response",data:{}})}async onTemplateSync(){if(!this.opts.distService||!this.opts.miAPI)return this.server.ws.send("template:sync:response",{error:"Dist service or MiAPI is not defined"}),void this.logger.error(E.red("Dist service or MiAPI is not defined"));{const{distService:e,miAPI:t}=this.opts;if(this.server.config.clientInjectionPlugin?.v7Features){if(!t?.isV710OrHigher)return void this.server.ws.send("template:sync:response",{error:"This feature is available only for MI v7.1.0 or higher",config:{canSync:!1}});this.server.ws.send("client:config:update",{config:{canSync:!0}})}const a=await(t?.getAssets().catch((e=>{if(s.isAxiosError(e)){if(412===e.response?.status)return this.logger.info(E.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",refresh:!0}),e;if(e.cause instanceof Error&&("ECONNRESET"===e.cause.code||"ENOTFOUND"===e.cause.code))return this.logger.info(E.yellow("Server in maintenance mode, VPN connection is needed or no internet connection")),this.server.ws.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection"}),e}throw e})));if(a instanceof Error)return;const r=a?await(e?.saveBackupAndBuild(a).catch((e=>{if("Backup file is not a ZIP file"===e.message)return this.logger.error(E.red("Backup file is not a ZIP file")),e}))):await(e?.buildNewAssets());if(!(r&&r instanceof Buffer))return r instanceof Error?(this.server.ws.send("template:sync:response",{error:r.message}),void this.logger.error(E.red(r.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(E.red("Failed to build new assets")));{const a=await(t?.updateAssets(r));if("OK"===a?.status){const t=e?.getBackupMeta(),{lastBackupName:a,lastBackupHash:r,lastBackupDate:s}=t||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};this.server.ws.send("template:sync:response",{syncedAt:new Date(s),currentHash:r,backupFilename:a}),this.logger.info(E.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(E.red("Failed to update assets"))}}}}const q=new y.Cache,z=/\.[a-z0-9]+$/i;function _(e){const{devServer:t,ttl:a=6e5}=e,r=I();return t.cache=q,(e,t,s)=>{const i=e.originalUrl||e.url||"";if(z.test(i.split("?")[0]||"")){const s=q.get(i);if(s){r.info(`${E.blue("Proxies request:")} ${E.green(e.method)} ${i} -> ${E.blue("Cache")} ${i}`);for(const[e,a]of Object.entries(s.headers))t.setHeader(e,a);return t.write(s.content),void t.end()}const n=t.end,o=t.write;let p=Buffer.from("","utf8");t.write=function(e,a,r){return t.hasHeader(C)?(p=Buffer.concat([p,e]),!0):o.call(this,e,a,r)},t.end=function(e,s,o){if(!t.hasHeader(C))return n.call(this,e,s,o);"string"==typeof e&&(p=Buffer.concat([p,Buffer.from(e,s)])),Buffer.isBuffer(e)&&(p=Buffer.concat([p,e])),t.hasHeader(C)&&(r.info(`${E.blue("[Cached]")} ${i}`),q.put(i,{headers:t.getHeaders(),content:p},a)),n.call(this,p,s,o)}}s()}}const Z="pageName",W="date",Y=v.dirname("undefined"!=typeof __filename&&__filename||t.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:f&&"SCRIPT"===f.tagName.toUpperCase()&&f.src||new URL("plugin-Dx9CDaej.js",document.baseURI).href)),J=v.resolve(Y,"..",".."),K=v.resolve(J,"..",".."),G=v.resolve(K,".pp-dev-meta"),X=v.resolve(G,"sync-service.meta.json");class Q{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;logger;constructor(e,t){this.pageName=e;const{backupFolder:a=v.resolve(x.cwd(),"backups"),distZipFolder:r=v.resolve(x.cwd(),"dist-zip"),distZipFilename:s=`${this.pageName}.zip`,backupNameTemplate:i=`{${Z}}-{${W}}.zip`,dateFormat:n=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,"")}=t||{};this.backupFolder=a,this.backupNameTemplate=i,this.dateFormat=n,this.distZipFolder=r,this.distZipFilename=s,this.syncMeta(),this.logger=I()}async checkMeta(){try{await c.promises.stat(G)}catch{await c.promises.mkdir(G)}try{await c.promises.stat(this.backupFolder)}catch{await c.promises.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await c.promises.readFile(X,{encoding:"utf-8"}).catch((()=>"{}"))}async writeMetaFile(e){return await this.checkMeta(),await c.promises.writeFile(X,JSON.stringify(e,null,2),{encoding:"utf-8"})}async syncMeta(){this.currentMeta?await this.writeMetaFile(this.currentMeta):this.currentMeta=JSON.parse(await this.readMetaFile())}async getLatestSavedBackup(){const{lastBackupName:e}=this.currentMeta;if(!e)return null;const t=v.resolve(this.backupFolder,e);try{return await c.promises.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${Z}}`,e).replace(`{${W}}`,this.dateFormat(t))}getBackupMeta(){return this.currentMeta}async saveBackup(e){if("PK"!==e.toString("utf-8").slice(0,4))throw new Error("Backup file is not a ZIP file");const t=b.createHash("md5").update(e).digest("hex");if(await this.getLatestSavedBackup()){const{lastBackupHash:e}=this.currentMeta;if(e===t)return}const a=new Date,r=this.backupName(this.pageName,a);return this.currentMeta.lastBackupName=r,this.currentMeta.lastBackupHash=t,this.currentMeta.lastBackupDate=a.toISOString(),await this.syncMeta(),await c.promises.writeFile(v.resolve(this.backupFolder,r),e).finally((()=>{this.logger.info(`Backup saved to ${r}`)}))}async buildNewAssets(){const e=new Promise(((e,t)=>{let a="";this.logger.info(E.cyan("[DistService] Build started"));const r=k.spawn("node",[v.resolve(J,"./bin/pp-dev.js"),"build"],{cwd:x.cwd(),env:Object.assign({},x.env,{NODE_ENV:"production"}),stdio:"inherit"});r.on("message",(e=>{a+=e})),r.on("close",(r=>{0===r?e(a):t(new Error(`build command exited with code ${r}`))})),r.on("error",(e=>{t(e)}))}));try{await e.finally((()=>{this.logger.info(E.cyan("[DistService] Build finished"))}));const t=v.resolve(x.cwd(),this.distZipFolder,this.distZipFilename);if(!await c.promises.stat(t))throw new Error(`File ${t} not found`);return await c.promises.readFile(t)}catch(e){throw T.log(e),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}}function ee(e,t){return async(a,r,s)=>{if(await e(a.url??"",a,r)){I().info(`Rewrite response for ${a.url}`);const e=r.end,s=[];r.write=function(e){return s.push(e),!0},r.end=function(i,n,o){"string"==typeof i&&s.push(Buffer.from(i));const p=r.getHeader("content-encoding"),c=function(e,t){switch(t){case"gzip":return g.unzipSync(e);case"br":return g.brotliDecompressSync(e);case"deflate":return g.deflateSync(e);default:return e}}(Buffer.from(Buffer.concat(s)),p),l="function"!=typeof n&&n?n:"utf-8",d="function"==typeof n?n:o;return e.call(this,function(e,t){switch(t){case"gzip":return g.gzipSync(e);case"br":return g.brotliCompressSync(e);case"deflate":return g.inflateSync(e);default:return e}}(t(c,a,r),p),l,d),this}}s()}}function te(e,a){const r=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,s=I();return(i,n,o)=>{const p=new t.URL(i.url??"","http://localhost"),{pathname:c,search:l}=p,d=["/",r];if(a&&(d.push(`/pt/${a}`),d.push(`/pl/${a}`)),d.includes(c)){const t=`${e}${l}`;return s.info(E.yellow(`Redirecting to: ${t}`)),A(n,t,302)}o()}}function ae(e,t,a){const{templateLess:r=!1,miHudLess:s=!1,portalPageId:i}=a,n=I();return(a,o,p)=>{const c=!(r&&s),l=e.test($(a.url??""));if(c&&l){const e=a.headers??{};n.info(E.green("Start loading page data"));(r||void 0===i?t.getPageTemplate(e):t.getPageVariables(i,e)).then((()=>{p()})).catch((e=>{if(e.response){n.info(E.red("Page data loading failed. Not authorized"));const e=`/home?proxyRedirect=${encodeURIComponent("/")}`;return n.info(E.yellow(`Redirecting to: ${e}`)),A(o,e,302)}n.info(E.red(`Page data loading failed. Error: ${e.message}`)),p(e)}))}else p()}}const re=m();function se(e,t,a){return t(e)?{isValid:!0}:{isValid:!1,error:a}}re.use(m.json()),re.use(m.urlencoded({extended:!0})),exports.MiAPI=U,exports.colors=E,exports.createLogger=I,exports.cutUrlParams=$,exports.initLoadPPData=ae,exports.initPPRedirect=te,exports.initProxy=F,exports.initProxyCache=_,exports.initRewriteResponse=ee,exports.internalServer=re,exports.normalizeVitePPDevConfig=function(e){const t=function(e){const t=[se(e,(e=>"object"==typeof e&&null!==e),"VitePPDevOptions must be an object"),se(e.templateName,(e=>"string"==typeof e&&e.length>0),"VitePPDevOptions.templateName must be a non-empty string"),se(e.backendBaseURL,(e=>void 0===e||"string"==typeof e&&e.length>0),"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),se(e.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.portalPageId must be a positive number if provided"),se(e.appId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.appId must be a positive number if provided"),se(e.proxyCacheTTL,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.proxyCacheTTL must be a positive number if provided")];return t.find((e=>!e.isValid))||{isValid:!0}}(e);if(!t.isValid)throw new Error(t.error);const a=e.appId??e.portalPageId,{enableProxyCache:r=!0,proxyCacheTTL:s=6e5,disableSSLValidation:i=!1,imageOptimizer:n=!0,miHudLess:o=!1,templateLess:p=!1,outDir:c="dist",distZip:l=!0,syncBackupsDir:d="backups",v7Features:h=!1,personalAccessToken:u=process.env.MI_ACCESS_TOKEN}=e||{};let g=l;g=!0===g?{outFileName:`${e.templateName}.zip`,outDir:"dist-zip"}:"object"==typeof l&&{outFileName:"string"==typeof l.outFileName?l.outFileName.replace("[templateName]",e.templateName):`${e.templateName}.zip`,outDir:l.outDir??"dist-zip"};let m=n;return"boolean"==typeof n?!0===m&&(m={}):"object"!=typeof n&&(m=!1),{enableProxyCache:r,proxyCacheTTL:s,disableSSLValidation:i,imageOptimizer:m,templateLess:p,miHudLess:o,outDir:c,distZip:g,syncBackupsDir:d,v7Features:h,personalAccessToken:u,portalPageId:a,...e}},exports.redirect=A,exports.urlReplacer=P,exports.vitePPDev=function(e){const{templateName:t,templateLess:a,backendBaseURL:r,miHudLess:s,portalPageId:i,enableProxyCache:n,proxyCacheTTL:o,disableSSLValidation:p,distZip:c,syncBackupsDir:l,v7Features:d,personalAccessToken:h}=e||{};let u=!0;return process.cwd(),{name:"vite-pp-dev",apply:"serve",config:e=>{const s=function(e){return[se(e.base,(e=>"string"==typeof e&&e.length>0&&"/"!==e),'Server base path cannot be empty or "/"'),se(e.port,(e=>void 0===e||"number"==typeof e&&e>0&&e<65536),"Server port must be a valid port number (1-65535)")].find((e=>!e.isValid))||{isValid:!0}}({base:e.base||"",...e.server});if(!s.isValid)throw new Error(s.error);return e.clientInjectionPlugin={backendBaseURL:r,portalPageId:i,templateLess:a,v7Features:d},d&&(e.base=`/pl/${t}`),e.root&&e.root,e},transformIndexHtml:async(e,t)=>{const a={html:e,tags:[]};return u&&(u=!1,a.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),a},configureServer:u=>{let g=u.config.base;g.endsWith("/")||(g+="/");const m=g.substring(0,g.lastIndexOf("/"));if(u.middlewares.use(te(g,t)),r){const w=new URL(r).host,y={headers:{host:w,referer:r,origin:r.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:i,appId:i,templateLess:a,disableSSLValidation:p,v7Features:d,personalAccessToken:h??process.env.MI_ACCESS_TOKEN},v=[se((f=y).headers,(e=>"object"==typeof e&&"string"==typeof e.host&&"string"==typeof e.referer&&"string"==typeof e.origin),"MiAPI headers must be properly configured"),se(f.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI portalPageId must be a positive number if provided"),se(f.appId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI appId must be a positive number if provided"),se(f.personalAccessToken,(e=>void 0===e||"string"==typeof e),"MiAPI personalAccessToken must be a string if provided")].find((e=>!e.isValid))||{isValid:!0};if(!v.isValid)throw new Error(v.error);const b=new U(r,y);if(n){let e=+o;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:u,ttl:e},a=function(e){return[se(e.ttl,(e=>"number"==typeof e&&e>0),"Proxy cache TTL must be a positive number")].find((e=>!e.isValid))||{isValid:!0}}(t);if(!a.isValid)throw new Error(a.error);u.middlewares.use(_(t))}u.middlewares.use(F({devServer:u,baseURL:r,proxyIgnore:["/@vite","/@metricinsights","/@",m],disableSSLValidation:p,miAPI:b}));const x=new RegExp(`^((${g})|/)$`);u.middlewares.use(ae(x,b,e)),re.post("/@api/login",(async(e,t,a)=>{const{token:r,tokenType:s}=e.body;if(!r)return void t.status(400).json({error:"Token is required"}).end();const i=e=>(u.config.logger.error(e),a(e),null);if("personal"===s){if(!await b.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${r}`},!0).then((async e=>{if("number"==typeof e.data?.user?.user_id)return b.personalAccessToken=r,e;t.status(400).json({error:"Token expired or invalid"}).end()})).catch(i))return;A(t,"/",302)}else if("regular"===s){if(!await b.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:r},!0).then((e=>{if(e.data?.users?.length)return b.personalAccessToken=void 0,t.setHeader("set-cookie",e.headers["set-cookie"]??""),e;t.status(400).json({error:"Token expired or invalid"}).end()})).catch(i))return;A(t,"/",302)}})),u.middlewares.use(re);const k=!1!==c?new Q(t,Object.assign({backupDir:l},"object"==typeof c?{distZipFolder:c.outDir,distZipFilename:c.outFileName}:void 0)):void 0;return new V(u,{distService:k,miAPI:b}),()=>{u.middlewares.use(ee((e=>(console.log("initRewriteResponse.url",e),e.split("?")[0].endsWith("index.html"))),((e,t)=>Buffer.from(P(w,t.headers.host??"",b.buildPage(e,s))))))}}var f}}};
2
- //# sourceMappingURL=plugin-Dx9CDaej.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-Dx9CDaej.js","sources":["../../../src/lib/helpers/url.helper.ts","../../../src/lib/logger.ts","../../../src/lib/helpers/color.helper.ts","../../../src/lib/helpers/login.helper.ts","../../../src/lib/proxy-pass.middleware.ts","../../../src/api/base.ts","../../../src/api/assets.ts","../../../src/api/assets-v7.ts","../../../src/api/page.ts","../../../src/api/page-template.ts","../../../src/lib/pp.middleware.ts","../../../src/lib/client.service.ts","../../../src/lib/proxy-cache.middleware.ts","../../../src/lib/dist.service.ts","../../../src/lib/rewrite-response.middleware.ts","../../../src/lib/helpers/content-encoding.helper.ts","../../../src/lib/pp-redirect.middleware.ts","../../../src/lib/load-pp-data.middleware.ts","../../../src/lib/internal.middleware.ts","../../../src/plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","redirect","res","url","statusCode","setHeader","end","cutUrlParams","split","storage","Map","DEFAULT_LOGGER_KEY","createLogger","level","name","has","get","logger","cL","set","colors","createColors","tokenLoginFunction","readyInterval","setInterval","document","querySelector","clearInterval","$loginForm","$contentWrapper","firstChild","$rowTemplate","lastChild","cloneNode","innerHTML","$orRow","innerText","$helperForm","$formContent","createElement","formHtml","host","appendChild","tokenTypeSwitcher","getElementById","tokenTypeOptions","querySelectorAll","tokenInput","tokenCaption","tokenInfo","personal","placeholder","caption","regular","updateTokenUI","type","info","forEach","option","addEventListener","e","target","currentTarget","value","dataset","opt","classList","remove","add","preventDefault","$helperTokenInput","alert","token","activeOption","tokenType","fetch","method","headers","body","JSON","stringify","then","async","URL","window","location","origin","pathname","json","error","href","catch","hostOriginRegExp","PROXY_HEADER","initProxy","opts","rewritePath","baseURL","devServer","disableSSLValidation","miAPI","Error","fileType","import","createProxyMiddleware","selfHandleResponse","pathFilter","req","proxyIgnore","some","test","Array","isArray","rP","changeOrigin","autoRewrite","cookieDomainRewrite","log","warn","secure","on","proxyReq","referer","getHeader","blue","green","protocol","path","personalAccessToken","socket","setTimeout","destroyed","destroy","proxyRes","serverRes","includes","streamInterceptor","setHeaders","Object","entries","pipe","rewriteInterceptor","responseInterceptor","responseBuffer","fileTypeFromBuffer","response","toString","reqUrl","searchParams","redirectToFunction","storageKey","redirectCount","localStorage","getItem","Number","isNaN","func","params","URLSearchParams","search","setItem","removeItem","reqHost","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","urlPathReplacer","err","errorMessage","message","stack","writable","writeHead","BaseAPI","axios","constructor","this","checkAuth","assign","accept","maxRedirects","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","downloadPageAssets","withCredentials","responseType","data","uploadPageAssets","file","formData","FormData","File","assetFile","append","post","Referer","getUri","downloadTemplateAssets","uploadTemplateAssets","AssetsV7API","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","internalPageName","create","PageTemplateAPI","internal_name","page_templates","page_template","TEMPLATE_PAGE_NAME","MiAPI","pageTemplate","pageTitle","pageVars","v7Features","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","Promise","resolve","defaults","httpsAgent","Agent","rejectUnauthorized","isTemplateLoaded","clearHeaders","obj","undefined","keys","key","authorization","updateHeaders","localTemplateHTML","getPageTemplate","red","template_id","find","p","yellow","enabled","visible_in_homepage","getPageVariables","pageId","tags","template","parsed","parse","reason","status","buildPage","miHudLess","result","v","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","head","title","text","serialize","getAssets","pageInfo","templateInfo","updateAssets","assets","cleanup","normalizedHeaders","ClientService","server","eventMap","onInfoDataRequest","bind","onTemplateSync","init","ws","event","handler","send","distService","config","clientInjectionPlugin","canSync","currentAssets","isAxiosError","refresh","cause","code","newAssets","saveBackupAndBuild","buildNewAssets","Buffer","updateResult","backupMeta","getBackupMeta","lastBackupName","backupFilename","lastBackupHash","currentHash","lastBackupDate","backupDate","Date","toISOString","syncedAt","cache","memoryCache","Cache","testCacheUrlRegExp","initProxyCache","ttl","next","originalUrl","cacheItem","header","write","buffer","from","encoding","callback","hasHeader","concat","call","chunk","cb","isBuffer","put","getHeaders","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","dirname","__filename","fileURLToPath","require","pathToFileURL","_documentCurrentScript","tagName","toUpperCase","src","baseURI","pluginPath","node_modules_path","metaDirPath","metaFilePath","DistService","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","syncOptions","process","cwd","date","syncMeta","checkMeta","fs","promises","stat","mkdir","readMetaFile","readFile","writeMetaFile","meta","writeFile","getLatestSavedBackup","backupPath","backupName","saveBackup","backupFile","slice","backupFileHash","crypto","createHash","update","digest","filename","finally","buildCommand","reject","cyan","proc","child_process","spawn","env","NODE_ENV","stdio","msg","console","initRewriteResponse","predicate","rewrite","buffers","push","contentEncoding","unzipSync","brotliDecompressSync","deflateSync","decodeContent","bufferEncoding","endCallback","gzipSync","brotliCompressSync","inflateSync","encodeContent","initPPRedirect","base","templateName","baseWithoutTrailingSlash","endsWith","parsedUrl","findPaths","redirectUrl","initLoadPPData","applyUrlRegExp","mi","isNeedTemplateLoad","isApplyRequest","encodeURIComponent","internalServer","express","validateConfigValue","validator","isValid","use","urlencoded","extended","validationResult","validations","c","backendBaseURL","appId","proxyCacheTTL","validateConfig","enableProxyCache","imageOptimizer","outDir","distZip","syncBackupsDir","MI_ACCESS_TOKEN","distZipConfig","outFileName","imageOptimizerConfig","options","isFirstRequest","apply","port","validateServerConfig","root","transformIndexHtml","html","ctx","tag","injectTo","children","Math","random","configureServer","lastIndexOf","middlewares","baseUrlHost","miConfig","cacheConfig","validateProxyCacheConfig","proxyPassMiddleware","isIndexRegExp","handleError","Authorization","user","user_id","Token","users","backupDir"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{n as e,v as t}from"./plugin-H4ccpQoX.js";import{normalizePath as n}from"vite";import*as i from"path";import s,{resolve as o}from"path";import*as a from"fs";import{readFileSync as r,readdirSync as p,writeFileSync as c,unlink as l}from"fs";import{fileURLToPath as f,pathToFileURL as m}from"url";import{compile as g}from"ejs";import{build as d}from"esbuild";const u=o("undefined"!=typeof __filename&&__filename||f(import.meta.url),"../../.."),v=o(u,"dist/client/client.js"),{version:j,name:y}=JSON.parse(r(o(u,"package.json")).toString()),w=j,b=y,h=[".pp-watch.config.js",".pp-watch.config.ts",".pp-watch.config.json"],$=[".pp-dev.config.js",".pp-dev.config.cjs",".pp-dev.config.mjs",".pp-dev.config.ts",".pp-dev.config.cts",".pp-dev.config.mts",".pp-dev.config.json","pp-dev.config.js","pp-dev.config.cjs","pp-dev.config.mjs","pp-dev.config.ts","pp-dev.config.cts","pp-dev.config.mts","pp-dev.config.json"],S=i.dirname("undefined"!=typeof __filename&&__filename||f(new URL(".",import.meta.url))),O=`/${b}/client`,L=`/${O}`;function D(e){const t=a.readFileSync(i.resolve(S,"client","index.html"),{encoding:"utf8",flag:"r"});let s,o="",r=!1;return{name:"pp-dev:client",apply:"serve",config:e=>(e.optimizeDeps?.exclude?.push(`${b}/client`),e),resolveId(e){const t=new RegExp(`^\\/?${b}\\/client\\/(.*)$`);if(t.test(e))return{id:n(i.join(u,"dist/client",e.replace(t,"$1")))}},transformIndexHtml:async(e,n)=>{n.server?.config.base&&o!==n.server?.config.base&&(o=n.server.config.base,r=!0);const a={html:e,tags:[{tag:"link",injectTo:"head",attrs:{rel:"stylesheet",href:i.posix.join(o,b,"client/client.css")}}]},{backendBaseURL:p,templateLess:c,portalPageId:l,canSync:f=!0}=n.server?.config.clientInjectionPlugin||{};return s&&!r||(s=g(t.replace(new RegExp(`${L}`,"g"),i.posix.join(o,O)),{openDelimiter:"{",closeDelimiter:"}",async:!0})),a.tags.push({tag:"div",injectTo:"body-prepend",children:await(s?.({PACKAGE_NAME:b,VERSION:w,backendBaseURL:p,templateLess:c,portalPageId:l,canSync:f}))}),a.tags.push({tag:"script",injectTo:"body-prepend",attrs:{src:i.posix.join(o,b,"client/client.js"),type:"module"}}),r=!1,a},configureServer(e){e.config.server?.fs?.allow?.push(n(i.resolve(e.config.root,i.dirname(v))))}}}const I=(e,t)=>` * ${t}`;function R(e){return`/*!\n${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,I)}\n */`}async function E(e){const t=process.cwd();let n=!1;if(/\.m[jt]s$/.test(e))n=!0;else if(/\.c[jt]s$/.test(e))n=!1;else try{const e=process.cwd(),t=r(s.resolve(e,"package.json"),{encoding:"utf-8",flag:"r"});n=!!t&&"module"===JSON.parse(t).type}catch(e){}const i=await d({absWorkingDir:t,entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,format:n?"esm":"cjs",mainFields:["main"],sourcemap:"inline",metafile:!0}),{text:o}=i.outputFiles[0],a=`${`pp-config.timestamp-${Date.now()}-${Math.random().toString(16).slice(2)}`}.js`,p=m(s.resolve(t,a)).toString();c(a,o);let f={};try{const e=(await import(p)).default;f=e?.default||e}finally{l(a,(()=>{}))}return f}async function P(e){return(await import(m(e).toString())).default}async function N(e){return JSON.parse(r(e,{encoding:"utf-8"}))}async function k(e,t){for(const n of t)if(e.includes(n)){if(/\.[cm]?ts$/i.test(n))return await E(n);if(/\.[cm]?js$/i.test(n))return await P(s.resolve(".",n));if(n.endsWith(".json"))return await N(s.resolve(".",n))}return null}function x(){const e=process.cwd();try{return JSON.parse(r(s.resolve(e,"package.json"),{encoding:"utf-8",flag:"r"}))}catch{return{}}}async function _(){const e=/\.config\.(([cm]?ts)|([cm]?js)|(json))$/,t=process.cwd(),n=p(t,{withFileTypes:!0}).filter((t=>t.isFile()&&e.test(t.name))).map((e=>e.name));let i={},s=!1;const o=await k(n,$);if(o&&(i=o,s=!0),n.length&&!s){const e=await k(n,h);e&&(i={backendBaseURL:e.baseURL,portalPageId:e.portalPageId},s=!0)}const a=x();return s||"object"!=typeof a["pp-dev"]||(i=a["pp-dev"]),i}async function C(){const n=x().name,i=await _(),s=e(Object.assign(i,{templateName:n})),o=[t(s),D()],{outDir:a,distZip:r,imageOptimizer:p,templateLess:c}=s;if(p){const{ViteImageOptimizer:e}=await import("vite-plugin-image-optimizer");o.push(e("object"==typeof p?p:void 0))}if(r){const{default:e}=await import("vite-plugin-zip-pack");o.push({...e("object"==typeof r?r:{outFileName:`${n}.zip`}),enforce:"post"})}return{base:c?`/p/${n}`:`/pt/${n}`,server:{port:3e3},build:{minify:!1,assetsInlineLimit:4096,rollupOptions:{output:{banner:R}},outDir:a},css:{modules:{localsConvention:"dashes"},scss:{api:"modern"}},ppDevConfig:s,plugins:o}}function T(e,t){return async(n,i={})=>{const{PHASE_DEVELOPMENT_SERVER:s}=await import("next/constants.js"),o=await _(),a=x().name,r="function"==typeof e?await e(n,i):e;if(n===s){const e=Object.assign(o,t),{templateLess:n}=e;return Object.assign({basePath:n?`/p/${a}`:`/pt/${a}`,trailingSlash:!0},r,{serverRuntimeConfig:{templateName:a,ppDevConfig:e},publicRuntimeConfig:{templateName:a,ppDevConfig:{backendBaseURL:e.backendBaseURL,portalPageId:e.portalPageId,templateLess:e.templateLess}}})}return Object.assign({basePath:`/pt/${a}`},r)}}export{w as V,C as g,T as w};
2
- //# sourceMappingURL=index-kmS_-y6Z.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-kmS_-y6Z.js","sources":["../../../src/constants.ts","../../../src/plugins/client-injection-plugin.ts","../../../src/banner/header.ts","../../../src/config.ts","../../../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["PP_DEV_PACKAGE_DIR","resolve","__filename","fileURLToPath","url","PP_DEV_CLIENT_ENTRY","version","name","JSON","parse","readFileSync","toString","VERSION","PACKAGE_NAME","PP_WATCH_CONFIG_NAMES","PP_DEV_CONFIG_NAMES","DIRNAME","path","dirname","URL","PACKAGE_IMPORT","CLIENT_PATH","clientInjectionPlugin","opts","clientPanelTpl","fs","encoding","flag","render","base","baseChanged","apply","config","optimizeDeps","exclude","push","resolveId","source","pkgRegExp","RegExp","test","id","normalizePath","join","replace","transformIndexHtml","async","html","ctx","server","result","tags","tag","injectTo","attrs","rel","href","posix","backendBaseURL","templateLess","portalPageId","canSync","compile","openDelimiter","closeDelimiter","children","src","type","configureServer","allow","root","replacer","substring","$1","header","chunk","loadTsConfig","filePath","cwd","process","isESM","pkg","e","build","absWorkingDir","entryPoints","outfile","write","target","platform","bundle","format","mainFields","sourcemap","metafile","text","code","outputFiles","fileNameTmp","Date","now","Math","random","slice","fileUrl","pathToFileURL","writeFileSync","conf","import","default","unlink","loadJsConfig","loadJSONConfig","loadConfig","dirFiles","configNames","configName","includes","endsWith","getPkg","getConfig","endsWithRegExp","dirContent","readdirSync","withFileTypes","filter","value","isFile","map","configFound","newConfig","length","watchConfig","baseURL","getViteConfig","templateName","ppDevConfig","normalizedPPDevConfig","normalizeVitePPDevConfig","Object","assign","plugins","vitePPDev","outDir","distZip","imageOptimizer","ViteImageOptimizer","undefined","zipPack","outFileName","enforce","port","minify","assetsInlineLimit","rollupOptions","output","banner","css","modules","localsConvention","scss","api","withPPDev","nextjsConfig","phase","nextConfig","PHASE_DEVELOPMENT_SERVER","nextConfiguration","devConfig","basePath","trailingSlash","serverRuntimeConfig","publicRuntimeConfig"],"mappings":"0WAIO,MAAMA,EAAqBC,EAET,oBAAfC,YAA8BA,YAAeC,cAA0BC,KAC/E,YAGWC,EAAsBJ,EAAQD,EAAoB,0BAEzDM,QAAEA,EAAOC,KAAEA,GAASC,KAAKC,MAAMC,EAAaT,EAAQD,EAAoB,iBAAiBW,YAElFC,EAAUN,EACVO,EAAeN,EAEfO,EAAwB,CAAC,sBAAuB,sBAAuB,yBAEvEC,EAAsB,CACjC,oBACA,qBACA,qBACA,oBACA,qBACA,qBACA,sBACA,mBACA,oBACA,oBACA,mBACA,oBACA,oBACA,sBCZIC,EAAUC,EAAKC,QACI,oBAAfhB,YAA8BA,YAAeC,EAAc,IAAIgB,IAAI,gBAAiBf,OAGxFgB,EAAiB,IAAIP,WACrBQ,EAAc,IAAID,IAElB,SAAUE,EAAsBC,GACpC,MAAMC,EAAiBC,EAAGf,aAAaO,EAAKhB,QAAQe,EAAS,SAAU,cAAe,CACpFU,SAAU,OACVC,KAAM,MAGR,IAAIC,EACAC,EAAO,GACPC,GAAc,EAElB,MAAO,CACLvB,KAAM,gBACNwB,MAAO,QACPC,OAASA,IACPA,EAAOC,cAAcC,SAASC,KAAK,GAAGtB,YAE/BmB,GAET,SAAAI,CAAUC,GACR,MAAMC,EAAY,IAAIC,OAAO,QAAQ1B,sBAErC,GAAIyB,EAAUE,KAAKH,GACjB,MAAO,CACLI,GAAIC,EAAczB,EAAK0B,KAAK3C,EAAoB,cAAeqC,EAAOO,QAAQN,EAAW,QAG9F,EACDO,mBAAoBC,MAAOC,EAAMC,KAC3BA,EAAIC,QAAQjB,OAAOH,MAAQA,IAASmB,EAAIC,QAAQjB,OAAOH,OACzDA,EAAOmB,EAAIC,OAAOjB,OAAOH,KACzBC,GAAc,GAGhB,MAAMoB,EAAmC,CACvCH,OACAI,KAAM,CACJ,CACEC,IAAK,OACLC,SAAU,OACVC,MAAO,CAAEC,IAAK,aAAcC,KAAMvC,EAAKwC,MAAMd,KAAKd,EAAMhB,EAAc,0BAKtE6C,eACJA,EAAcC,aACdA,EAAYC,aACZA,EAAYC,QACZA,GAAU,GACAb,EAAIC,QAAQjB,OAAOV,uBAAyB,CAAE,EAuB1D,OArBKM,IAAUE,IACbF,EAASkC,EACPtC,EAAeoB,QAAQ,IAAIL,OAAO,GAAGlB,IAAe,KAAMJ,EAAKwC,MAAMd,KAAKd,EAAMT,IAChF,CAAE2C,cAAe,IAAKC,eAAgB,IAAKlB,OAAO,KAItDI,EAAOC,KAAKhB,KAAK,CACfiB,IAAK,MACLC,SAAU,eACVY,eAAgBrC,IAAS,CAAEf,eAAcD,UAAS8C,iBAAgBC,eAAcC,eAAcC,eAGhGX,EAAOC,KAAKhB,KAAK,CACfiB,IAAK,SACLC,SAAU,eACVC,MAAO,CAAEY,IAAKjD,EAAKwC,MAAMd,KAAKd,EAAMhB,EAAc,oBAAqBsD,KAAM,YAG/ErC,GAAc,EAEPoB,CAAM,EAEf,eAAAkB,CAAgBnB,GACdA,EAAOjB,OAAOiB,QAAQxB,IAAI4C,OAAOlC,KAC/BO,EAAczB,EAAKhB,QAAQgD,EAAOjB,OAAOsC,KAAMrD,EAAKC,QAAQb,KAE/D,EAEL,CC1GA,MAIMkE,EAAW,CAACC,EAAmBC,IAAe,MAAYA,IAElD,SAAAC,EAAWC,GAIvB,MAAO,QAHS,0DAGU/B,QAAQ,WAAY2B,SAChD,CCHAzB,eAAe8B,EAA+BC,GAC5C,MAAMC,EAAMC,QAAQD,MAEpB,IAAIE,GAAQ,EACZ,GAAI,YAAYxC,KAAKqC,GACnBG,GAAQ,OACH,GAAI,YAAYxC,KAAKqC,GAC1BG,GAAQ,OAGR,IACE,MAAMF,EAAMC,QAAQD,MACdG,EAAMvE,EAAaO,EAAKhB,QAAQ6E,EAAK,gBAAiB,CAC1DpD,SAAU,QACVC,KAAM,MAGRqD,IAAUC,GAAgC,WAAzBzE,KAAKC,MAAMwE,GAAKd,KACjC,MAAOe,IAKX,MAAMhC,QAAeiC,EAAM,CACzBC,cAAeN,EACfO,YAAa,CAACR,GACdS,QAAS,SACTC,OAAO,EACPC,OAAQ,CAAC,YAAa,UACtBC,SAAU,OACVC,QAAQ,EACRC,OAAQX,EAAQ,MAAQ,MACxBY,WAAY,CAAC,QACbC,UAAW,SACXC,UAAU,KAGJC,KAAMC,GAAS9C,EAAO+C,YAAY,GAIpCC,EAAc,GAFH,uBAAuBC,KAAKC,SAASC,KAAKC,SAAS3F,SAAS,IAAI4F,MAAM,UAGjFC,EAAUC,EAAcxF,EAAKhB,QAAQ6E,EAAKoB,IAAcvF,WAE9D+F,EAAcR,EAAaF,GAE3B,IAAIhE,EAAY,CAAO,EAEvB,IACE,MAAM2E,SAAcC,OAAOJ,IAAUK,QAErC7E,EAAS2E,GAAME,SAAWF,EAClB,QACRG,EAAOZ,GAAa,SAKtB,OAAOlE,CACT,CAEAc,eAAeiE,EAA+BlC,GAC5C,aAAc+B,OAAOH,EAAc5B,GAAUlE,aAAakG,OAC5D,CAEA/D,eAAekE,EAAiCnC,GAC9C,OAAOrE,KAAKC,MAAMC,EAAamE,EAAU,CAAEnD,SAAU,UACvD,CAEAoB,eAAemE,EAA6BC,EAAoBC,GAC9D,IAAK,MAAMC,KAAcD,EACvB,GAAID,EAASG,SAASD,GAAa,CACjC,GAAI,cAAc5E,KAAK4E,GACrB,aAAcxC,EAAawC,GACtB,GAAI,cAAc5E,KAAK4E,GAC5B,aAAcL,EAAa9F,EAAKhB,QAAQ,IAAKmH,IACxC,GAAIA,EAAWE,SAAS,SAC7B,aAAcN,EAAe/F,EAAKhB,QAAQ,IAAKmH,IAKrD,OAAO,IACT,UAEgBG,IACd,MAAMzC,EAAMC,QAAQD,MAEpB,IACE,OAAOtE,KAAKC,MACVC,EAAaO,EAAKhB,QAAQ6E,EAAK,gBAAiB,CAC9CpD,SAAU,QACVC,KAAM,OAGV,MACA,MAAO,CAAE,EAEb,CAEOmB,eAAe0E,IACpB,MAAMC,EAAiB,0CACjB3C,EAAMC,QAAQD,MACd4C,EAAaC,EAAY7C,EAAK,CAAE8C,eAAe,IAClDC,QAAQC,GAAUA,EAAMC,UAAYN,EAAejF,KAAKsF,EAAMvH,QAC9DyH,KAAKF,GAAUA,EAAMvH,OAExB,IAAIyB,EAAsB,CAAE,EACxBiG,GAAc,EAElB,MAAMC,QAAkBjB,EAAwBS,EAAY3G,GAO5D,GALImH,IACFlG,EAASkG,EACTD,GAAc,GAGZP,EAAWS,SACRF,EAAa,CAChB,MAAMG,QAAoBnB,EAA0BS,EAAY5G,GAE5DsH,IACFpG,EAAS,CACP0B,eAAgB0E,EAAYC,QAC5BzE,aAAcwE,EAAYxE,cAG5BqE,GAAc,GAKpB,MAAMhD,EAAMsC,IAMZ,OAJKU,GAAwC,iBAAlBhD,EAAI,YAC7BjD,EAASiD,EAAI,WAGRjD,CACT,CCnIOc,eAAewF,IACpB,MAEMC,EAFMhB,IAEahH,KAEnBiI,QAAoBhB,IACpBiB,EAAwBC,EAAyBC,OAAOC,OAAOJ,EAAa,CAAED,kBAE9EM,EAAmC,CAACC,EAAUL,GAAwBnH,MAEtEyH,OAAEA,EAAMC,QAAEA,EAAOC,eAAEA,EAActF,aAAEA,GAAiB8E,EAE1D,GAAIQ,EAAgB,CAClB,MAAMC,mBAAEA,SAA6BtC,OAAO,+BAE5CiC,EAAQ1G,KAAK+G,EAA6C,iBAAnBD,EAA8BA,OAAiBE,IAGxF,GAAIH,EAAS,CACX,MAAQnC,QAASuC,SAAkBxC,OAAO,wBAE1CiC,EAAQ1G,KAAK,IACRiH,EACkB,iBAAZJ,EACHA,EACA,CACEK,YAAa,GAAGd,UAGxBe,QAAS,SAIb,MAAO,CACLzH,KAAM8B,EAAe,MAAqB4E,IAAiB,OAAyBA,IACpFtF,OAAQ,CACNsG,KAAM,KAERpE,MAAO,CACLqE,QAAQ,EACRC,kBAAmB,KACnBC,cAAe,CACbC,OAAQ,CACNC,OAAQlF,IAGZqE,UAEFc,IAAK,CACHC,QAAS,CAAEC,iBAAkB,UAC7BC,KAAM,CACJC,IAAK,WAGTzB,YAAaC,EACbI,UAEJ,CAEgB,SAAAqB,EACdC,EAGA3B,GAEA,OAAO1F,MAAOsH,EAAeC,EAAsC,MACjE,MAAMC,yBAAEA,SAAmC1D,OAAO,qBAE5C5E,QAAewF,IAEfe,EADMhB,IACahH,KACnBgK,EAA4C,mBAAjBJ,QAAoCA,EAAaC,EAAOC,GAAcF,EAEvG,GAAIC,IAAUE,EAA0B,CACtC,MAAME,EAAY7B,OAAOC,OAAO5G,EAAQwG,IAElC7E,aAAEA,GAAiB6G,EAEzB,OAAO7B,OAAOC,OACZ,CAAE6B,SAAU9G,EAAe,MAAM4E,IAAiB,OAAOA,IAAgBmC,eAAe,GACxFH,EACA,CACEI,oBAAqB,CACnBpC,eACAC,YAAagC,GAEfI,oBAAqB,CACnBrC,eACAC,YAAa,CACX9E,eAAgB8G,EAAU9G,eAC1BE,aAAc4G,EAAU5G,aACxBD,aAAc6G,EAAU7G,iBAOlC,OAAOgF,OAAOC,OAAO,CAAE6B,SAAU,OAAOlC,KAAgCgC,EAAkB,CAE9F"}
@@ -1,2 +0,0 @@
1
- import{createProxyMiddleware as e,responseInterceptor as t}from"http-proxy-middleware";import{fileURLToPath as a,URL as r}from"url";import{createLogger as s}from"vite";import{createColors as i}from"picocolors";import n,{isAxiosError as o}from"axios";import{JSDOM as p}from"jsdom";import{Agent as l}from"https";import*as c from"memory-cache";import*as d from"path";import{promises as h}from"fs";import*as u from"crypto";import*as g from"process";import*as m from"child_process";import*as f from"console";import{deflateSync as w,brotliDecompressSync as y,unzipSync as v,inflateSync as b,brotliCompressSync as k,gzipSync as T}from"zlib";import x from"express";const P=(e,t,a)=>{const r=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return a.replace(r,((e,...a)=>e.startsWith("!!")?a[1]:`http${a[2]}${t}`))},A=(e,t,a)=>{e.setHeader("location",t),e.statusCode=a,e.end()};function $(e){return e.split("?")[0]}const L=new Map,I="default",S=(e="info",t=I)=>{if(L.has(t))return L.get(t);if(t===I){const a=s(e);return L.set(t,a),a}const a=s(e);return L.set(t,a),a},E=i(),F=function(){const e=setInterval((function(){if(document.querySelector("#mi-react-root form")){clearInterval(e);const t=document.querySelector("#mi-react-root form"),a=t?.firstChild,r=a.lastChild.cloneNode(!0);r.innerHTML="";const s=r.cloneNode(!0);s.innerText="OR";const i=r.cloneNode(!0),n=document.createElement("div"),o=`\n<style>\n.helper-login-wrapper {\n font-family: Arial, sans-serif;\n color: #222;\n padding: 8px;\n background-color: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #ddd;\n width: 100%;\n max-width: 400px;\n margin: 0 auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.helper-login-wrapper .title {\n font-weight: bold;\n font-size: 18px;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.helper-login-wrapper .control {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.helper-login-wrapper .control input {\n border: 1px solid #ddd;\n /*padding: 12px;*/\n border-radius: 4px;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n height: 26px;\n}\n\n.helper-login-wrapper .control .caption {\n font-size: 12px;\n color: #666;\n text-align: center;\n}\n\n.helper-login-wrapper .footer {\n margin-top: 16px;\n text-align: center;\n}\n\n.helper-login-wrapper .footer .btn.submit {\n background-color: #007bff;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n width: 100%;\n font-size: 14px;\n transition: background-color 0.3s;\n height: 26px;\n}\n\n.helper-login-wrapper .footer .btn.submit:hover {\n background-color: #0056b3;\n}\n\n.helper-login-wrapper .token-type-switcher {\n display: flex;\n border: 1px solid #ccc;\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 12px;\n width: 100%;\n}\n\n.helper-login-wrapper .token-type-option {\n padding: 4px 8px;\n cursor: pointer;\n background-color: #f8f9fa;\n color: #666;\n font-size: 12px;\n text-align: center;\n transition: background-color 0.2s, color 0.2s;\n border-right: 1px solid #ccc;\n flex: 1;\n}\n\n.helper-login-wrapper .token-type-option:last-child {\n border-right: none;\n}\n\n.helper-login-wrapper .token-type-option.active {\n background-color: #007bff;\n color: white;\n font-weight: bold;\n}\n\n.helper-login-wrapper .token-type-option:not(.active):hover {\n background-color: #e9ecef;\n}\n</style>\n<div class="helper-login-wrapper">\n <div class="title">PP Dev Helper</div>\n\n <div class="token-type-switcher" id="token-type-switcher">\n <div class="token-type-option active" data-value="personal">\n API Token\n </div>\n <div class="token-type-option" data-value="regular">\n Legacy Token\n </div>\n </div>\n\n <div class="control">\n <input type="password" id="helper-token" placeholder="API Token">\n <span class="caption" id="token-caption">\n You can get the API Token\n <a href="https://${host}/api-token" target="_blank" style="color: #007bff; text-decoration: none;">here</a>\n </span>\n </div>\n\n <div class="footer">\n <button id="helper-token-submit" class="btn submit">\n Token Login\n </button>\n </div>\n</div>`;n.innerHTML=o,i.appendChild(n),a.appendChild(s),a.appendChild(i);const p=document.getElementById("token-type-switcher"),l=p?.querySelectorAll(".token-type-option"),c=document.getElementById("helper-token"),d=document.getElementById("token-caption"),h={personal:{placeholder:"API Token",caption:`You can get the API Token\n <a href="https://${host}/api-token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`},regular:{placeholder:"Legacy Token",caption:`You can get the Legacy Token\n <a href="https://${host}/api/get_token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`}},u=e=>{const t=h[e];t&&(c.placeholder=t.placeholder,d.innerHTML=t.caption)};u("personal"),l?.forEach((e=>{e.addEventListener("click",(e=>{const t=e.currentTarget,a=t.dataset.value;l.forEach((e=>e.classList.remove("active"))),t.classList.add("active"),u(a)}))})),document.getElementById("helper-token-submit")?.addEventListener("click",(e=>{e.preventDefault();const t=document.getElementById("helper-token");if(t){if(!t.value)return void alert(`${c.placeholder} is required`);const e=t.value,a=p?.querySelector(".token-type-option.active"),r=a?.dataset.value||"personal";fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:r}),redirect:"follow"}).then((async e=>{const t=e.url&&new URL(e.url,window.location.origin);if(!t||t.pathname.startsWith("/login")||t.pathname.startsWith("/@api/"))try{const t=await e.json();alert(`Login failed: ${t?.error}`)}catch(e){alert("Login failed: Unknown error")}else window.location.href=e.url})).catch((()=>{alert("Login failed")}))}}))}}),100)},j=/^(https?:\/\/)([^/]+)(\/.*)?$/i,B="X-PP-Proxy";function O(a){const{rewritePath:r=/^\/(?!pt).*/i,baseURL:s="",devServer:i,disableSSLValidation:n=!1,miAPI:o}=a;if(!s)throw new Error("Base url is required");const p=s.replace(j,"$2"),l=s.replace(j,"$1$2"),c=import("file-type"),d=S();return e({selfHandleResponse:!0,pathFilter:(e,t)=>!(a.proxyIgnore||[]).some((t=>"string"==typeof t?e.startsWith(t):"function"!=typeof t.test||t.test(e)))&&("string"==typeof r?e.startsWith(r):Array.isArray(r)?r.some((t=>e.startsWith(t))):"function"==typeof r.test&&r.test(e)),target:s,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[p]:"localhost"},logger:{info:()=>{},log:()=>{},error:()=>{},warn:()=>{}},secure:!n,headers:{host:p,origin:l},on:{proxyReq(e,t,a){const r=t.headers.host,i=e.getHeader("referer");return d.info(`${E.blue("Proxies request:")} ${E.green(t.method)} ${t.url} -> ${E.green(e.method)} ${e.protocol}//${e.host}${e.path}`),r&&i&&"string"==typeof i&&e.setHeader("referer",i.replace(new RegExp(`https?://${r}`),s)),o.personalAccessToken&&e.setHeader("Authorization",`Bearer ${o.personalAccessToken}`),t.socket.on("close",(()=>{setTimeout((()=>{e.destroyed||e.destroy()}),200)})),e},proxyRes:(e,a,r)=>{if(e.headers["content-type"]?.includes("text/event-stream")||e.headers["transfer-encoding"]?.includes("chunked")&&"no"===e.headers["x-accel-buffering"]){d.info(`${E.blue("Start streaming for request:")} ${E.green(a.method)} ${a.url}`);const t=async(e,t,a)=>{a.setHeader(B,1),a.setHeaders(new Map(Object.entries(e.headers))),e.pipe(a)};return t(e,a,r)}const s=t((async(e,t,a,r)=>{r.setHeader(B,1);if(await(await c).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(a.url??"",`http://${p}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){t+=`<script>(${function(){const e="pp-dev::redirectCount";let t=+(localStorage.getItem(e)??0);Number.isNaN(t)&&(t=0);let a=window.location.href;const r=function(){const s=new URLSearchParams(window.location.search);s.has("proxyRedirect")?a!==window.location.href?(a=window.location.href,setTimeout(r,t<3?3e3:5e3)):(localStorage.setItem(e,""+ ++t),window.location.href=s.get("proxyRedirect")):localStorage.removeItem(e)};setTimeout(r,3e3)}.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(t+=`<script>const host = "${p}";\n(${F.toString()})()<\/script>`)}catch{}const r=a.headers.host??"";return((e,t,a)=>{const r=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),s=new RegExp(`${e}`,"gi"),i=a.replace(r,t);return i===a?i.replace(s,t):i})("/auth/saml/login","/login",P(p,r,t))}}));return s(e,a,r)},error(e,t,a){const r=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;d.error(r),a.writable&&a.writeHead(500,{"Content-Type":"text/plain"}),a.end(r)}}})}class H{axios;constructor(e){this.axios=e}async checkAuth(e){return this.axios.get("/data/page/index/auth/info",{headers:Object.assign({},e,{accept:"text/html"}),maxRedirects:0}).then((()=>!0)).catch((()=>!1))}}class N extends H{formdataModulePromise=import("formdata-node");constructor(e){super(e)}getDownloadUrl(e){return`/admin/page/downloadassets/id/${e}`}getDownloadTemplateUrl(e){return`/admin/pagetemplate/downloadassets/id/${e}`}getUploadUrl(e){return`/admin/page/uploadassets/id/${e}`}getUploadTemplateUrl(e){return`/admin/pagetemplate/uploadassets/id/${e}`}async downloadPageAssets(e,t){return this.axios.get(this.getDownloadUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then((e=>e.data))}async uploadPageAssets(e,t,a){const r=new(await this.formdataModulePromise).FormData,{File:s}=await this.formdataModulePromise,i=new s([t],"file.zip",{type:"application/zip"});r.append("file",i);const n=this.getUploadUrl(e);return this.axios.post(n,r,{withCredentials:!0,headers:Object.assign({},a,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:n})})}).then((e=>e.data))}async downloadTemplateAssets(e,t){return this.axios.get(this.getDownloadTemplateUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then((e=>e.data))}async uploadTemplateAssets(e,t,a){const r=new(await this.formdataModulePromise).FormData,{File:s}=await this.formdataModulePromise,i=new s([t],"file.zip",{type:"application/zip"});r.append("file",i,"file.zip");const n=this.getUploadTemplateUrl(e);return this.axios.post(n,r,{withCredentials:!0,headers:Object.assign({},a,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:n})})}).then((e=>e.data))}}class C extends N{getDownloadUrl(e){return`/api/page/id/${e}/asset/download`}getDownloadTemplateUrl(e){return`/api/page_template/id/${e}/asset/download`}getUploadUrl(e){return`/api/page/id/${e}/asset/upload`}getUploadTemplateUrl(e){return`/api/page_template/id/${e}/asset/upload`}}class M extends H{async getAll(e){return(await this.axios.get("/api/page",{withCredentials:!0,headers:Object.assign({},e,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"})})).data.pages}async get(e,t){return(await this.axios.get(`/api/page/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page}async getPageContent(e,t){return(await this.axios.get(`/p/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"text/html","content-type":"application/json"})})).data}async create(e,t){return(await this.axios.post("/api/page",e,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page}}class R extends H{async getAll(e,t){return(await this.axios.get("/api/page_template",{withCredentials:!0,headers:Object.assign({},t,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"}),params:{internal_name:e}})).data.page_templates}async get(e,t){return(await this.axios.get(`/api/page_template/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page_template}}const D="[DEV PAGE. DO NOT DELETE]";class V{#e;#t;#a=null;#r;#s;#i;#n;#o;#p;#l;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:a={},portalPageId:r,templateLess:s=!0,disableSSLValidation:i=!1,v7Features:o=!1,personalAccessToken:p}=t||{};this.#e=a,this.#s=[],this.#r="",this.#i=o,this.#n=p,this.#o=!1,this.#p=Promise.resolve(!1),i&&(n.defaults.httpsAgent=new l({rejectUnauthorized:!1})),this.#t=n.create({baseURL:e,headers:a}),this.portalPageId=r,this.templateLess=s,this.assetsApi=new(o?C:N)(this.#t),this.pageApi=new M(this.#t),this.pageTemplateApi=new R(this.#t),this.logger=S()}async isTemplateLoaded(){return this.#p}get isV710OrHigher(){return this.#o}#c(e){const t=Object.assign({},e,{host:void 0,referer:void 0});return Object.keys(t).forEach((e=>void 0===t[e]&&delete t[e])),this.#e=t,!t.authorization&&this.#n&&(t.authorization=`Bearer ${this.#n}`),t}get personalAccessToken(){return this.#n}set personalAccessToken(e){this.#n=e}updateHeaders(e){this.#c(e)}get localTemplateHTML(){return'<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8" />\n <title>Local template</title>\n <meta charset="UTF-8" />\n <link rel="icon" type="image/svg+xml" href="/favicon.ico" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n </head>\n <body>\n <div id="mi-react-root"></div>\n <script src="/auth/info.js"><\/script>\n <script src="/js/main.js" defer><\/script>\n <link rel="stylesheet" href="/css/main.css" />\n </body>\n </html>'}async getPageTemplate(e){if(await this.#p||this.#a||(this.#p=new Promise((e=>{this.#l=e}))),this.#a)return Promise.resolve(this.#a);if(void 0===this.templateLess&&(this.templateLess=!1),this.#i){return void 0!==(await this.pageApi.get(this.portalPageId,this.#c(e)).then((e=>(this.logger.info(E.green("Page fetched")),e))).catch((async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#c(e))?(this.logger.error(E.red(`Error fetching page data: ${t.message}\n${t.stack}`)),new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.")):t}))).template_id&&(this.#o=!0),this.#a=this.localTemplateHTML,this.logger.info(E.green("Local page template fetched")),this.#l(!0),this.#a}let t=(await this.pageApi.getAll(this.#c(e)).then((e=>(this.logger.info(E.green("Page list fetched")),e))).catch((async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#c(e))?(this.logger.error(E.red(`Error fetching page list: ${t.message}\n${t.stack}`)),new Error("Current user does not have access to page list")):t}))).find((e=>e.name===D));return t||(this.logger.warn(E.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:D,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#c(e)).then((e=>(this.logger.info(E.green("Dev page created")),e))).catch((e=>{throw this.logger.error(E.red(`Error creating dev page: ${e.message}`)),this.#l(!1),new Error(`Error when creating dev page.\n That can be caused by missing permissions or page with name "${D}" already exists`)}))),await this.pageApi.getPageContent(t.internal_name,this.#c(e)).then((e=>(this.#a=e,e))).then((e=>(this.#l(!0),this.logger.info(E.green("Page template fetched")),e))).catch((e=>{throw this.#l(!1),this.logger.error(E.red(`Error fetching page template: ${e.message}`)),new Error("Error fetching page template")}))}async getPageVariables(e,t){return this.#a=await this.getPageTemplate(t),this.portalPageId||(this.portalPageId=e,this.templateLess=!1),await this.pageApi.get(e,this.#c(t)).then((e=>{const{tags:t="[]",name:a,template:r}=e;if(r&&t){const e=JSON.parse(t);return this.#s=e,this.#r=a,e}return this.#s=[],this.#r=a,[]})).catch((t=>{if(this.logger.error(E.red(`Error fetching page variables: ${t.message}`)),404===t.response?.status)throw new Error(`Portal Page with id "${e}" not found on instance ${this.#t.getUri()}`);if(401===t.response?.status)throw new Error(`Current user does not have access to page with id "${e}" on instance ${this.#t.getUri()}`);throw t}))}buildPage(e,t=!1){let a="string"==typeof e?e:e.toString("utf-8");for(const e of this.#s)a=a.replace(new RegExp(`\\[${e.name}\\]`,"g"),e.value);const r=new p(t?a:this.#a),s="%%PLACEHOLDER%%";if(!t){const e=r.window.document.createElement("div");e.innerHTML=s;const t=r.window.document.querySelector(".main-side");if(t){const a=t.querySelectorAll("script");a.length?t.insertBefore(e,a.item(a.length-1)):t.append(e)}else{const t=r.window.document.createElement("div");t.append(e),r.window.document.body.append(t)}const a=r.window.document.querySelector("head"),i=a.querySelector("title");i?i.text=this.#r:a.innerHTML+=`<title>${this.#r}</title>`}return r.serialize().replace(new RegExp(`<div>\\s*${s}\\s*<\\/div>`,"i"),a)}async getAssets(){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.downloadPageAssets(this.portalPageId,this.#e);{const e=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const t=await this.pageTemplateApi.get(e.template_id,this.#e);return await this.assetsApi.downloadTemplateAssets(t.id,this.#e)}if(e.template)return await this.assetsApi.downloadTemplateAssets(e.template,this.#e)}}}async updateAssets(e){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.uploadPageAssets(this.portalPageId,e,this.#e);{const t=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const a=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(a.id,e,this.#e)}if(t.template)return await this.assetsApi.uploadTemplateAssets(t.template,e,this.#e)}}}async get(e,t,a=!1){const r=a?t:Object.assign({},this.#c(this.#e),t);return await this.#t.get(e,{headers:r})}}class U{server;opts;eventMap;logger;constructor(e,t){this.server=e,this.opts=t||{},this.eventMap=new Map,this.eventMap.set("info-data:request",this.onInfoDataRequest.bind(this)),this.eventMap.set("template:sync",this.onTemplateSync.bind(this)),this.logger=S(),this.init()}init(){const{ws:e}=this.server;for(const[t,a]of this.eventMap)e.on(t,a)}onInfoDataRequest(){this.server.ws.send({type:"custom",event:"info-data:response",data:{}})}async onTemplateSync(){if(!this.opts.distService||!this.opts.miAPI)return this.server.ws.send("template:sync:response",{error:"Dist service or MiAPI is not defined"}),void this.logger.error(E.red("Dist service or MiAPI is not defined"));{const{distService:e,miAPI:t}=this.opts;if(this.server.config.clientInjectionPlugin?.v7Features){if(!t?.isV710OrHigher)return void this.server.ws.send("template:sync:response",{error:"This feature is available only for MI v7.1.0 or higher",config:{canSync:!1}});this.server.ws.send("client:config:update",{config:{canSync:!0}})}const a=await(t?.getAssets().catch((e=>{if(o(e)){if(412===e.response?.status)return this.logger.info(E.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",refresh:!0}),e;if(e.cause instanceof Error&&("ECONNRESET"===e.cause.code||"ENOTFOUND"===e.cause.code))return this.logger.info(E.yellow("Server in maintenance mode, VPN connection is needed or no internet connection")),this.server.ws.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection"}),e}throw e})));if(a instanceof Error)return;const r=a?await(e?.saveBackupAndBuild(a).catch((e=>{if("Backup file is not a ZIP file"===e.message)return this.logger.error(E.red("Backup file is not a ZIP file")),e}))):await(e?.buildNewAssets());if(!(r&&r instanceof Buffer))return r instanceof Error?(this.server.ws.send("template:sync:response",{error:r.message}),void this.logger.error(E.red(r.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(E.red("Failed to build new assets")));{const a=await(t?.updateAssets(r));if("OK"===a?.status){const t=e?.getBackupMeta(),{lastBackupName:a,lastBackupHash:r,lastBackupDate:s}=t||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};this.server.ws.send("template:sync:response",{syncedAt:new Date(s),currentHash:r,backupFilename:a}),this.logger.info(E.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(E.red("Failed to update assets"))}}}}const z=new c.Cache,_=/\.[a-z0-9]+$/i;function q(e){const{devServer:t,ttl:a=6e5}=e,r=S();return t.cache=z,(e,t,s)=>{const i=e.originalUrl||e.url||"";if(_.test(i.split("?")[0]||"")){const s=z.get(i);if(s){r.info(`${E.blue("Proxies request:")} ${E.green(e.method)} ${i} -> ${E.blue("Cache")} ${i}`);for(const[e,a]of Object.entries(s.headers))t.setHeader(e,a);return t.write(s.content),void t.end()}const n=t.end,o=t.write;let p=Buffer.from("","utf8");t.write=function(e,a,r){return t.hasHeader(B)?(p=Buffer.concat([p,e]),!0):o.call(this,e,a,r)},t.end=function(e,s,o){if(!t.hasHeader(B))return n.call(this,e,s,o);"string"==typeof e&&(p=Buffer.concat([p,Buffer.from(e,s)])),Buffer.isBuffer(e)&&(p=Buffer.concat([p,e])),t.hasHeader(B)&&(r.info(`${E.blue("[Cached]")} ${i}`),z.put(i,{headers:t.getHeaders(),content:p},a)),n.call(this,p,s,o)}}s()}}const Z="pageName",W="date",Y=d.dirname("undefined"!=typeof __filename&&__filename||a(import.meta.url)),J=d.resolve(Y,"..",".."),K=d.resolve(J,"..",".."),G=d.resolve(K,".pp-dev-meta"),X=d.resolve(G,"sync-service.meta.json");class Q{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;logger;constructor(e,t){this.pageName=e;const{backupFolder:a=d.resolve(g.cwd(),"backups"),distZipFolder:r=d.resolve(g.cwd(),"dist-zip"),distZipFilename:s=`${this.pageName}.zip`,backupNameTemplate:i=`{${Z}}-{${W}}.zip`,dateFormat:n=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,"")}=t||{};this.backupFolder=a,this.backupNameTemplate=i,this.dateFormat=n,this.distZipFolder=r,this.distZipFilename=s,this.syncMeta(),this.logger=S()}async checkMeta(){try{await h.stat(G)}catch{await h.mkdir(G)}try{await h.stat(this.backupFolder)}catch{await h.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await h.readFile(X,{encoding:"utf-8"}).catch((()=>"{}"))}async writeMetaFile(e){return await this.checkMeta(),await h.writeFile(X,JSON.stringify(e,null,2),{encoding:"utf-8"})}async syncMeta(){this.currentMeta?await this.writeMetaFile(this.currentMeta):this.currentMeta=JSON.parse(await this.readMetaFile())}async getLatestSavedBackup(){const{lastBackupName:e}=this.currentMeta;if(!e)return null;const t=d.resolve(this.backupFolder,e);try{return await h.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${Z}}`,e).replace(`{${W}}`,this.dateFormat(t))}getBackupMeta(){return this.currentMeta}async saveBackup(e){if("PK"!==e.toString("utf-8").slice(0,4))throw new Error("Backup file is not a ZIP file");const t=u.createHash("md5").update(e).digest("hex");if(await this.getLatestSavedBackup()){const{lastBackupHash:e}=this.currentMeta;if(e===t)return}const a=new Date,r=this.backupName(this.pageName,a);return this.currentMeta.lastBackupName=r,this.currentMeta.lastBackupHash=t,this.currentMeta.lastBackupDate=a.toISOString(),await this.syncMeta(),await h.writeFile(d.resolve(this.backupFolder,r),e).finally((()=>{this.logger.info(`Backup saved to ${r}`)}))}async buildNewAssets(){const e=new Promise(((e,t)=>{let a="";this.logger.info(E.cyan("[DistService] Build started"));const r=m.spawn("node",[d.resolve(J,"./bin/pp-dev.js"),"build"],{cwd:g.cwd(),env:Object.assign({},g.env,{NODE_ENV:"production"}),stdio:"inherit"});r.on("message",(e=>{a+=e})),r.on("close",(r=>{0===r?e(a):t(new Error(`build command exited with code ${r}`))})),r.on("error",(e=>{t(e)}))}));try{await e.finally((()=>{this.logger.info(E.cyan("[DistService] Build finished"))}));const t=d.resolve(g.cwd(),this.distZipFolder,this.distZipFilename);if(!await h.stat(t))throw new Error(`File ${t} not found`);return await h.readFile(t)}catch(e){throw f.log(e),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}}function ee(e,t){return async(a,r,s)=>{if(await e(a.url??"",a,r)){S().info(`Rewrite response for ${a.url}`);const e=r.end,s=[];r.write=function(e){return s.push(e),!0},r.end=function(i,n,o){"string"==typeof i&&s.push(Buffer.from(i));const p=r.getHeader("content-encoding"),l=function(e,t){switch(t){case"gzip":return v(e);case"br":return y(e);case"deflate":return w(e);default:return e}}(Buffer.from(Buffer.concat(s)),p),c="function"!=typeof n&&n?n:"utf-8",d="function"==typeof n?n:o;return e.call(this,function(e,t){switch(t){case"gzip":return T(e);case"br":return k(e);case"deflate":return b(e);default:return e}}(t(l,a,r),p),c,d),this}}s()}}function te(e,t){const a=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,s=S();return(i,n,o)=>{const p=new r(i.url??"","http://localhost"),{pathname:l,search:c}=p,d=["/",a];if(t&&(d.push(`/pt/${t}`),d.push(`/pl/${t}`)),d.includes(l)){const t=`${e}${c}`;return s.info(E.yellow(`Redirecting to: ${t}`)),A(n,t,302)}o()}}function ae(e,t,a){const{templateLess:r=!1,miHudLess:s=!1,portalPageId:i}=a,n=S();return(a,o,p)=>{const l=!(r&&s),c=e.test($(a.url??""));if(l&&c){const e=a.headers??{};n.info(E.green("Start loading page data"));(r||void 0===i?t.getPageTemplate(e):t.getPageVariables(i,e)).then((()=>{p()})).catch((e=>{if(e.response){n.info(E.red("Page data loading failed. Not authorized"));const e=`/home?proxyRedirect=${encodeURIComponent("/")}`;return n.info(E.yellow(`Redirecting to: ${e}`)),A(o,e,302)}n.info(E.red(`Page data loading failed. Error: ${e.message}`)),p(e)}))}else p()}}const re=x();function se(e,t,a){return t(e)?{isValid:!0}:{isValid:!1,error:a}}function ie(e){const t=function(e){return[se(e,(e=>"object"==typeof e&&null!==e),"VitePPDevOptions must be an object"),se(e.templateName,(e=>"string"==typeof e&&e.length>0),"VitePPDevOptions.templateName must be a non-empty string"),se(e.backendBaseURL,(e=>void 0===e||"string"==typeof e&&e.length>0),"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),se(e.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.portalPageId must be a positive number if provided"),se(e.appId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.appId must be a positive number if provided"),se(e.proxyCacheTTL,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.proxyCacheTTL must be a positive number if provided")].find((e=>!e.isValid))||{isValid:!0}}(e);if(!t.isValid)throw new Error(t.error);const a=e.appId??e.portalPageId,{enableProxyCache:r=!0,proxyCacheTTL:s=6e5,disableSSLValidation:i=!1,imageOptimizer:n=!0,miHudLess:o=!1,templateLess:p=!1,outDir:l="dist",distZip:c=!0,syncBackupsDir:d="backups",v7Features:h=!1,personalAccessToken:u=process.env.MI_ACCESS_TOKEN}=e||{};let g=c;g=!0===g?{outFileName:`${e.templateName}.zip`,outDir:"dist-zip"}:"object"==typeof c&&{outFileName:"string"==typeof c.outFileName?c.outFileName.replace("[templateName]",e.templateName):`${e.templateName}.zip`,outDir:c.outDir??"dist-zip"};let m=n;return"boolean"==typeof n?!0===m&&(m={}):"object"!=typeof n&&(m=!1),{enableProxyCache:r,proxyCacheTTL:s,disableSSLValidation:i,imageOptimizer:m,templateLess:p,miHudLess:o,outDir:l,distZip:g,syncBackupsDir:d,v7Features:h,personalAccessToken:u,portalPageId:a,...e}}function ne(e){const{templateName:t,templateLess:a,backendBaseURL:r,miHudLess:s,portalPageId:i,enableProxyCache:n,proxyCacheTTL:o,disableSSLValidation:p,distZip:l,syncBackupsDir:c,v7Features:d,personalAccessToken:h}=e||{};let u=!0;return process.cwd(),{name:"vite-pp-dev",apply:"serve",config:e=>{const s=function(e){return[se(e.base,(e=>"string"==typeof e&&e.length>0&&"/"!==e),'Server base path cannot be empty or "/"'),se(e.port,(e=>void 0===e||"number"==typeof e&&e>0&&e<65536),"Server port must be a valid port number (1-65535)")].find((e=>!e.isValid))||{isValid:!0}}({base:e.base||"",...e.server});if(!s.isValid)throw new Error(s.error);return e.clientInjectionPlugin={backendBaseURL:r,portalPageId:i,templateLess:a,v7Features:d},d&&(e.base=`/pl/${t}`),e.root&&e.root,e},transformIndexHtml:async(e,t)=>{const a={html:e,tags:[]};return u&&(u=!1,a.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),a},configureServer:u=>{let g=u.config.base;g.endsWith("/")||(g+="/");const m=g.substring(0,g.lastIndexOf("/"));if(u.middlewares.use(te(g,t)),r){const w=new URL(r).host,y={headers:{host:w,referer:r,origin:r.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:i,appId:i,templateLess:a,disableSSLValidation:p,v7Features:d,personalAccessToken:h??process.env.MI_ACCESS_TOKEN},v=[se((f=y).headers,(e=>"object"==typeof e&&"string"==typeof e.host&&"string"==typeof e.referer&&"string"==typeof e.origin),"MiAPI headers must be properly configured"),se(f.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI portalPageId must be a positive number if provided"),se(f.appId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI appId must be a positive number if provided"),se(f.personalAccessToken,(e=>void 0===e||"string"==typeof e),"MiAPI personalAccessToken must be a string if provided")].find((e=>!e.isValid))||{isValid:!0};if(!v.isValid)throw new Error(v.error);const b=new V(r,y);if(n){let e=+o;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:u,ttl:e},a=function(e){return[se(e.ttl,(e=>"number"==typeof e&&e>0),"Proxy cache TTL must be a positive number")].find((e=>!e.isValid))||{isValid:!0}}(t);if(!a.isValid)throw new Error(a.error);u.middlewares.use(q(t))}u.middlewares.use(O({devServer:u,baseURL:r,proxyIgnore:["/@vite","/@metricinsights","/@",m],disableSSLValidation:p,miAPI:b}));const k=new RegExp(`^((${g})|/)$`);u.middlewares.use(ae(k,b,e)),re.post("/@api/login",(async(e,t,a)=>{const{token:r,tokenType:s}=e.body;if(!r)return void t.status(400).json({error:"Token is required"}).end();const i=e=>(u.config.logger.error(e),a(e),null);if("personal"===s){if(!await b.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${r}`},!0).then((async e=>{if("number"==typeof e.data?.user?.user_id)return b.personalAccessToken=r,e;t.status(400).json({error:"Token expired or invalid"}).end()})).catch(i))return;A(t,"/",302)}else if("regular"===s){if(!await b.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:r},!0).then((e=>{if(e.data?.users?.length)return b.personalAccessToken=void 0,t.setHeader("set-cookie",e.headers["set-cookie"]??""),e;t.status(400).json({error:"Token expired or invalid"}).end()})).catch(i))return;A(t,"/",302)}})),u.middlewares.use(re);const T=!1!==l?new Q(t,Object.assign({backupDir:c},"object"==typeof l?{distZipFolder:l.outDir,distZipFilename:l.outFileName}:void 0)):void 0;return new U(u,{distService:T,miAPI:b}),()=>{u.middlewares.use(ee((e=>(console.log("initRewriteResponse.url",e),e.split("?")[0].endsWith("index.html"))),((e,t)=>Buffer.from(P(w,t.headers.host??"",b.buildPage(e,s))))))}}var f}}}re.use(x.json()),re.use(x.urlencoded({extended:!0}));export{V as M,E as a,q as b,S as c,O as d,ae as e,ee as f,re as g,$ as h,te as i,ie as n,A as r,P as u,ne as v};
2
- //# sourceMappingURL=plugin-H4ccpQoX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-H4ccpQoX.js","sources":["../../../src/lib/helpers/url.helper.ts","../../../src/lib/logger.ts","../../../src/lib/helpers/color.helper.ts","../../../src/lib/helpers/login.helper.ts","../../../src/lib/proxy-pass.middleware.ts","../../../src/api/base.ts","../../../src/api/assets.ts","../../../src/api/assets-v7.ts","../../../src/api/page.ts","../../../src/api/page-template.ts","../../../src/lib/pp.middleware.ts","../../../src/lib/client.service.ts","../../../src/lib/proxy-cache.middleware.ts","../../../src/lib/dist.service.ts","../../../src/lib/rewrite-response.middleware.ts","../../../src/lib/helpers/content-encoding.helper.ts","../../../src/lib/pp-redirect.middleware.ts","../../../src/lib/load-pp-data.middleware.ts","../../../src/lib/internal.middleware.ts","../../../src/plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","redirect","res","url","statusCode","setHeader","end","cutUrlParams","split","storage","Map","DEFAULT_LOGGER_KEY","createLogger","level","name","has","get","logger","cL","set","colors","createColors","tokenLoginFunction","readyInterval","setInterval","document","querySelector","clearInterval","$loginForm","$contentWrapper","firstChild","$rowTemplate","lastChild","cloneNode","innerHTML","$orRow","innerText","$helperForm","$formContent","createElement","formHtml","host","appendChild","tokenTypeSwitcher","getElementById","tokenTypeOptions","querySelectorAll","tokenInput","tokenCaption","tokenInfo","personal","placeholder","caption","regular","updateTokenUI","type","info","forEach","option","addEventListener","e","target","currentTarget","value","dataset","opt","classList","remove","add","preventDefault","$helperTokenInput","alert","token","activeOption","tokenType","fetch","method","headers","body","JSON","stringify","then","async","URL","window","location","origin","pathname","json","error","href","catch","hostOriginRegExp","PROXY_HEADER","initProxy","opts","rewritePath","baseURL","devServer","disableSSLValidation","miAPI","Error","fileType","import","createProxyMiddleware","selfHandleResponse","pathFilter","req","proxyIgnore","some","test","Array","isArray","rP","changeOrigin","autoRewrite","cookieDomainRewrite","log","warn","secure","on","proxyReq","referer","getHeader","blue","green","protocol","path","personalAccessToken","socket","setTimeout","destroyed","destroy","proxyRes","serverRes","includes","streamInterceptor","setHeaders","Object","entries","pipe","rewriteInterceptor","responseInterceptor","responseBuffer","fileTypeFromBuffer","response","toString","reqUrl","searchParams","storageKey","redirectCount","localStorage","getItem","Number","isNaN","func","params","URLSearchParams","search","setItem","removeItem","reqHost","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","urlPathReplacer","err","errorMessage","message","stack","writable","writeHead","BaseAPI","axios","constructor","this","checkAuth","assign","accept","maxRedirects","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","downloadPageAssets","withCredentials","responseType","data","uploadPageAssets","file","formData","FormData","File","assetFile","append","post","Referer","getUri","downloadTemplateAssets","uploadTemplateAssets","AssetsV7API","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","internalPageName","create","PageTemplateAPI","internal_name","page_templates","page_template","TEMPLATE_PAGE_NAME","MiAPI","pageTemplate","pageTitle","pageVars","v7Features","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","Promise","resolve","defaults","httpsAgent","Agent","rejectUnauthorized","isTemplateLoaded","clearHeaders","obj","undefined","keys","key","authorization","updateHeaders","localTemplateHTML","getPageTemplate","red","template_id","find","p","yellow","enabled","visible_in_homepage","getPageVariables","pageId","tags","template","parsed","parse","reason","status","buildPage","miHudLess","result","v","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","head","title","text","serialize","getAssets","pageInfo","templateInfo","updateAssets","assets","cleanup","normalizedHeaders","ClientService","server","eventMap","onInfoDataRequest","bind","onTemplateSync","init","ws","event","handler","send","distService","config","clientInjectionPlugin","canSync","currentAssets","isAxiosError","refresh","cause","code","newAssets","saveBackupAndBuild","buildNewAssets","Buffer","updateResult","backupMeta","getBackupMeta","lastBackupName","backupFilename","lastBackupHash","currentHash","lastBackupDate","backupDate","Date","toISOString","syncedAt","cache","memoryCache","Cache","testCacheUrlRegExp","initProxyCache","ttl","next","originalUrl","cacheItem","header","write","buffer","from","encoding","callback","hasHeader","concat","call","chunk","cb","isBuffer","put","getHeaders","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","dirname","__filename","fileURLToPath","pluginPath","node_modules_path","metaDirPath","metaFilePath","DistService","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","syncOptions","process","cwd","date","syncMeta","checkMeta","fs","stat","mkdir","readMetaFile","readFile","writeMetaFile","meta","writeFile","getLatestSavedBackup","backupPath","backupName","saveBackup","backupFile","slice","backupFileHash","crypto","createHash","update","digest","filename","finally","buildCommand","reject","cyan","proc","child_process","spawn","env","NODE_ENV","stdio","msg","console","initRewriteResponse","predicate","rewrite","buffers","push","contentEncoding","unzipSync","brotliDecompressSync","deflateSync","decodeContent","bufferEncoding","endCallback","gzipSync","brotliCompressSync","inflateSync","encodeContent","initPPRedirect","base","templateName","baseWithoutTrailingSlash","endsWith","parsedUrl","findPaths","redirectUrl","initLoadPPData","applyUrlRegExp","mi","isNeedTemplateLoad","isApplyRequest","encodeURIComponent","internalServer","express","validateConfigValue","validator","isValid","normalizeVitePPDevConfig","validationResult","c","backendBaseURL","appId","proxyCacheTTL","validateConfig","enableProxyCache","imageOptimizer","outDir","distZip","syncBackupsDir","MI_ACCESS_TOKEN","distZipConfig","outFileName","imageOptimizerConfig","vitePPDev","options","isFirstRequest","apply","port","validateServerConfig","root","transformIndexHtml","html","ctx","tag","injectTo","children","Math","random","configureServer","lastIndexOf","middlewares","use","baseUrlHost","miConfig","cacheConfig","validateProxyCacheConfig","proxyPassMiddleware","isIndexRegExp","handleError","Authorization","user","user_id","Token","users","backupDir","urlencoded","extended"],"mappings":"ipBAiBa,MAAAA,EAAc,CAACC,EAAsBC,EAAyBC,KACzE,MAAMC,EAAmB,IAAIC,OAAO,kCAAkCJ,KAAiB,MAEvF,OAAOE,EAAQG,QAAQF,GAAkB,CAACG,KAAcC,IAClDD,EAAUE,WAAW,MAChBD,EAAK,GAGP,OAAOA,EAAK,KAAKN,KACxB,EAcSQ,EAAW,CAACC,EAAqBC,EAAaC,KACzDF,EAAIG,UAAU,WAAYF,GAC1BD,EAAIE,WAAaA,EAEjBF,EAAII,KAAK,EAGL,SAAUC,EAAaJ,GAG3B,OAFiBA,EAAIK,MAAM,KAEX,EAClB,CCjDA,MAAMC,EAAU,IAAIC,IAEPC,EAAqB,UAErBC,EAAe,CAACC,EAAkB,OAAQC,EAAOH,KAC5D,GAAIF,EAAQM,IAAID,GACd,OAAOL,EAAQO,IAAIF,GAGrB,GAAIA,IAASH,EAAoB,CAC/B,MAAMM,EAASC,EAAGL,GAIlB,OAFAJ,EAAQU,IAAIL,EAAMG,GAEXA,EAGT,MAAMA,EAASC,EAAGL,GAIlB,OAFAJ,EAAQU,IAAIL,EAAMG,GAEXA,CAAM,ECrBFG,EAASC,ICATC,EAAqB,WAChC,MAAMC,EAAgBC,aAAY,WAChC,GAAIC,SAASC,cAA+B,uBAAwB,CAElEC,cAAcJ,GAEd,MAAMK,EAAaH,SAASC,cAA+B,uBACrDG,EAAkBD,GAAYE,WAE9BC,EAAgBF,EAAgBG,UAA6BC,WAAU,GAC7EF,EAAaG,UAAY,GAEzB,MAAMC,EAASJ,EAAaE,WAAU,GACtCE,EAAOC,UAAY,KAEnB,MAAMC,EAAcN,EAAaE,WAAU,GAErCK,EAAeb,SAASc,cAAc,OAEtCC,EAAuB,k/EAoHVC,yPAWnBH,EAAaJ,UAAYM,EAEzBH,EAAYK,YAAYJ,GAExBT,EAAgBa,YAAYP,GAC5BN,EAAgBa,YAAYL,GAG5B,MAAMM,EAAoBlB,SAASmB,eAAe,uBAC5CC,EAAmBF,GAAmBG,iBAAiB,sBACvDC,EAAatB,SAASmB,eAAe,gBACrCI,EAAevB,SAASmB,eAAe,iBAEvCK,EAAY,CAChBC,SAAU,CACRC,YAAa,YACbC,QAAS,2DACYX,4GAGvBY,QAAS,CACPF,YAAa,eACbC,QAAS,8DACYX,iHAKnBa,EAAiBC,IACrB,MAAMC,EAAOP,EAAUM,GAEnBC,IACFT,EAAWI,YAAcK,EAAKL,YAC9BH,EAAad,UAAYsB,EAAKJ,UAKlCE,EAAc,YAEdT,GAAkBY,SAASC,IACzBA,EAAOC,iBAAiB,SAAUC,IAChC,MAAMC,EAASD,EAAEE,cACXC,EAAQF,EAAOG,QAAQD,MAG7BlB,EAAiBY,SAASQ,GAAQA,EAAIC,UAAUC,OAAO,YACvDN,EAAOK,UAAUE,IAAI,UAGrBd,EAAcS,EAAM,GACpB,IAGJtC,SAASmB,eAAe,wBAAwBe,iBAAiB,SAAUC,IACzEA,EAAES,iBAEF,MAAMC,EAAoB7C,SAASmB,eAAe,gBAElD,GAAI0B,EAAmB,CACrB,IAAKA,EAAkBP,MAIrB,YAFAQ,MAAM,GAAGxB,EAAWI,2BAKtB,MAAMqB,EAAQF,EAAkBP,MAC1BU,EAAe9B,GAAmBjB,cAAc,6BAChDgD,EAAYD,GAAcT,QAAQD,OAAS,WAEjDY,MAAM,cAAe,CACnBC,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAElBC,KAAMC,KAAKC,UAAU,CACnBR,QACAE,cAEFzE,SAAU,WAETgF,MAAKC,MAAOhF,IACX,MAAMC,EAAMD,EAAIC,KAAO,IAAIgF,IAAIjF,EAAIC,IAAKiF,OAAOC,SAASC,QAExD,IAAInF,GAAQA,EAAIoF,SAASvF,WAAW,WAAcG,EAAIoF,SAASvF,WAAW,UAGxE,IACE,MAAMwF,QAAatF,EAAIsF,OAEvBjB,MAAM,iBAAiBiB,GAAMC,SAC7B,MAAO7B,GACPW,MAAM,oCAPRa,OAAOC,SAASK,KAAOxF,EAAIC,OAW9BwF,OAAM,KACLpB,MAAM,eAAe,QAKhC,GAAE,IACL,ECpOMqB,EAAmB,iCACZC,EAAe,aAatB,SAAUC,EAAUC,GACxB,MAAMC,YAAEA,EAAc,eAAcC,QAAEA,EAAU,GAAEC,UAAEA,EAASC,qBAAEA,GAAuB,EAAKC,MAAEA,GAAUL,EAEvG,IAAKE,EACH,MAAM,IAAII,MAAM,wBAGlB,MAAM5D,EAAOwD,EAAQpG,QAAQ+F,EAAkB,MACzCN,EAASW,EAAQpG,QAAQ+F,EAAkB,QAE3CU,EAAWC,OAAO,aAElBtF,EAASL,IAEf,OAAO4F,EAAsB,CAI3BC,oBAAoB,EAEpBC,WAAY,CAACnB,EAAUoB,MAElBZ,EAAKa,aAAe,IAAIC,MAAM9C,GACR,iBAAVA,EACFwB,EAASvF,WAAW+D,GACI,mBAAfA,EAAM+C,MACf/C,EAAM+C,KAAKvB,OAWG,iBAAhBS,EACFT,EAASvF,WAAWgG,GAClBe,MAAMC,QAAQhB,GAChBA,EAAYa,MAAMI,GAAO1B,EAASvF,WAAWiH,KACf,mBAArBjB,EAAYc,MACrBd,EAAYc,KAAKvB,IAM5B1B,OAAQoC,EACRiB,cAAc,EACdC,aAAa,EACbC,oBAAqB,CACnB3E,CAACA,GAAO,aAEVxB,OAAQ,CACNuC,KAAM,OAGN6D,IAAK,OAGL5B,MAAO,OAGP6B,KAAM,QAIRC,QAASpB,EACTtB,QAAS,CACPpC,OACA6C,UAEFkC,GAAI,CACF,QAAAC,CAASA,EAAUd,EAAKzG,GACtB,MAAMuC,EAAOkE,EAAI9B,QAAQpC,KACnBiF,EAAUD,EAASE,UAAU,WAwBnC,OAtBA1G,EAAOuC,KACL,GAAGpC,EAAOwG,KAAK,uBAAuBxG,EAAOyG,MAAMlB,EAAI/B,WAAW+B,EAAIxG,UAAUiB,EAAOyG,MACrFJ,EAAS7C,WACN6C,EAASK,aAAaL,EAAShF,OAAOgF,EAASM,QAGlDtF,GAAQiF,GAA8B,iBAAZA,GAC5BD,EAASpH,UAAU,UAAWqH,EAAQ7H,QAAQ,IAAID,OAAO,YAAY6C,KAASwD,IAG5EG,EAAM4B,qBACRP,EAASpH,UAAU,gBAAiB,UAAU+F,EAAM4B,uBAGtDrB,EAAIsB,OAAOT,GAAG,SAAS,KACrBU,YAAW,KACJT,EAASU,WACZV,EAASW,YAEV,IAAI,IAGFX,CACR,EACDY,SAAU,CAACC,EAAW3B,EAAKzG,KACzB,GACEoI,EAAUzD,QAAQ,iBAAiB0D,SAAS,sBAC3CD,EAAUzD,QAAQ,sBAAsB0D,SAAS,YACL,OAA3CD,EAAUzD,QAAQ,qBACpB,CACA5D,EAAOuC,KAAK,GAAGpC,EAAOwG,KAAK,mCAAmCxG,EAAOyG,MAAMlB,EAAI/B,WAAW+B,EAAIxG,OAE9F,MAAMqI,EAvHPtD,MAAkCmD,EAAa1B,EAAQzG,KAC5DA,EAAIG,UAAUwF,EAAc,GAE5B3F,EAAIuI,WAAW,IAAI/H,IAAIgI,OAAOC,QAAQN,EAASxD,WAE/CwD,EAASO,KAAK1I,EAAI,EAsHZ,OAAOsI,EAAkBF,EAAW3B,EAAKzG,GAG3C,MAAM2I,EAAqBC,GAAoB5D,MAAO6D,EAAgBV,EAAU1B,EAAKzG,KACnFA,EAAIG,UAAUwF,EAAc,GAI5B,eAF0BS,GAAU0C,mBAAmBD,GAGrD,OAAOA,EACF,CACL,IAAIE,EAAWF,EAAeG,SAAS,QAEvC,IACE,MAAMC,EAAS,IAAIhE,IAAIwB,EAAIxG,KAAO,GAAI,UAAUsC,KAEhD,GAAI0G,EAAOC,cAAgBD,EAAOC,aAAarI,IAAI,iBAAkB,CAkCnEkI,GAAyB,YAjCE,WACzB,MAAMI,EAAa,wBAEnB,IAAIC,IAAkBC,aAAaC,QAAQH,IAAe,GAEtDI,OAAOC,MAAMJ,KACfA,EAAgB,GAGlB,IAAInJ,EAAMiF,OAAOC,SAASK,KAE1B,MAAMiE,EAAO,WACX,MAAMC,EAAS,IAAIC,gBAAgBzE,OAAOC,SAASyE,QAE9CF,EAAO7I,IAAI,iBAMZZ,IAAQiF,OAAOC,SAASK,MAC1BvF,EAAMiF,OAAOC,SAASK,KAEtBwC,WAAWyB,EAAML,EAAgB,EAAI,IAAO,OAE5CC,aAAaQ,QAAQV,EAAY,MAAKC,GACtClE,OAAOC,SAASK,KAAOkE,EAAO5I,IAAI,kBAXlCuI,aAAaS,WAAWX,EAa3B,EAEDnB,WAAWyB,EAAM,IAClB,EAE+CT,0BAG9CC,EAAO5D,SAASvF,WAAW,YAC7BiJ,GAAyB,yBAAiBxG,SAAYnB,EAAmB4H,2BAE3E,OAIF,MAAMe,EAAUtD,EAAI9B,QAAQpC,MAAQ,GAGpC,MJ1LmB,EAACyH,EAAiBC,EAAyBzK,KACxE,MAAMC,EAAmB,IAAIC,OAAO,GAAGsK,EAAQrK,QAAQ,UAAW,WAAY,MACxEuK,EAA4B,IAAIxK,OAAO,GAAGsK,IAAW,MAErDG,EAAkB3K,EAAQG,QAAQF,EAAkBwK,GAE1D,OAAOE,IAAoB3K,EACvB2K,EAAgBxK,QAAQuK,EAA2BD,GACnDE,CAAe,EIkLFC,CAAgB,mBAAoB,SAAU/K,EAAYkD,EAAMwH,EAAShB,QAIpF,OAAOJ,EAAmBP,EAAW3B,EAAKzG,EAAI,EAEhD,KAAAuF,CAAM8E,EAAK5D,EAAKzG,GACd,MAAMsK,EAAe,iBAAiBD,EAAIE,4BAA4B9D,EAAI/B,UAAU+B,EAAIxG,WAAWoK,EAAIG,QAEvGzJ,EAAOwE,MAAM+E,GAETtK,EAAIyK,UACLzK,EAAuB0K,UAAU,IAAK,CACrC,eAAgB,eAIpB1K,EAAII,IAAIkK,EACT,IAGP,OCzOaK,EACDC,MAEV,WAAAC,CAAYD,GACVE,KAAKF,MAAQA,EAGf,eAAMG,CAAUpG,GACd,OAAOmG,KAAKF,MACT9J,IAAI,6BAA8B,CACjC6D,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAAEsG,OAAQ,cAC9CC,aAAc,IAEfnG,MAAK,KAAM,IACXU,OAAM,KAAM,KCbb,MAAO0F,UAAkBR,EAErBS,sBAAwB/E,OAAO,iBAEvC,WAAAwE,CAAYD,GACVS,MAAMT,GAGE,cAAAU,CAAeC,GACvB,MAAO,iCAAiCA,IAGhC,sBAAAC,CAAuBC,GAC/B,MAAO,yCAAyCA,IAGxC,YAAAC,CAAaH,GACrB,MAAO,+BAA+BA,IAG9B,oBAAAI,CAAqBF,GAC7B,MAAO,uCAAuCA,IAGhD,wBAAMG,CAAmBL,EAA+B5G,GACtD,OAAOmG,KAAKF,MACT9J,IAAYgK,KAAKQ,eAAeC,GAAe,CAC9CM,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAAEsG,OAAQ,QAC9Ca,aAAc,gBAEf/G,MAAM/E,GAAQA,EAAI+L,OASvB,sBAAMC,CAAiBT,EAA+BU,EAActH,GAClE,MAAMuH,EAAW,UAAWpB,KAAKM,uBAAuBe,UAClDC,KAAEA,SAAetB,KAAKM,sBAEtBiB,EAAY,IAAID,EAAK,CAACH,GAAO,WAAY,CAAE5I,KAAM,oBAEvD6I,EAASI,OAAO,OAAQD,GAExB,MAAMpM,EAAM6K,KAAKY,aAAaH,GAE9B,OAAOT,KAAKF,MACT2B,KAAwBtM,EAAKiM,EAAU,CACtCL,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCsG,OAAQ,mBACR,eAAgB,sBAChBuB,QAAS1B,KAAKF,MAAM6B,OAAO,CAAExM,YAGhC8E,MAAM/E,GAAQA,EAAI+L,OAGvB,4BAAMW,CAAuBjB,EAA6B9G,GACxD,OAAOmG,KAAKF,MACT9J,IAAYgK,KAAKU,uBAAuBC,GAAa,CACpDI,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAAEsG,OAAQ,QAC9Ca,aAAc,gBAEf/G,MAAM/E,GAAQA,EAAI+L,OASvB,0BAAMY,CAAqBlB,EAA6BQ,EAActH,GACpE,MAAMuH,EAAW,UAAWpB,KAAKM,uBAAuBe,UAClDC,KAAEA,SAAetB,KAAKM,sBAEtBiB,EAAY,IAAID,EAAK,CAACH,GAAO,WAAY,CAAE5I,KAAM,oBAEvD6I,EAASI,OAAO,OAAQD,EAAW,YAEnC,MAAMpM,EAAM6K,KAAKa,qBAAqBF,GAEtC,OAAOX,KAAKF,MACT2B,KAAwBtM,EAAKiM,EAAU,CACtCL,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCsG,OAAQ,mBACR,eAAgB,sBAChBuB,QAAS1B,KAAKF,MAAM6B,OAAO,CAAExM,YAGhC8E,MAAM/E,GAAQA,EAAI+L,QCnGnB,MAAOa,UAAoBzB,EACrB,cAAAG,CAAeC,GACvB,MAAO,gBAAgBA,mBAGf,sBAAAC,CAAuBC,GAC/B,MAAO,yBAAyBA,mBAGxB,YAAAC,CAAaH,GACrB,MAAO,gBAAgBA,iBAGf,oBAAAI,CAAqBF,GAC7B,MAAO,yBAAyBA,kBCA9B,MAAOoB,UAAgBlC,EAC3B,YAAMmC,CAAOnI,GACX,aACQmG,KAAKF,MAAM9J,IAAuB,YAAa,CACnD+K,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCoI,OAAQ,mBACR,eAAgB,mBAChB,gBAAiB,WACjBC,OAAQ,WACRC,QAAS,SAGblB,KAAKmB,MAGT,SAAMpM,CAAIqM,EAAqBxI,GAC7B,aACQmG,KAAKF,MAAM9J,IAAoB,gBAAgBqM,IAAM,CACzDtB,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCsG,OAAQ,mBACR,eAAgB,wBAGpBc,KAAKqB,KAGT,oBAAMC,CAAeC,EAA0B3I,GAC7C,aACQmG,KAAKF,MAAM9J,IAAY,MAAMwM,IAAoB,CACrDzB,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCsG,OAAQ,YACR,eAAgB,wBAGpBc,KAGJ,YAAMwB,CAAOH,EAAYzI,GACvB,aACQmG,KAAKF,MAAM2B,KAAqB,YAAaa,EAAM,CACvDvB,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCsG,OAAQ,mBACR,eAAgB,wBAGpBc,KAAKqB,MC/CL,MAAOI,UAAwB7C,EAC5B,YAAMmC,CAAOW,EAAwB9I,GAC1C,aACQmG,KAAKF,MAAM9J,IAAwC,qBAAsB,CAC7E+K,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCoI,OAAQ,mBACR,eAAgB,mBAChB,gBAAiB,WACjBC,OAAQ,WACRC,QAAS,MAEXvD,OAAQ,CACN+D,oBAGJ1B,KAAK2B,eAGF,SAAM5M,CAAIqM,EAAYxI,GAC3B,aACQmG,KAAKF,MAAM9J,IAA6C,yBAAyBqM,IAAM,CAC3FtB,iBAAiB,EACjBlH,QAAS6D,OAAOwC,OAAO,CAAA,EAAIrG,EAAS,CAClCsG,OAAQ,mBACR,eAAgB,wBAGpBc,KAAK4B,eC3BJ,MAAMC,EAAqB,kCAErBC,EACXlJ,GAESiG,GAETkD,GAA+B,KAE/BC,GAEAC,GAEAC,GAEAnG,GAEAoG,GAEAC,GACAC,GAEQ7C,aACA8C,aAEAC,UACAC,QACAC,gBAEAzN,OAER,WAAA8J,CAAY9E,EAAiBF,GAC3B,MAAMlB,QACJA,EAAU,CAAA,EAAE4G,aACZA,EAAY8C,aACZA,GAAe,EAAIpI,qBACnBA,GAAuB,EAAKgI,WAC5BA,GAAa,EAAKnG,oBAClBA,GACEjC,GAAQ,CAAE,EAEdiF,MAAKnG,EAAWA,EAEhBmG,MAAKkD,EAAY,GACjBlD,MAAKiD,EAAa,GAElBjD,MAAKmD,EAAcA,EACnBnD,MAAKhD,EAAuBA,EAC5BgD,MAAKoD,GAAkB,EAEvBpD,MAAKqD,EAAkBM,QAAQC,SAAQ,GAEnCzI,IACF2E,EAAM+D,SAASC,WAAa,IAAIC,EAAM,CAAEC,oBAAoB,KAG9DhE,MAAKF,EAASA,EAAM2C,OAAO,CACzBxH,UACApB,YAGFmG,KAAKS,aAAeA,EACpBT,KAAKuD,aAAeA,EAEpBvD,KAAKwD,UAAY,IAAML,EAAyBrB,EAAZzB,GAAyBL,MAAKF,GAClEE,KAAKyD,QAAU,IAAI1B,EAAQ/B,MAAKF,GAChCE,KAAK0D,gBAAkB,IAAIhB,EAAgB1C,MAAKF,GAEhDE,KAAK/J,OAASL,IAGhB,sBAAMqO,GACJ,OAAOjE,MAAKqD,EAGd,kBAAID,GACF,OAAOpD,MAAKoD,EAGd,EAAAc,CAAcrK,GACZ,MAAMsK,EAAMzG,OAAOwC,OAAO,GAAIrG,EAAS,CAAEpC,UAAM2M,EAAW1H,aAAS0H,IAUnE,OARA1G,OAAO2G,KAAKF,GAAK1L,SAAS6L,QAAqBF,IAAbD,EAAIG,WAA6BH,EAAIG,KAEvEtE,MAAKnG,EAAWsK,GAEXA,EAAII,eAAiBvE,MAAKhD,IAC7BmH,EAAII,cAAgB,UAAUvE,MAAKhD,KAG9BmH,EAGT,uBAAInH,GACF,OAAOgD,MAAKhD,EAGd,uBAAIA,CAAoBxD,GACtBwG,MAAKhD,EAAuBxD,EAG9B,aAAAgL,CAAc3K,GACZmG,MAAKkE,EAAcrK,GAGrB,qBAAY4K,GACV,MAAkB,olBAsBpB,qBAAMC,CAAgB7K,GAOpB,SANYmG,MAAKqD,GAAqBrD,MAAKgD,IACzChD,MAAKqD,EAAkB,IAAIM,SAASC,IAClC5D,MAAKsD,EAAyBM,CAAO,KAIrC5D,MAAKgD,EACP,OAAOW,QAAQC,QAAQ5D,MAAKgD,GAO9B,QAJiC,IAAtBhD,KAAKuD,eACdvD,KAAKuD,cAAe,GAGlBvD,MAAKmD,EAAa,CAiCpB,YAVgC,WAtBbnD,KAAKyD,QACrBzN,IAAIgK,KAAKS,aAAeT,MAAKkE,EAAcrK,IAC3CI,MAAMgE,IACL+B,KAAK/J,OAAOuC,KAAKpC,EAAOyG,MAAM,iBAEvBoB,KAERtD,OAAMT,MAAOtB,IAGZ,MAFAoH,MAAKsD,GAAuB,SAElBtD,KAAKyD,QAAQxD,UAAUD,MAAKkE,EAAcrK,KAClDmG,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,6BAA6B/L,EAAE6G,YAAY7G,EAAE8G,UAEpE,IAAIrE,MACR,wHAIIzC,MAIIgM,cACd5E,MAAKoD,GAAkB,GAGzBpD,MAAKgD,EAAgBhD,KAAKyE,kBAE1BzE,KAAK/J,OAAOuC,KAAKpC,EAAOyG,MAAM,gCAE9BmD,MAAKsD,GAAuB,GAErBtD,MAAKgD,EAsBd,IAAIV,SAnBmBtC,KAAKyD,QACzBzB,OAAOhC,MAAKkE,EAAcrK,IAC1BI,MAAMgE,IACL+B,KAAK/J,OAAOuC,KAAKpC,EAAOyG,MAAM,sBAEvBoB,KAERtD,OAAMT,MAAOtB,IAGZ,MAFAoH,MAAKsD,GAAuB,SAElBtD,KAAKyD,QAAQxD,UAAUD,MAAKkE,EAAcrK,KAClDmG,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,6BAA6B/L,EAAE6G,YAAY7G,EAAE8G,UAEpE,IAAIrE,MAAM,mDAEVzC,MAIQiM,MAAMC,GAAMA,EAAEhP,OAASgN,IAgC3C,OA9BKR,IACHtC,KAAK/J,OAAOqG,KAAKlG,EAAO2O,OAAO,kCAE/BzC,QAAatC,KAAKyD,QACfhB,OACC,CACEuC,QAAS,IACTlP,KAAMgN,EACNH,cAAe,oBACfsC,oBAAqB,KAEvBjF,MAAKkE,EAAcrK,IAEpBI,MAAMgE,IACL+B,KAAK/J,OAAOuC,KAAKpC,EAAOyG,MAAM,qBAEvBoB,KAERtD,OAAO/B,IAKN,MAJAoH,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,4BAA4B/L,EAAE6G,YAE3DO,MAAKsD,GAAuB,GAEtB,IAAIjI,MACR,2GAC+DyH,oBAChE,WAIM9C,KAAKyD,QACflB,eAAeD,EAAKK,cAAe3C,MAAKkE,EAAcrK,IACtDI,MAAMgE,IACL+B,MAAKgD,EAAgB/E,EAEdA,KAERhE,MAAMgE,IACL+B,MAAKsD,GAAuB,GAE5BtD,KAAK/J,OAAOuC,KAAKpC,EAAOyG,MAAM,0BAEvBoB,KAERtD,OAAO/B,IAKN,MAJAoH,MAAKsD,GAAuB,GAE5BtD,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,iCAAiC/L,EAAE6G,YAE1D,IAAIpE,MAAM,+BAA+B,IAUrD,sBAAM6J,CAAiBC,EAAgBtL,GAQrC,OAPAmG,MAAKgD,QAAsBhD,KAAK0E,gBAAgB7K,GAE3CmG,KAAKS,eACRT,KAAKS,aAAe0E,EACpBnF,KAAKuD,cAAe,SAGTvD,KAAKyD,QACfzN,IAAImP,EAAQnF,MAAKkE,EAAcrK,IAC/BI,MAAMgE,IACL,MAAMmH,KAAEA,EAAO,KAAItP,KAAEA,EAAIuP,SAAEA,GAAapH,EAExC,GAAIoH,GAAYD,EAAM,CACpB,MAAME,EAASvL,KAAKwL,MAAMH,GAK1B,OAHApF,MAAKkD,EAAYoC,EACjBtF,MAAKiD,EAAanN,EAEXwP,EAMT,OAHAtF,MAAKkD,EAAY,GACjBlD,MAAKiD,EAAanN,EAEX,EAAE,IAEV6E,OAAO6K,IAGN,GAFAxF,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,kCAAkCa,EAAO/F,YAEtC,MAA5B+F,EAAOvH,UAAUwH,OACnB,MAAM,IAAIpK,MAAM,wBAAwB8J,4BAAiCnF,MAAKF,EAAO6B,YAGvF,GAAgC,MAA5B6D,EAAOvH,UAAUwH,OACnB,MAAM,IAAIpK,MACR,sDAAsD8J,kBAAuBnF,MAAKF,EAAO6B,YAI7F,MAAM6D,CAAM,IAUlB,SAAAE,CAAUhR,EAA0BiR,GAAY,GAC9C,IAAIC,EAA4B,iBAAZlR,EAAuBA,EAAUA,EAAQwJ,SAAS,SAEtE,IAAK,MAAM2H,KAAK7F,MAAKkD,EACnB0C,EAASA,EAAO/Q,QAAQ,IAAID,OAAO,MAAMiR,EAAE/P,UAAW,KAAM+P,EAAE9M,OAGhE,MAAM+M,EAAM,IAAIC,EAAMJ,EAAYC,EAAS5F,MAAKgD,GAE1CgD,EAAkB,kBAExB,IAAKL,EAAW,CACd,MAAMxN,EAAc2N,EAAI1L,OAAO3D,SAASc,cAAc,OACtDY,EAAYjB,UAAY8O,EAExB,MAAMC,EAAYH,EAAI1L,OAAO3D,SAASC,cAAc,cAEpD,GAAIuP,EAAW,CACb,MAAMC,EAAUD,EAAUnO,iBAAiB,UAEvCoO,EAAQC,OACVF,EAAUG,aAAajO,EAAa+N,EAAQG,KAAKH,EAAQC,OAAS,IAElEF,EAAUzE,OAAOrJ,OAEd,CACL,MAAM8N,EAAYH,EAAI1L,OAAO3D,SAASc,cAAc,OAEpD0O,EAAUzE,OAAOrJ,GAEjB2N,EAAI1L,OAAO3D,SAASqD,KAAK0H,OAAOyE,GAGlC,MAAMK,EAAOR,EAAI1L,OAAO3D,SAASC,cAAc,QACzC6P,EAAQD,EAAM5P,cAAc,SAE9B6P,EACFA,EAAMC,KAAOxG,MAAKiD,EAElBqD,EAAKpP,WAAa,UAAU8I,MAAKiD,YAMrC,OAFsB6C,EAAIW,YAEL5R,QAAQ,IAAID,OAAO,YAAYoR,gBAA+B,KAAMJ,GAG3F,eAAMc,GACJ,GAAI1G,KAAKS,aAAc,CACrB,GAAIT,KAAKuD,aACP,aAAavD,KAAKwD,UAAU1C,mBAAmBd,KAAKS,aAAcT,MAAKnG,GAClE,CACL,MAAM8M,QAAiB3G,KAAKyD,QAAQzN,IAAIgK,KAAKS,aAAcT,MAAKnG,GAEhE,GAAImG,MAAKoD,EAAiB,CACxB,MAAMwD,QAAqB5G,KAAK0D,gBAAgB1N,IAAI2Q,EAAS/B,YAAc5E,MAAKnG,GAEhF,aAAamG,KAAKwD,UAAU5B,uBAAuBgF,EAAavE,GAAIrC,MAAKnG,GAEzE,GAAI8M,EAAStB,SACX,aAAarF,KAAKwD,UAAU5B,uBAAuB+E,EAAStB,SAAUrF,MAAKnG,KAOrF,kBAAMgN,CAAaC,GACjB,GAAI9G,KAAKS,aAAc,CACrB,GAAIT,KAAKuD,aACP,aAAavD,KAAKwD,UAAUtC,iBAAiBlB,KAAKS,aAAcqG,EAAQ9G,MAAKnG,GACxE,CACL,MAAM8M,QAAiB3G,KAAKyD,QAAQzN,IAAIgK,KAAKS,aAAcT,MAAKnG,GAEhE,GAAImG,MAAKoD,EAAiB,CACxB,MAAMwD,QAAqB5G,KAAK0D,gBAAgB1N,IAAI2Q,EAAS/B,YAAc5E,MAAKnG,GAEhF,aAAamG,KAAKwD,UAAU3B,qBAAqB+E,EAAavE,GAAIyE,EAAQ9G,MAAKnG,GAE/E,GAAI8M,EAAStB,SACX,aAAarF,KAAKwD,UAAU3B,qBAAqB8E,EAAStB,SAAUyB,EAAQ9G,MAAKnG,KAO3F,SAAM7D,CAAyB+G,EAAclD,EAA+BkN,GAAU,GACpF,MAAMC,EAAoBD,EAAUlN,EAAU6D,OAAOwC,OAAO,GAAIF,MAAKkE,EAAclE,MAAKnG,GAAWA,GAEnG,aAAamG,MAAKF,EAAO9J,IAAO+G,EAAM,CACpClD,QAASmN,WCxZFC,EACMC,OACAnM,KACAoM,SAETlR,OAER,WAAA8J,CAAYmH,EAAuBnM,GACjCiF,KAAKkH,OAASA,EACdlH,KAAKjF,KAAOA,GAAQ,CAAE,EAEtBiF,KAAKmH,SAAW,IAAIzR,IAEpBsK,KAAKmH,SAAShR,IAAI,oBAAqB6J,KAAKoH,kBAAkBC,KAAKrH,OACnEA,KAAKmH,SAAShR,IAAI,gBAAiB6J,KAAKsH,eAAeD,KAAKrH,OAE5DA,KAAK/J,OAASL,IAEdoK,KAAKuH,OAGP,IAAAA,GACE,MAAMC,GAAEA,GAAOxH,KAAKkH,OAEpB,IAAK,MAAOO,EAAOC,KAAY1H,KAAKmH,SAClCK,EAAGhL,GAAGiL,EAAOC,GAIjB,iBAAAN,GACEpH,KAAKkH,OAAOM,GAAGG,KAAK,CAClBpP,KAAM,SACNkP,MAAO,qBACPxG,KAAM,CAAE,IAIZ,oBAAMqG,GACJ,IAAItH,KAAKjF,KAAK6M,cAAe5H,KAAKjF,KAAKK,MA+GrC,OAJA4E,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAAElN,MAAO,8CAEvDuF,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,yCA7Ge,CAC5C,MAAMiD,YAAEA,EAAWxM,MAAEA,GAAU4E,KAAKjF,KAEpC,GAAIiF,KAAKkH,OAAOW,OAAOC,uBAAuB3E,WAAY,CACxD,IAAK/H,GAAOgI,eAQV,YAPApD,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAC5ClN,MAAO,yDACPoN,OAAQ,CACNE,SAAS,KAMb/H,KAAKkH,OAAOM,GAAGG,KAAK,uBAAwB,CAC1CE,OAAQ,CACNE,SAAS,KAMjB,MAAMC,QAAsB5M,GAAOsL,YAAY/L,OAAO4E,IACpD,GAAI0I,EAAa1I,GAAM,CACrB,GAA6B,MAAzBA,EAAItB,UAAUwH,OAKhB,OAJAzF,KAAK/J,OAAOuC,KAAKpC,EAAO2O,OAAO,oBAE/B/E,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAAElN,MAAO,kBAAmByN,SAAS,IAE5E3I,EAIT,GACEA,EAAI4I,iBAAiB9M,QAC6B,eAAhDkE,EAAI4I,MAAmCC,MACU,cAAhD7I,EAAI4I,MAAmCC,MAU1C,OARApI,KAAK/J,OAAOuC,KACVpC,EAAO2O,OAAO,mFAGhB/E,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAC5ClN,MAAO,mFAGF8E,EAIX,MAAMA,CAAG,KAGX,GAAIyI,aAAyB3M,MAC3B,OAGF,MAAMgN,EAAYL,QACRJ,GAAaU,mBAAmBN,GAAerN,OAAO4E,IAC1D,GAAoB,kCAAhBA,EAAIE,QAGN,OAFAO,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,kCAEtBpF,YAGLqI,GAAaW,kBAEvB,KAAIF,GAAaA,aAAqBG,QAyBpC,OAAIH,aAAqBhN,OACvB2E,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAAElN,MAAO4N,EAAU5I,eAEjEO,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI0D,EAAU5I,YAKzCO,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAAElN,MAAO,oCAEvDuF,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,gCAnCe,CAC5C,MAAM8D,QAAqBrN,GAAOyL,aAAawB,IAE/C,GAA6B,OAAzBI,GAAchD,OAAiB,CACjC,MAAMiD,EAAad,GAAae,iBAG9BC,eAAgBC,EAChBC,eAAgBC,EAChBC,eAAgBC,GACdP,GAAc,CAAEE,eAAgB,GAAIE,eAAgB,GAAIE,gBAAgB,IAAIE,MAAOC,eAEvFnJ,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAC5CyB,SAAU,IAAIF,KAAKD,GACnBF,cACAF,mBAGF7I,KAAK/J,OAAOuC,KAAKpC,EAAOyG,MAAM,yBAE9BmD,KAAKkH,OAAOM,GAAGG,KAAK,yBAA0B,CAAElN,MAAO,4BAEvDuF,KAAK/J,OAAOwE,MAAMrE,EAAOuO,IAAI,+BCnHvC,MAAM0E,EAAQ,IAAIC,EAAYC,MAExBC,EAAqB,gBAErB,SAAUC,EAAe1O,GAC7B,MAAMG,UAAEA,EAASwO,IAAEA,EAAM,KAAmB3O,EAEtC9E,EAASL,IAIf,OAFAsF,EAAUmO,MAAQA,EAEX,CAAC1N,EAAKzG,EAAKyU,KAChB,MAAMxU,EAAMwG,EAAIiO,aAAejO,EAAIxG,KAAO,GAE1C,GAAIqU,EAAmB1N,KAAK3G,EAAIK,MAAM,KAAK,IAAM,IAAK,CACpD,MAAMqU,EAAYR,EAAMrT,IAAIb,GAE5B,GAAI0U,EAAW,CACb5T,EAAOuC,KACL,GAAGpC,EAAOwG,KAAK,uBAAuBxG,EAAOyG,MAAMlB,EAAI/B,WAAWzE,QAAUiB,EAAOwG,KAAK,YAAYzH,KAGtG,IAAK,MAAO2U,EAAQ/Q,KAAU2E,OAAOC,QAAQkM,EAAUhQ,SACrD3E,EAAIG,UAAUyU,EAAQ/Q,GAMxB,OAHA7D,EAAI6U,MAAMF,EAAUnV,cACpBQ,EAAII,MAKN,MAAMA,EAAMJ,EAAII,IACVyU,EAAQ7U,EAAI6U,MAClB,IAAIC,EAASxB,OAAOyB,KAAK,GAAI,QAG7B/U,EAAI6U,MAAQ,SAAU9I,EAAMiJ,EAAWC,GACrC,OAAKjV,EAAIkV,UAAUvP,IAInBmP,EAASxB,OAAO6B,OAAO,CAACL,EAAQ/I,KAEzB,GALE8I,EAAMO,KAAKtK,KAAMiB,EAAMiJ,EAA4BC,EAM7D,EAIDjV,EAAII,IAAM,SAAUiV,EAAwBL,EAA0BM,GACpE,IAAKtV,EAAIkV,UAAUvP,GACjB,OAAOvF,EAAIgV,KAAKtK,KAAMuK,EAAOL,EAAUM,GAGpB,iBAAVD,IACTP,EAASxB,OAAO6B,OAAO,CAACL,EAAQxB,OAAOyB,KAAKM,EAAOL,MAGjD1B,OAAOiC,SAASF,KAClBP,EAASxB,OAAO6B,OAAO,CAACL,EAAQO,KAG9BrV,EAAIkV,UAAUvP,KAChB5E,EAAOuC,KAAK,GAAGpC,EAAOwG,KAAK,eAAezH,KAE1CkU,EAAMqB,IAAIvV,EAAK,CAAE0E,QAAS3E,EAAIyV,aAAcjW,QAASsV,GAAUN,IAGjEpU,EAAIgV,KAAKtK,KAAMgK,EAAQE,EAAUM,EAClC,EAGHb,GAAM,CAEV,CCvFO,MAAMiB,EAA0B,WAC1BC,EAAqB,OAE5BC,EAAU/N,EAAKgO,QAA+B,oBAAfC,YAA8BA,YAAeC,cAA0B9V,MAEtG+V,EAAanO,EAAK6G,QAAQkH,EAAS,KAAM,MACzCK,EAAoBpO,EAAK6G,QAAQsH,EAAY,KAAM,MAiBnDE,EAAcrO,EAAK6G,QAAQuH,EADb,gBAEdE,EAAetO,EAAK6G,QAAQwH,EAAa,gCAElCE,EACMC,aACTC,mBACSC,WACAC,SACTC,YAA+B,KACtBC,cACAC,gBAET5V,OAER,WAAA8J,CAAY2L,EAAkBI,GAC5B9L,KAAK0L,SAAWA,EAEhB,MAAMH,aACJA,EAAexO,EAAK6G,QAAQmI,EAAQC,MAAO,WAAUJ,cACrDA,EAAgB7O,EAAK6G,QAAQmI,EAAQC,MAAO,YAAWH,gBACvDA,EAAkB,GAAG7L,KAAK0L,eAAcF,mBACxCA,EAAqB,IAAIZ,OAA6BC,SAAyBY,WAC/EA,EAAcQ,GAAeA,EAAK9C,cAActU,QAAQ,KAAM,KAAKA,QAAQ,QAAS,KAClFiX,GAAe,CAAE,EAErB9L,KAAKuL,aAAeA,EACpBvL,KAAKwL,mBAAqBA,EAC1BxL,KAAKyL,WAAaA,EAElBzL,KAAK4L,cAAgBA,EACrB5L,KAAK6L,gBAAkBA,EAEvB7L,KAAKkM,WAELlM,KAAK/J,OAASL,IAGhB,eAAMuW,GACJ,UACQC,EAAGC,KAAKjB,GACd,YACMgB,EAAGE,MAAMlB,GAGjB,UACQgB,EAAGC,KAAKrM,KAAKuL,cACnB,YACMa,EAAGE,MAAMtM,KAAKuL,eAIxB,kBAAMgB,GAGJ,aAFMvM,KAAKmM,kBAEEC,EACVI,SAASnB,EAAc,CACtBnB,SAAU,UAEXvP,OAAM,IAAM,OAGjB,mBAAM8R,CAAcC,GAGlB,aAFM1M,KAAKmM,kBAEEC,EAAGO,UAAUtB,EAActR,KAAKC,UAAU0S,EAAM,KAAM,GAAI,CACrExC,SAAU,UAId,cAAMgC,GACClM,KAAK2L,kBAGF3L,KAAKyM,cAAczM,KAAK2L,aAF9B3L,KAAK2L,YAAc5R,KAAKwL,YAAYvF,KAAKuM,gBAM7C,0BAAMK,GACJ,MAAMhE,eAAEA,GAAmB5I,KAAK2L,YAEhC,IAAK/C,EACH,OAAO,KAGT,MAAMiE,EAAa9P,EAAK6G,QAAQ5D,KAAKuL,aAAc3C,GAEnD,IAGE,aAFMwD,EAAGC,KAAKQ,GAEPA,EACP,MACA,OAAO,MAIX,UAAAC,CAAWpB,EAAkBO,EAAa,IAAI/C,MAC5C,OAAOlJ,KAAKwL,mBACT3W,QAAQ,IAAI+V,KAA4Bc,GACxC7W,QAAQ,IAAIgW,KAAuB7K,KAAKyL,WAAWQ,IAGxD,aAAAtD,GACE,OAAO3I,KAAK2L,YAGd,gBAAMoB,CAAWC,GAEf,GAAiD,SAA7CA,EAAW9O,SAAS,SAAS+O,MAAM,EAAG,GACxC,MAAM,IAAI5R,MAAM,iCAGlB,MAAM6R,EAAiBC,EAAOC,WAAW,OAAOC,OAAOL,GAAYM,OAAO,OAG1E,SAF8BtN,KAAK4M,uBAEd,CACnB,MAAM9D,eAAEA,GAAmB9I,KAAK2L,YAEhC,GAAI7C,IAAmBoE,EACrB,OAIJ,MAAMjE,EAAa,IAAIC,KAEjBqE,EAAWvN,KAAK8M,WAAW9M,KAAK0L,SAAUzC,GAQhD,OANAjJ,KAAK2L,YAAa/C,eAAiB2E,EACnCvN,KAAK2L,YAAa7C,eAAiBoE,EACnClN,KAAK2L,YAAa3C,eAAiBC,EAAWE,oBAExCnJ,KAAKkM,iBAEEE,EAAGO,UAAU5P,EAAK6G,QAAQ5D,KAAKuL,aAAcgC,GAAWP,GAAYQ,SAAQ,KACvFxN,KAAK/J,OAAOuC,KAAK,mBAAmB+U,IAAW,IAInD,oBAAMhF,GACJ,MAAMkF,EAAe,IAAI9J,SAAgB,CAACC,EAAS8J,KACjD,IAAIzM,EAAO,GAGXjB,KAAK/J,OAAOuC,KAAKpC,EAAOuX,KAAK,gCAE7B,MAAMC,EAAOC,EAAcC,MAAM,OAAQ,CAAC/Q,EAAK6G,QAAQsH,EAAY,mBAAoB,SAAU,CAC/Fc,IAAKD,EAAQC,MACb+B,IAAKrQ,OAAOwC,OAAO,CAAE,EAAE6L,EAAQgC,IAAK,CAAEC,SAAU,eAChDC,MAAO,YAGTL,EAAKpR,GAAG,WAAY0R,IAClBjN,GAAQiN,CAAG,IAGbN,EAAKpR,GAAG,SAAU4L,IACH,IAATA,EAMJxE,EAAQ3C,GALNyM,EAAO,IAAIrS,MAAM,kCAAkC+M,KAKxC,IAGfwF,EAAKpR,GAAG,SAAU+C,IAChBmO,EAAOnO,EAAI,GACX,IAGJ,UACQkO,EAAaD,SAAQ,KAEzBxN,KAAK/J,OAAOuC,KAAKpC,EAAOuX,KAAK,gCAAgC,IAG/D,MAAMpM,EAAYxE,EAAK6G,QAAQmI,EAAQC,MAAOhM,KAAK4L,cAAe5L,KAAK6L,iBAEvE,UAAYO,EAAGC,KAAK9K,GAClB,MAAM,IAAIlG,MAAM,QAAQkG,eAG1B,aAAa6K,EAAGI,SAASjL,GACzB,MAAO3I,GAGP,MAFAuV,EAAQ9R,IAAIzD,GAENA,GAIV,wBAAM0P,CAAmB0E,GAGvB,aAFMhN,KAAK+M,WAAWC,SAEThN,KAAKuI,kBCtNN,SAAA6F,GACdC,EAKAC,GAEA,OAAOpU,MAAOyB,EAAKzG,EAAKyU,KACtB,SAAU0E,EAAU1S,EAAIxG,KAAO,GAAIwG,EAAKzG,GAAM,CAC7BU,IAER4C,KAAK,wBAAwBmD,EAAIxG,OAExC,MAAMG,EAAMJ,EAAII,IAEViZ,EAAoB,GAE1BrZ,EAAI6U,MAAQ,SAAUjQ,GAGpB,OAFAyU,EAAQC,KAAK1U,IAEN,CACR,EAED5E,EAAII,IAAM,SAAUiV,EAAaL,EAA0CM,GACpD,iBAAVD,GACTgE,EAAQC,KAAKhG,OAAOyB,KAAKM,IAG3B,MAAMkE,EAAkBvZ,EAAIyH,UAAU,oBAChCjI,ECxCE,SAAcA,EAAiB+Z,GAC7C,OAAQA,GACN,IAAK,OACH,OAAOC,EAAUha,GAEnB,IAAK,KACH,OAAOia,EAAqBja,GAE9B,IAAK,UACH,OAAOka,EAAYla,GAErB,QACE,OAAOA,EAEb,CD0BwBma,CAAcrG,OAAOyB,KAAKzB,OAAO6B,OAAOkE,IAAWE,GAE7DK,EAAqC,mBAAb5E,GAA2BA,EAAWA,EAAW,QACzE6E,EAAkC,mBAAb7E,EAA0BA,EAAWM,EAIhE,OAFAlV,EAAIgV,KAAKtK,KC7BD,SAActL,EAAiB+Z,GAC7C,OAAQA,GACN,IAAK,OACH,OAAOO,EAASta,GAElB,IAAK,KACH,OAAOua,EAAmBva,GAE5B,IAAK,UACH,OAAOwa,EAAYxa,GAErB,QACE,OAAOA,EAEb,CDeuBya,CAAcb,EAAQ5Z,EAASiH,EAAKzG,GAAMuZ,GAAkBK,EAAgBC,GAEpF/O,IACR,EAGH2J,GAAM,CAEV,CEhDgB,SAAAyF,GAAeC,EAAcC,GAI3C,MAAMC,GAFNF,GADAA,EAAOA,EAAKra,WAAW,KAAOqa,EAAO,IAAIA,KAC7BG,SAAS,KAAOH,EAAO,GAAGA,MAEAG,SAAS,KAAOH,EAAKpC,MAAM,GAAK,GAAIoC,EAEpEpZ,EAASL,IAEf,MAAO,CAAC+F,EAAKzG,EAAKyU,KAChB,MAAM8F,EAAY,IAAItV,EAAIwB,EAAIxG,KAAO,GAAI,qBACnCoF,SAAEA,EAAQuE,OAAEA,GAAW2Q,EACvBC,EAAY,CAAC,IAAKH,GAQxB,GANID,IACFI,EAAUlB,KAAK,OAAOc,KACtBI,EAAUlB,KAAK,OAAOc,MAIpBI,EAAUnS,SAAShD,GAAW,CAChC,MAAMoV,EAAc,GAAGN,IAAOvQ,IAI9B,OAFA7I,EAAOuC,KAAKpC,EAAO2O,OAAO,mBAAmB4K,MAEtC1a,EAASC,EAAKya,EAAa,KAGpChG,GAAM,CAEV,UC5BgBiG,GAAeC,EAAwBC,EAAW/U,GAChE,MAAMwI,aAAEA,GAAe,EAAKoC,UAAEA,GAAY,EAAKlF,aAAEA,GAAiB1F,EAE5D9E,EAASL,IAEf,MAAO,CAAC+F,EAAKzG,EAAKyU,KAChB,MAAMoG,IAAuBxM,GAAgBoC,GACvCqK,EAAiBH,EAAe/T,KAAKvG,EAAaoG,EAAIxG,KAAO,KAEnE,GAAI4a,GAAsBC,EAAgB,CACxC,MAAMnW,EAAW8B,EAAI9B,SAAW,GAEhC5D,EAAOuC,KAAKpC,EAAOyG,MAAM,6BAGtB0G,QAAwC,IAAjB9C,EAEpBqP,EAAGpL,gBAAgB7K,GADnBiW,EAAG5K,iBAAiBzE,EAAc5G,IAIrCI,MAAK,KACJ0P,GAAM,IAEPhP,OAAO6K,IACN,GAAIA,EAAOvH,SAAU,CACnBhI,EAAOuC,KAAKpC,EAAOuO,IAAI,6CAEvB,MAAMgL,EAAc,uBAAuBM,mBAAmB,OAI9D,OAFAha,EAAOuC,KAAKpC,EAAO2O,OAAO,mBAAmB4K,MAEtC1a,EAASC,EAAKya,EAAa,KAGpC1Z,EAAOuC,KAAKpC,EAAOuO,IAAI,oCAAoCa,EAAO/F,YAElEkK,EAAKnE,EAAO,SAGhBmE,IAGN,CChDA,MAAMuG,GAAiBC,ICmJvB,SAASC,GAAuBrX,EAAUsX,EAA8B7Q,GACtE,OAAO6Q,EAAUtX,GAAS,CAAEuX,SAAS,GAAS,CAAEA,SAAS,EAAO7V,MAAO+E,EACzE,CAyCM,SAAU+Q,GAAyB1I,GACvC,MAAM2I,EAxCR,SAAwB3I,GAoCtB,MAnCwC,CACtCuI,GACEvI,GACC4I,GAA0C,iBAANA,GAAwB,OAANA,GACvD,sCAEFL,GACEvI,EAAOyH,cACNxZ,GAAyC,iBAATA,GAAqBA,EAAKqQ,OAAS,GACpE,4DAEFiK,GACEvI,EAAO6I,gBACNvb,QAA2CiP,IAARjP,GAAqC,iBAARA,GAAoBA,EAAIgR,OAAS,GAClG,0EAEFiK,GACEvI,EAAOpH,cACN4B,QAAwC+B,IAAP/B,GAAmC,iBAAPA,GAAmBA,EAAK,GACtF,uEAEF+N,GACEvI,EAAO8I,OACNtO,QAAwC+B,IAAP/B,GAAmC,iBAAPA,GAAmBA,EAAK,GACtF,gEAEF+N,GACEvI,EAAO+I,eACNlH,QAA2CtF,IAARsF,GAAqC,iBAARA,GAAoBA,EAAM,GAC3F,yEAI8B7E,MAAMe,IAAYA,EAAO0K,WAEnC,CAAEA,SAAS,EACrC,CAG2BO,CAAehJ,GAExC,IAAK2I,EAAiBF,QACpB,MAAM,IAAIjV,MAAMmV,EAAiB/V,OAInC,MAAMgG,EAAeoH,EAAO8I,OAAS9I,EAAOpH,cAEtCqQ,iBACJA,GAAmB,EAAIF,cACvBA,EAAgB,IAAczV,qBAC9BA,GAAuB,EAAK4V,eAC5BA,GAAiB,EAAIpL,UACrBA,GAAY,EAAKpC,aACjBA,GAAe,EAAKyN,OACpBA,EAAS,OAAMC,QACfA,GAAU,EAAIC,eACdA,EAAiB,UAAS/N,WAC1BA,GAAa,EAAKnG,oBAClBA,EAAsB+O,QAAQgC,IAAIoD,iBAChCtJ,GAAU,CAAE,EAEhB,IAAIuJ,EAAgBH,EAGlBG,GADoB,IAAlBA,EACc,CACdC,YAAa,GAAGxJ,EAAOyH,mBACvB0B,OAAQ,YAEkB,iBAAZC,GACA,CACdI,YACiC,iBAAxBJ,EAAQI,YACXJ,EAAQI,YAAYxc,QAAQ,iBAAkBgT,EAAOyH,cACrD,GAAGzH,EAAOyH,mBAChB0B,OAAQC,EAAQD,QAAU,YAM9B,IAAIM,EAAuBP,EAU3B,MAR8B,kBAAnBA,GACoB,IAAzBO,IACFA,EAAuB,CAAE,GAEQ,iBAAnBP,IAChBO,GAAuB,GAGlB,CACLR,mBACAF,gBACAzV,uBACA4V,eAAgBO,EAChB/N,eACAoC,YACAqL,SACAC,QAASG,EACTF,iBACA/N,aACAnG,sBACAyD,kBACGoH,EAEP,CAwFA,SAAS0J,GAAUC,GACjB,MAAMlC,aACJA,EAAY/L,aACZA,EAAYmN,eACZA,EAAc/K,UACdA,EAASlF,aACTA,EAAYqQ,iBACZA,EAAgBF,cAChBA,EAAazV,qBACbA,EAAoB8V,QACpBA,EAAOC,eACPA,EAAc/N,WACdA,EAAUnG,oBACVA,GACEwU,GAAW,CAAE,EAGjB,IAAIC,GAAiB,EAGrB,OAFc1F,QAAQC,MAEf,CACLlW,KAAM,cACN4b,MAAO,QACP7J,OAASA,IACP,MAKM2I,EAnHZ,SAA8B3I,GAiB5B,MAhBwC,CACtCuI,GACEvI,EAAOwH,MACNA,GAAyC,iBAATA,GAAqBA,EAAKlJ,OAAS,GAAc,MAATkJ,GACzE,2CAEFe,GACEvI,EAAO8J,MACNA,QACUvN,IAATuN,GAAuC,iBAATA,GAAqBA,EAAO,GAAKA,EAAO,OACxE,sDAI8B9M,MAAMe,IAAYA,EAAO0K,WAEnC,CAAEA,SAAS,EACrC,CAiG+BsB,CAL8B,CACrDvC,KAAMxH,EAAOwH,MAAQ,MAClBxH,EAAOX,SAIZ,IAAKsJ,EAAiBF,QACpB,MAAM,IAAIjV,MAAMmV,EAAiB/V,OAanC,OAVAoN,EAAOC,sBAAwB,CAAE4I,iBAAgBjQ,aAAcA,EAAc8C,eAAcJ,cAEvFA,IACF0E,EAAOwH,KAAO,OAAOC,KAGnBzH,EAAOgK,MACChK,EAAOgK,KAGZhK,CAAM,EAEfiK,mBAAoB5X,MAAO6X,EAAMC,KAC/B,MAAMpM,EAAmC,CAAEmM,OAAM3M,KAAM,IAYvD,OAVIqM,IACFA,GAAiB,EAEjB7L,EAAOR,KAAKoJ,KAAK,CACfyD,IAAK,SACLC,SAAU,OACVC,SAAU,GAAGC,KAAKC,cAIfzM,CAAM,EAEf0M,gBAAkBpL,IAChB,IAAImI,EAAOnI,EAAOW,OAAOwH,KAEpBA,EAAKG,SAAS,OACjBH,GAAQ,KAGV,MAAME,EAA2BF,EAAKva,UAAU,EAAGua,EAAKkD,YAAY,MAIpE,GAFArL,EAAOsL,YAAYC,IAAIrD,GAAeC,EAAMC,IAExCoB,EAAgB,CAClB,MAAMgC,EAAc,IAAIvY,IAAIuW,GAAgBjZ,KAEtCkb,EAAwB,CAC5B9Y,QAAS,CACPpC,KAAMib,EACNhW,QAASgU,EACTpW,OAAQoW,EAAe7b,QAAQ,iCAAkC,SAEnE4L,eACAkQ,MAAOlQ,EACP8C,eACApI,uBACAgI,aACAnG,oBAAqBA,GAAuB+O,QAAQgC,IAAIoD,iBAGpDX,EA5I4B,CACtCJ,IAFyBvI,EA6IwB8K,GA1IxC9Y,SACNA,GACoB,iBAAZA,GACiB,iBAAjBA,EAAQpC,MACY,iBAApBoC,EAAQ6C,SACW,iBAAnB7C,EAAQS,QACjB,6CAEF8V,GACEvI,EAAOpH,cACN4B,QAAwC+B,IAAP/B,GAAmC,iBAAPA,GAAmBA,EAAK,GACtF,4DAEF+N,GACEvI,EAAO8I,OACNtO,QAAwC+B,IAAP/B,GAAmC,iBAAPA,GAAmBA,EAAK,GACtF,qDAEF+N,GACEvI,EAAO7K,qBACNxD,QAAiD4K,IAAV5K,GAAwC,iBAAVA,GACtE,2DAI8BqL,MAAMe,IAAYA,EAAO0K,WAEnC,CAAEA,SAAS,GAiH7B,IAAKE,EAAiBF,QACpB,MAAM,IAAIjV,MAAMmV,EAAiB/V,OAGnC,MAAMqV,EAAK,IAAI/M,EAAM2N,EAAgBiC,GAErC,GAAI7B,EAAkB,CACpB,IAAIpH,GAAOkH,IAENlH,GAAOjL,OAAOC,MAAMgL,IAAQA,EAAM,KACrCA,EAAM,KAGR,MAAMkJ,EAAgC,CACpC1X,UAAWgM,EACXwC,OAGI8G,EA3HhB,SAAkC3I,GAWhC,MAVwC,CACtCuI,GACEvI,EAAO6B,KACNA,GAAsC,iBAARA,GAAoBA,EAAM,GACzD,8CAI8B7E,MAAMe,IAAYA,EAAO0K,WAEnC,CAAEA,SAAS,EACrC,CA+GmCuC,CAAyBD,GAElD,IAAKpC,EAAiBF,QACpB,MAAM,IAAIjV,MAAMmV,EAAiB/V,OAGnCyM,EAAOsL,YAAYC,IAAIhJ,EAAemJ,IAGxC1L,EAAOsL,YAAYC,IACjBK,EAAoB,CAClB5X,UAAWgM,EACXjM,QAASyV,EACT9U,YAAa,CAAC,SAAU,mBAAoB,KAAM2T,GAClDpU,uBACAC,MAAO0U,KAIX,MAAMiD,EAAgB,IAAIne,OAAO,MAAMya,UAGvCnI,EAAOsL,YAAYC,IAAI7C,GAAemD,EAAejD,EAAI0B,IAEzDtB,GAAezO,KAAK,eAAevH,MAAOyB,EAAKzG,EAAKyU,KAClD,MAAMnQ,MAAEA,EAAKE,UAAEA,GAAciC,EAAI7B,KAEjC,IAAKN,EAQH,YAPAtE,EACGuQ,OAAO,KACPjL,KAAK,CACJC,MAAO,sBAERnF,MAKL,MAAM0d,EAAexN,IACnB0B,EAAOW,OAAO5R,OAAOwE,MAAM+K,GAE3BmE,EAAKnE,GAEE,MAGT,GAAkB,aAAd9L,EAA0B,CAsB5B,UArB0BoW,EACvB9Z,IACC,6BACA,CACE,eAAgB,mBAChBiM,OAAQ,mBACRgR,cAAe,UAAUzZ,MAE3B,GAEDS,MAAKC,MAAO+D,IACX,GAA4C,iBAAjCA,EAASgD,MAAMiS,MAAMC,QAG9B,OAFArD,EAAG9S,oBAAsBxD,EAElByE,EAGT/I,EAAIuQ,OAAO,KAAKjL,KAAK,CAAEC,MAAO,6BAA8BnF,KAAK,IAElEqF,MAAMqY,GAGP,OAGF/d,EAASC,EAAK,IAAK,UACd,GAAkB,YAAdwE,EAAyB,CAwBlC,UAvB0BoW,EACvB9Z,IACC,YACA,CACE,eAAgB,mBAChBiM,OAAQ,mBACRmR,MAAO5Z,IAET,GAEDS,MAAMgE,IACL,GAAIA,EAASgD,MAAMoS,OAAOlN,OAKxB,OAJA2J,EAAG9S,yBAAsBoH,EAEzBlP,EAAIG,UAAU,aAAc4I,EAASpE,QAAQ,eAAiB,IAEvDoE,EAGT/I,EAAIuQ,OAAO,KAAKjL,KAAK,CAAEC,MAAO,6BAA8BnF,KAAK,IAElEqF,MAAMqY,GAGP,OAGF/d,EAASC,EAAK,IAAK,SAIvBgS,EAAOsL,YAAYC,IAAIvC,IAEvB,MAAMtI,GACQ,IAAZqJ,EACI,IAAI3F,EACFgE,EACA5R,OAAOwC,OACL,CAAEoT,UAAWpC,GACM,iBAAZD,EACH,CAAErF,cAAeqF,EAAQD,OAAQnF,gBAAiBoF,EAAQI,kBAC1DjN,SAGRA,EAIN,OAFqB,IAAI6C,EAAcC,EAAQ,CAAEU,cAAaxM,MAAO0U,IAE9D,KACL5I,EAAOsL,YAAYC,IACjBrE,IACGjZ,IACCgZ,QAAQ9R,IAAI,0BAA2BlH,GAEhCA,EAAIK,MAAM,KAAK,GAAGga,SAAS,iBAEpC,CAACvR,EAAUtC,IACF6M,OAAOyB,KAAK1V,EAAYme,EAAa/W,EAAI9B,QAAQpC,MAAQ,GAAIqY,EAAGpK,UAAUzH,EAAU0H,OAGhG,EAvSX,IAA6BkC,GA4S7B,CDhlBAqI,GAAeuC,IAAItC,EAAQ3V,QAC3B0V,GAAeuC,IAAItC,EAAQoD,WAAW,CAAEC,UAAU"}