@metricinsights/pp-dev 1.5.0-beta.20 → 1.5.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -9
- package/dist/README.md +15 -9
- package/dist/cjs/auth.provider-CyXyBAm3.js +2 -0
- package/dist/cjs/auth.provider-CyXyBAm3.js.map +1 -0
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/{index-DFNyrsll.js → index-CeIQtamz.js} +2 -2
- package/dist/cjs/index-CeIQtamz.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/migrate-C1svbbPB.js +2 -0
- package/dist/cjs/{migrate-D_y8SIv9.js.map → migrate-C1svbbPB.js.map} +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/plugin.js +1 -1
- package/dist/cjs/request-capture.middleware-Chm27VXb.js +2 -0
- package/dist/cjs/request-capture.middleware-Chm27VXb.js.map +1 -0
- package/dist/cjs/{version-manifest-DsHoDq-U.js → version-manifest-C15hpGGV.js} +2 -2
- package/dist/cjs/{version-manifest-DsHoDq-U.js.map → version-manifest-C15hpGGV.js.map} +1 -1
- package/dist/cjs/version-plugin-DtPQBhEK.js +2 -0
- package/dist/cjs/{version-plugin-Cm56j0DZ.js.map → version-plugin-DtPQBhEK.js.map} +1 -1
- package/dist/esm/auth.provider-Cq0EuReh.js +2 -0
- package/dist/esm/auth.provider-Cq0EuReh.js.map +1 -0
- package/dist/esm/cli.js +1 -1
- package/dist/esm/index-DioJ4R68.js +2 -0
- package/dist/esm/index-DioJ4R68.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/migrate-FpJKfYgz.js +2 -0
- package/dist/esm/{migrate-BHq9PUZz.js.map → migrate-FpJKfYgz.js.map} +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/plugin.js +1 -1
- package/dist/esm/plugin.js.map +1 -1
- package/dist/esm/request-capture.middleware-BNCdPdkF.js +2 -0
- package/dist/esm/request-capture.middleware-BNCdPdkF.js.map +1 -0
- package/dist/esm/{version-manifest-CuZrGM-C.js → version-manifest-qxz5FXuG.js} +2 -2
- package/dist/esm/{version-manifest-CuZrGM-C.js.map → version-manifest-qxz5FXuG.js.map} +1 -1
- package/dist/esm/version-plugin-b2xMXK9M.js +2 -0
- package/dist/esm/{version-plugin-CbEJf2b3.js.map → version-plugin-b2xMXK9M.js.map} +1 -1
- package/dist/types/index.d.ts +3 -2
- package/package.json +1 -1
- package/dist/cjs/auth.provider-CnmH_J2r.js +0 -2
- package/dist/cjs/auth.provider-CnmH_J2r.js.map +0 -1
- package/dist/cjs/index-DFNyrsll.js.map +0 -1
- package/dist/cjs/migrate-D_y8SIv9.js +0 -2
- package/dist/cjs/request-capture.middleware-BUpxzWDS.js +0 -2
- package/dist/cjs/request-capture.middleware-BUpxzWDS.js.map +0 -1
- package/dist/cjs/version-plugin-Cm56j0DZ.js +0 -2
- package/dist/esm/auth.provider-B9ybFjL5.js +0 -2
- package/dist/esm/auth.provider-B9ybFjL5.js.map +0 -1
- package/dist/esm/index-ypcJ5r5C.js +0 -2
- package/dist/esm/index-ypcJ5r5C.js.map +0 -1
- package/dist/esm/migrate-BHq9PUZz.js +0 -2
- package/dist/esm/request-capture.middleware-VCmWYJoS.js +0 -2
- package/dist/esm/request-capture.middleware-VCmWYJoS.js.map +0 -1
- package/dist/esm/version-plugin-CbEJf2b3.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{inflateSync as e,brotliDecompressSync as t,unzipSync as s,deflateSync as n,brotliCompressSync as r,gzipSync as a}from"zlib";import{l as i,c as o,a as c,f as l,e as d,q as u,g as p,j as h,o as m,s as g}from"./auth.provider-Cq0EuReh.js";import{URL as f,fileURLToPath as y}from"url";import w,{isAxiosError as v}from"axios";import b from"node:http";import k from"node:https";import{g as $,w as x}from"./version-manifest-qxz5FXuG.js";import{createProxyMiddleware as S,responseInterceptor as A}from"http-proxy-middleware";import{StringDecoder as E}from"node:string_decoder";import*as T from"path";import*as I from"fs";import{promises as N}from"fs";import*as j from"crypto";import{randomUUID as P}from"crypto";import*as F from"process";import*as R from"os";import L from"jszip";import*as B from"child_process";import{createRequire as C}from"module";import{createHash as O,randomUUID as M}from"node:crypto";import U from"node:fs";import D from"node:os";import H from"node:path";import _ from"express";const V="/@pp-dev-hmr",z=T.dirname(i),q={".js":"text/javascript; charset=utf-8",".css":"text/css; charset=utf-8",".map":"application/json; charset=utf-8"};function W(e,t){const s=t.clientDir??z,n=new Set([`${t.name}.js`,`${t.name}.css`,`${t.name}.js.map`,`${t.name}.css.map`]);e.get(t.path,(e,n)=>{I.readFile(T.join(s,`${t.name}.html`),"utf-8",(e,s)=>{if(e)return void n.status(500).type("text/plain").end(`${t.name} page not built (${e.message})`);const r=t.values?.()??{};n.setHeader("Content-Type","text/html; charset=utf-8"),n.setHeader("Cache-Control","no-cache"),n.end(s.replace(/\{\{(\w+)\}\}/g,(e,t)=>r[t]??e))})}),e.get(`${t.path}/:file`,(e,t,r)=>{const a=e.params.file;n.has(a)?I.readFile(T.join(s,a),(e,s)=>{e?r():(t.setHeader("Content-Type",q[T.extname(a)]??"application/octet-stream"),t.setHeader("Cache-Control","no-cache"),t.end(s))}):r()})}const J="/@pp-dev/inspector",Z=new WeakMap;function K(e){const t=Array.isArray(e)?e[0]:e;return"string"==typeof t?t:void 0}function G(e,t,s=10485760,n=z){const r=Z.get(e);if(r)return r.store=t,void(r.captureLimit=s);const a={store:t,captureLimit:s};Z.set(e,a),e.get("/@api/requests",(e,t)=>{const{store:s}=a,n=K(e.query.limit),r=K(e.query.offset),i=K(e.query.method),o=K(e.query.search),c=void 0!==n?parseInt(n,10):void 0,l=s.list({limit:Number.isFinite(c)?c:500,offset:void 0!==r&&Number.isFinite(parseInt(r,10))?parseInt(r,10):void 0,method:i,search:o});t.json({requests:l,total:s.size,memoryUsage:s.memoryUsage,maxMemory:s.maxMemory})}),e.get("/@api/requests/stats",(e,t)=>{const{store:s}=a;t.json({total:s.size,memoryUsage:s.memoryUsage,maxMemory:s.maxMemory,memoryUsageFormatted:Y(s.memoryUsage),maxMemoryFormatted:Y(s.maxMemory)})}),e.get("/@api/requests/:id",(e,t)=>{const s=a.store.get(e.params.id);if(!s)return void t.status(404).json({error:"Not found",id:e.params.id});const n=X(s.requestHeaders["content-type"]),r=X(s.responseHeaders["content-type"]);t.json({id:s.id,timestamp:s.timestamp,method:s.method,url:s.url,statusCode:s.statusCode,duration:s.duration,source:s.source,user:s.user,requestHeaders:s.requestHeaders,requestBody:s.requestBody?s.requestBody.toString("base64"):null,requestBodySize:s.requestBody?.byteLength??0,requestBodyTruncated:s.requestBodyTruncated,requestContentType:n,responseHeaders:s.responseHeaders,responseBody:s.responseBody?s.responseBody.toString("base64"):null,responseBodySize:s.responseBody?.byteLength??0,responseBodyTruncated:s.responseBodyTruncated,responseContentType:r})}),e.delete("/@api/requests",(e,t)=>{a.store.clear(),t.json({ok:!0})}),W(e,{path:J,name:"request-inspector",clientDir:n,values:()=>({captureLimit:String(a.captureLimit)})})}function X(e){return Array.isArray(e)?e[0]??"":String(e??"")}function Y(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`}function Q(e){return"string"==typeof e?e:void 0}function ee(e,t){return"string"==typeof e?Buffer.from(e,t):e instanceof Uint8Array?Buffer.from(e):null}function te(i,c){return async(l,d,u)=>{if(await i(l.url??"",l,d)){const i=o(),p=d.end;if("HEAD"===l.method)return d.end=function(e,t,s){const n=[e,t,s].find(e=>"function"==typeof e);return d.headersSent||d.removeHeader("content-length"),p.call(this,n),this},void u();i.info(`Rewrite response for ${l.url}`);const h=[];d.write=function(e,t,s){const n=ee(e,Q(t));n&&h.push(n);const r="function"==typeof t?t:s;return"function"==typeof r&&process.nextTick(r),!0},d.end=function(o,u,m){"function"==typeof o&&(m=o,o=void 0);const g=ee(o,Q(u));g&&h.push(g);const f="function"==typeof u?u:m,y=d.getHeader("content-encoding"),w=function(n,r){switch(r){case"gzip":return s(n);case"br":return t(n);case"deflate":return e(n);default:return n}}(Buffer.concat(h),y),v=function(e,t){switch(t){case"gzip":return a(e);case"br":return r(e);case"deflate":return n(e);default:return e}}(c(w,l,d),y);return void 0!==d.getHeader("content-length")&&(d.headersSent?i.warn(`Rewrite response for ${l.url}: headers already sent, Content-Length left as is`):d.setHeader("content-length",v.length)),p.call(this,v,f),this}}u()}}const se=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),ne=new Map,re=new Map;const ae=(e,t,s)=>{let n=ne.get(e);if(!n){const t=/:\d+$/.test(e)?"":"(?::(?<port>\\d+))?";n=new RegExp(`(?<keep>!!)?(?<url>http(?<secure>s)?(?<slashes>:(?:\\\\)?/(?:\\\\)?/)${se(e)}${t})`,"gi"),ne.set(e,n)}return s.replace(n,(...e)=>{const{keep:s,url:n,secure:r,slashes:a,port:i}=e.at(-1);return s||i&&i!==(r?"443":"80")?n:`http${a}${t}`})},ie=(e,t,s)=>{const n=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),r=new RegExp(`${e}`,"gi"),a=s.replace(n,t);return a===s?a.replace(r,t):a},oe=(e,t,s)=>{e.setHeader("location",t),e.statusCode=s,e.end()};function ce(e){return e.split("?")[0]}function le(e,t){const s=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,n=o();return(r,a,i)=>{const o=new f(r.url??"","http://localhost"),{pathname:u,search:p}=o,h=["/",s];if(t&&(h.push(`${l}/${t}`),h.push(`${d}/${t}`)),h.includes(u)){const t=`${e}${p}`;return n.info(c.yellow(`Redirecting to: ${t}`)),oe(a,t,302)}i()}}class de{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 ue extends de{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.download(this.getDownloadUrl(e),t)}async uploadPageAssets(e,t,s){return this.upload(this.getUploadUrl(e),t,s)}async downloadTemplateAssets(e,t){return this.download(this.getDownloadTemplateUrl(e),t)}async uploadTemplateAssets(e,t,s){return this.upload(this.getUploadTemplateUrl(e),t,s)}async download(e,t){return this.axios.get(e,{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then(e=>e.data)}async upload(e,t,s){const n=new FormData;return n.append("file",new File([new Uint8Array(t)],"file.zip",{type:"application/zip"}),"file.zip"),this.axios.post(e,n,{withCredentials:!0,headers:Object.assign({},s,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:e})})}).then(e=>e.data)}}class pe extends ue{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 he="Something went wrong when fetching page data",me="Something went wrong when fetching page template data",ge="Something went wrong when fetching page variables",fe=" The instance may be down or in maintenance mode. Please try again later.",ye=[he,me,ge];function we(){return new Error(`${he}.${fe}`)}function ve(){return new Error(`${me}.${fe}`)}function be(e){return e instanceof Error&&ye.some(t=>e.message.includes(t))}class ke extends de{async getAll(e){const t=(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;if("object"!=typeof t||null===t||!Array.isArray(t.pages))throw we();return t.pages}async get(e,t){const s=(await this.axios.get(`/api/page/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data;if("object"!=typeof s||null===s||"object"!=typeof s.page||null===s.page)throw we();return s.page}async getPageContent(e,t){return(await this.axios.get(`/p/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"text/html","content-type":"application/json"})})).data}async create(e,t){const s=(await this.axios.post("/api/page",e,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data;if("object"!=typeof s||null===s||"object"!=typeof s.page||null===s.page)throw we();return s.page}}class $e extends de{async getAll(e,t){const s=(await this.axios.get("/api/page_template",{withCredentials:!0,headers:Object.assign({},t,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"}),params:{internal_name:e}})).data;if("object"!=typeof s||null===s||!Array.isArray(s.page_templates))throw ve();return s.page_templates}async get(e,t){const s=(await this.axios.get(`/api/page_template/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data;if("object"!=typeof s||null===s||"object"!=typeof s.page_template||null===s.page_template)throw ve();return s.page_template}}class xe extends de{async getById(e,t){const s=(await this.axios.get("/api/page_variable",{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"}),params:{page_id:e}})).data;if("object"!=typeof s||null===s)throw new Error(`${ge}.${fe}`);return function(e){let t=e;if("string"==typeof e)try{t=JSON.parse(e)}catch{throw new TypeError('Page variable response contains invalid JSON in "tags".')}if(!Array.isArray(t))throw new TypeError('Page variable response must contain a "tags" array.');const s=t.findIndex(e=>{return!("object"==typeof(t=e)&&null!==t&&"string"==typeof t.name&&"string"==typeof t.value);var t});if(-1!==s)throw new TypeError(`Page variable response contains a malformed entry at index ${s}.`);return t}(s.tags)}async updateById(e,t,s){await this.axios.put("/api/page_variable",{tags:JSON.stringify(t)},{withCredentials:!0,headers:Object.assign({},s,{accept:"application/json","content-type":"application/json"}),params:{page_id:e}})}}function Se(e){if(e.socket?.encrypted)return!0;const t=e.headers?.["x-forwarded-proto"],s=Array.isArray(t)?t[0]:t;return"string"==typeof s&&"https"===s.split(",",1)[0].trim().toLowerCase()}function Ae(e,t){const[s,...n]=e.split(";"),r=n.map(e=>e.trim()).filter(e=>{if(!e)return!1;const s=e.split("=",1)[0].trim().toLowerCase();return"domain"!==s&&(t||"secure"!==s)}).map(e=>!t&&/^samesite\s*=\s*none$/i.test(e)?"SameSite=Lax":e);return[s.trim(),...r].join("; ")}const Ee="metric_insights_session";function Te(e,t){for(const s of e){const e=s.indexOf("=");if(-1!==e&&s.slice(0,e).trim()===t)return s.slice(e+1).trim()}}function Ie(e,t){return e?Te(e.split(";"),t):void 0}function Ne(e,t){if(void 0===e||"number"==typeof e)return;return Te((Array.isArray(e)?e:[e]).map(e=>e.split(";",1)[0]),t)}function je(e,t){return void 0===e?e:Array.isArray(e)?e.map(e=>Ae(e,t)):Ae(e,t)}const Pe=function(e){const t={personal:{placeholder:"API Token",label:"API Token",path:"/api-token"},regular:{placeholder:"Legacy Token",label:"Legacy Token",path:"/api/get_token"}};function s(s,n,r){const a=t[s],i=document.createElement("a");i.href=`https://${e}${a.path}`,i.target="_blank",i.style.color="#007bff",i.style.textDecoration="none",i.textContent="here",n.placeholder=a.placeholder,r.replaceChildren(`You can get the ${a.label} `,i)}function n(e,t){t.textContent=e,t.classList.add("show")}function r(e){e.classList.remove("show")}function a(e,t,s,a){s.addEventListener("click",async s=>{if(s.preventDefault(),r(a),!t.value.trim())return n(`${t.placeholder} is required`,a),void t.focus();const i=document.getElementById("token-type-switcher"),o=i?.querySelector(".token-type-option.active"),c=o?.dataset.value||"personal";await async function(e,t,s,r){try{s.classList.add("loading");const a=await fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:t}),redirect:"follow"}),i=a.url&&new URL(a.url,window.location.origin);if(!i||i.pathname.startsWith("/login")||i.pathname.startsWith("/@api/"))try{const e=await a.json();n(`Login failed: ${e?.error||"Unknown error occurred"}`,r)}catch(e){n("Login failed: Unable to parse response",r)}else window.location.href=a.url}catch(e){n("Login failed: Network error. Please check your connection.",r)}finally{s.classList.remove("loading")}}(t.value.trim(),c,e,a)}),t.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),s.click())}),t.addEventListener("input",()=>{r(a)})}function i(e){const t=e.firstChild;if(!t)return;const n=t.lastChild?.cloneNode(!0);if(!n)return;n.innerHTML="";const r=n.cloneNode(!0);r.innerText="OR",r.setAttribute("role","separator"),r.setAttribute("aria-label","Alternative login method");const i=n.cloneNode(!0),o=document.createElement("div"),c=document.createElement("style");c.textContent="\n.helper-login-wrapper {\n font-family: Arial, sans-serif;\n color: #222;\n padding: 8px;\n background-color: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #ddd;\n width: 100%;\n max-width: 400px;\n margin: 0 auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.helper-login-wrapper .title {\n font-weight: bold;\n font-size: 18px;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.helper-login-wrapper .control {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.helper-login-wrapper .control input {\n border: 1px solid #ddd;\n border-radius: 4px;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n height: 26px;\n padding: 0 8px;\n font-size: 14px;\n}\n\n.helper-login-wrapper .control input:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.helper-login-wrapper .control .caption {\n font-size: 12px;\n color: #666;\n text-align: center;\n}\n\n.helper-login-wrapper .footer {\n margin-top: 16px;\n text-align: center;\n}\n\n.helper-login-wrapper .footer .btn.submit {\n background-color: #007bff;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n width: 100%;\n font-size: 14px;\n transition: background-color 0.3s;\n height: 26px;\n font-weight: 500;\n}\n\n.helper-login-wrapper .footer .btn.submit:hover {\n background-color: #0056b3;\n}\n\n.helper-login-wrapper .footer .btn.submit:disabled {\n background-color: #6c757d;\n cursor: not-allowed;\n}\n\n.helper-login-wrapper .token-type-switcher {\n display: flex;\n border: 1px solid #ccc;\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 12px;\n width: 100%;\n}\n\n.helper-login-wrapper .token-type-option {\n padding: 4px 8px;\n cursor: pointer;\n background-color: #f8f9fa;\n color: #666;\n font-size: 12px;\n text-align: center;\n transition: background-color 0.2s, color 0.2s;\n border-right: 1px solid #ccc;\n flex: 1;\n user-select: none;\n}\n\n.helper-login-wrapper .token-type-option:last-child {\n border-right: none;\n}\n\n.helper-login-wrapper .token-type-option.active {\n background-color: #007bff;\n color: white;\n font-weight: bold;\n}\n\n.helper-login-wrapper .token-type-option:not(.active):hover {\n background-color: #e9ecef;\n}\n\n.helper-login-wrapper .error-message {\n color: #dc3545;\n font-size: 12px;\n text-align: center;\n margin-top: 8px;\n display: none;\n}\n\n.helper-login-wrapper .error-message.show {\n display: block;\n}\n\n.helper-login-wrapper .loading {\n opacity: 0.6;\n pointer-events: none;\n}\n",document.head.appendChild(c),o.innerHTML='\n<div class="helper-login-wrapper" role="form" aria-label="PP Dev Helper Login">\n <div class="title" role="heading" aria-level="2">PP Dev Helper</div>\n\n <div class="token-type-switcher" id="token-type-switcher" role="tablist" aria-label="Token type selection">\n <div class="token-type-option active" data-value="personal" role="tab" aria-selected="true" tabindex="0">\n API Token\n </div>\n <div class="token-type-option" data-value="regular" role="tab" aria-selected="false" tabindex="0">\n Legacy Token\n </div>\n </div>\n\n <div class="control">\n <input \n type="password" \n id="helper-token" \n placeholder="API Token"\n aria-label="Token input"\n aria-describedby="token-caption"\n >\n <span class="caption" id="token-caption"></span>\n </div>\n\n <div class="error-message" id="error-message" role="alert" aria-live="polite"></div>\n\n <div class="footer">\n <button id="helper-token-submit" class="btn submit" type="button">\n Token Login\n </button>\n </div>\n</div>',i.appendChild(o),t.appendChild(r),t.appendChild(i);const l=document.getElementById("token-type-switcher"),d=document.getElementById("helper-token"),u=document.getElementById("token-caption"),p=document.getElementById("helper-token-submit"),h=document.getElementById("error-message"),m=o.querySelector(".helper-login-wrapper");l&&d&&u&&p&&h&&m?(!function(e,t,n){const r=e.querySelectorAll(".token-type-option"),a=e=>{const a=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"),s(a,t,n)};r.forEach(e=>{e.addEventListener("click",e=>{const t=e.currentTarget;a(t)}),e.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),a(e))})})}(l,d,u),a(m,d,p,h),s("personal",d,u)):console.error("Failed to find required form elements")}const o='#mi-react-root form:not([id]):has(input[name="login"]):has(input[name="password"])',c=new MutationObserver(e=>{for(const t of e)if("childList"===t.type){const e=document.querySelector(o);if(e){c.disconnect(),i(e);break}}});c.observe(document.body,{childList:!0,subtree:!0});const l=document.querySelector(o);l&&(c.disconnect(),i(l))};function Fe(e){const{message:t,response:s}="object"==typeof e&&null!==e?e:{},n="number"==typeof s?.status?s.status:0,r=s?.data?.message;return"string"==typeof r&&r?{status:n,message:r}:"string"==typeof t&&t?{status:n,message:t}:{status:n,message:"string"==typeof e&&e?e:"Unknown error"}}function Re(e){const{status:t,message:s}=Fe(e);switch(t){case 412:{const e=s.toLowerCase();return e.includes("session expired")||e.includes("session has expired")?{status:t,message:s,code:"SESSION_EXPIRED",userFriendlyMessage:"Your session has expired",suggestions:["Refresh your token in the portal","Re-authenticate with the portal","Check if your token has been revoked","Ensure your token has the correct permissions"]}:{status:t,message:s,code:"AUTH_FAILED",userFriendlyMessage:"Authentication failed",suggestions:["Verify your token is correct","Check token permissions","Ensure the token hasn't expired","Try generating a new token"]}}case 401:return{status:t,message:s,code:"UNAUTHORIZED",userFriendlyMessage:"Unauthorized access",suggestions:["Check if your token is valid","Verify you have the required permissions","Ensure the token hasn't been revoked","Try logging in again"]};case 403:return{status:t,message:s,code:"FORBIDDEN",userFriendlyMessage:"Access forbidden",suggestions:["Check your user permissions","Verify the portal page ID is correct","Ensure your token has the right scope","Contact your administrator"]};default:return{status:t,message:s,code:"UNKNOWN_ERROR",userFriendlyMessage:"An unexpected error occurred",suggestions:["Check your network connection","Verify the portal URL is correct","Try again in a few moments","Check the portal status"]}}}function Le(e){const{status:t}=Fe(e);return 401===t||403===t||412===t}const Be="[DEV PAGE. DO NOT DELETE]",Ce=new Map;class Oe{#e;#t;#s=null;#n;#r;#a=!1;#i=null;#o=null;#c;#l;#d;#u;#p;internalPageName;appId;templateLess;assetsApi;pageApi;pageTemplateApi;pageVariableApi;logger;constructor(e,t){const{headers:s={},appId:n,templateLess:r=!0,disableSSLValidation:a=!1,v7Features:i=!1,personalAccessToken:c}=t||{};this.#e=s,this.#r=[],this.#n="",this.#c=i,this.#l=c,this.#d=!1,this.#u=Promise.resolve(!1);const l=`${e}:${a}`;if(Ce.has(l))this.#t=Ce.get(l);else{const t=new k.Agent({keepAlive:!1,...a?{rejectUnauthorized:!1}:{}});this.#t=w.create({baseURL:e,headers:s,timeout:3e4,maxRedirects:5,httpAgent:new b.Agent({keepAlive:!1}),httpsAgent:t}),Ce.set(l,this.#t)}this.appId=n,this.templateLess=r,this.assetsApi=new(i?pe:ue)(this.#t),this.pageApi=new ke(this.#t),this.pageTemplateApi=new $e(this.#t),this.pageVariableApi=new xe(this.#t),this.logger=o()}async isTemplateLoaded(){return this.#u}get isV710OrHigher(){return this.#d}get v7Features(){return this.#c}#h(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.#l&&(t.authorization=`Bearer ${this.#l}`),t}#m(e){return e.replace(/[.*+?^${}()|[\]\\\/]/g,"\\$&")}get personalAccessToken(){return this.#l}set personalAccessToken(e){this.#l=e}updateHeaders(e){this.#h(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.#u||this.#s||(this.#u=new Promise(e=>{this.#p=e})),this.#s)return Promise.resolve(this.#s);if(void 0===this.templateLess&&(this.templateLess=!1),this.#c){const t=await this.pageApi.get(this.appId,this.#h(e)).then(e=>(this.logger.info(c.green("Page fetched")),e)).catch(async t=>{if(this.#p(!1),be(t))throw t;throw await this.pageApi.checkAuth(this.#h(e))?(this.logger.error(c.red(`Error fetching page data: ${t.message}\n${t.stack}`)),new Error("The current user does not have access to this page. Check your configuration to ensure app.id is correct.")):t});return void 0!==t.template_id&&(this.#d=!0),this.internalPageName=t.internal_name,this.#s=this.localTemplateHTML,this.#s=this.#s.replace(/%%PAGE TITLE%%/g,t.name||"Local template"),this.logger.info(c.green("Local page template fetched")),this.#p(!0),this.#s}let t=(await this.pageApi.getAll(this.#h(e)).then(e=>(this.logger.info(c.green("Page list fetched")),e)).catch(async t=>{throw this.#p(!1),await this.pageApi.checkAuth(this.#h(e))?(this.logger.error(c.red(`Error fetching page list: ${t.message}\n${t.stack}`)),new Error("Current user does not have access to page list")):t})).find(e=>e.name===Be);return t||(this.logger.warn(c.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:Be,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#h(e)).then(e=>(this.logger.info(c.green("Dev page created")),e)).catch(e=>{throw this.logger.error(c.red(`Error creating dev page: ${e.message}`)),this.#p(!1),new Error(`Error when creating dev page.\n That can be caused by missing permissions or page with name "${Be}" already exists`)})),await this.pageApi.getPageContent(t.internal_name,this.#h(e)).then(e=>(this.#s=e,e)).then(e=>(this.#p(!0),this.logger.info(c.green("Page template fetched")),e)).catch(e=>{throw this.#p(!1),this.logger.error(c.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.#s=await this.getPageTemplate(t),await this.pageApi.get(e,this.#h(t)).then(e=>{const{tags:t="[]",name:s,template:n}=e;if(n&&t){const e=JSON.parse(t);return this.#r=e,this.#a=!0,this.#n=s,e}return this.#r=[],this.#a=!0,this.#n=s,[]}).catch(t=>{if(this.logger.error(c.red(`Error fetching page variables: ${t.message}`)),404===t.response?.status)throw new Error(`Portal Page with id "${e}" not found on instance ${this.#t.getUri()}`);if(401===t.response?.status)throw 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 getLivePageVariables(e=this.#e){if(void 0===this.appId)throw new Error("Cannot fetch live page variables before the page ID is known");const t=this.appId,s=Date.now();this.logger.info(c.cyan(`[page-variables] Fetching live variables for page ID ${t} (page_id lookup)`));const n=await this.pageVariableApi.getById(t,this.#h(e));return this.logger.info(c.green(`[page-variables] Fetched ${n.length} live variable(s) for page ID ${t} in ${Date.now()-s}ms`)),n}async applyPageVariables(e,t=this.#e){if(void 0===this.appId)throw new Error("Cannot apply page variables before the page ID is known");const s=this.appId,n=Date.now();this.logger.info(c.cyan(`[page-variables] Applying ${e.length} variable(s) to page ID ${s} (page_id lookup)`)),await this.pageVariableApi.updateById(s,e,this.#h(t)),this.logger.info(c.green(`[page-variables] Applied variables to page ID ${s} in ${Date.now()-n}ms`))}async listPages(e=this.#e){return this.pageApi.getAll(this.#h(e))}async getPageVariablesFor(e,t=this.#e){return this.pageVariableApi.getById(e,this.#h(t))}get localPageVariables(){return this.templateLess||!this.#a?null:this.#r.map(({name:e,value:t})=>({name:e,value:t}))}get isTemplateLess(){return!!this.templateLess}async reloadPageVariables(e=this.#e){return this.templateLess||void 0===this.appId?null:this.getPageVariables(this.appId,e)}async getPageInfo(e,t){void 0===this.appId&&(this.appId=e);const s=this.#h(t),n=this.appId;try{return this.#c?await this.#g(n,s):await this.#f(n,s)}catch(e){this.#y(e,n)}}async#g(e,t){const s=await this.pageApi.get(e,t);return this.logger.info(c.green("Page fetched")),void 0!==s.template_id&&(this.#d=!0),this.internalPageName=s.internal_name,s}async#f(e,t){return await this.pageApi.get(e,t)}#y(e,t){if(be(e))throw e;if(this.#c&&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(c.red(`Current user does not have access to page with id "${t}" on instance ${this.#t.getUri()}`)),e}buildPage(e,t=!1){let s="string"==typeof e?e:e.toString("utf-8");for(const{regExp:e,value:t}of this.#w())s=s.replace(e,()=>t);if(t){return new($())(s).serialize()}const{before:n,after:r}=this.#v();return n+s+r}#w(){return this.#i?.vars!==this.#r&&(this.#i={vars:this.#r,replacements:this.#r.map(({name:e,value:t})=>({regExp:new RegExp(`\\[${this.#m(e)}\\]`,"g"),value:t}))}),this.#i.replacements}#v(){const e=this.#s,t=this.#n;if(this.#o?.template===e&&this.#o.title===t)return this.#o;const s=new($())(e),{document:n}=s.window,r="%%PLACEHOLDER%%",a=n.createElement("div");a.innerHTML=r;const i=n.querySelector(".main-side");if(i){const e=i.querySelectorAll("script");e.length?i.insertBefore(a,e.item(e.length-1)):i.append(a)}else{const e=n.createElement("div");e.append(a),n.body.append(e)}const o=n.querySelector("head"),c=o.querySelector("title");if(c)c.text=t;else{const e=n.createElement("title");e.textContent=t,o.appendChild(e)}const l=s.serialize(),d=new RegExp(`<div>\\s*${r}\\s*<\\/div>`,"i").exec(l);return this.#o={template:e,title:t,before:l.slice(0,d.index),after:l.slice(d.index+d[0].length)},this.#o}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.#d){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.#d){const s=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(s.id,e,this.#e)}if(t.template)return await this.assetsApi.uploadTemplateAssets(t.template,e,this.#e)}}}async validateCredentials(e){try{const t=e||this.#e;return await this.get("/api/user",t,!0),{isValid:!0}}catch(e){const t=Re(e);return{isValid:!1,error:t.userFriendlyMessage,code:t.code}}}async get(e,t,s=!1,n={}){const r=s?t:Object.assign({},this.#h(this.#e),t);try{return await this.#t.get(e,{headers:r})}catch(e){if("UNKNOWN_ERROR"!==Re(e).code){const t=Re(e);throw n.quiet||(this.logger.error(c.red(`API request failed: ${t.userFriendlyMessage}`)),function(e,t,s){const n=Re(t),r=`[${s}] `;e.error(c.red(`${r}${n.userFriendlyMessage}`)),e.error(c.red(`Status: ${n.status} (${n.code})`)),e.error(c.red(`Details: ${n.message}`)),n.suggestions.length>0&&(e.info(c.yellow("Suggestions:")),n.suggestions.forEach((t,s)=>{e.info(c.yellow(` ${s+1}. ${t}`))}))}(this.logger,e,"API Request")),e.tokenErrorInfo=t,e}throw e}}}const Me=String.raw`[a-z](?:[a-z0-9\-]*[a-z0-9])?`,Ue=new RegExp(`^(?:${Me})$`),De=".localhost";function He(e){return e?e.length>32?"The name must be at most 32 characters long":Ue.test(e)?void 0:'The name may contain only lowercase latin letters, digits and "-", must start with a letter and must not end with "-"':"The name is required"}function _e(e){if(!e)return;const t=e.toLowerCase().replace(/:\d+$/,"");if(!t.endsWith(De))return;const s=t.slice(0,-10);return s&&!s.includes(".")?s:void 0}function Ve(e,t){const s=/:(\d+)$/.exec(e.headers.host??"")?.[1];return`${Se(e)?"https":"http"}://${t?`${t}.`:""}localhost${s?`:${s}`:""}`}const ze=new class{#b=new Map;#k=new Set;#$=new Set;#x=!1;#S=new Set;#A;#E=new Map;#T=new WeakMap;#I;useContext(e){void 0!==this.#I&&this.#I!==e&&this.clear(),this.#I=e}get context(){return this.#I}list(){return[...this.#b.values()]}get(e){return this.#b.get(e)}add(e){const t=He(e.name);if(t)throw new Error(t);if(this.#b.has(e.name))throw new Error(`A user named "${e.name}" already exists`);if("token"===e.kind&&!e.token)throw new Error("A token user needs an API token");const s="session"===e.kind?{state:"pending",...e}:{...e};return this.#E.delete(s.name),this.#b.set(s.name,s),this.#N(),s}replace(e,t){if(!this.#b.has(e))throw new Error(`There is no user named "${e}"`);const s=He(t.name);if(s)throw new Error(s);if(t.name!==e&&this.#b.has(t.name))throw new Error(`A user named "${t.name}" already exists`);const n=this.#A===e,r=[...this.#E].filter(([,t])=>t===e).map(([e])=>e);let a;this.#x=!0;try{this.remove(e),a=this.add(t)}catch(s){throw this.#x=!1,this.#N(),s}finally{this.#x=!1}for(const s of t.name===e?r:[...r,e])this.#E.set(s,a.name);return n&&(this.#A=a.name),this.#N(),a}#N(){this.#x||this.#$.forEach(e=>e())}renamedTo(e){return this.#E.get(e)}remove(e){const t=this.#b.get(e);if(!t)return!1;this.#A===e&&(this.#A=void 0);for(const[t,s]of this.#E)s===e&&this.#E.delete(t);return this.#b.delete(e),this.#k.forEach(e=>e(t)),this.#N(),!0}clear(){for(const e of[...this.#b.keys()])this.remove(e)}onRemove(e){return this.#k.add(e),()=>{this.#k.delete(e)}}onSessionChange(e){return this.#S.add(e),()=>{this.#S.delete(e)}}sessionChanged(e){this.#b.get(e.name)===e&&this.#S.forEach(t=>t(e))}onChange(e){return this.#$.add(e),()=>{this.#$.delete(e)}}get defaultUser(){return void 0===this.#A?void 0:this.#b.get(this.#A)}setDefaultUser(e){if(void 0===e)return void(this.#A=void 0);const t=this.#b.get(e);if(!t)throw new Error(`There is no user named "${e}"`);if("session"===t.kind&&("active"!==t.state||!t.session))throw new Error(`"${e}" has to log in on its own host before it can be the default user`);if("token"===t.kind&&"expired"===t.state)throw new Error(`MI turned down the API token of "${e}"`);this.#A=e}resolve(e){if(this.#T.has(e))return this.#T.get(e);const t=_e(e.headers.host);let s;if(void 0===t){const t="localhost"===(e.headers.host??"").toLowerCase().replace(/:\d+$/,"")?this.defaultUser:void 0;s={key:t?.name??"",user:t}}else{const e=this.#b.get(t)??this.#b.get(this.#E.get(t)??"");s=e?{key:e.name,user:e}:void 0}return this.#T.set(e,s),s}};function qe(e=ze){return(t,s,n)=>{const r=e.resolve(t),a=_e(t.headers.host)??"";if(r?.user&&a&&r.key!==a&&function(e){if("GET"!==e.method&&"HEAD"!==e.method)return!1;const t=e.headers["sec-fetch-mode"];return"string"==typeof t?"navigate"===t:String(e.headers.accept??"").includes("text/html")}(t)){const e=t.originalUrl??t.url??"/";return s.statusCode=302,s.setHeader("Location",`${Ve(t,r.key)}${e}`),s.setHeader("Cache-Control","no-store"),void s.end()}r?n():(s.statusCode=404,s.setHeader("Content-Type","text/plain; charset=utf-8"),s.setHeader("Cache-Control","no-store"),s.end(`pp-dev has no user named "${a}". Open users from the pp-dev dev panel on the main host.`))}}const We=/(?:^|\/\/[^/]+)\/(?:login|auth\/saml\/login)(?:[/?#]|$)/i;function Je(e){return(e??"").split(";").map(e=>e.trim()).filter(e=>e&&e.split("=",1)[0].trim()!==Ee)}function Ze({statusCode:e=200,headers:t}){return 401===e||412===e||e>=300&&e<400&&We.test(String(t.location??""))}class Ke{#b;#j;#P=o();#F=new WeakMap;#R=new WeakMap;#L=new WeakMap;#B=new WeakMap;constructor(e,t){this.#b=e,this.#j=t}isLeftBehindRequest(e,t,s){const n=_e(t.headers.host)===e.name?Ie(t.headers.cookie,Ee):s;return void 0!==n&&this.#C(e,n)}observe(e,t,s,n){if("session"!==e.kind||this.#b.get(e.name)!==e)return;const r=_e(t.headers.host)===e.name,a=r?Ie(t.headers.cookie,Ee):n,i=Ne(s.headers["set-cookie"],Ee),o=this.#L.get(e);let c,l,d=r;return i&&i!==a?(c=i,l=a):r&&a!==e.session&&!Ze(s)?c=a:o&&Date.now()>=o.retryAt&&(c=o.session,d=o.ownHost),c&&c===o?.session&&void 0===l&&(l=o.replaced),"active"===e.state&&Ze(s)&&a===e.session&&this.#O(e,`MI turned away ${t.method} ${t.url}`),c&&c!==e.session&&c!==this.#F.get(e)&&c!==this.#R.get(e)&&!this.#C(e,c)?this.#M(e,c,l,d):void 0}async#M(e,t,s,n){let r;this.#F.set(e,t);try{r=await this.#j(t)}catch(r){return this.#F.get(e)===t&&(this.#F.delete(e),this.#L.set(e,{session:t,replaced:s,ownHost:n,retryAt:Date.now()+5e3})),void this.#P.warn(c.yellow(`Could not check the MI session of user ${e.name}: ${String(r)}`))}if(this.#F.get(e)===t&&this.#b.get(e.name)===e)if(this.#F.delete(e),this.#L.get(e)?.session===t&&this.#L.delete(e),r){if(this.#C(e,t)||void 0!==s&&this.#C(e,s))return;const a="active"===e.state;n&&(this.#U(e),void 0!==s&&s!==t&&this.#U(e,s)),this.#L.delete(e),Object.assign(e,{state:"active",session:t,miUser:r}),this.#R.delete(e),this.#b.sessionChanged(e),a||this.#P.info(`${c.blue("User")} ${c.yellow(e.name)} ${c.blue("logged in")} (MI user ${r.id}${r.username?`, ${r.username}`:""})`)}else this.#R.set(e,t),"active"===e.state&&s===e.session&&this.#O(e,"MI started a guest session")}#C(e,t){return"active"===e.state&&Boolean(this.#B.get(e)?.has(t))}#U(e,t=e.session){if(!t)return;const s=this.#B.get(e)??new Set;s.add(t),s.size>20&&s.delete(s.values().next().value),this.#B.set(e,s)}#O(e,t){this.#U(e),e.state="expired",e.session=void 0,this.#F.delete(e),this.#L.delete(e),this.#b.sessionChanged(e),this.#b.defaultUser===e&&this.#b.setDefaultUser(void 0),this.#P.warn(`${c.yellow(`The MI session of user ${e.name} ended`)} (${t}). Log in again on its host.`)}}async function Ge(e,t){try{const s=await e.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",...t},!0,{quiet:!0}),n=s.data?.user;return"number"==typeof n?.user_id?{miUser:{id:n.user_id,username:"string"==typeof n.username?n.username:""}}:{miUser:void 0}}catch(e){if(Le(e))return{miUser:void 0,refused:Re(e).userFriendlyMessage};throw e}}async function Xe(e,t){try{const s=await Ge(e,{Authorization:`Bearer ${t}`});return s.miUser?{ok:!0,miUser:s.miUser}:{ok:!1,rejected:!0,message:s.refused?`The API token was rejected: ${s.refused}`:"The API token is expired or invalid"}}catch(e){return{ok:!1,rejected:!1,message:`Could not check the API token with MI: ${Re(e).userFriendlyMessage}`}}}const Ye=/^(https?:\/\/)([^/]+)(\/.*)?$/i,Qe="X-PP-Proxy";const et=/^\/login(?:\/|$)/i,tt="/auth/saml/login";const st=/^\/auth\/(?:index\/)?logout(?:[/?#]|$)/i;const nt=new WeakMap,rt=new WeakMap;const at=[/^text\//,/^application\/(?:[\w.-]+\+)?(?:json|xml)$/,/^application\/(?:x-)?(?:java|ecma)script$/,/^[\w.-]+\/[\w.-]+\+(?:json|xml)$/];function it(e){const t=e.split(";",1)[0].trim().toLowerCase();return at.some(e=>e.test(t))}const ot=/[\w.:/\\!-]/;function ct(e){const t=e["content-encoding"];if("string"==typeof t&&t.trim()&&"identity"!==t.trim())return!1;const s=e["content-type"];return"string"==typeof s&&it(s)}function lt(e){return async(t,s,n)=>{const r=e&&ct(t.headers);n.statusCode=t.statusCode??n.statusCode,t.statusMessage&&(n.statusMessage=t.statusMessage),n.setHeader(Qe,1);for(const[e,s]of Object.entries(t.headers))void 0!==s&&(r&&"content-length"===e.toLowerCase()||n.setHeader(e,s));if(!r)return void t.pipe(n);const a=new E("utf8");let i="",o=!1;const c=s=>{if(!s)return;n.write(e(Buffer.from(s,"utf8"),"utf8"))||o||(o=!0,t.pause(),n.once("drain",()=>{o=!1,t.resume()}))};t.on("data",e=>{i+=a.write(e);const t=i.lastIndexOf("\n");if(-1!==t&&(c(i.slice(0,t+1)),i=i.slice(t+1)),i.length>=65536){const e=function(e){for(let t=e.length-1;t>=0;t-=1)if(!ot.test(e[t]))return t;return-1}(i)+1||i.length;c(i.slice(0,e)),i=i.slice(e)}}),t.on("end",()=>{c(i+a.end()),i="",n.end()}),t.on("error",()=>{n.end()})}}function dt(e){const{rewritePath:t=/^\/(?!p[tl]).*/i,baseURL:s="",disableSSLValidation:n=!1,miAPI:r,templateName:a,users:i=ze}=e;if(!s)throw new Error("Base url is required");const l=function(e){try{return new URL(e).host}catch{return e.replace(Ye,"$2")}}(s),d=s.replace(Ye,"$1$2"),u=import("file-type"),p=o(),h=e.sessionUsers??new Ke(i,function(e){return async t=>(await Ge(e,{Cookie:`${Ee}=${t}`})).miUser}(r));return S({selfHandleResponse:!0,pathFilter:(s,n)=>!(e.proxyIgnore||[]).some(e=>"string"==typeof e?s.startsWith(e):"function"!=typeof e.test||e.test(s))&&("string"==typeof t?s.startsWith(t):Array.isArray(t)?t.some(e=>s.startsWith(e)):"function"==typeof t.test&&t.test(s)),target:s,changeOrigin:!0,logger:{info:()=>{},warn:()=>{},error:()=>{}},secure:!n,headers:{host:l,origin:d},on:{proxyReq(e,t,n){const o=t.headers.host,l=e.getHeader("referer");o&&l&&"string"==typeof l&&e.setHeader("referer",l.replace(function(e){let t=re.get(e);return t||(t=new RegExp(`^https?://${se(e)}(?=[/?#]|$)`,"i"),re.set(e,t)),t}(o),s));const d=i.resolve(t);let u;d?.user?u=d.user.token:d&&(u=r.personalAccessToken),u?(e.setHeader("Authorization",`Bearer ${u}`),nt.set(t,u)):"session"===d?.user?.kind&&e.removeHeader("Authorization"),d?.user&&e.removeHeader("Token");const h="session"===d?.user?.kind?d.user:void 0;let m;if(h&&_e(t.headers.host)!==h.name){m=h.session;const s=m?(g=t.headers.cookie,y=m,[...Je(g),`${Ee}=${y}`].join("; ")):function(e){const t=Je(e);return t.length?t.join("; "):void 0}(t.headers.cookie);s?e.setHeader("cookie",s):e.removeHeader("cookie")}var g,y;rt.set(t,{user:d?.user,sentSession:m}),e.removeHeader("if-none-match"),e.removeHeader("if-modified-since");const w=t.url??"/",v=function(e,t,s,n){if(!t||!s||!n||s===n)return e;try{const t=new f(e,"http://localhost"),r=t.pathname.match(/^\/data\/page\/([^/]+)(\/.*)?$/);if(!r)return e;let a;try{a=decodeURIComponent(r[1])}catch{a=r[1]}if(a!==s)return e;return`/data/page/${n}${r[2]??""}`+t.search+t.hash}catch{return e}}(w,r.v7Features,a,r.internalPageName);v!==w&&(t.url=v,e.path=v,console.info(`${c.cyan("Rewrites data page to correct internal page name")}: ${c.yellow(w)} ${c.blue("→")} ${c.green(v)}`)),p.info(`${c.blue("Proxies request:")} ${c.green(t.method)} ${t.url} -> ${c.green(e.method)} ${e.protocol}//${e.host}${e.path}${d?.user?` ${c.blue("as")} ${c.yellow(d.user.name)}`:""}`);const{socket:b}=t,k=()=>{setTimeout(()=>{e.destroyed||e.destroy()},200)};return b.once("close",k),e.once("close",()=>b.off("close",k)),e},proxyRes:(e,t,s)=>{e.headers["set-cookie"]&&(e.headers["set-cookie"]=je(e.headers["set-cookie"],Se(t))),e.headers.location&&(e.headers.location=function(e,t,s){const n=s.headers.host;let r;try{r=new URL(e)}catch{return e}return n&&/^https?:$/.test(r.protocol)&&r.host===t.toLowerCase()?e.replace(/^https?:\/\/[^/?#]*/i,`${Se(s)?"https":"http"}://${n}`):e}(e.headers.location,l,t));const n=function(e,t){if(!st.test(e.url??""))return;const s=_e(e.headers.host);return void 0===s?void 0:t.get(s)}(t,i),r=rt.get(t);if(n){e.resume();const a={"cache-control":"no-store"};r?.user===n&&(i.remove(n.name),p.info(`${c.blue("Logged out user")} ${c.yellow(n.name)}, back to the main host`),e.headers["set-cookie"]&&(a["set-cookie"]=e.headers["set-cookie"]));const o=t.headers["sec-fetch-mode"];return o&&"navigate"!==o?s.writeHead(204,a):s.writeHead(302,{...a,location:`${Ve(t)}/`}),void s.end()}const a=r?.user;let o=!0;if(a&&i.get(a.name)!==a)o=!1;else if(a){let s=!1;"session"===a.kind&&(s=h.isLeftBehindRequest(a,t,r?.sentSession),h.observe(a,t,e,r?.sentSession)),o=_e(t.headers.host)===a.name&&!s}if(!o){const t=function(e){const t=(e??[]).filter(e=>void 0===Ne(e,Ee));return t.length?t:void 0}(e.headers["set-cookie"]);t?e.headers["set-cookie"]=t:delete e.headers["set-cookie"]}e.headers["cache-control"]="no-store",delete e.headers.expires,delete e.headers.pragma;const d=(e,s)=>Buffer.from(ie(tt,"/login",ae(l,t.headers.host??"",e.toString(s))),s);if(e.headers["content-type"]?.includes("text/event-stream")||e.headers["transfer-encoding"]?.includes("chunked")&&"no"===e.headers["x-accel-buffering"])return p.info(`${c.blue("Start streaming for request:")} ${c.green(t.method)} ${t.url}`),lt(d)(e,t,s);const m=function(e){const t=e["content-type"];if("string"==typeof t&&t.trim()&&!it(t))return"pipe";const s=Number(e["content-length"]);return Number.isFinite(s)&&s>=10485760&&ct(e)&&!function(e){const t="string"==typeof e?e.split(";",1)[0].trim().toLowerCase():"";return"text/html"===t||"application/xhtml+xml"===t}(t)?"stream":"buffer"}(e.headers);if("stream"===m&&(e.headers["x-accel-buffering"]="no"),"buffer"!==m)return lt("stream"===m?d:void 0)(e,t,s);const g=A(async(e,t,s,n)=>{n.setHeader(Qe,1);if(await(await u).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(s.url??"",`http://${l}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){t+=`<script>(${function(){const e="pp-dev::redirectCount",t="pp-dev::lastRedirect";let s=+(localStorage.getItem(e)??0);localStorage.getItem(t);Number.isNaN(s)&&(s=0);let n=window.location.href;const r=function(){const a=new URLSearchParams(window.location.search);if(!a.has("proxyRedirect"))return console.debug("No proxyRedirect param. Cleaning up."),void localStorage.removeItem(e);n!==window.location.href?(n=window.location.href,setTimeout(r,s<3?3e3:5e3)):window.location.href=a.get("proxyRedirect"),localStorage.setItem(e,""+ ++s),localStorage.setItem(t,(new Date).toISOString())};setTimeout(r,3e3)}.toString()})()<\/script>`}const n=t.slice(0,100);et.test(e.pathname)&&(n.includes("<html")||n.includes("<body")||n.includes("<head")||n.includes("html>"))&&!_e(s.headers.host)&&(t+=`<script>(${Pe.toString()})(${r=l,JSON.stringify(r).replace(/</g,"\\u003c")})<\/script>`)}catch{}const n=s.headers.host??"";return ie(tt,"/login",ae(l,n,t))}var r});return g(e,t,s)},error(e,t,s){!function(e,t,s,n){const r=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"`;if(n(`${r}\n\n${e.stack??""}`),"function"!=typeof s.writeHead)return void s.destroy();const a=s;a.writableEnded||a.destroyed||(a.headersSent?a.destroy():(a.writeHead(502,{"Content-Type":"text/plain; charset=utf-8"}),a.end(r)))}(e,t,s,e=>p.error(e))}}})}const ut=/\.(?:[a-z0-9]+)$/i,pt=6e5,ht=104857600,mt=1e3,gt=10485760;const ft=new class{items=new Map;totalSize=0;maxSize;maxItems;constructor(e,t){this.maxSize=e,this.maxItems=t}get(e){const t=this.items.get(e);return t?t.expiresAt<=Date.now()?(this.del(e),null):t.value:null}put(e,t,s=pt){return this.del(e),this.items.set(e,{value:t,expiresAt:Date.now()+s}),this.totalSize+=t.size,this.cleanup(),t}del(e){const t=this.items.get(e);return!!t&&(this.totalSize-=t.value.size,this.items.delete(e))}clear(){this.items.clear(),this.totalSize=0}keys(){return this.purgeExpired(),[...this.items.keys()]}getTotalSize(){return this.totalSize}getItemCount(){return this.keys().length}purgeExpired(){const e=Date.now();for(const[t,s]of this.items)s.expiresAt<=e&&this.del(t)}cleanup(){for(this.purgeExpired();this.items.size>0&&(this.items.size>this.maxItems||this.totalSize>this.maxSize);)this.del(this.items.keys().next().value)}}(ht,mt),yt=new Set,wt=new Map;function vt(e){ft.clear(),wt.clear(),yt.forEach(e=>e()),o().info(c.blue(`Proxy cache cleared: ${e}`))}const bt=new WeakSet;function kt(e,t){return t?e.startsWith(`@${t}@`):!e.startsWith("@")}function $t(e,t){if(e){for(const t of ft.keys())kt(t,e)&&ft.del(t);wt.delete(e),o().info(c.blue(`Proxy cache cleared for ${e}: ${t}`))}else vt(t)}function xt(e,t,s){const n=function(e){return nt.get(e)}(e);if(void 0!==n){const e=wt.get(s),t=void 0!==e&&n!==e;return wt.set(s,n),t?"personal access token changed":void 0}const r=Ne(t.getHeader("set-cookie"),Ee);return void 0!==r&&r!==Ie(e.headers.cookie,Ee)?"MI session changed":void 0}function St(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 At(e){const{devServer:t,ttl:s=pt,maxSize:n=ht,maxItems:r=mt,users:a=ze}=e,i=o();return n===ht&&r===mt||(ft.maxSize=n,ft.maxItems=r),t.cache=ft,bt.has(a)||(bt.add(a),a.onRemove(e=>$t(e.name,"user removed")),a.onSessionChange(e=>$t(e.name,"MI session changed or ended"))),(e,t,n)=>{const r=a.resolve(e);if(!r)return n();t.once("finish",()=>{const s=t.hasHeader(Qe)?xt(e,t,r.key):void 0;s&&$t(r.key,`${s} (${e.method} ${ce(e.url??"")})`)});const l=r.user?.session,d=e.originalUrl||e.url||"",u="GET"===e.method?function(e,t,s){const n=e.split("?")[0];return ut.test(n)?n.includes("/auth/info.js")?"":t?`@${t}@${s}:${e}`:e:""}(d,r.key,e.headers.host??""):"";if(!u||!function(e,t){const{user:s}=t;return"session"!==s?.kind||!!s.session&&(_e(e.headers.host)!==s.name||Ie(e.headers.cookie,Ee)===s.session)}(e,r))return n();const p=ft.get(u);if(p)return i.info(`${c.blue("Proxies request:")} ${c.green(e.method)} ${d} -> ${c.blue("Cache")} ${u}`),function(e,t){try{for(const[s,n]of Object.entries(t))null!=n&&e.setHeader(s,n)}catch(e){o().warn(`Failed to set some response headers: ${e instanceof Error?e.message:String(e)}`)}}(t,p.headers),t.setHeader("X-PP-Cache","hit"),t.write(p.content),void t.end();const h=t.end,m=t.write,g=[];let f=0,y="undecided";const w=(e,t)=>null==e?null:"string"==typeof e?Buffer.from(e,t||"utf8"):e instanceof Uint8Array?Buffer.from(e):Buffer.from(String(e),"utf8"),v=()=>{y="pass";for(const e of g.splice(0))m.call(t,e)},b=()=>{"undecided"===y&&(t.hasHeader(Qe)?!function(e){if(200!==e.statusCode)return!1;if(/^text\/event-stream/i.test(String(e.getHeader("content-type")??"")))return!1;if("no"===String(e.getHeader("x-accel-buffering")??"").toLowerCase())return!1;const t=Number(e.getHeader("content-length"));return!(Number.isFinite(t)&&t>=gt)}(t)?v():y="buffer":y="pass")};t.write=function(e,t,s){if(b(),"pass"===y)return m.call(this,e,t,s);const n="function"==typeof t?t:s,r=w(e,"string"==typeof t?t:void 0);return r&&(g.push(r),f+=r.length),f>gt&&v(),n&&process.nextTick(n),!0},t.end=function(e,n,o){if(b(),"pass"===y)return h.call(this,e,n,o);"function"==typeof e?(o=e,e=void 0):"function"==typeof n&&(o=n,n=void 0);const d=w(e,"string"==typeof n?n:void 0);let p;d&&g.push(d);try{p=St(g);const e=Buffer.byteLength(p);if(200===t.statusCode&&e>0&&e<gt&&function(e,t,s){return!e.user||s.get(e.key)===e.user&&e.user.session===t}(r,l,a)){const{"set-cookie":n,...r}=t.getHeaders(),a={headers:r,content:p,timestamp:Date.now(),size:e};ft.put(u,a,s),i.info(`${c.blue("[Cached]")} ${u} (${(e/1024).toFixed(1)}KB)`)}}catch(e){i.error(`Failed to cache response for ${u}: ${e}`),p=St(g)}return h.call(this,p,o)},n()}}const 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 It(e,t){Et.set(e,{timestamp:Date.now(),data:t})}var Nt;Nt=()=>Et.clear(),yt.add(Nt);let jt=!1;function Pt(e){jt||(jt=!0,e.info(c.blue("Clearing proxy cache after successful login")),ft.clear())}function Ft(){jt=!1,u.reset()}const Rt="/home?proxyRedirect=";function Lt(e){const t=e.headers??{},s=Boolean(_e(e.headers?.host));if(!s&&!ze.resolve(e)?.user)return t;const{cookie:n,authorization:r,token:a,...i}=t;return s||void 0===n?i:{...i,cookie:n}}function Bt(e,t,s){const{templateLess:n=!1,miHudLess:r=!1,appId:a,base:i,appBase:l,v7Features:d}=s,p=o();if(n&&r&&void 0===a)throw new Error("Custom App ID is required when both templateLess and miHudLess are true");return async(s,o,h)=>{try{const m=!(n&&r),g=ce(s.url??""),f=e.test(g),y=!f&&!g.startsWith("/home")&&function(e,t){if(!t||"/"===t)return!0;const s=t.endsWith("/")?t:`${t}/`;return e===s||e===s.slice(0,-1)||e.startsWith(s)}(g,l)&&function(e){const t=e.headers["sec-fetch-dest"];if("string"==typeof t)return"document"===t;const s=e.headers.accept;return"string"==typeof s&&s.includes("text/html")}(s),w=u.getState();if(!w.isAuthenticated&&!w.isRedirected&&s.url?.startsWith("/home")&&!s.url?.startsWith(Rt)){let e;p.info(c.blue("Trying to authenticate and redirect to base"));const l=t=>{e=t};try{if(m?await Ot(t,{templateLess:n,miHudLess:r,appId:a,redirectUrl:d&&i?`${i}`:`${Rt}${encodeURIComponent("/")}`},s,o,l,p):await Ct(t,{templateLess:n,miHudLess:r,appId:a,redirectUrl:d&&i?`${i}`:`${Rt}${encodeURIComponent("/")}`},s,o,l,p),o.headersSent||o.writableEnded)return;return e?h(e):(u.setRedirected(!0),p.info(c.blue("Successfully authenticated. Redirecting to base")),oe(o,i??"/",302))}catch(e){if(o.headersSent||o.writableEnded)return;return h()}}if(!f&&!y)return h();if(!m){return await Ct(t,{templateLess:n,miHudLess:r,appId:a,redirectUrl:d&&i?`${i}`:`${Rt}${encodeURIComponent("/")}`},s,o,h,p)}return await Ot(t,{templateLess:n,miHudLess:r,appId:a,redirectUrl:d&&i?`${i}`:`${Rt}${encodeURIComponent("/")}`},s,o,h,p)}catch(e){return p.error(c.red(`Unexpected error in load-pp-data middleware: ${e instanceof Error?e.message:String(e)}`)),Ft(),h(e)}}}async function Ct(e,t,s,n,r,a){const{appId:i,redirectOnAuthFailure:o,redirectUrl:l}=t;if(void 0===i){const e=new Error("Custom App ID is required for page info only mode");return a.error(c.red(e.message)),r(e)}const d=Lt(s);a.info(c.green("Start loading page info"));try{const t=`pageInfo:${i}`;return Tt(t)?(a.info(c.green("Page info loaded from cache")),r()):(await e.getPageInfo(i,d),Pt(a),It(t,{success:!0}),u.updateState({isAuthenticated:!0}),a.info(c.green("Page info loaded successfully")),r())}catch(e){return Ft(),Mt(e,o??!0,l||`${Rt}${encodeURIComponent("/")}`,n,r,a,"Page info")}}async function Ot(e,t,s,n,r,a){const{templateLess:i,appId:o,redirectOnAuthFailure:l,redirectUrl:d}=t,u=Lt(s);a.info(c.green("Start loading page data"));try{const t=`pageData:${i}:${o}`;if(Tt(t))return a.info(c.green("Page data loaded from cache")),r();const s=i||void 0===o?e.getPageTemplate(u):e.getPageVariables(o,u);return await s,Pt(a),It(t,{success:!0}),a.info(c.green("Page data loaded successfully")),r()}catch(e){return Ft(),Mt(e,l??!0,d||`${Rt}${encodeURIComponent("/")}`,n,r,a,"Page data")}}function Mt(e,t,s,n,r,a,i){if(function(e){return null!==e&&"object"==typeof e&&Le(e)}(e)&&(a.info(c.red(`${i} loading failed. Not authorized`)),t)){const e=`${s}`;return a.info(c.yellow(`Redirecting to: ${e}`)),oe(n,e,302)}const o=e instanceof Error?e.message:String(e);return a.info(c.red(`${i} loading failed. Error: ${o}`)),r(e)}async function Ut(e){const t=new L,s=async n=>{const r=await N.readdir(n,{withFileTypes:!0});for(const a of r){const r=T.join(n,a.name);if(a.isDirectory())await s(r);else if(a.isFile()){const s=T.relative(e,r).replace(/\\/g,"/");t.file(s,await N.readFile(r))}}};return await s(e),await t.generateAsync({type:"nodebuffer",compression:"DEFLATE"})}async function Dt(e,t){const s=await L.loadAsync(await N.readFile(e),{createFolders:!1}),n=T.resolve(t),r=Object.values(s.files).filter(e=>!e.name.startsWith("__MACOSX/"));for(const e of r){const t=e.unsafeOriginalName??e.name,s=T.resolve(n,t);if(s!==n&&!s.startsWith(n+T.sep))throw new Error(`Zip entry "${t}" resolves outside the extraction directory`);if("number"==typeof e.unixPermissions&&40960==(61440&e.unixPermissions))throw new Error(`Zip archive contains a symlink ("${t}"), which is not allowed`)}await N.mkdir(n,{recursive:!0});for(const e of r){const t=T.resolve(n,e.unsafeOriginalName??e.name);e.dir?await N.mkdir(t,{recursive:!0}):(await N.mkdir(T.dirname(t),{recursive:!0}),await N.writeFile(t,await e.async("nodebuffer")))}}function Ht(e,t){const s=t?.distDir;if("export"!==t?.output||!s||".next"===s)return null;const n=T.resolve(e,s,"dev","types");return I.existsSync(n)?(I.rmSync(n,{recursive:!0,force:!0}),n):null}const _t=6e5;function Vt(e,t,s){if(e.pid)if("win32"!==process.platform)try{s?process.kill(-e.pid,t):e.kill(t)}catch{}else null===e.exitCode&&null===e.signalCode&&B.spawnSync("taskkill",["/PID",String(e.pid),"/T","/F"],{stdio:"ignore"})}function zt(e,t,s,{cwd:n,env:r,timeoutMs:a,signal:i,killGraceMs:o=5e3}){return new Promise((c,l)=>{if(i?.aborted)return void l(new Error(`${e} was stopped`));const d="win32"!==process.platform&&(void 0!==i||void 0!==a),u=B.spawn(t,s,{cwd:n,env:r,stdio:"inherit",detached:d});let p,h;const m=(e,t)=>{p?t||void 0===h||(clearTimeout(h),h=void 0,Vt(u,"SIGKILL",d)):(p=e,t?(Vt(u,"SIGTERM",d),h=setTimeout(()=>{h=void 0,Vt(u,"SIGKILL",d)},o)):Vt(u,"SIGKILL",d))},g=()=>m(`${e} was stopped`,!1),f=void 0===a?void 0:setTimeout(()=>m(`${e} timed out after ${Math.round(a/1e3)} s`,!0),a);i?.addEventListener("abort",g,{once:!0});const y=e=>{clearTimeout(f),clearTimeout(h),i?.removeEventListener("abort",g),d&&Vt(u,"SIGKILL",d),e?l(e):c()};u.on("close",t=>{p?y(new Error(p)):0!==t?y(new Error(`${e} exited with code ${t}`)):y()}),u.on("error",e=>y(e))})}async function qt(e,t={}){let s;try{const t=C(T.join(e,"package.json")).resolve("next/package.json");s=T.resolve(T.dirname(t),"dist/bin/next")}catch{throw new Error(`Unable to resolve the "next" binary from ${e}. Is Next.js installed?`)}await zt("next build",process.execPath,[s,"build"],{...t,cwd:e,env:Object.assign({},process.env,{NODE_ENV:"production",[p]:"1"})})}const Wt="pageName",Jt="date",Zt=T.dirname("undefined"!=typeof __filename&&__filename||y(import.meta.url)),Kt=T.resolve(Zt,"..",".."),Gt=Buffer.from([80,75,3,4]),Xt=20,Yt=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");const Qt="sync-service.meta.json",es="BUILD-MANIFEST.json",ts="__template_variables.json";class ss{root;backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;versionFileTemplate;buildInputFolder;nextBuild;maxBackups;buildTimeoutMs;metaDir;builds=new AbortController;metaLoaded;logger;constructor(e,t){this.pageName=e;const{root:s=F.cwd(),backupFolder:n="backups",distZipFolder:r=T.resolve(s,"dist-zip"),distZipFilename:a=h(this.pageName),backupNameTemplate:i=`{${Wt}}-{${Jt}}.zip`,versionFileTemplate:c="VERSION-v{packageversion}-{currentDate}.json",buildInputFolder:l,dateFormat:d=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,""),nextBuild:u,maxBackups:p=Xt,buildTimeoutMs:g=_t,metaDir:f}=t||{};this.root=s,this.backupFolder=T.resolve(s,n),this.backupNameTemplate=i,this.dateFormat=d,this.distZipFolder=r,this.distZipFilename=m(a,"ZIP output file name"),this.versionFileTemplate=m(c,"VERSION file name template"),this.buildInputFolder=l,this.nextBuild=u,this.maxBackups="number"==typeof p&&Number.isInteger(p)&&p>0?p:1/0,this.buildTimeoutMs=g,this.metaDir=void 0===f?T.join(this.backupFolder,".pp-dev-meta"):T.resolve(s,f),this.logger=o(),this.metaLoaded=this.loadMeta()}stopBuilds(){this.builds.abort()}async checkMeta(){await N.mkdir(this.metaDir,{recursive:!0}),await N.mkdir(this.backupFolder,{recursive:!0})}async loadMeta(){try{const e=JSON.parse(await this.readMetaFile());this.currentMeta=e&&"object"==typeof e?e:{}}catch(e){this.logger.warn(c.yellow(`[DistService] Could not read the sync meta (${e instanceof Error?e.message:String(e)}); starting a new one`)),this.currentMeta={}}}async meta(){return await this.metaLoaded,this.currentMeta||(this.currentMeta={}),this.currentMeta}async readMetaFile(){return await this.checkMeta(),await N.readFile(T.join(this.metaDir,Qt),{encoding:"utf-8"}).catch(()=>"{}")}async writeMetaFile(e){return await this.checkMeta(),await N.writeFile(T.join(this.metaDir,Qt),JSON.stringify(e,null,2),{encoding:"utf-8"})}async syncMeta(){await this.writeMetaFile(await this.meta())}async getLatestSavedBackup(){const{lastBackupName:e}=await this.meta();if(!e)return null;const t=T.resolve(this.backupFolder,e);try{return await N.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${Wt}}`,e).replace(`{${Jt}}`,this.dateFormat(t))}getBackupMeta(){return this.currentMeta}async pruneBackups(e){if(Number.isFinite(this.maxBackups))try{const t=function(e,t,s){const n=s.split(/(\d+)/).map((e,t)=>t%2==1?"\\d+":Yt(e)).join(""),r=[{token:`{${Wt}}`,pattern:Yt(t)},{token:`{${Jt}}`,pattern:n}].map(t=>({...t,at:e.indexOf(t.token)})).filter(e=>-1!==e.at).sort((e,t)=>e.at-t.at);let a="^",i=0;for(const{token:t,pattern:s,at:n}of r)a+=Yt(e.slice(i,n))+s,i=n+t.length;return new RegExp(`${a}${Yt(e.slice(i))}$`)}(this.backupNameTemplate,this.pageName,this.dateFormat(new Date)),s=new Set([e]),n=await N.readdir(this.backupFolder,{withFileTypes:!0}),r=(await Promise.all(n.filter(e=>e.isFile()&&t.test(e.name)).map(async e=>({name:e.name,mtimeMs:(await N.stat(T.resolve(this.backupFolder,e.name))).mtimeMs})))).sort((e,t)=>t.mtimeMs-e.mtimeMs||t.name.localeCompare(e.name)),a=r.filter(e=>s.has(e.name)).length,i=r.filter(e=>!s.has(e.name)).slice(Math.max(0,this.maxBackups-a));for(const e of i)await N.unlink(T.resolve(this.backupFolder,e.name));i.length>0&&this.logger.info(c.gray(`[DistService] Deleted ${i.length} old backup(s), keeping the latest ${this.maxBackups}`))}catch(e){this.logger.warn(c.yellow(`[DistService] Could not delete old backups: ${e instanceof Error?e.message:String(e)}`))}}pathToPosix(e){return e.replace(/\\/g,"/")}normalizeBackupManifestPath(e){try{return m(e,"VERSION manifest file path")}catch{throw new Error(`VERSION manifest file path "${e}" resolves outside the backup root`)}}async normalizeExtractedRootDir(e){let t=e;for(;;){const e=await N.readdir(t,{withFileTypes:!0});if(1!==e.length||!e[0]?.isDirectory())return t;t=T.join(t,e[0].name)}}async listFilesRecursive(e){const t=await N.readdir(e,{withFileTypes:!0}),s=[];for(const n of t){const t=T.join(e,n.name);n.isDirectory()?s.push(...await this.listFilesRecursive(t)):n.isFile()&&s.push(t)}return s}buildManifestChecksum(e){const t=Object.keys(e).sort().map(t=>e[t]).join("");return j.createHash("sha256").update(t).digest("hex")}buildBackupFingerprint(e){const t=Object.keys(e).sort().map(t=>`${t}:${e[t]}`).join("\n");return j.createHash("sha256").update(t,"utf-8").digest("hex")}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}versionFileTemplateMatcher(){const e=/\{[^}]+\}/g,t=[];let s=0,n=null;for(;n=e.exec(this.versionFileTemplate),n;){const[e]=n,r=this.versionFileTemplate.slice(s,n.index);t.push(this.escapeRegExp(r)),t.push("[^/]+"),s=n.index+e.length}const r=this.versionFileTemplate.slice(s);return t.push(this.escapeRegExp(r)),new RegExp(`^${t.join("")}$`,"i")}isTemplateVariablesBasename(e){return e===ts}async pickTemplateVariablesFromBackupZip(e,t){const s=e.find(e=>T.basename(e)===ts);if(!s)return null;const n=T.join(t,s),r=await N.readFile(n);return{relativePath:s,content:r,actualHash:j.createHash("sha256").update(r).digest("hex"),manifestHash:null}}async resolveBackupAnalysisFromZip(e){const t=await N.mkdtemp(T.join(R.tmpdir(),"pp-dev-backup-")),s=T.join(t,"backup.zip"),n=T.join(t,"extracted");try{await N.mkdir(n,{recursive:!0}),await N.writeFile(s,e),await Dt(s,n);const t=await this.normalizeExtractedRootDir(n),r=(await this.listFilesRecursive(t)).map(e=>this.pathToPosix(T.relative(t,e))),a=r.filter(e=>T.basename(e)===es);if(a.length>1)throw new Error(`Expected at most one ${es} in backup ZIP, found ${a.length}`);const i=1===a.length?a[0]:null;let o=null;if(i){const e=T.join(t,i);if(o=JSON.parse(await N.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),s=r.filter(t=>T.basename(t)===T.basename(e)),n=t.length>0?t:s;if(n.length>1)throw new Error(`Build manifest version file "${o.versionFile}" must resolve to exactly one file in backup ZIP, found ${n.length}`);if(1===n.length&&(l=n[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(T.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 d={};let u=null,p=null;const h={};let m=[];if(l){const e=T.join(t,l),s=JSON.parse(await N.readFile(e,"utf-8"));if(!s?.files||"object"!=typeof s.files)throw new Error("VERSION manifest files map is missing or invalid");if("string"!=typeof s.checksum||!s.checksum)throw new Error("VERSION manifest checksum is missing or invalid");p=s.checksum;for(const[e,t]of Object.entries(s.files)){if("string"!=typeof t||!t.trim())throw new Error(`VERSION manifest contains invalid hash for file: ${e}`);const s=this.normalizeBackupManifestPath(e);if(Object.prototype.hasOwnProperty.call(d,s))throw new Error(`VERSION manifest contains duplicate normalized file path: ${s}`);d[s]=t}if(this.buildManifestChecksum(d)!==s.checksum)throw new Error("VERSION manifest checksum does not match its files map");for(const[e,s]of Object.entries(d)){const n=T.join(t,e),r=await N.readFile(n).catch(()=>null);if(!r)throw new Error(`VERSION manifest references missing file: ${e}`);const a=j.createHash("sha256").update(r).digest("hex");h[e]=a,a!==s&&m.push({relativePath:e,expected:s,actual:a}),this.isTemplateVariablesBasename(T.basename(e))&&(u={relativePath:e,content:r,actualHash:a,manifestHash:s})}m.length>0&&this.logger.warn(c.yellow(`[DistService] VERSION manifest hash mismatch for ${m.length} file(s) (confirm in UI): ${m.map(e=>e.relativePath).join(", ")}`))}const g=new Set(m.map(e=>e.relativePath)),f={},y=[];for(const e of r){if(e===i)continue;if(l&&e===l)continue;if(l&&Object.prototype.hasOwnProperty.call(f,e))continue;const s=T.join(t,e),n=await N.readFile(s),r=j.createHash("sha256").update(n).digest("hex");l&&Object.prototype.hasOwnProperty.call(d,e)?f[e]=g.has(e)?h[e]:d[e]:l?(f[e]="__NOT_IN_VERSION_FILE__",y.push(e)):f[e]=r}u||(u=await this.pickTemplateVariablesFromBackupZip(r,t));const w=this.buildBackupFingerprint(f);let v=null;return o&&l&&w!==o.buildFingerprint&&(v={expected:o.buildFingerprint,actual:w},this.logger.warn(c.yellow(`[DistService] Build manifest fingerprint mismatch (confirm in UI): expected ${o.buildFingerprint}, got ${w}`))),{backupFingerprint:w,unknownFiles:y,templateVariables:u,mainHash:p,allFilesInMeta:Boolean(l&&0===y.length),buildManifestMismatch:v,versionManifestHashMismatches:m}}finally{await N.rm(t,{recursive:!0,force:!0})}}async analyzeBackup(e){if(!Gt.equals(e.subarray(0,Gt.length)))throw new Error("Backup file is not a ZIP file");return await this.resolveBackupAnalysisFromZip(e)}async getPublicTemplateVariablesHash(){const e=T.resolve(this.root,"public",ts),t=await N.readFile(e).catch(()=>null);return t?j.createHash("sha256").update(t).digest("hex"):null}async readPublicTemplateVariablesFile(){const e=T.resolve(this.root,"public",ts);return await N.readFile(e).catch(()=>null)}async saveTemplateVariablesFile(e){const t=T.resolve(this.root,"public",ts);return await N.mkdir(T.dirname(t),{recursive:!0}),await N.writeFile(t,e),t}async saveBackup(e,t){const s=t??await this.analyzeBackup(e),n=s.backupFingerprint,r=await this.getLatestSavedBackup(),a=await this.meta();if(r){const{lastBackupHash:e,lastMainHash:t}=a;if(e===n)return void this.logger.info(c.yellow(`[DistService] Backup skipped: same backup fingerprint as last saved (${n.slice(0,12)}...)`));if(s.allFilesInMeta&&s.mainHash&&t===s.mainHash)return void this.logger.info(c.yellow("[DistService] Backup skipped: same VERSION manifest checksum (main hash) and all files listed in VERSION"))}const i=new Date,o=this.backupName(this.pageName,i);a.lastBackupName=o,a.lastBackupHash=n,a.lastBackupDate=i.toISOString(),s.mainHash?a.lastMainHash=s.mainHash:delete a.lastMainHash,await this.syncMeta(),await N.writeFile(T.resolve(this.backupFolder,o),e),this.logger.info(`Backup saved to ${o}`),await this.pruneBackups(o)}async buildNewAssets(){if(this.nextBuild)return await this.buildNextAssets();this.logger.info(c.cyan("[DistService] Build started"));const e=zt("pp-dev build","node",[T.resolve(Kt,"./bin/pp-dev.js"),"build"],{cwd:this.root,env:Object.assign({},F.env,{NODE_ENV:"production"}),timeoutMs:this.buildTimeoutMs,signal:this.builds.signal});try{if(await this.logBuild("Build",e),this.buildInputFolder){const e=T.resolve(this.root,this.buildInputFolder);if(!await this.isDirectory(e))throw new Error(`Build input directory ${e} not found`);const t=await Ut(e);return this.throwIfStopped("pp-dev build"),t}const t=T.resolve(this.root,this.distZipFolder,this.distZipFilename);let s;try{s=await N.readFile(t)}catch(e){if("ENOENT"===e.code)throw new Error(`File ${t} not found`);throw e}return this.throwIfStopped("pp-dev build"),s}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(c.cyan("[DistService] Next.js build started")),await this.logBuild("Next.js build",qt(e,{timeoutMs:this.buildTimeoutMs,signal:this.builds.signal}));const s=T.resolve(e,t);if(!await this.isDirectory(s))throw new Error(`Next.js build output directory not found: ${s}`);this.throwIfStopped("next build"),await x({outDir:s,packageVersion:this.nextBuild.packageVersion,versionFileTemplate:this.versionFileTemplate,packageRepositoryUrl:this.nextBuild.packageRepositoryUrl,packageBranchName:this.nextBuild.packageBranchName}),this.throwIfStopped("next build");const n=await Ut(s);return this.throwIfStopped("next build"),n}get stopped(){return this.builds.signal.aborted}throwIfStopped(e){if(this.stopped)throw new Error(`${e} was stopped`)}async logBuild(e,t){try{await t}catch(t){const s=this.builds.signal.aborted;throw this.logger.info(c.yellow(`[DistService] ${e} ${s?"stopped":"failed"}`)),t}this.logger.info(c.cyan(`[DistService] ${e} finished`))}async isDirectory(e){try{return(await N.stat(e)).isDirectory()}catch{return!1}}}class ns{server;opts;eventMap;logger;syncInFlight=null;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.eventMap.set("page-variables:reload",this.onPageVariablesReload.bind(this)),this.logger=o(),this.init()}init(){const{ws:e}=this.server;for(const[t,s]of this.eventMap)e.on(t,s);e.on("error",()=>{this.clearAllPendingSyncActions(!1)})}dispose(){this.clearAllPendingSyncActions(!1),this.opts.distService?.stopBuilds()}resolveSyncAction(e,t){const s=this.syncActionResolvers.get(e);s&&(clearTimeout(s.timeoutId),s.cleanup(),this.syncActionResolvers.delete(e),s.resolve(t))}clearAllPendingSyncActions(e){for(const t of[...this.syncActionResolvers.keys()])this.resolveSyncAction(t,e)}sendSyncResponse(e,t){e.send("template:sync:response",t)}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 s=P(),n=this.opts.syncActionTimeoutMs??12e4;return await new Promise(r=>{const a=()=>this.resolveSyncAction(s,!1),i=setTimeout(a,n),{socket:o}=t;o?.once("close",a),this.syncActionResolvers.set(s,{resolve:r,timeoutId:i,cleanup:()=>o?.off("close",a)}),o&&o.readyState!==o.OPEN?a():t.send("template:sync:action-required",{...e,requestId:s})})}async onTemplateSync(e,t){if(this.syncInFlight)return this.logger.warn(c.yellow("Template sync requested while another one is running; ignored")),void this.sendSyncResponse(t,{error:"A template sync is already running. Wait for it to finish, or answer its dialog in the tab that started it.",code:"SYNC_IN_PROGRESS"});const s=this.runTemplateSync(e,t);this.syncInFlight=s;try{await s}finally{this.syncInFlight=null}}async runTemplateSync(e,t){if(!this.opts.distService||!this.opts.miAPI)return this.sendSyncResponse(t,{error:"Dist service or MiAPI is not defined"}),void this.logger.error(c.red("Dist service or MiAPI is not defined"));{const{distService:e,miAPI:s}=this.opts;try{if(this.server.config.clientInjectionPlugin?.v7Features){if(!s?.isV710OrHigher)return void this.sendSyncResponse(t,{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 n=await(s?.getAssets().catch(async e=>{if(v(e)){if("SESSION_EXPIRED"===Re(e).code){this.logger.info(c.yellow("Session expired - attempting to validate credentials"));try{const e=await(s?.validateCredentials());e&&!e.isValid?(this.logger.error(c.red(`Authentication error: ${e.error}`)),this.sendSyncResponse(t,{error:e.error??"Authentication failed",code:e.code,refresh:!0})):(this.logger.info(c.yellow("Session expired")),this.sendSyncResponse(t,{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0}))}catch(e){this.logger.info(c.yellow("Session expired")),this.sendSyncResponse(t,{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0})}return e}if(e.cause instanceof Error&&("ECONNRESET"===e.cause.code||"ENOTFOUND"===e.cause.code))return this.logger.info(c.yellow("Server in maintenance mode, VPN connection is needed or no internet connection")),this.sendSyncResponse(t,{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e;const n=e.response?.status;if(502===n||503===n||504===n)return this.logger.info(c.yellow(`Server in maintenance mode or unreachable (HTTP ${n}); VPN may be required`)),this.sendSyncResponse(t,{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e}if(be(e))return this.logger.info(c.yellow("Server in maintenance mode or non-JSON page / page-template API response (unavailable HTML body)")),this.sendSyncResponse(t,{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e;throw e}));if(n instanceof Error)return;let r;if(n){const s=await(e?.analyzeBackup(n).catch(e=>"Backup file is not a ZIP file"===e.message?(this.logger.error(c.red("Backup file is not a ZIP file")),e):e));if(s instanceof Error)r=s;else if(s){await(e?.saveBackup(n,s));const a=0===s.unknownFiles.length&&1===s.versionManifestHashMismatches.length&&T.basename(s.versionManifestHashMismatches[0].relativePath)===ts,i=s.versionManifestHashMismatches,o=i.filter(e=>T.basename(e.relativePath)===ts),l=i.filter(e=>T.basename(e.relativePath)!==ts),d=!a&&o.length>0&&l.length>0,u=a?[]:l.map(e=>e.relativePath),p=async()=>{if(!s.templateVariables||!e)return;const{templateVariables:n}=s;if(await e.getPublicTemplateVariablesHash()!==n.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(n.content)}};if(s.unknownFiles.length>0){if(!await this.requestSyncAction({title:"Unknown files found in backup",content:`Backup contains files not listed in VERSION: ${s.unknownFiles.join(", ")}. Continue sync or cancel?`,confirmText:"Continue sync",cancelText:"Cancel sync"},t))return this.sendSyncResponse(t,{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(c.yellow("Sync cancelled by user"))}if(d&&await p(),!a&&u.length>0){const e=40,s=u,n=s.slice(0,e),r=s.length-n.length,a=n.map(e=>`• ${e}`).join("\n"),i=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${a}${i}\n\nCancel sync, or override and continue using the files on disk?`,confirmText:"Override and continue",cancelText:"Cancel sync"},t))return this.sendSyncResponse(t,{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(c.yellow("Sync cancelled by user"))}if(!a&&s.buildManifestMismatch&&0===s.versionManifestHashMismatches.length){const{expected:e,actual:n}=s.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: ${n.slice(0,12)}...\nContinue sync anyway?`,confirmText:"Continue sync",cancelText:"Cancel sync"},t))return this.sendSyncResponse(t,{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(c.yellow("Sync cancelled by user"))}d||await p(),r=await(e?.buildNewAssets())}}else r=await(e?.buildNewAssets());if(!(r&&r instanceof Buffer))return r instanceof Error?(this.sendSyncResponse(t,{error:r.message}),void this.logger.error(c.red(r.message))):(this.sendSyncResponse(t,{error:"Failed to build new assets"}),void this.logger.error(c.red("Failed to build new assets")));{if(e.stopped)return this.sendSyncResponse(t,{error:"Sync stopped: the dev server is shutting down."}),void this.logger.warn(c.yellow("Sync stopped before the upload: the dev server is shutting down"));const n=await(s?.updateAssets(r));if("OK"===n?.status){const s=e?.getBackupMeta(),n=s?.lastBackupDate?new Date(s.lastBackupDate):new Date;this.sendSyncResponse(t,{syncedAt:(Number.isNaN(n.getTime())?new Date:n).toISOString(),currentHash:s?.lastBackupHash??"",backupFilename:s?.lastBackupName??""}),this.logger.info(c.green("Template synced"))}else this.sendSyncResponse(t,{error:"Failed to update assets"}),this.logger.error(c.red("Failed to update assets"))}}catch(e){const s=e instanceof Error?e.message:"Template sync failed";return this.logger.error(c.red(`Template sync failed: ${s}`)),void this.sendSyncResponse(t,{error:s,code:"SYNC_FAILED"})}}}async onPageVariablesReload(e,t){const{miAPI:s}=this.opts;if(!s)return t.send("page-variables:reload:response",{error:"MiAPI is not defined"}),void this.logger.error(c.red("MiAPI is not defined"));try{const e=await s.reloadPageVariables();t.send("page-variables:reload:response",{ok:!0,count:e?e.length:0,skipped:null===e}),this.logger.info(c.green("Page variables reloaded"))}catch(e){const s=e instanceof Error?e.message:"Reload variables failed";this.logger.error(c.red(`Reload variables failed: ${s}`)),t.send("page-variables:reload:response",{error:s})}}}const rs=["text","select","multiselect","file","list","color","boolean"];function as(e){return rs.includes(e)}const is=["true","false","Y","N","1","0"],os=/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;function cs(e,t){return e.id===t||e.text===t}function ls(e){if("string"==typeof e||"number"==typeof e)return{id:String(e),text:String(e)};if("object"!=typeof e||null===e)return{text:""};const{id:t,text:s}=e,n="string"==typeof t||"number"==typeof t?String(t):void 0;return{id:n,text:"string"==typeof s?s:n??""}}function ds(e,t,s,n){const r="select"===s.type||"multi-select"===s.type;if("string"!=typeof n&&(!r||"number"!=typeof n))return[{name:e,severity:"warning",message:`${t}: field "${s.name}" should be a string, got ${typeof n}.`}];const a=String(n);if(!a)return[];switch(s.type){case"color":return os.test(a)?[]:[{name:e,severity:"warning",message:`${t}: field "${s.name}" value "${a}" is not a recognized color (expected e.g. "#075b7e").`}];case"select":{if(!s.options?.length)return[];const n=s.options.map(ls);return n.some(e=>cs(e,a))?[]:[{name:e,severity:"warning",message:`${t}: field "${s.name}" value "${a}" is not one of the declared options (${n.map(e=>e.text).join(", ")}).`}]}case"multi-select":{if(!s.options?.length)return[];const n=s.options.map(ls),r=a.split(",").map(e=>e.trim()).filter(e=>!n.some(t=>cs(t,e)));return r.length?[{name:e,severity:"warning",message:`${t}: field "${s.name}" value "${r.join(", ")}" is not among the declared options (${n.map(e=>e.text).join(", ")}).`}]:[]}default:return[]}}function us(e,t){const s=function(e){if(!Array.isArray(e)||0===e.length)return null;const t=e.map(e=>"string"==typeof e?{name:e,type:"textarea"}:e&&"object"==typeof e&&"string"==typeof e.name?e:null).filter(e=>null!==e);return t.length?t:null}(e.additional_options);if(!s)return[];const n=new Set(s.map(e=>e.name)),r=[];return t.forEach((t,a)=>{const i=`"${e.name}" item #${a+1}`;if("object"!=typeof t||null===t||Array.isArray(t))return void r.push({name:e.name,severity:"warning",message:`${i} should be an object with field(s): ${s.map(e=>e.name).join(", ")}.`});const o=t;for(const t of s)t.name in o?r.push(...ds(e.name,i,t,o[t.name])):r.push({name:e.name,severity:"warning",message:`${i} is missing field "${t.name}".`});const c=Object.keys(o).filter(e=>!n.has(e));c.length&&r.push({name:e.name,severity:"warning",message:`${i} has unexpected field(s) not declared in additional_options: ${c.join(", ")}.`})}),r}function ps(e,t){const s=[];switch(e.tag_type){case"boolean":is.includes(t)||s.push({name:e.name,severity:"warning",message:`Value "${t}" is not a recognized boolean encoding (expected one of ${is.join(", ")}).`});break;case"list":try{const n=JSON.parse(t);Array.isArray(n)?s.push(...us(e,n)):s.push({name:e.name,severity:"warning",message:`Value for list variable "${e.name}" is valid JSON but not an array.`})}catch{s.push({name:e.name,severity:"warning",message:`Value for list variable "${e.name}" is not valid JSON.`})}break;case"select":case"multiselect":if(Array.isArray(e.additional_options)){const n=e.additional_options.map(ls),r=("multiselect"===e.tag_type?t.split(",").map(e=>e.trim()):[t]).filter(e=>!n.some(t=>cs(t,e)));r.length&&s.push({name:e.name,severity:"warning",message:`Value "${r.join(", ")}" does not match any declared option for "${e.name}".`})}}return s}function hs(e,t){switch(e.tag_type){case"boolean":return is.includes(t)?null:`Not a recognized boolean value ("${t}").`;case"color":return""===t||os.test(t)?null:`Not a recognized color value ("${t}").`;case"list":if(""===t)return null;try{const e=JSON.parse(t);return null===e||Array.isArray(e)?null:"Value is valid JSON but not an array."}catch{return"Value is not valid JSON."}default:return null}}const ms="/@pp-dev/variables-editor",gs=/^[A-Za-z0-9_\s-]+$/,fs="Dist service or MiAPI is not defined",ys=new WeakMap;async function ws(e){const t=await e.readPublicTemplateVariablesFile();if(!t)return null;const s=t.toString("utf-8");let n;try{n=JSON.parse(s)}catch(e){return{raw:s,schema:null,parseError:e instanceof Error?e.message:"Invalid JSON"}}return"object"!=typeof n||null===n||Array.isArray(n)||!Array.isArray(n.tags)?{raw:s,schema:null,parseError:'The root value must be a JSON object with a "tags" array.'}:{raw:s,schema:n}}async function vs(e){return e?(await ws(e))?.schema??null:null}function bs(e,t,s){const n=ys.get(e);if(n)return void(n.deps=t);const r={deps:t};ys.set(e,r),e.get("/@api/variables/schema",async(e,t)=>{const{distService:s}=r.deps;if(!s)return void t.status(503).json({error:fs});const n=await ws(s);t.json(n?{exists:!0,...n}:{exists:!1,schema:null,raw:null})}),e.put("/@api/variables/schema",async(e,t)=>{const{distService:s}=r.deps;if(!s)return void t.status(503).json({error:fs});const n=e.body?.raw;if("string"!=typeof n)return void t.status(400).json({error:"Request body must be { raw: string }."});let a;try{a=JSON.parse(n)}catch{return void t.status(400).json({error:"Not valid JSON."})}if("object"!=typeof a||null===a||Array.isArray(a))return void t.status(400).json({error:"The root value must be a JSON object."});const i=a.tags;if(!Array.isArray(i))return void t.status(400).json({error:'"tags" must be an array.'});const o=i.findIndex(e=>"object"!=typeof e||null===e||"string"!=typeof e.name||!e.name);if(-1!==o)return void t.status(400).json({error:`tags[${o}] is missing a non-empty "name".`});const c=[],l=new Set;for(const e of i)l.has(e.name)&&c.push(`Duplicate variable name "${e.name}".`),l.add(e.name),e.tag_type&&!as(e.tag_type)&&c.push(`"${e.name}" has an unrecognized tag_type "${e.tag_type}".`),gs.test(e.name)||c.push(`"${e.name}" contains a character MI's own editor doesn't allow (only letters, digits, underscore, hyphen, and whitespace).`);try{await s.saveTemplateVariablesFile(Buffer.from(n,"utf-8"))}catch(e){return void t.status(500).json({error:`Failed to write ${ts}.`,details:e instanceof Error?e.message:String(e)})}t.json({ok:!0,warnings:c})}),e.get("/@api/variables/values",async(e,t)=>{const{distService:s,miAPI:n}=r.deps;try{const e=await vs(s),r=await n.getLivePageVariables(),a=function(e,t){const s=new Map((e?.tags??[]).map(e=>[e.name,e])),n=new Map(t.map(e=>[e.name,e.value])),r=new Set([...s.keys(),...n.keys()]);return Array.from(r).map(e=>({name:e,value:n.get(e)??s.get(e)?.default_value??""}))}(e,r);t.json({schema:e,live:r,combined:a,local:n.localPageVariables??null})}catch(e){t.status(502).json({error:"Failed to fetch live page variables.",details:e instanceof Error?e.message:String(e)})}}),e.put("/@api/variables/values",async(e,t)=>{const{distService:s,miAPI:n}=r.deps,a=function(e){const t="object"==typeof e&&null!==e?e.tags:void 0;if(!Array.isArray(t))return null;const s=[];for(const e of t){if("object"!=typeof e||null===e)return null;const{name:t,value:n}=e;if("string"!=typeof t||!t||"string"!=typeof n)return null;s.push({name:t,value:n})}return s}(e.body);if(a)try{const e=await vs(s),r=new Map((e?.tags??[]).map(e=>[e.name,e])),i=[];for(const e of a){const t=r.get(e.name);t&&i.push(...ps(t,e.value))}let o;await n.applyPageVariables(a);try{await n.reloadPageVariables()}catch(e){o=e instanceof Error?e.message:String(e)}t.json({ok:!0,warnings:i,local:n.localPageVariables??null,...o?{localError:o}:{}})}catch(e){t.status(502).json({error:"Failed to save live page variables.",details:e instanceof Error?e.message:String(e)})}else t.status(400).json({error:"Request body must be { tags: {name, value}[] }."})}),e.post("/@api/variables/values/local",async(e,t)=>{const{miAPI:s}=r.deps;try{await s.reloadPageVariables(),t.json({local:s.localPageVariables??null})}catch(e){t.status(502).json({error:"Failed to update the local values.",details:e instanceof Error?e.message:String(e)})}}),e.get("/@api/variables/pages",async(e,t)=>{const{miAPI:s}=r.deps;try{const e=await s.listPages(),n=e.find(e=>e.internal_name===s.internalPageName)??null,r=e.filter(e=>e.internal_name!==s.internalPageName).map(e=>({id:e.id,name:e.name,internal_name:e.internal_name,sameTemplate:!!n&&(null!=n.template_id?e.template_id===n.template_id:!!n.template&&e.template===n.template)}));t.json({pages:r,currentPageName:n?.name??null})}catch(e){t.status(502).json({error:"Failed to fetch the page list.",details:e instanceof Error?e.message:String(e)})}}),e.get("/@api/variables/import-plan/:pageId",async(e,t)=>{const{distService:s,miAPI:n}=r.deps,a=Number(e.params.pageId);if(!Number.isInteger(a)||a<=0)t.status(400).json({error:"pageId must be a positive integer."});else try{const e=await vs(s),r=await n.getPageVariablesFor(a);t.json(function(e,t){const s=new Map((e?.tags??[]).map(e=>[e.name,e])),n=[],r=[];for(const e of t){const t=s.get(e.name);if(!t){r.push({name:e.name,sourceValue:e.value,reason:"Not in the current page's schema."});continue}const a=hs(t,e.value);a?r.push({name:e.name,sourceValue:e.value,reason:a}):n.push({name:e.name,sourceValue:e.value,tagType:t.tag_type||"text"})}return{importable:n,skipped:r}}(e,r))}catch(e){t.status(502).json({error:"Failed to fetch values from the selected page.",details:e instanceof Error?e.message:String(e)})}}),W(e,{path:ms,name:"variables-editor",clientDir:s,values:()=>({templateLess:String(Boolean(r.deps.miAPI.isTemplateLess))})})}const ks="/@api/users",$s=new WeakMap;function xs(e,t){const s=Ve(t,e.name);return{name:e.name,kind:e.kind,...e.state?{state:e.state}:{},..."session"===e.kind?{loginUrl:`${s}/login`}:{},miUser:e.miUser,origin:s}}function Ss(e,t,s,n){e.status(t).json({error:n,code:s})}function As(e){let t;try{t=JSON.parse(U.readFileSync(e,"utf-8"))}catch(t){return"ENOENT"!==t.code&&o().warn(c.yellow(`Could not read the saved users from ${e}: ${String(t)}`)),[]}const s=t&&"object"==typeof t&&!Array.isArray(t)?t.users:void 0;return(Array.isArray(s)?s:[]).filter(e=>"string"==typeof e?.name&&"string"==typeof e.token&&Boolean(e.token))}const Es=new WeakMap,Ts=new WeakMap;function Is(e){Es.delete(e),Ts.get(e)?.(),Ts.delete(e)}async function Ns(e,t){const s=function(e,t,s=D.homedir()){const n=O("sha256").update(`${H.resolve(e)}\n${t.replace(/\/+$/,"")}`).digest("hex").slice(0,16);return H.join(s,".pp-dev","users",`${n}.json`)}(t.projectRoot,t.miUrl,t.homeDir),n={project:H.resolve(t.projectRoot),miUrl:t.miUrl},r=o();if(Es.get(e)===s)return;Is(e),Es.set(e,s);const a=As(s);let i=!0,l=!1,d=e.list().some(e=>"token"===e.kind&&e.token);const u=new Set,p=new Set,h=()=>{const t=e.list(),a=t.filter(e=>"token"===e.kind&&e.token).map(e=>({name:e.name,token:e.token})),i=new Set(t.map(e=>e.name)),o=As(s).filter(e=>!i.has(e.name)&&!p.has(e.name));try{!function(e,t,s){const n={version:1,...s,users:t},r=`${e}.${process.pid}.tmp`;U.mkdirSync(H.dirname(e),{recursive:!0,mode:448}),U.writeFileSync(r,`${JSON.stringify(n,null,2)}\n`,{mode:384}),U.renameSync(r,e),U.chmodSync(e,384)}(s,[...a,...o],n)}catch(e){r.warn(c.yellow(`Could not save the users to ${s}: ${String(e)}`))}},m=e.onRemove(t=>{Es.get(e)===s&&(p.add(t.name),i&&u.add(t.name))}),g=e.onChange(()=>{Es.get(e)===s&&(i?d||=!l:h())});Ts.set(e,()=>{m(),g()});try{const n=await Promise.all(a.map(e=>t.checkToken(e.token)));if(Es.get(e)!==s)return;a.forEach((t,s)=>{if(He(t.name)||e.get(t.name)||u.has(t.name))return;const a=n[s];l=!0;try{e.add({name:t.name,kind:"token",token:t.token,...a.ok?{miUser:a.miUser}:{},...!a.ok&&a.rejected?{state:"expired"}:{}})}finally{l=!1}a.ok||r.warn(c.yellow(`Restored user ${t.name}: ${a.message}`))})}finally{i=!1}d&&Es.get(e)===s&&h(),a.length&&r.info(`${c.blue("Restored")} ${a.length} ${c.blue("saved user(s) from")} ${s}`)}function js(e){const t=`${H.resolve(e.projectRoot)}\n${e.miUrl.replace(/\/+$/,"")}`;ze.context!==t&&(Is(ze),ze.useContext(t)),e.persist?e.miAPI.personalAccessToken?Ns(ze,{projectRoot:e.projectRoot,miUrl:e.miUrl,checkToken:t=>Xe(e.miAPI,t)}).catch(e=>{o().warn(c.yellow(`Could not restore the saved users: ${String(e)}`))}):o().warn(c.yellow("users.persist is on, but users need your own API token (mi.token or MI_ACCESS_TOKEN).")):Is(ze)}function Ps(e,t){return{headers:{host:new URL(e).host,referer:e,origin:e.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},appId:t.appId,templateLess:t.templateLess,disableSSLValidation:t.disableSSLValidation,v7Features:t.v7Features,personalAccessToken:t.personalAccessToken??process.env.MI_ACCESS_TOKEN}}function Fs(e){const t=Number(e);return!t||Number.isNaN(t)||t<0?6e5:t}function Rs(e){return new RegExp(`^((${t=e,t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})|/)$`);var t}function Ls(e){return["/@vite","/@metricinsights","/@",e.endsWith("/")?e.slice(0,-1):e]}function Bs(e){const{distService:t,miAPI:s}=e,n=new ns(e.server,{distService:t,miAPI:s});return bs(e.internalServer,{distService:t,miAPI:s}),function(e,t){const s=$s.get(e);if(s)return void(s.deps=t);const n={deps:t};$s.set(e,n);const r=o(),a=()=>n.deps.users??ze;e.get(ks,(e,t)=>{const s=a();t.json({available:Boolean(n.deps.miAPI.personalAccessToken),users:s.list().map(t=>xs(t,e)),defaultUser:s.defaultUser?.name??null})}),e.put(`${ks}/default`,(e,t)=>{const s=a(),n=(e.body??{}).name;if(null===n||"string"==typeof n)if(null===n||s.get(n)){try{s.setDefaultUser(n??void 0)}catch(e){return void Ss(t,409,"NOT_LOGGED_IN",e instanceof Error?e.message:String(e))}r.info(`${c.blue("Default user:")} ${c.yellow(n??"the original user")}`),t.json({defaultUser:n})}else Ss(t,404,"NOT_FOUND",`There is no user named "${n}"`);else Ss(t,400,"INVALID_NAME","name must be a user name or null")}),e.post(ks,async(e,t)=>{const{miAPI:s}=n.deps,i=a(),o=e.body??{},l="string"==typeof o.name?o.name:"",d="string"==typeof o.token?o.token.trim():"",u=o.kind??"token";if("token"!==u&&"session"!==u)return void Ss(t,400,"INVALID_KIND",'kind must be "token" or "session"');if(!s.personalAccessToken)return void Ss(t,409,"ORIGINAL_TOKEN_REQUIRED","Adding users needs your own API token: set mi.token or MI_ACCESS_TOKEN.");const p=He(l);if(p)return void Ss(t,400,"INVALID_NAME",p);if(i.get(l))return void Ss(t,409,"NAME_TAKEN",`A user named "${l}" already exists`);if("session"===u){const s=i.add({name:l,kind:"session"});return r.info(`${c.blue("Added user")} ${c.yellow(s.name)}: log in at ${Ve(e,s.name)}/login`),void t.status(201).json({user:xs(s,e)})}if(!d)return void Ss(t,400,"TOKEN_REQUIRED","The API token is required");const h=i.context,m=await Xe(s,d);if(i.context!==h||n.deps.miAPI!==s||a()!==i)return void Ss(t,409,"CONTEXT_CHANGED","The dev server switched to another MI instance; add the user again");if(!m.ok)return void(m.rejected?Ss(t,400,"INVALID_TOKEN",m.message):Ss(t,502,"MI_UNAVAILABLE",m.message));const{miUser:g}=m;let f;try{f=i.add({name:l,kind:"token",token:d,miUser:g})}catch(e){return void Ss(t,409,"NAME_TAKEN",e instanceof Error?e.message:String(e))}r.info(`${c.blue("Added user")} ${c.yellow(f.name)} (MI user ${g.id}${g.username?`, ${g.username}`:""}) at ${Ve(e,f.name)}`),t.status(201).json({user:xs(f,e)})}),e.patch(`${ks}/:name`,async(e,t)=>{const{miAPI:s}=n.deps,i=a(),o=String(e.params.name),l=i.get(o),d=e.body??{},u="string"==typeof d.name&&d.name?d.name:o,p="string"==typeof d.token?d.token.trim():"";if(!l)return void Ss(t,404,"NOT_FOUND",`There is no user named "${o}"`);if("token"!==l.kind)return void Ss(t,400,"NOT_EDITABLE","Only users added with an API token can be edited. Remove this user and add it again.");const h=He(u);if(h)return void Ss(t,400,"INVALID_NAME",h);if(u!==o&&i.get(u))return void Ss(t,409,"NAME_TAKEN",`A user named "${u}" already exists`);let m,g={...l,name:u};if(p&&p!==l.token){const e=i.context,r=await Xe(s,p);if(i.context!==e||n.deps.miAPI!==s||a()!==i)return void Ss(t,409,"CONTEXT_CHANGED","The dev server switched to another MI instance; edit the user again");if(!r.ok)return void(r.rejected?Ss(t,400,"INVALID_TOKEN",r.message):Ss(t,502,"MI_UNAVAILABLE",r.message));const{state:o,...c}=g;g={...c,token:p,miUser:r.miUser}}if(i.get(o)===l)if(u!==o||g.token!==l.token){try{m=i.replace(o,g)}catch(e){return void Ss(t,409,"NAME_TAKEN",e instanceof Error?e.message:String(e))}r.info(`${c.blue("Edited user")} ${c.yellow(o)}${u!==o?` → ${c.yellow(u)}`:""}${m.token!==l.token?" (new API token)":""}`),t.json({user:xs(m,e)})}else t.json({user:xs(l,e)});else Ss(t,409,"USER_CHANGED",`The user "${o}" changed meanwhile; edit it again`)}),e.delete(`${ks}/:name`,(e,t)=>{const s=String(e.params.name);a().remove(s)?(r.info(`${c.blue("Removed user")} ${c.yellow(s)}`),t.status(204).end()):Ss(t,404,"NOT_FOUND",`There is no user named "${s}"`)})}(e.internalServer,{miAPI:s}),js({persist:e.persistUsers,miAPI:s,projectRoot:e.projectRoot,miUrl:e.miUrl}),n}const Cs="10mb",Os=(e,t,s,n)=>{const r="number"==typeof e?.status?e.status:void 0;if(!r||r<400||r>=500||"string"!=typeof e.type||s.headersSent)return void n(e);const a="entity.too.large"===e.type?`The request body is larger than the dev server accepts (${Cs}).`:`The request body could not be read: ${e.message}`;s.status(r).json({error:a})};function Ms({allowedHosts:e=[]}={}){const t=_();return t.use(g(e)),t.use(_.json({limit:Cs})),t.use(_.urlencoded({extended:!0})),t.use(Os),t}function Us(e){return(e.requestBody?.byteLength??0)+(e.responseBody?.byteLength??0)+512}function Ds(e){return{id:e.id,timestamp:e.timestamp,method:e.method,url:e.url,statusCode:e.statusCode,duration:e.duration,source:e.source,user:e.user,requestSize:e.requestBody?.byteLength??0,responseSize:e.responseBody?.byteLength??0,requestBodyTruncated:e.requestBodyTruncated,responseBodyTruncated:e.responseBodyTruncated}}class Hs{entries=new Map;insertOrder=[];head=0;totalSize=0;maxMemory;maxEntries;constructor(e=1073741824,t=1e4){this.maxMemory=e,this.maxEntries=t}evictOldest(){const e=this.insertOrder[this.head++],t=this.entries.get(e);t&&(this.totalSize-=Us(t),this.entries.delete(e)),this.head>=1024&&2*this.head>=this.insertOrder.length&&(this.insertOrder=this.insertOrder.slice(this.head),this.head=0)}allocateId(){return M()}add(e){let t=e,s=(e.requestBody?.byteLength??0)+(e.responseBody?.byteLength??0);s>this.maxMemory&&(t={...e,requestBody:null,responseBody:null,requestBodyTruncated:e.requestBodyTruncated||null!==e.requestBody,responseBodyTruncated:e.responseBodyTruncated||null!==e.responseBody},s=0);const n=Us(t);for(;(this.totalSize+n>this.maxMemory||this.entries.size>=this.maxEntries)&&this.head<this.insertOrder.length;)this.evictOldest();this.entries.set(t.id,t),this.insertOrder.push(t.id),this.totalSize+=n}get(e){return this.entries.get(e)}list(e){const t=e?.method?.toUpperCase(),s=e?.search?.toLowerCase(),n=e=>(!t||e.method===t)&&(!s||e.url.toLowerCase().includes(s)),r=Number.isFinite(e?.limit)?e.limit:1/0,a=[];if(r<=0)return a;if(void 0===e?.offset){for(let e=this.insertOrder.length-1;e>=this.head&&a.length<r;e-=1){const t=this.entries.get(this.insertOrder[e]);t&&n(t)&&a.push(Ds(t))}return a.reverse()}let i=Number.isFinite(e.offset)?Math.max(0,e.offset):0;for(let e=this.head;e<this.insertOrder.length&&a.length<r;e+=1){const t=this.entries.get(this.insertOrder[e]);t&&n(t)&&(i>0?i-=1:a.push(Ds(t)))}return a}clear(){this.entries.clear(),this.insertOrder=[],this.head=0,this.totalSize=0}get size(){return this.entries.size}get memoryUsage(){return this.totalSize}}const _s="<redacted>",Vs=new RegExp(`(^|;\\s*)(${Ee}=)[^;]*`,"gi"),zs=new RegExp(`^(\\s*${Ee}=)[^;]*`,"i");function qs(e){const t={...e};if("string"==typeof t.authorization){const[e,s]=t.authorization.split(/\s+/,2);t.authorization=void 0===s?_s:`${e} ${_s}`}return void 0!==t.token&&(t.token=_s),"string"==typeof t.cookie&&(t.cookie=t.cookie.replace(Vs,`$1$2${_s}`)),t}function Ws(e){const t={...e},s=t["set-cookie"],n=e=>e.replace(zs,`$1${_s}`);return Array.isArray(s)?t["set-cookie"]=s.map(n):"string"==typeof s&&(t["set-cookie"]=n(s)),t}const Js=/^\/(?:login|auth)(?:[/?#]|$)/i,Zs=/pass(?:word|wd|code)?|pwd|secret|token|otp|mfa|2fa/i;function Ks(e,t){return Array.isArray(e)?e.map(e=>Ks(e,t)):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,s])=>Zs.test(e)?(t.any=!0,[e,_s]):[e,Ks(s,t)])):e}function Gs(e,t,s){if(!s)return s;if(Js.test(e))return Buffer.from(_s);const n=(t??"").split(";",1)[0].trim().toLowerCase();try{if("application/x-www-form-urlencoded"===n){const e=new URLSearchParams(s.toString("utf8")),t=[...new Set(e.keys())].filter(e=>Zs.test(e));return t.forEach(t=>e.set(t,_s)),t.length?Buffer.from(e.toString()):s}if("application/json"===n||n.endsWith("+json")){const e={any:!1},t=Ks(JSON.parse(s.toString("utf8")),e);return e.any?Buffer.from(JSON.stringify(t)):s}}catch{}return s}const Xs=["/@","/_next/","/__nextjs_"],Ys=new Set(["/favicon.ico","/installHook.js.map"]);function Qs(e,t=10485760,s=ze){return(n,r,a)=>{const i=n.url||"/",o=i.split("?")[0];if(Xs.some(e=>i.startsWith(e))||Ys.has(o))return void a();const c=e.allocateId(),l=s.resolve(n)?.user?.name,d=Date.now(),u=[];let p=0,h=!1;const m=n.emit.bind(n);n.emit=(e,...s)=>{if("data"===e&&!h){const e=s[0],n=Buffer.isBuffer(e)?e:Buffer.from(String(e));p+=n.byteLength,p<=t?u.push(n):(h=!0,u.length=0)}return m(e,...s)};const g=[];let f=0,y=!1;const w=r.write.bind(r),v=r.end.bind(r);function b(e,s){if(!y&&null!=e)try{const n=Buffer.isBuffer(e)?e:"string"==typeof e?Buffer.from(e,s):ArrayBuffer.isView(e)?Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(String(e));f+=n.byteLength,f<=t?g.push(n):(y=!0,g.length=0)}catch{}}function k(e){return"string"==typeof e[0]?e[0]:void 0}function $(){const e=r.getHeaders();return e["x-pp-proxy"]?"hit"===e["x-pp-cache"]?"proxy-cache":"proxy":"local"}let x=!1;r.write=function(e,...t){return b(e,k(t)),w(e,...t)},r.end=function(t,...s){return"function"!=typeof t&&b(t,k(s)),function(){if(x)return;x=!0;const t=Gs(i,"string"==typeof n.headers["content-type"]?n.headers["content-type"]:void 0,!h&&u.length>0?Buffer.concat(u):null),s=!y&&g.length>0?Buffer.concat(g):null;e.add({id:c,timestamp:d,method:n.method||"GET",url:i,statusCode:r.statusCode??null,duration:Date.now()-d,source:$(),user:l,requestHeaders:qs(n.headers),requestBody:t,requestBodyTruncated:h,responseHeaders:Ws(r.getHeaders()),responseBody:s,responseBodyTruncated:y})}(),v(t,...s)},a()}}export{ss as D,J as I,Oe as M,V as P,Hs as R,ks as U,ms as V,Qs as a,qe as b,Ms as c,Fs as d,At as e,Rs as f,Ps as g,Bt as h,le as i,dt as j,Ls as k,te as l,Dt as m,Ht as n,qt as o,_e as p,vt as q,G as r,Bs as s,js as t,ae as u,oe as v,je as w,Se as x,Re as y,Ut as z};
|
|
2
|
+
//# sourceMappingURL=request-capture.middleware-BNCdPdkF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-capture.middleware-BNCdPdkF.js","sources":["../../../src/shared/ws-messages.ts","../../../src/lib/client-page.ts","../../../src/lib/request-inspector.ts","../../../src/lib/rewrite-response.middleware.ts","../../../src/lib/helpers/content-encoding.helper.ts","../../../src/lib/helpers/url.helper.ts","../../../src/lib/pp-redirect.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/api/page-variable.ts","../../../src/lib/helpers/cookie.helper.ts","../../../src/lib/helpers/login.helper.ts","../../../src/lib/helpers/token.helper.ts","../../../src/lib/pp.middleware.ts","../../../src/shared/user-names.ts","../../../src/lib/user-registry.ts","../../../src/lib/session-users.ts","../../../src/lib/mi-identity.ts","../../../src/lib/proxy-pass.middleware.ts","../../../src/lib/proxy-cache.middleware.ts","../../../src/lib/load-pp-data.middleware.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/page-variables-diff.ts","../../../src/lib/variables-editor.ts","../../../src/lib/user-routes.ts","../../../src/lib/user-store.ts","../../../src/lib/dev-server-setup.ts","../../../src/lib/internal.middleware.ts","../../../src/lib/request-store.ts","../../../src/lib/request-capture.middleware.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,null,null,null,null,null,null,null],"names":["PP_DEV_HMR_WS_PATH","CLIENT_DIST_DIR","path","dirname","PP_DEV_CLIENT_ENTRY","CONTENT_TYPES","serveClientPage","app","opts","clientDir","files","Set","name","get","_req","res","fs","readFile","join","error","html","status","type","end","message","values","setHeader","replace","placeholder","key","req","next","file","params","has","content","extname","INSPECTOR_PATH","routeStates","WeakMap","firstQueryValue","value","first","Array","isArray","undefined","registerInspectorRoutes","store","captureLimit","existing","current","set","activeStore","limit","query","offset","method","search","parsedLimit","parseInt","items","list","Number","isFinite","json","requests","total","size","memoryUsage","maxMemory","memoryUsageFormatted","formatBytes","maxMemoryFormatted","entry","id","requestContentType","normalizeHeaderValue","requestHeaders","responseContentType","responseHeaders","timestamp","url","statusCode","duration","source","user","requestBody","toString","requestBodySize","byteLength","requestBodyTruncated","responseBody","responseBodySize","responseBodyTruncated","delete","clear","ok","String","v","bytes","toFixed","asEncoding","toBuffer","chunk","encoding","Buffer","from","Uint8Array","initRewriteResponse","predicate","rewrite","async","logger","createLogger","cb","callback","find","arg","headersSent","removeHeader","call","this","info","buffers","write","buffer","push","process","nextTick","endCallback","contentEncoding","getHeader","unzipSync","brotliDecompressSync","inflateSync","decodeContent","concat","output","gzipSync","brotliCompressSync","deflateSync","encodeContent","warn","length","escapeRegExp","urlReplaceRegExps","Map","originRegExps","urlReplacer","originalHost","destinationHost","urlReplaceRegExp","port","test","RegExp","args","keep","secure","slashes","at","urlPathReplacer","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","redirect","cutUrlParams","split","initPPRedirect","base","templateName","baseWithoutTrailingSlash","startsWith","endsWith","slice","parsedUrl","URL","pathname","findPaths","PATH_TEMPLATE_PREFIX","PATH_TEMPLATE_LOCAL_PREFIX","includes","redirectUrl","colors","yellow","BaseAPI","axios","constructor","checkAuth","headers","Object","assign","accept","maxRedirects","then","catch","AssetsAPI","getDownloadUrl","appId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","downloadPageAssets","download","uploadPageAssets","upload","downloadTemplateAssets","uploadTemplateAssets","withCredentials","responseType","data","formData","FormData","append","File","post","Referer","getUri","AssetsV7API","PAGE_DATA_FETCH_FRAGMENT","PAGE_TEMPLATE_FETCH_FRAGMENT","PAGE_VARIABLES_FETCH_FRAGMENT","MAINTENANCE_SUFFIX","FRAGMENTS","unavailablePageDataError","Error","unavailablePageTemplateDataError","isUnavailableJsonApiError","err","some","fragment","PageAPI","getAll","Accept","Pragma","Expires","pages","page","getPageContent","internalPageName","create","PageTemplateAPI","internal_name","page_templates","page_template","PageVariableAPI","getById","pageId","page_id","tags","parsed","JSON","parse","TypeError","malformedIndex","findIndex","normalizePageVariableTags","updateById","put","stringify","isSecureRequest","socket","encrypted","forwardedProto","proto","trim","toLowerCase","rewriteSetCookie","cookie","secureRequest","pair","attributes","rewritten","map","attribute","filter","MI_SESSION_COOKIE","findCookieValue","pairs","separator","indexOf","getRequestCookie","cookieHeader","getSetCookieValue","rewriteSetCookieHeader","tokenLoginFunction","host","TOKEN_TYPE_CONFIG","personal","label","regular","updateTokenUI","tokenInput","tokenCaption","link","document","createElement","href","target","style","color","textDecoration","textContent","replaceChildren","showError","errorElement","classList","add","hideError","remove","setupEventHandlers","formWrapper","submitButton","addEventListener","e","preventDefault","focus","tokenTypeSwitcher","getElementById","activeOption","querySelector","tokenType","dataset","token","response","fetch","body","window","location","origin","parseError","networkError","handleFormSubmission","click","initializeLoginForm","loginForm","contentWrapper","firstChild","rowTemplate","lastChild","cloneNode","innerHTML","orRow","innerText","setAttribute","helperForm","formContent","styleElement","head","appendChild","tokenTypeOptions","querySelectorAll","handleTokenTypeChange","forEach","opt","option","currentTarget","setupTokenTypeSwitcher","console","formSelector","observer","MutationObserver","mutations","mutation","disconnect","observe","childList","subtree","existingForm","readError","responseMessage","getTokenErrorInfo","lowerMessage","code","userFriendlyMessage","suggestions","isTokenError","TEMPLATE_PAGE_NAME","axiosInstanceCache","MiAPI","pageTemplate","pageTitle","pageVars","pageVarsLoaded","pageVarReplacements","pageShell","v7Features","personalAccessToken","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","pageVariableApi","baseURL","disableSSLValidation","Promise","resolve","cacheKey","httpsAgent","https","Agent","keepAlive","rejectUnauthorized","timeout","httpAgent","http","isTemplateLoaded","clearHeaders","obj","referer","keys","authorization","updateHeaders","localTemplateHTML","getPageTemplate","green","red","stack","template_id","p","enabled","visible_in_homepage","getPageVariables","template","reason","getLivePageVariables","start","Date","now","cyan","applyPageVariables","listPages","getPageVariablesFor","localPageVariables","isTemplateLess","reloadPageVariables","getPageInfo","pageIdToFetch","fetchV7Page","fetchLegacyPage","handlePageFetchError","buildPage","miHudLess","result","regExp","getPageVarReplacements","getJSDOM","serialize","before","after","getPageShell","vars","replacements","title","dom","placeholderText","container","scripts","insertBefore","item","titleElement","text","titleEl","serializedDom","match","exec","index","getAssets","pageInfo","templateInfo","updateAssets","assets","validateCredentials","testHeaders","isValid","errorInfo","cleanup","options","normalizedHeaders","quiet","context","contextPrefix","suggestion","logTokenError","tokenErrorInfo","USER_NAME_PATTERN","raw","USER_NAME_REGEXP","USER_HOST_SUFFIX","getUserNameError","getUserNameFromHost","hostname","getUserOrigin","userRegistry","users","removeListeners","changeListeners","inReplace","sessionChangeListeners","defaultUserName","renamed","resolved","useContext","kind","saved","state","notifyChange","wasDefault","olderNames","to","listener","renamedTo","onRemove","onSessionChange","sessionChanged","onChange","defaultUser","setDefaultUser","session","requestUser","createUserHostGuard","registry","mode","isPageNavigation","originalUrl","LOGIN_LOCATION_REGEXP","getOtherCookies","isLoggedOutResponse","SessionUserTracker","check","checking","guestSessions","unverified","superseded","isLeftBehindRequest","sentSession","isLeftBehind","onOwnHost","requestSession","newSession","candidate","replaced","ownHost","retryAt","expire","verify","miUser","wasActive","supersede","blue","username","Boolean","whoIs","miAPI","user_id","refused","checkUserToken","answer","Authorization","rejected","hostOriginRegExp","PROXY_HEADER","LOGIN_PAGE_REGEXP","SAML_LOGIN_PATH","LOGOUT_PATH_REGEXP","requestBearerTokens","requestIdentities","TEXTUAL_MEDIA_TYPE_REGEXPS","isTextualContentType","contentType","mediaType","pattern","ORIGIN_CHAR_REGEXP","isRewritableStream","streamResponseInterceptor","interceptor","proxyRes","statusMessage","entries","pipe","decoder","StringDecoder","pending","waitingForDrain","flush","pause","once","resume","on","lastBreak","lastIndexOf","cut","lastNonOriginCharIndex","initProxy","rewritePath","getMiHost","fileType","sessionUsers","Cookie","createSessionCheck","createProxyMiddleware","selfHandleResponse","pathFilter","proxyIgnore","rP","changeOrigin","proxyReq","getOriginRegExp","sessionUser","others","withoutSessionCookie","requestUrl","u","m","segmentDecoded","decodeURIComponent","hash","rewriteDataPagePathForV7Proxy","protocol","abortUpstream","setTimeout","destroyed","destroy","off","serverRes","miHost","devHost","rewriteLocationHeader","loggedOutUser","getLoggedOutUser","identity","fetchMode","writeHead","savedUser","passSession","leftBehind","otherCookies","setCookie","withoutSessionSetCookie","rewriteUrls","handling","contentLength","isHtmlContentType","getResponseHandling","rewriteInterceptor","responseInterceptor","responseBuffer","fileTypeFromBuffer","reqUrl","searchParams","storageKey","lastRedirectKey","redirectCount","localStorage","getItem","isNaN","func","URLSearchParams","debug","removeItem","setItem","toISOString","reqHost","log","summary","writableEnded","respondToProxyError","FILE_EXTENSION_REGEX","DEFAULT_TTL","DEFAULT_MAX_SIZE","DEFAULT_MAX_ITEMS","MAX_CACHED_ITEM_SIZE","cache","totalSize","maxSize","maxItems","expiresAt","del","ttl","purgeExpired","getTotalSize","getItemCount","invalidateListeners","lastBearerTokens","invalidateProxyCache","watchedRegistries","WeakSet","isCacheKeyOf","userKey","invalidateUserProxyCache","getIdentityChange","getRequestBearerToken","lastBearerToken","changed","createResponseBuffer","chunks","alloc","totalLength","reduce","sum","initProxyCache","devServer","change","hasHeader","sessionAtStart","cleanUrl","generateCacheKey","hasVerifiedSession","cacheItem","header","setResponseHeaders","originalEnd","originalWrite","bufferedSize","passThrough","held","splice","decide","isCacheableResponse","encodingOrCallback","done","last","finalBuffer","responseSize","isStillSameIdentity","_setCookie","getHeaders","apiResponseCache","getCachedResponse","cached","setCachedResponse","pageDataLoaded","onPageDataLoaded","onPageDataLoadFailed","authProvider","reset","DEFAULT_REDIRECT_URL","getPageDataHeaders","onUserHost","_authorization","_token","rest","initLoadPPData","applyUrlRegExp","mi","appBase","isNeedTemplateLoad","requestPath","isApplyRequest","isAppNavigation","normalizedBase","isUnderBase","dest","isHtmlDocumentRequest","authState","getState","isAuthenticated","isRedirected","loadError","recordLoadError","handleTemplateLoad","encodeURIComponent","handlePageInfoOnly","setRedirected","redirectOnAuthFailure","success","updateState","handleLoadError","loadPageData","operationType","isAuthError","fullRedirectUrl","errorMessage","zipDirectoryToBuffer","dir","zip","JSZip","addDir","readdir","withFileTypes","full","isDirectory","isFile","relativePath","relative","generateAsync","compression","extractZipSafe","zipPath","loadAsync","createFolders","root","rawName","unsafeOriginalName","sep","unixPermissions","mkdir","recursive","writeFile","removeStaleDevTypes","projectRoot","nextConfig","distDir","devTypesDir","existsSync","rmSync","force","DEFAULT_BUILD_TIMEOUT_MS","signalBuild","proc","signal","ownGroup","pid","platform","kill","exitCode","signalCode","child_process","spawnSync","stdio","runBuildProcess","command","cwd","env","timeoutMs","killGraceMs","reject","aborted","spawn","detached","stopReason","killTimer","stop","graceful","clearTimeout","onAbort","timer","Math","round","settle","removeEventListener","runNextBuildProcess","nextBin","nextPkgPath","createRequire","execPath","NODE_ENV","PP_DEV_NEXT_BUILD_ENV_VAR","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","__filename","fileURLToPath","pluginPath","ZIP_SIGNATURE","DEFAULT_MAX_BACKUPS","metaFileName","BUILD_MANIFEST_FILE_NAME","TEMPLATE_VARIABLES_FILE_NAME","DistService","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","versionFileTemplate","buildInputFolder","nextBuild","maxBackups","buildTimeoutMs","metaDir","builds","AbortController","metaLoaded","syncOptions","createDefaultZipFileName","date","normalizeRelativeOutputPath","isInteger","Infinity","loadMeta","stopBuilds","abort","checkMeta","readMetaFile","meta","writeMetaFile","syncMeta","getLatestSavedBackup","lastBackupName","backupPath","stat","backupName","getBackupMeta","pruneBackups","justSaved","sampleDate","piece","placeholders","sort","a","b","position","backupNamePattern","protectedNames","newestFirst","all","mtimeMs","localeCompare","protectedCount","backup","excess","max","unlink","gray","pathToPosix","filePath","normalizeBackupManifestPath","normalizeExtractedRootDir","extractedDir","currentDir","listFilesRecursive","rootDir","fullPath","buildManifestChecksum","hashesConcatenated","crypto","createHash","update","digest","buildBackupFingerprint","normalizedEntries","versionFileTemplateMatcher","placeholderPattern","segments","lastIndex","staticPart","trailingStaticPart","isTemplateVariablesBasename","fileBasename","pickTemplateVariablesFromBackupZip","relativePaths","contentRootDir","basename","absolutePath","fileData","actualHash","manifestHash","resolveBackupAnalysisFromZip","backupFile","tempDir","mkdtemp","os","tmpdir","buildManifestCandidates","buildManifestPath","buildManifest","buildManifestAbsolutePath","manifestType","versionFile","buildFingerprint","versionManifestPath","requestedVersionFile","exactMatchCandidates","basenameMatchCandidates","resolvedCandidates","compat","versionFileRequired","versionFileMatcher","versionManifestCandidates","normalizedManifestFiles","templateVariables","manifestChecksum","manifestFileActualHashes","versionManifestHashMismatches","versionManifestAbsolutePath","manifest","checksum","expectedHash","normalizedPath","prototype","hasOwnProperty","expected","actual","mismatchedManifestPaths","fingerprintFiles","unknownFiles","backupFingerprint","buildManifestMismatch","mainHash","allFilesInMeta","rm","analyzeBackup","equals","subarray","getPublicTemplateVariablesHash","templateVariablesPath","readPublicTemplateVariablesFile","saveTemplateVariablesFile","saveBackup","precomputedAnalysis","resolvedAnalysis","resolvedBackupFileHash","lastSavedBackup","lastBackupHash","lastMainHash","backupDate","filename","lastBackupDate","buildNewAssets","buildNextAssets","buildCommand","logBuild","buildInputPath","throwIfStopped","assetFile","saveBackupAndBuild","outDir","writeBuildVersionManifest","packageVersion","packageRepositoryUrl","packageBranchName","stopped","build","ClientService","server","eventMap","syncInFlight","syncActionResolvers","onInfoDataRequest","bind","onTemplateSync","onTemplateSyncActionResponse","onPageVariablesReload","init","ws","event","handler","clearAllPendingSyncActions","dispose","distService","resolveSyncAction","requestId","approved","timeoutId","sendSyncResponse","client","payload","send","_data","requestSyncAction","randomUUID","syncActionTimeoutMs","cancel","readyState","OPEN","sync","runTemplateSync","config","clientInjectionPlugin","canSync","currentAssets","isAxiosError","validation","refresh","validationError","cause","httpStatus","newAssets","backupAnalysis","onlyTemplateVariablesMismatch","mm","templateVarMismatches","otherManifestMismatches","mixedTemplateAndOthers","pathsForVersionModal","promptReplaceTemplateVariables","confirmText","cancelText","cancelled","maxPaths","paths","listed","remainder","fileList","suffix","updateResult","backupMeta","syncedAt","getTime","currentHash","backupFilename","syncError","reloaded","count","skipped","TEMPLATE_VARIABLE_TAG_TYPES","isTemplateVariableTagType","BOOLEAN_ALLOWED_VALUES","COLOR_PATTERN","optionMatches","normalizeFieldOption","optionId","validateListItemFieldValue","tagName","itemLabel","field","isSelectLike","severity","stringValue","o","unmatched","validateListItems","tag","fields","additionalOptions","normalizeListItemFields","additional_options","fieldNames","issues","itemRecord","extraKeys","validateValueAgainstTag","tag_type","typeCompatibilityIssue","VARIABLES_EDITOR_PATH","NAME_FORMAT_REGEX","MISSING_DEPS_ERROR","readSchemaFile","schema","readSchema","registerVariablesEditorRoutes","deps","exists","invalidIndex","warnings","seenNames","details","live","combined","schemaMap","liveMap","knownNames","default_value","buildPageVariablesExport","local","readPageVariableEntries","localError","allPages","currentPage","sameTemplate","currentPageName","sourceValues","importable","sourceValue","issue","tagType","planPageVariablesImport","USERS_API_PATH","toPublicUser","loginUrl","sendError","readStoredUsers","readFileSync","keptRegistries","keepingListeners","stopKeeping","keepTokenUsers","miUrl","homeDir","homedir","getUserStorePath","project","stored","restoring","addingStored","changedWhileRestoring","removedWhileRestoring","removedHere","save","registered","tokenUsers","names","othersUsers","version","tmp","mkdirSync","writeFileSync","renameSync","chmodSync","writeStoredUsers","stopOnRemove","stopOnChange","checks","checkToken","startKeepingUsers","persist","getMiAPIOptions","backendBaseURL","settings","MI_ACCESS_TOKEN","resolveProxyCacheTtl","cacheTtl","getIndexPageRegExp","getProxyIgnore","startSyncAndUsers","clientService","internalServer","getUsers","available","nameError","contextAtStart","patch","newName","edited","_state","registerUserRoutes","persistUsers","INTERNAL_JSON_BODY_LIMIT","bodyParserErrorHandler","createInternalServer","allowedHosts","express","use","createOriginGuard","urlencoded","extended","entrySize","toMeta","requestSize","RequestStore","insertOrder","maxEntries","evictOldest","oldest","old","allocateId","storedEntry","bodyBytes","toUpperCase","matches","i","reverse","skip","REDACTED","SESSION_COOKIE_IN_COOKIE","SESSION_COOKIE_IN_SET_COOKIE","redactRequestHeaders","redacted","scheme","credentials","redactResponseHeaders","redactCookie","AUTH_PATH_REGEXP","CREDENTIAL_FIELD_REGEXP","redactJsonValue","found","fromEntries","inner","any","redactRequestBody","credentialKeys","SKIP_PREFIXES","SKIP_EXACT","createRequestCaptureMiddleware","startTime","reqChunks","reqSize","reqTruncated","origReqEmit","emit","buf","isBuffer","resChunks","resSize","resTruncated","origWrite","origEnd","captureChunk","ArrayBuffer","isView","byteOffset","getWriteEncoding","detectSource","finalized","finalize"],"mappings":"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"}
|