@metricinsights/pp-dev 1.5.0-beta.21 → 1.5.0-beta.22

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-capture.middleware-Chm27VXb.js","sources":["../../../src/lib/client-page.ts","../../../src/lib/request-inspector.ts","../../../src/lib/rewrite-response.middleware.ts","../../../src/lib/helpers/url.helper.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/shared/ws-messages.ts","../../../src/lib/page-variables-diff.ts","../../../src/lib/variables-editor.ts","../../../src/lib/user-routes.ts","../../../src/lib/user-store.ts","../../../src/lib/internal.middleware.ts","../../../src/lib/request-store.ts","../../../src/lib/request-capture.middleware.ts","../../../src/lib/dev-server-setup.ts","../../../src/lib/pp-redirect.middleware.ts","../../../src/lib/helpers/content-encoding.helper.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":["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","normalizeHeaderValue","v","String","formatBytes","bytes","toFixed","asEncoding","toBuffer","chunk","encoding","Buffer","from","Uint8Array","escapeRegExp","urlReplaceRegExps","Map","originRegExps","urlReplacer","originalHost","destinationHost","urlReplaceRegExp","port","test","RegExp","set","args","keep","url","secure","slashes","at","urlPathReplacer","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","redirect","statusCode","cutUrlParams","split","BaseAPI","axios","constructor","this","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","includes","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","internalPageName","create","PageTemplateAPI","internal_name","page_templates","page_template","PageVariableAPI","getById","pageId","page_id","tags","parsed","JSON","parse","TypeError","malformedIndex","findIndex","entry","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","slice","getRequestCookie","cookieHeader","getSetCookieValue","rewriteSetCookieHeader","tokenLoginFunction","host","TOKEN_TYPE_CONFIG","personal","label","regular","updateTokenUI","tokenInput","tokenCaption","info","link","document","createElement","href","target","style","color","textDecoration","textContent","replaceChildren","showError","errorElement","classList","add","hideError","remove","setupEventHandlers","formWrapper","submitButton","addEventListener","async","e","preventDefault","focus","tokenTypeSwitcher","getElementById","activeOption","querySelector","tokenType","dataset","token","response","fetch","method","body","URL","window","location","origin","pathname","startsWith","json","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","USER_NAME_PATTERN","raw","USER_NAME_REGEXP","USER_HOST_SUFFIX","getUserNameError","length","getUserNameFromHost","hostname","endsWith","getUserOrigin","exec","userRegistry","users","removeListeners","changeListeners","inReplace","sessionChangeListeners","defaultUserName","renamed","resolved","context","useContext","clear","list","user","kind","saved","state","delete","notifyChange","wasDefault","olderNames","to","listener","renamedTo","keys","onRemove","onSessionChange","sessionChanged","onChange","defaultUser","setDefaultUser","session","resolve","requestUser","LOGIN_LOCATION_REGEXP","getOtherCookies","isLoggedOutResponse","SessionUserTracker","check","logger","createLogger","checking","guestSessions","unverified","superseded","isLeftBehindRequest","sentSession","isLeftBehind","onOwnHost","requestSession","newSession","candidate","replaced","ownHost","Date","now","retryAt","expire","verify","miUser","warn","colors","yellow","wasActive","supersede","blue","username","Boolean","size","reason","whoIs","miAPI","quiet","user_id","refused","checkUserToken","answer","Authorization","ok","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","contentEncoding","streamResponseInterceptor","interceptor","proxyRes","rewrite","statusMessage","entries","pipe","decoder","StringDecoder","pending","waitingForDrain","flush","text","write","pause","once","resume","on","lastBreak","lastIndexOf","cut","index","lastNonOriginCharIndex","FILE_EXTENSION_REGEX","DEFAULT_TTL","DEFAULT_MAX_SIZE","DEFAULT_MAX_ITEMS","MAX_CACHED_ITEM_SIZE","cache","items","totalSize","maxSize","maxItems","expiresAt","del","ttl","cleanup","purgeExpired","getTotalSize","getItemCount","invalidateListeners","lastBearerTokens","invalidateProxyCache","watchedRegistries","WeakSet","isCacheKeyOf","cacheKey","userKey","invalidateUserProxyCache","getIdentityChange","getRequestBearerToken","lastBearerToken","changed","getHeader","createResponseBuffer","chunks","alloc","totalLength","reduce","sum","byteLength","concat","apiResponseCache","getCachedResponse","cached","timestamp","setCachedResponse","pageDataLoaded","onPageDataLoaded","onPageDataLoadFailed","authProvider","reset","DEFAULT_REDIRECT_URL","getPageDataHeaders","onUserHost","authorization","_authorization","_token","rest","handlePageInfoOnly","mi","options","redirectOnAuthFailure","redirectUrl","red","green","getPageInfo","success","updateState","isAuthenticated","handleLoadError","encodeURIComponent","handleTemplateLoad","templateLess","loadPageData","getPageTemplate","getPageVariables","operationType","isAuthError","fullRedirectUrl","errorMessage","zipDirectoryToBuffer","dir","zip","JSZip","addDir","current","readdir","withFileTypes","full","isDirectory","isFile","relativePath","relative","generateAsync","compression","extractZipSafe","zipPath","loadAsync","createFolders","root","rawName","unsafeOriginalName","dest","sep","unixPermissions","mkdir","recursive","writeFile","DEFAULT_BUILD_TIMEOUT_MS","signalBuild","proc","signal","ownGroup","pid","process","platform","kill","exitCode","signalCode","child_process","spawnSync","stdio","runBuildProcess","command","cwd","env","timeoutMs","killGraceMs","Promise","reject","aborted","spawn","detached","stopReason","killTimer","stop","graceful","clearTimeout","setTimeout","onAbort","timer","Math","round","settle","removeEventListener","runNextBuildProcess","projectRoot","nextBin","nextPkgPath","createRequire","execPath","NODE_ENV","PP_DEV_NEXT_BUILD_ENV_VAR","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","__filename","fileURLToPath","require","pathToFileURL","_documentCurrentScript","tagName","toUpperCase","src","baseURI","pluginPath","ZIP_SIGNATURE","DEFAULT_MAX_BACKUPS","metaFileName","BUILD_MANIFEST_FILE_NAME","TEMPLATE_VARIABLES_FILE_NAME","ClientService","server","eventMap","syncInFlight","syncActionResolvers","onInfoDataRequest","bind","onTemplateSync","onTemplateSyncActionResponse","onPageVariablesReload","init","ws","event","handler","clearAllPendingSyncActions","dispose","distService","stopBuilds","resolveSyncAction","requestId","approved","timeoutId","sendSyncResponse","client","payload","send","_data","requestSyncAction","randomUUID","syncActionTimeoutMs","cancel","off","readyState","OPEN","sync","runTemplateSync","config","clientInjectionPlugin","v7Features","isV710OrHigher","canSync","currentAssets","getAssets","isAxiosError","validation","validateCredentials","isValid","refresh","validationError","cause","httpStatus","newAssets","backupAnalysis","analyzeBackup","saveBackup","onlyTemplateVariablesMismatch","unknownFiles","versionManifestHashMismatches","basename","mm","templateVarMismatches","m","otherManifestMismatches","mixedTemplateAndOthers","pathsForVersionModal","promptReplaceTemplateVariables","templateVariables","getPublicTemplateVariablesHash","actualHash","title","confirmText","cancelText","saveTemplateVariablesFile","cancelled","maxPaths","paths","listed","remainder","fileList","p","suffix","buildManifestMismatch","expected","actual","buildNewAssets","stopped","updateResult","updateAssets","backupMeta","getBackupMeta","backupDate","lastBackupDate","syncedAt","Number","isNaN","getTime","toISOString","currentHash","lastBackupHash","backupFilename","lastBackupName","syncError","reloaded","reloadPageVariables","count","skipped","TEMPLATE_VARIABLE_TAG_TYPES","isTemplateVariableTagType","BOOLEAN_ALLOWED_VALUES","COLOR_PATTERN","optionMatches","normalizeFieldOption","optionId","validateListItemFieldValue","itemLabel","field","isSelectLike","severity","stringValue","o","unmatched","validateListItems","tag","fields","additionalOptions","normalizeListItemFields","additional_options","fieldNames","issues","item","push","itemRecord","extraKeys","validateValueAgainstTag","tag_type","typeCompatibilityIssue","VARIABLES_EDITOR_PATH","NAME_FORMAT_REGEX","MISSING_DEPS_ERROR","readSchemaFile","buffer","readPublicTemplateVariablesFile","toString","schema","readSchema","registerVariablesEditorRoutes","deps","existing","exists","invalidIndex","warnings","seenNames","details","live","getLivePageVariables","combined","schemaMap","liveMap","knownNames","default_value","buildPageVariablesExport","local","localPageVariables","readPageVariableEntries","localError","applyPageVariables","allPages","listPages","currentPage","find","sameTemplate","template_id","template","currentPageName","isInteger","sourceValues","getPageVariablesFor","importable","sourceValue","issue","tagType","planPageVariablesImport","isTemplateLess","USERS_API_PATH","toPublicUser","loginUrl","sendError","readStoredUsers","readFileSync","keptRegistries","keepingListeners","stopKeeping","keepTokenUsers","miUrl","homeDir","os","homedir","hash","createHash","update","digest","getUserStorePath","meta","project","stored","restoring","addingStored","changedWhileRestoring","removedWhileRestoring","removedHere","save","registered","tokenUsers","names","othersUsers","version","tmp","mkdirSync","mode","writeFileSync","renameSync","chmodSync","writeStoredUsers","stopOnRemove","stopOnChange","checks","all","checkToken","startKeepingUsers","persist","personalAccessToken","INTERNAL_JSON_BODY_LIMIT","bodyParserErrorHandler","headersSent","entrySize","requestBody","responseBody","toMeta","duration","source","requestSize","responseSize","requestBodyTruncated","responseBodyTruncated","REDACTED","SESSION_COOKIE_IN_COOKIE","SESSION_COOKIE_IN_SET_COOKIE","redactRequestHeaders","redacted","scheme","credentials","redactResponseHeaders","setCookie","redactCookie","AUTH_PATH_REGEXP","CREDENTIAL_FIELD_REGEXP","redactJsonValue","found","fromEntries","inner","any","redactRequestBody","URLSearchParams","credentialKeys","SKIP_PREFIXES","SKIP_EXACT","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","versionFileTemplate","buildInputFolder","nextBuild","maxBackups","buildTimeoutMs","metaDir","builds","AbortController","metaLoaded","syncOptions","createDefaultZipFileName","date","normalizeRelativeOutputPath","Infinity","loadMeta","abort","checkMeta","readMetaFile","writeMetaFile","syncMeta","getLatestSavedBackup","backupPath","stat","backupName","pruneBackups","justSaved","isFinite","sampleDate","piece","placeholders","sort","a","b","position","backupNamePattern","protectedNames","newestFirst","mtimeMs","localeCompare","protectedCount","backup","excess","max","unlink","gray","pathToPosix","filePath","normalizeBackupManifestPath","normalizeExtractedRootDir","extractedDir","currentDir","listFilesRecursive","rootDir","fullPath","buildManifestChecksum","hashesConcatenated","crypto","buildBackupFingerprint","normalizedEntries","versionFileTemplateMatcher","placeholderPattern","segments","lastIndex","match","staticPart","trailingStaticPart","isTemplateVariablesBasename","fileBasename","pickTemplateVariablesFromBackupZip","relativePaths","contentRootDir","absolutePath","fileData","manifestHash","resolveBackupAnalysisFromZip","backupFile","tempDir","mkdtemp","tmpdir","buildManifestCandidates","buildManifestPath","buildManifest","buildManifestAbsolutePath","manifestType","versionFile","buildFingerprint","versionManifestPath","requestedVersionFile","exactMatchCandidates","basenameMatchCandidates","resolvedCandidates","compat","versionFileRequired","versionFileMatcher","versionManifestCandidates","normalizedManifestFiles","manifestChecksum","manifestFileActualHashes","versionManifestAbsolutePath","manifest","checksum","expectedHash","normalizedPath","prototype","hasOwnProperty","call","mismatchedManifestPaths","fingerprintFiles","backupFingerprint","mainHash","allFilesInMeta","rm","force","equals","subarray","templateVariablesPath","precomputedAnalysis","resolvedAnalysis","resolvedBackupFileHash","lastSavedBackup","lastMainHash","filename","buildNextAssets","cyan","buildCommand","logBuild","buildInputPath","throwIfStopped","assetFile","assets","stack","saveBackupAndBuild","distDir","outDir","writeBuildVersionManifest","packageVersion","packageRepositoryUrl","packageBranchName","build","pageTemplate","pageTitle","pageVars","pageVarsLoaded","pageVarReplacements","pageShell","templateLoaded","templateLoadedResolve","assetsApi","pageApi","pageTemplateApi","pageVariableApi","baseURL","disableSSLValidation","httpsAgent","https","Agent","keepAlive","rejectUnauthorized","timeout","httpAgent","http","isTemplateLoaded","clearHeaders","obj","referer","updateHeaders","localTemplateHTML","enabled","visible_in_homepage","start","pageIdToFetch","fetchV7Page","fetchLegacyPage","handlePageFetchError","buildPage","miHudLess","result","regExp","getPageVarReplacements","getJSDOM","serialize","before","after","getPageShell","vars","replacements","dom","placeholderText","container","scripts","insertBefore","titleElement","titleEl","serializedDom","pageInfo","templateInfo","testHeaders","errorInfo","normalizedHeaders","contextPrefix","suggestion","logTokenError","tokenErrorInfo","insertOrder","maxMemory","maxEntries","evictOldest","oldest","old","allocateId","storedEntry","bodyBytes","search","matches","limit","offset","i","reverse","skip","memoryUsage","allowedHosts","express","use","createOriginGuard","urlencoded","extended","store","captureLimit","startTime","reqChunks","reqSize","reqTruncated","origReqEmit","emit","buf","isBuffer","resChunks","resSize","resTruncated","origWrite","origEnd","captureChunk","ArrayBuffer","isView","byteOffset","getWriteEncoding","detectSource","getHeaders","finalized","requestHeaders","responseHeaders","finalize","registry","isPageNavigation","originalUrl","base","backendBaseURL","settings","MI_ACCESS_TOKEN","applyUrlRegExp","appBase","isNeedTemplateLoad","requestPath","isApplyRequest","isAppNavigation","normalizedBase","isUnderBase","isHtmlDocumentRequest","authState","getState","isRedirected","loadError","recordLoadError","writableEnded","setRedirected","templateName","baseWithoutTrailingSlash","parsedUrl","findPaths","PATH_TEMPLATE_PREFIX","PATH_TEMPLATE_LOCAL_PREFIX","rewritePath","getMiHost","fileType","sessionUsers","Cookie","createSessionCheck","createProxyMiddleware","selfHandleResponse","pathFilter","proxyIgnore","rP","changeOrigin","proxyReq","getOriginRegExp","removeHeader","sessionUser","others","withoutSessionCookie","requestUrl","u","segmentDecoded","decodeURIComponent","rewriteDataPagePathForV7Proxy","protocol","abortUpstream","destroyed","destroy","serverRes","miHost","devHost","rewriteLocationHeader","loggedOutUser","getLoggedOutUser","identity","fetchMode","writeHead","savedUser","passSession","leftBehind","otherCookies","withoutSessionSetCookie","rewriteUrls","handling","contentLength","isHtmlContentType","getResponseHandling","rewriteInterceptor","responseInterceptor","responseBuffer","fileTypeFromBuffer","reqUrl","searchParams","redirectToFunction","storageKey","lastRedirectKey","redirectCount","localStorage","getItem","func","debug","removeItem","setItem","reqHost","log","summary","respondToProxyError","devServer","change","hasHeader","sessionAtStart","cleanUrl","generateCacheKey","hasVerifiedSession","cacheItem","header","setResponseHeaders","originalEnd","originalWrite","bufferedSize","passThrough","held","splice","decide","isCacheableResponse","encodingOrCallback","callback","done","nextTick","last","finalBuffer","isStillSameIdentity","_setCookie","predicate","cb","arg","buffers","endCallback","unzipSync","brotliDecompressSync","inflateSync","decodeContent","output","gzipSync","brotliCompressSync","deflateSync","encodeContent","activeStore","query","parsedLimit","parseInt","requests","total","memoryUsageFormatted","maxMemoryFormatted","requestContentType","responseContentType","requestBodySize","responseBodySize","nextConfig","devTypesDir","existsSync","rmSync","cacheTtl","clientService","internalServer","getUsers","available","nameError","contextAtStart","patch","newName","edited","_state","registerUserRoutes","persistUsers"],"mappings":"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"}
@@ -1,2 +0,0 @@
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