@metricinsights/pp-dev 0.4.0 → 0.5.0

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.
@@ -2,6 +2,8 @@
2
2
 
3
3
  var httpProxyMiddleware = require('http-proxy-middleware');
4
4
  var url = require('url');
5
+ var vite = require('vite');
6
+ var picocolors = require('picocolors');
5
7
  var axios = require('axios');
6
8
  var jsdom = require('jsdom');
7
9
  var https = require('https');
@@ -62,6 +64,26 @@ function cutUrlParams(url) {
62
64
  return urlParts[0];
63
65
  }
64
66
 
67
+ // import pino from 'pino';
68
+ // import { PrettyOptions } from 'pino-pretty';
69
+ const storage = new Map();
70
+ const DEFAULT_LOGGER_KEY = 'default';
71
+ const createLogger = (level = 'info', name = DEFAULT_LOGGER_KEY) => {
72
+ if (storage.has(name)) {
73
+ return storage.get(name);
74
+ }
75
+ if (name === DEFAULT_LOGGER_KEY) {
76
+ const logger = vite.createLogger(level);
77
+ storage.set(name, logger);
78
+ return logger;
79
+ }
80
+ const logger = vite.createLogger(level);
81
+ storage.set(name, logger);
82
+ return logger;
83
+ };
84
+
85
+ const colors = picocolors.createColors();
86
+
65
87
  const hostOriginRegExp = /^(https?:\/\/)([^/]+)(\/.*)?$/i;
66
88
  const PROXY_HEADER = 'X-PP-Proxy';
67
89
  function initProxy(opts) {
@@ -72,6 +94,7 @@ function initProxy(opts) {
72
94
  const host = baseURL.replace(hostOriginRegExp, '$2');
73
95
  const origin = baseURL.replace(hostOriginRegExp, '$1$2');
74
96
  const fileType = import('file-type');
97
+ const logger = createLogger();
75
98
  return httpProxyMiddleware.createProxyMiddleware((pathname) => {
76
99
  if ((opts.proxyIgnore || []).some((value) => {
77
100
  if (typeof value === 'string') {
@@ -111,7 +134,7 @@ function initProxy(opts) {
111
134
  onProxyReq(proxyReq, req, res) {
112
135
  const host = req.headers.host;
113
136
  const referer = proxyReq.getHeader('referer');
114
- devServer.config.logger.info(`Proxies request: ${req.method} ${req.url} -> ${proxyReq.method} ${proxyReq.protocol}//${proxyReq.host}${proxyReq.path}`);
137
+ logger.info(`${colors.blue('Proxies request:')} ${colors.green(req.method)} ${req.url} -> ${colors.green(proxyReq.method)} ${proxyReq.protocol}//${proxyReq.host}${proxyReq.path}`);
115
138
  if (host && referer && typeof referer === 'string') {
116
139
  proxyReq.setHeader('referer', referer.replace(new RegExp(`https?://${host}`), baseURL));
117
140
  }
@@ -154,7 +177,7 @@ function initProxy(opts) {
154
177
  }),
155
178
  onError(err, req, res) {
156
179
  const errorMessage = `Proxy error: "${err.message}" when trying to "${req.method} ${req.url}"\n\n${err.stack}`;
157
- devServer.config.logger.error(errorMessage);
180
+ logger.error(errorMessage);
158
181
  res.writeHead(500, {
159
182
  'Content-Type': 'text/plain',
160
183
  });
@@ -168,6 +191,15 @@ class BaseAPI {
168
191
  constructor(axios) {
169
192
  this.axios = axios;
170
193
  }
194
+ async checkAuth(headers) {
195
+ return this.axios
196
+ .get('/data/page/index/auth/info', {
197
+ headers: Object.assign({}, headers, { accept: 'text/html' }),
198
+ maxRedirects: 0,
199
+ })
200
+ .then(() => true)
201
+ .catch(() => false);
202
+ }
171
203
  }
172
204
 
173
205
  class AssetsAPI extends BaseAPI {
@@ -284,6 +316,7 @@ class PageAPI extends BaseAPI {
284
316
  }
285
317
  }
286
318
 
319
+ const TEMPLATE_PAGE_NAME = '[DEV PAGE. DO NOT DELETE]';
287
320
  class MiAPI {
288
321
  #headers;
289
322
  #axios;
@@ -296,14 +329,13 @@ class MiAPI {
296
329
  templateLess;
297
330
  assetsApi;
298
331
  pageApi;
332
+ logger;
299
333
  constructor(baseURL, opts) {
300
334
  const { headers = {}, portalPageId, templateLess = true, disableSSLValidation = false } = opts || {};
301
335
  this.#headers = headers;
302
336
  this.#pageVars = [];
303
337
  this.#pageTitle = '';
304
- this.#templateLoaded = new Promise((resolve) => {
305
- this.#templateLoadedResolve = resolve;
306
- });
338
+ this.#templateLoaded = Promise.resolve(false);
307
339
  if (disableSSLValidation) {
308
340
  axios.defaults.httpsAgent = new https.Agent({ rejectUnauthorized: false });
309
341
  }
@@ -315,12 +347,13 @@ class MiAPI {
315
347
  this.templateLess = templateLess;
316
348
  this.assetsApi = new AssetsAPI(this.#axios);
317
349
  this.pageApi = new PageAPI(this.#axios);
350
+ this.logger = createLogger();
318
351
  }
319
352
  async isTemplateLoaded() {
320
353
  return this.#templateLoaded;
321
354
  }
322
355
  #clearHeaders(headers) {
323
- const obj = Object.assign({}, headers, { host: undefined });
356
+ const obj = Object.assign({}, headers, { host: undefined, referer: undefined });
324
357
  Object.keys(obj).forEach((key) => obj[key] === undefined && delete obj[key]);
325
358
  this.#headers = obj;
326
359
  return obj;
@@ -333,27 +366,65 @@ class MiAPI {
333
366
  * @param headers
334
367
  */
335
368
  async getPageTemplate(headers) {
369
+ if (!(await this.#templateLoaded)) {
370
+ this.#templateLoaded = new Promise((resolve) => {
371
+ this.#templateLoadedResolve = resolve;
372
+ });
373
+ }
336
374
  if (this.#pageTemplate) {
337
375
  return Promise.resolve(this.#pageTemplate);
338
376
  }
339
377
  if (typeof this.templateLess === 'undefined') {
340
378
  this.templateLess = false;
341
379
  }
342
- const pageList = await this.pageApi.getAll(this.#clearHeaders(headers));
343
- let page = pageList.find((p) => p.name === '[DEV PAGE. DO NOT DELETE]');
380
+ const pageList = await this.pageApi
381
+ .getAll(this.#clearHeaders(headers))
382
+ .then((response) => {
383
+ this.logger.info(colors.green('Page list fetched'));
384
+ return response;
385
+ })
386
+ .catch(async (e) => {
387
+ if (await this.pageApi.checkAuth(this.#clearHeaders(headers))) {
388
+ this.logger.error(colors.red(`Error fetching page list: ${e.message}\n${e.stack}`));
389
+ throw new Error('Current user does not have access to page list');
390
+ }
391
+ else {
392
+ throw e;
393
+ }
394
+ });
395
+ let page = pageList.find((p) => p.name === TEMPLATE_PAGE_NAME);
344
396
  if (!page) {
345
- page = await this.pageApi.create({
397
+ this.logger.warn(colors.yellow('Creating dev page template...'));
398
+ page = await this.pageApi
399
+ .create({
346
400
  enabled: 'Y',
347
- name: '[DEV PAGE. DO NOT DELETE]',
401
+ name: TEMPLATE_PAGE_NAME,
348
402
  internal_name: 'dev-page-template',
349
403
  visible_in_homepage: 'Y',
350
- }, this.#clearHeaders(headers));
404
+ }, this.#clearHeaders(headers))
405
+ .then((response) => {
406
+ this.logger.info(colors.green('Dev page created'));
407
+ return response;
408
+ })
409
+ .catch((e) => {
410
+ this.logger.error(colors.red(`Error creating dev page: ${e.message}`));
411
+ throw new Error(`Error when creating dev page.
412
+ That can be caused by missing permissions or page with name "${TEMPLATE_PAGE_NAME}" already exists`);
413
+ });
351
414
  }
352
415
  return await this.pageApi
353
416
  .getPageContent(page.internal_name, this.#clearHeaders(headers))
354
417
  .then((response) => {
355
418
  this.#pageTemplate = response;
356
419
  return response;
420
+ })
421
+ .then((response) => {
422
+ this.logger.info(colors.green('Page template fetched'));
423
+ return response;
424
+ })
425
+ .catch((e) => {
426
+ this.logger.error(colors.red(`Error fetching page template: ${e.message}`));
427
+ throw new Error('Error fetching page template');
357
428
  })
358
429
  .finally(() => {
359
430
  this.#templateLoadedResolve(true);
@@ -386,9 +457,13 @@ class MiAPI {
386
457
  return [];
387
458
  })
388
459
  .catch((reason) => {
460
+ this.logger.error(colors.red(`Error fetching page variables: ${reason.message}`));
389
461
  if (reason.response?.status === 404) {
390
462
  throw new Error(`Portal Page with id "${pageId}" not found on instance ${this.#axios.getUri()}`);
391
463
  }
464
+ if (reason.response?.status === 401) {
465
+ throw new Error(`Current user does not have access to page with id "${pageId}" on instance ${this.#axios.getUri()}`);
466
+ }
392
467
  throw reason;
393
468
  });
394
469
  }
@@ -462,12 +537,14 @@ class ClientService {
462
537
  server;
463
538
  opts;
464
539
  eventMap;
540
+ logger;
465
541
  constructor(server, opts) {
466
542
  this.server = server;
467
543
  this.opts = opts || {};
468
544
  this.eventMap = new Map();
469
545
  this.eventMap.set('info-data:request', this.onInfoDataRequest.bind(this));
470
546
  this.eventMap.set('template:sync', this.onTemplateSync.bind(this));
547
+ this.logger = createLogger();
471
548
  this.init();
472
549
  }
473
550
  init() {
@@ -500,18 +577,22 @@ class ClientService {
500
577
  currentHash,
501
578
  backupFilename,
502
579
  });
580
+ this.logger.info(colors.green('Template synced'));
503
581
  }
504
582
  else {
505
583
  this.server.ws.send('template:sync:response', { error: 'Failed to update assets' });
584
+ this.logger.error(colors.red('Failed to update assets'));
506
585
  }
507
586
  }
508
587
  else {
509
588
  this.server.ws.send('template:sync:response', { error: 'Failed to build new assets' });
589
+ this.logger.error(colors.red('Failed to build new assets'));
510
590
  return;
511
591
  }
512
592
  }
513
593
  else {
514
594
  this.server.ws.send('template:sync:response', { error: 'Dist service or MiAPI is not defined' });
595
+ this.logger.error(colors.red('Dist service or MiAPI is not defined'));
515
596
  return;
516
597
  }
517
598
  }
@@ -521,13 +602,14 @@ const cache = new memoryCache__namespace.Cache();
521
602
  const testCacheUrlRegExp = /\.[a-z0-9]+$/i;
522
603
  function initProxyCache(opts) {
523
604
  const { devServer, ttl = 10 * 60 * 1000 } = opts;
605
+ const logger = createLogger();
524
606
  devServer.cache = cache;
525
607
  return (req, res, next) => {
526
608
  const url = req.originalUrl || req.url || '';
527
609
  if (testCacheUrlRegExp.test(url.split('?')[0] || '')) {
528
610
  const cacheItem = cache.get(url);
529
- if (cacheItem && devServer.config) {
530
- devServer.config.logger.info(`Proxies request: ${req.method} ${url} -> Cache ${url}`);
611
+ if (cacheItem) {
612
+ logger.info(`${colors.blue('Proxies request:')} ${colors.green(req.method)} ${url} -> ${colors.blue('Cache')} ${url}`);
531
613
  for (const [header, value] of Object.entries(cacheItem.headers)) {
532
614
  res.setHeader(header, value);
533
615
  }
@@ -559,7 +641,7 @@ function initProxyCache(opts) {
559
641
  buffer = Buffer.concat([buffer, chunk]);
560
642
  }
561
643
  if (res.hasHeader(PROXY_HEADER)) {
562
- devServer.config.logger?.info(`[Cached] ${url}`);
644
+ logger.info(`${colors.blue('[Cached]')} ${url}`);
563
645
  cache.put(url, { headers: res.getHeaders(), content: buffer }, ttl);
564
646
  }
565
647
  end.call(this, buffer, encoding, cb);
@@ -571,7 +653,7 @@ function initProxyCache(opts) {
571
653
 
572
654
  const TEMPLATE_PART_PAGE_NAME = 'pageName';
573
655
  const TEMPLATE_PART_DATE = 'date';
574
- const DIRNAME = path__namespace.dirname((typeof __filename !== 'undefined' && __filename) || url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('plugin-ab0651c4.js', document.baseURI).href))));
656
+ const DIRNAME = path__namespace.dirname((typeof __filename !== 'undefined' && __filename) || url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('plugin-34b9bc89.js', document.baseURI).href))));
575
657
  const pluginPath = path__namespace.resolve(DIRNAME, '..', '..');
576
658
  const node_modules_path = path__namespace.resolve(pluginPath, '..', '..');
577
659
  const metaDirName = '.pp-dev-meta';
@@ -583,13 +665,19 @@ class DistService {
583
665
  dateFormat;
584
666
  pageName;
585
667
  currentMeta = null;
668
+ distZipFolder;
669
+ distZipFilename;
670
+ logger;
586
671
  constructor(pageName, syncOptions) {
587
- const { backupFolder = path__namespace.resolve(process__namespace.cwd(), 'backups'), backupNameTemplate = `{${TEMPLATE_PART_PAGE_NAME}}-{${TEMPLATE_PART_DATE}}.zip`, dateFormat = (date) => date.toISOString().replace(/:/g, '-').replace(/\..*$/, ''), } = syncOptions || {};
672
+ this.pageName = pageName;
673
+ const { backupFolder = path__namespace.resolve(process__namespace.cwd(), 'backups'), distZipFolder = path__namespace.resolve(process__namespace.cwd(), 'dist-zip'), distZipFilename = `${this.pageName}.zip`, backupNameTemplate = `{${TEMPLATE_PART_PAGE_NAME}}-{${TEMPLATE_PART_DATE}}.zip`, dateFormat = (date) => date.toISOString().replace(/:/g, '-').replace(/\..*$/, ''), } = syncOptions || {};
588
674
  this.backupFolder = backupFolder;
589
675
  this.backupNameTemplate = backupNameTemplate;
590
676
  this.dateFormat = dateFormat;
591
- this.pageName = pageName;
677
+ this.distZipFolder = distZipFolder;
678
+ this.distZipFilename = distZipFilename;
592
679
  this.syncMeta();
680
+ this.logger = createLogger();
593
681
  }
594
682
  async checkMeta() {
595
683
  try {
@@ -664,13 +752,15 @@ class DistService {
664
752
  this.currentMeta.lastBackupHash = backupFileHash;
665
753
  this.currentMeta.lastBackupDate = backupDate.toISOString();
666
754
  await this.syncMeta();
667
- return await fs.promises.writeFile(path__namespace.resolve(this.backupFolder, filename), backupFile);
755
+ return await fs.promises.writeFile(path__namespace.resolve(this.backupFolder, filename), backupFile).finally(() => {
756
+ this.logger.info(`Backup saved to ${filename}`);
757
+ });
668
758
  }
669
759
  async buildNewAssets() {
670
- const buildCommand = new Promise(function (resolve, reject) {
760
+ const buildCommand = new Promise((resolve, reject) => {
671
761
  let data = '';
672
762
  // Colorized log output with message about build start
673
- console__namespace.log('\x1b[36m%s\x1b[0m', '[DistService] Build started');
763
+ this.logger.info(colors.cyan('[DistService] Build started'));
674
764
  const proc = child_process__namespace.spawn('node', [path__namespace.resolve(pluginPath, './bin/pp-dev.js'), 'build'], {
675
765
  cwd: process__namespace.cwd(),
676
766
  env: process__namespace.env,
@@ -693,9 +783,9 @@ class DistService {
693
783
  try {
694
784
  await buildCommand.finally(() => {
695
785
  // Colorized log output with message about build end
696
- console__namespace.log('\x1b[36m%s\x1b[0m', '[DistService] Build finished');
786
+ this.logger.info(colors.cyan('[DistService] Build finished'));
697
787
  });
698
- const assetFile = path__namespace.resolve(process__namespace.cwd(), `./dist-zip/${this.pageName}.zip`);
788
+ const assetFile = path__namespace.resolve(process__namespace.cwd(), this.distZipFolder, this.distZipFilename);
699
789
  if (!(await fs.promises.stat(assetFile))) {
700
790
  throw new Error(`File ${assetFile} not found`);
701
791
  }
@@ -771,6 +861,7 @@ function initPPRedirect(base, templateName) {
771
861
  base = base.startsWith('/') ? base : `/${base}`;
772
862
  base = base.endsWith('/') ? base : `${base}/`;
773
863
  const baseWithoutTrailingSlash = base.endsWith('/') ? base.slice(0, -1) : base;
864
+ const logger = createLogger();
774
865
  return (req, res, next) => {
775
866
  const parsedUrl = new url.URL(req.url ?? '', 'http://localhost');
776
867
  const { pathname, search } = parsedUrl;
@@ -781,6 +872,7 @@ function initPPRedirect(base, templateName) {
781
872
  // Redirect from `/` and `/pt/${templateName}` and `${base}` (without a training slash) to portal page address
782
873
  if (findPaths.includes(pathname)) {
783
874
  const redirectUrl = `${base}${search}`;
875
+ logger.info(colors.yellow(`Redirecting to: ${redirectUrl}`));
784
876
  return redirect(res, redirectUrl, 302);
785
877
  }
786
878
  next();
@@ -789,6 +881,7 @@ function initPPRedirect(base, templateName) {
789
881
 
790
882
  function initLoadPPData(applyUrlRegExp, mi, opts) {
791
883
  const { templateLess = false, miHudLess = false, portalPageId } = opts;
884
+ const logger = createLogger();
792
885
  return (req, res, next) => {
793
886
  const isNeedTemplateLoad = !(templateLess && miHudLess);
794
887
  const isApplyRequest = applyUrlRegExp.test(cutUrlParams(req.url ?? ''));
@@ -803,7 +896,9 @@ function initLoadPPData(applyUrlRegExp, mi, opts) {
803
896
  })
804
897
  .catch((reason) => {
805
898
  if (reason.response) {
806
- return redirect(res, `/home?proxyRedirect=${encodeURIComponent('/')}`, 302);
899
+ const redirectUrl = `/home?proxyRedirect=${encodeURIComponent('/')}`;
900
+ logger.info(colors.yellow(`Redirecting to: ${redirectUrl}`));
901
+ return redirect(res, redirectUrl, 302);
807
902
  }
808
903
  next(reason);
809
904
  });
@@ -814,8 +909,111 @@ function initLoadPPData(applyUrlRegExp, mi, opts) {
814
909
  };
815
910
  }
816
911
 
912
+ function isVitePPDevOptions(options) {
913
+ return (typeof options === 'object' &&
914
+ typeof options.templateName === 'string' &&
915
+ (typeof options.backendBaseURL === 'string' || options.backendBaseURL === undefined) &&
916
+ (typeof options.portalPageId === 'number' || options.portalPageId === undefined) &&
917
+ (typeof options.templateLess === 'boolean' || options.templateLess === undefined) &&
918
+ (typeof options.miHudLess === 'boolean' || options.miHudLess === undefined) &&
919
+ (typeof options.enableProxyCache === 'boolean' || options.enableProxyCache === undefined) &&
920
+ (typeof options.proxyCacheTTL === 'number' || options.proxyCacheTTL === undefined) &&
921
+ (typeof options.disableSSLValidation === 'boolean' || options.disableSSLValidation === undefined) &&
922
+ (typeof options.imageOptimizer === 'boolean' ||
923
+ typeof options.imageOptimizer === 'object' ||
924
+ options.imageOptimizer === undefined) &&
925
+ (typeof options.outDir === 'string' || options.outDir === undefined) &&
926
+ (typeof options.distZip === 'boolean' || typeof options.distZip === 'object' || options.distZip === undefined) &&
927
+ (typeof options.syncBackupsDir === 'string' || options.syncBackupsDir === undefined));
928
+ }
929
+ function throwConfigError(config) {
930
+ if (typeof config !== 'object') {
931
+ throw new Error('VitePPDevOptions must be an object');
932
+ }
933
+ if (typeof config.templateName !== 'string') {
934
+ throw new Error('VitePPDevOptions.templateName must be a string');
935
+ }
936
+ if (config.backendBaseURL !== undefined && typeof config.backendBaseURL !== 'string') {
937
+ throw new Error('VitePPDevOptions.backendBaseURL must be a string');
938
+ }
939
+ if (config.portalPageId !== undefined && typeof config.portalPageId !== 'number') {
940
+ throw new Error('VitePPDevOptions.portalPageId must be a number');
941
+ }
942
+ if (config.templateLess !== undefined && typeof config.templateLess !== 'boolean') {
943
+ throw new Error('VitePPDevOptions.templateLess must be a boolean');
944
+ }
945
+ if (config.miHudLess !== undefined && typeof config.miHudLess !== 'boolean') {
946
+ throw new Error('VitePPDevOptions.miHudLess must be a boolean');
947
+ }
948
+ if (config.enableProxyCache !== undefined && typeof config.enableProxyCache !== 'boolean') {
949
+ throw new Error('VitePPDevOptions.enableProxyCache must be a boolean');
950
+ }
951
+ if (config.proxyCacheTTL !== undefined && typeof config.proxyCacheTTL !== 'number') {
952
+ throw new Error('VitePPDevOptions.proxyCacheTTL must be a number');
953
+ }
954
+ if (config.disableSSLValidation !== undefined && typeof config.disableSSLValidation !== 'boolean') {
955
+ throw new Error('VitePPDevOptions.disableSSLValidation must be a boolean');
956
+ }
957
+ if (config.imageOptimizer !== undefined &&
958
+ typeof config.imageOptimizer !== 'boolean' &&
959
+ typeof config.imageOptimizer !== 'object') {
960
+ throw new Error('VitePPDevOptions.imageOptimizer must be a boolean or an object');
961
+ }
962
+ if (config.outDir !== undefined && typeof config.outDir !== 'string') {
963
+ throw new Error('VitePPDevOptions.outDir must be a string');
964
+ }
965
+ if (config.distZip !== undefined && typeof config.distZip !== 'boolean' && typeof config.distZip !== 'object') {
966
+ throw new Error('VitePPDevOptions.distZip must be a boolean or an object');
967
+ }
968
+ if (config.syncBackupsDir !== undefined && typeof config.syncBackupsDir !== 'string') {
969
+ throw new Error('VitePPDevOptions.syncBackupsDir must be a string');
970
+ }
971
+ }
972
+ function normalizeVitePPDevConfig(config) {
973
+ !isVitePPDevOptions(config) && throwConfigError(config);
974
+ const { enableProxyCache = true, proxyCacheTTL = 10 * 60 * 1000, disableSSLValidation = false, imageOptimizer = true, miHudLess = false, templateLess = false, outDir = 'dist', distZip = true, syncBackupsDir = 'backups', } = config || {};
975
+ let distZipConfig = distZip;
976
+ if (distZipConfig === true) {
977
+ distZipConfig = {
978
+ outFileName: `${config.templateName}.zip`,
979
+ outDir: 'dist-zip',
980
+ };
981
+ }
982
+ else if (typeof distZip === 'object') {
983
+ distZipConfig = {
984
+ outFileName: typeof distZip.outFileName === 'string'
985
+ ? distZip.outFileName.replace('[templateName]', config.templateName)
986
+ : `${config.templateName}.zip`,
987
+ outDir: distZip.outDir ?? 'dist-zip',
988
+ };
989
+ }
990
+ else {
991
+ distZipConfig = false;
992
+ }
993
+ let imageOptimizerConfig = imageOptimizer;
994
+ if (typeof imageOptimizer === 'boolean') {
995
+ if (imageOptimizerConfig === true) {
996
+ imageOptimizerConfig = {};
997
+ }
998
+ }
999
+ else if (typeof imageOptimizer !== 'object') {
1000
+ imageOptimizerConfig = false;
1001
+ }
1002
+ return {
1003
+ enableProxyCache,
1004
+ proxyCacheTTL,
1005
+ disableSSLValidation,
1006
+ imageOptimizer: imageOptimizerConfig,
1007
+ templateLess,
1008
+ miHudLess,
1009
+ outDir,
1010
+ distZip: distZipConfig,
1011
+ syncBackupsDir,
1012
+ ...config,
1013
+ };
1014
+ }
817
1015
  function vitePPDev(options) {
818
- const { templateName, templateLess = false, backendBaseURL, miHudLess = false, portalPageId, enableProxyCache = true, proxyCacheTTL = 10 * 60 * 1000, disableSSLValidation = false, } = options || {};
1016
+ const { templateName, templateLess, backendBaseURL, miHudLess, portalPageId, enableProxyCache, proxyCacheTTL, disableSSLValidation, distZip, syncBackupsDir, } = options || {};
819
1017
  // Avoid server caching for index.html file when first loading
820
1018
  let isFirstRequest = true;
821
1019
  return {
@@ -877,7 +1075,11 @@ function vitePPDev(options) {
877
1075
  }, (response, req) => {
878
1076
  return Buffer.from(urlReplacer(baseUrlHost, req.headers.host ?? '', mi.buildPage(response, miHudLess)));
879
1077
  }));
880
- const distService = new DistService(templateName);
1078
+ const distService = distZip !== false
1079
+ ? new DistService(templateName, Object.assign({ backupDir: syncBackupsDir }, typeof distZip === 'object'
1080
+ ? { distZipFolder: distZip.outDir, distZipFilename: distZip.outFileName }
1081
+ : undefined))
1082
+ : undefined;
881
1083
  new ClientService(server, { distService, miAPI: mi });
882
1084
  }
883
1085
  },
@@ -885,12 +1087,15 @@ function vitePPDev(options) {
885
1087
  }
886
1088
 
887
1089
  exports.MiAPI = MiAPI;
1090
+ exports.colors = colors;
1091
+ exports.createLogger = createLogger;
888
1092
  exports.cutUrlParams = cutUrlParams;
889
1093
  exports.initLoadPPData = initLoadPPData;
890
1094
  exports.initPPRedirect = initPPRedirect;
891
1095
  exports.initProxy = initProxy;
892
1096
  exports.initProxyCache = initProxyCache;
893
1097
  exports.initRewriteResponse = initRewriteResponse;
1098
+ exports.normalizeVitePPDevConfig = normalizeVitePPDevConfig;
894
1099
  exports.urlReplacer = urlReplacer;
895
1100
  exports.vitePPDev = vitePPDev;
896
- //# sourceMappingURL=plugin-ab0651c4.js.map
1101
+ //# sourceMappingURL=plugin-34b9bc89.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-34b9bc89.js","sources":["url.helper.ts","logger.ts","color.helper.ts","proxy-pass.middleware.ts","base.ts","assets.ts","page.ts","pp.middleware.ts","client.service.ts","proxy-cache.middleware.ts","dist.service.ts","content-encoding.helper.ts","rewrite-response.middleware.ts","pp-redirect.middleware.ts","load-pp-data.middleware.ts","plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["cL","createColors","createProxyMiddleware","responseInterceptor","Agent","JSDOM","memoryCache","path","fileURLToPath","process","fs","crypto","child_process","console","unzipSync","brotliDecompressSync","deflateSync","gzipSync","brotliCompressSync","inflateSync","URL","proxyPassMiddleware"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]}
@@ -1,8 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var plugin = require('./plugin-ab0651c4.js');
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var plugin = require('./plugin-34b9bc89.js');
4
6
  require('http-proxy-middleware');
5
7
  require('url');
8
+ require('vite');
9
+ require('picocolors');
6
10
  require('axios');
7
11
  require('jsdom');
8
12
  require('https');
@@ -17,5 +21,6 @@ require('zlib');
17
21
 
18
22
 
19
23
 
20
- module.exports = plugin.vitePPDev;
24
+ exports.default = plugin.vitePPDev;
25
+ exports.normalizeVitePPDevConfig = plugin.normalizeVitePPDevConfig;
21
26
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"plugin.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}