@metricinsights/pp-dev 1.1.1 → 1.2.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 (55) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +42 -1
  3. package/TEMPLATE_VARIABLES.md +125 -0
  4. package/dist/CHANGELOG.md +30 -0
  5. package/dist/README.md +42 -1
  6. package/dist/cjs/cli.js +1 -1
  7. package/dist/cjs/cli.js.map +1 -1
  8. package/dist/cjs/index-XIFH2ace.js +2 -0
  9. package/dist/cjs/index-XIFH2ace.js.map +1 -0
  10. package/dist/cjs/index.js +1 -1
  11. package/dist/cjs/package.json +9 -5
  12. package/dist/cjs/plugin-lLb1ogcl.js +2 -0
  13. package/dist/cjs/plugin-lLb1ogcl.js.map +1 -0
  14. package/dist/cjs/plugin.js +1 -1
  15. package/dist/cjs/{version-plugin-Bhywa-Hu.js → version-plugin-C0xv4wbw.js} +2 -2
  16. package/dist/cjs/{version-plugin-Bhywa-Hu.js.map → version-plugin-C0xv4wbw.js.map} +1 -1
  17. package/dist/client/client.css +1 -1
  18. package/dist/client/client.css.map +1 -1
  19. package/dist/client/client.js +128 -2
  20. package/dist/client/client.js.map +1 -1
  21. package/dist/client/index.html +1 -0
  22. package/dist/esm/cli.js +1 -1
  23. package/dist/esm/cli.js.map +1 -1
  24. package/dist/esm/index-BtZKQ3Ni.js +2 -0
  25. package/dist/esm/index-BtZKQ3Ni.js.map +1 -0
  26. package/dist/esm/index.js +1 -1
  27. package/dist/esm/package.json +9 -5
  28. package/dist/esm/plugin-BtTlYPNc.js +2 -0
  29. package/dist/esm/plugin-BtTlYPNc.js.map +1 -0
  30. package/dist/esm/plugin.js +1 -1
  31. package/dist/esm/{version-plugin-Lyuzh4c2.js → version-plugin-7_CHPYR-.js} +2 -2
  32. package/dist/esm/{version-plugin-Lyuzh4c2.js.map → version-plugin-7_CHPYR-.js.map} +1 -1
  33. package/docs/features.md +99 -0
  34. package/docs/screenshots/01-panel-expanded.png +0 -0
  35. package/docs/screenshots/02-panel-minimized.png +0 -0
  36. package/docs/screenshots/03-panel-settings.png +0 -0
  37. package/docs/screenshots/04-inspector-list.png +0 -0
  38. package/docs/screenshots/05-inspector-detail.png +0 -0
  39. package/docs/screenshots/06-editor-schema.png +0 -0
  40. package/docs/screenshots/07-editor-schema-advanced.png +0 -0
  41. package/docs/screenshots/08-editor-schema-help-modal.png +0 -0
  42. package/docs/screenshots/09-editor-values.png +0 -0
  43. package/docs/screenshots/10-editor-values-json.png +0 -0
  44. package/docs/screenshots/11-editor-theme-light.png +0 -0
  45. package/docs/screenshots/12-editor-theme-dark.png +0 -0
  46. package/package.json +10 -6
  47. package/scripts/patch-npm-bundled-vulnerabilities.mjs +66 -11
  48. package/dist/cjs/index-ctxv-2Kt.js +0 -2
  49. package/dist/cjs/index-ctxv-2Kt.js.map +0 -1
  50. package/dist/cjs/plugin-cgWPoZgR.js +0 -2
  51. package/dist/cjs/plugin-cgWPoZgR.js.map +0 -1
  52. package/dist/esm/index-N58WZBr_.js +0 -2
  53. package/dist/esm/index-N58WZBr_.js.map +0 -1
  54. package/dist/esm/plugin-ClbE2EOy.js +0 -2
  55. package/dist/esm/plugin-ClbE2EOy.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-N58WZBr_.js","sources":["../../../src/lib/dev-panel.ts","../../../src/plugins/client-injection-plugin.ts","../../../src/banner/header.ts","../../../src/lib/next-import.ts","../../../src/config.ts","../../../src/lib/build-cli-overrides.ts","../../../src/index.ts","../../../src/plugins/mi-topbar-plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CLIENT_DIST_DIR","path","dirname","PP_DEV_CLIENT_ENTRY","TEMPLATE_PATH","join","compiledTemplate","getDevPanelAssetPaths","base","css","posix","PACKAGE_NAME","js","renderDevPanelMarkup","data","templateContent","fs","readFileSync","encoding","ejs","compile","openDelimiter","closeDelimiter","async","rmWhitespace","compileDebug","getTemplate","template","VERSION","backendBaseURL","templateLess","appId","canSync","devPanelPosition","devPanelHidden","devPanelAutoHide","injectDevPanel","html","test","linkTag","bodyPrepend","result","linkInjected","replace","head","CONTENT_TYPES","createDevPanelAssetMiddleware","assetPrefix","allowed","Set","req","res","next","pathname","url","split","startsWith","fileName","slice","length","has","filePath","readFile","err","content","statusCode","setHeader","extname","end","DIRNAME","__filename","resolve","fileURLToPath","URL","process","cwd","normalizePath","PP_DEV_PACKAGE_DIR","PACKAGE_REGEXP","RegExp","cachedTemplateContent","cachedTemplate","clientInjectionPlugin","opts","name","apply","config","optimizeDeps","exclude","push","resolveId","source","match","resolvedId","id","transformIndexHtml","ctx","server","templatePath","cache","filename","assetPaths","tags","tag","injectTo","attrs","rel","href","templateData","children","src","type","configureServer","clientDir","root","allow","replacer","substring","$1","header","_chunk","safeNextImport","constants","Promise","all","import","default","error","Error","isNextAvailable","getNextVersion","version","configCache","Map","CACHE_TTL","packageJsonCache","getPackageJson","now","Date","timestamp","JSON","parse","flag","empty","esbuildModule","loadTsConfig","cacheKey","cached","get","isESM","pkg","esbuild","getEsbuild","build","absWorkingDir","entryPoints","outfile","write","target","platform","bundle","packages","format","mainFields","sourcemap","metafile","text","code","outputFiles","fileNameTmp","Math","random","toString","fileUrl","pathToFileURL","writeFileSync","conf","set","existsSync","unlink","loadJsConfig","loadJSONConfig","dirContentCache","getPkg","getConfig","dirContent","files","endsWithRegExp","readdirSync","withFileTypes","filter","value","isFile","map","getDirectoryContent","configFound","newConfig","dirFiles","configNames","configName","includes","endsWith","loadConfig","PP_DEV_CONFIG_NAMES","packageConfig","Array","isArray","clear","parseBooleanFlag","undefined","toLowerCase","resolveBuildCliOverrides","options","distZipEnabled","distZip","env","PP_DEV_DIST_ZIP","distZipDir","PP_DEV_DIST_ZIP_DIR","distZipFilename","PP_DEV_DIST_ZIP_FILENAME","versionManifestEnabled","versionManifest","PP_DEV_VERSION_MANIFEST","versionFileTemplate","PP_DEV_VERSION_FILE_TEMPLATE","applyDistZipOverride","overrides","defaultFileName","outFileName","outDir","applyVersionManifestOverride","enabled","PP_DEV_CONFIG_GROUPS","resolveRepositoryUrl","repository","directCiRepositoryUrlEnvVars","variableName","ciRepositoryUrl","trim","githubRepository","GITHUB_REPOSITORY","GITHUB_SERVER_URL","gitlabProjectPath","CI_PROJECT_PATH","CI_SERVER_URL","bitbucketRepositoryFullName","BITBUCKET_REPO_FULL_NAME","travisRepositorySlug","TRAVIS_REPO_SLUG","gitRemoteOriginUrl","execSync","stdio","getViteConfig","templateName","ppDevConfig","validatePPDevConfig","normalizedPPDevConfig","normalizePPDevConfig","versionPlugin","vitePPDev","plugins","imageOptimizer","integrateMiTopBar","addRootElement","addSharedComponentsScripts","defer","miTopBarPlugin","ViteImageOptimizer","versionPluginFn","packageVersion","packageRepositoryUrl","zipPack","enforce","PATH_PAGE_PREFIX","PATH_TEMPLATE_PREFIX","port","minify","assetsInlineLimit","rollupOptions","output","banner","modules","localsConvention","getPPDevConfigFromNextConfig","nextConfig","ppDev","withPPDev","nextjsConfig","phase","PHASE_DEVELOPMENT_SERVER","PHASE_PRODUCTION_BUILD","PP_DEV_NEXT_BUILD_ENV_VAR","createLogger","warn","colors","yellow","nextConfiguration","mergedConfig","configs","merged","mutableMerged","key","Object","entries","mergePPDevConfigs","normalized","v7Features","isDevelopment","basePath","PATH_TEMPLATE_LOCAL_PREFIX","createBasePath","baseConfig","trailingSlash","prefix","assign","defineProperty","enumerable","configurable","String"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{createProxyMiddleware as e,responseInterceptor as t}from"http-proxy-middleware";import{fileURLToPath as n,URL as s}from"url";import{createLogger as r}from"vite";import{createColors as i}from"picocolors";import a,{isAxiosError as o}from"axios";import l from"node:http";import c from"node:https";import{JSDOM as d}from"jsdom";import*as p from"path";import u,{resolve as h}from"path";import{readFileSync as m,existsSync as f,statSync as g,writeFileSync as y,readdirSync as v,promises as b}from"fs";import*as w from"crypto";import{createHash as x,randomUUID as k}from"crypto";import*as E from"process";import*as T from"child_process";import{execSync as $}from"child_process";import*as S from"os";import B from"extract-zip";import A from"jszip";import{createRequire as I}from"module";import*as R from"memory-cache";import{inflateSync as C,brotliDecompressSync as P,unzipSync as F,deflateSync as L,brotliCompressSync as j,gzipSync as H}from"zlib";import N from"express";import{randomUUID as q}from"node:crypto";const O=h("undefined"!=typeof __filename&&__filename||n(import.meta.url),"../../.."),D=h("undefined"!=typeof __filename&&__filename||n(import.meta.url),"../.."),M=f(h(O,"package.json"))?O:D,z=h(M,"dist/client/client.js"),{version:U,name:_}=JSON.parse(m(h(M,"package.json")).toString()),V=U,Z=_,W="/@pp-dev-hmr",J="/p",K="/pt",G="/pl",X="PP_DEV_NEXT_BUILD",Y=[".pp-dev.config.js",".pp-dev.config.cjs",".pp-dev.config.mjs",".pp-dev.config.ts",".pp-dev.config.cts",".pp-dev.config.mts",".pp-dev.config.json","pp-dev.config.js","pp-dev.config.cjs","pp-dev.config.mjs","pp-dev.config.ts","pp-dev.config.cts","pp-dev.config.mts","pp-dev.config.json"];let Q=new Map;const ee="default",te=(e="info",t=ee)=>{if(Q&&"function"==typeof Q.has||(Q=new Map),Q.has(t))return Q.get(t);if(t===ee){const n=r(e);return Q.set(t,n),n}const n=r(e);return Q.set(t,n),n},ne=i(),se=(e,t,n)=>{const s=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return n.replace(s,(e,...n)=>e.startsWith("!!")?n[1]:`http${n[2]}${t}`)},re=(e,t,n)=>{e.setHeader("location",t),e.statusCode=n,e.end()};const ie=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,n,s){const r=e[t];r&&(n.placeholder=r.placeholder,s.innerHTML=r.caption)}function n(e,t){t.textContent=e,t.classList.add("show")}function s(e){e.classList.remove("show")}function r(e,t,r,i){r.addEventListener("click",async r=>{if(r.preventDefault(),s(i),!t.value.trim())return n(`${t.placeholder} is required`,i),void t.focus();const a=document.getElementById("token-type-switcher"),o=a?.querySelector(".token-type-option.active"),l=o?.dataset.value||"personal";await async function(e,t,s,r){try{s.classList.add("loading");const i=await fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:t}),redirect:"follow"}),a=i.url&&new URL(i.url,window.location.origin);if(!a||a.pathname.startsWith("/login")||a.pathname.startsWith("/@api/"))try{const e=await i.json();n(`Login failed: ${e?.error||"Unknown error occurred"}`,r)}catch(e){n("Login failed: Unable to parse response",r)}else window.location.href=i.url}catch(e){n("Login failed: Network error. Please check your connection.",r)}finally{s.classList.remove("loading")}}(t.value.trim(),l,e,i)}),t.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),r.click())}),t.addEventListener("input",()=>{s(i)})}function i(e){const n=e.firstChild;if(!n)return;const s=n.lastChild?.cloneNode(!0);if(!s)return;s.innerHTML="";const i=s.cloneNode(!0);i.innerText="OR",i.setAttribute("role","separator"),i.setAttribute("aria-label","Alternative login method");const a=s.cloneNode(!0),o=document.createElement("div"),l=document.createElement("style");l.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(l),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>`,a.appendChild(o),n.appendChild(i),n.appendChild(a);const c=document.getElementById("token-type-switcher"),d=document.getElementById("helper-token"),p=document.getElementById("token-caption"),u=document.getElementById("helper-token-submit"),h=document.getElementById("error-message"),m=o.querySelector(".helper-login-wrapper");c&&d&&p&&u&&h&&m?(!function(e,n,s){const r=e.querySelectorAll(".token-type-option"),i=e=>{const i=e.dataset.value;r.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(i,n,s)};r.forEach(e=>{e.addEventListener("click",e=>{const t=e.currentTarget;i(t)}),e.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i(e))})})}(c,d,p),r(m,d,u,h),t("personal",d,p)):console.error("Failed to find required form elements")}const a='#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(a);if(e){o.disconnect(),i(e);break}}});o.observe(document.body,{childList:!0,subtree:!0});const l=document.querySelector(a);l&&(o.disconnect(),i(l))},ae=/^(https?:\/\/)([^/]+)(\/.*)?$/i,oe="X-PP-Proxy";function le(n){const{rewritePath:r=/^\/(?!p[tl]).*/i,baseURL:i="",disableSSLValidation:a=!1,miAPI:o,templateName:l}=n;if(!i)throw new Error("Base url is required");const c=i.replace(ae,"$2"),d=i.replace(ae,"$1$2"),p=import("file-type"),u=te();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 r?e.startsWith(r):Array.isArray(r)?r.some(t=>e.startsWith(t)):"function"==typeof r.test&&r.test(e)),target:i,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[c]:"localhost"},logger:{info:()=>{},warn:()=>{},error:()=>{}},secure:!a,headers:{host:c,origin:d},on:{proxyReq(e,t,n){const r=t.headers.host,a=e.getHeader("referer");r&&a&&"string"==typeof a&&e.setHeader("referer",a.replace(new RegExp(`https?://${r}`),i)),o.personalAccessToken&&e.setHeader("Authorization",`Bearer ${o.personalAccessToken}`);const c=t.url??"/",d=function(e,t,n,r){if(!t||!n||!r||n===r)return e;try{const t=new s(e,"http://localhost"),i=t.pathname.match(/^\/data\/page\/([^/]+)(\/.*)?$/);if(!i)return e;let a;try{a=decodeURIComponent(i[1])}catch{a=i[1]}if(a!==n)return e;return`/data/page/${r}${i[2]??""}`+t.search+t.hash}catch{return e}}(c,o.v7Features,l,o.internalPageName);return d!==c&&(t.url=d,e.path=d,console.info(`${ne.cyan("Rewrites data page to correct internal page name")}: ${ne.yellow(c)} ${ne.blue("→")} ${ne.green(d)}`)),u.info(`${ne.blue("Proxies request:")} ${ne.green(t.method)} ${t.url} -> ${ne.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,n,s)=>{if(e.headers["content-type"]?.includes("text/event-stream")||e.headers["transfer-encoding"]?.includes("chunked")&&"no"===e.headers["x-accel-buffering"]){u.info(`${ne.blue("Start streaming for request:")} ${ne.green(n.method)} ${n.url}`);const t=async(e,t,n)=>{n.setHeader(oe,1),n.setHeaders(new Map(Object.entries(e.headers))),e.pipe(n)};return t(e,n,s)}const r=t(async(e,t,n,s)=>{s.setHeader(oe,1);if(await(await p).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(n.url??"",`http://${c}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){t+=`<script>(${function(){const e="pp-dev::redirectCount",t="pp-dev::lastRedirect";let n=+(localStorage.getItem(e)??0);localStorage.getItem(t);Number.isNaN(n)&&(n=0);let s=window.location.href;const r=function(){const i=new URLSearchParams(window.location.search);if(!i.has("proxyRedirect"))return console.debug("No proxyRedirect param. Cleaning up."),void localStorage.removeItem(e);s!==window.location.href?(s=window.location.href,setTimeout(r,n<3?3e3:5e3)):window.location.href=i.get("proxyRedirect"),localStorage.setItem(e,""+ ++n),localStorage.setItem(t,(new Date).toISOString())};setTimeout(r,3e3)}.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 r=t.slice(0,100);(r.includes("<html")||r.includes("<body")||r.includes("<head")||r.includes("html>"))&&(t+=`<script>const host = "${c}";\n(${ie.toString()})()<\/script>`)}catch{}const r=n.headers.host??"";return((e,t,n)=>{const s=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),r=new RegExp(`${e}`,"gi"),i=n.replace(s,t);return i===n?i.replace(r,t):i})("/auth/saml/login","/login",se(c,r,t))}});return r(e,n,s)},error(e,t,n){const s=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;u.error(s),n.writable&&n.writeHead(500,{"Content-Type":"text/plain"}),n.end(s)}}})}class ce{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 de extends ce{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,n){const s=new(await this.formdataModulePromise).FormData,{File:r}=await this.formdataModulePromise,i=new r([t],"file.zip",{type:"application/zip"});s.append("file",i);const a=this.getUploadUrl(e);return this.axios.post(a,s,{withCredentials:!0,headers:Object.assign({},n,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:a})})}).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,n){const s=new(await this.formdataModulePromise).FormData,{File:r}=await this.formdataModulePromise,i=new r([t],"file.zip",{type:"application/zip"});s.append("file",i,"file.zip");const a=this.getUploadTemplateUrl(e);return this.axios.post(a,s,{withCredentials:!0,headers:Object.assign({},n,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:a})})}).then(e=>e.data)}}class pe extends de{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 ue="Something went wrong when fetching page data",he="Something went wrong when fetching page template data",me=" The instance may be down or in maintenance mode. Please try again later.";function fe(){return new Error(`${he}.${me}`)}function ge(e){return e instanceof Error&&(e.message.includes(ue)||e.message.includes(he))}class ye extends ce{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 n=(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 n||null===n)throw new Error(`${ue}.${me}`);return n.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 ve extends ce{async getAll(e,t){const n=(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 n||null===n||!Array.isArray(n.page_templates))throw fe();return n.page_templates}async get(e,t){const n=(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 n||null===n||"object"!=typeof n.page_template||null===n.page_template)throw fe();return n.page_template}}function be(e){const t=e.response?.status||0,n=e.response?.data?.message||e.message||"Unknown error";switch(t){case 412:const e=n.toLowerCase();return e.includes("session expired")||e.includes("session has expired")?{status:t,message:n,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:n,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:n,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:n,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:n,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 we="[DEV PAGE. DO NOT DELETE]",xe=new Map;class ke{#e;#t;#n=null;#s;#r;#i;#a;#o;#l;#c;internalPageName;appId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:n={},appId:s,templateLess:r=!0,disableSSLValidation:i=!1,v7Features:o=!1,personalAccessToken:d}=t||{};this.#e=n,this.#r=[],this.#s="",this.#i=o,this.#a=d,this.#o=!1,this.#l=Promise.resolve(!1);const p=`${e}:${i}`;if(xe.has(p))this.#t=xe.get(p);else{i&&(process.env.NODE_TLS_REJECT_UNAUTHORIZED="0");const t=new c.Agent({keepAlive:!1,...i?{rejectUnauthorized:!1}:{}});this.#t=a.create({baseURL:e,headers:n,timeout:3e4,maxRedirects:5,httpAgent:new l.Agent({keepAlive:!1}),httpsAgent:t}),i&&(a.defaults.httpsAgent=t),xe.set(p,this.#t)}this.appId=s,this.templateLess=r,this.assetsApi=new(o?pe:de)(this.#t),this.pageApi=new ye(this.#t),this.pageTemplateApi=new ve(this.#t),this.logger=te()}async isTemplateLoaded(){return this.#l}get isV710OrHigher(){return this.#o}get v7Features(){return this.#i}#d(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.#a&&(t.authorization=`Bearer ${this.#a}`),t}#p(e){return e.replace(/[.*+?^${}()|[\]\\\/]/g,"\\$&")}get personalAccessToken(){return this.#a}set personalAccessToken(e){this.#a=e}updateHeaders(e){this.#d(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.#l||this.#n||(this.#l=new Promise(e=>{this.#c=e})),this.#n)return Promise.resolve(this.#n);if(void 0===this.templateLess&&(this.templateLess=!1),this.#i){const t=await this.pageApi.get(this.appId,this.#d(e)).then(e=>(this.logger.info(ne.green("Page fetched")),e)).catch(async t=>{if(this.#c(!1),ge(t))throw t;throw await this.pageApi.checkAuth(this.#d(e))?(this.logger.error(ne.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 app.id is correct.")):t});return void 0!==t.template_id&&(this.#o=!0),this.internalPageName=t.internal_name,this.#n=this.localTemplateHTML,this.#n=this.#n.replace(/%%PAGE TITLE%%/g,t.name||"Local template"),this.logger.info(ne.green("Local page template fetched")),this.#c(!0),this.#n}let t=(await this.pageApi.getAll(this.#d(e)).then(e=>(this.logger.info(ne.green("Page list fetched")),e)).catch(async t=>{throw this.#c(!1),await this.pageApi.checkAuth(this.#d(e))?(this.logger.error(ne.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===we);return t||(this.logger.warn(ne.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:we,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#d(e)).then(e=>(this.logger.info(ne.green("Dev page created")),e)).catch(e=>{throw this.logger.error(ne.red(`Error creating dev page: ${e.message}`)),this.#c(!1),new Error(`Error when creating dev page.\n That can be caused by missing permissions or page with name "${we}" already exists`)})),await this.pageApi.getPageContent(t.internal_name,this.#d(e)).then(e=>(this.#n=e,e)).then(e=>(this.#c(!0),this.logger.info(ne.green("Page template fetched")),e)).catch(e=>{throw this.#c(!1),this.logger.error(ne.red(`Error fetching page template: ${e.message}`)),new Error("Error fetching page template")})}async getPageVariables(e,t){return void 0===this.appId&&(this.appId=e,this.templateLess=!1),this.#n=await this.getPageTemplate(t),await this.pageApi.get(e,this.#d(t)).then(e=>{const{tags:t="[]",name:n,template:s}=e;if(s&&t){const e=JSON.parse(t);return this.#r=e,this.#s=n,e}return this.#r=[],this.#s=n,[]}).catch(t=>{if(this.logger.error(ne.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 this.logger.warn(`Unauthorized error: ${t}`),new Error(`Current user does not have access to page with id "${e}" on instance ${this.#t.getUri()}`);throw t})}async getPageInfo(e,t){void 0===this.appId&&(this.appId=e);const n=this.#d(t),s=this.appId;try{return this.#i?await this.#u(s,n):await this.#h(s,n)}catch(e){this.#m(e,s)}}async#u(e,t){const n=await this.pageApi.get(e,t);return this.logger.info(ne.green("Page fetched")),void 0!==n.template_id&&(this.#o=!0),this.internalPageName=n.internal_name,n}async#h(e,t){return await this.pageApi.get(e,t)}#m(e,t){if(ge(e))throw e;if(this.#i&&e.message?.includes("access"))throw new Error("The current user does not have access to this page. Check your configuration to ensure app.id 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(ne.red(`Current user does not have access to page with id "${t}" on instance ${this.#t.getUri()}`)),e}buildPage(e,t=!1){let n="string"==typeof e?e:e.toString("utf-8");for(const e of this.#r){const t=this.#p(e.name),s=new RegExp(`\\[${t}\\]`,"g");n=n.replace(s,()=>e.value)}const s=new d(t?n:this.#n),r="%%PLACEHOLDER%%";if(!t){const e=s.window.document.createElement("div");e.innerHTML=r;const t=s.window.document.querySelector(".main-side");if(t){const n=t.querySelectorAll("script");n.length?t.insertBefore(e,n.item(n.length-1)):t.append(e)}else{const t=s.window.document.createElement("div");t.append(e),s.window.document.body.append(t)}const n=s.window.document.querySelector("head"),i=n.querySelector("title");if(i)i.text=this.#s;else{const e=s.window.document.createElement("title");e.textContent=this.#s,n.appendChild(e)}}return s.serialize().replace(new RegExp(`<div>\\s*${r}\\s*<\\/div>`,"i"),n)}async getAssets(){if(this.appId){if(this.templateLess)return await this.assetsApi.downloadPageAssets(this.appId,this.#e);{const e=await this.pageApi.get(this.appId,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.appId){if(this.templateLess)return await this.assetsApi.uploadPageAssets(this.appId,e,this.#e);{const t=await this.pageApi.get(this.appId,this.#e);if(this.#o){const n=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(n.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=be(e);return{isValid:!1,error:t.userFriendlyMessage,code:t.code}}}async get(e,t,n=!1){const s=n?t:Object.assign({},this.#d(this.#e),t);try{return await this.#t.get(e,{headers:s})}catch(e){if("UNKNOWN_ERROR"!==be(e).code){const t=be(e);throw this.logger.error(ne.red(`API request failed: ${t.userFriendlyMessage}`)),function(e,t,n){const s=be(t),r=`[${n}] `;e.error(ne.red(`${r}${s.userFriendlyMessage}`)),e.error(ne.red(`Status: ${s.status} (${s.code})`)),e.error(ne.red(`Details: ${s.message}`)),s.suggestions.length>0&&(e.info(ne.yellow("Suggestions:")),s.suggestions.forEach((t,n)=>{e.info(ne.yellow(` ${n+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 Ee="BUILD-MANIFEST.json";function Te(e,t,n=new Set){const s=v(e,{withFileTypes:!0}),r=[];for(const i of s){const s=u.join(e,i.name),a=u.relative(t,s).replace(/\\/g,"/");i.isDirectory()?r.push(...Te(s,t,n)):i.isFile()&&!n.has(a)&&r.push(s)}return r}function $e(e){const t=m(e);return x("sha256").update(t).digest("hex")}function Se(e){return e.replace(/^([a-z][a-z\d+.-]*:\/\/)(?:[^/?#@]+(?::[^/?#@]*)?@)/i,"$1")}function Be(e){const t=e.trim().replace(/^git\+/,"").replace(/\.git$/i,""),n=t.match(/^([^@]+)@([^:]+):(.+)$/);if(n){const[,,e,t]=n;return Se(`https://${e}/${t.replace(/^\/+/,"")}`)}const s=t.match(/^ssh:\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/i);if(s){const[,e,t]=s;return Se(`https://${e}/${t.replace(/^\/+/,"")}`)}const r=t.match(/^git:\/\/([^/]+)\/(.+)$/i);if(r){const[,e,t]=r;return Se(`https://${e}/${t.replace(/^\/+/,"")}`)}return Se(t)}function Ae(e){if(!1===e.enabled)return;const{outDir:t,versionFileTemplate:s,packageVersion:r}=e,i=u.resolve(process.cwd(),t);if(!g(i,{throwIfNoEntry:!1})?.isDirectory())return;const a=(new Date).toISOString(),o=s??"VERSION-v{packageversion}-{currentDate}.json",l=function(e,t,n){return e.replace(/\{packageversion\}/g,t).replace(/\{currentDate\}/g,n)}(o,r,a.replace(/:/g,"-")),c=Te(i,i,new Set([l,Ee])),d={};for(const e of c){d[u.relative(i,e).replace(/\\/g,"/")]=$e(e)}const p=function(e){const t=Object.keys(e).sort().map(t=>e[t]).join("");return x("sha256").update(t).digest("hex")}(d),h=function(e){const t=Object.keys(e).sort().map(t=>`${t}:${e[t]}`).join("\n");return x("sha256").update(t,"utf-8").digest("hex")}(d),f=function(){const e=n(import.meta.url);let t=u.dirname(e);for(;;){const e=u.join(t,"package.json"),n=g(e,{throwIfNoEntry:!1});if(n?.isFile())try{const t=JSON.parse(m(e,"utf-8"));if("string"==typeof t.version)return t.version}catch{}const s=u.dirname(t);if(s===t)return"unknown";t=s}}(),v=function(e){if("string"==typeof e&&e.trim())return e.trim();const t=["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 t){const t=process.env[e];if("string"==typeof t&&t.trim())return t.trim()}try{const e=$("git rev-parse --abbrev-ref HEAD",{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(e&&"HEAD"!==e)return e}catch{}}(e.packageBranchName),b={schemaVersion:1,version:`v${r}`,date:a,checksum:p,files:d,repositoryUrl:e.packageRepositoryUrl?Be(e.packageRepositoryUrl):void 0,branchName:v,helperVersion:f},w=u.join(i,l),k=u.join(i,Ee),E={schemaVersion:1,manifestType:"pp-dev-build-manifest",generatedAt:a,versionFile:l,versionFileTemplate:o,versionFileSchemaVersion:1,buildFingerprint:h,compat:{versionFileRequired:!0}};y(w,JSON.stringify(b,null,2),"utf-8"),y(k,JSON.stringify(E,null,2),"utf-8")}async function Ie(e){const t=new A,n=async s=>{const r=await b.readdir(s,{withFileTypes:!0});for(const i of r){const r=p.join(s,i.name);if(i.isDirectory())await n(r);else if(i.isFile()){const n=p.relative(e,r).replace(/\\/g,"/");t.file(n,await b.readFile(r))}}};return await n(e),await t.generateAsync({type:"nodebuffer",compression:"DEFLATE"})}function Re(e){return new Promise((t,n)=>{let s;try{const t=I(p.join(e,"package.json")).resolve("next/package.json");s=p.resolve(p.dirname(t),"dist/bin/next")}catch{return void n(new Error(`Unable to resolve the "next" binary from ${e}. Is Next.js installed?`))}const r=T.spawn(E.execPath,[s,"build"],{cwd:e,env:Object.assign({},E.env,{NODE_ENV:"production",[X]:"1"}),stdio:"inherit"});r.on("close",e=>{0===e?t():n(new Error(`next build exited with code ${e}`))}),r.on("error",n)})}const Ce="pageName",Pe="date",Fe=p.dirname("undefined"!=typeof __filename&&__filename||n(import.meta.url)),Le=p.resolve(Fe,"..",".."),je=p.resolve(Le,"..",".."),He=p.resolve(je,".pp-dev-meta"),Ne=p.resolve(He,"sync-service.meta.json"),qe="BUILD-MANIFEST.json",Oe="__template_variables.json";class De{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;versionFileTemplate;nextBuild;logger;constructor(e,t){this.pageName=e;const{backupFolder:n=p.resolve(E.cwd(),"backups"),distZipFolder:s=p.resolve(E.cwd(),"dist-zip"),distZipFilename:r=`${this.pageName}.zip`,backupNameTemplate:i=`{${Ce}}-{${Pe}}.zip`,versionFileTemplate:a="VERSION-v{packageversion}-{currentDate}.json",dateFormat:o=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,""),nextBuild:l}=t||{};this.backupFolder=n,this.backupNameTemplate=i,this.dateFormat=o,this.distZipFolder=s,this.distZipFilename=r,this.versionFileTemplate=a,this.nextBuild=l,this.syncMeta(),this.logger=te()}async checkMeta(){try{await b.stat(He)}catch{await b.mkdir(He)}try{await b.stat(this.backupFolder)}catch{await b.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await b.readFile(Ne,{encoding:"utf-8"}).catch(()=>"{}")}async writeMetaFile(e){return await this.checkMeta(),await b.writeFile(Ne,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=p.resolve(this.backupFolder,e);try{return await b.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${Ce}}`,e).replace(`{${Pe}}`,this.dateFormat(t))}getBackupMeta(){return this.currentMeta}pathToPosix(e){return e.replace(/\\/g,"/")}async normalizeExtractedRootDir(e){let t=e;for(;;){const e=await b.readdir(t,{withFileTypes:!0});if(1!==e.length||!e[0]?.isDirectory())return t;t=p.join(t,e[0].name)}}async listFilesRecursive(e){const t=await b.readdir(e,{withFileTypes:!0}),n=[];for(const s of t){const t=p.join(e,s.name);s.isDirectory()?n.push(...await this.listFilesRecursive(t)):s.isFile()&&n.push(t)}return n}buildManifestChecksum(e){const t=Object.keys(e).sort().map(t=>e[t]).join("");return w.createHash("sha256").update(t).digest("hex")}buildBackupFingerprint(e){const t=Object.keys(e).sort().map(t=>`${t}:${e[t]}`).join("\n");return w.createHash("sha256").update(t,"utf-8").digest("hex")}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}versionFileTemplateMatcher(){const e=/\{[^}]+\}/g,t=[];let n=0,s=null;for(;s=e.exec(this.versionFileTemplate),s;){const[e]=s,r=this.versionFileTemplate.slice(n,s.index);t.push(this.escapeRegExp(r)),t.push("[^/]+"),n=s.index+e.length}const r=this.versionFileTemplate.slice(n);return t.push(this.escapeRegExp(r)),new RegExp(`^${t.join("")}$`,"i")}isTemplateVariablesBasename(e){return e===Oe}async pickTemplateVariablesFromBackupZip(e,t){const n=e.find(e=>p.basename(e)===Oe);if(!n)return null;const s=p.join(t,n),r=await b.readFile(s);return{relativePath:n,content:r,actualHash:w.createHash("sha256").update(r).digest("hex"),manifestHash:null}}async resolveBackupAnalysisFromZip(e){const t=await b.mkdtemp(p.join(S.tmpdir(),"pp-dev-backup-")),n=p.join(t,"backup.zip"),s=p.join(t,"extracted");try{await b.mkdir(s,{recursive:!0}),await b.writeFile(n,e),await B(n,{dir:s});const t=await this.normalizeExtractedRootDir(s),r=(await this.listFilesRecursive(t)).map(e=>this.pathToPosix(p.relative(t,e))),i=r.filter(e=>p.basename(e)===qe);if(i.length>1)throw new Error(`Expected at most one ${qe} in backup ZIP, found ${i.length}`);const a=1===i.length?i[0]:null;let o=null;if(a){const e=p.join(t,a);if(o=JSON.parse(await b.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 l=null;if(o){const e=this.pathToPosix(o.versionFile.trim()),t=r.filter(t=>t===e),n=r.filter(t=>p.basename(t)===p.basename(e)),s=t.length>0?t:n;if(s.length>1)throw new Error(`Build manifest version file "${o.versionFile}" must resolve to exactly one file in backup ZIP, found ${s.length}`);if(1===s.length&&(l=s[0]),!0===o.compat?.versionFileRequired&&null===l)throw new Error(`Build manifest requires version file "${o.versionFile}", but it is missing in backup ZIP`)}else{const e=this.versionFileTemplateMatcher(),t=r.filter(t=>e.test(p.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&&(l=t[0])}const c={};let d=null,u=null;const h={};let m=[];if(l){const e=p.join(t,l),n=JSON.parse(await b.readFile(e,"utf-8"));if(!n?.files||"object"!=typeof n.files)throw new Error("VERSION manifest files map is missing or invalid");if("string"!=typeof n.checksum||!n.checksum)throw new Error("VERSION manifest checksum is missing or invalid");u=n.checksum;for(const[e,t]of Object.entries(n.files)){if("string"!=typeof t||!t.trim())throw new Error(`VERSION manifest contains invalid hash for file: ${e}`);c[this.pathToPosix(e)]=t}if(this.buildManifestChecksum(c)!==n.checksum)throw new Error("VERSION manifest checksum does not match its files map");for(const[e,n]of Object.entries(c)){const s=p.join(t,e),r=await b.readFile(s).catch(()=>null);if(!r)throw new Error(`VERSION manifest references missing file: ${e}`);const i=w.createHash("sha256").update(r).digest("hex");h[e]=i,i!==n&&m.push({relativePath:e,expected:n,actual:i}),this.isTemplateVariablesBasename(p.basename(e))&&(d={relativePath:e,content:r,actualHash:i,manifestHash:n})}m.length>0&&this.logger.warn(ne.yellow(`[DistService] VERSION manifest hash mismatch for ${m.length} file(s) (confirm in UI): ${m.map(e=>e.relativePath).join(", ")}`))}const f=new Set(m.map(e=>e.relativePath)),g={},y=[];for(const e of r){if(e===a)continue;if(l&&e===l)continue;if(l&&Object.prototype.hasOwnProperty.call(g,e))continue;const n=p.join(t,e),s=await b.readFile(n),r=w.createHash("sha256").update(s).digest("hex");l&&Object.prototype.hasOwnProperty.call(c,e)?g[e]=f.has(e)?h[e]:c[e]:l?(g[e]="__NOT_IN_VERSION_FILE__",y.push(e)):g[e]=r}d||(d=await this.pickTemplateVariablesFromBackupZip(r,t));const v=this.buildBackupFingerprint(g);let x=null;return o&&l&&v!==o.buildFingerprint&&(x={expected:o.buildFingerprint,actual:v},this.logger.warn(ne.yellow(`[DistService] Build manifest fingerprint mismatch (confirm in UI): expected ${o.buildFingerprint}, got ${v}`))),{backupFingerprint:v,unknownFiles:y,templateVariables:d,mainHash:u,allFilesInMeta:Boolean(l&&0===y.length),buildManifestMismatch:x,versionManifestHashMismatches:m}}finally{await b.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=p.resolve(E.cwd(),"public",Oe),t=await b.readFile(e).catch(()=>null);return t?w.createHash("sha256").update(t).digest("hex"):null}async saveTemplateVariablesFile(e){const t=p.resolve(E.cwd(),"public",Oe);return await b.mkdir(p.dirname(t),{recursive:!0}),await b.writeFile(t,e),t}async saveBackup(e,t){const n=t??await this.analyzeBackup(e),s=n.backupFingerprint;if(await this.getLatestSavedBackup()){const{lastBackupHash:e,lastMainHash:t}=this.currentMeta;if(e===s)return void this.logger.info(ne.yellow(`[DistService] Backup skipped: same backup fingerprint as last saved (${s.slice(0,12)}...)`));if(n.allFilesInMeta&&n.mainHash&&t===n.mainHash)return void this.logger.info(ne.yellow("[DistService] Backup skipped: same VERSION manifest checksum (main hash) and all files listed in VERSION"))}const r=new Date,i=this.backupName(this.pageName,r);return this.currentMeta.lastBackupName=i,this.currentMeta.lastBackupHash=s,this.currentMeta.lastBackupDate=r.toISOString(),n.mainHash?this.currentMeta.lastMainHash=n.mainHash:delete this.currentMeta.lastMainHash,await this.syncMeta(),await b.writeFile(p.resolve(this.backupFolder,i),e).finally(()=>{this.logger.info(`Backup saved to ${i}`)})}async buildNewAssets(){if(this.nextBuild)return await this.buildNextAssets();const e=new Promise((e,t)=>{let n="";this.logger.info(ne.cyan("[DistService] Build started"));const s=T.spawn("node",[p.resolve(Le,"./bin/pp-dev.js"),"build"],{cwd:E.cwd(),env:Object.assign({},E.env,{NODE_ENV:"production"}),stdio:"inherit"});s.on("message",e=>{n+=e}),s.on("close",s=>{0===s?e(n):t(new Error(`build command exited with code ${s}`))}),s.on("error",e=>{t(e)})});try{await e.finally(()=>{this.logger.info(ne.cyan("[DistService] Build finished"))});const t=p.resolve(E.cwd(),this.distZipFolder,this.distZipFilename);if(!await b.stat(t))throw new Error(`File ${t} not found`);return await b.readFile(t)}catch(e){throw this.logger.error(e instanceof Error?e.stack??e.message:String(e)),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}async buildNextAssets(){const{projectRoot:e,distDir:t}=this.nextBuild;this.logger.info(ne.cyan("[DistService] Next.js build started")),await Re(e),this.logger.info(ne.cyan("[DistService] Next.js build finished"));const n=p.resolve(e,t);if(!await this.isDirectory(n))throw new Error(`Next.js build output directory not found: ${n}`);return Ae({outDir:n,packageVersion:this.nextBuild.packageVersion,versionFileTemplate:this.versionFileTemplate,packageRepositoryUrl:this.nextBuild.packageRepositoryUrl,packageBranchName:this.nextBuild.packageBranchName}),await Ie(n)}async isDirectory(e){try{return(await b.stat(e)).isDirectory()}catch{return!1}}}class Me{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=te(),this.init()}init(){const{ws:e}=this.server;for(const[t,n]of this.eventMap)e.on(t,n);e.on("close",()=>{this.clearAllPendingSyncActions(!1)}),e.on("error",()=>{this.clearAllPendingSyncActions(!1)})}resolveSyncAction(e,t){const n=this.syncActionResolvers.get(e);n&&(clearTimeout(n.timeoutId),this.syncActionResolvers.delete(e),n.resolve(t))}clearAllPendingSyncActions(e){for(const t of[...this.syncActionResolvers.keys()])this.resolveSyncAction(t,e)}onInfoDataRequest(e,t){t.send("info-data:response",{})}onTemplateSyncActionResponse(e){e&&"string"==typeof e.requestId&&"boolean"==typeof e.approved&&this.resolveSyncAction(e.requestId,e.approved)}async requestSyncAction(e,t){const n=k(),s=this.opts.syncActionTimeoutMs??12e4;return await new Promise(r=>{const i=setTimeout(()=>{this.resolveSyncAction(n,!1)},s);this.syncActionResolvers.set(n,{resolve:r,timeoutId:i}),t.send("template:sync:action-required",{...e,requestId:n})})}async onTemplateSync(e,t){if(!this.opts.distService||!this.opts.miAPI)return t.send("template:sync:response",{error:"Dist service or MiAPI is not defined"}),void this.logger.error(ne.red("Dist service or MiAPI is not defined"));{const{distService:e,miAPI:n}=this.opts;try{if(this.server.config.clientInjectionPlugin?.v7Features){if(!n?.isV710OrHigher)return void t.send("template:sync:response",{error:"This feature is available only for MI v7.1.0 or higher",config:{canSync:!1}});t.send("client:config:update",{config:{canSync:!0}})}const s=await(n?.getAssets().catch(async e=>{if(o(e)){if("SESSION_EXPIRED"===be(e).code){this.logger.info(ne.yellow("Session expired - attempting to validate credentials"));try{const e=await(n?.validateCredentials());e&&!e.isValid?(this.logger.error(ne.red(`Authentication error: ${e.error}`)),t.send("template:sync:response",{error:e.error,code:e.code,refresh:!0})):(this.logger.info(ne.yellow("Session expired")),t.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0}))}catch(e){this.logger.info(ne.yellow("Session expired")),t.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(ne.yellow("Server in maintenance mode, VPN connection is needed or no internet connection")),t.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(ne.yellow(`Server in maintenance mode or unreachable (HTTP ${s}); VPN may be required`)),t.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e}if(ge(e))return this.logger.info(ne.yellow("Server in maintenance mode or non-JSON page / page-template API response (unavailable HTML body)")),t.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 r;if(s){const n=await(e?.analyzeBackup(s).catch(e=>"Backup file is not a ZIP file"===e.message?(this.logger.error(ne.red("Backup file is not a ZIP file")),e):e));if(n instanceof Error)r=n;else if(n){await(e?.saveBackup(s,n));const i=0===n.unknownFiles.length&&1===n.versionManifestHashMismatches.length&&p.basename(n.versionManifestHashMismatches[0].relativePath)===Oe,a=n.versionManifestHashMismatches,o=a.filter(e=>p.basename(e.relativePath)===Oe),l=a.filter(e=>p.basename(e.relativePath)!==Oe),c=!i&&o.length>0&&l.length>0,d=i?[]:l.map(e=>e.relativePath),u=async()=>{if(!n.templateVariables||!e)return;const{templateVariables:s}=n;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"},t)&&await e.saveTemplateVariablesFile(s.content)}};if(n.unknownFiles.length>0){if(!await this.requestSyncAction({title:"Unknown files found in backup",content:`Backup contains files not listed in VERSION: ${n.unknownFiles.join(", ")}. Continue sync or cancel?`,confirmText:"Continue sync",cancelText:"Cancel sync"},t))return t.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(ne.yellow("Sync cancelled by user"))}if(c&&await u(),!i&&d.length>0){const e=40,n=d,s=n.slice(0,e),r=n.length-s.length,i=s.map(e=>`• ${e}`).join("\n"),a=r>0?`\n... and ${r} more file${1===r?"":"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${i}${a}\n\nCancel sync, or override and continue using the files on disk?`,confirmText:"Override and continue",cancelText:"Cancel sync"},t))return t.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(ne.yellow("Sync cancelled by user"))}if(!i&&n.buildManifestMismatch&&0===n.versionManifestHashMismatches.length){const{expected:e,actual:s}=n.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"},t))return t.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(ne.yellow("Sync cancelled by user"))}c||await u(),r=await(e?.buildNewAssets())}}else r=await(e?.buildNewAssets());if(!(r&&r instanceof Buffer))return r instanceof Error?(t.send("template:sync:response",{error:r.message}),void this.logger.error(ne.red(r.message))):(t.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(ne.red("Failed to build new assets")));{const s=await(n?.updateAssets(r));if("OK"===s?.status){const n=e?.getBackupMeta(),{lastBackupName:s,lastBackupHash:r,lastBackupDate:i}=n||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};t.send("template:sync:response",{syncedAt:new Date(i),currentHash:r,backupFilename:s}),this.logger.info(ne.green("Template synced"))}else t.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(ne.red("Failed to update assets"))}}catch(e){const n=e instanceof Error?e.message:"Template sync failed";return this.logger.error(ne.red(`Template sync failed: ${n}`)),void t.send("template:sync:response",{error:n,code:"SYNC_FAILED"})}}}}const ze=/\.(?:[a-z0-9]+)$/i,Ue=6e5,_e=104857600,Ve=1e3;class Ze extends R.Cache{totalSize=0;maxSize;maxItems;constructor(e,t){super(),this.maxSize=e,this.maxItems=t}put(e,t,n){const s=this.get(e);s&&(this.totalSize-=s.size);const r=super.put(e,t,n);return this.totalSize+=t.size,this.cleanup(),r}cleanup(){const e=this.keys();if(e.length>this.maxItems){const t=e.length-this.maxItems,n=e.sort((e,t)=>{const n=this.get(e),s=this.get(t);return(n?.timestamp||0)-(s?.timestamp||0)});for(let e=0;e<t;e++){const t=n[e],s=this.get(t);s&&(this.totalSize-=s.size,this.del(t))}}for(;this.totalSize>this.maxSize;){const e=this.keys();if(0===e.length)break;const t=e.sort((e,t)=>{const n=this.get(e),s=this.get(t);return(n?.timestamp||0)-(s?.timestamp||0)})[0],n=this.get(t);if(!n)break;this.totalSize-=n.size,this.del(t)}}getTotalSize(){return this.totalSize}getItemCount(){return this.keys().length}}const We=new Ze(_e,Ve);function Je(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 Ke(e){const{devServer:t,ttl:n=Ue,maxSize:s=_e,maxItems:r=Ve}=e,i=te();return s===_e&&r===Ve||(We.maxSize=s,We.maxItems=r),t.cache=We,(e,t,s)=>{const r=e.originalUrl||e.url||"",a=function(e){const t=e.split("?")[0];return ze.test(t)?t.includes("/auth/info.js")?"":e:""}(r);if(!a)return s();const o=We.get(a);if(o)return i.info(`${ne.blue("Proxies request:")} ${ne.green(e.method)} ${r} -> ${ne.blue("Cache")} ${a}`),function(e,t){try{for(const[n,s]of Object.entries(t))null!=s&&e.setHeader(n,s)}catch(e){te().warn(`Failed to set some response headers: ${e instanceof Error?e.message:String(e)}`)}}(t,o.headers),t.setHeader("X-PP-Cache","hit"),t.write(o.content),void t.end();const l=t.end,c=t.write,d=[];t.write=function(e,n,s){if(!t.hasHeader(oe))return c.call(this,e,n,s);if("string"==typeof e){const t=n||"utf8";d.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?d.push(e):null!=e&&d.push(Buffer.from(String(e),"utf8"));return s?.(),!0},t.end=function(e,s,r){if(!t.hasHeader(oe))return l.call(this,e,s,r);if(null!=e)if("string"==typeof e){const t=s||"utf8";d.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?d.push(e):d.push(Buffer.from(String(e),"utf8"));let o;try{o=Je(d);const e=Buffer.byteLength(o);if(e>0&&e<10485760){const s={headers:t.getHeaders(),content:o,timestamp:Date.now(),size:e};We.put(a,s,n),i.info(`${ne.blue("[Cached]")} ${a} (${(e/1024).toFixed(1)}KB)`)}}catch(e){i.error(`Failed to cache response for ${a}: ${e}`),o=Je(d)}const c=s||"utf8";return l.call(this,o,c,r)},s()}}function Ge(e,t){return async(n,s,r)=>{if(await e(n.url??"",n,s)){te().info(`Rewrite response for ${n.url}`);const e=s.end,r=[];s.write=function(e){return r.push(e),!0},s.end=function(i,a,o){"string"==typeof i&&r.push(Buffer.from(i));const l=s.getHeader("content-encoding"),c=function(e,t){switch(t){case"gzip":return F(e);case"br":return P(e);case"deflate":return C(e);default:return e}}(Buffer.from(Buffer.concat(r)),l),d="function"!=typeof a&&a?a:"utf-8",p="function"==typeof a?a:o;return e.call(this,function(e,t){switch(t){case"gzip":return H(e);case"br":return j(e);case"deflate":return L(e);default:return e}}(t(c,n,s),l),d,p),this}}r()}}function Xe(e,t){const n=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,r=te();return(i,a,o)=>{const l=new s(i.url??"","http://localhost"),{pathname:c,search:d}=l,p=["/",n];if(t&&(p.push(`/pt/${t}`),p.push(`/pl/${t}`)),p.includes(c)){const t=`${e}${d}`;return r.info(ne.yellow(`Redirecting to: ${t}`)),re(a,t,302)}o()}}class Ye{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)}})}}const Qe=new Ye,et=new Map;function tt(e){const t=et.get(e);return t?Date.now()-t.timestamp>18e4?(et.delete(e),null):t.data:null}function nt(e,t){et.set(e,{timestamp:Date.now(),data:t})}const st="/home?proxyRedirect=";function rt(e,t,n){const{templateLess:s=!1,miHudLess:r=!1,appId:i,base:a,appBase:o,v7Features:l}=n,c=te();if(s&&r&&void 0===i)throw new Error("Custom App ID is required when both templateLess and miHudLess are true");return async(n,d,p)=>{try{const u=!(s&&r),h=(n.url??"").split("?")[0],m=e.test(h),f=!m&&!h.startsWith("/home")&&function(e,t){if(!t||"/"===t)return!0;const n=t.endsWith("/")?t:`${t}/`;return e===n||e===n.slice(0,-1)||e.startsWith(n)}(h,o)&&function(e){const t=e.headers["sec-fetch-dest"];if("string"==typeof t)return"document"===t;const n=e.headers.accept;return"string"==typeof n&&n.includes("text/html")}(n),g=Qe.getState();if(!g.isAuthenticated&&!g.isRedirected&&n.url?.startsWith("/home")&&!n.url?.startsWith(st)){c.info(ne.blue("Trying to authenticate and redirect to base"));try{return u?await at(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:l&&a?`${a}`:`${st}${encodeURIComponent("/")}`},n,d,()=>{},c):await it(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:l&&a?`${a}`:`${st}${encodeURIComponent("/")}`},n,d,()=>{},c),Qe.setRedirected(!0),c.info(ne.blue("Successfully authenticated. Redirecting to base")),re(d,a??"/",302)}catch(e){return p()}}if(!m&&!f)return p();if(!u){return await it(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:l&&a?`${a}`:`${st}${encodeURIComponent("/")}`},n,d,p,c)}return await at(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:l&&a?`${a}`:`${st}${encodeURIComponent("/")}`},n,d,p,c)}catch(e){return c.error(ne.red(`Unexpected error in load-pp-data middleware: ${e instanceof Error?e.message:String(e)}`)),Qe.reset(),p(e)}}}async function it(e,t,n,s,r,i){const{appId:a,redirectOnAuthFailure:o,redirectUrl:l}=t;if(void 0===a){const e=new Error("Custom App ID is required for page info only mode");return i.error(ne.red(e.message)),r(e)}const c=n.headers??{};i.info(ne.green("Start loading page info"));try{const t=`pageInfo:${a}`;return tt(t)?(i.info(ne.green("Page info loaded from cache")),r()):(await e.getPageInfo(a,c),i.info(ne.blue("Clearing proxy cache after successful login")),We.clear(),nt(t,{success:!0}),Qe.updateState({isAuthenticated:!0}),i.info(ne.green("Page info loaded successfully")),r())}catch(e){return Qe.reset(),ot(e,o??!0,l||`${st}${encodeURIComponent("/")}`,s,r,i,"Page info")}}async function at(e,t,n,s,r,i){const{templateLess:a,appId:o,redirectOnAuthFailure:l,redirectUrl:c}=t,d=n.headers??{};i.info(ne.green("Start loading page data"));try{const t=`pageData:${a}:${o}`;if(tt(t))return i.info(ne.green("Page data loaded from cache")),r();const n=a||void 0===o?e.getPageTemplate(d):e.getPageVariables(o,d);return await n,i.info(ne.blue("Clearing proxy cache after successful login")),We.clear(),nt(t,{success:!0}),i.info(ne.green("Page data loaded successfully")),r()}catch(e){return Qe.reset(),ot(e,l??!0,c||`${st}${encodeURIComponent("/")}`,s,r,i,"Page data")}}function ot(e,t,n,s,r,i,a){if(function(e){return null!==e&&"object"==typeof e&&"response"in e&&void 0!==e.response}(e)&&(i.info(ne.red(`${a} loading failed. Not authorized`)),t)){const e=`${n}`;return i.info(ne.yellow(`Redirecting to: ${e}`)),re(s,e,302)}const o=e instanceof Error?e.message:String(e);return i.info(ne.red(`${a} loading failed. Error: ${o}`)),r(e)}function lt(){const e=N();return e.use(N.json()),e.use(N.urlencoded({extended:!0})),e}const ct=lt();class dt{entries=new Map;insertOrder=[];totalSize=0;maxMemory;constructor(e=1073741824){this.maxMemory=e}allocateId(){return q()}add(e){let t=e,n=(e.requestBody?.byteLength??0)+(e.responseBody?.byteLength??0);n>this.maxMemory&&(t={...e,requestBody:null,responseBody:null,requestBodyTruncated:e.requestBodyTruncated||null!==e.requestBody,responseBodyTruncated:e.responseBodyTruncated||null!==e.responseBody},n=0);const s=n+512;for(;this.totalSize+s>this.maxMemory&&this.insertOrder.length>0;){const e=this.insertOrder.shift(),t=this.entries.get(e);t&&(this.totalSize-=(t.requestBody?.byteLength??0)+(t.responseBody?.byteLength??0)+512,this.entries.delete(e))}this.entries.set(t.id,t),this.insertOrder.push(t.id),this.totalSize+=s}get(e){return this.entries.get(e)}list(e){let t=this.insertOrder.slice().map(e=>{const t=this.entries.get(e);return{id:t.id,timestamp:t.timestamp,method:t.method,url:t.url,statusCode:t.statusCode,duration:t.duration,source:t.source,requestSize:t.requestBody?.byteLength??0,responseSize:t.responseBody?.byteLength??0,requestBodyTruncated:t.requestBodyTruncated,responseBodyTruncated:t.responseBodyTruncated}});if(e?.method&&(t=t.filter(t=>t.method===e.method.toUpperCase())),e?.search){const n=e.search.toLowerCase();t=t.filter(e=>e.url.toLowerCase().includes(n))}const n=Number.isFinite(e?.limit)?e.limit:t.length;if(void 0===e?.offset)return t.slice(Math.max(0,t.length-n));const s=Number.isFinite(e.offset)?e.offset:0;return t.slice(s,s+n)}clear(){this.entries.clear(),this.insertOrder=[],this.totalSize=0}get size(){return this.entries.size}get memoryUsage(){return this.totalSize}}const pt=["/@pp-dev/","/@api/","/_next/","/__nextjs_","/@vite","/@metricinsights","/@"],ut=new Set(["/favicon.ico","/installHook.js.map"]);function ht(e,t=10485760){return(n,s,r)=>{const i=n.url||"/",a=i.split("?")[0];if(pt.some(e=>i.startsWith(e))||ut.has(a))return void r();const o=e.allocateId(),l=Date.now(),c=[];let d=0,p=!1;const u=n.emit.bind(n);n.emit=(e,...n)=>{if("data"===e&&!p){const e=n[0],s=Buffer.isBuffer(e)?e:Buffer.from(String(e));d+=s.byteLength,d<=t?c.push(s):(p=!0,c.length=0)}return u(e,...n)};const h=[];let m=0,f=!1;const g=s.write.bind(s),y=s.end.bind(s);function v(e,n){if(!f&&null!=e)try{const s=Buffer.isBuffer(e)?e:"string"==typeof e?Buffer.from(e,n):ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(String(e));m+=s.byteLength,m<=t?h.push(s):(f=!0,h.length=0)}catch{}}function b(e){return"string"==typeof e[0]?e[0]:void 0}function w(){const e=s.getHeaders();return e["x-pp-proxy"]?"hit"===e["x-pp-cache"]?"proxy-cache":"proxy":"local"}let x=!1;s.write=function(e,...t){return v(e,b(t)),g(e,...t)},s.end=function(t,...r){return"function"!=typeof t&&v(t,b(r)),function(){if(x)return;x=!0;const t=!p&&c.length>0?Buffer.concat(c):null,r=!f&&h.length>0?Buffer.concat(h):null;e.add({id:o,timestamp:l,method:n.method||"GET",url:i,statusCode:s.statusCode??null,duration:Date.now()-l,source:w(),requestHeaders:n.headers,requestBody:t,requestBodyTruncated:p,responseHeaders:s.getHeaders(),responseBody:r,responseBodyTruncated:f})}(),y(t,...r)},r()}}const mt="/@pp-dev/inspector";let ft,gt=!1;function yt(e,t,n=10485760){ft={store:t,captureLimit:n},gt||(gt=!0,e.get("/@api/requests",(e,t)=>{const{store:n}=ft,{limit:s,offset:r,method:i,search:a}=e.query,o=void 0!==s?parseInt(s,10):void 0,l=n.list({limit:Number.isFinite(o)?o:500,offset:void 0!==r&&Number.isFinite(parseInt(r,10))?parseInt(r,10):void 0,method:i,search:a});t.json({requests:l,total:n.size,memoryUsage:n.memoryUsage,maxMemory:n.maxMemory})}),e.get("/@api/requests/stats",(e,t)=>{const{store:n}=ft;t.json({total:n.size,memoryUsage:n.memoryUsage,maxMemory:n.maxMemory,memoryUsageFormatted:bt(n.memoryUsage),maxMemoryFormatted:bt(n.maxMemory)})}),e.get("/@api/requests/:id",(e,t)=>{const n=ft.store.get(e.params.id);if(!n)return void t.status(404).json({error:"Not found",id:e.params.id});const s=vt(n.requestHeaders["content-type"]),r=vt(n.responseHeaders["content-type"]);t.json({id:n.id,timestamp:n.timestamp,method:n.method,url:n.url,statusCode:n.statusCode,duration:n.duration,source:n.source,requestHeaders:n.requestHeaders,requestBody:n.requestBody?n.requestBody.toString("base64"):null,requestBodySize:n.requestBody?.byteLength??0,requestBodyTruncated:n.requestBodyTruncated,requestContentType:s,responseHeaders:n.responseHeaders,responseBody:n.responseBody?n.responseBody.toString("base64"):null,responseBodySize:n.responseBody?.byteLength??0,responseBodyTruncated:n.responseBodyTruncated,responseContentType:r})}),e.delete("/@api/requests",(e,t)=>{ft.store.clear(),t.json({ok:!0})}),e.get(mt,(e,t)=>{t.setHeader("Content-Type","text/html; charset=utf-8"),t.setHeader("Cache-Control","no-cache"),t.end(function(e){return`<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<meta name="viewport" content="width=device-width,initial-scale=1">\n<title>Request Inspector — pp-dev</title>\n<style>\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n:root{\n --bg:#1a1a1e;--bg2:#222228;--bg3:#2a2a32;--bg4:#32323c;\n --border:#3a3a46;--border2:#4a4a58;\n --text:#e0e0f0;--text2:#a0a0b8;--text3:#606078;\n --accent:#6e8efb;--accent2:#a78bfa;\n --green:#4ade80;--red:#f87171;--yellow:#fbbf24;--blue:#60a5fa;--orange:#fb923c;--purple:#c084fc;\n --font-mono:'Cascadia Code','Fira Code','JetBrains Mono',Consolas,monospace;\n --font-ui:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n}\nhtml,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.5}\n\n/* ── Layout ── */\n.app{display:flex;flex-direction:column;height:100vh}\n.toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}\n.toolbar-title{font-weight:600;font-size:14px;color:var(--text);margin-right:4px}\n.toolbar-badge{font-size:11px;padding:2px 7px;border-radius:10px;background:var(--bg4);color:var(--text2)}\n.toolbar-spacer{flex:1}\n.mem-bar-wrap{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text2)}\n.mem-bar{width:80px;height:6px;background:var(--bg4);border-radius:3px;overflow:hidden}\n.mem-bar-fill{height:100%;background:var(--accent);transition:width .4s}\n\n.split{display:flex;flex:1;overflow:hidden}\n.pane-list{width:380px;min-width:200px;max-width:60%;border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}\n.pane-detail{flex:1;display:flex;flex-direction:column;overflow:hidden}\n\n/* ── Filter bar ── */\n.filter-bar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0}\n.filter-input{flex:1 1 120px;min-width:0;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:4px 8px;border-radius:4px;font-size:12px;outline:none}\n.filter-input:focus{border-color:var(--accent)}\n.filter-selects{display:flex;gap:6px;flex-shrink:0}\n.filter-select{background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:4px 6px;border-radius:4px;font-size:12px;outline:none;cursor:pointer;max-width:90px}\n.filter-select:focus{border-color:var(--accent)}\n\n/* ── Request list ── */\n.req-list{flex:1;overflow-y:auto;overflow-x:hidden}\n.req-list::-webkit-scrollbar{width:6px}\n.req-list::-webkit-scrollbar-track{background:var(--bg)}\n.req-list::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px}\n.req-item{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 9px;border-bottom:1px solid var(--border);border-left:3px solid transparent;cursor:pointer;user-select:none;transition:background .1s,border-left-color .1s}\n.req-item:hover{background:var(--bg3)}\n.req-item.selected{background:var(--bg4);border-left-color:var(--accent) !important}\n.req-item.src-proxy{border-left-color:#6366f1}\n.req-item.src-proxy-cache{border-left-color:#d97706}\n.req-item.src-local{border-left-color:transparent}\n\n.method-badge{font-size:10px;font-weight:700;padding:2px 5px;border-radius:3px;min-width:38px;text-align:center;letter-spacing:.4px;flex-shrink:0}\n.m-GET{background:#1a3a2a;color:var(--green)}\n.m-POST{background:#1a2a3a;color:var(--blue)}\n.m-PUT{background:#3a2a1a;color:var(--orange)}\n.m-PATCH{background:#2a2a1a;color:var(--yellow)}\n.m-DELETE{background:#3a1a1a;color:var(--red)}\n.m-HEAD,.m-OPTIONS{background:#2a1a3a;color:var(--purple)}\n.m-other{background:var(--bg4);color:var(--text2)}\n\n.req-url{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text)}\n.req-meta{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0;font-size:10px;color:var(--text3)}\n.req-status-row{display:flex;align-items:center;gap:4px}\n.source-letter{font-size:9px;font-weight:700;width:15px;height:15px;display:flex;align-items:center;justify-content:center;border-radius:2px;flex-shrink:0}\n.src-letter-proxy{background:#1e1e3a;color:#6366f1}\n.src-letter-proxy-cache{background:#2a2010;color:#d97706}\n.src-letter-local{background:var(--bg4);color:var(--text3)}\n.status-badge{font-size:10px;font-weight:600;padding:1px 4px;border-radius:2px}\n.s-2xx{color:var(--green)}\n.s-3xx{color:var(--blue)}\n.s-4xx{color:var(--yellow)}\n.s-5xx{color:var(--red)}\n.s-pending{color:var(--text3)}\n\n.source-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;padding:2px 7px;border-radius:10px}\n.src-local{background:#1e2a1e;color:#86efac}\n.src-proxy{background:#1e1e3a;color:#a5b4fc}\n.src-proxy-cache{background:#2a2010;color:#fcd34d}\n\n.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text3);gap:8px;padding:40px}\n.empty-icon{font-size:40px;opacity:.5}\n\n/* ── Detail pane ── */\n.detail-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text3);gap:8px}\n.detail-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:0}\n.detail-scroll::-webkit-scrollbar{width:6px}\n.detail-scroll::-webkit-scrollbar-track{background:var(--bg)}\n.detail-scroll::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px}\n\n.detail-section{border-bottom:1px solid var(--border)}\n.detail-section-hdr{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg2);cursor:pointer;user-select:none;position:sticky;top:0;z-index:1}\n.detail-section-hdr:hover{background:var(--bg3)}\n.detail-section-hdr .toggle{font-size:10px;color:var(--text3)}\n.section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text2)}\n.section-badge{font-size:10px;padding:1px 5px;border-radius:8px;background:var(--bg4);color:var(--text3)}\n.section-actions{display:flex;gap:4px;margin-left:auto;align-items:center}\n.section-btn{font-size:10px;padding:1px 7px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text3);cursor:pointer;line-height:1.6;transition:all .1s;font-family:var(--font-ui)}\n.section-btn:hover{background:var(--bg4);color:var(--text);border-color:var(--border2)}\n.detail-section-body{padding:8px 12px;font-family:var(--font-mono);font-size:12px}\n.detail-section-body.collapsed{display:none}\n\n.kv-table{width:100%;border-collapse:collapse}\n.kv-table tr:hover td{background:var(--bg3)}\n.kv-table td{padding:2px 0;vertical-align:top}\n.kv-table td:first-child{color:var(--text2);white-space:nowrap;padding-right:12px;min-width:140px;max-width:220px;overflow:hidden;text-overflow:ellipsis}\n.kv-table td:last-child{color:var(--text);word-break:break-all}\n\n.body-content{white-space:pre-wrap;word-break:break-all;color:var(--text);line-height:1.6;max-height:400px;overflow:auto}\n.body-content.json{color:#c9d1d9}\n.body-json-key{color:#79b8ff}\n.body-json-str{color:#9ecbff}\n.body-json-num{color:#f8c555}\n.body-json-bool{color:#f97583}\n.body-json-null{color:#f97583;font-style:italic}\n.body-binary{color:var(--text3);font-style:italic;padding:8px 0}\n.body-image{max-width:100%;max-height:300px;object-fit:contain;margin-top:4px;border:1px solid var(--border);border-radius:4px}\n.truncated-note{font-size:11px;color:var(--yellow);margin-top:4px;font-family:var(--font-ui)}\n\n.detail-info-bar{display:flex;gap:16px;padding:10px 12px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}\n.info-item{display:flex;flex-direction:column;gap:2px}\n.info-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}\n.info-value{font-size:13px;font-weight:600;color:var(--text)}\n.info-url{display:flex;align-items:center;gap:8px;font-size:11px;font-family:var(--font-mono);color:var(--text2);padding:6px 12px;border-bottom:1px solid var(--border);background:var(--bg)}\n.info-url-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n/* ── Buttons ── */\n.btn{padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:var(--bg3);color:var(--text);font-size:12px;cursor:pointer;transition:background .1s}\n.btn:hover{background:var(--bg4);border-color:var(--border2)}\n.btn-danger:hover{background:#3a1a1a;border-color:#6a2a2a;color:var(--red)}\n.btn-sm{padding:2px 7px;font-size:11px}\n\n/* ── Live indicator ── */\n.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 2s infinite}\n@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}\n\n/* ── Scrollbar ── */\n::-webkit-scrollbar{width:6px;height:6px}\n::-webkit-scrollbar-track{background:var(--bg)}\n::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px}\n</style>\n</head>\n<body>\n<div class="app">\n <div class="toolbar">\n <span class="toolbar-title">🔍 Request Inspector</span>\n <span class="live-dot" title="Live"></span>\n <span class="toolbar-badge" id="req-count">0 requests</span>\n <div class="mem-bar-wrap">\n <div class="mem-bar"><div class="mem-bar-fill" id="mem-fill" style="width:0%"></div></div>\n <span id="mem-text">0 B / 1 GB</span>\n </div>\n <div class="toolbar-spacer"></div>\n <button class="btn btn-sm btn-danger" onclick="clearAll()">Clear</button>\n </div>\n <div class="split">\n <div class="pane-list">\n <div class="filter-bar">\n <input class="filter-input" id="search-input" placeholder="Filter by URL…" oninput="applyFilter()" />\n <div class="filter-selects">\n <select class="filter-select" id="method-select" onchange="applyFilter()">\n <option value="">All</option>\n <option>GET</option><option>POST</option><option>PUT</option>\n <option>PATCH</option><option>DELETE</option><option>HEAD</option>\n </select>\n <select class="filter-select" id="status-select" onchange="applyFilter()">\n <option value="">All</option>\n <option value="2">2xx</option><option value="3">3xx</option>\n <option value="4">4xx</option><option value="5">5xx</option>\n </select>\n <select class="filter-select" id="source-select" onchange="applyFilter()">\n <option value="">All</option>\n <option value="local">Local</option>\n <option value="proxy">Proxy</option>\n <option value="proxy-cache">Cached</option>\n </select>\n </div>\n </div>\n <div class="req-list" id="req-list">\n <div class="empty-state">\n <div class="empty-icon">📡</div>\n <div>No requests captured yet</div>\n <div style="font-size:11px">Requests to the dev server will appear here</div>\n </div>\n </div>\n </div>\n <div class="pane-detail">\n <div class="detail-empty" id="detail-empty">\n <div style="font-size:32px;opacity:.3">←</div>\n <div>Select a request to inspect</div>\n </div>\n <div id="detail-panel" style="display:none;flex:1;flex-direction:column;overflow:hidden">\n <div class="detail-info-bar" id="detail-info"></div>\n <div class="info-url" id="detail-url"></div>\n <div class="detail-scroll" id="detail-scroll"></div>\n </div>\n </div>\n </div>\n</div>\n<script>\n(function(){\n'use strict';\n\nconst CAPTURE_LIMIT = ${e};\n\nlet allRequests = [];\nlet filteredRequests = [];\nlet selectedId = null;\nlet currentEntry = null;\n\nconst listEl = document.getElementById('req-list');\nconst detailEmpty = document.getElementById('detail-empty');\nconst detailPanel = document.getElementById('detail-panel');\nconst detailInfo = document.getElementById('detail-info');\nconst detailUrl = document.getElementById('detail-url');\nconst detailScroll = document.getElementById('detail-scroll');\n\n// ── Fetch request list ────────────────────────────────────────────────────────\nasync function fetchList() {\n try {\n const r = await fetch('/@api/requests');\n const data = await r.json();\n\n allRequests = data.requests || [];\n updateStats(data);\n applyFilter();\n\n if (selectedId && !allRequests.find(r => r.id === selectedId)) {\n selectedId = null;\n showDetailEmpty();\n }\n } catch(e) {}\n}\n\nfunction updateStats(data) {\n const pct = data.maxMemory > 0 ? Math.min(100, (data.memoryUsage / data.maxMemory) * 100) : 0;\n\n document.getElementById('req-count').textContent = data.total + ' request' + (data.total !== 1 ? 's' : '');\n document.getElementById('mem-fill').style.width = pct + '%';\n document.getElementById('mem-text').textContent = formatBytes(data.memoryUsage) + ' / ' + formatBytes(data.maxMemory);\n}\n\n// ── Filter ────────────────────────────────────────────────────────────────────\nfunction applyFilter() {\n const search = document.getElementById('search-input').value.toLowerCase();\n const method = document.getElementById('method-select').value;\n const status = document.getElementById('status-select').value;\n const source = document.getElementById('source-select').value;\n\n filteredRequests = allRequests.filter(r => {\n if (method && r.method !== method) {\n return false;\n }\n\n if (status && !String(r.statusCode || '').startsWith(status)) {\n return false;\n }\n\n if (source && r.source !== source) {\n return false;\n }\n\n if (search && !r.url.toLowerCase().includes(search)) {\n return false;\n }\n\n return true;\n });\n\n renderList();\n}\n\n// ── Render list ───────────────────────────────────────────────────────────────\nfunction isAtBottom() {\n return listEl.scrollTop + listEl.clientHeight >= listEl.scrollHeight - 16;\n}\n\nfunction renderList() {\n const atBottom = isAtBottom();\n\n if (!filteredRequests.length) {\n listEl.innerHTML = '<div class="empty-state"><div class="empty-icon">🔍</div><div>No matching requests</div></div>';\n\n return;\n }\n\n const html = filteredRequests.map(r => {\n const sel = r.id === selectedId ? ' selected' : '';\n const mClass = methodClass(r.method);\n const sClass = statusClass(r.statusCode);\n const dur = r.duration != null ? formatDur(r.duration) : '…';\n const size = formatBytes((r.responseSize || 0));\n const srcCls = 'src-' + (r.source || 'local');\n const sLetter = sourceLetter(r.source);\n const sLetterCls = 'src-letter-' + (r.source || 'local').replace(/-/g, '-');\n\n return \`<div class="req-item \${srcCls}\${sel}" data-id="\${esc(r.id)}" onclick="selectRequest('\${esc(r.id)}')">\n <span class="method-badge \${mClass}">\${esc(r.method)}</span>\n <span class="req-url" title="\${esc(r.url)}">\${esc(r.url)}</span>\n <span class="req-meta">\n <span class="req-status-row">\n <span class="source-letter \${sLetterCls}">\${sLetter}</span>\n <span class="status-badge \${sClass}">\${r.statusCode || '…'}</span>\n </span>\n <span>\${dur}</span>\n <span>\${size}</span>\n </span>\n </div>\`;\n }).join('');\n\n listEl.innerHTML = html;\n\n if (atBottom) {\n listEl.scrollTop = listEl.scrollHeight;\n }\n}\n\n// ── Select request ────────────────────────────────────────────────────────────\nasync function selectRequest(id) {\n selectedId = id;\n\n renderList();\n\n detailEmpty.style.display = 'none';\n detailPanel.style.display = 'flex';\n detailPanel.style.flexDirection = 'column';\n detailPanel.style.overflow = 'hidden';\n detailScroll.innerHTML = '<div style="padding:20px;color:var(--text3)">Loading…</div>';\n\n try {\n const r = await fetch('/@api/requests/' + encodeURIComponent(id));\n\n if (!r.ok) {\n showDetailEmpty();\n\n return;\n }\n\n const entry = await r.json();\n\n renderDetail(entry);\n } catch(e) {\n showDetailEmpty();\n }\n}\nwindow.selectRequest = selectRequest;\n\nfunction showDetailEmpty() {\n detailPanel.style.display = 'none';\n detailEmpty.style.display = 'flex';\n}\n\nfunction renderDetail(e) {\n currentEntry = e;\n\n const sClass = statusClass(e.statusCode);\n const src = sourceInfo(e.source);\n\n detailInfo.innerHTML = \`\n <div class="info-item"><div class="info-label">Method</div><div class="info-value"><span class="method-badge \${methodClass(e.method)}">\${esc(e.method)}</span></div></div>\n <div class="info-item"><div class="info-label">Status</div><div class="info-value"><span class="status-badge \${sClass}">\${e.statusCode || '—'}</span></div></div>\n <div class="info-item"><div class="info-label">Source</div><div class="info-value"><span class="source-chip \${src.cls}">\${src.title}</span></div></div>\n <div class="info-item"><div class="info-label">Duration</div><div class="info-value">\${e.duration != null ? formatDur(e.duration) : '—'}</div></div>\n <div class="info-item"><div class="info-label">Request</div><div class="info-value">\${formatBytes(e.requestBodySize||0)}</div></div>\n <div class="info-item"><div class="info-label">Response</div><div class="info-value">\${formatBytes(e.responseBodySize||0)}</div></div>\n <div class="info-item"><div class="info-label">Time</div><div class="info-value" style="font-size:11px">\${new Date(e.timestamp).toLocaleTimeString()}</div></div>\n \`;\n\n detailUrl.innerHTML = \`<span class="info-url-text" title="\${esc(e.url)}">\${esc(e.url)}</span><button class="section-btn" onclick="copyUrl(this)">Copy link</button>\`;\n\n const sections = [\n makeHeadersSection('Request Headers', e.requestHeaders, 'request'),\n makeBodySection('Request Body', e.requestBody, e.requestContentType, e.requestBodyTruncated, e.requestBodySize, 'request'),\n makeHeadersSection('Response Headers', e.responseHeaders, 'response'),\n makeBodySection('Response Body', e.responseBody, e.responseContentType, e.responseBodyTruncated, e.responseBodySize, 'response'),\n ];\n\n detailScroll.innerHTML = sections.join('');\n}\n\nfunction makeHeadersSection(title, headers, type) {\n const entries = Object.entries(headers || {}).filter(([,v]) => v != null);\n const rows = entries.map(([k,v]) => \`<tr><td>\${esc(k)}</td><td>\${esc(Array.isArray(v) ? v.join(', ') : String(v))}</td></tr>\`).join('');\n const actionsHtml = entries.length ? \`<div class="section-actions"><button class="section-btn" onclick="event.stopPropagation();copyHeaders('\${type}',this)">Copy</button></div>\` : '';\n\n return \`<div class="detail-section">\n <div class="detail-section-hdr" onclick="toggleSection(this)">\n <span class="toggle">▾</span>\n <span class="section-title">\${title}</span>\n <span class="section-badge">\${entries.length}</span>\n \${actionsHtml}\n </div>\n <div class="detail-section-body">\n <table class="kv-table">\${rows}</table>\n </div>\n </div>\`;\n}\n\nfunction makeBodySection(title, b64, contentType, truncated, size, type) {\n let bodyHtml = '';\n const ct = (contentType || '').toLowerCase().split(';')[0].trim();\n const isText = ct.includes('json') || ct.startsWith('text/') || ct.includes('/javascript') || ct === 'application/xml' || ct === 'application/x-www-form-urlencoded';\n\n if (!b64 && !truncated) {\n bodyHtml = '<div class="body-binary">No body</div>';\n } else if (truncated) {\n bodyHtml = \`<div class="body-binary">Body too large to capture (\${formatBytes(size)})</div>\`;\n } else if (b64) {\n if (ct.includes('json') || ct.includes('/javascript') || ct === 'text/plain') {\n const text = decodeTextBody(b64);\n\n if (ct.includes('json')) {\n try {\n bodyHtml = \`<pre class="body-content json">\${syntaxHighlightJson(text)}</pre>\`;\n } catch {\n bodyHtml = \`<pre class="body-content">\${esc(text)}</pre>\`;\n }\n } else {\n bodyHtml = \`<pre class="body-content">\${esc(text)}</pre>\`;\n }\n } else if (ct.startsWith('text/')) {\n bodyHtml = \`<pre class="body-content">\${esc(decodeTextBody(b64))}</pre>\`;\n } else if (ct.startsWith('image/') && size < 1024*1024) {\n bodyHtml = \`<img class="body-image" src="data:\${esc(ct)};base64,\${b64}" alt="image"/>\`;\n } else if (ct === 'application/x-www-form-urlencoded') {\n const params = new URLSearchParams(decodeTextBody(b64));\n const rows = [...params.entries()].map(([k,v]) => \`<tr><td>\${esc(k)}</td><td>\${esc(v)}</td></tr>\`).join('');\n\n bodyHtml = \`<table class="kv-table">\${rows}</table>\`;\n } else {\n bodyHtml = \`<div class="body-binary">Binary data — \${formatBytes(size)} (\${esc(ct || 'unknown type')})</div>\`;\n }\n }\n\n const copyBtn = b64 && isText ? \`<button class="section-btn" onclick="event.stopPropagation();copyBody('\${type}',this)">Copy</button>\` : '';\n const saveBtn = b64 ? \`<button class="section-btn" onclick="event.stopPropagation();saveBody('\${type}')">Save</button>\` : '';\n const actionsHtml = (copyBtn || saveBtn) ? \`<div class="section-actions">\${copyBtn}\${saveBtn}</div>\` : '';\n const note = truncated ? \`<div class="truncated-note">⚠ Body was larger than the capture limit (\${formatBytes(CAPTURE_LIMIT)})</div>\` : '';\n\n return \`<div class="detail-section">\n <div class="detail-section-hdr" onclick="toggleSection(this)">\n <span class="toggle">▾</span>\n <span class="section-title">\${title}</span>\n \${size ? \`<span class="section-badge">\${formatBytes(size)}</span>\` : ''}\n \${actionsHtml}\n </div>\n <div class="detail-section-body">\${bodyHtml}\${note}</div>\n </div>\`;\n}\n\nwindow.toggleSection = function(hdr) {\n const body = hdr.nextElementSibling;\n const toggle = hdr.querySelector('.toggle');\n\n if (body.classList.toggle('collapsed')) {\n toggle.textContent = '▸';\n } else {\n toggle.textContent = '▾';\n }\n};\n\nasync function clearAll() {\n await fetch('/@api/requests', { method: 'DELETE' });\n\n allRequests = [];\n filteredRequests = [];\n selectedId = null;\n\n showDetailEmpty();\n renderList();\n updateStats({ total: 0, memoryUsage: 0, maxMemory: 1024*1024*1024 });\n}\nwindow.clearAll = clearAll;\n\n// ── JSON syntax highlighting ──────────────────────────────────────────────────\nfunction syntaxHighlightJson(str) {\n try {\n const parsed = JSON.parse(str);\n\n str = JSON.stringify(parsed, null, 2);\n } catch { /* use as-is */ }\n\n return str.replace(/("(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\"])*"\\s*:?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g, function(m) {\n if (/^"/.test(m)) {\n if (/:$/.test(m)) {\n return '<span class="body-json-key">' + esc(m) + '</span>';\n }\n\n return '<span class="body-json-str">' + esc(m) + '</span>';\n }\n\n if (/true|false/.test(m)) {\n return '<span class="body-json-bool">' + m + '</span>';\n }\n\n if (/null/.test(m)) {\n return '<span class="body-json-null">' + m + '</span>';\n }\n\n return '<span class="body-json-num">' + m + '</span>';\n });\n}\n\n// ── Helpers ───────────────────────────────────────────────────────────────────\nfunction esc(s) {\n return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');\n}\n\nfunction decodeTextBody(b64) {\n const bytes = Uint8Array.from(atob(b64), function(c) { return c.charCodeAt(0); });\n\n return new TextDecoder('utf-8').decode(bytes);\n}\n\nfunction sourceInfo(source) {\n if (source === 'proxy') {\n return { cls: 'src-proxy', title: 'Backend (live)' };\n }\n\n if (source === 'proxy-cache') {\n return { cls: 'src-proxy-cache', title: 'Backend (cached)' };\n }\n\n return { cls: 'src-local', title: 'Local (dev server)' };\n}\n\nfunction sourceLetter(source) {\n if (source === 'proxy') {\n return 'P';\n }\n\n if (source === 'proxy-cache') {\n return 'C';\n }\n\n return 'L';\n}\n\n// ── Copy / Save ───────────────────────────────────────────────────────────────\nfunction clipboard(text, btn) {\n navigator.clipboard.writeText(text).then(() => {\n if (!btn) {\n return;\n }\n\n const orig = btn.textContent;\n\n btn.textContent = '✓';\n btn.style.color = 'var(--green)';\n setTimeout(() => {\n btn.textContent = orig;\n btn.style.color = '';\n }, 1500);\n }).catch(() => {});\n}\n\nfunction copyUrl(btn) {\n clipboard(currentEntry ? currentEntry.url : '', btn);\n}\nwindow.copyUrl = copyUrl;\n\nfunction copyHeaders(type, btn) {\n const h = type === 'request' ? (currentEntry && currentEntry.requestHeaders) : (currentEntry && currentEntry.responseHeaders);\n\n if (!h) {\n return;\n }\n\n const text = Object.entries(h).filter(([,v]) => v != null).map(([k,v]) => k + ': ' + (Array.isArray(v) ? v.join(', ') : v)).join('\\n');\n\n clipboard(text, btn);\n}\nwindow.copyHeaders = copyHeaders;\n\nfunction copyBody(type, btn) {\n const b64 = type === 'request' ? (currentEntry && currentEntry.requestBody) : (currentEntry && currentEntry.responseBody);\n\n if (!b64) {\n return;\n }\n\n try {\n clipboard(decodeTextBody(b64), btn);\n } catch(e) {}\n}\nwindow.copyBody = copyBody;\n\nfunction saveBody(type) {\n const b64 = type === 'request' ? (currentEntry && currentEntry.requestBody) : (currentEntry && currentEntry.responseBody);\n const ct = type === 'request' ? (currentEntry && currentEntry.requestContentType) : (currentEntry && currentEntry.responseContentType);\n\n if (!b64) {\n return;\n }\n\n downloadB64(b64, type + '-body.' + fileExt(ct));\n}\nwindow.saveBody = saveBody;\n\nfunction downloadB64(b64, filename) {\n try {\n const bytes = Uint8Array.from(atob(b64), function(c) { return c.charCodeAt(0); });\n const blob = new Blob([bytes]);\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n setTimeout(function() { URL.revokeObjectURL(url); }, 1000);\n } catch(e) {}\n}\n\nfunction fileExt(ct) {\n ct = ((ct || '').split(';')[0]).trim().toLowerCase();\n\n var map = {\n 'application/json': 'json', 'text/html': 'html', 'text/css': 'css',\n 'text/javascript': 'js', 'application/javascript': 'js', 'text/plain': 'txt',\n 'text/xml': 'xml', 'application/xml': 'xml', 'image/png': 'png',\n 'image/jpeg': 'jpg', 'image/gif': 'gif', 'image/svg+xml': 'svg',\n 'image/webp': 'webp', 'application/pdf': 'pdf', 'application/zip': 'zip',\n 'application/x-www-form-urlencoded': 'txt', 'application/octet-stream': 'bin',\n };\n\n return map[ct] || 'bin';\n}\n\nfunction formatBytes(b) {\n b = b || 0;\n\n if (b < 1024) {\n return b + ' B';\n }\n\n if (b < 1024*1024) {\n return (b/1024).toFixed(1) + ' KB';\n }\n\n if (b < 1024*1024*1024) {\n return (b/(1024*1024)).toFixed(1) + ' MB';\n }\n\n return (b/(1024*1024*1024)).toFixed(2) + ' GB';\n}\n\nfunction formatDur(ms) {\n if (ms < 1000) {\n return ms + 'ms';\n }\n\n return (ms/1000).toFixed(2) + 's';\n}\n\nfunction methodClass(m) {\n const map = { GET:'m-GET', POST:'m-POST', PUT:'m-PUT', PATCH:'m-PATCH', DELETE:'m-DELETE', HEAD:'m-HEAD', OPTIONS:'m-OPTIONS' };\n\n return map[m] || 'm-other';\n}\n\nfunction statusClass(s) {\n if (!s) {\n return 's-pending';\n }\n\n const c = Math.floor(s / 100);\n\n return ['','','s-2xx','s-3xx','s-4xx','s-5xx'][c] || '';\n}\n\n// ── Polling ───────────────────────────────────────────────────────────────────\nfetchList();\nsetInterval(fetchList, 2000);\n\n})();\n<\/script>\n</body>\n</html>`}(ft.captureLimit))}))}function vt(e){return Array.isArray(e)?e[0]??"":String(e??"")}function bt(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<1073741824?`${(e/1048576).toFixed(1)} MB`:`${(e/1073741824).toFixed(2)} GB`}const wt=["top-left","top-right","bottom-left","bottom-right"];function xt(e,t){const n=e.mi?.mode??"standalone",s=e.app?.type??"template",r=e.mi?.apiVersion??7,i=e.mi?.url??process.env.MI_BACKEND_URL;if(!t)throw new Error("[pp-dev] app.name is required (or set package.json#name)");if(e.mi?.include&&"standalone"!==n)throw console.warn('[pp-dev] mi.include is only valid when mi.mode is "standalone"'),new Error('[pp-dev] mi.include requires mi.mode to be "standalone"');if(!i){if("embedding"===n||"template"===s)throw new Error('[pp-dev] mi.url is required when mi.mode is "embedding" or app.type is "template"');"standalone"===n&&"page"===s&&console.warn("[pp-dev] mi.url is not set — dev server will run without a backend proxy")}if("template"===s&&!e.app?.id)throw new Error('[pp-dev] app.id is required when app.type is "template"');if("page"===s&&i&&("standalone"===n||r>=7)&&!e.app?.id)throw new Error('[pp-dev] app.id is required when backend page data is loaded for app.type "page"');if(void 0!==e.devPanel?.position&&!wt.includes(e.devPanel.position))throw new Error(`[pp-dev] devPanel.position must be one of: ${wt.join(", ")}`)}function kt(e,t){const{mi:n={},app:s={},proxy:r={},build:i={},sync:a={},inspector:o={},devPanel:l={}}=e,c=n.mode??"standalone",d=s.type??"template",p=n.apiVersion??7,u="standalone"===c;let h=!1;"top-bar"===n.include?h=!0:"shared-components"===n.include&&(h={addSharedComponentsScripts:!0,addRootElement:!1});const m="page"===d,f=s.name??t,g="VERSION-v{packageversion}-{currentDate}.json";let y;const v=i.zip;let b;y=!1!==v&&(!0===v||void 0===v?{outFileName:`${f}.zip`,outDir:"dist-zip"}:{outFileName:v.fileName??`${f}.zip`,outDir:v.outDir??"dist-zip",...v.inDir?{inDir:v.inDir}:{}});const w=i.versionFile;let x;b=!1!==w&&(!0===w||void 0===w?{versionFileTemplate:g,enabled:!0}:{versionFileTemplate:w.fileNameTemplate??g,enabled:w.enabled??!0});const k=i.imageOptimisations;return x=!1!==k&&(!0===k||void 0===k?{}:k),{templateName:f,backendBaseURL:n.url??process.env.MI_BACKEND_URL,appId:s.id,templateLess:m,miHudLess:u,integrateMiTopBar:h,enableProxyCache:r.cache??!0,proxyCacheTTL:r.cacheTtl??6e5,disableSSLValidation:r.tls?.allowSelfSigned??!1,imageOptimizer:x,outDir:i.outDir??"dist",distZip:y,versionPlugin:b,syncBackupsDir:a.backupsDir??"backups",v7Features:p>=7,personalAccessToken:n.token??process.env.MI_ACCESS_TOKEN,inspectorEnabled:o.enabled??!0,inspectorMaxMemory:o.maxMemory??1073741824,inspectorCaptureLimit:o.captureLimit??10485760,devPanelPosition:l.position??"bottom-right",devPanelHidden:l.hidden??!1,devPanelAutoHide:l.autoHide??!1}}function Et(e){const{templateName:t,templateLess:n,backendBaseURL:s,miHudLess:r,appId:i,enableProxyCache:a,proxyCacheTTL:o,disableSSLValidation:l,distZip:c,versionPlugin:d,syncBackupsDir:p,v7Features:u,personalAccessToken:h,inspectorEnabled:m,inspectorMaxMemory:f,inspectorCaptureLimit:g,devPanelPosition:y,devPanelHidden:v,devPanelAutoHide:b}=e||{};let w=!0;return process.cwd(),{name:"vite-pp-dev",apply:"serve",config:e=>(e.clientInjectionPlugin={backendBaseURL:s,appId:i,templateLess:n,v7Features:u,devPanelPosition:y,devPanelHidden:v,devPanelAutoHide:b},u&&(e.base=`/pl/${t}`),e),transformIndexHtml:async(e,t)=>{const n={html:e,tags:[]};return w&&(w=!1,n.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),n},configureServer:y=>{let v=y.config.base;v.endsWith("/")||(v+="/");const b=v.substring(0,v.lastIndexOf("/"));if(y.middlewares.use(Xe(v,t)),!1!==m){const e=new dt(f);y.middlewares.use(ht(e,g));const t=lt();yt(t,e,g),y.middlewares.use((e,n,s)=>{e.url?.startsWith("/@api/")||e.url?.startsWith(mt)?t(e,n,s):s()})}if(s){const m=new URL(s).host,f={headers:{host:m,referer:s,origin:s.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},appId:i,templateLess:n,disableSSLValidation:l,v7Features:u,personalAccessToken:h??process.env.MI_ACCESS_TOKEN},g=new ke(s,f);if(a){let e=+o;(!e||Number.isNaN(e)||e<0)&&(e=6e5),y.middlewares.use(Ke({devServer:y,ttl:e}))}const w=new RegExp(`^((${v})|/)$`);y.middlewares.use(rt(w,g,Object.assign({},e,{appId:i,appBase:v}))),y.middlewares.use(le({baseURL:s,proxyIgnore:["/@vite","/@metricinsights","/@",b],disableSSLValidation:l,miAPI:g,templateName:t}));const x=(e,t,n,s,r)=>{const i={error:n};s&&(i.details=s),r&&(i.code=r),e.status(t).json(i).end()},k=(e,t,n)=>{y.config.logger.error(`${n} token validation error:`,t);const s=be(t);if(t.tokenErrorInfo){const n=t.tokenErrorInfo;x(e,n.status||500,n.userFriendlyMessage,n.message,n.code)}else{let t,r,i;switch(s.code){case"SESSION_EXPIRED":t=412,r="personal"===n?"Personal access token expired":"Session expired",i="personal"===n?"PAT_EXPIRED":"SESSION_EXPIRED";break;case"UNAUTHORIZED":t=401,r="Unauthorized",i="UNAUTHORIZED";break;case"FORBIDDEN":t=403,r="Access forbidden",i="FORBIDDEN";break;default:t=500,r="Internal server error",i=s.code}const a="personal"===n&&"PAT_EXPIRED"===i?"Your personal access token has expired. Please generate a new token from the portal.":"regular"===n&&"SESSION_EXPIRED"===i?"Your portal session has expired. Please refresh your token or re-authenticate.":s.userFriendlyMessage;x(e,t,r,a,i)}return null},E=lt();E.post("/@api/login",async(e,t,n)=>{const{token:s,tokenType:r}=e.body;if(s)if(y.config.logger.info(`Attempting to validate ${r} token...`),"personal"===r){if(!await g.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?(g.personalAccessToken=s,y.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=>k(t,e,"personal")))return;re(t,"/",302)}else if("regular"===r){if(!await g.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:s},!0).then(e=>e.data?.users?.length?(g.personalAccessToken=void 0,y.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=>k(t,e,"regular")))return;re(t,"/",302)}else x(t,400,"Invalid tokenType",'tokenType must be "personal" or "regular".',"INVALID_TOKEN_TYPE");else x(t,400,"Token is required")}),y.middlewares.use(E);const T=!1!==c?new De(t,Object.assign({backupDir:p},"object"==typeof c?{distZipFolder:c.outDir,distZipFilename:c.outFileName}:void 0,"object"==typeof d?{versionFileTemplate:d.versionFileTemplate}:void 0)):void 0;return new Me(y,{distService:T,miAPI:g}),()=>{y.middlewares.use(Ge(e=>e.split("?")[0].endsWith("index.html"),(e,t)=>Buffer.from(se(m,t.headers.host??"",g.buildPage(e,r)))))}}}}}export{Ye as A,Me as C,De as D,mt as I,ke as M,W as P,dt as R,V,ne as a,X as b,te as c,Y as d,J as e,G as f,K as g,yt as h,ct as i,ht as j,Xe as k,Ke as l,rt as m,kt as n,le as o,Ge as p,Z as q,Re as r,z as s,M as t,se as u,xt as v,Ae as w,Qe as x,Et as y,Ie as z};
2
- //# sourceMappingURL=plugin-ClbE2EOy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-ClbE2EOy.js","sources":["../../../src/constants.ts","../../../src/lib/logger.ts","../../../src/lib/helpers/color.helper.ts","../../../src/lib/helpers/url.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/version-manifest.ts","../../../src/lib/helpers/zip.helper.ts","../../../src/lib/next-build-runner.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/lib/request-store.ts","../../../src/lib/request-capture.middleware.ts","../../../src/lib/request-inspector.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,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_DEV_HMR_WS_PATH","PATH_PAGE_PREFIX","PATH_TEMPLATE_PREFIX","PATH_TEMPLATE_LOCAL_PREFIX","PP_DEV_NEXT_BUILD_ENV_VAR","PP_DEV_CONFIG_NAMES","storage","Map","DEFAULT_LOGGER_KEY","createLogger","level","has","get","logger","cL","set","colors","createColors","urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","redirect","res","statusCode","setHeader","end","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","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","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","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","appId","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","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","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","BUILD_MANIFEST_FILE_NAME","walkDir","dir","baseDir","excludeFiles","Set","readdirSync","withFileTypes","files","entry","fullPath","join","relativePath","relative","isDirectory","push","isFile","sha256OfContent","filePath","createHash","update","digest","stripUrlUserInfo","normalizeRepositoryUrl","normalizedUrl","scpLikeMatch","repositoryPath","sshProtocolMatch","gitProtocolMatch","writeBuildVersionManifest","config","outDir","versionFileTemplate","packageVersion","outDirResolved","cwd","statSync","throwIfNoEntry","manifestDate","resolvedVersionFileTemplate","versionFileName","currentDate","resolveVersionFileName","allPaths","checksum","hashesConcatenated","sort","map","computeChecksum","buildFingerprint","normalizedEntries","computeBuildFingerprint","helperVersion","modulePath","currentDir","dirname","packageJsonPath","packageStat","packageJson","parentDir","resolveHelperVersion","branchName","configBranchName","ciBranchEnvVars","variableName","currentBranchName","execSync","encoding","stdio","resolveBranchName","packageBranchName","manifest","schemaVersion","date","repositoryUrl","packageRepositoryUrl","manifestPath","buildManifestPath","buildManifest","manifestType","generatedAt","versionFile","versionFileSchemaVersion","compat","versionFileRequired","writeFileSync","zipDirectoryToBuffer","zip","JSZip","addDir","current","fs","readdir","full","readFile","generateAsync","compression","runNextBuildProcess","projectRoot","reject","nextBin","nextPkgPath","createRequire","proc","child_process","spawn","execPath","NODE_ENV","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","pluginPath","node_modules_path","metaDirPath","metaFilePath","TEMPLATE_VARIABLES_FILE_NAME","DistService","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","nextBuild","syncOptions","syncMeta","checkMeta","stat","mkdir","readMetaFile","writeMetaFile","meta","writeFile","getLatestSavedBackup","lastBackupName","backupPath","backupName","getBackupMeta","pathToPosix","normalizeExtractedRootDir","extractedDir","listFilesRecursive","rootDir","buildManifestChecksum","crypto","buildBackupFingerprint","versionFileTemplateMatcher","placeholderPattern","segments","lastIndex","exec","staticPart","trailingStaticPart","isTemplateVariablesBasename","fileBasename","pickTemplateVariablesFromBackupZip","relativePaths","contentRootDir","basename","absolutePath","fileData","actualHash","manifestHash","resolveBackupAnalysisFromZip","backupFile","tempDir","mkdtemp","os","tmpdir","zipPath","recursive","extractZip","buildManifestCandidates","filter","buildManifestAbsolutePath","versionManifestPath","requestedVersionFile","exactMatchCandidates","basenameMatchCandidates","resolvedCandidates","versionFileMatcher","versionManifestCandidates","normalizedManifestFiles","templateVariables","manifestChecksum","manifestFileActualHashes","versionManifestHashMismatches","versionManifestAbsolutePath","expectedHash","expected","actual","mismatchedManifestPaths","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","buildNextAssets","buildCommand","msg","String","saveBackupAndBuild","distDir","ClientService","server","eventMap","syncActionResolvers","onInfoDataRequest","bind","onTemplateSync","onTemplateSyncActionResponse","init","ws","event","handler","clearAllPendingSyncActions","resolveSyncAction","requestId","approved","clearTimeout","timeoutId","delete","_data","client","send","payload","requestSyncAction","randomUUID","timeoutMs","syncActionTimeoutMs","distService","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","liveKeys","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","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","authProvider","apiResponseCache","getCachedResponse","cached","setCachedResponse","DEFAULT_REDIRECT_URL","initLoadPPData","applyUrlRegExp","mi","appBase","isNeedTemplateLoad","requestPath","isApplyRequest","isAppNavigation","normalizedBase","isUnderBase","dest","isHtmlDocumentRequest","authState","handleTemplateLoad","encodeURIComponent","handlePageInfoOnly","options","redirectOnAuthFailure","clear","success","handleLoadError","loadPageData","operationType","isAuthError","fullRedirectUrl","createInternalServer","app","express","use","urlencoded","extended","internalServer","RequestStore","insertOrder","maxMemory","allocateId","storedEntry","bodyBytes","requestBody","responseBody","requestBodyTruncated","responseBodyTruncated","oldest","shift","old","list","duration","source","requestSize","toUpperCase","q","limit","isFinite","offset","Math","max","memoryUsage","SKIP_PREFIXES","SKIP_EXACT","createRequestCaptureMiddleware","store","captureLimit","startTime","reqChunks","reqSize","reqTruncated","origReqEmit","emit","buf","resChunks","resSize","resTruncated","origWrite","origEnd","captureChunk","ArrayBuffer","isView","buffer","byteOffset","getWriteEncoding","detectSource","finalized","requestHeaders","responseHeaders","finalize","INSPECTOR_PATH","routesInstalled","registerInspectorRoutes","activeStore","query","parsedLimit","parseInt","items","requests","total","_req","memoryUsageFormatted","formatBytes","maxMemoryFormatted","requestContentType","normalizeHeaderValue","responseContentType","requestBodySize","responseBodySize","ok","getInspectorHtml","bytes","DEV_PANEL_POSITIONS","validatePPDevConfig","miMode","mode","appType","apiVersion","miUrl","MI_BACKEND_URL","include","devPanel","position","normalizePPDevConfig","proxy","build","sync","inspector","integrateMiTopBar","addSharedComponentsScripts","addRootElement","resolvedName","defaultVersionFileTemplate","distZip","zipCfg","versionPlugin","outFileName","fileName","inDir","vfCfg","imageOptimizer","fileNameTemplate","imgCfg","imageOptimisations","backendBaseURL","enableProxyCache","proxyCacheTTL","cacheTtl","tls","allowSelfSigned","syncBackupsDir","backupsDir","MI_ACCESS_TOKEN","inspectorEnabled","inspectorMaxMemory","inspectorCaptureLimit","devPanelPosition","devPanelHidden","hidden","devPanelAutoHide","autoHide","vitePPDev","isFirstRequest","apply","transformIndexHtml","_html","_ctx","html","tag","injectTo","children","random","configureServer","lastIndexOf","middlewares","reqStore","baseUrlHost","miConfig","isIndexRegExp","proxyPassMiddleware","sendErrorResponse","details","handleTokenValidationError","enhancedErrorInfo","errorCode","Authorization","user","user_id","Token","users","backupDir"],"mappings":"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"}