@metricinsights/pp-dev 0.10.0 → 0.10.1

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.0",
4
+ "version": "0.10.1",
5
5
  "description": "Portal Page dev build tool",
6
6
  "bin": {
7
7
  "pp-dev": "bin/pp-dev.js"
@@ -59,7 +59,6 @@
59
59
  "diff-match-patch": "^1.0.5",
60
60
  "dir-compare": "^5.0.0",
61
61
  "ejs": "^3.1.10",
62
- "esbuild": "^0.24.0",
63
62
  "express": "^4.21.1",
64
63
  "extract-zip": "^2.0.1",
65
64
  "file-type": "^19.6.0",
@@ -69,13 +68,12 @@
69
68
  "jsdom": "^25.0.1",
70
69
  "memory-cache": "^0.2.0",
71
70
  "picocolors": "^1.1.1",
72
- "sass": "^1.80.7",
71
+ "sass": "^1.87.0",
73
72
  "sharp": "^0.33.5",
74
73
  "source-map-support": "^0.5.21",
75
74
  "svgo": "^3.3.2",
76
75
  "svgtofont": "^6.0.1",
77
76
  "typescript": "^5.6.0",
78
- "vite": "^5.4.11",
79
77
  "vite-plugin-image-optimizer": "^1.1.8",
80
78
  "vite-plugin-zip-pack": "^1.2.4",
81
79
  "winston": "^3.17.0"
@@ -93,13 +91,17 @@
93
91
  "@types/jsdom": "^21.1.7",
94
92
  "@types/memory-cache": "^0.2.6",
95
93
  "@types/node": "^20.17.6",
94
+ "esbuild": "^0.25.3",
96
95
  "prettier": "^3.3.3",
97
96
  "rimraf": "^6.0.1",
98
- "rollup": "^4.26.0",
99
- "rollup-plugin-dts": "^6.1.1",
100
- "rollup-plugin-scss": "^4.0.0",
97
+ "rollup": "^4.40.0",
98
+ "rollup-plugin-dts": "^6.2.1",
99
+ "rollup-plugin-scss": "^4.0.1",
101
100
  "semantic-release": "^24.2.3",
102
- "tslib": "^2.8.1"
101
+ "semantic-release-github-pullrequest": "^1.3.0",
102
+ "semantic-release-monorepo": "^8.0.2",
103
+ "tslib": "^2.8.1",
104
+ "vite": "^6.3.3"
103
105
  },
104
106
  "files": [
105
107
  "bin",
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("./plugin-CoHlzIq-.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-7kvqDDBw.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-7kvqDDBw.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="/*!\n",S="\n */",$=(e,t)=>` * ${t}`;function L(e){return`${R}${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,$)}${S}`}async function O(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 I(e){return(await import(s.pathToFileURL(e).toString())).default}async function U(e){return JSON.parse(i.readFileSync(e,{encoding:"utf-8"}))}async function D(e,t){for(const i of t)if(e.includes(i)){if(/\.[cm]?ts$/i.test(i))return await O(i);if(/\.[cm]?js$/i.test(i))return await I(n.resolve(".",i));if(i.endsWith(".json"))return await U(n.resolve(".",i))}return null}function T(){const e=process.cwd();try{return JSON.parse(i.readFileSync(n.resolve(e,"package.json"),{encoding:"utf-8",flag:"r"}))}catch{return{}}}async function x(){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 D(n,y);if(a&&(s=a,o=!0),n.length&&!o){const e=await D(n,j);e&&(s={backendBaseURL:e.baseURL,portalPageId:e.portalPageId},o=!0)}const r=T();return o||"object"!=typeof r["pp-dev"]||(s=r["pp-dev"]),s}exports.VERSION=g,exports.getViteConfig=async function(){const t=T().name,n=await x(),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:L}},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 x(),a=T().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-7kvqDDBw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-7kvqDDBw.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","START","END","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"),r=require("vite"),a=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(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),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,r)=>{const a=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return r.replace(a,((e,...r)=>e.startsWith("!!")?r[1]:`http${r[2]}${t}`))},A=(e,t,r)=>{const a=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),s=new RegExp(`${e}`,"gi"),i=r.replace(a,t);return i===r?i.replace(s,t):i},$=(e,t,r)=>{e.setHeader("location",t),e.statusCode=r,e.end()};function L(e){return e.split("?")[0]}const S=new Map,I="default",E=(e="info",t=I)=>{if(S.has(t))return S.get(t);if(t===I){const a=r.createLogger(e);return S.set(t,a),a}const a=r.createLogger(e);return S.set(t,a),a},j=a.createColors(),O=function(){const e=setInterval((function(){if(document.querySelector("#mi-react-root form")){clearInterval(e);const t=document.querySelector("#mi-react-root form"),r=t?.firstChild,a=r.lastChild.cloneNode(!0);a.innerHTML="";const s=a.cloneNode(!0);s.innerText="OR";const i=a.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),r.appendChild(s),r.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,r=t.dataset.value;c.forEach((e=>e.classList.remove("active"))),t.classList.add("active"),u(r)}))})),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,r=p?.querySelector(".token-type-option.active"),a=r?.dataset.value||"personal";fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:a}),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)},C=/^(https?:\/\/)([^/]+)(\/.*)?$/i,F="X-PP-Proxy";function R(t){const{rewritePath:r=/^\/(?!pt).*/i,baseURL:a="",devServer:s,disableSSLValidation:i=!1,miAPI:n}=t;if(!a)throw new Error("Base url is required");const o=a.replace(C,"$2"),p=a.replace(C,"$1$2"),c=import("file-type"),l=E();return e.createProxyMiddleware({selfHandleResponse:!0,pathFilter:(e,a)=>!(t.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:a,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[o]:"localhost"},logger:{info:()=>{},log:()=>{},error:()=>{},warn:()=>{}},secure:!i,headers:{host:o,origin:p},on:{proxyReq(e,t,r){const s=t.headers.host,i=e.getHeader("referer");return l.info(`${j.blue("Proxies request:")} ${j.green(t.method)} ${t.url} -> ${j.green(e.method)} ${e.protocol}//${e.host}${e.path}`),s&&i&&"string"==typeof i&&e.setHeader("referer",i.replace(new RegExp(`https?://${s}`),a)),n.personalAccessToken&&e.setHeader("Authorization",`Bearer ${n.personalAccessToken}`),t.socket.on("close",(()=>{setTimeout((()=>{e.destroyed||e.destroy()}),200)})),e},proxyRes:(t,r,a)=>{if(t.headers["content-type"]?.includes("text/event-stream")||t.headers["transfer-encoding"]?.includes("chunked")&&"no"===t.headers["x-accel-buffering"]){l.info(`${j.blue("Start streaming for request:")} ${j.green(r.method)} ${r.url}`);const e=async(e,t,r)=>{r.setHeader(F,1),r.setHeaders(new Map(Object.entries(e.headers))),e.pipe(r)};return e(t,r,a)}const s=e.responseInterceptor((async(e,t,r,a)=>{a.setHeader(F,1);if(await(await c).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(r.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 r=window.location.href;const a=function(){const s=new URLSearchParams(window.location.search);s.has("proxyRedirect")?r!==window.location.href?(r=window.location.href,setTimeout(a,t<3?3e3:5e3)):(localStorage.setItem(e,""+ ++t),window.location.href=s.get("proxyRedirect")):localStorage.removeItem(e)};setTimeout(a,3e3)};t+=`<script>(${e.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(t+=`<script>const host = "${o}";\n(${O.toString()})()<\/script>`)}catch{}const a=r.headers.host??"";return A("/auth/saml/login","/login",P(o,a,t))}}));return s(t,r,a)},error(e,t,r){const a=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;l.error(a),r.writable&&r.writeHead(500,{"Content-Type":"text/plain"}),r.end(a)}}})}class B{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 B{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,r){const a=new(await this.formdataModulePromise).FormData,s=new File([t.buffer],"file.zip",{type:"application/zip"});a.append("file",s);const i=this.getUploadUrl(e);return this.axios.post(i,a,{withCredentials:!0,headers:Object.assign({},r,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:i})})}).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,r){const a=new(await this.formdataModulePromise).FormData,s=new(await this.formdataModulePromise).File([t.buffer],"file.zip",{type:"application/zip"});a.append("file",s,"file.zip");const i=this.getUploadTemplateUrl(e);return this.axios.post(i,a,{withCredentials:!0,headers:Object.assign({},r,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:i})})}).then((e=>e.data))}}class H 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 D extends B{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 B{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 U="[DEV PAGE. DO NOT DELETE]";class V{#e;#t;#r=null;#a;#s;#i;#n;#o;#p;#c;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:r={},portalPageId:a,templateLess:i=!0,disableSSLValidation:o=!1,v7Features:p=!1,personalAccessToken:c}=t||{};this.#e=r,this.#s=[],this.#a="",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:r}),this.portalPageId=a,this.templateLess=i,this.assetsApi=new(p?H:N)(this.#t),this.pageApi=new D(this.#t),this.pageTemplateApi=new M(this.#t),this.logger=E()}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.#r||(this.#p=new Promise((e=>{this.#c=e}))),this.#r)return Promise.resolve(this.#r);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(j.green("Page fetched")),e))).catch((async t=>{throw this.#c(!1),await this.pageApi.checkAuth(this.#l(e))?(this.logger.error(j.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.#r=this.localTemplateHTML,this.logger.info(j.green("Local page template fetched")),this.#c(!0),this.#r}let t=(await this.pageApi.getAll(this.#l(e)).then((e=>(this.logger.info(j.green("Page list fetched")),e))).catch((async t=>{throw this.#c(!1),await this.pageApi.checkAuth(this.#l(e))?(this.logger.error(j.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===U));return t||(this.logger.warn(j.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:U,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#l(e)).then((e=>(this.logger.info(j.green("Dev page created")),e))).catch((e=>{throw this.logger.error(j.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 "${U}" already exists`)}))),await this.pageApi.getPageContent(t.internal_name,this.#l(e)).then((e=>(this.#r=e,e))).then((e=>(this.#c(!0),this.logger.info(j.green("Page template fetched")),e))).catch((e=>{throw this.#c(!1),this.logger.error(j.red(`Error fetching page template: ${e.message}`)),new Error("Error fetching page template")}))}async getPageVariables(e,t){return this.#r=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:r,template:a}=e;if(a&&t){const e=JSON.parse(t);return this.#s=e,this.#a=r,e}return this.#s=[],this.#a=r,[]})).catch((t=>{if(this.logger.error(j.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 r="string"==typeof e?e:e.toString("utf-8");for(const e of this.#s)r=r.replace(new RegExp(`\\[${e.name}\\]`,"g"),e.value);const a=new i.JSDOM(t?r:this.#r),s="%%PLACEHOLDER%%";if(!t){const e=a.window.document.createElement("div");e.innerHTML=s;const t=a.window.document.querySelector(".main-side");if(t){const r=t.querySelectorAll("script");r.length?t.insertBefore(e,r.item(r.length-1)):t.append(e)}else{const t=a.window.document.createElement("div");t.append(e),a.window.document.body.append(t)}const r=a.window.document.querySelector("head"),i=r.querySelector("title");i?i.text=this.#a:r.innerHTML+=`<title>${this.#a}</title>`}return a.serialize().replace(new RegExp(`<div>\\s*${s}\\s*<\\/div>`,"i"),r)}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 r=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(r.id,e,this.#e)}if(t.template)return await this.assetsApi.uploadTemplateAssets(t.template,e,this.#e)}}}async get(e,t,r=!1){const a=r?t:Object.assign({},this.#l(this.#e),t);return await this.#t.get(e,{headers:a})}}class q{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=E(),this.init()}init(){const{ws:e}=this.server;for(const[t,r]of this.eventMap)e.on(t,r)}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(j.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 r=await(t?.getAssets().catch((e=>{if(s.isAxiosError(e)){if(412===e.response?.status)return this.logger.info(j.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(j.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(r instanceof Error)return;const a=r?await(e?.saveBackupAndBuild(r).catch((e=>{if("Backup file is not a ZIP file"===e.message)return this.logger.error(j.red("Backup file is not a ZIP file")),e}))):await(e?.buildNewAssets());if(!(a&&a instanceof Buffer))return a instanceof Error?(this.server.ws.send("template:sync:response",{error:a.message}),void this.logger.error(j.red(a.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(j.red("Failed to build new assets")));{const r=await(t?.updateAssets(a));if("OK"===r?.status){const t=e?.getBackupMeta(),{lastBackupName:r,lastBackupHash:a,lastBackupDate:s}=t||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};this.server.ws.send("template:sync:response",{syncedAt:new Date(s),currentHash:a,backupFilename:r}),this.logger.info(j.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(j.red("Failed to update assets"))}}}}const z=new y.Cache,_=/\.[a-z0-9]+$/i;function Z(e){const{devServer:t,ttl:r=6e5}=e,a=E();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){a.info(`${j.blue("Proxies request:")} ${j.green(e.method)} ${i} -> ${j.blue("Cache")} ${i}`);for(const[e,r]of Object.entries(s.headers))t.setHeader(e,r);return t.write(s.content),void t.end()}const n=t.end,o=t.write;let p=Buffer.from("","utf8");t.write=function(e,r,a){return t.hasHeader(F)?(p=Buffer.concat([p,e]),!0):o.call(this,e,r,a)},t.end=function(e,s,o){if(!t.hasHeader(F))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(F)&&(a.info(`${j.blue("[Cached]")} ${i}`),z.put(i,{headers:t.getHeaders(),content:p},r)),n.call(this,p,s,o)}}s()}}const W="pageName",Y="date",J=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-CoHlzIq-.js",document.baseURI).href)),K=v.resolve(J,"..",".."),G=v.resolve(K,"..",".."),X=v.resolve(G,".pp-dev-meta"),Q=v.resolve(X,"sync-service.meta.json");class ee{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;logger;constructor(e,t){this.pageName=e;const{backupFolder:r=v.resolve(x.cwd(),"backups"),distZipFolder:a=v.resolve(x.cwd(),"dist-zip"),distZipFilename:s=`${this.pageName}.zip`,backupNameTemplate:i=`{${W}}-{${Y}}.zip`,dateFormat:n=(e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,""))}=t||{};this.backupFolder=r,this.backupNameTemplate=i,this.dateFormat=n,this.distZipFolder=a,this.distZipFilename=s,this.syncMeta(),this.logger=E()}async checkMeta(){try{await c.promises.stat(X)}catch{await c.promises.mkdir(X)}try{await c.promises.stat(this.backupFolder)}catch{await c.promises.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await c.promises.readFile(Q,{encoding:"utf-8"}).catch((()=>"{}"))}async writeMetaFile(e){return await this.checkMeta(),await c.promises.writeFile(Q,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(`{${W}}`,e).replace(`{${Y}}`,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 r=new Date,a=this.backupName(this.pageName,r);return this.currentMeta.lastBackupName=a,this.currentMeta.lastBackupHash=t,this.currentMeta.lastBackupDate=r.toISOString(),await this.syncMeta(),await c.promises.writeFile(v.resolve(this.backupFolder,a),e).finally((()=>{this.logger.info(`Backup saved to ${a}`)}))}async buildNewAssets(){const e=new Promise(((e,t)=>{let r="";this.logger.info(j.cyan("[DistService] Build started"));const a=k.spawn("node",[v.resolve(K,"./bin/pp-dev.js"),"build"],{cwd:x.cwd(),env:Object.assign({},x.env,{NODE_ENV:"production"}),stdio:"inherit"});a.on("message",(e=>{r+=e})),a.on("close",(a=>{0===a?e(r):t(new Error(`build command exited with code ${a}`))})),a.on("error",(e=>{t(e)}))}));try{await e.finally((()=>{this.logger.info(j.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 te(e,t){return async(r,a,s)=>{if(await e(r.url??"",r,a)){E().info(`Rewrite response for ${r.url}`);const e=a.end,s=[];a.write=function(e){return s.push(e),!0},a.end=function(i,n,o){"string"==typeof i&&s.push(Buffer.from(i));const p=a.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,r,a),p),l,d),this}}s()}}function re(e,r){const a=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,s=E();return(i,n,o)=>{const p=new t.URL(i.url??"","http://localhost"),{pathname:c,search:l}=p,d=["/",a];if(r&&(d.push(`/pt/${r}`),d.push(`/pl/${r}`)),d.includes(c)){const t=`${e}${l}`;return s.info(j.yellow(`Redirecting to: ${t}`)),$(n,t,302)}o()}}function ae(e,t,r){const{templateLess:a=!1,miHudLess:s=!1,portalPageId:i}=r,n=E();return(r,o,p)=>{const c=!(a&&s),l=e.test(L(r.url??""));if(c&&l){const e=r.headers??{};n.info(j.green("Start loading page data"));(a||void 0===i?t.getPageTemplate(e):t.getPageVariables(i,e)).then((()=>{p()})).catch((e=>{if(e.response){n.info(j.red("Page data loading failed. Not authorized"));const e=`/home?proxyRedirect=${encodeURIComponent("/")}`;return n.info(j.yellow(`Redirecting to: ${e}`)),$(o,e,302)}n.info(j.red(`Page data loading failed. Error: ${e.message}`)),p(e)}))}else p()}}const se=m();function ie(e,t,r){return t(e)?{isValid:!0}:{isValid:!1,error:r}}se.use(m.json()),se.use(m.urlencoded({extended:!0})),exports.MiAPI=V,exports.colors=j,exports.createLogger=E,exports.cutUrlParams=L,exports.initLoadPPData=ae,exports.initPPRedirect=re,exports.initProxy=R,exports.initProxyCache=Z,exports.initRewriteResponse=te,exports.internalServer=se,exports.normalizeVitePPDevConfig=function(e){const t=function(e){const t=[ie(e,(e=>"object"==typeof e&&null!==e),"VitePPDevOptions must be an object"),ie(e.templateName,(e=>"string"==typeof e&&e.length>0),"VitePPDevOptions.templateName must be a non-empty string"),ie(e.backendBaseURL,(e=>void 0===e||"string"==typeof e&&e.length>0),"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),ie(e.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.portalPageId must be a positive number if provided"),ie(e.appId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.appId must be a positive number if provided"),ie(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 r=e.appId??e.portalPageId,{enableProxyCache:a=!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:a,proxyCacheTTL:s,disableSSLValidation:i,imageOptimizer:m,templateLess:p,miHudLess:o,outDir:c,distZip:g,syncBackupsDir:d,v7Features:h,personalAccessToken:u,portalPageId:r,...e}},exports.redirect=$,exports.urlReplacer=P,exports.vitePPDev=function(e){const{templateName:t,templateLess:r,backendBaseURL:a,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[ie(e.base,(e=>"string"==typeof e&&e.length>0&&"/"!==e),'Server base path cannot be empty or "/"'),ie(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:a,portalPageId:i,templateLess:r,v7Features:d},d&&(e.base=`/pl/${t}`),e.root&&e.root,e},transformIndexHtml:async(e,t)=>{const r={html:e,tags:[]};return u&&(u=!1,r.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),r},configureServer:u=>{let g=u.config.base;g.endsWith("/")||(g+="/");const m=g.substring(0,g.lastIndexOf("/"));if(u.middlewares.use(re(g,t)),a){const w=new URL(a).host,y={headers:{host:w,referer:a,origin:a.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:i,appId:i,templateLess:r,disableSSLValidation:p,v7Features:d,personalAccessToken:h??process.env.MI_ACCESS_TOKEN},v=[ie((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"),ie(f.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI portalPageId must be a positive number if provided"),ie(f.appId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI appId must be a positive number if provided"),ie(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(a,y);if(n){let e=+o;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:u,ttl:e},r=function(e){return[ie(e.ttl,(e=>"number"==typeof e&&e>0),"Proxy cache TTL must be a positive number")].find((e=>!e.isValid))||{isValid:!0}}(t);if(!r.isValid)throw new Error(r.error);u.middlewares.use(Z(t))}u.middlewares.use(R({devServer:u,baseURL:a,proxyIgnore:["/@vite","/@metricinsights","/@",m],disableSSLValidation:p,miAPI:b}));const x=new RegExp(`^((${g})|/)$`);u.middlewares.use(ae(x,b,e)),se.post("/@api/login",(async(e,t,r)=>{const{token:a,tokenType:s}=e.body;if(!a)return void t.status(400).json({error:"Token is required"}).end();const i=e=>(u.config.logger.error(e),r(e),null);if("personal"===s){if(!await b.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${a}`},!0).then((async e=>{if("number"==typeof e.data?.user?.user_id)return b.personalAccessToken=a,e;t.status(400).json({error:"Token expired or invalid"}).end()})).catch(i))return;$(t,"/",302)}else if("regular"===s){if(!await b.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:a},!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;$(t,"/",302)}})),u.middlewares.use(se);const k=!1!==c?new ee(t,Object.assign({backupDir:l},"object"==typeof c?{distZipFolder:c.outDir,distZipFilename:c.outFileName}:void 0)):void 0;return new q(u,{distService:k,miAPI:b}),()=>{u.middlewares.use(te((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-CoHlzIq-.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-CoHlzIq-.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/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],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","urlPathReplacer","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","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","err","errorMessage","message","stack","writable","writeHead","BaseAPI","axios","constructor","this","assign","accept","maxRedirects","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","withCredentials","responseType","data","file","formData","FormData","assetFile","File","buffer","append","post","Referer","getUri","AssetsV7API","PageAPI","Accept","Pragma","Expires","pages","id","page","internalPageName","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","create","clearHeaders","obj","undefined","keys","key","authorization","updateHeaders","localTemplateHTML","checkAuth","red","template_id","getAll","find","p","yellow","enabled","visible_in_homepage","getPageContent","pageId","getPageTemplate","tags","template","parsed","parse","reason","status","buildPage","miHudLess","result","v","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","head","title","text","serialize","downloadPageAssets","pageInfo","templateInfo","downloadTemplateAssets","assets","uploadPageAssets","uploadTemplateAssets","cleanup","normalizedHeaders","ClientService","server","eventMap","onInfoDataRequest","bind","onTemplateSync","init","ws","event","handler","send","distService","config","clientInjectionPlugin","canSync","currentAssets","getAssets","isAxiosError","refresh","cause","code","newAssets","saveBackupAndBuild","buildNewAssets","Buffer","updateResult","updateAssets","backupMeta","getBackupMeta","lastBackupName","backupFilename","lastBackupHash","currentHash","lastBackupDate","backupDate","Date","toISOString","syncedAt","cache","memoryCache","Cache","testCacheUrlRegExp","initProxyCache","ttl","next","originalUrl","cacheItem","header","write","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","fs","promises","stat","mkdir","checkMeta","readFile","meta","writeFile","writeMetaFile","readMetaFile","backupPath","backupName","backupFile","slice","backupFileHash","crypto","createHash","update","digest","getLatestSavedBackup","filename","finally","buildCommand","reject","cyan","proc","child_process","spawn","env","NODE_ENV","stdio","msg","console","saveBackup","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","getPageVariables","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-B909lge8.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="/*!\n",R="\n */",E=(e,t)=>` * ${t}`;function P(e){return`${I}${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,E)}${R}`}async function N(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 k(e){return(await import(m(e).toString())).default}async function x(e){return JSON.parse(r(e,{encoding:"utf-8"}))}async function _(e,t){for(const n of t)if(e.includes(n)){if(/\.[cm]?ts$/i.test(n))return await N(n);if(/\.[cm]?js$/i.test(n))return await k(s.resolve(".",n));if(n.endsWith(".json"))return await x(s.resolve(".",n))}return null}function C(){const e=process.cwd();try{return JSON.parse(r(s.resolve(e,"package.json"),{encoding:"utf-8",flag:"r"}))}catch{return{}}}async function T(){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 _(n,$);if(o&&(i=o,s=!0),n.length&&!s){const e=await _(n,h);e&&(i={backendBaseURL:e.baseURL,portalPageId:e.portalPageId},s=!0)}const a=C();return s||"object"!=typeof a["pp-dev"]||(i=a["pp-dev"]),i}async function U(){const n=C().name,i=await T(),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:P}},outDir:a},css:{modules:{localsConvention:"dashes"},scss:{api:"modern"}},ppDevConfig:s,plugins:o}}function z(e,t){return async(n,i={})=>{const{PHASE_DEVELOPMENT_SERVER:s}=await import("next/constants.js"),o=await T(),a=C().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,U as g,z as w};
2
- //# sourceMappingURL=index-C2GV98GH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C2GV98GH.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","START","END","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":"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"}
@@ -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)=>{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},$=(e,t,a)=>{e.setHeader("location",t),e.statusCode=a,e.end()};function L(e){return e.split("?")[0]}const I=new Map,S="default",E=(e="info",t=S)=>{if(I.has(t))return I.get(t);if(t===S){const a=s(e);return I.set(t,a),a}const a=s(e);return I.set(t,a),a},F=i(),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"),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)},B=/^(https?:\/\/)([^/]+)(\/.*)?$/i,O="X-PP-Proxy";function H(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(B,"$2"),l=s.replace(B,"$1$2"),c=import("file-type"),d=E();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(`${F.blue("Proxies request:")} ${F.green(t.method)} ${t.url} -> ${F.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(`${F.blue("Start streaming for request:")} ${F.green(a.method)} ${a.url}`);const t=async(e,t,a)=>{a.setHeader(O,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(O,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(${j.toString()})()<\/script>`)}catch{}const r=a.headers.host??"";return A("/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 N{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 C extends N{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,s=new File([t.buffer],"file.zip",{type:"application/zip"});r.append("file",s);const i=this.getUploadUrl(e);return this.axios.post(i,r,{withCredentials:!0,headers:Object.assign({},a,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:i})})}).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,s=new(await this.formdataModulePromise).File([t.buffer],"file.zip",{type:"application/zip"});r.append("file",s,"file.zip");const i=this.getUploadTemplateUrl(e);return this.axios.post(i,r,{withCredentials:!0,headers:Object.assign({},a,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:i})})}).then((e=>e.data))}}class M extends C{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 R extends N{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 D extends N{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 V="[DEV PAGE. DO NOT DELETE]";class U{#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?M:C)(this.#t),this.pageApi=new R(this.#t),this.pageTemplateApi=new D(this.#t),this.logger=E()}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(F.green("Page fetched")),e))).catch((async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#c(e))?(this.logger.error(F.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(F.green("Local page template fetched")),this.#l(!0),this.#a}let t=(await this.pageApi.getAll(this.#c(e)).then((e=>(this.logger.info(F.green("Page list fetched")),e))).catch((async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#c(e))?(this.logger.error(F.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===V));return t||(this.logger.warn(F.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:V,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#c(e)).then((e=>(this.logger.info(F.green("Dev page created")),e))).catch((e=>{throw this.logger.error(F.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 "${V}" 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(F.green("Page template fetched")),e))).catch((e=>{throw this.#l(!1),this.logger.error(F.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(F.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 z{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=E(),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(F.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(F.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(F.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(F.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(F.red(r.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(F.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(F.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(F.red("Failed to update assets"))}}}}const _=new c.Cache,q=/\.[a-z0-9]+$/i;function Z(e){const{devServer:t,ttl:a=6e5}=e,r=E();return t.cache=_,(e,t,s)=>{const i=e.originalUrl||e.url||"";if(q.test(i.split("?")[0]||"")){const s=_.get(i);if(s){r.info(`${F.blue("Proxies request:")} ${F.green(e.method)} ${i} -> ${F.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(O)?(p=Buffer.concat([p,e]),!0):o.call(this,e,a,r)},t.end=function(e,s,o){if(!t.hasHeader(O))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(O)&&(r.info(`${F.blue("[Cached]")} ${i}`),_.put(i,{headers:t.getHeaders(),content:p},a)),n.call(this,p,s,o)}}s()}}const W="pageName",Y="date",J=d.dirname("undefined"!=typeof __filename&&__filename||a(import.meta.url)),K=d.resolve(J,"..",".."),G=d.resolve(K,"..",".."),X=d.resolve(G,".pp-dev-meta"),Q=d.resolve(X,"sync-service.meta.json");class ee{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=`{${W}}-{${Y}}.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=E()}async checkMeta(){try{await h.stat(X)}catch{await h.mkdir(X)}try{await h.stat(this.backupFolder)}catch{await h.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await h.readFile(Q,{encoding:"utf-8"}).catch((()=>"{}"))}async writeMetaFile(e){return await this.checkMeta(),await h.writeFile(Q,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(`{${W}}`,e).replace(`{${Y}}`,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(F.cyan("[DistService] Build started"));const r=m.spawn("node",[d.resolve(K,"./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(F.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 te(e,t){return async(a,r,s)=>{if(await e(a.url??"",a,r)){E().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 ae(e,t){const a=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,s=E();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(F.yellow(`Redirecting to: ${t}`)),$(n,t,302)}o()}}function re(e,t,a){const{templateLess:r=!1,miHudLess:s=!1,portalPageId:i}=a,n=E();return(a,o,p)=>{const l=!(r&&s),c=e.test(L(a.url??""));if(l&&c){const e=a.headers??{};n.info(F.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(F.red("Page data loading failed. Not authorized"));const e=`/home?proxyRedirect=${encodeURIComponent("/")}`;return n.info(F.yellow(`Redirecting to: ${e}`)),$(o,e,302)}n.info(F.red(`Page data loading failed. Error: ${e.message}`)),p(e)}))}else p()}}const se=x();function ie(e,t,a){return t(e)?{isValid:!0}:{isValid:!1,error:a}}function ne(e){const t=function(e){return[ie(e,(e=>"object"==typeof e&&null!==e),"VitePPDevOptions must be an object"),ie(e.templateName,(e=>"string"==typeof e&&e.length>0),"VitePPDevOptions.templateName must be a non-empty string"),ie(e.backendBaseURL,(e=>void 0===e||"string"==typeof e&&e.length>0),"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),ie(e.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.portalPageId must be a positive number if provided"),ie(e.appId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.appId must be a positive number if provided"),ie(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 oe(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[ie(e.base,(e=>"string"==typeof e&&e.length>0&&"/"!==e),'Server base path cannot be empty or "/"'),ie(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(ae(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=[ie((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"),ie(f.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI portalPageId must be a positive number if provided"),ie(f.appId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI appId must be a positive number if provided"),ie(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[ie(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(Z(t))}u.middlewares.use(H({devServer:u,baseURL:r,proxyIgnore:["/@vite","/@metricinsights","/@",m],disableSSLValidation:p,miAPI:b}));const k=new RegExp(`^((${g})|/)$`);u.middlewares.use(re(k,b,e)),se.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;$(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;$(t,"/",302)}})),u.middlewares.use(se);const T=!1!==l?new ee(t,Object.assign({backupDir:c},"object"==typeof l?{distZipFolder:l.outDir,distZipFilename:l.outFileName}:void 0)):void 0;return new z(u,{distService:T,miAPI:b}),()=>{u.middlewares.use(te((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}}}se.use(x.json()),se.use(x.urlencoded({extended:!0}));export{U as M,F as a,Z as b,E as c,H as d,re as e,te as f,se as g,L as h,ae as i,ne as n,$ as r,P as u,oe as v};
2
- //# sourceMappingURL=plugin-B909lge8.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-B909lge8.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/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],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","urlPathReplacer","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","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","err","errorMessage","message","stack","writable","writeHead","BaseAPI","axios","constructor","this","assign","accept","maxRedirects","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","withCredentials","responseType","data","file","formData","FormData","assetFile","File","buffer","append","post","Referer","getUri","AssetsV7API","PageAPI","Accept","Pragma","Expires","pages","id","page","internalPageName","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","create","clearHeaders","obj","undefined","keys","key","authorization","updateHeaders","localTemplateHTML","checkAuth","red","template_id","getAll","find","p","yellow","enabled","visible_in_homepage","getPageContent","pageId","getPageTemplate","tags","template","parsed","parse","reason","status","buildPage","miHudLess","result","v","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","head","title","text","serialize","downloadPageAssets","pageInfo","templateInfo","downloadTemplateAssets","assets","uploadPageAssets","uploadTemplateAssets","cleanup","normalizedHeaders","ClientService","server","eventMap","onInfoDataRequest","bind","onTemplateSync","init","ws","event","handler","send","distService","config","clientInjectionPlugin","canSync","currentAssets","getAssets","isAxiosError","refresh","cause","code","newAssets","saveBackupAndBuild","buildNewAssets","Buffer","updateResult","updateAssets","backupMeta","getBackupMeta","lastBackupName","backupFilename","lastBackupHash","currentHash","lastBackupDate","backupDate","Date","toISOString","syncedAt","cache","memoryCache","Cache","testCacheUrlRegExp","initProxyCache","ttl","next","originalUrl","cacheItem","header","write","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","fs","stat","mkdir","checkMeta","readFile","meta","writeFile","writeMetaFile","readMetaFile","backupPath","backupName","backupFile","slice","backupFileHash","crypto","createHash","update","digest","getLatestSavedBackup","filename","finally","buildCommand","reject","cyan","proc","child_process","spawn","env","NODE_ENV","stdio","msg","console","saveBackup","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","getPageVariables","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":"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"}