@metricinsights/pp-dev 0.12.4 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +47 -2
- package/dist/CHANGELOG.md +25 -0
- package/dist/README.md +47 -2
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/index-T0XDMDNT.js +2 -0
- package/dist/cjs/index-T0XDMDNT.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/package.json +6 -3
- package/dist/cjs/plugin-DGza708W.js +2 -0
- package/dist/cjs/plugin-DGza708W.js.map +1 -0
- package/dist/cjs/plugin.js +1 -1
- package/dist/esm/cli.js +1 -1
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/index-aC9rEH6_.js +2 -0
- package/dist/esm/index-aC9rEH6_.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/package.json +6 -3
- package/dist/esm/plugin-DfeYt66p.js +2 -0
- package/dist/esm/plugin-DfeYt66p.js.map +1 -0
- package/dist/esm/plugin.js +1 -1
- package/dist/types/index.d.ts +15 -208
- package/package.json +6 -3
- package/dist/cjs/index-1BlQDvLy.js +0 -2
- package/dist/cjs/index-1BlQDvLy.js.map +0 -1
- package/dist/cjs/plugin-xN0M6WT7.js +0 -2
- package/dist/cjs/plugin-xN0M6WT7.js.map +0 -1
- package/dist/esm/index-DboCTg4P.js +0 -2
- package/dist/esm/index-DboCTg4P.js.map +0 -1
- package/dist/esm/plugin-_rCgP0h-.js +0 -2
- package/dist/esm/plugin-_rCgP0h-.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e,v as t}from"./plugin-_rCgP0h-.js";import*as n from"fs";import{readFileSync as a,existsSync as s,readdirSync as i,writeFileSync as o,unlink as r}from"fs";import*as c from"path";import p,{resolve as l}from"path";import{fileURLToPath as m,pathToFileURL as u}from"url";import{normalizePath as f}from"vite";import{compile as d}from"ejs";const g=l("undefined"!=typeof __filename&&__filename||m(import.meta.url),"../../.."),h=l("undefined"!=typeof __filename&&__filename||m(import.meta.url),"../.."),j=s(l(g,"package.json"))?g:h,v=l(j,"dist/client/client.js"),{version:w,name:y}=JSON.parse(a(l(j,"package.json")).toString()),b=w,x=y,$=[".pp-watch.config.js",".pp-watch.config.ts",".pp-watch.config.json"],D=[".pp-dev.config.js",".pp-dev.config.cjs",".pp-dev.config.mjs",".pp-dev.config.ts",".pp-dev.config.cts",".pp-dev.config.mts",".pp-dev.config.json","pp-dev.config.js","pp-dev.config.cjs","pp-dev.config.mjs","pp-dev.config.ts","pp-dev.config.cts","pp-dev.config.mts","pp-dev.config.json"];const _=new class{cache=new Map;_maxSize;constructor(e=10){this._maxSize=e}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=e}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,t),t}}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this._maxSize){const e=this.cache.keys().next().value;void 0!==e&&this.cache.delete(e)}this.cache.set(e,t)}clear(){this.cache.clear()}has(e){return this.cache.has(e)}}(5),S=new Map,P=c.dirname("undefined"!=typeof __filename&&__filename||m(new URL(".",import.meta.url))),k=`/${x}/client`,E=`/${k}`,I=new RegExp(`^\\/?${x}\\/client\\/(.*)$`);const N={templateCompilations:0,cacheHits:0,totalRequests:0};function O(e){let t="",a=!1,s=null;return{name:"pp-dev:client",apply:"serve",config:e=>(e.optimizeDeps?.exclude?.push(`${x}/client`),e),resolveId(e){if(I.test(e))return{id:f(c.join(j,"dist/client",e.replace(I,"$1")))}},transformIndexHtml:async(e,i)=>{N.totalRequests++;const o=i.server?.config.base||"";o!==t&&(t=o,a=!0,s=null),s&&!a||(_.has(t)?(s=_.get(t),N.cacheHits++):(s=function(e,t=!0){const a=e;if(t&&_.has(a))return _.get(a);const s=c.resolve(P,"client","index.html");let i;S.has(s)?i=S.get(s):(i=n.readFileSync(s,{encoding:"utf8"}),S.set(s,i));const o=E.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=d(i.replace(new RegExp(o,"g"),c.posix.join(e,k)),{openDelimiter:"{",closeDelimiter:"}",async:!0,cache:!0,filename:s,rmWhitespace:!0,compileDebug:!1});return t&&_.set(a,r),r}(t,true),N.templateCompilations++),a=!1);const r=function(e){return{css:c.posix.join(e,x,"client/client.css"),js:c.posix.join(e,x,"client/client.js")}}(t),p={html:e,tags:[{tag:"link",injectTo:"head",attrs:{rel:"stylesheet",href:r.css}}]},{backendBaseURL:l,templateLess:m,portalPageId:u,canSync:f=!0}=i.server?.config.clientInjectionPlugin||{},g={PACKAGE_NAME:x,VERSION:b,backendBaseURL:l,templateLess:m,portalPageId:u,canSync:f};return p.tags.push({tag:"div",injectTo:"body-prepend",children:await s(g)}),p.tags.push({tag:"script",injectTo:"body-prepend",attrs:{src:r.js,type:"module"}}),p},configureServer(e){const t=f(c.resolve(e.config.root,c.dirname(v)));e.config.server?.fs?.allow&&e.config.server.fs.allow.push(t),e.middlewares.use("/@api/__pp-dev-metrics",((e,t)=>{t.setHeader("Content-Type","application/json"),t.end(JSON.stringify(N,null,2))}))},closeBundle(){_.clear(),S.clear()}}}const R=(e,t)=>` * ${t}`;function z(e){return`/*!\n${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,R)}\n */`}async function L(){try{const[e,t]=await Promise.all([import("next"),import("next/constants.js")]);return{next:e.default,constants:t}}catch(e){throw new Error(`Next.js is required but not available. Please install Next.js as a dependency:\nnpm install next@^15\n\nThis package requires Next.js >=15 <17 as a peer dependency.\n\nError: ${e}`)}}async function T(){try{return await import("next"),!0}catch(e){return!1}}async function C(){try{return(await import("next/package.json")).version}catch{return null}}const F=new Map,B=3e4;let H=null;function M(){const e=Date.now();if(H&&e-H.timestamp<6e4)return H.data;const t=process.cwd();try{const n=JSON.parse(a(p.resolve(t,"package.json"),{encoding:"utf-8",flag:"r"}));return H={data:n,timestamp:e},n}catch{const t={};return H={data:t,timestamp:e},t}}let U=null;async function V(e){const t=process.cwd(),n=`ts:${e}`,a=F.get(n);if(a&&Date.now()-a.timestamp<B)return a.data;let i=!1;if(/\.m[jt]s$/.test(e))i=!0;else if(/\.c[jt]s$/.test(e))i=!1;else{const e=M();i=!!e&&"module"===e.type}const c=await async function(){return U||(U=await import("esbuild")),U}(),l=await c.build({absWorkingDir:t,entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,format:i?"esm":"cjs",mainFields:["main"],sourcemap:"inline",metafile:!0}),{text:m}=l.outputFiles[0],f=`${`pp-config.timestamp-${Date.now()}-${Math.random().toString(16).slice(2)}`}.js`,d=u(p.resolve(t,f)).toString();o(f,m);let g={};try{const t=(await import(d)).default;g=t?.default||t,F.set(n,{data:g,timestamp:Date.now(),filePath:e})}finally{s(f)&&r(f,(()=>{}))}return g}async function q(e){const t=`js:${e}`,n=F.get(t);if(n&&Date.now()-n.timestamp<B)return n.data;const a=(await import(u(e).toString())).default;return F.set(t,{data:a,timestamp:Date.now(),filePath:e}),a}async function A(e){const t=`json:${e}`,n=F.get(t);if(n&&Date.now()-n.timestamp<B)return n.data;const s=JSON.parse(a(e,{encoding:"utf-8"}));return F.set(t,{data:s,timestamp:Date.now(),filePath:e}),s}let J=null;async function W(e,t){for(const n of t)if(e.includes(n)){if(/\.[cm]?ts$/i.test(n))return await V(n);if(/\.[cm]?js$/i.test(n))return await q(p.resolve(".",n));if(n.endsWith(".json"))return await A(p.resolve(".",n))}return null}function G(){return M()}async function K(){const e=function(){const e=Date.now();if(J&&e-J.timestamp<1e4)return J.files;const t=/\.config\.(([cm]?ts)|([cm]?js)|(json))$/,n=process.cwd(),a=i(n,{withFileTypes:!0}).filter((e=>e.isFile()&&t.test(e.name))).map((e=>e.name));return J={files:a,timestamp:e},a}();let t={},n=!1;const a=await W(e,D);if(a&&(t=a,n=!0),e.length&&!n){const a=await W(e,$);a&&(t={backendBaseURL:a.baseURL,portalPageId:a.portalPageId},n=!0)}const s=M();return n||"object"!=typeof s["pp-dev"]||(t=s["pp-dev"]),t}const Z=Object.freeze({__proto__:null,clearConfigCache:function(){F.clear(),H=null,J=null},getConfig:K,getPkg:G});async function Q(){const n=G().name,a=await K(),s=e(Object.assign(a,{templateName:n})),i=[t(s),O()],{outDir:o,distZip:r,imageOptimizer:c,templateLess:p,integrateMiTopBar:l}=s;if(l&&i.push({name:"mi-topbar-plugin",transformIndexHtml:()=>[{tag:"script",injectTo:"head-prepend",attrs:{src:"/auth/info.js"}},{tag:"script",injectTo:"head-prepend",attrs:{src:"/js/main.js",defer:"defer"}},{tag:"link",injectTo:"head-prepend",attrs:{href:"/css/main.css",rel:"stylesheet"}},{tag:"div",injectTo:"body-prepend",attrs:{id:"mi-react-root"}}]}),c){const{ViteImageOptimizer:e}=await import("vite-plugin-image-optimizer");i.push(e("object"==typeof c?c:void 0))}if(r){const{default:e}=await import("vite-plugin-zip-pack");i.push({...e("object"==typeof r?r:{outFileName:`${n}.zip`}),enforce:"post"})}return{base:p?`/p/${n}`:`/pt/${n}`,server:{port:3e3},build:{minify:!1,assetsInlineLimit:4096,rollupOptions:{output:{banner:z}},outDir:o},css:{modules:{localsConvention:"dashes"},scss:{api:"modern"}},ppDevConfig:s,plugins:i}}function X(e){return e?.experimental?.ppDev||e?.ppDev||{}}function Y(e,t,n){return Object.assign({},e,t,n)}function ee(e,t){return async(n,a={})=>{try{const{constants:s}=await L(),{PHASE_DEVELOPMENT_SERVER:i}=s,o=await K(),r=G().name,c="function"==typeof e?await e(n,a):e,p=X(c),l=n===i,m=function(e,t,n,a){return n?t?`/p/${e}`:`/pl/${e}`:a?`/pt/${e}`:`/pl/${e}`}(r,o.templateLess??!1,l,o.v7Features??!1),u={basePath:m,trailingSlash:!!l||void 0};if(l){const e=function(e,t){const{appId:n,portalPageId:a,backendBaseURL:s,templateLess:i,v7Features:o,...r}=t,c=n||a,p={backendBaseURL:s,portalPageId:c,appId:c,templateLess:i,v7Features:o,...r};return{serverRuntimeConfig:{templateName:e,ppDevConfig:p},publicRuntimeConfig:{templateName:e,ppDevConfig:p},experimental:{ppDev:p}}}(r,Object.assign({},o,p,t));return Y(u,c,e)}return Y(u,c)}catch(t){console.error("Error in withPPDev:",t),console.warn("Falling back to original Next.js configuration");try{return"function"==typeof e?await e(n,a):e}catch(e){return console.error("Error in fallback configuration:",e),{}}}}}export{D as P,b as V,$ as a,X as b,C as c,Z as d,Q as g,T as i,L as s,ee as w};
|
|
2
|
-
//# sourceMappingURL=index-DboCTg4P.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DboCTg4P.js","sources":["../../../src/constants.ts","../../../src/plugins/client-injection-plugin.ts","../../../src/banner/header.ts","../../../src/lib/next-import.ts","../../../src/config.ts","../../../src/index.ts","../../../src/plugins/mi-topbar-plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["afterBundlePath","resolve","__filename","fileURLToPath","url","beforeBundlePath","PP_DEV_PACKAGE_DIR","existsSync","PP_DEV_CLIENT_ENTRY","version","name","JSON","parse","readFileSync","toString","VERSION","PACKAGE_NAME","PP_WATCH_CONFIG_NAMES","PP_DEV_CONFIG_NAMES","templateCache","cache","Map","_maxSize","constructor","maxSize","this","value","get","key","has","delete","set","size","firstKey","keys","next","undefined","clear","fileCache","DIRNAME","path","dirname","URL","PACKAGE_IMPORT","CLIENT_PATH","PACKAGE_REGEXP","RegExp","performanceMetrics","templateCompilations","cacheHits","totalRequests","clientInjectionPlugin","opts","base","baseChanged","currentTemplate","apply","config","optimizeDeps","exclude","push","resolveId","source","test","id","normalizePath","join","replace","transformIndexHtml","async","html","ctx","serverBase","server","enableCache","cacheKey","templatePath","templateContent","fs","encoding","escapedClientPath","compiledTemplate","compile","posix","openDelimiter","closeDelimiter","filename","rmWhitespace","compileDebug","getTemplate","assetPaths","css","js","getAssetPaths","result","tags","tag","injectTo","attrs","rel","href","backendBaseURL","templateLess","portalPageId","canSync","templateData","children","src","type","configureServer","clientDir","root","allow","middlewares","use","req","res","setHeader","end","stringify","closeBundle","replacer","substring","$1","header","chunk","safeNextImport","constants","Promise","all","import","default","error","Error","isNextAvailable","getNextVersion","configCache","CACHE_TTL","packageJsonCache","getPackageJson","now","Date","timestamp","data","cwd","process","flag","empty","esbuildModule","loadTsConfig","filePath","cached","isESM","pkg","esbuild","getEsbuild","build","absWorkingDir","entryPoints","outfile","write","target","platform","bundle","format","mainFields","sourcemap","metafile","text","code","outputFiles","fileNameTmp","Math","random","slice","fileUrl","pathToFileURL","writeFileSync","conf","unlink","loadJsConfig","loadJSONConfig","dirContentCache","loadConfig","dirFiles","configNames","configName","includes","endsWith","getPkg","getConfig","dirContent","files","endsWithRegExp","readdirSync","withFileTypes","filter","isFile","map","getDirectoryContent","configFound","newConfig","length","watchConfig","baseURL","getViteConfig","templateName","ppDevConfig","normalizedPPDevConfig","normalizeVitePPDevConfig","Object","assign","plugins","vitePPDev","outDir","distZip","imageOptimizer","integrateMiTopBar","defer","ViteImageOptimizer","zipPack","outFileName","enforce","port","minify","assetsInlineLimit","rollupOptions","output","banner","modules","localsConvention","scss","api","getPPDevConfigFromNextConfig","nextConfig","experimental","ppDev","mergeConfigs","baseConfig","nextConfiguration","additionalConfig","withPPDev","nextjsConfig","phase","PHASE_DEVELOPMENT_SERVER","nextConfigPPDev","isDevelopment","basePath","v7Features","createBasePath","trailingSlash","runtimeConfig","devConfig","appId","originalAppId","rest","normalizedConfig","serverRuntimeConfig","publicRuntimeConfig","createRuntimeConfig","console","warn","fallbackError"],"mappings":"0VAIA,MAAMA,EAAkBC,EAEC,oBAAfC,YAA8BA,YAAeC,cAA0BC,KAC/E,YAGIC,EAAmBJ,EAEA,oBAAfC,YAA8BA,YAAeC,cAA0BC,KAC/E,SAGWE,EAAqBC,EAAWN,EAAQD,EAAiB,iBAAmBA,EAAkBK,EAM9FG,EAAsBP,EAAQK,EAAoB,0BAEzDG,QAAEA,EAAOC,KAAEA,GAASC,KAAKC,MAAMC,EAAaZ,EAAQK,EAAoB,iBAAiBQ,YAElFC,EAAUN,EACVO,EAAeN,EAEfO,EAAwB,CAAC,sBAAuB,sBAAuB,yBAEvEC,EAAsB,CACjC,oBACA,qBACA,qBACA,oBACA,qBACA,qBACA,sBACA,mBACA,oBACA,oBACA,mBACA,oBACA,oBACA,sBCoCF,MAAMC,EAAgB,IApDtB,MACUC,MAAQ,IAAIC,IACZC,SAER,WAAAC,CAAYC,EAAkB,IAC5BC,KAAKH,SAAWE,EAGlB,WAAIA,GACF,OAAOC,KAAKH,SAGd,WAAIE,CAAQE,GACVD,KAAKH,SAAWI,EAGlB,GAAAC,CAAIC,GACF,GAAIH,KAAKL,MAAMS,IAAID,GAAM,CACvB,MAAMF,EAAQD,KAAKL,MAAMO,IAAIC,GAK7B,OAHAH,KAAKL,MAAMU,OAAOF,GAClBH,KAAKL,MAAMW,IAAIH,EAAKF,GAEbA,GAKX,GAAAK,CAAIH,EAAQF,GACV,GAAID,KAAKL,MAAMS,IAAID,GACjBH,KAAKL,MAAMU,OAAOF,QACb,GAAIH,KAAKL,MAAMY,MAAQP,KAAKH,SAAU,CAC3C,MAAMW,EAAWR,KAAKL,MAAMc,OAAOC,OAAOT,WAEzBU,IAAbH,GACFR,KAAKL,MAAMU,OAAOG,GAItBR,KAAKL,MAAMW,IAAIH,EAAKF,GAGtB,KAAAW,GACEZ,KAAKL,MAAMiB,QAGb,GAAAR,CAAID,GACF,OAAOH,KAAKL,MAAMS,IAAID,KAKwC,GAC5DU,EAAY,IAAIjB,IAGhBkB,EAAUC,EAAKC,QACI,oBAAfvC,YAA8BA,YACpCC,EAAc,IAAIuC,IAAI,gBAAiBtC,OAIrCuC,EAAiB,IAAI3B,WACrB4B,EAAc,IAAID,IAClBE,EAAiB,IAAIC,OAAO,QAAQ9B,sBA0D1C,MAAM+B,EAAqB,CACzBC,qBAAsB,EACtBC,UAAW,EACXC,cAAe,GAGX,SAAUC,EACdC,GAUA,IAAIC,EAAO,GACPC,GAAc,EACdC,EAAgD,KAEpD,MAAO,CACL7C,KAAM,gBACN8C,MAAO,QAEPC,OAASA,IACPA,EAAOC,cAAcC,SAASC,KAAK,GAAG5C,YAE/ByC,GAGT,SAAAI,CAAUC,GACR,GAAIjB,EAAekB,KAAKD,GACtB,MAAO,CACLE,GAAIC,EACFzB,EAAK0B,KACH5D,EACA,cACAwD,EAAOK,QAAQtB,EAAgB,QAKxC,EAEDuB,mBAAoBC,MAAOC,EAAMC,KAC/BxB,EAAmBG,gBAEnB,MAAMsB,EAAaD,EAAIE,QAAQhB,OAAOJ,MAAQ,GAE1CmB,IAAenB,IACjBA,EAAOmB,EACPlB,GAAc,EACdC,EAAkB,MAIfA,IAAmBD,IACHnC,EAAcU,IAAIwB,IACnCE,EAAkBpC,EAAcQ,IAAI0B,GACpCN,EAAmBE,cAEnBM,EArHV,SACEF,EACAqB,GAAuB,GAEvB,MAAMC,EAAWtB,EAEjB,GAAIqB,GAAevD,EAAcU,IAAI8C,GACnC,OAAOxD,EAAcQ,IAAIgD,GAI3B,MAAMC,EAAepC,EAAKvC,QAAQsC,EAAS,SAAU,cACrD,IAAIsC,EAEAvC,EAAUT,IAAI+C,GAChBC,EAAkBvC,EAAUX,IAAIiD,IAEhCC,EAAkBC,EAAGjE,aAAa+D,EAAc,CAAEG,SAAU,SAC5DzC,EAAUP,IAAI6C,EAAcC,IAI9B,MAAMG,EAAoBpC,EAAYuB,QAAQ,sBAAuB,QAC/Dc,EAAmBC,EACvBL,EAAgBV,QACd,IAAIrB,OAAOkC,EAAmB,KAC9BxC,EAAK2C,MAAMjB,KAAKb,EAAMV,IAExB,CACEyC,cAAe,IACfC,eAAgB,IAChBhB,OAAO,EACPjD,OAAO,EACPkE,SAAUV,EACVW,cAAc,EACdC,cAAc,IAQlB,OAJId,GACFvD,EAAcY,IAAI4C,EAAUM,GAGvBA,CACT,CAyE4BQ,CAAYpC,EArDG,MAsDjCN,EAAmBC,wBAGrBM,GAAc,GAGhB,MAAMoC,EA7EZ,SAAuBrC,GACrB,MAAO,CACLsC,IAAKnD,EAAK2C,MAAMjB,KAAKb,EAAMrC,EAAc,qBACzC4E,GAAIpD,EAAK2C,MAAMjB,KAAKb,EAAMrC,EAAc,oBAE5C,CAwEyB6E,CAAcxC,GAE3ByC,EAAmC,CACvCxB,OACAyB,KAAM,CACJ,CACEC,IAAK,OACLC,SAAU,OACVC,MAAO,CACLC,IAAK,aACLC,KAAMV,EAAWC,SAMnBU,eACJA,EAAcC,aACdA,EAAYC,aACZA,EAAYC,QACZA,GAAU,GACAjC,EAAIE,QAAQhB,OAAON,uBAAyB,CAAE,EAGpDsD,EAAe,CACnBzF,eACAD,UACAsF,iBACAC,eACAC,eACAC,WAkBF,OAfAV,EAAOC,KAAKnC,KAAK,CACfoC,IAAK,MACLC,SAAU,eACVS,eAAgBnD,EAAgBkD,KAGlCX,EAAOC,KAAKnC,KAAK,CACfoC,IAAK,SACLC,SAAU,eACVC,MAAO,CACLS,IAAKjB,EAAWE,GAChBgB,KAAM,YAIHd,CAAM,EAGf,eAAAe,CAAgBpC,GACd,MAAMqC,EAAY7C,EAChBzB,EAAKvC,QAAQwE,EAAOhB,OAAOsD,KAAMvE,EAAKC,QAAQjC,KAG5CiE,EAAOhB,OAAOgB,QAAQK,IAAIkC,OAC5BvC,EAAOhB,OAAOgB,OAAOK,GAAGkC,MAAMpD,KAAKkD,GAIrCrC,EAAOwC,YAAYC,IAAI,0BAA0B,CAACC,EAAKC,KACrDA,EAAIC,UAAU,eAAgB,oBAC9BD,EAAIE,IAAI3G,KAAK4G,UAAUxE,EAAoB,KAAM,GAAG,GAEvD,EAGD,WAAAyE,GACErG,EAAckB,QACdC,EAAUD,OAGX,EAEL,CCrSA,MAIMoF,EAAW,CAACC,EAAmBC,IAAe,MAAYA,IAElD,SAAAC,EAAWC,GAIvB,MAAO,QAHS,0DAGU1D,QAAQ,WAAYsD,SAChD,CCIOpD,eAAeyD,IACpB,IACE,MAAO3F,EAAM4F,SAAmBC,QAAQC,IAAI,CAC1CC,OAAO,QACPA,OAAO,uBAGT,MAAO,CACL/F,KAAMA,EAAKgG,QACXJ,aAEF,MAAOK,GACP,MAAM,IAAIC,MAIN,kLAAUD,KAGlB,CAKO/D,eAAeiE,IACpB,IAGE,aAFMJ,OAAO,SAEN,EACP,MAAOE,GAEP,OAAO,EAEX,CAKO/D,eAAekE,IACpB,IAGE,aAFsBL,OAAO,sBAEdzH,QACf,MACA,OAAO,KAEX,CC/CA,MAAM+H,EAAc,IAAInH,IAClBoH,EAAY,IAGlB,IAAIC,EAA4D,KAGhE,SAASC,IACP,MAAMC,EAAMC,KAAKD,MAEjB,GAAIF,GAAqBE,EAAMF,EAAiBI,UALxB,IAMtB,OAAOJ,EAAiBK,KAG1B,MAAMC,EAAMC,QAAQD,MACpB,IACE,MAAMD,EAAOpI,KAAKC,MAChBC,EAAa2B,EAAKvC,QAAQ+I,EAAK,gBAAiB,CAC9CjE,SAAU,QACVmE,KAAM,OAKV,OADAR,EAAmB,CAAEK,OAAMD,UAAWF,GAC/BG,EACP,MACA,MAAMI,EAAQ,CAAE,EAEhB,OADAT,EAAmB,CAAEK,KAAMI,EAAOL,UAAWF,GACtCO,EAEX,CAGA,IAAIC,EAAiD,KASrD/E,eAAegF,EAA+BC,GAC5C,MAAMN,EAAMC,QAAQD,MAGdrE,EAAW,MAAM2E,IACjBC,EAASf,EAAY7G,IAAIgD,GAC/B,GAAI4E,GAAWV,KAAKD,MAAQW,EAAOT,UAAaL,EAC9C,OAAOc,EAAOR,KAGhB,IAAIS,GAAQ,EACZ,GAAI,YAAYzF,KAAKuF,GACnBE,GAAQ,OACH,GAAI,YAAYzF,KAAKuF,GAC1BE,GAAQ,MACH,CAEL,MAAMC,EAAMd,IACZa,IAAUC,GAAoB,WAAbA,EAAI7C,KAGvB,MAAM8C,QA5BRrF,iBAIE,OAHK+E,IACHA,QAAsBlB,OAAO,YAExBkB,CACT,CAuBwBO,GAEhB7D,QAAe4D,EAAQE,MAAM,CACjCC,cAAeb,EACfc,YAAa,CAACR,GACdS,QAAS,SACTC,OAAO,EACPC,OAAQ,CAAC,YAAa,UACtBC,SAAU,OACVC,QAAQ,EACRC,OAAQZ,EAAQ,MAAQ,MACxBa,WAAY,CAAC,QACbC,UAAW,SACXC,UAAU,KAGJC,KAAMC,GAAS3E,EAAO4E,YAAY,GAIpCC,EAAc,GAFH,uBAAuB9B,KAAKD,SAASgC,KAAKC,SAAS/J,SAAS,IAAIgK,MAAM,UAGjFC,EAAUC,EAAcxI,EAAKvC,QAAQ+I,EAAK2B,IAAc7J,WAE9DmK,EAAcN,EAAaF,GAE3B,IAAIhH,EAAY,CAAO,EAEvB,IACE,MAAMyH,SAAchD,OAAO6C,IAAU5C,QAErC1E,EAASyH,GAAM/C,SAAW+C,EAG1B1C,EAAYzG,IAAI4C,EAAU,CACxBoE,KAAMtF,EACNqF,UAAWD,KAAKD,MAChBU,aAEM,QAEJ/I,EAAWoK,IACbQ,EAAOR,GAAa,SAMxB,OAAOlH,CACT,CAEAY,eAAe+G,EAA+B9B,GAE5C,MAAM3E,EAAW,MAAM2E,IACjBC,EAASf,EAAY7G,IAAIgD,GAC/B,GAAI4E,GAAWV,KAAKD,MAAQW,EAAOT,UAAaL,EAC9C,OAAOc,EAAOR,KAGhB,MAAMtF,SAAgByE,OAAO8C,EAAc1B,GAAUxI,aAAaqH,QASlE,OANAK,EAAYzG,IAAI4C,EAAU,CACxBoE,KAAMtF,EACNqF,UAAWD,KAAKD,MAChBU,aAGK7F,CACT,CAEAY,eAAegH,EAAiC/B,GAE9C,MAAM3E,EAAW,QAAQ2E,IACnBC,EAASf,EAAY7G,IAAIgD,GAC/B,GAAI4E,GAAWV,KAAKD,MAAQW,EAAOT,UAAaL,EAC9C,OAAOc,EAAOR,KAGhB,MAAMtF,EAAS9C,KAAKC,MAAMC,EAAayI,EAAU,CAAEvE,SAAU,WAS7D,OANAyD,EAAYzG,IAAI4C,EAAU,CACxBoE,KAAMtF,EACNqF,UAAWD,KAAKD,MAChBU,aAGK7F,CACT,CAGA,IAAI6H,EAAiE,KAoBrEjH,eAAekH,EAA6BC,EAAoBC,GAC9D,IAAK,MAAMC,KAAcD,EACvB,GAAID,EAASG,SAASD,GAAa,CACjC,GAAI,cAAc3H,KAAK2H,GACrB,aAAcrC,EAAaqC,GACtB,GAAI,cAAc3H,KAAK2H,GAC5B,aAAcN,EAAa5I,EAAKvC,QAAQ,IAAKyL,IACxC,GAAIA,EAAWE,SAAS,SAC7B,aAAcP,EAAe7I,EAAKvC,QAAQ,IAAKyL,IAKrD,OAAO,IACT,UAEgBG,IACd,OAAOlD,GACT,CAEOtE,eAAeyH,IACpB,MAAMC,EAtCR,WACE,MAAMnD,EAAMC,KAAKD,MAEjB,GAAI0C,GAAoB1C,EAAM0C,EAAgBxC,UAL1B,IAMlB,OAAOwC,EAAgBU,MAGzB,MAAMC,EAAiB,0CACjBjD,EAAMC,QAAQD,MACdgD,EAAQE,EAAYlD,EAAK,CAAEmD,eAAe,IAC7CC,QAAQ1K,GAAUA,EAAM2K,UAAYJ,EAAelI,KAAKrC,EAAMhB,QAC9D4L,KAAK5K,GAAUA,EAAMhB,OAGxB,OADA4K,EAAkB,CAAEU,QAAOlD,UAAWF,GAC/BoD,CACT,CAuBqBO,GAEnB,IAAI9I,EAAsB,CAAE,EACxB+I,GAAc,EAElB,MAAMC,QAAkBlB,EAAwBQ,EAAY7K,GAO5D,GALIuL,IACFhJ,EAASgJ,EACTD,GAAc,GAGZT,EAAWW,SACRF,EAAa,CAChB,MAAMG,QAAoBpB,EAA0BQ,EAAY9K,GAE5D0L,IACFlJ,EAAS,CACP4C,eAAgBsG,EAAYC,QAC5BrG,aAAcoG,EAAYpG,cAG5BiG,GAAc,GAKpB,MAAM/C,EAAMd,IAMZ,OAJK6D,GAAwC,iBAAlB/C,EAAI,YAC7BhG,EAASgG,EAAI,WAGRhG,CACT,mEAIE+E,EAAYnG,QACZqG,EAAmB,KACnB4C,EAAkB,IACpB,yBC3NOjH,eAAewI,IACpB,MAEMC,EAFMjB,IAEanL,KAEnBqM,QAAoBjB,IACpBkB,EAAwBC,EAC5BC,OAAOC,OAAOJ,EAAa,CAAED,kBAGzBM,EAAmC,CACvCC,EAAUL,GACV7J,MAGImK,OAAEA,EAAMC,QAAEA,EAAOC,eAAEA,EAAclH,aAAEA,EAAYmH,kBAAEA,GACrDT,EAMF,GAJIS,GACFL,EAAQxJ,KCjDH,CACLlD,KAAM,mBACN0D,mBAAkB,IACT,CACL,CACE4B,IAAK,SACLC,SAAU,eACVC,MAAO,CAAES,IAAK,kBAEhB,CACEX,IAAK,SACLC,SAAU,eACVC,MAAO,CAAES,IAAK,cAAe+G,MAAO,UAEtC,CACE1H,IAAK,OACLC,SAAU,eACVC,MAAO,CAAEE,KAAM,gBAAiBD,IAAK,eAEvC,CACEH,IAAK,MACLC,SAAU,eACVC,MAAO,CACLlC,GAAI,qBD6BVwJ,EAAgB,CAClB,MAAMG,mBAAEA,SAA6BzF,OAAO,+BAE5CkF,EAAQxJ,KACN+J,EAC4B,iBAAnBH,EAA8BA,OAAiBpL,IAK5D,GAAImL,EAAS,CACX,MAAQpF,QAASyF,SAAkB1F,OAAO,wBAE1CkF,EAAQxJ,KAAK,IACRgK,EACkB,iBAAZL,EACHA,EACA,CACEM,YAAa,GAAGf,UAGxBgB,QAAS,SAIb,MAAO,CACLzK,KAAMiD,EACF,MAAqBwG,IACrB,OAAyBA,IAC7BrI,OAAQ,CACNsJ,KAAM,KAERnE,MAAO,CACLoE,QAAQ,EACRC,kBAAmB,KACnBC,cAAe,CACbC,OAAQ,CACNC,OAAQxG,IAGZ0F,UAEF3H,IAAK,CACH0I,QAAS,CAAEC,iBAAkB,UAC7BC,KAAM,CACJC,IAAK,WAGTzB,YAAaC,EACbI,UAEJ,CA6BM,SAAUqB,EAA6BC,GAC3C,OAAOA,GAAYC,cAAcC,OAASF,GAAYE,OAAS,CAAE,CACnE,CAsFA,SAASC,EACPC,EACAC,EACAC,GAEA,OAAO9B,OAAOC,OAAO,CAAA,EAAI2B,EAAYC,EAAmBC,EAC1D,CAegB,SAAAC,GACdC,EAMAnC,GAEA,OAAO1I,MACL8K,EACAT,EAAsC,MAEtC,IACE,MAAM3G,UAAEA,SAAoBD,KACtBsH,yBAAEA,GAA6BrH,EAE/BtE,QAAeqI,IAEfgB,EADMjB,IACanL,KAGnBqO,EACoB,mBAAjBG,QACGA,EAAaC,EAAOT,GAC1BQ,EAIAG,EAAkBZ,EAA6BM,GAG/CO,EAAgBH,IAAUC,EAC1BG,EAxHZ,SACEzC,EACAxG,EACAgJ,EACAE,GAEA,OAAIF,EACKhJ,EACH,MAAqBwG,IACrB,OAA8BA,IAG7B0C,EACH,OAAyB1C,IACzB,OAA8BA,GACpC,CAyGuB2C,CACf3C,EACArJ,EAAO6C,eAAgB,EACvBgJ,EACA7L,EAAO+L,aAAc,GAGjBV,EAAyB,CAC7BS,WACAG,gBAAeJ,QAAuBlN,GAGxC,GAAIkN,EAAe,CAGjB,MACMK,EAjHd,SAA6B7C,EAAsB8C,GACjD,MACEC,MAAOC,EAAavJ,aACpBA,EAAYF,eACZA,EAAcC,aACdA,EAAYkJ,WACZA,KACGO,GACDH,EAEEC,EAAQC,GAAiBvJ,EAEzByJ,EAAmB,CACvB3J,iBACAE,aAAcsJ,EACdA,QACAvJ,eACAkJ,gBACGO,GAGL,MAAO,CACLE,oBAAqB,CACnBnD,eACAC,YAAaiD,GAEfE,oBAAqB,CACnBpD,eACAC,YAAaiD,GAEfrB,aAAc,CACZC,MAAOoB,GAGb,CA+E8BG,CAAoBrD,EADxBI,OAAOC,OAAO,CAAE,EAAE1J,EAAQ4L,EAAiBtC,IAG7D,OAAO8B,EAAaC,EAAYC,EAAmBY,GAIrD,OAAOd,EAAaC,EAAYC,GAChC,MAAO3G,GACPgI,QAAQhI,MAAM,sBAAuBA,GACrCgI,QAAQC,KAAK,kDAGb,IAKE,MAH0B,mBAAjBnB,QACGA,EAAaC,EAAOT,GAC1BQ,EAEN,MAAOoB,GAGP,OAFAF,QAAQhI,MAAM,mCAAoCkI,GAE3C,CAAE,IAIjB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createProxyMiddleware as e,responseInterceptor as t}from"http-proxy-middleware";import{createLogger as s}from"vite";import{createColors as r}from"picocolors";import a,{isAxiosError as n}from"axios";import{JSDOM as i}from"jsdom";import{Agent as o}from"https";import*as c from"memory-cache";import*as l from"path";import{promises as p}from"fs";import{fileURLToPath as d,URL as h}from"url";import*as u from"crypto";import*as g from"process";import*as f from"child_process";import*as m from"console";import{deflateSync as w,brotliDecompressSync as y,unzipSync as v,inflateSync as b,brotliCompressSync as k,gzipSync as x}from"zlib";import P from"express";const T=(e,t,s)=>{const r=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return s.replace(r,((e,...s)=>e.startsWith("!!")?s[1]:`http${s[2]}${t}`))},$=(e,t,s)=>{e.setHeader("location",t),e.statusCode=s,e.end()};const A=new Map,I="default",E=(e="info",t=I)=>{if(A.has(t))return A.get(t);if(t===I){const r=s(e);return A.set(t,r),r}const r=s(e);return A.set(t,r),r},S=r(),L=function(){const e={personal:{placeholder:"API Token",caption:`You can get the API Token\n <a href="https://${host}/api-token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`,endpoint:"/@api/login"},regular:{placeholder:"Legacy Token",caption:`You can get the Legacy Token\n <a href="https://${host}/api/get_token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`,endpoint:"/@api/login"}};function t(t,s,r){const a=e[t];a&&(s.placeholder=a.placeholder,r.innerHTML=a.caption)}function s(e,t){t.textContent=e,t.classList.add("show")}function r(e){e.classList.remove("show")}function a(e,t,a,n){a.addEventListener("click",(async a=>{if(a.preventDefault(),r(n),!t.value.trim())return s(`${t.placeholder} is required`,n),void t.focus();const i=document.getElementById("token-type-switcher"),o=i?.querySelector(".token-type-option.active"),c=o?.dataset.value||"personal";await async function(e,t,r,a){try{r.classList.add("loading");const n=await fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:t}),redirect:"follow"}),i=n.url&&new URL(n.url,window.location.origin);if(!i||i.pathname.startsWith("/login")||i.pathname.startsWith("/@api/"))try{const e=await n.json();s(`Login failed: ${e?.error||"Unknown error occurred"}`,a)}catch(e){s("Login failed: Unable to parse response",a)}else window.location.href=n.url}catch(e){s("Login failed: Network error. Please check your connection.",a)}finally{r.classList.remove("loading")}}(t.value.trim(),c,e,n)})),t.addEventListener("keydown",(e=>{"Enter"===e.key&&(e.preventDefault(),a.click())})),t.addEventListener("input",(()=>{r(n)}))}function n(e){const s=e.firstChild;if(!s)return;const r=s.lastChild?.cloneNode(!0);if(!r)return;r.innerHTML="";const n=r.cloneNode(!0);n.innerText="OR",n.setAttribute("role","separator"),n.setAttribute("aria-label","Alternative login method");const i=r.cloneNode(!0),o=document.createElement("div"),c=document.createElement("style");c.textContent="\n.helper-login-wrapper {\n font-family: Arial, sans-serif;\n color: #222;\n padding: 8px;\n background-color: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #ddd;\n width: 100%;\n max-width: 400px;\n margin: 0 auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.helper-login-wrapper .title {\n font-weight: bold;\n font-size: 18px;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.helper-login-wrapper .control {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.helper-login-wrapper .control input {\n border: 1px solid #ddd;\n border-radius: 4px;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n height: 26px;\n padding: 0 8px;\n font-size: 14px;\n}\n\n.helper-login-wrapper .control input:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.helper-login-wrapper .control .caption {\n font-size: 12px;\n color: #666;\n text-align: center;\n}\n\n.helper-login-wrapper .footer {\n margin-top: 16px;\n text-align: center;\n}\n\n.helper-login-wrapper .footer .btn.submit {\n background-color: #007bff;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n width: 100%;\n font-size: 14px;\n transition: background-color 0.3s;\n height: 26px;\n font-weight: 500;\n}\n\n.helper-login-wrapper .footer .btn.submit:hover {\n background-color: #0056b3;\n}\n\n.helper-login-wrapper .footer .btn.submit:disabled {\n background-color: #6c757d;\n cursor: not-allowed;\n}\n\n.helper-login-wrapper .token-type-switcher {\n display: flex;\n border: 1px solid #ccc;\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 12px;\n width: 100%;\n}\n\n.helper-login-wrapper .token-type-option {\n padding: 4px 8px;\n cursor: pointer;\n background-color: #f8f9fa;\n color: #666;\n font-size: 12px;\n text-align: center;\n transition: background-color 0.2s, color 0.2s;\n border-right: 1px solid #ccc;\n flex: 1;\n user-select: none;\n}\n\n.helper-login-wrapper .token-type-option:last-child {\n border-right: none;\n}\n\n.helper-login-wrapper .token-type-option.active {\n background-color: #007bff;\n color: white;\n font-weight: bold;\n}\n\n.helper-login-wrapper .token-type-option:not(.active):hover {\n background-color: #e9ecef;\n}\n\n.helper-login-wrapper .error-message {\n color: #dc3545;\n font-size: 12px;\n text-align: center;\n margin-top: 8px;\n display: none;\n}\n\n.helper-login-wrapper .error-message.show {\n display: block;\n}\n\n.helper-login-wrapper .loading {\n opacity: 0.6;\n pointer-events: none;\n}\n",document.head.appendChild(c),o.innerHTML=`\n<div class="helper-login-wrapper" role="form" aria-label="PP Dev Helper Login">\n <div class="title" role="heading" aria-level="2">PP Dev Helper</div>\n\n <div class="token-type-switcher" id="token-type-switcher" role="tablist" aria-label="Token type selection">\n <div class="token-type-option active" data-value="personal" role="tab" aria-selected="true" tabindex="0">\n API Token\n </div>\n <div class="token-type-option" data-value="regular" role="tab" aria-selected="false" tabindex="0">\n Legacy Token\n </div>\n </div>\n\n <div class="control">\n <input \n type="password" \n id="helper-token" \n placeholder="API Token"\n aria-label="Token input"\n aria-describedby="token-caption"\n >\n <span class="caption" id="token-caption">\n You can get the API Token\n <a href="https://${host}/api-token" target="_blank" style="color: #007bff; text-decoration: none;">here</a>\n </span>\n </div>\n\n <div class="error-message" id="error-message" role="alert" aria-live="polite"></div>\n\n <div class="footer">\n <button id="helper-token-submit" class="btn submit" type="button">\n Token Login\n </button>\n </div>\n</div>`,i.appendChild(o),s.appendChild(n),s.appendChild(i);const l=document.getElementById("token-type-switcher"),p=document.getElementById("helper-token"),d=document.getElementById("token-caption"),h=document.getElementById("helper-token-submit"),u=document.getElementById("error-message"),g=o.querySelector(".helper-login-wrapper");l&&p&&d&&h&&u&&g?(!function(e,s,r){const a=e.querySelectorAll(".token-type-option"),n=e=>{const n=e.dataset.value;a.forEach((e=>{e.classList.remove("active"),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")})),e.classList.add("active"),e.setAttribute("aria-selected","true"),e.setAttribute("tabindex","0"),t(n,s,r)};a.forEach((e=>{e.addEventListener("click",(e=>{const t=e.currentTarget;n(t)})),e.addEventListener("keydown",(t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),n(e))}))}))}(l,p,d),a(g,p,h,u),t("personal",p,d)):console.error("Failed to find required form elements")}const i=new MutationObserver((e=>{for(const t of e)if("childList"===t.type){const e=document.querySelector("#mi-react-root form");if(e){i.disconnect(),n(e);break}}}));i.observe(document.body,{childList:!0,subtree:!0});const o=document.querySelector("#mi-react-root form");o&&(i.disconnect(),n(o))},R=/^(https?:\/\/)([^/]+)(\/.*)?$/i,C="X-PP-Proxy";function F(s){const{rewritePath:r=/^\/(?!pt).*/i,baseURL:a="",disableSSLValidation:n=!1,miAPI:i}=s;if(!a)throw new Error("Base url is required");const o=a.replace(R,"$2"),c=a.replace(R,"$1$2"),l=import("file-type"),p=E();return e({selfHandleResponse:!0,pathFilter:(e,t)=>!(s.proxyIgnore||[]).some((t=>"string"==typeof t?e.startsWith(t):"function"!=typeof t.test||t.test(e)))&&("string"==typeof r?e.startsWith(r):Array.isArray(r)?r.some((t=>e.startsWith(t))):"function"==typeof r.test&&r.test(e)),target:a,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[o]:"localhost"},logger:{info:()=>{},log:()=>{},error:()=>{},warn:()=>{}},secure:!n,headers:{host:o,origin:c},on:{proxyReq(e,t,s){const r=t.headers.host,n=e.getHeader("referer");return p.info(`${S.blue("Proxies request:")} ${S.green(t.method)} ${t.url} -> ${S.green(e.method)} ${e.protocol}//${e.host}${e.path}`),r&&n&&"string"==typeof n&&e.setHeader("referer",n.replace(new RegExp(`https?://${r}`),a)),i.personalAccessToken&&e.setHeader("Authorization",`Bearer ${i.personalAccessToken}`),t.socket.on("close",(()=>{setTimeout((()=>{e.destroyed||e.destroy()}),200)})),e},proxyRes:(e,s,r)=>{if(e.headers["content-type"]?.includes("text/event-stream")||e.headers["transfer-encoding"]?.includes("chunked")&&"no"===e.headers["x-accel-buffering"]){p.info(`${S.blue("Start streaming for request:")} ${S.green(s.method)} ${s.url}`);const t=async(e,t,s)=>{s.setHeader(C,1),s.setHeaders(new Map(Object.entries(e.headers))),e.pipe(s)};return t(e,s,r)}const a=t((async(e,t,s,r)=>{r.setHeader(C,1);if(await(await l).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(s.url??"",`http://${o}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){t+=`<script>(${function(){const e="pp-dev::redirectCount",t="pp-dev::lastRedirect";let s=+(localStorage.getItem(e)??0);localStorage.getItem(t);Number.isNaN(s)&&(s=0);let r=window.location.href;const a=function(){const n=new URLSearchParams(window.location.search);if(!n.has("proxyRedirect"))return console.debug("No proxyRedirect param. Cleaning up."),void localStorage.removeItem(e);r!==window.location.href?(r=window.location.href,setTimeout(a,s<3?3e3:5e3)):window.location.href=n.get("proxyRedirect"),localStorage.setItem(e,""+ ++s),localStorage.setItem(t,(new Date).toISOString())};setTimeout(a,3e3)}.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(t+=`<script>const host = "${o}";\n(${L.toString()})()<\/script>`)}catch{}const r=s.headers.host??"";return((e,t,s)=>{const r=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),a=new RegExp(`${e}`,"gi"),n=s.replace(r,t);return n===s?n.replace(a,t):n})("/auth/saml/login","/login",T(o,r,t))}}));return a(e,s,r)},error(e,t,s){const r=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;p.error(r),s.writable&&s.writeHead(500,{"Content-Type":"text/plain"}),s.end(r)}}})}class D{axios;constructor(e){this.axios=e}async checkAuth(e){return this.axios.get("/data/page/index/auth/info",{headers:Object.assign({},e,{accept:"text/html"}),maxRedirects:0}).then((()=>!0)).catch((()=>!1))}}class O extends D{formdataModulePromise=import("formdata-node");constructor(e){super(e)}getDownloadUrl(e){return`/admin/page/downloadassets/id/${e}`}getDownloadTemplateUrl(e){return`/admin/pagetemplate/downloadassets/id/${e}`}getUploadUrl(e){return`/admin/page/uploadassets/id/${e}`}getUploadTemplateUrl(e){return`/admin/pagetemplate/uploadassets/id/${e}`}async downloadPageAssets(e,t){return this.axios.get(this.getDownloadUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then((e=>e.data))}async uploadPageAssets(e,t,s){const r=new(await this.formdataModulePromise).FormData,{File:a}=await this.formdataModulePromise,n=new a([t],"file.zip",{type:"application/zip"});r.append("file",n);const i=this.getUploadUrl(e);return this.axios.post(i,r,{withCredentials:!0,headers:Object.assign({},s,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:i})})}).then((e=>e.data))}async downloadTemplateAssets(e,t){return this.axios.get(this.getDownloadTemplateUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then((e=>e.data))}async uploadTemplateAssets(e,t,s){const r=new(await this.formdataModulePromise).FormData,{File:a}=await this.formdataModulePromise,n=new a([t],"file.zip",{type:"application/zip"});r.append("file",n,"file.zip");const i=this.getUploadTemplateUrl(e);return this.axios.post(i,r,{withCredentials:!0,headers:Object.assign({},s,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:i})})}).then((e=>e.data))}}class N extends O{getDownloadUrl(e){return`/api/page/id/${e}/asset/download`}getDownloadTemplateUrl(e){return`/api/page_template/id/${e}/asset/download`}getUploadUrl(e){return`/api/page/id/${e}/asset/upload`}getUploadTemplateUrl(e){return`/api/page_template/id/${e}/asset/upload`}}class U extends D{async getAll(e){return(await this.axios.get("/api/page",{withCredentials:!0,headers:Object.assign({},e,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"})})).data.pages}async get(e,t){return(await this.axios.get(`/api/page/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page}async getPageContent(e,t){return(await this.axios.get(`/p/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"text/html","content-type":"application/json"})})).data}async create(e,t){return(await this.axios.post("/api/page",e,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page}}class M extends D{async getAll(e,t){return(await this.axios.get("/api/page_template",{withCredentials:!0,headers:Object.assign({},t,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"}),params:{internal_name:e}})).data.page_templates}async get(e,t){return(await this.axios.get(`/api/page_template/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page_template}}function B(e){const t=e.response?.status||0,s=e.response?.data?.message||e.message||"Unknown error";switch(t){case 412:return s.toLowerCase().includes("session expired")?{status:t,message:s,code:"SESSION_EXPIRED",userFriendlyMessage:"Your session has expired",suggestions:["Refresh your token in the portal","Re-authenticate with the portal","Check if your token has been revoked","Ensure your token has the correct permissions"]}:{status:t,message:s,code:"AUTH_FAILED",userFriendlyMessage:"Authentication failed",suggestions:["Verify your token is correct","Check token permissions","Ensure the token hasn't expired","Try generating a new token"]};case 401:return{status:t,message:s,code:"UNAUTHORIZED",userFriendlyMessage:"Unauthorized access",suggestions:["Check if your token is valid","Verify you have the required permissions","Ensure the token hasn't been revoked","Try logging in again"]};case 403:return{status:t,message:s,code:"FORBIDDEN",userFriendlyMessage:"Access forbidden",suggestions:["Check your user permissions","Verify the portal page ID is correct","Ensure your token has the right scope","Contact your administrator"]};default:return{status:t,message:s,code:"UNKNOWN_ERROR",userFriendlyMessage:"An unexpected error occurred",suggestions:["Check your network connection","Verify the portal URL is correct","Try again in a few moments","Check the portal status"]}}}const H="[DEV PAGE. DO NOT DELETE]",j=new Map;class z{#e;#t;#s=null;#r;#a;#n;#i;#o;#c;#l;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:s={},portalPageId:r,templateLess:n=!0,disableSSLValidation:i=!1,v7Features:c=!1,personalAccessToken:l}=t||{};this.#e=s,this.#a=[],this.#r="",this.#n=c,this.#i=l,this.#o=!1,this.#c=Promise.resolve(!1);const p=`${e}:${i}`;j.has(p)?this.#t=j.get(p):(i&&(process.env.NODE_TLS_REJECT_UNAUTHORIZED="0",a.defaults.httpsAgent=new o({rejectUnauthorized:!1})),this.#t=a.create({baseURL:e,headers:s,timeout:3e4,maxRedirects:5,httpAgent:new o({keepAlive:!0,maxSockets:10}),httpsAgent:new o({keepAlive:!0,maxSockets:10})}),j.set(p,this.#t)),this.portalPageId=r,this.templateLess=n,this.assetsApi=new(c?N:O)(this.#t),this.pageApi=new U(this.#t),this.pageTemplateApi=new M(this.#t),this.logger=E()}async isTemplateLoaded(){return this.#c}get isV710OrHigher(){return this.#o}#p(e){const t=Object.assign({},e,{host:void 0,referer:void 0});return Object.keys(t).forEach((e=>void 0===t[e]&&delete t[e])),this.#e=t,!t.authorization&&this.#i&&(t.authorization=`Bearer ${this.#i}`),t}get personalAccessToken(){return this.#i}set personalAccessToken(e){this.#i=e}updateHeaders(e){this.#p(e)}get localTemplateHTML(){return'<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8" />\n <title>%%PAGE TITLE%%</title>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\n <meta name="theme-color" content="rgba(255, 255, 255, 1)"/>\n <link rel="shortcut icon" type="image/x-icon" sizes="any" href="/img/favicon/favicon.ico"/>\n <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png"/>\n <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/>\n <link rel="icon" type="image/png" sizes="48x48" href="/img/favicon/favicon-48x48.png"/>\n <meta name="msapplication-config" content="/auth/browserconfig.xml"/>\n <link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-touch-icon.png"/>\n <link rel="manifest" href="/auth/site.webmanifest"/>\n <link rel="manifest" href="/auth/manifest.json"/>\n <link rel="stylesheet" type="text/css" href="/auth/theme-vars.css"/>\n <link rel="icon" type="image/svg+xml" href="/favicon.ico" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <script src="/js/libs/underscore-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/jquery/jquery-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/application/rating_component.js" charset="utf-8"><\/script>\n </head>\n <body>\n <div id="mi-react-root"></div>\n <script src="/auth/info.js"><\/script>\n <script src="/js/main.js" defer><\/script>\n <link rel="stylesheet" href="/css/main.css" />\n </body>\n </html>'}async getPageTemplate(e){if(await this.#c||this.#s||(this.#c=new Promise((e=>{this.#l=e}))),this.#s)return Promise.resolve(this.#s);if(void 0===this.templateLess&&(this.templateLess=!1),this.#n){const t=await this.pageApi.get(this.portalPageId,this.#p(e)).then((e=>(this.logger.info(S.green("Page fetched")),e))).catch((async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(S.red(`Error fetching page data: ${t.message}\n${t.stack}`)),new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.")):t}));return void 0!==t.template_id&&(this.#o=!0),this.#s=this.localTemplateHTML,this.#s=this.#s.replace(/%%PAGE TITLE%%/g,t.name||"Local template"),this.logger.info(S.green("Local page template fetched")),this.#l(!0),this.#s}let t=(await this.pageApi.getAll(this.#p(e)).then((e=>(this.logger.info(S.green("Page list fetched")),e))).catch((async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(S.red(`Error fetching page list: ${t.message}\n${t.stack}`)),new Error("Current user does not have access to page list")):t}))).find((e=>e.name===H));return t||(this.logger.warn(S.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:H,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#p(e)).then((e=>(this.logger.info(S.green("Dev page created")),e))).catch((e=>{throw this.logger.error(S.red(`Error creating dev page: ${e.message}`)),this.#l(!1),new Error(`Error when creating dev page.\n That can be caused by missing permissions or page with name "${H}" already exists`)}))),await this.pageApi.getPageContent(t.internal_name,this.#p(e)).then((e=>(this.#s=e,e))).then((e=>(this.#l(!0),this.logger.info(S.green("Page template fetched")),e))).catch((e=>{throw this.#l(!1),this.logger.error(S.red(`Error fetching page template: ${e.message}`)),new Error("Error fetching page template")}))}async getPageVariables(e,t){return this.#s=await this.getPageTemplate(t),this.portalPageId||(this.portalPageId=e,this.templateLess=!1),await this.pageApi.get(e,this.#p(t)).then((e=>{const{tags:t="[]",name:s,template:r}=e;if(r&&t){const e=JSON.parse(t);return this.#a=e,this.#r=s,e}return this.#a=[],this.#r=s,[]})).catch((t=>{if(this.logger.error(S.red(`Error fetching page variables: ${t.message}`)),404===t.response?.status)throw new Error(`Portal Page with id "${e}" not found on instance ${this.#t.getUri()}`);if(401===t.response?.status)throw new Error(`Current user does not have access to page with id "${e}" on instance ${this.#t.getUri()}`);throw t}))}async getPageInfo(e,t){this.portalPageId||(this.portalPageId=e);const s=this.#p(t),r=this.portalPageId;try{return this.#n?await this.#d(r,s):await this.#h(r,s)}catch(e){this.#u(e,r)}}async#d(e,t){const s=await this.pageApi.get(e,t);return this.logger.info(S.green("Page fetched")),void 0!==s.template_id&&(this.#o=!0),s}async#h(e,t){return await this.pageApi.get(e,t)}#u(e,t){if(this.#n&&e.message?.includes("access"))throw new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.");if(404===e.response?.status)throw new Error(`Portal Page with id "${t}" not found on instance ${this.#t.getUri()}`);throw 401===e.response?.status&&this.logger.error(S.red(`Current user does not have access to page with id "${t}" on instance ${this.#t.getUri()}`)),e}buildPage(e,t=!1){let s="string"==typeof e?e:e.toString("utf-8");for(const e of this.#a)s=s.replace(new RegExp(`\\[${e.name}\\]`,"g"),e.value);const r=new i(t?s:this.#s),a="%%PLACEHOLDER%%";if(!t){const e=r.window.document.createElement("div");e.innerHTML=a;const t=r.window.document.querySelector(".main-side");if(t){const s=t.querySelectorAll("script");s.length?t.insertBefore(e,s.item(s.length-1)):t.append(e)}else{const t=r.window.document.createElement("div");t.append(e),r.window.document.body.append(t)}const s=r.window.document.querySelector("head"),n=s.querySelector("title");n?n.text=this.#r:s.innerHTML+=`<title>${this.#r}</title>`}return r.serialize().replace(new RegExp(`<div>\\s*${a}\\s*<\\/div>`,"i"),s)}async getAssets(){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.downloadPageAssets(this.portalPageId,this.#e);{const e=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const t=await this.pageTemplateApi.get(e.template_id,this.#e);return await this.assetsApi.downloadTemplateAssets(t.id,this.#e)}if(e.template)return await this.assetsApi.downloadTemplateAssets(e.template,this.#e)}}}async updateAssets(e){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.uploadPageAssets(this.portalPageId,e,this.#e);{const t=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const s=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(s.id,e,this.#e)}if(t.template)return await this.assetsApi.uploadTemplateAssets(t.template,e,this.#e)}}}async validateCredentials(e){try{const t=e||this.#e;return await this.get("/api/user",t,!0),{isValid:!0}}catch(e){const t=B(e);return{isValid:!1,error:t.userFriendlyMessage,code:t.code}}}async get(e,t,s=!1){const r=s?t:Object.assign({},this.#p(this.#e),t);try{return await this.#t.get(e,{headers:r})}catch(e){if("UNKNOWN_ERROR"!==B(e).code){const t=B(e);throw this.logger.error(S.red(`API request failed: ${t.userFriendlyMessage}`)),function(e,t,s){const r=B(t),a=`[${s}] `;e.error(S.red(`${a}${r.userFriendlyMessage}`)),e.error(S.red(`Status: ${r.status} (${r.code})`)),e.error(S.red(`Details: ${r.message}`)),r.suggestions.length>0&&(e.info(S.yellow("Suggestions:")),r.suggestions.forEach(((t,s)=>{e.info(S.yellow(` ${s+1}. ${t}`))})))}(this.logger,e,"API Request"),e.response||(e.response={status:t.status,data:{message:t.message}}),e.tokenErrorInfo=t,e}throw e}}}class V{server;opts;eventMap;logger;constructor(e,t){this.server=e,this.opts=t||{},this.eventMap=new Map,this.eventMap.set("info-data:request",this.onInfoDataRequest.bind(this)),this.eventMap.set("template:sync",this.onTemplateSync.bind(this)),this.logger=E(),this.init()}init(){const{ws:e}=this.server;for(const[t,s]of this.eventMap)e.on(t,s)}onInfoDataRequest(){this.server.ws.send({type:"custom",event:"info-data:response",data:{}})}async onTemplateSync(){if(!this.opts.distService||!this.opts.miAPI)return this.server.ws.send("template:sync:response",{error:"Dist service or MiAPI is not defined"}),void this.logger.error(S.red("Dist service or MiAPI is not defined"));{const{distService:e,miAPI:t}=this.opts;if(this.server.config.clientInjectionPlugin?.v7Features){if(!t?.isV710OrHigher)return void this.server.ws.send("template:sync:response",{error:"This feature is available only for MI v7.1.0 or higher",config:{canSync:!1}});this.server.ws.send("client:config:update",{config:{canSync:!0}})}const s=await(t?.getAssets().catch((async e=>{if(n(e)){if("SESSION_EXPIRED"===B(e).code){this.logger.info(S.yellow("Session expired - attempting to validate credentials"));try{const e=await(t?.validateCredentials());e&&!e.isValid?(this.logger.error(S.red(`Authentication error: ${e.error}`)),this.server.ws.send("template:sync:response",{error:e.error,code:e.code,refresh:!0})):(this.logger.info(S.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0}))}catch(e){this.logger.info(S.yellow("Session expired")),this.server.ws.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0})}return e}if(e.cause instanceof Error&&("ECONNRESET"===e.cause.code||"ENOTFOUND"===e.cause.code))return this.logger.info(S.yellow("Server in maintenance mode, VPN connection is needed or no internet connection")),this.server.ws.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e}throw e})));if(s instanceof Error)return;const r=s?await(e?.saveBackupAndBuild(s).catch((e=>{if("Backup file is not a ZIP file"===e.message)return this.logger.error(S.red("Backup file is not a ZIP file")),e}))):await(e?.buildNewAssets());if(!(r&&r instanceof Buffer))return r instanceof Error?(this.server.ws.send("template:sync:response",{error:r.message}),void this.logger.error(S.red(r.message))):(this.server.ws.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(S.red("Failed to build new assets")));{const s=await(t?.updateAssets(r));if("OK"===s?.status){const t=e?.getBackupMeta(),{lastBackupName:s,lastBackupHash:r,lastBackupDate:a}=t||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};this.server.ws.send("template:sync:response",{syncedAt:new Date(a),currentHash:r,backupFilename:s}),this.logger.info(S.green("Template synced"))}else this.server.ws.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(S.red("Failed to update assets"))}}}}const _=/\.(?:[a-z0-9]+)$/i,q=6e5,Z=104857600,W=1e3;class X extends c.Cache{totalSize=0;maxSize;maxItems;constructor(e,t){super(),this.maxSize=e,this.maxItems=t}put(e,t,s){const r=this.get(e);r&&(this.totalSize-=r.size);const a=super.put(e,t,s);return this.totalSize+=t.size,this.cleanup(),a}cleanup(){const e=this.keys();if(e.length>this.maxItems){const t=e.length-this.maxItems,s=e.sort(((e,t)=>{const s=this.get(e),r=this.get(t);return(s?.timestamp||0)-(r?.timestamp||0)}));for(let e=0;e<t;e++){const t=s[e],r=this.get(t);r&&(this.totalSize-=r.size,this.del(t))}}for(;this.totalSize>this.maxSize&&e.length>0;){const t=e.sort(((e,t)=>{const s=this.get(e),r=this.get(t);return(s?.timestamp||0)-(r?.timestamp||0)}))[0];if(t){const e=this.get(t);e&&(this.totalSize-=e.size,this.del(t))}}}getTotalSize(){return this.totalSize}getItemCount(){return this.keys().length}}const Y=new X(Z,W);function K(e){if(0===e.length)return Buffer.alloc(0);if(1===e.length)return e[0];const t=e.reduce(((e,t)=>Buffer.byteLength(t)+e),0);return Buffer.concat(e,t)}function J(e){const{devServer:t,ttl:s=q,maxSize:r=Z,maxItems:a=W}=e,n=E();return r===Z&&a===W||(Y.maxSize=r,Y.maxItems=a),t.cache=Y,(e,t,r)=>{const a=e.originalUrl||e.url||"",i=function(e){const t=e.split("?")[0];return _.test(t)?t.includes("/auth/info.js")?"":e:""}(a);if(!i)return r();const o=Y.get(i);if(o)return n.info(`${S.blue("Proxies request:")} ${S.green(e.method)} ${a} -> ${S.blue("Cache")} ${i}`),function(e,t){try{for(const[s,r]of Object.entries(t))null!=r&&e.setHeader(s,r)}catch(e){console.warn("Failed to set some response headers:",e)}}(t,o.headers),t.write(o.content),void t.end();const c=t.end,l=t.write,p=[];t.write=function(e,s,r){if(!t.hasHeader(C))return l.call(this,e,s,r);if("string"==typeof e){const t=s||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):null!=e&&p.push(Buffer.from(String(e),"utf8"));return!0},t.end=function(e,r,a){if(!t.hasHeader(C))return c.call(this,e,r,a);if(null!=e)if("string"==typeof e){const t=r||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):p.push(Buffer.from(String(e),"utf8"));let o;try{o=K(p);const e=Buffer.byteLength(o);if(e>0&&e<10485760){const r={headers:t.getHeaders(),content:o,timestamp:Date.now(),size:e};Y.put(i,r,s),n.info(`${S.blue("[Cached]")} ${i} (${(e/1024).toFixed(1)}KB)`)}}catch(e){n.error(`Failed to cache response for ${i}: ${e}`),o=K(p)}const l=r||"utf8";return c.call(this,o,l,a)},r()}}const G="pageName",Q="date",ee=l.dirname("undefined"!=typeof __filename&&__filename||d(import.meta.url)),te=l.resolve(ee,"..",".."),se=l.resolve(te,"..",".."),re=l.resolve(se,".pp-dev-meta"),ae=l.resolve(re,"sync-service.meta.json");class ne{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;logger;constructor(e,t){this.pageName=e;const{backupFolder:s=l.resolve(g.cwd(),"backups"),distZipFolder:r=l.resolve(g.cwd(),"dist-zip"),distZipFilename:a=`${this.pageName}.zip`,backupNameTemplate:n=`{${G}}-{${Q}}.zip`,dateFormat:i=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,"")}=t||{};this.backupFolder=s,this.backupNameTemplate=n,this.dateFormat=i,this.distZipFolder=r,this.distZipFilename=a,this.syncMeta(),this.logger=E()}async checkMeta(){try{await p.stat(re)}catch{await p.mkdir(re)}try{await p.stat(this.backupFolder)}catch{await p.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await p.readFile(ae,{encoding:"utf-8"}).catch((()=>"{}"))}async writeMetaFile(e){return await this.checkMeta(),await p.writeFile(ae,JSON.stringify(e,null,2),{encoding:"utf-8"})}async syncMeta(){this.currentMeta?await this.writeMetaFile(this.currentMeta):this.currentMeta=JSON.parse(await this.readMetaFile())}async getLatestSavedBackup(){const{lastBackupName:e}=this.currentMeta;if(!e)return null;const t=l.resolve(this.backupFolder,e);try{return await p.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${G}}`,e).replace(`{${Q}}`,this.dateFormat(t))}getBackupMeta(){return this.currentMeta}async saveBackup(e){if("PK"!==e.toString("utf-8").slice(0,4))throw new Error("Backup file is not a ZIP file");const t=u.createHash("md5").update(e).digest("hex");if(await this.getLatestSavedBackup()){const{lastBackupHash:e}=this.currentMeta;if(e===t)return}const s=new Date,r=this.backupName(this.pageName,s);return this.currentMeta.lastBackupName=r,this.currentMeta.lastBackupHash=t,this.currentMeta.lastBackupDate=s.toISOString(),await this.syncMeta(),await p.writeFile(l.resolve(this.backupFolder,r),e).finally((()=>{this.logger.info(`Backup saved to ${r}`)}))}async buildNewAssets(){const e=new Promise(((e,t)=>{let s="";this.logger.info(S.cyan("[DistService] Build started"));const r=f.spawn("node",[l.resolve(te,"./bin/pp-dev.js"),"build"],{cwd:g.cwd(),env:Object.assign({},g.env,{NODE_ENV:"production"}),stdio:"inherit"});r.on("message",(e=>{s+=e})),r.on("close",(r=>{0===r?e(s):t(new Error(`build command exited with code ${r}`))})),r.on("error",(e=>{t(e)}))}));try{await e.finally((()=>{this.logger.info(S.cyan("[DistService] Build finished"))}));const t=l.resolve(g.cwd(),this.distZipFolder,this.distZipFilename);if(!await p.stat(t))throw new Error(`File ${t} not found`);return await p.readFile(t)}catch(e){throw m.log(e),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}}function ie(e,t){return async(s,r,a)=>{if(await e(s.url??"",s,r)){E().info(`Rewrite response for ${s.url}`);const e=r.end,a=[];r.write=function(e){return a.push(e),!0},r.end=function(n,i,o){"string"==typeof n&&a.push(Buffer.from(n));const c=r.getHeader("content-encoding"),l=function(e,t){switch(t){case"gzip":return v(e);case"br":return y(e);case"deflate":return w(e);default:return e}}(Buffer.from(Buffer.concat(a)),c),p="function"!=typeof i&&i?i:"utf-8",d="function"==typeof i?i:o;return e.call(this,function(e,t){switch(t){case"gzip":return x(e);case"br":return k(e);case"deflate":return b(e);default:return e}}(t(l,s,r),c),p,d),this}}a()}}function oe(e,t){const s=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,r=E();return(a,n,i)=>{const o=new h(a.url??"","http://localhost"),{pathname:c,search:l}=o,p=["/",s];if(t&&(p.push(`/pt/${t}`),p.push(`/pl/${t}`)),p.includes(c)){const t=`${e}${l}`;return r.info(S.yellow(`Redirecting to: ${t}`)),$(n,t,302)}i()}}class ce{state={isAuthenticated:!1,isRedirected:!1,lastChecked:0};listeners=new Set;getState(){return{...this.state}}isAuthenticated(){return this.state.isAuthenticated}isRedirected(){return this.state.isRedirected}setAuthenticated(e){this.state.isAuthenticated=e,this.state.lastChecked=Date.now(),this.notifyListeners()}setRedirected(e){this.state.isRedirected=e,this.notifyListeners()}updateState(e){void 0!==e.isAuthenticated&&(this.state.isAuthenticated=e.isAuthenticated),void 0!==e.isRedirected&&(this.state.isRedirected=e.isRedirected),this.state.lastChecked=Date.now(),this.notifyListeners()}reset(){this.state={isAuthenticated:!1,isRedirected:!1,lastChecked:0},this.notifyListeners()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notifyListeners(){this.listeners.forEach((e=>{try{e(this.getState())}catch(e){console.error("Error in auth state listener:",e)}}))}getDebugInfo(){return{...this.getState(),listenerCount:this.listeners.size}}}const le=new ce,pe=new Map;function de(e){const t=pe.get(e);return t?Date.now()-t.timestamp>18e4?(pe.delete(e),null):t.data:null}function he(e,t){pe.set(e,{timestamp:Date.now(),data:t})}const ue="/home?proxyRedirect=";function ge(e,t,s){const{templateLess:r=!1,miHudLess:a=!1,portalPageId:n,base:i,v7Features:o}=s,c=E();if(r&&a&&void 0===n)throw new Error("Portal page ID is required when both templateLess and miHudLess are true");let l=le.getState();return le.subscribe((e=>{l=e})),async(s,p,d)=>{try{const h=!(r&&a),u=e.test((s.url??"").split("?")[0]);if(!l.isAuthenticated&&!l.isRedirected&&s.url?.startsWith("/home")&&!s.url?.startsWith(ue)){c.info(S.blue("Trying to authenticate and redirect to base"));try{return h?await me(t,{templateLess:r,miHudLess:a,portalPageId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,(()=>{}),c):await fe(t,{templateLess:r,miHudLess:a,portalPageId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,(()=>{}),c),le.setRedirected(!0),c.info(S.blue("Successfully authenticated. Redirecting to base")),$(p,i??"/",302)}catch(e){return d()}}if(!u)return d();if(!h){return await fe(t,{templateLess:r,miHudLess:a,portalPageId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,d,c)}return await me(t,{templateLess:r,miHudLess:a,portalPageId:n,redirectUrl:o&&i?`${i}`:`${ue}${encodeURIComponent("/")}`},s,p,d,c)}catch(e){return c.error(S.red(`Unexpected error in load-pp-data middleware: ${e instanceof Error?e.message:String(e)}`)),le.reset(),d(e)}}}async function fe(e,t,s,r,a,n){const{portalPageId:i,redirectOnAuthFailure:o,redirectUrl:c}=t;if(void 0===i){const e=new Error("Portal page ID is required for page info only mode");return n.error(S.red(e.message)),a(e)}const l=s.headers??{};n.info(S.green("Start loading page info"));try{const t=`pageInfo:${i}`;return de(t)?(n.info(S.green("Page info loaded from cache")),a()):(await e.getPageInfo(i,l),n.info(S.blue("Clearing proxy cache after successful login")),Y.clear(),he(t,{success:!0}),le.updateState({isAuthenticated:!0}),n.info(S.green("Page info loaded successfully")),a())}catch(e){return le.reset(),we(e,o??!0,c||`${ue}${encodeURIComponent("/")}`,r,a,n,"Page info")}}async function me(e,t,s,r,a,n){const{templateLess:i,portalPageId:o,redirectOnAuthFailure:c,redirectUrl:l}=t,p=s.headers??{};n.info(S.green("Start loading page data"));try{const t=`pageData:${i}:${o}`;if(de(t))return n.info(S.green("Page data loaded from cache")),a();const s=i||void 0===o?e.getPageTemplate(p):e.getPageVariables(o,p);return await s,n.info(S.blue("Clearing proxy cache after successful login")),Y.clear(),he(t,{success:!0}),n.info(S.green("Page data loaded successfully")),a()}catch(e){return le.reset(),we(e,c??!0,l||`${ue}${encodeURIComponent("/")}`,r,a,n,"Page data")}}function we(e,t,s,r,a,n,i){if(function(e){return null!==e&&"object"==typeof e&&"response"in e&&void 0!==e.response}(e)&&(n.info(S.red(`${i} loading failed. Not authorized`)),t)){const e=`${s}`;return n.info(S.yellow(`Redirecting to: ${e}`)),$(r,e,302)}const o=e instanceof Error?e.message:String(e);return n.info(S.red(`${i} loading failed. Error: ${o}`)),a(e)}const ye=P();function ve(e,t,s){return t(e)?{isValid:!0}:{isValid:!1,error:s}}function be(e){const t=function(e){return[ve(e,(e=>"object"==typeof e&&null!==e),"VitePPDevOptions must be an object"),ve(e.templateName,(e=>"string"==typeof e&&e.length>0),"VitePPDevOptions.templateName must be a non-empty string"),ve(e.backendBaseURL,(e=>void 0===e||"string"==typeof e&&e.length>0),"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),ve(e.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.portalPageId must be a positive number if provided"),ve(e.appId,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.appId must be a positive number if provided"),ve(e.proxyCacheTTL,(e=>void 0===e||"number"==typeof e&&e>0),"VitePPDevOptions.proxyCacheTTL must be a positive number if provided"),ve(e.integrateMiTopBar,(t=>void 0===t||"boolean"==typeof t&&(!0!==t||!0===e.miHudLess)),"VitePPDevOptions.integrateMiTopBar can only be true when miHudLess is true")].find((e=>!e.isValid))||{isValid:!0}}(e);if(!t.isValid)throw new Error(t.error);const s=e.appId??e.portalPageId,{enableProxyCache:r=!0,proxyCacheTTL:a=6e5,disableSSLValidation:n=!1,imageOptimizer:i=!0,miHudLess:o=!1,integrateMiTopBar:c=!1,templateLess:l=!1,outDir:p="dist",distZip:d=!0,syncBackupsDir:h="backups",v7Features:u=!1,personalAccessToken:g=process.env.MI_ACCESS_TOKEN}=e||{};let f=d;f=!0===f?{outFileName:`${e.templateName}.zip`,outDir:"dist-zip"}:"object"==typeof d&&{outFileName:"string"==typeof d.outFileName?d.outFileName.replace("[templateName]",e.templateName):`${e.templateName}.zip`,outDir:d.outDir??"dist-zip"};let m=i;return"boolean"==typeof i?!0===m&&(m={}):"object"!=typeof i&&(m=!1),{enableProxyCache:r,proxyCacheTTL:a,disableSSLValidation:n,imageOptimizer:m,templateLess:l,miHudLess:o,outDir:p,distZip:f,syncBackupsDir:h,v7Features:u,personalAccessToken:g,portalPageId:s,integrateMiTopBar:c,...e}}function ke(e){const{templateName:t,templateLess:s,backendBaseURL:r,miHudLess:a,portalPageId:n,enableProxyCache:i,proxyCacheTTL:o,disableSSLValidation:c,distZip:l,syncBackupsDir:p,v7Features:d,personalAccessToken:h}=e||{};let u=!0;return process.cwd(),{name:"vite-pp-dev",apply:"serve",config:e=>{const a=function(e){return[ve(e.base,(e=>"string"==typeof e&&e.length>0&&"/"!==e),'Server base path cannot be empty or "/"'),ve(e.port,(e=>void 0===e||"number"==typeof e&&e>0&&e<65536),"Server port must be a valid port number (1-65535)")].find((e=>!e.isValid))||{isValid:!0}}({base:e.base||"",...e.server});if(!a.isValid)throw new Error(a.error);return e.clientInjectionPlugin={backendBaseURL:r,portalPageId:n,templateLess:s,v7Features:d},d&&(e.base=`/pl/${t}`),e},transformIndexHtml:async(e,t)=>{const s={html:e,tags:[]};return u&&(u=!1,s.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),s},configureServer:u=>{let g=u.config.base;g.endsWith("/")||(g+="/");const f=g.substring(0,g.lastIndexOf("/"));if(u.middlewares.use(oe(g,t)),r){const w=new URL(r).host,y={headers:{host:w,referer:r,origin:r.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:n,appId:n,templateLess:s,disableSSLValidation:c,v7Features:d,personalAccessToken:h??process.env.MI_ACCESS_TOKEN},v=[ve((m=y).headers,(e=>"object"==typeof e&&"string"==typeof e.host&&"string"==typeof e.referer&&"string"==typeof e.origin),"MiAPI headers must be properly configured"),ve(m.portalPageId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI portalPageId must be a positive number if provided"),ve(m.appId,(e=>void 0===e||"number"==typeof e&&e>0),"MiAPI appId must be a positive number if provided"),ve(m.personalAccessToken,(e=>void 0===e||"string"==typeof e),"MiAPI personalAccessToken must be a string if provided")].find((e=>!e.isValid))||{isValid:!0};if(!v.isValid)throw new Error(v.error);const b=new z(r,y);if(i){let e=+o;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:u,ttl:e},s=function(e){return[ve(e.ttl,(e=>"number"==typeof e&&e>0),"Proxy cache TTL must be a positive number")].find((e=>!e.isValid))||{isValid:!0}}(t);if(!s.isValid)throw new Error(s.error);u.middlewares.use(J(t))}const k=new RegExp(`^((${g})|/)$`);u.middlewares.use(ge(k,b,Object.assign({},e))),u.middlewares.use(F({baseURL:r,proxyIgnore:["/@vite","/@metricinsights","/@",f],disableSSLValidation:c,miAPI:b}));const x=(e,t,s,r,a)=>{const n={error:s};r&&(n.details=r),a&&(n.code=a),e.status(t).json(n).end()},P=(e,t,s)=>{u.config.logger.error(`${s} token validation error:`,t);const r=B(t);if(t.tokenErrorInfo){const s=t.tokenErrorInfo;u.config.logger.info(`Using enhanced error info: ${s.code} - ${s.userFriendlyMessage}`);const r=s.status||500,a=s.code,n=s.userFriendlyMessage,i=s.message;x(e,r,n,i,a)}else{let t,a,n;switch(u.config.logger.info(`Using original error info: ${r.code} - ${r.userFriendlyMessage}`),r.code){case"SESSION_EXPIRED":t=412,a="personal"===s?"Personal access token expired":"Session expired",n="personal"===s?"PAT_EXPIRED":"SESSION_EXPIRED";break;case"UNAUTHORIZED":t=401,a="Unauthorized",n="UNAUTHORIZED";break;case"FORBIDDEN":t=403,a="Access forbidden",n="FORBIDDEN";break;default:t=500,a="Internal server error",n=r.code}const i="personal"===s&&"PAT_EXPIRED"===n?"Your personal access token has expired. Please generate a new token from the portal.":"regular"===s&&"SESSION_EXPIRED"===n?"Your portal session has expired. Please refresh your token or re-authenticate.":r.userFriendlyMessage;x(e,t,a,i,n)}return null};ye.post("/@api/login",(async(e,t,s)=>{const{token:r,tokenType:a}=e.body;if(r){if(u.config.logger.info(`Attempting to validate ${a} token...`),"personal"===a){if(!await b.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${r}`},!0).then((async e=>"number"==typeof e.data?.user?.user_id?(b.personalAccessToken=r,u.config.logger.info(`Personal access token validated successfully for user ${e.data.user.user_id}`),e):(x(t,400,"Token expired or invalid"),null))).catch((e=>P(t,e,"personal"))))return;$(t,"/",302)}else if("regular"===a){if(!await b.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:r},!0).then((e=>e.data?.users?.length?(b.personalAccessToken=void 0,u.config.logger.info(`Regular token validated successfully for ${e.data.users.length} user(s)`),t.setHeader("set-cookie",e.headers["set-cookie"]??""),e):(x(t,400,"Token expired or invalid"),null))).catch((e=>P(t,e,"regular"))))return;$(t,"/",302)}}else x(t,400,"Token is required")})),u.middlewares.use(ye);const A=!1!==l?new ne(t,Object.assign({backupDir:p},"object"==typeof l?{distZipFolder:l.outDir,distZipFilename:l.outFileName}:void 0)):void 0;return new V(u,{distService:A,miAPI:b}),()=>{u.middlewares.use(ie((e=>e.split("?")[0].endsWith("index.html")),((e,t)=>Buffer.from(T(w,t.headers.host??"",b.buildPage(e,a))))))}}var m}}}ye.use(P.json()),ye.use(P.urlencoded({extended:!0}));export{ce as A,z as M,S as a,J as b,E as c,F as d,ge as e,ye as f,ie as g,le as h,oe as i,be as n,T as u,ke as v};
|
|
2
|
-
//# sourceMappingURL=plugin-_rCgP0h-.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-_rCgP0h-.js","sources":["../../../src/lib/helpers/url.helper.ts","../../../src/lib/logger.ts","../../../src/lib/helpers/color.helper.ts","../../../src/lib/helpers/login.helper.ts","../../../src/lib/proxy-pass.middleware.ts","../../../src/api/base.ts","../../../src/api/assets.ts","../../../src/api/assets-v7.ts","../../../src/api/page.ts","../../../src/api/page-template.ts","../../../src/lib/helpers/token.helper.ts","../../../src/lib/pp.middleware.ts","../../../src/lib/client.service.ts","../../../src/lib/proxy-cache.middleware.ts","../../../src/lib/dist.service.ts","../../../src/lib/rewrite-response.middleware.ts","../../../src/lib/helpers/content-encoding.helper.ts","../../../src/lib/pp-redirect.middleware.ts","../../../src/lib/auth.provider.ts","../../../src/lib/load-pp-data.middleware.ts","../../../src/lib/internal.middleware.ts","../../../src/plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","redirect","res","url","statusCode","setHeader","end","storage","Map","DEFAULT_LOGGER_KEY","createLogger","level","name","has","get","logger","cL","set","colors","createColors","tokenLoginFunction","TOKEN_TYPE_CONFIG","personal","placeholder","caption","host","endpoint","regular","updateTokenUI","type","tokenInput","tokenCaption","info","innerHTML","showError","message","errorElement","textContent","classList","add","hideError","remove","setupEventHandlers","formWrapper","submitButton","addEventListener","async","e","preventDefault","value","trim","focus","tokenTypeSwitcher","document","getElementById","activeOption","querySelector","tokenType","dataset","token","response","fetch","method","headers","body","JSON","stringify","URL","window","location","origin","pathname","json","error","parseError","href","networkError","handleFormSubmission","key","click","initializeLoginForm","loginForm","contentWrapper","firstChild","rowTemplate","lastChild","cloneNode","orRow","innerText","setAttribute","helperForm","formContent","createElement","styleElement","head","appendChild","tokenTypeOptions","querySelectorAll","handleTokenTypeChange","target","forEach","opt","option","currentTarget","setupTokenTypeSwitcher","console","observer","MutationObserver","mutations","mutation","disconnect","observe","childList","subtree","existingForm","hostOriginRegExp","PROXY_HEADER","initProxy","opts","rewritePath","baseURL","disableSSLValidation","miAPI","Error","fileType","import","createProxyMiddleware","selfHandleResponse","pathFilter","req","proxyIgnore","some","test","Array","isArray","rP","changeOrigin","autoRewrite","cookieDomainRewrite","log","warn","secure","on","proxyReq","referer","getHeader","blue","green","protocol","path","personalAccessToken","socket","setTimeout","destroyed","destroy","proxyRes","serverRes","includes","streamInterceptor","setHeaders","Object","entries","pipe","rewriteInterceptor","responseInterceptor","responseBuffer","fileTypeFromBuffer","toString","reqUrl","searchParams","storageKey","lastRedirectKey","redirectCount","localStorage","getItem","Number","isNaN","func","params","URLSearchParams","search","debug","removeItem","setItem","Date","toISOString","reqHost","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","urlPathReplacer","err","errorMessage","stack","writable","writeHead","BaseAPI","axios","constructor","this","checkAuth","assign","accept","maxRedirects","then","catch","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","downloadPageAssets","withCredentials","responseType","data","uploadPageAssets","file","formData","FormData","File","assetFile","append","post","Referer","getUri","downloadTemplateAssets","uploadTemplateAssets","AssetsV7API","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","internalPageName","create","PageTemplateAPI","internal_name","page_templates","page_template","getTokenErrorInfo","status","toLowerCase","code","userFriendlyMessage","suggestions","TEMPLATE_PAGE_NAME","axiosInstanceCache","MiAPI","pageTemplate","pageTitle","pageVars","v7Features","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","Promise","resolve","cacheKey","process","env","NODE_TLS_REJECT_UNAUTHORIZED","defaults","httpsAgent","Agent","rejectUnauthorized","timeout","httpAgent","keepAlive","maxSockets","isTemplateLoaded","clearHeaders","obj","undefined","keys","authorization","updateHeaders","localTemplateHTML","getPageTemplate","red","template_id","find","p","yellow","enabled","visible_in_homepage","getPageVariables","pageId","tags","template","parsed","parse","reason","getPageInfo","pageIdToFetch","fetchV7Page","fetchLegacyPage","handlePageFetchError","buildPage","miHudLess","result","v","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","title","text","serialize","getAssets","pageInfo","templateInfo","updateAssets","assets","validateCredentials","testHeaders","isValid","errorInfo","cleanup","normalizedHeaders","context","contextPrefix","suggestion","index","logTokenError","tokenErrorInfo","ClientService","server","eventMap","onInfoDataRequest","bind","onTemplateSync","init","ws","event","handler","send","distService","config","clientInjectionPlugin","canSync","currentAssets","isAxiosError","validation","refresh","validationError","cause","newAssets","saveBackupAndBuild","buildNewAssets","Buffer","updateResult","backupMeta","getBackupMeta","lastBackupName","backupFilename","lastBackupHash","currentHash","lastBackupDate","backupDate","syncedAt","FILE_EXTENSION_REGEX","DEFAULT_TTL","DEFAULT_MAX_SIZE","DEFAULT_MAX_ITEMS","EnhancedCache","memoryCache","Cache","totalSize","maxSize","maxItems","put","ttl","oldItem","size","itemsToRemove","sortedKeys","sort","a","b","itemA","itemB","timestamp","i","del","oldestKey","getTotalSize","getItemCount","cache","createResponseBuffer","chunks","alloc","totalLength","reduce","sum","chunk","byteLength","concat","initProxyCache","devServer","next","originalUrl","cleanUrl","split","generateCacheKey","cacheItem","header","setResponseHeaders","write","originalEnd","originalWrite","encoding","callback","hasHeader","call","safeEncoding","push","from","isBuffer","String","finalBuffer","responseSize","getHeaders","now","toFixed","finalEncoding","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","dirname","__filename","fileURLToPath","pluginPath","node_modules_path","metaDirPath","metaFilePath","DistService","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","syncOptions","cwd","date","syncMeta","checkMeta","fs","stat","mkdir","readMetaFile","readFile","writeMetaFile","meta","writeFile","getLatestSavedBackup","backupPath","backupName","saveBackup","backupFile","slice","backupFileHash","crypto","createHash","update","digest","filename","finally","buildCommand","reject","cyan","proc","child_process","spawn","NODE_ENV","stdio","msg","initRewriteResponse","predicate","rewrite","buffers","cb","contentEncoding","unzipSync","brotliDecompressSync","deflateSync","decodeContent","bufferEncoding","endCallback","gzipSync","brotliCompressSync","inflateSync","encodeContent","initPPRedirect","base","templateName","baseWithoutTrailingSlash","endsWith","parsedUrl","findPaths","redirectUrl","AuthProvider","state","isAuthenticated","isRedirected","lastChecked","listeners","Set","getState","setAuthenticated","authenticated","notifyListeners","setRedirected","redirected","updateState","updates","reset","subscribe","listener","delete","getDebugInfo","listenerCount","authProvider","apiResponseCache","getCachedResponse","cached","setCachedResponse","DEFAULT_REDIRECT_URL","initLoadPPData","applyUrlRegExp","mi","authState","isNeedTemplateLoad","isApplyRequest","handleTemplateLoad","encodeURIComponent","handlePageInfoOnly","options","redirectOnAuthFailure","clear","success","handleLoadError","loadPageData","operationType","isAuthError","fullRedirectUrl","internalServer","express","validateConfigValue","validator","normalizeVitePPDevConfig","validationResult","c","backendBaseURL","appId","proxyCacheTTL","integrateMiTopBar","integrate","validateConfig","enableProxyCache","imageOptimizer","outDir","distZip","syncBackupsDir","MI_ACCESS_TOKEN","distZipConfig","outFileName","imageOptimizerConfig","vitePPDev","isFirstRequest","apply","port","validateServerConfig","transformIndexHtml","html","ctx","tag","injectTo","children","Math","random","configureServer","lastIndexOf","middlewares","use","baseUrlHost","miConfig","cacheConfig","validateProxyCacheConfig","isIndexRegExp","proxyPassMiddleware","sendErrorResponse","details","handleTokenValidationError","enhancedErrorInfo","errorCode","Authorization","user","user_id","Token","users","backupDir","urlencoded","extended"],"mappings":"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"}
|