@metricinsights/pp-dev 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +51 -41
  2. package/bin/pp-dev.js +4 -10
  3. package/dist/cjs/cli.js +589 -0
  4. package/dist/cjs/cli.js.map +1 -0
  5. package/dist/cjs/helpers.js +29 -0
  6. package/dist/cjs/helpers.js.map +1 -0
  7. package/dist/cjs/index-ab672d81.js +292 -0
  8. package/dist/cjs/index-ab672d81.js.map +1 -0
  9. package/dist/cjs/index.js +27 -0
  10. package/dist/cjs/index.js.map +1 -0
  11. package/dist/cjs/package.json +113 -0
  12. package/dist/cjs/plugin-24dd0a43.js +878 -0
  13. package/dist/cjs/plugin-24dd0a43.js.map +1 -0
  14. package/dist/cjs/plugin.js +20 -0
  15. package/dist/cjs/plugin.js.map +1 -0
  16. package/dist/{cli.js → esm/cli.js} +210 -23
  17. package/dist/esm/cli.js.map +1 -0
  18. package/dist/esm/helpers.js +25 -0
  19. package/dist/esm/helpers.js.map +1 -0
  20. package/dist/{index.js → esm/index-d2c8ad2e.js} +98 -12
  21. package/dist/esm/index-d2c8ad2e.js.map +1 -0
  22. package/dist/esm/index.js +19 -0
  23. package/dist/esm/index.js.map +1 -0
  24. package/dist/esm/package.json +113 -0
  25. package/dist/esm/plugin-ecb1c54a.js +843 -0
  26. package/dist/esm/plugin-ecb1c54a.js.map +1 -0
  27. package/dist/esm/plugin.js +14 -0
  28. package/dist/esm/plugin.js.map +1 -0
  29. package/dist/types/cli.d.ts +3 -0
  30. package/dist/types/helpers.d.ts +24 -0
  31. package/dist/types/index.d.ts +18 -0
  32. package/dist/{plugin.d.ts → types/plugin.d.ts} +4 -2
  33. package/package.json +23 -8
  34. package/pp-dev.d.ts +1 -1
  35. package/dist/api/assets.d.ts +0 -15
  36. package/dist/api/assets.js +0 -58
  37. package/dist/api/assets.js.map +0 -1
  38. package/dist/api/base.d.ts +0 -5
  39. package/dist/api/base.js +0 -7
  40. package/dist/api/base.js.map +0 -1
  41. package/dist/api/constants.d.ts +0 -1
  42. package/dist/api/constants.js +0 -2
  43. package/dist/api/constants.js.map +0 -1
  44. package/dist/api/index.d.ts +0 -2
  45. package/dist/api/index.js +0 -3
  46. package/dist/api/index.js.map +0 -1
  47. package/dist/api/page.d.ts +0 -16
  48. package/dist/api/page.js +0 -43
  49. package/dist/api/page.js.map +0 -1
  50. package/dist/banner/header.d.ts +0 -2
  51. package/dist/banner/header.js +0 -10
  52. package/dist/banner/header.js.map +0 -1
  53. package/dist/cli.d.ts +0 -1
  54. package/dist/cli.js.map +0 -1
  55. package/dist/client/rollup.config.d.ts +0 -2
  56. package/dist/constants.d.ts +0 -6
  57. package/dist/constants.js +0 -18
  58. package/dist/constants.js.map +0 -1
  59. package/dist/index.d.ts +0 -13
  60. package/dist/index.js.map +0 -1
  61. package/dist/lib/client.service.d.ts +0 -16
  62. package/dist/lib/client.service.js +0 -59
  63. package/dist/lib/client.service.js.map +0 -1
  64. package/dist/lib/dist.service.d.ts +0 -31
  65. package/dist/lib/dist.service.js +0 -148
  66. package/dist/lib/dist.service.js.map +0 -1
  67. package/dist/lib/helpers/content-encoding.helper.d.ts +0 -3
  68. package/dist/lib/helpers/content-encoding.helper.js +0 -26
  69. package/dist/lib/helpers/content-encoding.helper.js.map +0 -1
  70. package/dist/lib/helpers/server.d.ts +0 -14
  71. package/dist/lib/helpers/server.js +0 -40
  72. package/dist/lib/helpers/server.js.map +0 -1
  73. package/dist/lib/helpers/url.helper.d.ts +0 -7
  74. package/dist/lib/helpers/url.helper.js +0 -40
  75. package/dist/lib/helpers/url.helper.js.map +0 -1
  76. package/dist/lib/load-pp-data.middleware.d.ts +0 -5
  77. package/dist/lib/load-pp-data.middleware.js +0 -28
  78. package/dist/lib/load-pp-data.middleware.js.map +0 -1
  79. package/dist/lib/pp-redirect.middleware.d.ts +0 -3
  80. package/dist/lib/pp-redirect.middleware.js +0 -21
  81. package/dist/lib/pp-redirect.middleware.js.map +0 -1
  82. package/dist/lib/pp.middleware.d.ts +0 -27
  83. package/dist/lib/pp.middleware.js +0 -155
  84. package/dist/lib/pp.middleware.js.map +0 -1
  85. package/dist/lib/proxy-cache.middleware.d.ts +0 -18
  86. package/dist/lib/proxy-cache.middleware.js +0 -51
  87. package/dist/lib/proxy-cache.middleware.js.map +0 -1
  88. package/dist/lib/proxy-pass.middleware.d.ts +0 -11
  89. package/dist/lib/proxy-pass.middleware.js +0 -90
  90. package/dist/lib/proxy-pass.middleware.js.map +0 -1
  91. package/dist/lib/rewrite-response.middleware.d.ts +0 -6
  92. package/dist/lib/rewrite-response.middleware.js +0 -23
  93. package/dist/lib/rewrite-response.middleware.js.map +0 -1
  94. package/dist/plugin.js +0 -76
  95. package/dist/plugin.js.map +0 -1
  96. package/dist/plugins/client-injection-plugin.d.ts +0 -12
  97. package/dist/plugins/client-injection-plugin.js +0 -57
  98. package/dist/plugins/client-injection-plugin.js.map +0 -1
  99. package/dist/shortcuts.d.ts +0 -12
  100. package/dist/shortcuts.js +0 -93
  101. package/dist/shortcuts.js.map +0 -1
@@ -0,0 +1,589 @@
1
+ 'use strict';
2
+
3
+ var path = require('path');
4
+ var fs = require('fs');
5
+ var node_perf_hooks = require('node:perf_hooks');
6
+ var cac = require('cac');
7
+ var picocolors = require('picocolors');
8
+ var index = require('./index-ab672d81.js');
9
+ var vite = require('vite');
10
+ var url = require('url');
11
+ var plugin = require('./plugin-24dd0a43.js');
12
+ var express = require('express');
13
+ var winston = require('winston');
14
+ require('vite-plugin-zip-pack');
15
+ require('esbuild');
16
+ require('ejs');
17
+ require('http-proxy-middleware');
18
+ require('axios');
19
+ require('jsdom');
20
+ require('memory-cache');
21
+ require('crypto');
22
+ require('process');
23
+ require('child_process');
24
+ require('console');
25
+ require('zlib');
26
+
27
+ function _interopNamespaceDefault(e) {
28
+ var n = Object.create(null);
29
+ if (e) {
30
+ Object.keys(e).forEach(function (k) {
31
+ if (k !== 'default') {
32
+ var d = Object.getOwnPropertyDescriptor(e, k);
33
+ Object.defineProperty(n, k, d.get ? d : {
34
+ enumerable: true,
35
+ get: function () { return e[k]; }
36
+ });
37
+ }
38
+ });
39
+ }
40
+ n.default = e;
41
+ return Object.freeze(n);
42
+ }
43
+
44
+ var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
45
+ var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
46
+ var express__namespace = /*#__PURE__*/_interopNamespaceDefault(express);
47
+ var winston__namespace = /*#__PURE__*/_interopNamespaceDefault(winston);
48
+
49
+ const colors$2 = picocolors.createColors();
50
+ function isDefined(value) {
51
+ return value != null;
52
+ }
53
+ function bindShortcuts(server, opts) {
54
+ if (!server.httpServer || !process.stdin.isTTY || process.env.CI) {
55
+ return;
56
+ }
57
+ server._shortcutsOptions = opts;
58
+ if (opts.print) {
59
+ server.config.logger.info(colors$2.dim(colors$2.green(' ➜')) + colors$2.dim(' press ') + colors$2.bold('h') + colors$2.dim(' to show help'));
60
+ }
61
+ const shortcuts = (opts.customShortcuts ?? []).filter(isDefined).concat(BASE_SHORTCUTS);
62
+ let actionRunning = false;
63
+ const onInput = async (input) => {
64
+ // ctrl+c or ctrl+d
65
+ if (input === '\x03' || input === '\x04') {
66
+ await server.close().finally(() => process.exit(1));
67
+ return;
68
+ }
69
+ if (actionRunning) {
70
+ return;
71
+ }
72
+ if (input === 'h') {
73
+ server.config.logger.info([
74
+ '',
75
+ colors$2.bold(' Shortcuts'),
76
+ ...shortcuts.map((shortcut) => colors$2.dim(' press ') + colors$2.bold(shortcut.key) + colors$2.dim(` to ${shortcut.description}`)),
77
+ ].join('\n'));
78
+ }
79
+ const shortcut = shortcuts.find((shortcut) => shortcut.key === input);
80
+ if (!shortcut) {
81
+ return;
82
+ }
83
+ actionRunning = true;
84
+ await shortcut.action(server);
85
+ actionRunning = false;
86
+ };
87
+ process.stdin.setRawMode(true);
88
+ process.stdin.on('data', onInput).setEncoding('utf8').resume();
89
+ server.httpServer.on('close', () => {
90
+ process.stdin.off('data', onInput).pause();
91
+ });
92
+ }
93
+ const BASE_SHORTCUTS = [
94
+ {
95
+ key: 'r',
96
+ description: 'restart the server',
97
+ async action(server) {
98
+ await server.restart();
99
+ },
100
+ },
101
+ {
102
+ key: 'u',
103
+ description: 'show server url',
104
+ action(server) {
105
+ server.config.logger.info('');
106
+ server.printUrls();
107
+ },
108
+ },
109
+ {
110
+ key: 'o',
111
+ description: 'open in browser',
112
+ action(server) {
113
+ server.openBrowser();
114
+ },
115
+ },
116
+ {
117
+ key: 'c',
118
+ description: 'clear console',
119
+ action(server) {
120
+ server.config.logger.clearScreen('error');
121
+ },
122
+ },
123
+ {
124
+ key: 'q',
125
+ description: 'quit',
126
+ async action(server) {
127
+ await server.close().finally(() => process.exit());
128
+ },
129
+ },
130
+ {
131
+ key: 'C',
132
+ description: 'clear proxy cache',
133
+ action(server) {
134
+ if (server.cache) {
135
+ server.cache.clear();
136
+ server.config.logger.info('Proxy cache cleared');
137
+ }
138
+ },
139
+ },
140
+ ];
141
+
142
+ const colors$1 = picocolors.createColors();
143
+ function createDevServer(logLevel = 'info') {
144
+ const server = express__namespace.default();
145
+ const logger = winston__namespace.createLogger({
146
+ level: logLevel,
147
+ format: winston__namespace.format.cli({ level: true }),
148
+ transports: [new winston__namespace.transports.Console()],
149
+ });
150
+ server.config = {
151
+ logger,
152
+ };
153
+ const originalListen = server.listen;
154
+ let listener;
155
+ server.listen = function (...args) {
156
+ listener = originalListen.apply(this, args);
157
+ };
158
+ server.printUrls = function (base) {
159
+ if (!listener) {
160
+ throw new Error('Server is not listening');
161
+ }
162
+ const colorUrl = (url) => colors$1.cyan(url.replace(/:(\d+)\//, (_, port) => `:${colors$1.bold(port)}/`));
163
+ const address = listener.address();
164
+ if (address && typeof address === 'object') {
165
+ if (address.address === '::') {
166
+ const url$1 = new url.URL(base || '', `http://localhost:${address.port}`);
167
+ logger.info(` ${colors$1.green('➜')} ${colors$1.bold('Local')}: ${colorUrl(url$1.toString())}`);
168
+ }
169
+ else {
170
+ const url$1 = new url.URL(base || '', `http://[${address.address}]:${address.port}`);
171
+ logger.info(` ${colors$1.green('➜')} ${colors$1.bold('Local')}: ${colorUrl(url$1.toString())}`);
172
+ }
173
+ }
174
+ };
175
+ return server;
176
+ }
177
+
178
+ const cli = cac.cac('pp-dev');
179
+ const colors = picocolors.createColors();
180
+ let profileSession = global.__pp_dev_profile_session;
181
+ let profileCount = 0;
182
+ const stopProfiler = (log) => {
183
+ if (!profileSession) {
184
+ return;
185
+ }
186
+ return new Promise((res, rej) => {
187
+ profileSession.post('Profiler.stop', (err, { profile }) => {
188
+ // Write profile to disk, upload, etc.
189
+ if (!err) {
190
+ const outPath = path__namespace.resolve(`./pp-dev-profile-${profileCount++}.cpuprofile`);
191
+ fs__namespace.writeFileSync(outPath, JSON.stringify(profile));
192
+ log(colors.yellow(`CPU profile written to ${colors.white(colors.dim(outPath))}`));
193
+ profileSession = undefined;
194
+ res();
195
+ }
196
+ else {
197
+ rej(err);
198
+ }
199
+ });
200
+ });
201
+ };
202
+ const filterDuplicateOptions = (options) => {
203
+ for (const [key, value] of Object.entries(options)) {
204
+ if (Array.isArray(value)) {
205
+ options[key] = value[value.length - 1];
206
+ }
207
+ }
208
+ };
209
+ /**
210
+ * removing global flags before passing as command specific sub-configs
211
+ */
212
+ function cleanOptions(options) {
213
+ const ret = { ...options };
214
+ delete ret['--'];
215
+ delete ret.c;
216
+ delete ret.config;
217
+ delete ret.base;
218
+ delete ret.l;
219
+ delete ret.logLevel;
220
+ delete ret.clearScreen;
221
+ delete ret.d;
222
+ delete ret.debug;
223
+ delete ret.f;
224
+ delete ret.filter;
225
+ delete ret.m;
226
+ delete ret.mode;
227
+ return ret;
228
+ }
229
+ cli
230
+ .option('-c, --config <file>', `[string] use specified config file`)
231
+ .option('--base <path>', `[string] public base path (default: /)`)
232
+ .option('-l, --logLevel <level>', `[string] info | warn | error | silent`)
233
+ .option('--clearScreen', `[boolean] allow/disable clear screen when logging`)
234
+ .option('-d, --debug [feat]', `[string | boolean] show debug logs`)
235
+ .option('-f, --filter <filter>', `[string] filter debug logs`)
236
+ .option('-m, --mode <mode>', `[string] set env mode`);
237
+ // dev
238
+ cli
239
+ .command('[root]', 'start dev server') // default command
240
+ .alias('serve') // the command is called 'serve' in Vite's API
241
+ .alias('dev') // alias to align with the script name
242
+ .option('--host [host]', `[string] specify hostname`)
243
+ .option('--port <port>', `[number] specify port`)
244
+ .option('--https', `[boolean] use TLS + HTTP/2`)
245
+ .option('--open [path]', `[boolean | string] open browser on startup`)
246
+ .option('--cors', `[boolean] enable CORS`)
247
+ .option('--strictPort', `[boolean] exit if specified port is already in use`)
248
+ .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
249
+ .action(async (root, options) => {
250
+ filterDuplicateOptions(options);
251
+ // output structure is preserved even after bundling so require()
252
+ // is ok here
253
+ const { createServer } = await import('vite');
254
+ try {
255
+ const configFromFile = await vite.loadConfigFromFile({ mode: options.mode || 'development', command: 'serve' }, options.config, root, options.logLevel);
256
+ let config = await index.getViteConfig();
257
+ if (configFromFile) {
258
+ const { plugins, ...fileConfig } = configFromFile.config;
259
+ config = vite.mergeConfig(config, fileConfig);
260
+ }
261
+ const server = await createServer(vite.mergeConfig(config, {
262
+ root,
263
+ base: options.base,
264
+ mode: options.mode,
265
+ configFile: options.config,
266
+ logLevel: options.logLevel,
267
+ clearScreen: options.clearScreen,
268
+ optimizeDeps: { force: options.force },
269
+ server: cleanOptions(options),
270
+ }, true));
271
+ if (!server.httpServer) {
272
+ throw new Error('HTTP server not available');
273
+ }
274
+ await server.listen();
275
+ const info = server.config.logger.info;
276
+ const ppDevStartTime = global.__pp_dev_start_time ?? false;
277
+ const startupDurationString = ppDevStartTime
278
+ ? colors.dim(`ready in ${colors.reset(colors.bold(Math.ceil(node_perf_hooks.performance.now() - ppDevStartTime)))} ms`)
279
+ : '';
280
+ info(`\n ${colors.green(`${colors.bold('PP-DEV')} v${index.VERSION}`)} ${startupDurationString}\n`, {
281
+ clear: !server.config.logger.hasWarned,
282
+ });
283
+ server.printUrls();
284
+ bindShortcuts(server, {
285
+ print: true,
286
+ customShortcuts: [
287
+ profileSession && {
288
+ key: 'p',
289
+ description: 'start/stop the profiler',
290
+ async action(server) {
291
+ if (profileSession) {
292
+ await stopProfiler(server.config.logger.info);
293
+ }
294
+ else {
295
+ const inspector = await import('node:inspector').then((r) => r.default);
296
+ await new Promise((res) => {
297
+ profileSession = new inspector.Session();
298
+ profileSession.connect();
299
+ profileSession.post('Profiler.enable', () => {
300
+ profileSession?.post('Profiler.start', () => {
301
+ server.config.logger.info('Profiler started');
302
+ res();
303
+ });
304
+ });
305
+ });
306
+ }
307
+ },
308
+ },
309
+ {
310
+ key: 'l',
311
+ description: 'proxy re-login',
312
+ action(server) {
313
+ server.ws.send({
314
+ type: 'custom',
315
+ event: 'redirect',
316
+ data: { url: `/auth/index/logout?proxyRedirect=${encodeURIComponent('/')}` },
317
+ });
318
+ },
319
+ },
320
+ ],
321
+ });
322
+ }
323
+ catch (e) {
324
+ const logger = vite.createLogger(options.logLevel);
325
+ logger.error(colors.red(`error when starting dev server:\n${e.stack}`), {
326
+ error: e,
327
+ });
328
+ stopProfiler(logger.info);
329
+ process.exit(1);
330
+ }
331
+ });
332
+ // dev
333
+ cli
334
+ .command('next [root]', 'start dev server') // default command
335
+ .alias('next-serve') // the command is called 'serve' in Vite's API
336
+ .alias('next-dev') // alias to align with the script name
337
+ .option('--host [host]', `[string] specify hostname`)
338
+ .option('--port <port>', `[number] specify port`, { default: 3000 })
339
+ .option('--https', `[boolean] use TLS + HTTP/2`)
340
+ .option('--open [path]', `[boolean | string] open browser on startup`)
341
+ .option('--cors', `[boolean] enable CORS`)
342
+ .option('--strictPort', `[boolean] exit if specified port is already in use`)
343
+ .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
344
+ .action(async (root, options) => {
345
+ filterDuplicateOptions(options);
346
+ const { default: next } = await import('next');
347
+ const server = createDevServer(options.logLevel);
348
+ const opts = cleanOptions(options);
349
+ const app = next({ dev: true, hostname: opts.host, port: opts.port });
350
+ const handle = app.getRequestHandler();
351
+ await app.prepare();
352
+ const nextServer = (await app.getServer());
353
+ let base = nextServer.nextConfig.basePath;
354
+ if (!base.endsWith('/')) {
355
+ base += '/';
356
+ }
357
+ const baseWithoutTrailingSlash = base.substring(0, base.lastIndexOf('/'));
358
+ const templateName = nextServer.nextConfig.serverRuntimeConfig.templateName;
359
+ const ppDevConfig = nextServer.nextConfig.serverRuntimeConfig.ppDevConfig;
360
+ const { backendBaseURL, portalPageId, templateLess = true, enableProxyCache = true, miHudLess = true, proxyCacheTTL = 10 * 60 * 1000, } = ppDevConfig;
361
+ server.use(plugin.initPPRedirect(base, templateName));
362
+ if (backendBaseURL) {
363
+ const baseUrlHost = new URL(backendBaseURL).host;
364
+ const mi = new plugin.MiAPI(backendBaseURL, {
365
+ headers: {
366
+ host: baseUrlHost,
367
+ referer: backendBaseURL,
368
+ origin: backendBaseURL.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i, '$1$2'),
369
+ },
370
+ portalPageId,
371
+ templateLess,
372
+ });
373
+ if (enableProxyCache) {
374
+ let ttl = +proxyCacheTTL;
375
+ if (!ttl || Number.isNaN(ttl) || ttl < 0) {
376
+ ttl = 10 * 60 * 1000; // 10 minutes
377
+ }
378
+ server.use(plugin.initProxyCache({ devServer: server, ttl }));
379
+ }
380
+ server.use(plugin.initProxy({
381
+ devServer: server,
382
+ baseURL: backendBaseURL,
383
+ proxyIgnore: ['/@vite', '/@metricinsights', '/@', baseWithoutTrailingSlash],
384
+ }));
385
+ const isIndexRegExp = new RegExp(`^((${base})|/)$`);
386
+ // Get portal page variables from the backend (also, redirect magic)
387
+ server.use(plugin.initLoadPPData(isIndexRegExp, mi, ppDevConfig));
388
+ server.use(plugin.initRewriteResponse((url) => {
389
+ return isIndexRegExp.test(plugin.cutUrlParams(url));
390
+ }, (response, req) => {
391
+ return Buffer.from(plugin.urlReplacer(baseUrlHost, req.headers.host ?? '', mi.buildPage(response, miHudLess)));
392
+ }));
393
+ }
394
+ server.all('*', (req, res) => {
395
+ const parsedUrl = url.parse(req.url, true);
396
+ handle(req, res, parsedUrl);
397
+ });
398
+ try {
399
+ await new Promise((resolve) => {
400
+ if (opts.host) {
401
+ resolve(server.listen(opts.port, opts.host, () => {
402
+ //
403
+ }));
404
+ }
405
+ else {
406
+ resolve(server.listen(opts.port, () => {
407
+ //
408
+ }));
409
+ }
410
+ });
411
+ const info = server.config.logger.info;
412
+ const ppDevStartTime = global.__pp_dev_start_time ?? false;
413
+ const startupDurationString = ppDevStartTime
414
+ ? colors.dim(`ready in ${colors.reset(colors.bold(Math.ceil(node_perf_hooks.performance.now() - ppDevStartTime)))} ms`)
415
+ : '';
416
+ info(`\n ${colors.green(`${colors.bold('PP-DEV')} v${index.VERSION}`)} ${startupDurationString}\n`, {
417
+ clear: true,
418
+ });
419
+ server.printUrls(base);
420
+ // bindShortcuts(server, {
421
+ // print: true,
422
+ // customShortcuts: [
423
+ // profileSession && {
424
+ // key: 'p',
425
+ // description: 'start/stop the profiler',
426
+ // async action(server) {
427
+ // if (profileSession) {
428
+ // await stopProfiler(server.config.logger.info);
429
+ // } else {
430
+ // const inspector = await import('node:inspector').then((r) => (r as any).default);
431
+ // await new Promise<void>((res) => {
432
+ // profileSession = new inspector.Session();
433
+ // profileSession.connect();
434
+ // profileSession.post('Profiler.enable', () => {
435
+ // profileSession?.post('Profiler.start', () => {
436
+ // server.config.logger.info('Profiler started');
437
+ // res();
438
+ // });
439
+ // });
440
+ // });
441
+ // }
442
+ // },
443
+ // },
444
+ // {
445
+ // key: 'l',
446
+ // description: 'proxy re-login',
447
+ // action(server: ViteDevServer): void | Promise<void> {
448
+ // server.ws.send({
449
+ // type: 'custom',
450
+ // event: 'redirect',
451
+ // data: { url: `/auth/index/logout?proxyRedirect=${encodeURIComponent('/')}` },
452
+ // });
453
+ // },
454
+ // },
455
+ // ],
456
+ // });
457
+ }
458
+ catch (e) {
459
+ const logger = vite.createLogger(options.logLevel);
460
+ logger.error(colors.red(`error when starting dev server:\n${e.stack}`), {
461
+ error: e,
462
+ });
463
+ stopProfiler(logger.info);
464
+ process.exit(1);
465
+ }
466
+ });
467
+ // build
468
+ cli
469
+ .command('build [root]', 'build for production')
470
+ .option('--target <target>', `[string] transpile target (default: 'modules')`)
471
+ .option('--outDir <dir>', `[string] output directory (default: dist)`)
472
+ .option('--assetsDir <dir>', `[string] directory under outDir to place assets in (default: assets)`)
473
+ .option('--assetsInlineLimit <number>', `[number] static asset base64 inline threshold in bytes (default: 4096)`)
474
+ .option('--ssr [entry]', `[string] build specified entry for server-side rendering`)
475
+ .option('--sourcemap [output]', `[boolean | "inline" | "hidden"] output source maps for build (default: false)`)
476
+ .option('--minify [minifier]', `[boolean | "terser" | "esbuild"] enable/disable minification, ` + `or specify minifier to use (default: esbuild)`)
477
+ .option('--manifest [name]', `[boolean | string] emit build manifest json`)
478
+ .option('--ssrManifest [name]', `[boolean | string] emit ssr manifest json`)
479
+ .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle (experimental)`)
480
+ .option('--emptyOutDir', `[boolean] force empty outDir when it's outside of root`)
481
+ .option('-w, --watch', `[boolean] rebuilds when modules have changed on disk`)
482
+ .action(async (root, options) => {
483
+ filterDuplicateOptions(options);
484
+ const buildOptions = cleanOptions(options);
485
+ try {
486
+ const configFromFile = await vite.loadConfigFromFile({ mode: options.mode || 'production', command: 'build' }, options.config, root, options.logLevel);
487
+ let config = await index.getViteConfig();
488
+ if (configFromFile) {
489
+ const { plugins, ...fileConfig } = configFromFile.config;
490
+ config = vite.mergeConfig(config, fileConfig);
491
+ }
492
+ await vite.build(vite.mergeConfig(config, {
493
+ root,
494
+ base: options.base,
495
+ mode: options.mode,
496
+ configFile: options.config,
497
+ logLevel: options.logLevel,
498
+ clearScreen: options.clearScreen,
499
+ optimizeDeps: { force: options.force },
500
+ build: buildOptions,
501
+ }, true));
502
+ }
503
+ catch (e) {
504
+ vite.createLogger(options.logLevel).error(colors.red(`error during build:\n${e.stack}`), { error: e });
505
+ process.exit(1);
506
+ }
507
+ finally {
508
+ stopProfiler((message) => vite.createLogger(options.logLevel).info(message));
509
+ }
510
+ });
511
+ // optimize
512
+ cli
513
+ .command('optimize [root]', 'pre-bundle dependencies')
514
+ .option('--force', `[boolean] force the optimizer to ignore the cache and re-bundle`)
515
+ .action(async (root, options) => {
516
+ filterDuplicateOptions(options);
517
+ try {
518
+ const configFromFile = await vite.loadConfigFromFile({ mode: options.mode || 'production', command: 'build' }, options.config, root, options.logLevel);
519
+ let config = await index.getViteConfig();
520
+ if (configFromFile) {
521
+ const { plugins, ...fileConfig } = configFromFile.config;
522
+ config = vite.mergeConfig(config, fileConfig);
523
+ }
524
+ const optimizeConfig = await vite.resolveConfig(vite.mergeConfig(config, {
525
+ root,
526
+ base: options.base,
527
+ configFile: options.config,
528
+ logLevel: options.logLevel,
529
+ mode: options.mode,
530
+ }), 'serve');
531
+ await vite.optimizeDeps(optimizeConfig, options.force, true);
532
+ }
533
+ catch (e) {
534
+ vite.createLogger(options.logLevel).error(colors.red(`error when optimizing deps:\n${e.stack}`), { error: e });
535
+ process.exit(1);
536
+ }
537
+ });
538
+ cli
539
+ .command('preview [root]', 'locally preview production build')
540
+ .option('--host [host]', `[string] specify hostname`)
541
+ .option('--port <port>', `[number] specify port`)
542
+ .option('--strictPort', `[boolean] exit if specified port is already in use`)
543
+ .option('--https', `[boolean] use TLS + HTTP/2`)
544
+ .option('--open [path]', `[boolean | string] open browser on startup`)
545
+ .option('--outDir <dir>', `[string] output directory (default: dist)`)
546
+ .action(async (root, options) => {
547
+ filterDuplicateOptions(options);
548
+ try {
549
+ const configFromFile = await vite.loadConfigFromFile({ mode: options.mode || 'production', command: 'build' }, options.config, root, options.logLevel);
550
+ let config = await index.getViteConfig();
551
+ if (configFromFile) {
552
+ const { plugins, ...fileConfig } = configFromFile.config;
553
+ config = vite.mergeConfig(config, fileConfig);
554
+ }
555
+ const server = await vite.preview(vite.mergeConfig(config, {
556
+ root,
557
+ base: options.base,
558
+ configFile: options.config,
559
+ logLevel: options.logLevel,
560
+ mode: options.mode,
561
+ build: {
562
+ outDir: options.outDir,
563
+ },
564
+ preview: {
565
+ port: options.port,
566
+ strictPort: options.strictPort,
567
+ host: options.host,
568
+ https: options.https,
569
+ open: options.open,
570
+ },
571
+ }));
572
+ server.printUrls();
573
+ }
574
+ catch (e) {
575
+ vite.createLogger(options.logLevel).error(colors.red(`error when starting preview server:\n${e.stack}`), {
576
+ error: e,
577
+ });
578
+ process.exit(1);
579
+ }
580
+ finally {
581
+ stopProfiler((message) => vite.createLogger(options.logLevel).info(message));
582
+ }
583
+ });
584
+ cli.help();
585
+ cli.version(index.VERSION);
586
+ cli.parse();
587
+
588
+ exports.stopProfiler = stopProfiler;
589
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sources":["shortcuts.ts","server.ts","cli.ts"],"sourcesContent":[null,null,null],"names":["colors","createColors","express","winston","url","URL","cac","path","fs","loadConfigFromFile","getViteConfig","mergeConfig","performance","VERSION","createLogger","initPPRedirect","MiAPI","initProxyCache","proxyPassMiddleware","initLoadPPData","initRewriteResponse","cutUrlParams","urlReplacer","parse","build","resolveConfig","optimizeDeps","preview"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Prefix function for JS template literals to enable syntax highlighting in IDEs
5
+ * @param strings
6
+ * @param values
7
+ * @example
8
+ * import { templateFunction as sql } from '@metricinsights/pp-dev/helpers';
9
+ *
10
+ * const query = sql`SELECT * FROM table WHERE id = 1`;
11
+ */
12
+ const templateFunction = (strings, ...values) => String.raw({ raw: strings }, ...values);
13
+ /**
14
+ * Prefix function for JS template literals to enable syntax highlighting for HTML in IDEs
15
+ * @param strings
16
+ * @param values
17
+ */
18
+ const html = templateFunction;
19
+ /**
20
+ * Prefix function for JS template literals to enable syntax highlighting for CSS and SCSS in IDEs
21
+ * @param strings
22
+ * @param values
23
+ */
24
+ const css = templateFunction;
25
+
26
+ exports.css = css;
27
+ exports.html = html;
28
+ exports.templateFunction = templateFunction;
29
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["formatting.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;;;AAQG;AACU,MAAA,gBAAgB,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAa,KAC9E,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE;AAE1C;;;;AAIG;AACI,MAAM,IAAI,GAAG,iBAAiB;AAErC;;;;AAIG;AACI,MAAM,GAAG,GAAG;;;;;;","x_google_ignoreList":[0]}