@metricinsights/pp-dev 0.18.3 → 1.0.0-beta.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.
Files changed (53) hide show
  1. package/CHANGELOG.md +178 -0
  2. package/README.md +222 -250
  3. package/dist/CHANGELOG.md +178 -0
  4. package/dist/README.md +222 -250
  5. package/dist/cjs/cli.js +1 -1
  6. package/dist/cjs/cli.js.map +1 -1
  7. package/dist/cjs/helpers.js +1 -1
  8. package/dist/cjs/helpers.js.map +1 -1
  9. package/dist/cjs/index-MzGAxNTB.js +2 -0
  10. package/dist/cjs/index-MzGAxNTB.js.map +1 -0
  11. package/dist/cjs/index.js +1 -1
  12. package/dist/cjs/migrate-r2mXdGLZ.js +2 -0
  13. package/dist/cjs/migrate-r2mXdGLZ.js.map +1 -0
  14. package/dist/cjs/package.json +18 -16
  15. package/dist/cjs/plugin-34c8_AjI.js +2 -0
  16. package/dist/cjs/plugin-34c8_AjI.js.map +1 -0
  17. package/dist/cjs/plugin.js +1 -1
  18. package/dist/cjs/version-plugin-BOFuJ-Rp.js +2 -0
  19. package/dist/cjs/version-plugin-BOFuJ-Rp.js.map +1 -0
  20. package/dist/client/client.css +1 -1
  21. package/dist/client/client.css.map +1 -1
  22. package/dist/client/client.js +168 -25
  23. package/dist/client/client.js.map +1 -1
  24. package/dist/client/index.html +33 -16
  25. package/dist/esm/cli.js +1 -1
  26. package/dist/esm/cli.js.map +1 -1
  27. package/dist/esm/helpers.js +1 -1
  28. package/dist/esm/helpers.js.map +1 -1
  29. package/dist/esm/index-C7dYPskY.js +2 -0
  30. package/dist/esm/index-C7dYPskY.js.map +1 -0
  31. package/dist/esm/index.js +1 -1
  32. package/dist/esm/migrate-BYuCtRbI.js +2 -0
  33. package/dist/esm/migrate-BYuCtRbI.js.map +1 -0
  34. package/dist/esm/package.json +18 -16
  35. package/dist/esm/plugin-Dvva-sxE.js +2 -0
  36. package/dist/esm/plugin-Dvva-sxE.js.map +1 -0
  37. package/dist/esm/plugin.js +1 -1
  38. package/dist/esm/version-plugin-vu8VWkws.js +2 -0
  39. package/dist/esm/version-plugin-vu8VWkws.js.map +1 -0
  40. package/dist/types/index.d.ts +103 -139
  41. package/package.json +37 -28
  42. package/dist/cjs/index-B1GblhLQ.js +0 -2
  43. package/dist/cjs/index-B1GblhLQ.js.map +0 -1
  44. package/dist/cjs/plugin-DY9gjLm8.js +0 -2
  45. package/dist/cjs/plugin-DY9gjLm8.js.map +0 -1
  46. package/dist/cjs/version-plugin-DSLhm6Q1.js +0 -2
  47. package/dist/cjs/version-plugin-DSLhm6Q1.js.map +0 -1
  48. package/dist/esm/index-basLGB1P.js +0 -2
  49. package/dist/esm/index-basLGB1P.js.map +0 -1
  50. package/dist/esm/plugin-B6DaUVqp.js +0 -2
  51. package/dist/esm/plugin-B6DaUVqp.js.map +0 -1
  52. package/dist/esm/version-plugin-DekxT1OJ.js +0 -2
  53. package/dist/esm/version-plugin-DekxT1OJ.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{createProxyMiddleware as e,responseInterceptor as t}from"http-proxy-middleware";import{URL as s,fileURLToPath as n}from"url";import{createLogger as a}from"vite";import{createColors as r}from"picocolors";import i,{isAxiosError as o}from"axios";import c from"node:http";import l from"node:https";import{JSDOM as p}from"jsdom";import*as d from"path";import{promises as h}from"fs";import*as u from"crypto";import{randomUUID as g}from"crypto";import*as m from"process";import*as f from"child_process";import*as w from"console";import*as y from"os";import v from"extract-zip";import*as b from"memory-cache";import{inflateSync as k,brotliDecompressSync as x,unzipSync as T,deflateSync as P,brotliCompressSync as $,gzipSync as E}from"zlib";import S from"express";const I=(e,t,s)=>{const n=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return s.replace(n,(e,...s)=>e.startsWith("!!")?s[1]:`http${s[2]}${t}`)},A=(e,t,s)=>{e.setHeader("location",t),e.statusCode=s,e.end()};let F=new Map;const R="default",L=(e="info",t=R)=>{if(F&&"function"==typeof F.has||(F=new Map),F.has(t))return F.get(t);if(t===R){const s=a(e);return F.set(t,s),s}const s=a(e);return F.set(t,s),s},N=r(),O=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,n){const a=e[t];a&&(s.placeholder=a.placeholder,n.innerHTML=a.caption)}function s(e,t){t.textContent=e,t.classList.add("show")}function n(e){e.classList.remove("show")}function a(e,t,a,r){a.addEventListener("click",async a=>{if(a.preventDefault(),n(r),!t.value.trim())return s(`${t.placeholder} is required`,r),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,n,a){try{n.classList.add("loading");const r=await fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:t}),redirect:"follow"}),i=r.url&&new URL(r.url,window.location.origin);if(!i||i.pathname.startsWith("/login")||i.pathname.startsWith("/@api/"))try{const e=await r.json();s(`Login failed: ${e?.error||"Unknown error occurred"}`,a)}catch(e){s("Login failed: Unable to parse response",a)}else window.location.href=r.url}catch(e){s("Login failed: Network error. Please check your connection.",a)}finally{n.classList.remove("loading")}}(t.value.trim(),c,e,r)}),t.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),a.click())}),t.addEventListener("input",()=>{n(r)})}function r(e){const s=e.firstChild;if(!s)return;const n=s.lastChild?.cloneNode(!0);if(!n)return;n.innerHTML="";const r=n.cloneNode(!0);r.innerText="OR",r.setAttribute("role","separator"),r.setAttribute("aria-label","Alternative login method");const i=n.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(r),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,n){const a=e.querySelectorAll(".token-type-option"),r=e=>{const r=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(r,s,n)};a.forEach(e=>{e.addEventListener("click",e=>{const t=e.currentTarget;r(t)}),e.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),r(e))})})}(l,p,d),a(g,p,h,u),t("personal",p,d)):console.error("Failed to find required form elements")}const i='#mi-react-root form:not([id]):has(input[name="login"]):has(input[name="password"])',o=new MutationObserver(e=>{for(const t of e)if("childList"===t.type){const e=document.querySelector(i);if(e){o.disconnect(),r(e);break}}});o.observe(document.body,{childList:!0,subtree:!0});const c=document.querySelector(i);c&&(o.disconnect(),r(c))},C=/^(https?:\/\/)([^/]+)(\/.*)?$/i,M="X-PP-Proxy";function j(n){const{rewritePath:a=/^\/(?!p[tl]).*/i,baseURL:r="",disableSSLValidation:i=!1,miAPI:o,templateName:c}=n;if(!r)throw new Error("Base url is required");const l=r.replace(C,"$2"),p=r.replace(C,"$1$2"),d=import("file-type"),h=L();return e({selfHandleResponse:!0,pathFilter:(e,t)=>!(n.proxyIgnore||[]).some(t=>"string"==typeof t?e.startsWith(t):"function"!=typeof t.test||t.test(e))&&("string"==typeof a?e.startsWith(a):Array.isArray(a)?a.some(t=>e.startsWith(t)):"function"==typeof a.test&&a.test(e)),target:r,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[l]:"localhost"},logger:{info:()=>{},log:()=>{},error:()=>{},warn:()=>{}},secure:!i,headers:{host:l,origin:p},on:{proxyReq(e,t,n){const a=t.headers.host,i=e.getHeader("referer");a&&i&&"string"==typeof i&&e.setHeader("referer",i.replace(new RegExp(`https?://${a}`),r)),o.personalAccessToken&&e.setHeader("Authorization",`Bearer ${o.personalAccessToken}`);const l=t.url??"/",p=function(e,t,n,a){if(!t||!n||!a||n===a)return e;try{const t=new s(e,"http://localhost"),r=t.pathname.match(/^\/data\/page\/([^/]+)(\/.*)?$/);if(!r)return e;let i;try{i=decodeURIComponent(r[1])}catch{i=r[1]}if(i!==n)return e;return`/data/page/${a}${r[2]??""}`+t.search+t.hash}catch{return e}}(l,o.v7Features,c,o.internalPageName);return p!==l&&(t.url=p,e.path=p,console.info(`${N.cyan("Rewrites data page to correct internal page name")}: ${N.yellow(l)} ${N.blue("→")} ${N.green(p)}`)),h.info(`${N.blue("Proxies request:")} ${N.green(t.method)} ${t.url} -> ${N.green(e.method)} ${e.protocol}//${e.host}${e.path}`),t.socket.setMaxListeners(0),t.socket.once("close",()=>{setTimeout(()=>{e.destroyed||e.destroy()},200)}),e},proxyRes:(e,s,n)=>{if(e.headers["content-type"]?.includes("text/event-stream")||e.headers["transfer-encoding"]?.includes("chunked")&&"no"===e.headers["x-accel-buffering"]){h.info(`${N.blue("Start streaming for request:")} ${N.green(s.method)} ${s.url}`);const t=async(e,t,s)=>{s.setHeader(M,1),s.setHeaders(new Map(Object.entries(e.headers))),e.pipe(s)};return t(e,s,n)}const a=t(async(e,t,s,n)=>{n.setHeader(M,1);if(await(await d).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(s.url??"",`http://${l}`);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 n=window.location.href;const a=function(){const r=new URLSearchParams(window.location.search);if(!r.has("proxyRedirect"))return console.debug("No proxyRedirect param. Cleaning up."),void localStorage.removeItem(e);n!==window.location.href?(n=window.location.href,setTimeout(a,s<3?3e3:5e3)):window.location.href=r.get("proxyRedirect"),localStorage.setItem(e,""+ ++s),localStorage.setItem(t,(new Date).toISOString())};setTimeout(a,3e3)}.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(n.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),n.setHeader("Pragma","no-cache"),n.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 = "${l}";\n(${O.toString()})()<\/script>`)}catch{}const a=s.headers.host??"";return((e,t,s)=>{const n=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),a=new RegExp(`${e}`,"gi"),r=s.replace(n,t);return r===s?r.replace(a,t):r})("/auth/saml/login","/login",I(l,a,t))}});return a(e,s,n)},error(e,t,s){const n=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;h.error(n),s.writable&&s.writeHead(500,{"Content-Type":"text/plain"}),s.end(n)}}})}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 H 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 n=new(await this.formdataModulePromise).FormData,{File:a}=await this.formdataModulePromise,r=new a([t],"file.zip",{type:"application/zip"});n.append("file",r);const i=this.getUploadUrl(e);return this.axios.post(i,n,{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 n=new(await this.formdataModulePromise).FormData,{File:a}=await this.formdataModulePromise,r=new a([t],"file.zip",{type:"application/zip"});n.append("file",r,"file.zip");const i=this.getUploadTemplateUrl(e);return this.axios.post(i,n,{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 B extends H{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`}}const V="Something went wrong when fetching page data",U="Something went wrong when fetching page template data",_=" The instance may be down or in maintenance mode. Please try again later.";function z(){return new Error(`${U}.${_}`)}function q(e){return e instanceof Error&&(e.message.includes(V)||e.message.includes(U))}class Z 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){const s=(await this.axios.get(`/api/page/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data;if("object"!=typeof s||null===s)throw new Error(`${V}.${_}`);return s.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 W extends D{async getAll(e,t){const s=(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;if("object"!=typeof s||null===s||!Array.isArray(s.page_templates))throw z();return s.page_templates}async get(e,t){const s=(await this.axios.get(`/api/page_template/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data;if("object"!=typeof s||null===s||"object"!=typeof s.page_template||null===s.page_template)throw z();return s.page_template}}function Y(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 X="[DEV PAGE. DO NOT DELETE]",K=new Map;class J{#e;#t;#s=null;#n;#a;#r;#i;#o;#c;#l;internalPageName;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:s={},portalPageId:n,templateLess:a=!0,disableSSLValidation:r=!1,v7Features:o=!1,personalAccessToken:p}=t||{};this.#e=s,this.#a=[],this.#n="",this.#r=o,this.#i=p,this.#o=!1,this.#c=Promise.resolve(!1);const d=`${e}:${r}`;if(K.has(d))this.#t=K.get(d);else{r&&(process.env.NODE_TLS_REJECT_UNAUTHORIZED="0");const t=new l.Agent({keepAlive:!1,...r?{rejectUnauthorized:!1}:{}});this.#t=i.create({baseURL:e,headers:s,timeout:3e4,maxRedirects:5,httpAgent:new c.Agent({keepAlive:!1}),httpsAgent:t}),r&&(i.defaults.httpsAgent=t),K.set(d,this.#t)}this.portalPageId=n,this.templateLess=a,this.assetsApi=new(o?B:H)(this.#t),this.pageApi=new Z(this.#t),this.pageTemplateApi=new W(this.#t),this.logger=L()}async isTemplateLoaded(){return this.#c}get isV710OrHigher(){return this.#o}get v7Features(){return this.#r}#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}#d(e){return e.replace(/[.*+?^${}()|[\]\\\/]/g,"\\$&")}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.#r){const t=await this.pageApi.get(this.portalPageId,this.#p(e)).then(e=>(this.logger.info(N.green("Page fetched")),e)).catch(async t=>{if(this.#l(!1),q(t))throw t;throw await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(N.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.internalPageName=t.internal_name,this.#s=this.localTemplateHTML,this.#s=this.#s.replace(/%%PAGE TITLE%%/g,t.name||"Local template"),this.logger.info(N.green("Local page template fetched")),this.#l(!0),this.#s}let t=(await this.pageApi.getAll(this.#p(e)).then(e=>(this.logger.info(N.green("Page list fetched")),e)).catch(async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(N.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===X);return t||(this.logger.warn(N.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:X,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#p(e)).then(e=>(this.logger.info(N.green("Dev page created")),e)).catch(e=>{throw this.logger.error(N.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 "${X}" 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(N.green("Page template fetched")),e)).catch(e=>{throw this.#l(!1),this.logger.error(N.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:n}=e;if(n&&t){const e=JSON.parse(t);return this.#a=e,this.#n=s,e}return this.#a=[],this.#n=s,[]}).catch(t=>{if(this.logger.error(N.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),n=this.portalPageId;try{return this.#r?await this.#h(n,s):await this.#u(n,s)}catch(e){this.#g(e,n)}}async#h(e,t){const s=await this.pageApi.get(e,t);return this.logger.info(N.green("Page fetched")),void 0!==s.template_id&&(this.#o=!0),this.internalPageName=s.internal_name,s}async#u(e,t){return await this.pageApi.get(e,t)}#g(e,t){if(q(e))throw e;if(this.#r&&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(N.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){const t=this.#d(e.name),n=new RegExp(`\\[${t}\\]`,"g");s=s.replace(n,()=>e.value)}const n=new p(t?s:this.#s),a="%%PLACEHOLDER%%";if(!t){const e=n.window.document.createElement("div");e.innerHTML=a;const t=n.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=n.window.document.createElement("div");t.append(e),n.window.document.body.append(t)}const s=n.window.document.querySelector("head"),r=s.querySelector("title");if(r)r.text=this.#n;else{const e=n.window.document.createElement("title");e.textContent=this.#n,s.appendChild(e)}}return n.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=Y(e);return{isValid:!1,error:t.userFriendlyMessage,code:t.code}}}async get(e,t,s=!1){const n=s?t:Object.assign({},this.#p(this.#e),t);try{return await this.#t.get(e,{headers:n})}catch(e){if("UNKNOWN_ERROR"!==Y(e).code){const t=Y(e);throw this.logger.error(N.red(`API request failed: ${t.userFriendlyMessage}`)),function(e,t,s){const n=Y(t),a=`[${s}] `;e.error(N.red(`${a}${n.userFriendlyMessage}`)),e.error(N.red(`Status: ${n.status} (${n.code})`)),e.error(N.red(`Details: ${n.message}`)),n.suggestions.length>0&&(e.info(N.yellow("Suggestions:")),n.suggestions.forEach((t,s)=>{e.info(N.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}}}const G="pageName",Q="date",ee=d.dirname("undefined"!=typeof __filename&&__filename||n(import.meta.url)),te=d.resolve(ee,"..",".."),se=d.resolve(te,"..",".."),ne=d.resolve(se,".pp-dev-meta"),ae=d.resolve(ne,"sync-service.meta.json"),re="BUILD-MANIFEST.json",ie="__template_variables.json";class oe{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;versionFileTemplate;logger;constructor(e,t){this.pageName=e;const{backupFolder:s=d.resolve(m.cwd(),"backups"),distZipFolder:n=d.resolve(m.cwd(),"dist-zip"),distZipFilename:a=`${this.pageName}.zip`,backupNameTemplate:r=`{${G}}-{${Q}}.zip`,versionFileTemplate:i="VERSION-v{packageversion}-{currentDate}.json",dateFormat:o=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,"")}=t||{};this.backupFolder=s,this.backupNameTemplate=r,this.dateFormat=o,this.distZipFolder=n,this.distZipFilename=a,this.versionFileTemplate=i,this.syncMeta(),this.logger=L()}async checkMeta(){try{await h.stat(ne)}catch{await h.mkdir(ne)}try{await h.stat(this.backupFolder)}catch{await h.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await h.readFile(ae,{encoding:"utf-8"}).catch(()=>"{}")}async writeMetaFile(e){return await this.checkMeta(),await h.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=d.resolve(this.backupFolder,e);try{return await h.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}pathToPosix(e){return e.replace(/\\/g,"/")}async normalizeExtractedRootDir(e){let t=e;for(;;){const e=await h.readdir(t,{withFileTypes:!0});if(1!==e.length||!e[0]?.isDirectory())return t;t=d.join(t,e[0].name)}}async listFilesRecursive(e){const t=await h.readdir(e,{withFileTypes:!0}),s=[];for(const n of t){const t=d.join(e,n.name);n.isDirectory()?s.push(...await this.listFilesRecursive(t)):n.isFile()&&s.push(t)}return s}buildManifestChecksum(e){const t=Object.keys(e).sort().map(t=>e[t]).join("");return u.createHash("sha256").update(t).digest("hex")}buildBackupFingerprint(e){const t=Object.keys(e).sort().map(t=>`${t}:${e[t]}`).join("\n");return u.createHash("sha256").update(t,"utf-8").digest("hex")}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}versionFileTemplateMatcher(){const e=/\{[^}]+\}/g,t=[];let s=0,n=null;for(;n=e.exec(this.versionFileTemplate),n;){const[e]=n,a=this.versionFileTemplate.slice(s,n.index);t.push(this.escapeRegExp(a)),t.push("[^/]+"),s=n.index+e.length}const a=this.versionFileTemplate.slice(s);return t.push(this.escapeRegExp(a)),new RegExp(`^${t.join("")}$`,"i")}isTemplateVariablesBasename(e){return e===ie}async pickTemplateVariablesFromBackupZip(e,t){const s=e.find(e=>d.basename(e)===ie);if(!s)return null;const n=d.join(t,s),a=await h.readFile(n);return{relativePath:s,content:a,actualHash:u.createHash("sha256").update(a).digest("hex"),manifestHash:null}}async resolveBackupAnalysisFromZip(e){const t=await h.mkdtemp(d.join(y.tmpdir(),"pp-dev-backup-")),s=d.join(t,"backup.zip"),n=d.join(t,"extracted");try{await h.mkdir(n,{recursive:!0}),await h.writeFile(s,e),await v(s,{dir:n});const t=await this.normalizeExtractedRootDir(n),a=(await this.listFilesRecursive(t)).map(e=>this.pathToPosix(d.relative(t,e))),r=a.filter(e=>d.basename(e)===re);if(r.length>1)throw new Error(`Expected at most one ${re} in backup ZIP, found ${r.length}`);const i=1===r.length?r[0]:null;let o=null;if(i){const e=d.join(t,i);if(o=JSON.parse(await h.readFile(e,"utf-8")),!(o&&"pp-dev-build-manifest"===o.manifestType&&"string"==typeof o.versionFile&&o.versionFile.trim()&&"string"==typeof o.versionFileTemplate&&o.versionFileTemplate.trim()&&"string"==typeof o.buildFingerprint&&o.buildFingerprint.trim()))throw new Error("Build manifest is missing required fields")}let c=null;if(o){const e=this.pathToPosix(o.versionFile.trim()),t=a.filter(t=>t===e),s=a.filter(t=>d.basename(t)===d.basename(e)),n=t.length>0?t:s;if(n.length>1)throw new Error(`Build manifest version file "${o.versionFile}" must resolve to exactly one file in backup ZIP, found ${n.length}`);if(1===n.length&&(c=n[0]),!0===o.compat?.versionFileRequired&&null===c)throw new Error(`Build manifest requires version file "${o.versionFile}", but it is missing in backup ZIP`)}else{const e=this.versionFileTemplateMatcher(),t=a.filter(t=>e.test(d.basename(t)));if(t.length>1)throw new Error(`Expected exactly one version file matching template "${this.versionFileTemplate}" in backup ZIP, found ${t.length}`);1===t.length&&(c=t[0])}const l={};let p=null,g=null;const m={};let f=[];if(c){const e=d.join(t,c),s=JSON.parse(await h.readFile(e,"utf-8"));if(!s?.files||"object"!=typeof s.files)throw new Error("VERSION manifest files map is missing or invalid");if("string"!=typeof s.checksum||!s.checksum)throw new Error("VERSION manifest checksum is missing or invalid");g=s.checksum;for(const[e,t]of Object.entries(s.files)){if("string"!=typeof t||!t.trim())throw new Error(`VERSION manifest contains invalid hash for file: ${e}`);l[this.pathToPosix(e)]=t}if(this.buildManifestChecksum(l)!==s.checksum)throw new Error("VERSION manifest checksum does not match its files map");for(const[e,s]of Object.entries(l)){const n=d.join(t,e),a=await h.readFile(n).catch(()=>null);if(!a)throw new Error(`VERSION manifest references missing file: ${e}`);const r=u.createHash("sha256").update(a).digest("hex");m[e]=r,r!==s&&f.push({relativePath:e,expected:s,actual:r}),this.isTemplateVariablesBasename(d.basename(e))&&(p={relativePath:e,content:a,actualHash:r,manifestHash:s})}f.length>0&&this.logger.warn(N.yellow(`[DistService] VERSION manifest hash mismatch for ${f.length} file(s) (confirm in UI): ${f.map(e=>e.relativePath).join(", ")}`))}const w=new Set(f.map(e=>e.relativePath)),y={},b=[];for(const e of a){if(e===i)continue;if(c&&e===c)continue;if(c&&Object.prototype.hasOwnProperty.call(y,e))continue;const s=d.join(t,e),n=await h.readFile(s),a=u.createHash("sha256").update(n).digest("hex");c&&Object.prototype.hasOwnProperty.call(l,e)?y[e]=w.has(e)?m[e]:l[e]:c?(y[e]="__NOT_IN_VERSION_FILE__",b.push(e)):y[e]=a}p||(p=await this.pickTemplateVariablesFromBackupZip(a,t));const k=this.buildBackupFingerprint(y);let x=null;return o&&c&&k!==o.buildFingerprint&&(x={expected:o.buildFingerprint,actual:k},this.logger.warn(N.yellow(`[DistService] Build manifest fingerprint mismatch (confirm in UI): expected ${o.buildFingerprint}, got ${k}`))),{backupFingerprint:k,unknownFiles:b,templateVariables:p,mainHash:g,allFilesInMeta:Boolean(c&&0===b.length),buildManifestMismatch:x,versionManifestHashMismatches:f}}finally{await h.rm(t,{recursive:!0,force:!0})}}async analyzeBackup(e){if("PK"!==e.toString("utf-8").slice(0,4))throw new Error("Backup file is not a ZIP file");return await this.resolveBackupAnalysisFromZip(e)}async getPublicTemplateVariablesHash(){const e=d.resolve(m.cwd(),"public",ie),t=await h.readFile(e).catch(()=>null);return t?u.createHash("sha256").update(t).digest("hex"):null}async saveTemplateVariablesFile(e){const t=d.resolve(m.cwd(),"public",ie);return await h.mkdir(d.dirname(t),{recursive:!0}),await h.writeFile(t,e),t}async saveBackup(e,t){const s=t??await this.analyzeBackup(e),n=s.backupFingerprint;if(await this.getLatestSavedBackup()){const{lastBackupHash:e,lastMainHash:t}=this.currentMeta;if(e===n)return void this.logger.info(N.yellow(`[DistService] Backup skipped: same backup fingerprint as last saved (${n.slice(0,12)}...)`));if(s.allFilesInMeta&&s.mainHash&&t===s.mainHash)return void this.logger.info(N.yellow("[DistService] Backup skipped: same VERSION manifest checksum (main hash) and all files listed in VERSION"))}const a=new Date,r=this.backupName(this.pageName,a);return this.currentMeta.lastBackupName=r,this.currentMeta.lastBackupHash=n,this.currentMeta.lastBackupDate=a.toISOString(),s.mainHash?this.currentMeta.lastMainHash=s.mainHash:delete this.currentMeta.lastMainHash,await this.syncMeta(),await h.writeFile(d.resolve(this.backupFolder,r),e).finally(()=>{this.logger.info(`Backup saved to ${r}`)})}async buildNewAssets(){const e=new Promise((e,t)=>{let s="";this.logger.info(N.cyan("[DistService] Build started"));const n=f.spawn("node",[d.resolve(te,"./bin/pp-dev.js"),"build"],{cwd:m.cwd(),env:Object.assign({},m.env,{NODE_ENV:"production"}),stdio:"inherit"});n.on("message",e=>{s+=e}),n.on("close",n=>{0===n?e(s):t(new Error(`build command exited with code ${n}`))}),n.on("error",e=>{t(e)})});try{await e.finally(()=>{this.logger.info(N.cyan("[DistService] Build finished"))});const t=d.resolve(m.cwd(),this.distZipFolder,this.distZipFilename);if(!await h.stat(t))throw new Error(`File ${t} not found`);return await h.readFile(t)}catch(e){throw w.log(e),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}}class ce{server;opts;eventMap;logger;syncActionResolvers=new Map;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.eventMap.set("template:sync:action-response",this.onTemplateSyncActionResponse.bind(this)),this.logger=L(),this.init()}init(){const{ws:e}=this.server;for(const[t,s]of this.eventMap)e.on(t,s);e.on("close",()=>{this.clearAllPendingSyncActions(!1)}),e.on("error",()=>{this.clearAllPendingSyncActions(!1)})}resolveSyncAction(e,t){const s=this.syncActionResolvers.get(e);s&&(clearTimeout(s.timeoutId),this.syncActionResolvers.delete(e),s.resolve(t))}clearAllPendingSyncActions(e){for(const t of[...this.syncActionResolvers.keys()])this.resolveSyncAction(t,e)}onInfoDataRequest(){this.server.ws.send({type:"custom",event:"info-data:response",data:{}})}onTemplateSyncActionResponse(e){e&&"string"==typeof e.requestId&&"boolean"==typeof e.approved&&this.resolveSyncAction(e.requestId,e.approved)}async requestSyncAction(e){const t=g(),s=this.opts.syncActionTimeoutMs??12e4;return await new Promise(n=>{const a=setTimeout(()=>{this.resolveSyncAction(t,!1)},s);this.syncActionResolvers.set(t,{resolve:n,timeoutId:a}),this.server.ws.send("template:sync:action-required",{...e,requestId:t})})}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(N.red("Dist service or MiAPI is not defined"));{const{distService:e,miAPI:t}=this.opts;try{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(o(e)){if("SESSION_EXPIRED"===Y(e).code){this.logger.info(N.yellow("Session expired - attempting to validate credentials"));try{const e=await(t?.validateCredentials());e&&!e.isValid?(this.logger.error(N.red(`Authentication error: ${e.error}`)),this.server.ws.send("template:sync:response",{error:e.error,code:e.code,refresh:!0})):(this.logger.info(N.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0}))}catch(e){this.logger.info(N.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(N.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;const s=e.response?.status;if(502===s||503===s||504===s)return this.logger.info(N.yellow(`Server in maintenance mode or unreachable (HTTP ${s}); VPN may be required`)),this.server.ws.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e}if(q(e))return this.logger.info(N.yellow("Server in maintenance mode or non-JSON page / page-template API response (unavailable HTML body)")),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;let n;if(s){const t=await(e?.analyzeBackup(s).catch(e=>"Backup file is not a ZIP file"===e.message?(this.logger.error(N.red("Backup file is not a ZIP file")),e):e));if(t instanceof Error)n=t;else if(t){await(e?.saveBackup(s,t));const a=0===t.unknownFiles.length&&1===t.versionManifestHashMismatches.length&&d.basename(t.versionManifestHashMismatches[0].relativePath)===ie,r=t.versionManifestHashMismatches,i=r.filter(e=>d.basename(e.relativePath)===ie),o=r.filter(e=>d.basename(e.relativePath)!==ie),c=!a&&i.length>0&&o.length>0,l=a?[]:o.map(e=>e.relativePath),p=async()=>{if(!t.templateVariables||!e)return;const{templateVariables:s}=t;if(await e.getPublicTemplateVariablesHash()!==s.actualHash){await this.requestSyncAction({title:"Template variables (server backup)",content:"The server backup includes __template_variables.json. It differs from your local public/__template_variables.json (or that file is missing). Replace your project copy with the server backup?",confirmText:"Replace from server",cancelText:"Keep local"})&&await e.saveTemplateVariablesFile(s.content)}};if(t.unknownFiles.length>0){if(!await this.requestSyncAction({title:"Unknown files found in backup",content:`Backup contains files not listed in VERSION: ${t.unknownFiles.join(", ")}. Continue sync or cancel?`,confirmText:"Continue sync",cancelText:"Cancel sync"}))return this.server.ws.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(N.yellow("Sync cancelled by user"))}if(c&&await p(),!a&&l.length>0){const e=40,t=l,s=t.slice(0,e),n=t.length-s.length,a=s.map(e=>`• ${e}`).join("\n"),r=n>0?`\n... and ${n} more file${1===n?"":"s"}`:"";if(!await this.requestSyncAction({title:"VERSION manifest out of date",content:`These files no longer match the hashes recorded in the VERSION manifest:\n\n${a}${r}\n\nCancel sync, or override and continue using the files on disk?`,confirmText:"Override and continue",cancelText:"Cancel sync"}))return this.server.ws.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(N.yellow("Sync cancelled by user"))}if(!a&&t.buildManifestMismatch&&0===t.versionManifestHashMismatches.length){const{expected:e,actual:s}=t.buildManifestMismatch;if(!await this.requestSyncAction({title:"Build manifest fingerprint mismatch",content:`The recomputed backup fingerprint does not match BUILD-MANIFEST.json.\nManifest: ${e.slice(0,12)}...\nComputed: ${s.slice(0,12)}...\nContinue sync anyway?`,confirmText:"Continue sync",cancelText:"Cancel sync"}))return this.server.ws.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(N.yellow("Sync cancelled by user"))}c||await p(),n=await(e?.buildNewAssets())}}else n=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(N.red(n.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(N.red("Failed to build new assets")));{const s=await(t?.updateAssets(n));if("OK"===s?.status){const t=e?.getBackupMeta(),{lastBackupName:s,lastBackupHash:n,lastBackupDate:a}=t||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};this.server.ws.send("template:sync:response",{syncedAt:new Date(a),currentHash:n,backupFilename:s}),this.logger.info(N.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(N.red("Failed to update assets"))}}catch(e){const t=e instanceof Error?e.message:"Template sync failed";return this.logger.error(N.red(`Template sync failed: ${t}`)),void this.server.ws.send("template:sync:response",{error:t,code:"SYNC_FAILED"})}}}}const le=/\.(?:[a-z0-9]+)$/i,pe=6e5,de=104857600,he=1e3;class ue extends b.Cache{totalSize=0;maxSize;maxItems;constructor(e,t){super(),this.maxSize=e,this.maxItems=t}put(e,t,s){const n=this.get(e);n&&(this.totalSize-=n.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),n=this.get(t);return(s?.timestamp||0)-(n?.timestamp||0)});for(let e=0;e<t;e++){const t=s[e],n=this.get(t);n&&(this.totalSize-=n.size,this.del(t))}}for(;this.totalSize>this.maxSize&&e.length>0;){const t=e.sort((e,t)=>{const s=this.get(e),n=this.get(t);return(s?.timestamp||0)-(n?.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 ge=new ue(de,he);function me(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 fe(e){const{devServer:t,ttl:s=pe,maxSize:n=de,maxItems:a=he}=e,r=L();return n===de&&a===he||(ge.maxSize=n,ge.maxItems=a),t.cache=ge,(e,t,n)=>{const a=e.originalUrl||e.url||"",i=function(e){const t=e.split("?")[0];return le.test(t)?t.includes("/auth/info.js")?"":e:""}(a);if(!i)return n();const o=ge.get(i);if(o)return r.info(`${N.blue("Proxies request:")} ${N.green(e.method)} ${a} -> ${N.blue("Cache")} ${i}`),function(e,t){try{for(const[s,n]of Object.entries(t))null!=n&&e.setHeader(s,n)}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,n){if(!t.hasHeader(M))return l.call(this,e,s,n);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,n,a){if(!t.hasHeader(M))return c.call(this,e,n,a);if(null!=e)if("string"==typeof e){const t=n||"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=me(p);const e=Buffer.byteLength(o);if(e>0&&e<10485760){const n={headers:t.getHeaders(),content:o,timestamp:Date.now(),size:e};ge.put(i,n,s),r.info(`${N.blue("[Cached]")} ${i} (${(e/1024).toFixed(1)}KB)`)}}catch(e){r.error(`Failed to cache response for ${i}: ${e}`),o=me(p)}const l=n||"utf8";return c.call(this,o,l,a)},n()}}function we(e,t){return async(s,n,a)=>{if(await e(s.url??"",s,n)){L().info(`Rewrite response for ${s.url}`);const e=n.end,a=[];n.write=function(e){return a.push(e),!0},n.end=function(r,i,o){"string"==typeof r&&a.push(Buffer.from(r));const c=n.getHeader("content-encoding"),l=function(e,t){switch(t){case"gzip":return T(e);case"br":return x(e);case"deflate":return k(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 E(e);case"br":return $(e);case"deflate":return P(e);default:return e}}(t(l,s,n),c),p,d),this}}a()}}function ye(e,t){const n=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,a=L();return(r,i,o)=>{const c=new s(r.url??"","http://localhost"),{pathname:l,search:p}=c,d=["/",n];if(t&&(d.push(`/pt/${t}`),d.push(`/pl/${t}`)),d.includes(l)){const t=`${e}${p}`;return a.info(N.yellow(`Redirecting to: ${t}`)),A(i,t,302)}o()}}class ve{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 be=new ve,ke=new Map;function xe(e){const t=ke.get(e);return t?Date.now()-t.timestamp>18e4?(ke.delete(e),null):t.data:null}function Te(e,t){ke.set(e,{timestamp:Date.now(),data:t})}const Pe="/home?proxyRedirect=";function $e(e,t,s){const{templateLess:n=!1,miHudLess:a=!1,appId:r,base:i,v7Features:o}=s,c=L();if(n&&a&&void 0===r)throw new Error("Custom App ID is required when both templateLess and miHudLess are true");let l=be.getState();return be.subscribe(e=>{l=e}),async(s,p,d)=>{try{const h=!(n&&a),u=e.test((s.url??"").split("?")[0]);if(!l.isAuthenticated&&!l.isRedirected&&s.url?.startsWith("/home")&&!s.url?.startsWith(Pe)){c.info(N.blue("Trying to authenticate and redirect to base"));try{return h?await Se(t,{templateLess:n,miHudLess:a,appId:r,redirectUrl:o&&i?`${i}`:`${Pe}${encodeURIComponent("/")}`},s,p,()=>{},c):await Ee(t,{templateLess:n,miHudLess:a,appId:r,redirectUrl:o&&i?`${i}`:`${Pe}${encodeURIComponent("/")}`},s,p,()=>{},c),be.setRedirected(!0),c.info(N.blue("Successfully authenticated. Redirecting to base")),A(p,i??"/",302)}catch(e){return d()}}if(!u)return d();if(!h){return await Ee(t,{templateLess:n,miHudLess:a,appId:r,redirectUrl:o&&i?`${i}`:`${Pe}${encodeURIComponent("/")}`},s,p,d,c)}return await Se(t,{templateLess:n,miHudLess:a,appId:r,redirectUrl:o&&i?`${i}`:`${Pe}${encodeURIComponent("/")}`},s,p,d,c)}catch(e){return c.error(N.red(`Unexpected error in load-pp-data middleware: ${e instanceof Error?e.message:String(e)}`)),be.reset(),d(e)}}}async function Ee(e,t,s,n,a,r){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 r.error(N.red(e.message)),a(e)}const l=s.headers??{};r.info(N.green("Start loading page info"));try{const t=`pageInfo:${i}`;return xe(t)?(r.info(N.green("Page info loaded from cache")),a()):(await e.getPageInfo(i,l),r.info(N.blue("Clearing proxy cache after successful login")),ge.clear(),Te(t,{success:!0}),be.updateState({isAuthenticated:!0}),r.info(N.green("Page info loaded successfully")),a())}catch(e){return be.reset(),Ie(e,o??!0,c||`${Pe}${encodeURIComponent("/")}`,n,a,r,"Page info")}}async function Se(e,t,s,n,a,r){const{templateLess:i,appId:o,redirectOnAuthFailure:c,redirectUrl:l}=t,p=s.headers??{};r.info(N.green("Start loading page data"));try{const t=`pageData:${i}:${o}`;if(xe(t))return r.info(N.green("Page data loaded from cache")),a();const s=i||void 0===o?e.getPageTemplate(p):e.getPageVariables(o,p);return await s,r.info(N.blue("Clearing proxy cache after successful login")),ge.clear(),Te(t,{success:!0}),r.info(N.green("Page data loaded successfully")),a()}catch(e){return be.reset(),Ie(e,c??!0,l||`${Pe}${encodeURIComponent("/")}`,n,a,r,"Page data")}}function Ie(e,t,s,n,a,r,i){if(function(e){return null!==e&&"object"==typeof e&&"response"in e&&void 0!==e.response}(e)&&(r.info(N.red(`${i} loading failed. Not authorized`)),t)){const e=`${s}`;return r.info(N.yellow(`Redirecting to: ${e}`)),A(n,e,302)}const o=e instanceof Error?e.message:String(e);return r.info(N.red(`${i} loading failed. Error: ${o}`)),a(e)}function Ae(){const e=S();return e.use(S.json()),e.use(S.urlencoded({extended:!0})),e}const Fe=Ae();function Re(e,t,s){return t(e)?{isValid:!0}:{isValid:!1,error:s}}function Le(e){const t=function(e){return[Re(e,e=>"object"==typeof e&&null!==e,"VitePPDevOptions must be an object"),Re(e.templateName,e=>"string"==typeof e&&e.length>0,"VitePPDevOptions.templateName must be a non-empty string"),Re(e.backendBaseURL,e=>void 0===e||"string"==typeof e&&e.length>0,"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),Re(e.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.portalPageId must be a positive number if provided"),Re(e.appId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.appId must be a positive number if provided"),Re(e.proxyCacheTTL,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.proxyCacheTTL must be a positive number if provided"),Re(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:n=!0,proxyCacheTTL:a=6e5,disableSSLValidation:r=!1,imageOptimizer:i=!0,miHudLess:o=!1,integrateMiTopBar:c=!1,templateLess:l=!1,outDir:p="dist",distZip:d=!0,versionPlugin:h=!0,syncBackupsDir:u="backups",v7Features:g=!1,personalAccessToken:m=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 w=i;"boolean"==typeof i?!0===w&&(w={}):"object"!=typeof i&&(w=!1);const y="VERSION-v{packageversion}-{currentDate}.json";let v;return v=!1!==h&&(!0===h?{versionFileTemplate:y,enabled:!0}:{versionFileTemplate:h.versionFileTemplate??y,enabled:h.enabled??!0}),{enableProxyCache:n,proxyCacheTTL:a,disableSSLValidation:r,imageOptimizer:w,templateLess:l,miHudLess:o,outDir:p,distZip:f,versionPlugin:v,syncBackupsDir:u,v7Features:g,personalAccessToken:m,portalPageId:s,integrateMiTopBar:c,...e}}function Ne(e){const{templateName:t,templateLess:s,backendBaseURL:n,miHudLess:a,portalPageId:r,appId:i,enableProxyCache:o,proxyCacheTTL:c,disableSSLValidation:l,distZip:p,versionPlugin:d,syncBackupsDir:h,v7Features:u,personalAccessToken:g}=e||{};let m=!0;process.cwd();const f=i??r;return{name:"vite-pp-dev",apply:"serve",config:e=>{const a=function(e){return[Re(e.base,e=>"string"==typeof e&&e.length>0&&"/"!==e,'Server base path cannot be empty or "/"'),Re(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:n,portalPageId:f,templateLess:s,v7Features:u},u&&(e.base=`/pl/${t}`),e},transformIndexHtml:async(e,t)=>{const s={html:e,tags:[]};return m&&(m=!1,s.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),s},configureServer:r=>{let i=r.config.base;i.endsWith("/")||(i+="/");const m=i.substring(0,i.lastIndexOf("/"));if(r.middlewares.use(ye(i,t)),n){const y=new URL(n).host,v={headers:{host:y,referer:n,origin:n.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:f,appId:f,templateLess:s,disableSSLValidation:l,v7Features:u,personalAccessToken:g??process.env.MI_ACCESS_TOKEN},b=[Re((w=v).headers,e=>"object"==typeof e&&"string"==typeof e.host&&"string"==typeof e.referer&&"string"==typeof e.origin,"MiAPI headers must be properly configured"),Re(w.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI portalPageId must be a positive number if provided"),Re(w.appId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI appId must be a positive number if provided"),Re(w.personalAccessToken,e=>void 0===e||"string"==typeof e,"MiAPI personalAccessToken must be a string if provided")].find(e=>!e.isValid)||{isValid:!0};if(!b.isValid)throw new Error(b.error);const k=new J(n,v);if(o){let e=+c;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:r,ttl:e},s=function(e){return[Re(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);r.middlewares.use(fe(t))}const x=new RegExp(`^((${i})|/)$`);r.middlewares.use($e(x,k,Object.assign({},e,{appId:f,portalPageId:f}))),r.middlewares.use(j({baseURL:n,proxyIgnore:["/@vite","/@metricinsights","/@",m],disableSSLValidation:l,miAPI:k,templateName:t}));const T=(e,t,s,n,a)=>{const r={error:s};n&&(r.details=n),a&&(r.code=a),e.status(t).json(r).end()},P=(e,t,s)=>{r.config.logger.error(`${s} token validation error:`,t);const n=Y(t);if(t.tokenErrorInfo){const s=t.tokenErrorInfo;r.config.logger.info(`Using enhanced error info: ${s.code} - ${s.userFriendlyMessage}`);const n=s.status||500,a=s.code,i=s.userFriendlyMessage,o=s.message;T(e,n,i,o,a)}else{let t,a,i;switch(r.config.logger.info(`Using original error info: ${n.code} - ${n.userFriendlyMessage}`),n.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=n.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.":n.userFriendlyMessage;T(e,t,a,o,i)}return null},$=Ae();$.post("/@api/login",async(e,t,s)=>{const{token:n,tokenType:a}=e.body;if(n)if(r.config.logger.info(`Attempting to validate ${a} token...`),"personal"===a){if(!await k.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${n}`},!0).then(async e=>"number"==typeof e.data?.user?.user_id?(k.personalAccessToken=n,r.config.logger.info(`Personal access token validated successfully for user ${e.data.user.user_id}`),e):(T(t,400,"Token expired or invalid"),null)).catch(e=>P(t,e,"personal")))return;A(t,"/",302)}else if("regular"===a){if(!await k.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:n},!0).then(e=>e.data?.users?.length?(k.personalAccessToken=void 0,r.config.logger.info(`Regular token validated successfully for ${e.data.users.length} user(s)`),t.setHeader("set-cookie",e.headers["set-cookie"]??""),e):(T(t,400,"Token expired or invalid"),null)).catch(e=>P(t,e,"regular")))return;A(t,"/",302)}else T(t,400,"Invalid tokenType",'tokenType must be "personal" or "regular".',"INVALID_TOKEN_TYPE");else T(t,400,"Token is required")}),r.middlewares.use($);const E=!1!==p?new oe(t,Object.assign({backupDir:h},"object"==typeof p?{distZipFolder:p.outDir,distZipFilename:p.outFileName}:void 0,"object"==typeof d?{versionFileTemplate:d.versionFileTemplate}:void 0)):void 0;return new ce(r,{distService:E,miAPI:k}),()=>{r.middlewares.use(we(e=>e.split("?")[0].endsWith("index.html"),(e,t)=>Buffer.from(I(y,t.headers.host??"",k.buildPage(e,a)))))}}var w}}}export{ve as A,J as M,N as a,fe as b,L as c,$e as d,j as e,Fe as f,we as g,be as h,ye as i,Le as n,I as u,Ne as v};
2
- //# sourceMappingURL=plugin-B6DaUVqp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-B6DaUVqp.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/unavailable-json-api.ts","../../../src/api/page.ts","../../../src/api/page-template.ts","../../../src/lib/helpers/token.helper.ts","../../../src/lib/pp.middleware.ts","../../../src/lib/dist.service.ts","../../../src/lib/client.service.ts","../../../src/lib/proxy-cache.middleware.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,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","formSelector","observer","MutationObserver","mutations","mutation","disconnect","observe","childList","subtree","existingForm","hostOriginRegExp","PROXY_HEADER","initProxy","opts","rewritePath","baseURL","disableSSLValidation","miAPI","templateName","Error","fileType","import","createProxyMiddleware","selfHandleResponse","pathFilter","req","proxyIgnore","some","test","Array","isArray","rP","changeOrigin","autoRewrite","cookieDomainRewrite","log","warn","secure","on","proxyReq","referer","getHeader","personalAccessToken","originalUrl","rewritten","requestUrl","v7Features","internalPageName","u","m","match","segmentDecoded","decodeURIComponent","search","hash","rewriteDataPagePathForV7Proxy","path","cyan","yellow","blue","green","protocol","socket","setMaxListeners","once","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","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","PAGE_DATA_FETCH_FRAGMENT","PAGE_TEMPLATE_FETCH_FRAGMENT","MAINTENANCE_SUFFIX","unavailablePageTemplateDataError","isUnavailableJsonApiError","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","create","PageTemplateAPI","internal_name","page_templates","page_template","getTokenErrorInfo","status","lowerMessage","toLowerCase","code","userFriendlyMessage","suggestions","TEMPLATE_PAGE_NAME","axiosInstanceCache","MiAPI","pageTemplate","pageTitle","pageVars","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","Promise","resolve","cacheKey","process","env","NODE_TLS_REJECT_UNAUTHORIZED","httpsAgent","https","Agent","keepAlive","rejectUnauthorized","timeout","httpAgent","http","defaults","isTemplateLoaded","clearHeaders","obj","undefined","keys","authorization","escapeRegExp","updateHeaders","localTemplateHTML","getPageTemplate","red","template_id","find","p","enabled","visible_in_homepage","getPageVariables","pageId","tags","template","parsed","parse","reason","getPageInfo","pageIdToFetch","fetchV7Page","fetchLegacyPage","handlePageFetchError","buildPage","miHudLess","result","v","escapedName","pageVarRegex","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","title","text","titleEl","serialize","getAssets","pageInfo","templateInfo","updateAssets","assets","validateCredentials","testHeaders","isValid","errorInfo","cleanup","normalizedHeaders","context","contextPrefix","suggestion","index","logTokenError","tokenErrorInfo","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","dirname","__filename","fileURLToPath","pluginPath","node_modules_path","metaDirPath","metaFilePath","BUILD_MANIFEST_FILE_NAME","TEMPLATE_VARIABLES_FILE_NAME","DistService","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","versionFileTemplate","syncOptions","cwd","date","syncMeta","checkMeta","fs","stat","mkdir","readMetaFile","readFile","encoding","writeMetaFile","meta","writeFile","getLatestSavedBackup","lastBackupName","backupPath","backupName","getBackupMeta","pathToPosix","filePath","normalizeExtractedRootDir","extractedDir","currentDir","readdir","withFileTypes","isDirectory","join","listFilesRecursive","rootDir","files","entry","fullPath","push","isFile","buildManifestChecksum","hashesConcatenated","sort","map","crypto","createHash","update","digest","buildBackupFingerprint","normalizedEntries","versionFileTemplateMatcher","placeholderPattern","segments","lastIndex","exec","staticPart","trailingStaticPart","isTemplateVariablesBasename","fileBasename","pickTemplateVariablesFromBackupZip","relativePaths","contentRootDir","relativePath","basename","absolutePath","fileData","actualHash","manifestHash","resolveBackupAnalysisFromZip","backupFile","tempDir","mkdtemp","os","tmpdir","zipPath","recursive","extractZip","dir","relative","buildManifestCandidates","filter","buildManifestPath","buildManifest","buildManifestAbsolutePath","manifestType","versionFile","buildFingerprint","versionManifestPath","requestedVersionFile","exactMatchCandidates","basenameMatchCandidates","resolvedCandidates","compat","versionFileRequired","versionFileMatcher","versionManifestCandidates","normalizedManifestFiles","templateVariables","manifestChecksum","manifestFileActualHashes","versionManifestHashMismatches","versionManifestAbsolutePath","manifest","checksum","expectedHash","expected","actual","mismatchedManifestPaths","Set","fingerprintFiles","unknownFiles","prototype","hasOwnProperty","call","backupFingerprint","buildManifestMismatch","mainHash","allFilesInMeta","Boolean","rm","force","analyzeBackup","getPublicTemplateVariablesHash","templateVariablesPath","saveTemplateVariablesFile","saveBackup","precomputedAnalysis","resolvedAnalysis","resolvedBackupFileHash","lastBackupHash","lastMainHash","backupDate","filename","lastBackupDate","finally","buildNewAssets","buildCommand","reject","proc","child_process","spawn","NODE_ENV","stdio","msg","saveBackupAndBuild","ClientService","server","eventMap","syncActionResolvers","onInfoDataRequest","bind","onTemplateSync","onTemplateSyncActionResponse","init","ws","event","handler","clearAllPendingSyncActions","resolveSyncAction","requestId","approved","clearTimeout","timeoutId","delete","send","payload","requestSyncAction","randomUUID","timeoutMs","syncActionTimeoutMs","distService","config","clientInjectionPlugin","canSync","currentAssets","isAxiosError","validation","refresh","validationError","cause","httpStatus","newAssets","backupAnalysis","onlyTemplateVariablesMismatch","mm","templateVarMismatches","otherManifestMismatches","mixedTemplateAndOthers","pathsForVersionModal","promptReplaceTemplateVariables","confirmText","cancelText","cancelled","maxPaths","paths","listed","remainder","fileList","suffix","Buffer","updateResult","backupMeta","backupFilename","currentHash","syncedAt","syncError","FILE_EXTENSION_REGEX","DEFAULT_TTL","DEFAULT_MAX_SIZE","DEFAULT_MAX_ITEMS","EnhancedCache","memoryCache","Cache","totalSize","maxSize","maxItems","put","ttl","oldItem","size","itemsToRemove","sortedKeys","a","b","itemA","itemB","timestamp","i","del","oldestKey","getTotalSize","getItemCount","cache","createResponseBuffer","chunks","alloc","totalLength","reduce","sum","chunk","byteLength","concat","initProxyCache","devServer","next","cleanUrl","split","generateCacheKey","cacheItem","header","setResponseHeaders","write","originalEnd","originalWrite","callback","hasHeader","safeEncoding","from","isBuffer","String","finalBuffer","responseSize","getHeaders","now","toFixed","finalEncoding","initRewriteResponse","predicate","rewrite","buffers","cb","contentEncoding","unzipSync","brotliDecompressSync","inflateSync","decodeContent","bufferEncoding","endCallback","gzipSync","brotliCompressSync","deflateSync","encodeContent","initPPRedirect","base","baseWithoutTrailingSlash","endsWith","parsedUrl","findPaths","redirectUrl","AuthProvider","state","isAuthenticated","isRedirected","lastChecked","listeners","getState","setAuthenticated","authenticated","notifyListeners","setRedirected","redirected","updateState","updates","reset","subscribe","listener","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","versionPlugin","syncBackupsDir","MI_ACCESS_TOKEN","distZipConfig","outFileName","imageOptimizerConfig","versionPluginDefaultTemplate","versionPluginConfig","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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"}
@@ -1,2 +0,0 @@
1
- import{createHash as e}from"crypto";import{execSync as t}from"child_process";import{statSync as r,writeFileSync as n,readdirSync as i,readFileSync as o}from"fs";import s from"path";import{fileURLToPath as c}from"url";const a="BUILD-MANIFEST.json";function p(e,t,r=new Set){const n=i(e,{withFileTypes:!0}),o=[];for(const i of n){const n=s.join(e,i.name),c=s.relative(t,n).replace(/\\/g,"/");i.isDirectory()?o.push(...p(n,t,r)):i.isFile()&&!r.has(c)&&o.push(n)}return o}function u(t){const r=o(t);return e("sha256").update(r).digest("hex")}function f(e){return e.replace(/^([a-z][a-z\d+.-]*:\/\/)(?:[^/?#@]+(?::[^/?#@]*)?@)/i,"$1")}function l(e){const t=e.trim().replace(/^git\+/,"").replace(/\.git$/i,""),r=t.match(/^([^@]+)@([^:]+):(.+)$/);if(r){const[,,e,t]=r;return f(`https://${e}/${t.replace(/^\/+/,"")}`)}const n=t.match(/^ssh:\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/i);if(n){const[,e,t]=n;return f(`https://${e}/${t.replace(/^\/+/,"")}`)}const i=t.match(/^git:\/\/([^/]+)\/(.+)$/i);if(i){const[,e,t]=i;return f(`https://${e}/${t.replace(/^\/+/,"")}`)}return f(t)}function m(i){return{name:"pp-dev-version",apply:"build",enforce:"post",closeBundle(){if(!1===i.enabled)return;const{outDir:f,versionFileTemplate:m,packageVersion:g}=i,h=s.resolve(process.cwd(),f);if(!r(h,{throwIfNoEntry:!1})?.isDirectory())return;const d=(new Date).toISOString(),v=m??"VERSION-v{packageversion}-{currentDate}.json",E=function(e,t,r){return e.replace(/\{packageversion\}/g,t).replace(/\{currentDate\}/g,r)}(v,g,d.replace(/:/g,"-")),y=p(h,h,new Set([E,a])),N={};for(const e of y){N[s.relative(h,e).replace(/\\/g,"/")]=u(e)}const I=function(t){const r=Object.keys(t).sort().map(e=>t[e]).join("");return e("sha256").update(r).digest("hex")}(N),R=function(t){const r=Object.keys(t).sort().map(e=>`${e}:${t[e]}`).join("\n");return e("sha256").update(r,"utf-8").digest("hex")}(N),_=function(){const e=c(import.meta.url);let t=s.dirname(e);for(;;){const e=s.join(t,"package.json"),n=r(e,{throwIfNoEntry:!1});if(n?.isFile())try{const t=JSON.parse(o(e,"utf-8"));if("string"==typeof t.version)return t.version}catch{}const i=s.dirname(t);if(i===t)return"unknown";t=i}}(),A=function(e){if("string"==typeof e&&e.trim())return e.trim();const r=["GITHUB_HEAD_REF","GITHUB_REF_NAME","CI_COMMIT_REF_NAME","BITBUCKET_BRANCH","BUILD_SOURCEBRANCHNAME","BRANCH_NAME","TRAVIS_BRANCH","CIRCLE_BRANCH","BUILDKITE_BRANCH","VERCEL_GIT_COMMIT_REF"];for(const e of r){const t=process.env[e];if("string"==typeof t&&t.trim())return t.trim()}try{const e=t("git rev-parse --abbrev-ref HEAD",{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(e&&"HEAD"!==e)return e}catch{}}(i.packageBranchName),B={schemaVersion:1,version:`v${g}`,date:d,checksum:I,files:N,repositoryUrl:i.packageRepositoryUrl?l(i.packageRepositoryUrl):void 0,branchName:A,helperVersion:_},C=s.join(h,E),F=s.join(h,a),T={schemaVersion:1,manifestType:"pp-dev-build-manifest",generatedAt:d,versionFile:E,versionFileTemplate:v,versionFileSchemaVersion:1,buildFingerprint:R,compat:{versionFileRequired:!0}};n(C,JSON.stringify(B,null,2),"utf-8"),n(F,JSON.stringify(T,null,2),"utf-8")}}}export{m as versionPlugin};
2
- //# sourceMappingURL=version-plugin-DekxT1OJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version-plugin-DekxT1OJ.js","sources":["../../../src/plugins/version-plugin.ts"],"sourcesContent":[null],"names":["BUILD_MANIFEST_FILE_NAME","walkDir","dir","baseDir","excludeFiles","Set","entries","readdirSync","withFileTypes","files","entry","fullPath","path","join","name","relativePath","relative","replace","isDirectory","push","isFile","has","sha256OfContent","filePath","content","readFileSync","createHash","update","digest","stripUrlUserInfo","value","normalizeRepositoryUrl","url","normalizedUrl","trim","scpLikeMatch","match","host","repositoryPath","sshProtocolMatch","gitProtocolMatch","versionPlugin","config","apply","enforce","closeBundle","enabled","outDir","versionFileTemplate","packageVersion","outDirResolved","resolve","process","cwd","statSync","throwIfNoEntry","manifestDate","Date","toISOString","resolvedVersionFileTemplate","versionFileName","template","currentDate","resolveVersionFileName","allPaths","checksum","hashesConcatenated","Object","keys","sort","map","p","computeChecksum","buildFingerprint","normalizedEntries","computeBuildFingerprint","helperVersion","modulePath","fileURLToPath","currentDir","dirname","packageJsonPath","packageStat","packageJson","JSON","parse","version","parentDir","resolveHelperVersion","branchName","configBranchName","ciBranchEnvVars","variableName","env","currentBranchName","execSync","encoding","stdio","resolveBranchName","packageBranchName","manifest","schemaVersion","date","repositoryUrl","packageRepositoryUrl","undefined","manifestPath","buildManifestPath","buildManifest","manifestType","generatedAt","versionFile","versionFileSchemaVersion","compat","versionFileRequired","writeFileSync","stringify"],"mappings":"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"}