@metricinsights/pp-dev 0.15.1 → 0.16.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/CHANGELOG.md +12 -0
- package/dist/CHANGELOG.md +12 -0
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/{index-4BMbdu0V.js → index-Bu8AM2lb.js} +2 -2
- package/dist/cjs/index-Bu8AM2lb.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/package.json +14 -11
- package/dist/cjs/plugin-D-TIdILy.js +2 -0
- package/dist/cjs/plugin-D-TIdILy.js.map +1 -0
- package/dist/cjs/plugin.js +1 -1
- package/dist/cjs/version-plugin-Cj4Pv-pw.js +2 -0
- package/dist/cjs/version-plugin-Cj4Pv-pw.js.map +1 -0
- package/dist/esm/cli.js +1 -1
- package/dist/esm/index-Cx5STeh7.js +2 -0
- package/dist/esm/index-Cx5STeh7.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/package.json +14 -11
- package/dist/esm/plugin-CE47-pTE.js +2 -0
- package/dist/esm/plugin-CE47-pTE.js.map +1 -0
- package/dist/esm/plugin.js +1 -1
- package/dist/esm/version-plugin-B1n39tE6.js +2 -0
- package/dist/esm/version-plugin-B1n39tE6.js.map +1 -0
- package/dist/types/index.d.ts +41 -24
- package/package.json +23 -21
- package/dist/cjs/index-4BMbdu0V.js.map +0 -1
- package/dist/cjs/plugin-nVTTdbnD.js +0 -2
- package/dist/cjs/plugin-nVTTdbnD.js.map +0 -1
- package/dist/esm/index-DsQqY4VF.js +0 -2
- package/dist/esm/index-DsQqY4VF.js.map +0 -1
- package/dist/esm/plugin-1jI0jEFU.js +0 -2
- package/dist/esm/plugin-1jI0jEFU.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("http-proxy-middleware"),t=require("vite"),r=require("picocolors"),s=require("axios"),n=require("jsdom"),a=require("https"),i=require("memory-cache"),o=require("path"),c=require("fs"),l=require("url"),p=require("crypto"),d=require("process"),h=require("child_process"),u=require("console"),g=require("zlib"),f=require("express");var m="undefined"!=typeof document?document.currentScript:null;const w=e=>e&&"object"==typeof e&&"default"in e?e.default:e;function y(e){if(e&&"object"==typeof e&&"default"in e)return e;const t=Object.create(null);if(e)for(const r in e)t[r]=e[r];return t.default=e,Object.freeze(t)}const v=w(s),b=y(i),k=y(o),x=y(p),P=y(d),T=y(h),A=y(u),S=w(f),$=(e,t,r)=>{const s=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return r.replace(s,(e,...r)=>e.startsWith("!!")?r[1]:`http${r[2]}${t}`)},I=(e,t,r)=>{e.setHeader("location",t),e.statusCode=r,e.end()};let E=new Map;const L="default",R=(e="info",r=L)=>{if(E&&"function"==typeof E.has||(E=new Map),E.has(r))return E.get(r);if(r===L){const s=t.createLogger(e);return E.set(r,s),s}const s=t.createLogger(e);return E.set(r,s),s},C=r.createColors(),D=function(){const e={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>`,endpoint:"/@api/login"},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>`,endpoint:"/@api/login"}};function t(t,r,s){const n=e[t];n&&(r.placeholder=n.placeholder,s.innerHTML=n.caption)}function r(e,t){t.textContent=e,t.classList.add("show")}function s(e){e.classList.remove("show")}function n(e,t,n,a){n.addEventListener("click",async n=>{if(n.preventDefault(),s(a),!t.value.trim())return r(`${t.placeholder} is required`,a),void t.focus();const i=document.getElementById("token-type-switcher"),o=i?.querySelector(".token-type-option.active"),c=o?.dataset.value||"personal";await async function(e,t,s,n){try{s.classList.add("loading");const a=await fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:t}),redirect:"follow"}),i=a.url&&new URL(a.url,window.location.origin);if(!i||i.pathname.startsWith("/login")||i.pathname.startsWith("/@api/"))try{const e=await a.json();r(`Login failed: ${e?.error||"Unknown error occurred"}`,n)}catch(e){r("Login failed: Unable to parse response",n)}else window.location.href=a.url}catch(e){r("Login failed: Network error. Please check your connection.",n)}finally{s.classList.remove("loading")}}(t.value.trim(),c,e,a)}),t.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),n.click())}),t.addEventListener("input",()=>{s(a)})}function a(e){const r=e.firstChild;if(!r)return;const s=r.lastChild?.cloneNode(!0);if(!s)return;s.innerHTML="";const a=s.cloneNode(!0);a.innerText="OR",a.setAttribute("role","separator"),a.setAttribute("aria-label","Alternative login method");const i=s.cloneNode(!0),o=document.createElement("div"),c=document.createElement("style");c.textContent="\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 border-radius: 4px;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n height: 26px;\n padding: 0 8px;\n font-size: 14px;\n}\n\n.helper-login-wrapper .control input:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);\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 font-weight: 500;\n}\n\n.helper-login-wrapper .footer .btn.submit:hover {\n background-color: #0056b3;\n}\n\n.helper-login-wrapper .footer .btn.submit:disabled {\n background-color: #6c757d;\n cursor: not-allowed;\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 user-select: none;\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\n.helper-login-wrapper .error-message {\n color: #dc3545;\n font-size: 12px;\n text-align: center;\n margin-top: 8px;\n display: none;\n}\n\n.helper-login-wrapper .error-message.show {\n display: block;\n}\n\n.helper-login-wrapper .loading {\n opacity: 0.6;\n pointer-events: none;\n}\n",document.head.appendChild(c),o.innerHTML=`\n<div class="helper-login-wrapper" role="form" aria-label="PP Dev Helper Login">\n <div class="title" role="heading" aria-level="2">PP Dev Helper</div>\n\n <div class="token-type-switcher" id="token-type-switcher" role="tablist" aria-label="Token type selection">\n <div class="token-type-option active" data-value="personal" role="tab" aria-selected="true" tabindex="0">\n API Token\n </div>\n <div class="token-type-option" data-value="regular" role="tab" aria-selected="false" tabindex="0">\n Legacy Token\n </div>\n </div>\n\n <div class="control">\n <input \n type="password" \n id="helper-token" \n placeholder="API Token"\n aria-label="Token input"\n aria-describedby="token-caption"\n >\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="error-message" id="error-message" role="alert" aria-live="polite"></div>\n\n <div class="footer">\n <button id="helper-token-submit" class="btn submit" type="button">\n Token Login\n </button>\n </div>\n</div>`,i.appendChild(o),r.appendChild(a),r.appendChild(i);const l=document.getElementById("token-type-switcher"),p=document.getElementById("helper-token"),d=document.getElementById("token-caption"),h=document.getElementById("helper-token-submit"),u=document.getElementById("error-message"),g=o.querySelector(".helper-login-wrapper");l&&p&&d&&h&&u&&g?(!function(e,r,s){const n=e.querySelectorAll(".token-type-option"),a=e=>{const a=e.dataset.value;n.forEach(e=>{e.classList.remove("active"),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")}),e.classList.add("active"),e.setAttribute("aria-selected","true"),e.setAttribute("tabindex","0"),t(a,r,s)};n.forEach(e=>{e.addEventListener("click",e=>{const t=e.currentTarget;a(t)}),e.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),a(e))})})}(l,p,d),n(g,p,h,u),t("personal",p,d)):console.error("Failed to find required form elements")}const i=new MutationObserver(e=>{for(const t of e)if("childList"===t.type){const e=document.querySelector("#mi-react-root form");if(e){i.disconnect(),a(e);break}}});i.observe(document.body,{childList:!0,subtree:!0});const o=document.querySelector("#mi-react-root form");o&&(i.disconnect(),a(o))},O=/^(https?:\/\/)([^/]+)(\/.*)?$/i,F="X-PP-Proxy";function N(t){const{rewritePath:r=/^\/(?!p[tl]).*/i,baseURL:s="",disableSSLValidation:n=!1,miAPI:a}=t;if(!s)throw new Error("Base url is required");const i=s.replace(O,"$2"),o=s.replace(O,"$1$2"),c=import("file-type"),l=R();return e.createProxyMiddleware({selfHandleResponse:!0,pathFilter:(e,s)=>!(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:s,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[i]:"localhost"},logger:{info:()=>{},log:()=>{},error:()=>{},warn:()=>{}},secure:!n,headers:{host:i,origin:o},on:{proxyReq(e,t,r){const n=t.headers.host,i=e.getHeader("referer");return l.info(`${C.blue("Proxies request:")} ${C.green(t.method)} ${t.url} -> ${C.green(e.method)} ${e.protocol}//${e.host}${e.path}`),n&&i&&"string"==typeof i&&e.setHeader("referer",i.replace(new RegExp(`https?://${n}`),s)),a.personalAccessToken&&e.setHeader("Authorization",`Bearer ${a.personalAccessToken}`),t.socket.on("close",()=>{setTimeout(()=>{e.destroyed||e.destroy()},200)}),e},proxyRes:(t,r,s)=>{if(t.headers["content-type"]?.includes("text/event-stream")||t.headers["transfer-encoding"]?.includes("chunked")&&"no"===t.headers["x-accel-buffering"]){l.info(`${C.blue("Start streaming for request:")} ${C.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,s)}const n=e.responseInterceptor(async(e,t,r,s)=>{s.setHeader(F,1);if(await(await c).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(r.url??"",`http://${i}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){const e=function(){const e="pp-dev::redirectCount",t="pp-dev::lastRedirect";let r=+(localStorage.getItem(e)??0);localStorage.getItem(t);Number.isNaN(r)&&(r=0);let s=window.location.href;const n=function(){const a=new URLSearchParams(window.location.search);if(!a.has("proxyRedirect"))return console.debug("No proxyRedirect param. Cleaning up."),void localStorage.removeItem(e);s!==window.location.href?(s=window.location.href,setTimeout(n,r<3?3e3:5e3)):window.location.href=a.get("proxyRedirect"),localStorage.setItem(e,""+ ++r),localStorage.setItem(t,(new Date).toISOString())};setTimeout(n,3e3)};t+=`<script>(${e.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(s.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),s.setHeader("Pragma","no-cache"),s.setHeader("Expires","0"));const n=t.slice(0,100);(n.includes("<html")||n.includes("<body")||n.includes("<head")||n.includes("html>"))&&(t+=`<script>const host = "${i}";\n(${D.toString()})()<\/script>`)}catch{}const n=r.headers.host??"";return((e,t,r)=>{const s=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),n=new RegExp(`${e}`,"gi"),a=r.replace(s,t);return a===r?a.replace(n,t):a})("/auth/saml/login","/login",$(i,n,t))}});return n(t,r,s)},error(e,t,r){const s=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;l.error(s),r.writable&&r.writeHead(500,{"Content-Type":"text/plain"}),r.end(s)}}})}class U{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 j extends U{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 s=new(await this.formdataModulePromise).FormData,{File:n}=await this.formdataModulePromise,a=new n([t],"file.zip",{type:"application/zip"});s.append("file",a);const i=this.getUploadUrl(e);return this.axios.post(i,s,{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 s=new(await this.formdataModulePromise).FormData,{File:n}=await this.formdataModulePromise,a=new n([t],"file.zip",{type:"application/zip"});s.append("file",a,"file.zip");const i=this.getUploadTemplateUrl(e);return this.axios.post(i,s,{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 M extends j{getDownloadUrl(e){return`/api/page/id/${e}/asset/download`}getDownloadTemplateUrl(e){return`/api/page_template/id/${e}/asset/download`}getUploadUrl(e){return`/api/page/id/${e}/asset/upload`}getUploadTemplateUrl(e){return`/api/page_template/id/${e}/asset/upload`}}class H extends U{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 B extends U{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}}function z(e){const t=e.response?.status||0,r=e.response?.data?.message||e.message||"Unknown error";switch(t){case 412:const e=r.toLowerCase();return e.includes("session expired")||e.includes("session has expired")?{status:t,message:r,code:"SESSION_EXPIRED",userFriendlyMessage:"Your session has expired",suggestions:["Refresh your token in the portal","Re-authenticate with the portal","Check if your token has been revoked","Ensure your token has the correct permissions"]}:{status:t,message:r,code:"AUTH_FAILED",userFriendlyMessage:"Authentication failed",suggestions:["Verify your token is correct","Check token permissions","Ensure the token hasn't expired","Try generating a new token"]};case 401:return{status:t,message:r,code:"UNAUTHORIZED",userFriendlyMessage:"Unauthorized access",suggestions:["Check if your token is valid","Verify you have the required permissions","Ensure the token hasn't been revoked","Try logging in again"]};case 403:return{status:t,message:r,code:"FORBIDDEN",userFriendlyMessage:"Access forbidden",suggestions:["Check your user permissions","Verify the portal page ID is correct","Ensure your token has the right scope","Contact your administrator"]};default:return{status:t,message:r,code:"UNKNOWN_ERROR",userFriendlyMessage:"An unexpected error occurred",suggestions:["Check your network connection","Verify the portal URL is correct","Try again in a few moments","Check the portal status"]}}}const V="[DEV PAGE. DO NOT DELETE]",_=new Map;class q{#e;#t;#r=null;#s;#n;#a;#i;#o;#c;#l;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:r={},portalPageId:s,templateLess:n=!0,disableSSLValidation:i=!1,v7Features:o=!1,personalAccessToken:c}=t||{};this.#e=r,this.#n=[],this.#s="",this.#a=o,this.#i=c,this.#o=!1,this.#c=Promise.resolve(!1);const l=`${e}:${i}`;_.has(l)?this.#t=_.get(l):(i&&(process.env.NODE_TLS_REJECT_UNAUTHORIZED="0",v.defaults.httpsAgent=new a.Agent({rejectUnauthorized:!1})),this.#t=v.create({baseURL:e,headers:r,timeout:3e4,maxRedirects:5,httpAgent:new a.Agent({keepAlive:!0,maxSockets:10}),httpsAgent:new a.Agent({keepAlive:!0,maxSockets:10})}),_.set(l,this.#t)),this.portalPageId=s,this.templateLess=n,this.assetsApi=new(o?M:j)(this.#t),this.pageApi=new H(this.#t),this.pageTemplateApi=new B(this.#t),this.logger=R()}async isTemplateLoaded(){return this.#c}get isV710OrHigher(){return this.#o}#p(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.#i&&(t.authorization=`Bearer ${this.#i}`),t}get personalAccessToken(){return this.#i}set personalAccessToken(e){this.#i=e}updateHeaders(e){this.#p(e)}get localTemplateHTML(){return'<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8" />\n <title>%%PAGE TITLE%%</title>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\n <meta name="theme-color" content="rgba(255, 255, 255, 1)"/>\n <link rel="shortcut icon" type="image/x-icon" sizes="any" href="/img/favicon/favicon.ico"/>\n <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png"/>\n <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/>\n <link rel="icon" type="image/png" sizes="48x48" href="/img/favicon/favicon-48x48.png"/>\n <meta name="msapplication-config" content="/auth/browserconfig.xml"/>\n <link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-touch-icon.png"/>\n <link rel="manifest" href="/auth/site.webmanifest"/>\n <link rel="manifest" href="/auth/manifest.json"/>\n <link rel="stylesheet" type="text/css" href="/auth/theme-vars.css"/>\n <link rel="icon" type="image/svg+xml" href="/favicon.ico" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <script src="/js/libs/underscore-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/jquery/jquery-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/application/rating_component.js" charset="utf-8"><\/script>\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.#c||this.#r||(this.#c=new Promise(e=>{this.#l=e})),this.#r)return Promise.resolve(this.#r);if(void 0===this.templateLess&&(this.templateLess=!1),this.#a){const t=await this.pageApi.get(this.portalPageId,this.#p(e)).then(e=>(this.logger.info(C.green("Page fetched")),e)).catch(async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(C.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});return void 0!==t.template_id&&(this.#o=!0),this.#r=this.localTemplateHTML,this.#r=this.#r.replace(/%%PAGE TITLE%%/g,t.name||"Local template"),this.logger.info(C.green("Local page template fetched")),this.#l(!0),this.#r}let t=(await this.pageApi.getAll(this.#p(e)).then(e=>(this.logger.info(C.green("Page list fetched")),e)).catch(async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(C.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(C.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:V,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#p(e)).then(e=>(this.logger.info(C.green("Dev page created")),e)).catch(e=>{throw this.logger.error(C.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.#p(e)).then(e=>(this.#r=e,e)).then(e=>(this.#l(!0),this.logger.info(C.green("Page template fetched")),e)).catch(e=>{throw this.#l(!1),this.logger.error(C.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.#p(t)).then(e=>{const{tags:t="[]",name:r,template:s}=e;if(s&&t){const e=JSON.parse(t);return this.#n=e,this.#s=r,e}return this.#n=[],this.#s=r,[]}).catch(t=>{if(this.logger.error(C.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})}async getPageInfo(e,t){this.portalPageId||(this.portalPageId=e);const r=this.#p(t),s=this.portalPageId;try{return this.#a?await this.#d(s,r):await this.#h(s,r)}catch(e){this.#u(e,s)}}async#d(e,t){const r=await this.pageApi.get(e,t);return this.logger.info(C.green("Page fetched")),void 0!==r.template_id&&(this.#o=!0),r}async#h(e,t){return await this.pageApi.get(e,t)}#u(e,t){if(this.#a&&e.message?.includes("access"))throw new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.");if(404===e.response?.status)throw new Error(`Portal Page with id "${t}" not found on instance ${this.#t.getUri()}`);throw 401===e.response?.status&&this.logger.error(C.red(`Current user does not have access to page with id "${t}" on instance ${this.#t.getUri()}`)),e}buildPage(e,t=!1){let r="string"==typeof e?e:e.toString("utf-8");for(const e of this.#n)r=r.replace(new RegExp(`\\[${e.name}\\]`,"g"),e.value);const s=new n.JSDOM(t?r:this.#r),a="%%PLACEHOLDER%%";if(!t){const e=s.window.document.createElement("div");e.innerHTML=a;const t=s.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=s.window.document.createElement("div");t.append(e),s.window.document.body.append(t)}const r=s.window.document.querySelector("head"),n=r.querySelector("title");n?n.text=this.#s:r.innerHTML+=`<title>${this.#s}</title>`}return s.serialize().replace(new RegExp(`<div>\\s*${a}\\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 validateCredentials(e){try{const t=e||this.#e;return await this.get("/api/user",t,!0),{isValid:!0}}catch(e){const t=z(e);return{isValid:!1,error:t.userFriendlyMessage,code:t.code}}}async get(e,t,r=!1){const s=r?t:Object.assign({},this.#p(this.#e),t);try{return await this.#t.get(e,{headers:s})}catch(e){if("UNKNOWN_ERROR"!==z(e).code){const t=z(e);throw this.logger.error(C.red(`API request failed: ${t.userFriendlyMessage}`)),function(e,t,r){const s=z(t),n=`[${r}] `;e.error(C.red(`${n}${s.userFriendlyMessage}`)),e.error(C.red(`Status: ${s.status} (${s.code})`)),e.error(C.red(`Details: ${s.message}`)),s.suggestions.length>0&&(e.info(C.yellow("Suggestions:")),s.suggestions.forEach((t,r)=>{e.info(C.yellow(` ${r+1}. ${t}`))}))}(this.logger,e,"API Request"),e.response||(e.response={status:t.status,data:{message:t.message}}),e.tokenErrorInfo=t,e}throw e}}}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=R(),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(C.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(async e=>{if(s.isAxiosError(e)){if("SESSION_EXPIRED"===z(e).code){this.logger.info(C.yellow("Session expired - attempting to validate credentials"));try{const e=await(t?.validateCredentials());e&&!e.isValid?(this.logger.error(C.red(`Authentication error: ${e.error}`)),this.server.ws.send("template:sync:response",{error:e.error,code:e.code,refresh:!0})):(this.logger.info(C.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0}))}catch(e){this.logger.info(C.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0})}return e}if(e.cause instanceof Error&&("ECONNRESET"===e.cause.code||"ENOTFOUND"===e.cause.code))return this.logger.info(C.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",code:"CONNECTION_ERROR"}),e}throw e}));if(r instanceof Error)return;const n=r?await(e?.saveBackupAndBuild(r).catch(e=>{if("Backup file is not a ZIP file"===e.message)return this.logger.error(C.red("Backup file is not a ZIP file")),e})):await(e?.buildNewAssets());if(!(n&&n instanceof Buffer))return n instanceof Error?(this.server.ws.send("template:sync:response",{error:n.message}),void this.logger.error(C.red(n.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(C.red("Failed to build new assets")));{const r=await(t?.updateAssets(n));if("OK"===r?.status){const t=e?.getBackupMeta(),{lastBackupName:r,lastBackupHash:s,lastBackupDate:n}=t||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};this.server.ws.send("template:sync:response",{syncedAt:new Date(n),currentHash:s,backupFilename:r}),this.logger.info(C.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(C.red("Failed to update assets"))}}}}const W=/\.(?:[a-z0-9]+)$/i,X=6e5,Y=104857600,K=1e3;class J extends b.Cache{totalSize=0;maxSize;maxItems;constructor(e,t){super(),this.maxSize=e,this.maxItems=t}put(e,t,r){const s=this.get(e);s&&(this.totalSize-=s.size);const n=super.put(e,t,r);return this.totalSize+=t.size,this.cleanup(),n}cleanup(){const e=this.keys();if(e.length>this.maxItems){const t=e.length-this.maxItems,r=e.sort((e,t)=>{const r=this.get(e),s=this.get(t);return(r?.timestamp||0)-(s?.timestamp||0)});for(let e=0;e<t;e++){const t=r[e],s=this.get(t);s&&(this.totalSize-=s.size,this.del(t))}}for(;this.totalSize>this.maxSize&&e.length>0;){const t=e.sort((e,t)=>{const r=this.get(e),s=this.get(t);return(r?.timestamp||0)-(s?.timestamp||0)})[0];if(t){const e=this.get(t);e&&(this.totalSize-=e.size,this.del(t))}}}getTotalSize(){return this.totalSize}getItemCount(){return this.keys().length}}const G=new J(Y,K);function Q(e){if(0===e.length)return Buffer.alloc(0);if(1===e.length)return e[0];const t=e.reduce((e,t)=>Buffer.byteLength(t)+e,0);return Buffer.concat(e,t)}function ee(e){const{devServer:t,ttl:r=X,maxSize:s=Y,maxItems:n=K}=e,a=R();return s===Y&&n===K||(G.maxSize=s,G.maxItems=n),t.cache=G,(e,t,s)=>{const n=e.originalUrl||e.url||"",i=function(e){const t=e.split("?")[0];return W.test(t)?t.includes("/auth/info.js")?"":e:""}(n);if(!i)return s();const o=G.get(i);if(o)return a.info(`${C.blue("Proxies request:")} ${C.green(e.method)} ${n} -> ${C.blue("Cache")} ${i}`),function(e,t){try{for(const[r,s]of Object.entries(t))null!=s&&e.setHeader(r,s)}catch(e){console.warn("Failed to set some response headers:",e)}}(t,o.headers),t.write(o.content),void t.end();const c=t.end,l=t.write,p=[];t.write=function(e,r,s){if(!t.hasHeader(F))return l.call(this,e,r,s);if("string"==typeof e){const t=r||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):null!=e&&p.push(Buffer.from(String(e),"utf8"));return!0},t.end=function(e,s,n){if(!t.hasHeader(F))return c.call(this,e,s,n);if(null!=e)if("string"==typeof e){const t=s||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):p.push(Buffer.from(String(e),"utf8"));let o;try{o=Q(p);const e=Buffer.byteLength(o);if(e>0&&e<10485760){const s={headers:t.getHeaders(),content:o,timestamp:Date.now(),size:e};G.put(i,s,r),a.info(`${C.blue("[Cached]")} ${i} (${(e/1024).toFixed(1)}KB)`)}}catch(e){a.error(`Failed to cache response for ${i}: ${e}`),o=Q(p)}const l=s||"utf8";return c.call(this,o,l,n)},s()}}const te="pageName",re="date",se=k.dirname("undefined"!=typeof __filename&&__filename||l.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:m&&"SCRIPT"===m.tagName.toUpperCase()&&m.src||new URL("plugin-nVTTdbnD.js",document.baseURI).href)),ne=k.resolve(se,"..",".."),ae=k.resolve(ne,"..",".."),ie=k.resolve(ae,".pp-dev-meta"),oe=k.resolve(ie,"sync-service.meta.json");class ce{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;logger;constructor(e,t){this.pageName=e;const{backupFolder:r=k.resolve(P.cwd(),"backups"),distZipFolder:s=k.resolve(P.cwd(),"dist-zip"),distZipFilename:n=`${this.pageName}.zip`,backupNameTemplate:a=`{${te}}-{${re}}.zip`,dateFormat:i=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,"")}=t||{};this.backupFolder=r,this.backupNameTemplate=a,this.dateFormat=i,this.distZipFolder=s,this.distZipFilename=n,this.syncMeta(),this.logger=R()}async checkMeta(){try{await c.promises.stat(ie)}catch{await c.promises.mkdir(ie)}try{await c.promises.stat(this.backupFolder)}catch{await c.promises.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await c.promises.readFile(oe,{encoding:"utf-8"}).catch(()=>"{}")}async writeMetaFile(e){return await this.checkMeta(),await c.promises.writeFile(oe,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=k.resolve(this.backupFolder,e);try{return await c.promises.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${te}}`,e).replace(`{${re}}`,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=x.createHash("md5").update(e).digest("hex");if(await this.getLatestSavedBackup()){const{lastBackupHash:e}=this.currentMeta;if(e===t)return}const r=new Date,s=this.backupName(this.pageName,r);return this.currentMeta.lastBackupName=s,this.currentMeta.lastBackupHash=t,this.currentMeta.lastBackupDate=r.toISOString(),await this.syncMeta(),await c.promises.writeFile(k.resolve(this.backupFolder,s),e).finally(()=>{this.logger.info(`Backup saved to ${s}`)})}async buildNewAssets(){const e=new Promise((e,t)=>{let r="";this.logger.info(C.cyan("[DistService] Build started"));const s=T.spawn("node",[k.resolve(ne,"./bin/pp-dev.js"),"build"],{cwd:P.cwd(),env:Object.assign({},P.env,{NODE_ENV:"production"}),stdio:"inherit"});s.on("message",e=>{r+=e}),s.on("close",s=>{0===s?e(r):t(new Error(`build command exited with code ${s}`))}),s.on("error",e=>{t(e)})});try{await e.finally(()=>{this.logger.info(C.cyan("[DistService] Build finished"))});const t=k.resolve(P.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 A.log(e),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}}function le(e,t){return async(r,s,n)=>{if(await e(r.url??"",r,s)){R().info(`Rewrite response for ${r.url}`);const e=s.end,n=[];s.write=function(e){return n.push(e),!0},s.end=function(a,i,o){"string"==typeof a&&n.push(Buffer.from(a));const c=s.getHeader("content-encoding"),l=function(e,t){switch(t){case"gzip":return g.unzipSync(e);case"br":return g.brotliDecompressSync(e);case"deflate":return g.inflateSync(e);default:return e}}(Buffer.from(Buffer.concat(n)),c),p="function"!=typeof i&&i?i:"utf-8",d="function"==typeof i?i: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.deflateSync(e);default:return e}}(t(l,r,s),c),p,d),this}}n()}}function pe(e,t){const r=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,s=R();return(n,a,i)=>{const o=new l.URL(n.url??"","http://localhost"),{pathname:c,search:p}=o,d=["/",r];if(t&&(d.push(`/pt/${t}`),d.push(`/pl/${t}`)),d.includes(c)){const t=`${e}${p}`;return s.info(C.yellow(`Redirecting to: ${t}`)),I(a,t,302)}i()}}class de{state={isAuthenticated:!1,isRedirected:!1,lastChecked:0};listeners=new Set;getState(){return{...this.state}}isAuthenticated(){return this.state.isAuthenticated}isRedirected(){return this.state.isRedirected}setAuthenticated(e){this.state.isAuthenticated=e,this.state.lastChecked=Date.now(),this.notifyListeners()}setRedirected(e){this.state.isRedirected=e,this.notifyListeners()}updateState(e){void 0!==e.isAuthenticated&&(this.state.isAuthenticated=e.isAuthenticated),void 0!==e.isRedirected&&(this.state.isRedirected=e.isRedirected),this.state.lastChecked=Date.now(),this.notifyListeners()}reset(){this.state={isAuthenticated:!1,isRedirected:!1,lastChecked:0},this.notifyListeners()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notifyListeners(){this.listeners.forEach(e=>{try{e(this.getState())}catch(e){console.error("Error in auth state listener:",e)}})}getDebugInfo(){return{...this.getState(),listenerCount:this.listeners.size}}}const he=new de,ue=new Map;function ge(e){const t=ue.get(e);return t?Date.now()-t.timestamp>18e4?(ue.delete(e),null):t.data:null}function fe(e,t){ue.set(e,{timestamp:Date.now(),data:t})}const me="/home?proxyRedirect=";function we(e,t,r){const{templateLess:s=!1,miHudLess:n=!1,appId:a,base:i,v7Features:o}=r,c=R();if(s&&n&&void 0===a)throw new Error("Custom App ID is required when both templateLess and miHudLess are true");let l=he.getState();return he.subscribe(e=>{l=e}),async(r,p,d)=>{try{const h=!(s&&n),u=e.test(function(e){return e.split("?")[0]}(r.url??""));if(!l.isAuthenticated&&!l.isRedirected&&r.url?.startsWith("/home")&&!r.url?.startsWith(me)){c.info(C.blue("Trying to authenticate and redirect to base"));try{return h?await ve(t,{templateLess:s,miHudLess:n,appId:a,redirectUrl:o&&i?`${i}`:`${me}${encodeURIComponent("/")}`},r,p,()=>{},c):await ye(t,{templateLess:s,miHudLess:n,appId:a,redirectUrl:o&&i?`${i}`:`${me}${encodeURIComponent("/")}`},r,p,()=>{},c),he.setRedirected(!0),c.info(C.blue("Successfully authenticated. Redirecting to base")),I(p,i??"/",302)}catch(e){return d()}}if(!u)return d();if(!h){return await ye(t,{templateLess:s,miHudLess:n,appId:a,redirectUrl:o&&i?`${i}`:`${me}${encodeURIComponent("/")}`},r,p,d,c)}return await ve(t,{templateLess:s,miHudLess:n,appId:a,redirectUrl:o&&i?`${i}`:`${me}${encodeURIComponent("/")}`},r,p,d,c)}catch(e){return c.error(C.red(`Unexpected error in load-pp-data middleware: ${e instanceof Error?e.message:String(e)}`)),he.reset(),d(e)}}}async function ye(e,t,r,s,n,a){const{appId:i,redirectOnAuthFailure:o,redirectUrl:c}=t;if(void 0===i){const e=new Error("Custom App ID is required for page info only mode");return a.error(C.red(e.message)),n(e)}const l=r.headers??{};a.info(C.green("Start loading page info"));try{const t=`pageInfo:${i}`;return ge(t)?(a.info(C.green("Page info loaded from cache")),n()):(await e.getPageInfo(i,l),a.info(C.blue("Clearing proxy cache after successful login")),G.clear(),fe(t,{success:!0}),he.updateState({isAuthenticated:!0}),a.info(C.green("Page info loaded successfully")),n())}catch(e){return he.reset(),be(e,o??!0,c||`${me}${encodeURIComponent("/")}`,s,n,a,"Page info")}}async function ve(e,t,r,s,n,a){const{templateLess:i,appId:o,redirectOnAuthFailure:c,redirectUrl:l}=t,p=r.headers??{};a.info(C.green("Start loading page data"));try{const t=`pageData:${i}:${o}`;if(ge(t))return a.info(C.green("Page data loaded from cache")),n();const r=i||void 0===o?e.getPageTemplate(p):e.getPageVariables(o,p);return await r,a.info(C.blue("Clearing proxy cache after successful login")),G.clear(),fe(t,{success:!0}),a.info(C.green("Page data loaded successfully")),n()}catch(e){return he.reset(),be(e,c??!0,l||`${me}${encodeURIComponent("/")}`,s,n,a,"Page data")}}function be(e,t,r,s,n,a,i){if(function(e){return null!==e&&"object"==typeof e&&"response"in e&&void 0!==e.response}(e)&&(a.info(C.red(`${i} loading failed. Not authorized`)),t)){const e=`${r}`;return a.info(C.yellow(`Redirecting to: ${e}`)),I(s,e,302)}const o=e instanceof Error?e.message:String(e);return a.info(C.red(`${i} loading failed. Error: ${o}`)),n(e)}function ke(){const e=S();return e.use(S.json()),e.use(S.urlencoded({extended:!0})),e}const xe=ke();function Pe(e,t,r){return t(e)?{isValid:!0}:{isValid:!1,error:r}}exports.AuthProvider=de,exports.MiAPI=q,exports.authProvider=he,exports.colors=C,exports.createLogger=R,exports.initLoadPPData=we,exports.initPPRedirect=pe,exports.initProxy=N,exports.initProxyCache=ee,exports.initRewriteResponse=le,exports.internalServer=xe,exports.normalizeVitePPDevConfig=function(e){const t=function(e){const t=[Pe(e,e=>"object"==typeof e&&null!==e,"VitePPDevOptions must be an object"),Pe(e.templateName,e=>"string"==typeof e&&e.length>0,"VitePPDevOptions.templateName must be a non-empty string"),Pe(e.backendBaseURL,e=>void 0===e||"string"==typeof e&&e.length>0,"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),Pe(e.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.portalPageId must be a positive number if provided"),Pe(e.appId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.appId must be a positive number if provided"),Pe(e.proxyCacheTTL,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.proxyCacheTTL must be a positive number if provided"),Pe(e.integrateMiTopBar,t=>{if(void 0===t)return!0;if(null===t)return!1;if("boolean"!=typeof t&&"object"!=typeof t)return!1;if(!0===t&&!0!==e.miHudLess)return!1;if("object"==typeof t&&null!==t){if(void 0!==t.addRootElement&&"boolean"!=typeof t.addRootElement)return!1;if(void 0!==t.addSharedComponentsScripts&&"boolean"!=typeof t.addSharedComponentsScripts)return!1;if(!0!==e.miHudLess&&(!0===t.addRootElement||!0===t.addSharedComponentsScripts))return!1}return!0},"VitePPDevOptions.integrateMiTopBar must be a boolean or an object with addRootElement and addSharedComponentsScripts booleans")];return t.find(e=>!e.isValid)||{isValid:!0}}(e);if(!t.isValid)throw new Error(t.error);const r=e.appId??e.portalPageId,{enableProxyCache:s=!0,proxyCacheTTL:n=6e5,disableSSLValidation:a=!1,imageOptimizer:i=!0,miHudLess:o=!1,integrateMiTopBar:c=!1,templateLess:l=!1,outDir:p="dist",distZip:d=!0,syncBackupsDir:h="backups",v7Features:u=!1,personalAccessToken:g=process.env.MI_ACCESS_TOKEN}=e||{};let f=d;f=!0===f?{outFileName:`${e.templateName}.zip`,outDir:"dist-zip"}:"object"==typeof d&&{outFileName:"string"==typeof d.outFileName?d.outFileName.replace("[templateName]",e.templateName):`${e.templateName}.zip`,outDir:d.outDir??"dist-zip"};let m=i;return"boolean"==typeof i?!0===m&&(m={}):"object"!=typeof i&&(m=!1),{enableProxyCache:s,proxyCacheTTL:n,disableSSLValidation:a,imageOptimizer:m,templateLess:l,miHudLess:o,outDir:p,distZip:f,syncBackupsDir:h,v7Features:u,personalAccessToken:g,portalPageId:r,integrateMiTopBar:c,...e}},exports.urlReplacer=$,exports.vitePPDev=function(e){const{templateName:t,templateLess:r,backendBaseURL:s,miHudLess:n,portalPageId:a,appId:i,enableProxyCache:o,proxyCacheTTL:c,disableSSLValidation:l,distZip:p,syncBackupsDir:d,v7Features:h,personalAccessToken:u}=e||{};let g=!0;process.cwd();const f=i??a;return{name:"vite-pp-dev",apply:"serve",config:e=>{const n=function(e){return[Pe(e.base,e=>"string"==typeof e&&e.length>0&&"/"!==e,'Server base path cannot be empty or "/"'),Pe(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(!n.isValid)throw new Error(n.error);return e.clientInjectionPlugin={backendBaseURL:s,portalPageId:f,templateLess:r,v7Features:h},h&&(e.base=`/pl/${t}`),e},transformIndexHtml:async(e,t)=>{const r={html:e,tags:[]};return g&&(g=!1,r.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),r},configureServer:a=>{let i=a.config.base;i.endsWith("/")||(i+="/");const g=i.substring(0,i.lastIndexOf("/"));if(a.middlewares.use(pe(i,t)),s){const w=new URL(s).host,y={headers:{host:w,referer:s,origin:s.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:f,appId:f,templateLess:r,disableSSLValidation:l,v7Features:h,personalAccessToken:u??process.env.MI_ACCESS_TOKEN},v=[Pe((m=y).headers,e=>"object"==typeof e&&"string"==typeof e.host&&"string"==typeof e.referer&&"string"==typeof e.origin,"MiAPI headers must be properly configured"),Pe(m.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI portalPageId must be a positive number if provided"),Pe(m.appId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI appId must be a positive number if provided"),Pe(m.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 q(s,y);if(o){let e=+c;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:a,ttl:e},r=function(e){return[Pe(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);a.middlewares.use(ee(t))}const k=new RegExp(`^((${i})|/)$`);a.middlewares.use(we(k,b,Object.assign({},e,{appId:f,portalPageId:f}))),a.middlewares.use(N({baseURL:s,proxyIgnore:["/@vite","/@metricinsights","/@",g],disableSSLValidation:l,miAPI:b}));const x=(e,t,r,s,n)=>{const a={error:r};s&&(a.details=s),n&&(a.code=n),e.status(t).json(a).end()},P=(e,t,r)=>{a.config.logger.error(`${r} token validation error:`,t);const s=z(t);if(t.tokenErrorInfo){const r=t.tokenErrorInfo;a.config.logger.info(`Using enhanced error info: ${r.code} - ${r.userFriendlyMessage}`);const s=r.status||500,n=r.code,i=r.userFriendlyMessage,o=r.message;x(e,s,i,o,n)}else{let t,n,i;switch(a.config.logger.info(`Using original error info: ${s.code} - ${s.userFriendlyMessage}`),s.code){case"SESSION_EXPIRED":t=412,n="personal"===r?"Personal access token expired":"Session expired",i="personal"===r?"PAT_EXPIRED":"SESSION_EXPIRED";break;case"UNAUTHORIZED":t=401,n="Unauthorized",i="UNAUTHORIZED";break;case"FORBIDDEN":t=403,n="Access forbidden",i="FORBIDDEN";break;default:t=500,n="Internal server error",i=s.code}const o="personal"===r&&"PAT_EXPIRED"===i?"Your personal access token has expired. Please generate a new token from the portal.":"regular"===r&&"SESSION_EXPIRED"===i?"Your portal session has expired. Please refresh your token or re-authenticate.":s.userFriendlyMessage;x(e,t,n,o,i)}return null},T=ke();T.post("/@api/login",async(e,t,r)=>{const{token:s,tokenType:n}=e.body;if(s){if(a.config.logger.info(`Attempting to validate ${n} token...`),"personal"===n){if(!await b.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${s}`},!0).then(async e=>"number"==typeof e.data?.user?.user_id?(b.personalAccessToken=s,a.config.logger.info(`Personal access token validated successfully for user ${e.data.user.user_id}`),e):(x(t,400,"Token expired or invalid"),null)).catch(e=>P(t,e,"personal")))return;I(t,"/",302)}else if("regular"===n){if(!await b.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:s},!0).then(e=>e.data?.users?.length?(b.personalAccessToken=void 0,a.config.logger.info(`Regular token validated successfully for ${e.data.users.length} user(s)`),t.setHeader("set-cookie",e.headers["set-cookie"]??""),e):(x(t,400,"Token expired or invalid"),null)).catch(e=>P(t,e,"regular")))return;I(t,"/",302)}}else x(t,400,"Token is required")}),a.middlewares.use(T);const A=!1!==p?new ce(t,Object.assign({backupDir:d},"object"==typeof p?{distZipFolder:p.outDir,distZipFilename:p.outFileName}:void 0)):void 0;return new Z(a,{distService:A,miAPI:b}),()=>{a.middlewares.use(le(e=>e.split("?")[0].endsWith("index.html"),(e,t)=>Buffer.from($(w,t.headers.host??"",b.buildPage(e,n)))))}}var m}}};
|
|
2
|
-
//# sourceMappingURL=plugin-nVTTdbnD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-nVTTdbnD.js","sources":["../../../src/lib/helpers/url.helper.ts","../../../src/lib/logger.ts","../../../src/lib/helpers/color.helper.ts","../../../src/lib/helpers/login.helper.ts","../../../src/lib/proxy-pass.middleware.ts","../../../src/api/base.ts","../../../src/api/assets.ts","../../../src/api/assets-v7.ts","../../../src/api/page.ts","../../../src/api/page-template.ts","../../../src/lib/helpers/token.helper.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/auth.provider.ts","../../../src/lib/load-pp-data.middleware.ts","../../../src/lib/internal.middleware.ts","../../../src/plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","redirect","res","url","statusCode","setHeader","end","storage","Map","DEFAULT_LOGGER_KEY","createLogger","level","name","has","get","logger","cL","set","colors","createColors","tokenLoginFunction","TOKEN_TYPE_CONFIG","personal","placeholder","caption","host","endpoint","regular","updateTokenUI","type","tokenInput","tokenCaption","info","innerHTML","showError","message","errorElement","textContent","classList","add","hideError","remove","setupEventHandlers","formWrapper","submitButton","addEventListener","async","e","preventDefault","value","trim","focus","tokenTypeSwitcher","document","getElementById","activeOption","querySelector","tokenType","dataset","token","response","fetch","method","headers","body","JSON","stringify","URL","window","location","origin","pathname","json","error","parseError","href","networkError","handleFormSubmission","key","click","initializeLoginForm","loginForm","contentWrapper","firstChild","rowTemplate","lastChild","cloneNode","orRow","innerText","setAttribute","helperForm","formContent","createElement","styleElement","head","appendChild","tokenTypeOptions","querySelectorAll","handleTokenTypeChange","target","forEach","opt","option","currentTarget","setupTokenTypeSwitcher","console","observer","MutationObserver","mutations","mutation","disconnect","observe","childList","subtree","existingForm","hostOriginRegExp","PROXY_HEADER","initProxy","opts","rewritePath","baseURL","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","toString","reqUrl","searchParams","redirectToFunction","storageKey","lastRedirectKey","redirectCount","localStorage","getItem","Number","isNaN","func","params","URLSearchParams","search","debug","removeItem","setItem","Date","toISOString","slice","reqHost","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","urlPathReplacer","err","errorMessage","stack","writable","writeHead","BaseAPI","axios","constructor","this","checkAuth","assign","accept","maxRedirects","then","catch","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","downloadPageAssets","withCredentials","responseType","data","uploadPageAssets","file","formData","FormData","File","assetFile","append","post","Referer","getUri","downloadTemplateAssets","uploadTemplateAssets","AssetsV7API","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","internalPageName","create","PageTemplateAPI","internal_name","page_templates","page_template","getTokenErrorInfo","status","lowerMessage","toLowerCase","code","userFriendlyMessage","suggestions","TEMPLATE_PAGE_NAME","axiosInstanceCache","MiAPI","pageTemplate","pageTitle","pageVars","v7Features","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","Promise","resolve","cacheKey","process","env","NODE_TLS_REJECT_UNAUTHORIZED","defaults","httpsAgent","Agent","rejectUnauthorized","timeout","httpAgent","keepAlive","maxSockets","isTemplateLoaded","clearHeaders","obj","undefined","keys","authorization","updateHeaders","localTemplateHTML","getPageTemplate","red","template_id","find","p","yellow","enabled","visible_in_homepage","getPageVariables","pageId","tags","template","parsed","parse","reason","getPageInfo","pageIdToFetch","fetchV7Page","fetchLegacyPage","handlePageFetchError","buildPage","miHudLess","result","v","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","title","text","serialize","getAssets","pageInfo","templateInfo","updateAssets","assets","validateCredentials","testHeaders","isValid","errorInfo","cleanup","normalizedHeaders","context","contextPrefix","suggestion","index","logTokenError","tokenErrorInfo","ClientService","server","eventMap","onInfoDataRequest","bind","onTemplateSync","init","ws","event","handler","send","distService","config","clientInjectionPlugin","canSync","currentAssets","isAxiosError","validation","refresh","validationError","cause","newAssets","saveBackupAndBuild","buildNewAssets","Buffer","updateResult","backupMeta","getBackupMeta","lastBackupName","backupFilename","lastBackupHash","currentHash","lastBackupDate","backupDate","syncedAt","FILE_EXTENSION_REGEX","DEFAULT_TTL","DEFAULT_MAX_SIZE","DEFAULT_MAX_ITEMS","EnhancedCache","memoryCache","Cache","totalSize","maxSize","maxItems","put","ttl","oldItem","size","itemsToRemove","sortedKeys","sort","a","b","itemA","itemB","timestamp","i","del","oldestKey","getTotalSize","getItemCount","cache","createResponseBuffer","chunks","alloc","totalLength","reduce","sum","chunk","byteLength","concat","initProxyCache","devServer","next","originalUrl","cleanUrl","split","generateCacheKey","cacheItem","header","setResponseHeaders","write","originalEnd","originalWrite","encoding","callback","hasHeader","call","safeEncoding","push","from","isBuffer","String","finalBuffer","responseSize","getHeaders","now","toFixed","finalEncoding","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","cwd","date","syncMeta","checkMeta","fs","stat","mkdir","readMetaFile","readFile","writeMetaFile","meta","writeFile","getLatestSavedBackup","backupPath","backupName","saveBackup","backupFile","backupFileHash","crypto","createHash","update","digest","filename","finally","buildCommand","reject","cyan","proc","child_process","spawn","NODE_ENV","stdio","msg","initRewriteResponse","predicate","rewrite","buffers","cb","contentEncoding","unzipSync","brotliDecompressSync","inflateSync","decodeContent","bufferEncoding","endCallback","gzipSync","brotliCompressSync","deflateSync","encodeContent","initPPRedirect","base","templateName","baseWithoutTrailingSlash","endsWith","parsedUrl","findPaths","redirectUrl","AuthProvider","state","isAuthenticated","isRedirected","lastChecked","listeners","Set","getState","setAuthenticated","authenticated","notifyListeners","setRedirected","redirected","updateState","updates","reset","subscribe","listener","delete","getDebugInfo","listenerCount","authProvider","apiResponseCache","getCachedResponse","cached","setCachedResponse","DEFAULT_REDIRECT_URL","initLoadPPData","applyUrlRegExp","mi","appId","authState","isNeedTemplateLoad","isApplyRequest","cutUrlParams","handleTemplateLoad","encodeURIComponent","handlePageInfoOnly","options","redirectOnAuthFailure","clear","success","handleLoadError","loadPageData","operationType","isAuthError","fullRedirectUrl","createInternalServer","app","express","use","urlencoded","extended","internalServer","validateConfigValue","validator","validationResult","validations","c","backendBaseURL","proxyCacheTTL","integrateMiTopBar","integrate","addRootElement","addSharedComponentsScripts","validateConfig","enableProxyCache","imageOptimizer","outDir","distZip","syncBackupsDir","MI_ACCESS_TOKEN","distZipConfig","outFileName","imageOptimizerConfig","isFirstRequest","normalizedAppId","apply","port","validateServerConfig","transformIndexHtml","html","ctx","tag","injectTo","children","Math","random","configureServer","lastIndexOf","middlewares","baseUrlHost","miConfig","cacheConfig","validateProxyCacheConfig","isIndexRegExp","proxyPassMiddleware","sendErrorResponse","details","handleTokenValidationError","enhancedErrorInfo","errorCode","Authorization","user","user_id","Token","users","backupDir"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./plugin-1jI0jEFU.js";import*as t from"fs";import{readFileSync as n,existsSync as s,readdirSync as i,writeFileSync as a,unlink as o}from"fs";import*as r from"path";import c,{resolve as p}from"path";import{fileURLToPath as l,pathToFileURL as m}from"url";import{normalizePath as u}from"vite";import f from"ejs";const d=p("undefined"!=typeof __filename&&__filename||l(import.meta.url),"../../.."),g=p("undefined"!=typeof __filename&&__filename||l(import.meta.url),"../.."),h=s(p(d,"package.json"))?d:g,j=p(h,"dist/client/client.js"),{version:w,name:v}=JSON.parse(n(p(h,"package.json")).toString()),y=w,$=v,b=[".pp-watch.config.js",".pp-watch.config.ts",".pp-watch.config.json"],x=[".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"];const _=new class{cache;_maxSize;constructor(e=10){this._maxSize=e,this.cache=new Map}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=e}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,t),t}}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this._maxSize){const e=this.cache.keys().next().value;void 0!==e&&this.cache.delete(e)}this.cache.set(e,t)}clear(){this.cache.clear()}has(e){return this.cache.has(e)}}(5),S=new Map;let D;try{D="undefined"!=typeof __filename&&__filename?r.resolve(r.dirname(__filename),".."):void 0!==import.meta&&import.meta&&import.meta.url?r.resolve(l(new URL(".",import.meta.url)),".."):process.cwd()}catch{D=process.cwd()}const P=`/${$}/client`,E=`/${P}`,k=new RegExp(`^\\/?${$}\\/client\\/(.*)$`);const z={templateCompilations:0,cacheHits:0,totalRequests:0};function C(e){let n="",s=!1,i=null;return{name:"pp-dev:client",apply:"serve",config:e=>(e.optimizeDeps?.exclude?.push(`${$}/client`),e),resolveId(e){if(k.test(e))return{id:u(r.join(h,"dist/client",e.replace(k,"$1")))}},transformIndexHtml:async(e,a)=>{z.totalRequests++;const o=a.server?.config.base||"";o!==n&&(n=o,s=!0,i=null),i&&!s||(_.has(n)?(i=_.get(n),z.cacheHits++):(i=function(e,n=!0){const s=e;if(n&&_.has(s))return _.get(s);const i=r.resolve(D,"client","index.html");let a;S.has(i)?a=S.get(i):(a=t.readFileSync(i,{encoding:"utf8"}),S.set(i,a));const o=E.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),c=f.compile(a.replace(new RegExp(o,"g"),r.posix.join(e,P)),{openDelimiter:"{",closeDelimiter:"}",async:!0,cache:!0,filename:i,rmWhitespace:!0,compileDebug:!1});return n&&_.set(s,c),c}(n,true),z.templateCompilations++),s=!1);const c=function(e){return{css:r.posix.join(e,$,"client/client.css"),js:r.posix.join(e,$,"client/client.js")}}(n),p={html:e,tags:[{tag:"link",injectTo:"head",attrs:{rel:"stylesheet",href:c.css}}]},{backendBaseURL:l,templateLess:m,portalPageId:u,canSync:d=!0}=a.server?.config.clientInjectionPlugin||{},g={PACKAGE_NAME:$,VERSION:y,backendBaseURL:l,templateLess:m,portalPageId:u,canSync:d};return p.tags.push({tag:"div",injectTo:"body-prepend",children:await i(g)}),p.tags.push({tag:"script",injectTo:"body-prepend",attrs:{src:c.js,type:"module"}}),p},configureServer(e){const t=u(r.resolve(e.config.root,r.dirname(j)));e.config.server?.fs?.allow&&e.config.server.fs.allow.push(t),e.middlewares.use("/@api/__pp-dev-metrics",(e,t)=>{t.setHeader("Content-Type","application/json"),t.end(JSON.stringify(z,null,2))})},closeBundle(){_.clear(),S.clear()}}}const O=(e,t)=>` * ${t}`;function T(e){return`/*!\n${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,O)}\n */`}async function N(){try{const[e,t]=await Promise.all([import("next"),import("next/constants.js")]);return{next:e.default,constants:t}}catch(e){throw new Error(`Next.js is required but not available. Please install Next.js as a dependency:\nnpm install next@^15\n\nThis package requires Next.js >=15 <17 as a peer dependency.\n\nError: ${e}`)}}async function I(){try{return await import("next"),!0}catch(e){return!1}}async function R(){try{return(await import("next/package.json")).version}catch{return null}}const L=new Map,F=3e4;let H=null;function M(){const e=Date.now();if(H&&e-H.timestamp<6e4)return H.data;const t=process.cwd();try{const s=JSON.parse(n(c.resolve(t,"package.json"),{encoding:"utf-8",flag:"r"}));return H={data:s,timestamp:e},s}catch{const t={};return H={data:t,timestamp:e},t}}let B=null;async function J(e){const t=process.cwd(),n=`ts:${e}`,i=L.get(n);if(i&&Date.now()-i.timestamp<F)return i.data;let r=!1;if(/\.m[jt]s$/.test(e))r=!0;else if(/\.c[jt]s$/.test(e))r=!1;else{const e=M();r=!!e&&"module"===e.type}const p=await async function(){return B||(B=await import("esbuild")),B}(),l=await p.build({absWorkingDir:t,entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,format:r?"esm":"cjs",mainFields:["main"],sourcemap:"inline",metafile:!0}),{text:u}=l.outputFiles[0],f=`${`pp-config.timestamp-${Date.now()}-${Math.random().toString(16).slice(2)}`}.js`,d=m(c.resolve(t,f)).toString();a(f,u);let g={};try{const t=(await import(d)).default;g=t?.default||t,L.set(n,{data:g,timestamp:Date.now(),filePath:e})}finally{s(f)&&o(f,()=>{})}return g}async function U(e){const t=`js:${e}`,n=L.get(t);if(n&&Date.now()-n.timestamp<F)return n.data;const s=(await import(m(e).toString())).default;return L.set(t,{data:s,timestamp:Date.now(),filePath:e}),s}async function V(e){const t=`json:${e}`,s=L.get(t);if(s&&Date.now()-s.timestamp<F)return s.data;const i=JSON.parse(n(e,{encoding:"utf-8"}));return L.set(t,{data:i,timestamp:Date.now(),filePath:e}),i}let q=null;async function A(e,t){for(const n of t)if(e.includes(n)){if(/\.[cm]?ts$/i.test(n))return await J(n);if(/\.[cm]?js$/i.test(n))return await U(c.resolve(".",n));if(n.endsWith(".json"))return await V(c.resolve(".",n))}return null}function W(){return M()}async function G(){const e=function(){const e=Date.now();if(q&&e-q.timestamp<1e4)return q.files;const t=/\.config\.(([cm]?ts)|([cm]?js)|(json))$/,n=process.cwd(),s=i(n,{withFileTypes:!0}).filter(e=>e.isFile()&&t.test(e.name)).map(e=>e.name);return q={files:s,timestamp:e},s}();let t={},n=!1;const s=await A(e,x);if(s&&(t=s,n=!0),e.length&&!n){const s=await A(e,b);s&&(t={backendBaseURL:s.baseURL,portalPageId:s.portalPageId},n=!0)}const a=M();return n||"object"!=typeof a["pp-dev"]||(t=a["pp-dev"]),t}const K=Object.freeze({__proto__:null,clearConfigCache:function(){L.clear(),H=null,q=null},getConfig:G,getConfigCacheStats:function(){return{configEntries:L.size,packageJsonCached:!!H,dirContentCached:!!q}},getPkg:W}),Z="/p",Q="/pt";async function X(){const t=W().name,n=await G(),s=e(Object.assign(n,{templateName:t})),{default:i}=await import("./plugin.js"),a=[i(s),C()],{outDir:o,distZip:r,imageOptimizer:c,templateLess:p,integrateMiTopBar:l}=s;if(l&&a.push(function(e){return{name:"mi-topbar-plugin",transformIndexHtml(){const t=[];return(!0===e||"object"==typeof e&&!0===e.addRootElement)&&t.push({tag:"div",injectTo:"body-prepend",attrs:{id:"mi-react-root"}}),(!0===e||"object"==typeof e&&!0===e.addSharedComponentsScripts)&&t.push({tag:"script",injectTo:"head-prepend",attrs:{src:"/auth/info.js"}},{tag:"script",injectTo:"head-prepend",attrs:{src:"/js/main.js",defer:"defer"}},{tag:"link",injectTo:"head-prepend",attrs:{href:"/css/main.css",rel:"stylesheet"}}),t}}}(l)),c){const{ViteImageOptimizer:e}=await import("vite-plugin-image-optimizer");a.push(e("object"==typeof c?c:void 0))}if(r){const{default:e}=await import("vite-plugin-zip-pack");a.push({...e("object"==typeof r?r:{outFileName:`${t}.zip`}),enforce:"post"})}return{base:p?`${Z}/${t}`:`${Q}/${t}`,server:{port:3e3},build:{minify:!1,assetsInlineLimit:4096,rollupOptions:{output:{banner:T}},outDir:o},css:{modules:{localsConvention:"dashes"},scss:{api:"modern"}},ppDevConfig:s,plugins:a}}function Y(e){return e?.ppDev||{}}function ee(e,t,n){return Object.assign({},e,t,n)}function te(e,t){return async(n,s={})=>{try{const{constants:i}=await N(),{PHASE_DEVELOPMENT_SERVER:a}=i,o=await G(),r=W().name,c="function"==typeof e?await e(n,s):e,p=Y(c),l=Object.assign({},o,p,t??{}),m=n===a,u=function(e,t,n,s){return n?s?t?`${Z}/${e}`:`/pl/${e}`:t?`${Z}/${e}`:`${Q}/${e}`:`/p/${e}`}(r,l.templateLess??!1,m,l.v7Features??!1),f={basePath:u,trailingSlash:!!m||void 0};return l.templateLess||(f.assetPrefix=`${Q}/${r}`),ee(f,c)}catch(t){console.error("Error in withPPDev:",t),console.warn("Falling back to original Next.js configuration");try{return"function"==typeof e?await e(n,s):e}catch(e){return console.error("Error in fallback configuration:",e),{}}}}}export{x as P,y as V,b as a,R as b,Y as c,K as d,X as g,I as i,N as s,te as w};
|
|
2
|
-
//# sourceMappingURL=index-DsQqY4VF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DsQqY4VF.js","sources":["../../../src/constants.ts","../../../src/plugins/client-injection-plugin.ts","../../../src/banner/header.ts","../../../src/lib/next-import.ts","../../../src/config.ts","../../../src/index.ts","../../../src/plugins/mi-topbar-plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["afterBundlePath","resolve","__filename","fileURLToPath","url","beforeBundlePath","PP_DEV_PACKAGE_DIR","existsSync","PP_DEV_CLIENT_ENTRY","version","name","JSON","parse","readFileSync","toString","VERSION","PACKAGE_NAME","PP_WATCH_CONFIG_NAMES","PP_DEV_CONFIG_NAMES","templateCache","cache","_maxSize","constructor","maxSize","this","Map","value","get","key","has","delete","set","size","firstKey","keys","next","undefined","clear","fileCache","DIRNAME","path","dirname","URL","process","cwd","PACKAGE_IMPORT","CLIENT_PATH","PACKAGE_REGEXP","RegExp","performanceMetrics","templateCompilations","cacheHits","totalRequests","clientInjectionPlugin","opts","base","baseChanged","currentTemplate","apply","config","optimizeDeps","exclude","push","resolveId","source","test","id","normalizePath","join","replace","transformIndexHtml","async","html","ctx","serverBase","server","enableCache","cacheKey","templatePath","templateContent","fs","encoding","escapedClientPath","compiledTemplate","ejs","compile","posix","openDelimiter","closeDelimiter","filename","rmWhitespace","compileDebug","getTemplate","assetPaths","css","js","getAssetPaths","result","tags","tag","injectTo","attrs","rel","href","backendBaseURL","templateLess","portalPageId","canSync","templateData","children","src","type","configureServer","clientDir","root","allow","middlewares","use","req","res","setHeader","end","stringify","closeBundle","replacer","substring","$1","header","chunk","safeNextImport","constants","Promise","all","import","default","error","Error","isNextAvailable","getNextVersion","configCache","CACHE_TTL","packageJsonCache","getPackageJson","now","Date","timestamp","data","flag","empty","esbuildModule","loadTsConfig","filePath","cached","isESM","pkg","esbuild","getEsbuild","build","absWorkingDir","entryPoints","outfile","write","target","platform","bundle","format","mainFields","sourcemap","metafile","text","code","outputFiles","fileNameTmp","Math","random","slice","fileUrl","pathToFileURL","writeFileSync","conf","unlink","loadJsConfig","loadJSONConfig","dirContentCache","loadConfig","dirFiles","configNames","configName","includes","endsWith","getPkg","getConfig","dirContent","files","endsWithRegExp","readdirSync","withFileTypes","filter","isFile","map","getDirectoryContent","configFound","newConfig","length","watchConfig","baseURL","configEntries","packageJsonCached","dirContentCached","pathPagePrefix","pathTemplatePrefix","getViteConfig","templateName","ppDevConfig","normalizedPPDevConfig","normalizeVitePPDevConfig","Object","assign","vitePPDev","plugins","outDir","distZip","imageOptimizer","integrateMiTopBar","addRootElement","addSharedComponentsScripts","defer","miTopBarPlugin","ViteImageOptimizer","zipPack","outFileName","enforce","port","minify","assetsInlineLimit","rollupOptions","output","banner","modules","localsConvention","scss","api","getPPDevConfigFromNextConfig","nextConfig","ppDev","mergeConfigs","baseConfig","nextConfiguration","additionalConfig","withPPDev","nextjsConfig","phase","PHASE_DEVELOPMENT_SERVER","nextConfigPPDev","mergedConfig","isDevelopment","basePath","v7Features","createBasePath","trailingSlash","assetPrefix","console","warn","fallbackError"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createProxyMiddleware as e,responseInterceptor as t}from"http-proxy-middleware";import{createLogger as s}from"vite";import{createColors as r}from"picocolors";import a,{isAxiosError as n}from"axios";import{JSDOM as i}from"jsdom";import{Agent as o}from"https";import*as c from"memory-cache";import*as l from"path";import{promises as p}from"fs";import{fileURLToPath as d,URL as h}from"url";import*as u from"crypto";import*as g from"process";import*as f from"child_process";import*as m from"console";import{inflateSync as w,brotliDecompressSync as y,unzipSync as v,deflateSync as b,brotliCompressSync as k,gzipSync as x}from"zlib";import T from"express";const P=(e,t,s)=>{const r=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return s.replace(r,(e,...s)=>e.startsWith("!!")?s[1]:`http${s[2]}${t}`)},$=(e,t,s)=>{e.setHeader("location",t),e.statusCode=s,e.end()};let A=new Map;const I="default",E=(e="info",t=I)=>{if(A&&"function"==typeof A.has||(A=new Map),A.has(t))return A.get(t);if(t===I){const r=s(e);return A.set(t,r),r}const r=s(e);return A.set(t,r),r},S=r(),L=function(){const e={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>`,endpoint:"/@api/login"},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>`,endpoint:"/@api/login"}};function t(t,s,r){const a=e[t];a&&(s.placeholder=a.placeholder,r.innerHTML=a.caption)}function s(e,t){t.textContent=e,t.classList.add("show")}function r(e){e.classList.remove("show")}function a(e,t,a,n){a.addEventListener("click",async a=>{if(a.preventDefault(),r(n),!t.value.trim())return s(`${t.placeholder} is required`,n),void t.focus();const i=document.getElementById("token-type-switcher"),o=i?.querySelector(".token-type-option.active"),c=o?.dataset.value||"personal";await async function(e,t,r,a){try{r.classList.add("loading");const n=await fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:t}),redirect:"follow"}),i=n.url&&new URL(n.url,window.location.origin);if(!i||i.pathname.startsWith("/login")||i.pathname.startsWith("/@api/"))try{const e=await n.json();s(`Login failed: ${e?.error||"Unknown error occurred"}`,a)}catch(e){s("Login failed: Unable to parse response",a)}else window.location.href=n.url}catch(e){s("Login failed: Network error. Please check your connection.",a)}finally{r.classList.remove("loading")}}(t.value.trim(),c,e,n)}),t.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),a.click())}),t.addEventListener("input",()=>{r(n)})}function n(e){const s=e.firstChild;if(!s)return;const r=s.lastChild?.cloneNode(!0);if(!r)return;r.innerHTML="";const n=r.cloneNode(!0);n.innerText="OR",n.setAttribute("role","separator"),n.setAttribute("aria-label","Alternative login method");const i=r.cloneNode(!0),o=document.createElement("div"),c=document.createElement("style");c.textContent="\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 border-radius: 4px;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n height: 26px;\n padding: 0 8px;\n font-size: 14px;\n}\n\n.helper-login-wrapper .control input:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);\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 font-weight: 500;\n}\n\n.helper-login-wrapper .footer .btn.submit:hover {\n background-color: #0056b3;\n}\n\n.helper-login-wrapper .footer .btn.submit:disabled {\n background-color: #6c757d;\n cursor: not-allowed;\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 user-select: none;\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\n.helper-login-wrapper .error-message {\n color: #dc3545;\n font-size: 12px;\n text-align: center;\n margin-top: 8px;\n display: none;\n}\n\n.helper-login-wrapper .error-message.show {\n display: block;\n}\n\n.helper-login-wrapper .loading {\n opacity: 0.6;\n pointer-events: none;\n}\n",document.head.appendChild(c),o.innerHTML=`\n<div class="helper-login-wrapper" role="form" aria-label="PP Dev Helper Login">\n <div class="title" role="heading" aria-level="2">PP Dev Helper</div>\n\n <div class="token-type-switcher" id="token-type-switcher" role="tablist" aria-label="Token type selection">\n <div class="token-type-option active" data-value="personal" role="tab" aria-selected="true" tabindex="0">\n API Token\n </div>\n <div class="token-type-option" data-value="regular" role="tab" aria-selected="false" tabindex="0">\n Legacy Token\n </div>\n </div>\n\n <div class="control">\n <input \n type="password" \n id="helper-token" \n placeholder="API Token"\n aria-label="Token input"\n aria-describedby="token-caption"\n >\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="error-message" id="error-message" role="alert" aria-live="polite"></div>\n\n <div class="footer">\n <button id="helper-token-submit" class="btn submit" type="button">\n Token Login\n </button>\n </div>\n</div>`,i.appendChild(o),s.appendChild(n),s.appendChild(i);const l=document.getElementById("token-type-switcher"),p=document.getElementById("helper-token"),d=document.getElementById("token-caption"),h=document.getElementById("helper-token-submit"),u=document.getElementById("error-message"),g=o.querySelector(".helper-login-wrapper");l&&p&&d&&h&&u&&g?(!function(e,s,r){const a=e.querySelectorAll(".token-type-option"),n=e=>{const n=e.dataset.value;a.forEach(e=>{e.classList.remove("active"),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")}),e.classList.add("active"),e.setAttribute("aria-selected","true"),e.setAttribute("tabindex","0"),t(n,s,r)};a.forEach(e=>{e.addEventListener("click",e=>{const t=e.currentTarget;n(t)}),e.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),n(e))})})}(l,p,d),a(g,p,h,u),t("personal",p,d)):console.error("Failed to find required form elements")}const i=new MutationObserver(e=>{for(const t of e)if("childList"===t.type){const e=document.querySelector("#mi-react-root form");if(e){i.disconnect(),n(e);break}}});i.observe(document.body,{childList:!0,subtree:!0});const o=document.querySelector("#mi-react-root form");o&&(i.disconnect(),n(o))},R=/^(https?:\/\/)([^/]+)(\/.*)?$/i,C="X-PP-Proxy";function F(s){const{rewritePath:r=/^\/(?!p[tl]).*/i,baseURL:a="",disableSSLValidation:n=!1,miAPI:i}=s;if(!a)throw new Error("Base url is required");const o=a.replace(R,"$2"),c=a.replace(R,"$1$2"),l=import("file-type"),p=E();return e({selfHandleResponse:!0,pathFilter:(e,t)=>!(s.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:!n,headers:{host:o,origin:c},on:{proxyReq(e,t,s){const r=t.headers.host,n=e.getHeader("referer");return p.info(`${S.blue("Proxies request:")} ${S.green(t.method)} ${t.url} -> ${S.green(e.method)} ${e.protocol}//${e.host}${e.path}`),r&&n&&"string"==typeof n&&e.setHeader("referer",n.replace(new RegExp(`https?://${r}`),a)),i.personalAccessToken&&e.setHeader("Authorization",`Bearer ${i.personalAccessToken}`),t.socket.on("close",()=>{setTimeout(()=>{e.destroyed||e.destroy()},200)}),e},proxyRes:(e,s,r)=>{if(e.headers["content-type"]?.includes("text/event-stream")||e.headers["transfer-encoding"]?.includes("chunked")&&"no"===e.headers["x-accel-buffering"]){p.info(`${S.blue("Start streaming for request:")} ${S.green(s.method)} ${s.url}`);const t=async(e,t,s)=>{s.setHeader(C,1),s.setHeaders(new Map(Object.entries(e.headers))),e.pipe(s)};return t(e,s,r)}const a=t(async(e,t,s,r)=>{r.setHeader(C,1);if(await(await l).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(s.url??"",`http://${o}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){t+=`<script>(${function(){const e="pp-dev::redirectCount",t="pp-dev::lastRedirect";let s=+(localStorage.getItem(e)??0);localStorage.getItem(t);Number.isNaN(s)&&(s=0);let r=window.location.href;const a=function(){const n=new URLSearchParams(window.location.search);if(!n.has("proxyRedirect"))return console.debug("No proxyRedirect param. Cleaning up."),void localStorage.removeItem(e);r!==window.location.href?(r=window.location.href,setTimeout(a,s<3?3e3:5e3)):window.location.href=n.get("proxyRedirect"),localStorage.setItem(e,""+ ++s),localStorage.setItem(t,(new Date).toISOString())};setTimeout(a,3e3)}.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(r.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),r.setHeader("Pragma","no-cache"),r.setHeader("Expires","0"));const a=t.slice(0,100);(a.includes("<html")||a.includes("<body")||a.includes("<head")||a.includes("html>"))&&(t+=`<script>const host = "${o}";\n(${L.toString()})()<\/script>`)}catch{}const a=s.headers.host??"";return((e,t,s)=>{const r=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),a=new RegExp(`${e}`,"gi"),n=s.replace(r,t);return n===s?n.replace(a,t):n})("/auth/saml/login","/login",P(o,a,t))}});return a(e,s,r)},error(e,t,s){const r=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;p.error(r),s.writable&&s.writeHead(500,{"Content-Type":"text/plain"}),s.end(r)}}})}class D{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 O extends D{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,s){const r=new(await this.formdataModulePromise).FormData,{File:a}=await this.formdataModulePromise,n=new a([t],"file.zip",{type:"application/zip"});r.append("file",n);const i=this.getUploadUrl(e);return this.axios.post(i,r,{withCredentials:!0,headers:Object.assign({},s,{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,s){const r=new(await this.formdataModulePromise).FormData,{File:a}=await this.formdataModulePromise,n=new a([t],"file.zip",{type:"application/zip"});r.append("file",n,"file.zip");const i=this.getUploadTemplateUrl(e);return this.axios.post(i,r,{withCredentials:!0,headers:Object.assign({},s,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:i})})}).then(e=>e.data)}}class N extends O{getDownloadUrl(e){return`/api/page/id/${e}/asset/download`}getDownloadTemplateUrl(e){return`/api/page_template/id/${e}/asset/download`}getUploadUrl(e){return`/api/page/id/${e}/asset/upload`}getUploadTemplateUrl(e){return`/api/page_template/id/${e}/asset/upload`}}class M extends D{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 U extends D{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}}function H(e){const t=e.response?.status||0,s=e.response?.data?.message||e.message||"Unknown error";switch(t){case 412:const e=s.toLowerCase();return e.includes("session expired")||e.includes("session has expired")?{status:t,message:s,code:"SESSION_EXPIRED",userFriendlyMessage:"Your session has expired",suggestions:["Refresh your token in the portal","Re-authenticate with the portal","Check if your token has been revoked","Ensure your token has the correct permissions"]}:{status:t,message:s,code:"AUTH_FAILED",userFriendlyMessage:"Authentication failed",suggestions:["Verify your token is correct","Check token permissions","Ensure the token hasn't expired","Try generating a new token"]};case 401:return{status:t,message:s,code:"UNAUTHORIZED",userFriendlyMessage:"Unauthorized access",suggestions:["Check if your token is valid","Verify you have the required permissions","Ensure the token hasn't been revoked","Try logging in again"]};case 403:return{status:t,message:s,code:"FORBIDDEN",userFriendlyMessage:"Access forbidden",suggestions:["Check your user permissions","Verify the portal page ID is correct","Ensure your token has the right scope","Contact your administrator"]};default:return{status:t,message:s,code:"UNKNOWN_ERROR",userFriendlyMessage:"An unexpected error occurred",suggestions:["Check your network connection","Verify the portal URL is correct","Try again in a few moments","Check the portal status"]}}}const B="[DEV PAGE. DO NOT DELETE]",j=new Map;class z{#e;#t;#s=null;#r;#a;#n;#i;#o;#c;#l;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:s={},portalPageId:r,templateLess:n=!0,disableSSLValidation:i=!1,v7Features:c=!1,personalAccessToken:l}=t||{};this.#e=s,this.#a=[],this.#r="",this.#n=c,this.#i=l,this.#o=!1,this.#c=Promise.resolve(!1);const p=`${e}:${i}`;j.has(p)?this.#t=j.get(p):(i&&(process.env.NODE_TLS_REJECT_UNAUTHORIZED="0",a.defaults.httpsAgent=new o({rejectUnauthorized:!1})),this.#t=a.create({baseURL:e,headers:s,timeout:3e4,maxRedirects:5,httpAgent:new o({keepAlive:!0,maxSockets:10}),httpsAgent:new o({keepAlive:!0,maxSockets:10})}),j.set(p,this.#t)),this.portalPageId=r,this.templateLess=n,this.assetsApi=new(c?N:O)(this.#t),this.pageApi=new M(this.#t),this.pageTemplateApi=new U(this.#t),this.logger=E()}async isTemplateLoaded(){return this.#c}get isV710OrHigher(){return this.#o}#p(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.#i&&(t.authorization=`Bearer ${this.#i}`),t}get personalAccessToken(){return this.#i}set personalAccessToken(e){this.#i=e}updateHeaders(e){this.#p(e)}get localTemplateHTML(){return'<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8" />\n <title>%%PAGE TITLE%%</title>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\n <meta name="theme-color" content="rgba(255, 255, 255, 1)"/>\n <link rel="shortcut icon" type="image/x-icon" sizes="any" href="/img/favicon/favicon.ico"/>\n <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png"/>\n <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/>\n <link rel="icon" type="image/png" sizes="48x48" href="/img/favicon/favicon-48x48.png"/>\n <meta name="msapplication-config" content="/auth/browserconfig.xml"/>\n <link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-touch-icon.png"/>\n <link rel="manifest" href="/auth/site.webmanifest"/>\n <link rel="manifest" href="/auth/manifest.json"/>\n <link rel="stylesheet" type="text/css" href="/auth/theme-vars.css"/>\n <link rel="icon" type="image/svg+xml" href="/favicon.ico" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <script src="/js/libs/underscore-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/jquery/jquery-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/application/rating_component.js" charset="utf-8"><\/script>\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.#c||this.#s||(this.#c=new Promise(e=>{this.#l=e})),this.#s)return Promise.resolve(this.#s);if(void 0===this.templateLess&&(this.templateLess=!1),this.#n){const t=await this.pageApi.get(this.portalPageId,this.#p(e)).then(e=>(this.logger.info(S.green("Page fetched")),e)).catch(async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(S.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});return void 0!==t.template_id&&(this.#o=!0),this.#s=this.localTemplateHTML,this.#s=this.#s.replace(/%%PAGE TITLE%%/g,t.name||"Local template"),this.logger.info(S.green("Local page template fetched")),this.#l(!0),this.#s}let t=(await this.pageApi.getAll(this.#p(e)).then(e=>(this.logger.info(S.green("Page list fetched")),e)).catch(async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(S.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===B);return t||(this.logger.warn(S.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:B,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#p(e)).then(e=>(this.logger.info(S.green("Dev page created")),e)).catch(e=>{throw this.logger.error(S.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 "${B}" already exists`)})),await this.pageApi.getPageContent(t.internal_name,this.#p(e)).then(e=>(this.#s=e,e)).then(e=>(this.#l(!0),this.logger.info(S.green("Page template fetched")),e)).catch(e=>{throw this.#l(!1),this.logger.error(S.red(`Error fetching page template: ${e.message}`)),new Error("Error fetching page template")})}async getPageVariables(e,t){return this.#s=await this.getPageTemplate(t),this.portalPageId||(this.portalPageId=e,this.templateLess=!1),await this.pageApi.get(e,this.#p(t)).then(e=>{const{tags:t="[]",name:s,template:r}=e;if(r&&t){const e=JSON.parse(t);return this.#a=e,this.#r=s,e}return this.#a=[],this.#r=s,[]}).catch(t=>{if(this.logger.error(S.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})}async getPageInfo(e,t){this.portalPageId||(this.portalPageId=e);const s=this.#p(t),r=this.portalPageId;try{return this.#n?await this.#d(r,s):await this.#h(r,s)}catch(e){this.#u(e,r)}}async#d(e,t){const s=await this.pageApi.get(e,t);return this.logger.info(S.green("Page fetched")),void 0!==s.template_id&&(this.#o=!0),s}async#h(e,t){return await this.pageApi.get(e,t)}#u(e,t){if(this.#n&&e.message?.includes("access"))throw new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.");if(404===e.response?.status)throw new Error(`Portal Page with id "${t}" not found on instance ${this.#t.getUri()}`);throw 401===e.response?.status&&this.logger.error(S.red(`Current user does not have access to page with id "${t}" on instance ${this.#t.getUri()}`)),e}buildPage(e,t=!1){let s="string"==typeof e?e:e.toString("utf-8");for(const e of this.#a)s=s.replace(new RegExp(`\\[${e.name}\\]`,"g"),e.value);const r=new i(t?s:this.#s),a="%%PLACEHOLDER%%";if(!t){const e=r.window.document.createElement("div");e.innerHTML=a;const t=r.window.document.querySelector(".main-side");if(t){const s=t.querySelectorAll("script");s.length?t.insertBefore(e,s.item(s.length-1)):t.append(e)}else{const t=r.window.document.createElement("div");t.append(e),r.window.document.body.append(t)}const s=r.window.document.querySelector("head"),n=s.querySelector("title");n?n.text=this.#r:s.innerHTML+=`<title>${this.#r}</title>`}return r.serialize().replace(new RegExp(`<div>\\s*${a}\\s*<\\/div>`,"i"),s)}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 s=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(s.id,e,this.#e)}if(t.template)return await this.assetsApi.uploadTemplateAssets(t.template,e,this.#e)}}}async validateCredentials(e){try{const t=e||this.#e;return await this.get("/api/user",t,!0),{isValid:!0}}catch(e){const t=H(e);return{isValid:!1,error:t.userFriendlyMessage,code:t.code}}}async get(e,t,s=!1){const r=s?t:Object.assign({},this.#p(this.#e),t);try{return await this.#t.get(e,{headers:r})}catch(e){if("UNKNOWN_ERROR"!==H(e).code){const t=H(e);throw this.logger.error(S.red(`API request failed: ${t.userFriendlyMessage}`)),function(e,t,s){const r=H(t),a=`[${s}] `;e.error(S.red(`${a}${r.userFriendlyMessage}`)),e.error(S.red(`Status: ${r.status} (${r.code})`)),e.error(S.red(`Details: ${r.message}`)),r.suggestions.length>0&&(e.info(S.yellow("Suggestions:")),r.suggestions.forEach((t,s)=>{e.info(S.yellow(` ${s+1}. ${t}`))}))}(this.logger,e,"API Request"),e.response||(e.response={status:t.status,data:{message:t.message}}),e.tokenErrorInfo=t,e}throw e}}}class V{server;opts;eventMap;logger;constructor(e,t){this.server=e,this.opts=t||{},this.eventMap=new Map,this.eventMap.set("info-data:request",this.onInfoDataRequest.bind(this)),this.eventMap.set("template:sync",this.onTemplateSync.bind(this)),this.logger=E(),this.init()}init(){const{ws:e}=this.server;for(const[t,s]of this.eventMap)e.on(t,s)}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(S.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 s=await(t?.getAssets().catch(async e=>{if(n(e)){if("SESSION_EXPIRED"===H(e).code){this.logger.info(S.yellow("Session expired - attempting to validate credentials"));try{const e=await(t?.validateCredentials());e&&!e.isValid?(this.logger.error(S.red(`Authentication error: ${e.error}`)),this.server.ws.send("template:sync:response",{error:e.error,code:e.code,refresh:!0})):(this.logger.info(S.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0}))}catch(e){this.logger.info(S.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0})}return e}if(e.cause instanceof Error&&("ECONNRESET"===e.cause.code||"ENOTFOUND"===e.cause.code))return this.logger.info(S.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",code:"CONNECTION_ERROR"}),e}throw e}));if(s instanceof Error)return;const r=s?await(e?.saveBackupAndBuild(s).catch(e=>{if("Backup file is not a ZIP file"===e.message)return this.logger.error(S.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(S.red(r.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(S.red("Failed to build new assets")));{const s=await(t?.updateAssets(r));if("OK"===s?.status){const t=e?.getBackupMeta(),{lastBackupName:s,lastBackupHash:r,lastBackupDate:a}=t||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};this.server.ws.send("template:sync:response",{syncedAt:new Date(a),currentHash:r,backupFilename:s}),this.logger.info(S.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(S.red("Failed to update assets"))}}}}const _=/\.(?:[a-z0-9]+)$/i,q=6e5,Z=104857600,W=1e3;class X extends c.Cache{totalSize=0;maxSize;maxItems;constructor(e,t){super(),this.maxSize=e,this.maxItems=t}put(e,t,s){const r=this.get(e);r&&(this.totalSize-=r.size);const a=super.put(e,t,s);return this.totalSize+=t.size,this.cleanup(),a}cleanup(){const e=this.keys();if(e.length>this.maxItems){const t=e.length-this.maxItems,s=e.sort((e,t)=>{const s=this.get(e),r=this.get(t);return(s?.timestamp||0)-(r?.timestamp||0)});for(let e=0;e<t;e++){const t=s[e],r=this.get(t);r&&(this.totalSize-=r.size,this.del(t))}}for(;this.totalSize>this.maxSize&&e.length>0;){const t=e.sort((e,t)=>{const s=this.get(e),r=this.get(t);return(s?.timestamp||0)-(r?.timestamp||0)})[0];if(t){const e=this.get(t);e&&(this.totalSize-=e.size,this.del(t))}}}getTotalSize(){return this.totalSize}getItemCount(){return this.keys().length}}const Y=new X(Z,W);function K(e){if(0===e.length)return Buffer.alloc(0);if(1===e.length)return e[0];const t=e.reduce((e,t)=>Buffer.byteLength(t)+e,0);return Buffer.concat(e,t)}function J(e){const{devServer:t,ttl:s=q,maxSize:r=Z,maxItems:a=W}=e,n=E();return r===Z&&a===W||(Y.maxSize=r,Y.maxItems=a),t.cache=Y,(e,t,r)=>{const a=e.originalUrl||e.url||"",i=function(e){const t=e.split("?")[0];return _.test(t)?t.includes("/auth/info.js")?"":e:""}(a);if(!i)return r();const o=Y.get(i);if(o)return n.info(`${S.blue("Proxies request:")} ${S.green(e.method)} ${a} -> ${S.blue("Cache")} ${i}`),function(e,t){try{for(const[s,r]of Object.entries(t))null!=r&&e.setHeader(s,r)}catch(e){console.warn("Failed to set some response headers:",e)}}(t,o.headers),t.write(o.content),void t.end();const c=t.end,l=t.write,p=[];t.write=function(e,s,r){if(!t.hasHeader(C))return l.call(this,e,s,r);if("string"==typeof e){const t=s||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):null!=e&&p.push(Buffer.from(String(e),"utf8"));return!0},t.end=function(e,r,a){if(!t.hasHeader(C))return c.call(this,e,r,a);if(null!=e)if("string"==typeof e){const t=r||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):p.push(Buffer.from(String(e),"utf8"));let o;try{o=K(p);const e=Buffer.byteLength(o);if(e>0&&e<10485760){const r={headers:t.getHeaders(),content:o,timestamp:Date.now(),size:e};Y.put(i,r,s),n.info(`${S.blue("[Cached]")} ${i} (${(e/1024).toFixed(1)}KB)`)}}catch(e){n.error(`Failed to cache response for ${i}: ${e}`),o=K(p)}const l=r||"utf8";return c.call(this,o,l,a)},r()}}const G="pageName",Q="date",ee=l.dirname("undefined"!=typeof __filename&&__filename||d(import.meta.url)),te=l.resolve(ee,"..",".."),se=l.resolve(te,"..",".."),re=l.resolve(se,".pp-dev-meta"),ae=l.resolve(re,"sync-service.meta.json");class ne{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;logger;constructor(e,t){this.pageName=e;const{backupFolder:s=l.resolve(g.cwd(),"backups"),distZipFolder:r=l.resolve(g.cwd(),"dist-zip"),distZipFilename:a=`${this.pageName}.zip`,backupNameTemplate:n=`{${G}}-{${Q}}.zip`,dateFormat:i=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,"")}=t||{};this.backupFolder=s,this.backupNameTemplate=n,this.dateFormat=i,this.distZipFolder=r,this.distZipFilename=a,this.syncMeta(),this.logger=E()}async checkMeta(){try{await p.stat(re)}catch{await p.mkdir(re)}try{await p.stat(this.backupFolder)}catch{await p.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await p.readFile(ae,{encoding:"utf-8"}).catch(()=>"{}")}async writeMetaFile(e){return await this.checkMeta(),await p.writeFile(ae,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=l.resolve(this.backupFolder,e);try{return await p.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${G}}`,e).replace(`{${Q}}`,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 s=new Date,r=this.backupName(this.pageName,s);return this.currentMeta.lastBackupName=r,this.currentMeta.lastBackupHash=t,this.currentMeta.lastBackupDate=s.toISOString(),await this.syncMeta(),await p.writeFile(l.resolve(this.backupFolder,r),e).finally(()=>{this.logger.info(`Backup saved to ${r}`)})}async buildNewAssets(){const e=new Promise((e,t)=>{let s="";this.logger.info(S.cyan("[DistService] Build started"));const r=f.spawn("node",[l.resolve(te,"./bin/pp-dev.js"),"build"],{cwd:g.cwd(),env:Object.assign({},g.env,{NODE_ENV:"production"}),stdio:"inherit"});r.on("message",e=>{s+=e}),r.on("close",r=>{0===r?e(s):t(new Error(`build command exited with code ${r}`))}),r.on("error",e=>{t(e)})});try{await e.finally(()=>{this.logger.info(S.cyan("[DistService] Build finished"))});const t=l.resolve(g.cwd(),this.distZipFolder,this.distZipFilename);if(!await p.stat(t))throw new Error(`File ${t} not found`);return await p.readFile(t)}catch(e){throw m.log(e),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}}function ie(e,t){return async(s,r,a)=>{if(await e(s.url??"",s,r)){E().info(`Rewrite response for ${s.url}`);const e=r.end,a=[];r.write=function(e){return a.push(e),!0},r.end=function(n,i,o){"string"==typeof n&&a.push(Buffer.from(n));const c=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(a)),c),p="function"!=typeof i&&i?i:"utf-8",d="function"==typeof i?i:o;return e.call(this,function(e,t){switch(t){case"gzip":return x(e);case"br":return k(e);case"deflate":return b(e);default:return e}}(t(l,s,r),c),p,d),this}}a()}}function oe(e,t){const s=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,r=E();return(a,n,i)=>{const o=new h(a.url??"","http://localhost"),{pathname:c,search:l}=o,p=["/",s];if(t&&(p.push(`/pt/${t}`),p.push(`/pl/${t}`)),p.includes(c)){const t=`${e}${l}`;return r.info(S.yellow(`Redirecting to: ${t}`)),$(n,t,302)}i()}}class ce{state={isAuthenticated:!1,isRedirected:!1,lastChecked:0};listeners=new Set;getState(){return{...this.state}}isAuthenticated(){return this.state.isAuthenticated}isRedirected(){return this.state.isRedirected}setAuthenticated(e){this.state.isAuthenticated=e,this.state.lastChecked=Date.now(),this.notifyListeners()}setRedirected(e){this.state.isRedirected=e,this.notifyListeners()}updateState(e){void 0!==e.isAuthenticated&&(this.state.isAuthenticated=e.isAuthenticated),void 0!==e.isRedirected&&(this.state.isRedirected=e.isRedirected),this.state.lastChecked=Date.now(),this.notifyListeners()}reset(){this.state={isAuthenticated:!1,isRedirected:!1,lastChecked:0},this.notifyListeners()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notifyListeners(){this.listeners.forEach(e=>{try{e(this.getState())}catch(e){console.error("Error in auth state listener:",e)}})}getDebugInfo(){return{...this.getState(),listenerCount:this.listeners.size}}}const le=new ce,pe=new Map;function de(e){const t=pe.get(e);return t?Date.now()-t.timestamp>18e4?(pe.delete(e),null):t.data:null}function he(e,t){pe.set(e,{timestamp:Date.now(),data:t})}const ue="/home?proxyRedirect=";function ge(e,t,s){const{templateLess:r=!1,miHudLess:a=!1,appId:n,base:i,v7Features:o}=s,c=E();if(r&&a&&void 0===n)throw new Error("Custom App ID is required when both templateLess and miHudLess are true");let l=le.getState();return le.subscribe(e=>{l=e}),async(s,p,d)=>{try{const h=!(r&&a),u=e.test((s.url??"").split("?")[0]);if(!l.isAuthenticated&&!l.isRedirected&&s.url?.startsWith("/home")&&!s.url?.startsWith(ue)){c.info(S.blue("Trying to authenticate and redirect to base"));try{return h?await me(t,{templateLess:r,miHudLess:a,appId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,()=>{},c):await fe(t,{templateLess:r,miHudLess:a,appId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,()=>{},c),le.setRedirected(!0),c.info(S.blue("Successfully authenticated. Redirecting to base")),$(p,i??"/",302)}catch(e){return d()}}if(!u)return d();if(!h){return await fe(t,{templateLess:r,miHudLess:a,appId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,d,c)}return await me(t,{templateLess:r,miHudLess:a,appId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,d,c)}catch(e){return c.error(S.red(`Unexpected error in load-pp-data middleware: ${e instanceof Error?e.message:String(e)}`)),le.reset(),d(e)}}}async function fe(e,t,s,r,a,n){const{appId:i,redirectOnAuthFailure:o,redirectUrl:c}=t;if(void 0===i){const e=new Error("Custom App ID is required for page info only mode");return n.error(S.red(e.message)),a(e)}const l=s.headers??{};n.info(S.green("Start loading page info"));try{const t=`pageInfo:${i}`;return de(t)?(n.info(S.green("Page info loaded from cache")),a()):(await e.getPageInfo(i,l),n.info(S.blue("Clearing proxy cache after successful login")),Y.clear(),he(t,{success:!0}),le.updateState({isAuthenticated:!0}),n.info(S.green("Page info loaded successfully")),a())}catch(e){return le.reset(),we(e,o??!0,c||`${ue}${encodeURIComponent("/")}`,r,a,n,"Page info")}}async function me(e,t,s,r,a,n){const{templateLess:i,appId:o,redirectOnAuthFailure:c,redirectUrl:l}=t,p=s.headers??{};n.info(S.green("Start loading page data"));try{const t=`pageData:${i}:${o}`;if(de(t))return n.info(S.green("Page data loaded from cache")),a();const s=i||void 0===o?e.getPageTemplate(p):e.getPageVariables(o,p);return await s,n.info(S.blue("Clearing proxy cache after successful login")),Y.clear(),he(t,{success:!0}),n.info(S.green("Page data loaded successfully")),a()}catch(e){return le.reset(),we(e,c??!0,l||`${ue}${encodeURIComponent("/")}`,r,a,n,"Page data")}}function we(e,t,s,r,a,n,i){if(function(e){return null!==e&&"object"==typeof e&&"response"in e&&void 0!==e.response}(e)&&(n.info(S.red(`${i} loading failed. Not authorized`)),t)){const e=`${s}`;return n.info(S.yellow(`Redirecting to: ${e}`)),$(r,e,302)}const o=e instanceof Error?e.message:String(e);return n.info(S.red(`${i} loading failed. Error: ${o}`)),a(e)}function ye(){const e=T();return e.use(T.json()),e.use(T.urlencoded({extended:!0})),e}const ve=ye();function be(e,t,s){return t(e)?{isValid:!0}:{isValid:!1,error:s}}function ke(e){const t=function(e){return[be(e,e=>"object"==typeof e&&null!==e,"VitePPDevOptions must be an object"),be(e.templateName,e=>"string"==typeof e&&e.length>0,"VitePPDevOptions.templateName must be a non-empty string"),be(e.backendBaseURL,e=>void 0===e||"string"==typeof e&&e.length>0,"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),be(e.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.portalPageId must be a positive number if provided"),be(e.appId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.appId must be a positive number if provided"),be(e.proxyCacheTTL,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.proxyCacheTTL must be a positive number if provided"),be(e.integrateMiTopBar,t=>{if(void 0===t)return!0;if(null===t)return!1;if("boolean"!=typeof t&&"object"!=typeof t)return!1;if(!0===t&&!0!==e.miHudLess)return!1;if("object"==typeof t&&null!==t){if(void 0!==t.addRootElement&&"boolean"!=typeof t.addRootElement)return!1;if(void 0!==t.addSharedComponentsScripts&&"boolean"!=typeof t.addSharedComponentsScripts)return!1;if(!0!==e.miHudLess&&(!0===t.addRootElement||!0===t.addSharedComponentsScripts))return!1}return!0},"VitePPDevOptions.integrateMiTopBar must be a boolean or an object with addRootElement and addSharedComponentsScripts booleans")].find(e=>!e.isValid)||{isValid:!0}}(e);if(!t.isValid)throw new Error(t.error);const s=e.appId??e.portalPageId,{enableProxyCache:r=!0,proxyCacheTTL:a=6e5,disableSSLValidation:n=!1,imageOptimizer:i=!0,miHudLess:o=!1,integrateMiTopBar:c=!1,templateLess:l=!1,outDir:p="dist",distZip:d=!0,syncBackupsDir:h="backups",v7Features:u=!1,personalAccessToken:g=process.env.MI_ACCESS_TOKEN}=e||{};let f=d;f=!0===f?{outFileName:`${e.templateName}.zip`,outDir:"dist-zip"}:"object"==typeof d&&{outFileName:"string"==typeof d.outFileName?d.outFileName.replace("[templateName]",e.templateName):`${e.templateName}.zip`,outDir:d.outDir??"dist-zip"};let m=i;return"boolean"==typeof i?!0===m&&(m={}):"object"!=typeof i&&(m=!1),{enableProxyCache:r,proxyCacheTTL:a,disableSSLValidation:n,imageOptimizer:m,templateLess:l,miHudLess:o,outDir:p,distZip:f,syncBackupsDir:h,v7Features:u,personalAccessToken:g,portalPageId:s,integrateMiTopBar:c,...e}}function xe(e){const{templateName:t,templateLess:s,backendBaseURL:r,miHudLess:a,portalPageId:n,appId:i,enableProxyCache:o,proxyCacheTTL:c,disableSSLValidation:l,distZip:p,syncBackupsDir:d,v7Features:h,personalAccessToken:u}=e||{};let g=!0;process.cwd();const f=i??n;return{name:"vite-pp-dev",apply:"serve",config:e=>{const a=function(e){return[be(e.base,e=>"string"==typeof e&&e.length>0&&"/"!==e,'Server base path cannot be empty or "/"'),be(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(!a.isValid)throw new Error(a.error);return e.clientInjectionPlugin={backendBaseURL:r,portalPageId:f,templateLess:s,v7Features:h},h&&(e.base=`/pl/${t}`),e},transformIndexHtml:async(e,t)=>{const s={html:e,tags:[]};return g&&(g=!1,s.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),s},configureServer:n=>{let i=n.config.base;i.endsWith("/")||(i+="/");const g=i.substring(0,i.lastIndexOf("/"));if(n.middlewares.use(oe(i,t)),r){const w=new URL(r).host,y={headers:{host:w,referer:r,origin:r.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:f,appId:f,templateLess:s,disableSSLValidation:l,v7Features:h,personalAccessToken:u??process.env.MI_ACCESS_TOKEN},v=[be((m=y).headers,e=>"object"==typeof e&&"string"==typeof e.host&&"string"==typeof e.referer&&"string"==typeof e.origin,"MiAPI headers must be properly configured"),be(m.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI portalPageId must be a positive number if provided"),be(m.appId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI appId must be a positive number if provided"),be(m.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 z(r,y);if(o){let e=+c;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:n,ttl:e},s=function(e){return[be(e.ttl,e=>"number"==typeof e&&e>0,"Proxy cache TTL must be a positive number")].find(e=>!e.isValid)||{isValid:!0}}(t);if(!s.isValid)throw new Error(s.error);n.middlewares.use(J(t))}const k=new RegExp(`^((${i})|/)$`);n.middlewares.use(ge(k,b,Object.assign({},e,{appId:f,portalPageId:f}))),n.middlewares.use(F({baseURL:r,proxyIgnore:["/@vite","/@metricinsights","/@",g],disableSSLValidation:l,miAPI:b}));const x=(e,t,s,r,a)=>{const n={error:s};r&&(n.details=r),a&&(n.code=a),e.status(t).json(n).end()},T=(e,t,s)=>{n.config.logger.error(`${s} token validation error:`,t);const r=H(t);if(t.tokenErrorInfo){const s=t.tokenErrorInfo;n.config.logger.info(`Using enhanced error info: ${s.code} - ${s.userFriendlyMessage}`);const r=s.status||500,a=s.code,i=s.userFriendlyMessage,o=s.message;x(e,r,i,o,a)}else{let t,a,i;switch(n.config.logger.info(`Using original error info: ${r.code} - ${r.userFriendlyMessage}`),r.code){case"SESSION_EXPIRED":t=412,a="personal"===s?"Personal access token expired":"Session expired",i="personal"===s?"PAT_EXPIRED":"SESSION_EXPIRED";break;case"UNAUTHORIZED":t=401,a="Unauthorized",i="UNAUTHORIZED";break;case"FORBIDDEN":t=403,a="Access forbidden",i="FORBIDDEN";break;default:t=500,a="Internal server error",i=r.code}const o="personal"===s&&"PAT_EXPIRED"===i?"Your personal access token has expired. Please generate a new token from the portal.":"regular"===s&&"SESSION_EXPIRED"===i?"Your portal session has expired. Please refresh your token or re-authenticate.":r.userFriendlyMessage;x(e,t,a,o,i)}return null},A=ye();A.post("/@api/login",async(e,t,s)=>{const{token:r,tokenType:a}=e.body;if(r){if(n.config.logger.info(`Attempting to validate ${a} token...`),"personal"===a){if(!await b.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${r}`},!0).then(async e=>"number"==typeof e.data?.user?.user_id?(b.personalAccessToken=r,n.config.logger.info(`Personal access token validated successfully for user ${e.data.user.user_id}`),e):(x(t,400,"Token expired or invalid"),null)).catch(e=>T(t,e,"personal")))return;$(t,"/",302)}else if("regular"===a){if(!await b.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:r},!0).then(e=>e.data?.users?.length?(b.personalAccessToken=void 0,n.config.logger.info(`Regular token validated successfully for ${e.data.users.length} user(s)`),t.setHeader("set-cookie",e.headers["set-cookie"]??""),e):(x(t,400,"Token expired or invalid"),null)).catch(e=>T(t,e,"regular")))return;$(t,"/",302)}}else x(t,400,"Token is required")}),n.middlewares.use(A);const I=!1!==p?new ne(t,Object.assign({backupDir:d},"object"==typeof p?{distZipFolder:p.outDir,distZipFilename:p.outFileName}:void 0)):void 0;return new V(n,{distService:I,miAPI:b}),()=>{n.middlewares.use(ie(e=>e.split("?")[0].endsWith("index.html"),(e,t)=>Buffer.from(P(w,t.headers.host??"",b.buildPage(e,a)))))}}var m}}}export{ce as A,z as M,S as a,J as b,E as c,F as d,ge as e,ve as f,ie as g,le as h,oe as i,ke as n,P as u,xe as v};
|
|
2
|
-
//# sourceMappingURL=plugin-1jI0jEFU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-1jI0jEFU.js","sources":["../../../src/lib/helpers/url.helper.ts","../../../src/lib/logger.ts","../../../src/lib/helpers/color.helper.ts","../../../src/lib/helpers/login.helper.ts","../../../src/lib/proxy-pass.middleware.ts","../../../src/api/base.ts","../../../src/api/assets.ts","../../../src/api/assets-v7.ts","../../../src/api/page.ts","../../../src/api/page-template.ts","../../../src/lib/helpers/token.helper.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/auth.provider.ts","../../../src/lib/load-pp-data.middleware.ts","../../../src/lib/internal.middleware.ts","../../../src/plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","redirect","res","url","statusCode","setHeader","end","storage","Map","DEFAULT_LOGGER_KEY","createLogger","level","name","has","get","logger","cL","set","colors","createColors","tokenLoginFunction","TOKEN_TYPE_CONFIG","personal","placeholder","caption","host","endpoint","regular","updateTokenUI","type","tokenInput","tokenCaption","info","innerHTML","showError","message","errorElement","textContent","classList","add","hideError","remove","setupEventHandlers","formWrapper","submitButton","addEventListener","async","e","preventDefault","value","trim","focus","tokenTypeSwitcher","document","getElementById","activeOption","querySelector","tokenType","dataset","token","response","fetch","method","headers","body","JSON","stringify","URL","window","location","origin","pathname","json","error","parseError","href","networkError","handleFormSubmission","key","click","initializeLoginForm","loginForm","contentWrapper","firstChild","rowTemplate","lastChild","cloneNode","orRow","innerText","setAttribute","helperForm","formContent","createElement","styleElement","head","appendChild","tokenTypeOptions","querySelectorAll","handleTokenTypeChange","target","forEach","opt","option","currentTarget","setupTokenTypeSwitcher","console","observer","MutationObserver","mutations","mutation","disconnect","observe","childList","subtree","existingForm","hostOriginRegExp","PROXY_HEADER","initProxy","opts","rewritePath","baseURL","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","toString","reqUrl","searchParams","storageKey","lastRedirectKey","redirectCount","localStorage","getItem","Number","isNaN","func","params","URLSearchParams","search","debug","removeItem","setItem","Date","toISOString","slice","reqHost","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","urlPathReplacer","err","errorMessage","stack","writable","writeHead","BaseAPI","axios","constructor","this","checkAuth","assign","accept","maxRedirects","then","catch","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","downloadPageAssets","withCredentials","responseType","data","uploadPageAssets","file","formData","FormData","File","assetFile","append","post","Referer","getUri","downloadTemplateAssets","uploadTemplateAssets","AssetsV7API","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","internalPageName","create","PageTemplateAPI","internal_name","page_templates","page_template","getTokenErrorInfo","status","lowerMessage","toLowerCase","code","userFriendlyMessage","suggestions","TEMPLATE_PAGE_NAME","axiosInstanceCache","MiAPI","pageTemplate","pageTitle","pageVars","v7Features","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","Promise","resolve","cacheKey","process","env","NODE_TLS_REJECT_UNAUTHORIZED","defaults","httpsAgent","Agent","rejectUnauthorized","timeout","httpAgent","keepAlive","maxSockets","isTemplateLoaded","clearHeaders","obj","undefined","keys","authorization","updateHeaders","localTemplateHTML","getPageTemplate","red","template_id","find","p","yellow","enabled","visible_in_homepage","getPageVariables","pageId","tags","template","parsed","parse","reason","getPageInfo","pageIdToFetch","fetchV7Page","fetchLegacyPage","handlePageFetchError","buildPage","miHudLess","result","v","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","title","text","serialize","getAssets","pageInfo","templateInfo","updateAssets","assets","validateCredentials","testHeaders","isValid","errorInfo","cleanup","normalizedHeaders","context","contextPrefix","suggestion","index","logTokenError","tokenErrorInfo","ClientService","server","eventMap","onInfoDataRequest","bind","onTemplateSync","init","ws","event","handler","send","distService","config","clientInjectionPlugin","canSync","currentAssets","isAxiosError","validation","refresh","validationError","cause","newAssets","saveBackupAndBuild","buildNewAssets","Buffer","updateResult","backupMeta","getBackupMeta","lastBackupName","backupFilename","lastBackupHash","currentHash","lastBackupDate","backupDate","syncedAt","FILE_EXTENSION_REGEX","DEFAULT_TTL","DEFAULT_MAX_SIZE","DEFAULT_MAX_ITEMS","EnhancedCache","memoryCache","Cache","totalSize","maxSize","maxItems","put","ttl","oldItem","size","itemsToRemove","sortedKeys","sort","a","b","itemA","itemB","timestamp","i","del","oldestKey","getTotalSize","getItemCount","cache","createResponseBuffer","chunks","alloc","totalLength","reduce","sum","chunk","byteLength","concat","initProxyCache","devServer","next","originalUrl","cleanUrl","split","generateCacheKey","cacheItem","header","setResponseHeaders","write","originalEnd","originalWrite","encoding","callback","hasHeader","call","safeEncoding","push","from","isBuffer","String","finalBuffer","responseSize","getHeaders","now","toFixed","finalEncoding","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","cwd","date","syncMeta","checkMeta","fs","stat","mkdir","readMetaFile","readFile","writeMetaFile","meta","writeFile","getLatestSavedBackup","backupPath","backupName","saveBackup","backupFile","backupFileHash","crypto","createHash","update","digest","filename","finally","buildCommand","reject","cyan","proc","child_process","spawn","NODE_ENV","stdio","msg","initRewriteResponse","predicate","rewrite","buffers","cb","contentEncoding","unzipSync","brotliDecompressSync","inflateSync","decodeContent","bufferEncoding","endCallback","gzipSync","brotliCompressSync","deflateSync","encodeContent","initPPRedirect","base","templateName","baseWithoutTrailingSlash","endsWith","parsedUrl","findPaths","redirectUrl","AuthProvider","state","isAuthenticated","isRedirected","lastChecked","listeners","Set","getState","setAuthenticated","authenticated","notifyListeners","setRedirected","redirected","updateState","updates","reset","subscribe","listener","delete","getDebugInfo","listenerCount","authProvider","apiResponseCache","getCachedResponse","cached","setCachedResponse","DEFAULT_REDIRECT_URL","initLoadPPData","applyUrlRegExp","mi","appId","authState","isNeedTemplateLoad","isApplyRequest","handleTemplateLoad","encodeURIComponent","handlePageInfoOnly","options","redirectOnAuthFailure","clear","success","handleLoadError","loadPageData","operationType","isAuthError","fullRedirectUrl","createInternalServer","app","express","use","urlencoded","extended","internalServer","validateConfigValue","validator","normalizeVitePPDevConfig","validationResult","c","backendBaseURL","proxyCacheTTL","integrateMiTopBar","integrate","addRootElement","addSharedComponentsScripts","validateConfig","enableProxyCache","imageOptimizer","outDir","distZip","syncBackupsDir","MI_ACCESS_TOKEN","distZipConfig","outFileName","imageOptimizerConfig","vitePPDev","isFirstRequest","normalizedAppId","apply","port","validateServerConfig","transformIndexHtml","html","ctx","tag","injectTo","children","Math","random","configureServer","lastIndexOf","middlewares","baseUrlHost","miConfig","cacheConfig","validateProxyCacheConfig","isIndexRegExp","proxyPassMiddleware","sendErrorResponse","details","handleTokenValidationError","enhancedErrorInfo","errorCode","Authorization","user","user_id","Token","users","backupDir"],"mappings":"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"}
|