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