@metricinsights/pp-dev 0.0.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 (43) hide show
  1. package/README.md +36 -0
  2. package/bin/pp-dev.js +71 -0
  3. package/dist/banner/header.d.ts +2 -0
  4. package/dist/banner/header.js +10 -0
  5. package/dist/banner/header.js.map +1 -0
  6. package/dist/cli.d.ts +1 -0
  7. package/dist/cli.js +275 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/client/client.css +36 -0
  10. package/dist/client/client.js +19 -0
  11. package/dist/client/client.js.map +1 -0
  12. package/dist/client/index.d.ts +2 -0
  13. package/dist/client/index.html +40 -0
  14. package/dist/client/rollup.config.d.ts +2 -0
  15. package/dist/constants.d.ts +6 -0
  16. package/dist/constants.js +18 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/index.d.ts +9 -0
  19. package/dist/index.js +147 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/lib/client.service.d.ts +10 -0
  22. package/dist/lib/client.service.js +33 -0
  23. package/dist/lib/client.service.js.map +1 -0
  24. package/dist/lib/helpers/url.helper.d.ts +3 -0
  25. package/dist/lib/helpers/url.helper.js +27 -0
  26. package/dist/lib/helpers/url.helper.js.map +1 -0
  27. package/dist/lib/pp.middleware.d.ts +15 -0
  28. package/dist/lib/pp.middleware.js +133 -0
  29. package/dist/lib/pp.middleware.js.map +1 -0
  30. package/dist/lib/proxy-pass.middleware.d.ts +9 -0
  31. package/dist/lib/proxy-pass.middleware.js +88 -0
  32. package/dist/lib/proxy-pass.middleware.js.map +1 -0
  33. package/dist/plugin.d.ts +10 -0
  34. package/dist/plugin.js +103 -0
  35. package/dist/plugin.js.map +1 -0
  36. package/dist/plugins/client-injection-plugin.d.ts +12 -0
  37. package/dist/plugins/client-injection-plugin.js +57 -0
  38. package/dist/plugins/client-injection-plugin.js.map +1 -0
  39. package/dist/shortcuts.d.ts +12 -0
  40. package/dist/shortcuts.js +83 -0
  41. package/dist/shortcuts.js.map +1 -0
  42. package/package.json +68 -0
  43. package/pp-dev.d.ts +60 -0
@@ -0,0 +1,57 @@
1
+ import { normalizePath } from 'vite';
2
+ import * as path from 'path';
3
+ import { PP_DEV_CLIENT_ENTRY, PACKAGE_NAME, VERSION, PP_DEV_PACKAGE_DIR } from '../constants.js';
4
+ import * as fs from 'fs';
5
+ import { compile } from 'ejs';
6
+ import * as url from 'url';
7
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
8
+ const PACKAGE_IMPORT = `${PACKAGE_NAME}/client`;
9
+ const CLIENT_PATH = `/${PACKAGE_IMPORT}`;
10
+ export function clientInjectionPlugin(opts) {
11
+ const clientPanelTpl = fs.readFileSync(path.resolve(__dirname, '..', 'client', 'index.html'), {
12
+ encoding: 'utf8',
13
+ flag: 'r',
14
+ });
15
+ let render;
16
+ return {
17
+ name: 'pp-dev:client',
18
+ apply: 'serve',
19
+ config: (config) => {
20
+ config.optimizeDeps?.exclude?.push(`${PACKAGE_NAME}/client`);
21
+ return config;
22
+ },
23
+ resolveId(source) {
24
+ const pkgRegExp = new RegExp(`^\\/?${PACKAGE_NAME}\\/client\\/(.*)$`);
25
+ if (pkgRegExp.test(source)) {
26
+ return {
27
+ id: normalizePath(path.join(PP_DEV_PACKAGE_DIR, 'dist/client', source.replace(pkgRegExp, '$1'))),
28
+ };
29
+ }
30
+ },
31
+ transformIndexHtml: async (html, ctx) => {
32
+ const result = {
33
+ html,
34
+ tags: [
35
+ { tag: 'link', injectTo: 'head', attrs: { rel: 'stylesheet', href: `${PACKAGE_NAME}/client/client.css` } },
36
+ { tag: 'script', injectTo: 'body', attrs: { src: `${PACKAGE_NAME}/client/client.js`, type: 'module' } },
37
+ ],
38
+ };
39
+ const { backendBaseURL, templateLess, portalPageId } = opts || ctx.server?.config.clientInjectionPlugin || {};
40
+ if (!render && ctx.server?.config.base) {
41
+ render = compile(clientPanelTpl.replace(new RegExp(`${CLIENT_PATH}`, 'g'), path.posix.join(ctx.server.config.base, PACKAGE_IMPORT)), { openDelimiter: '{', closeDelimiter: '}', async: true });
42
+ }
43
+ if (ctx.server?.config.base) {
44
+ result.tags.push({
45
+ tag: 'div',
46
+ injectTo: 'body',
47
+ children: await render({ PACKAGE_NAME, VERSION, backendBaseURL, templateLess, portalPageId }),
48
+ });
49
+ }
50
+ return result;
51
+ },
52
+ configureServer(server) {
53
+ server.config.server?.fs?.allow?.push(normalizePath(path.resolve(server.config.root, path.dirname(PP_DEV_CLIENT_ENTRY))));
54
+ },
55
+ };
56
+ }
57
+ //# sourceMappingURL=client-injection-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-injection-plugin.js","sourceRoot":"","sources":["../../src/plugins/client-injection-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ViteDevServer } from 'vite';
2
+ export declare function isDefined<T>(value: T | undefined | null): value is T;
3
+ export type BindShortcutsOptions = {
4
+ print?: boolean;
5
+ customShortcuts?: (CLIShortcut | undefined | null)[];
6
+ };
7
+ export type CLIShortcut = {
8
+ key: string;
9
+ description: string;
10
+ action(server: ViteDevServer): void | Promise<void>;
11
+ };
12
+ export declare function bindShortcuts(server: ViteDevServer, opts: BindShortcutsOptions): void;
@@ -0,0 +1,83 @@
1
+ import { createColors } from 'picocolors';
2
+ const colors = createColors();
3
+ export function isDefined(value) {
4
+ return value != null;
5
+ }
6
+ export function bindShortcuts(server, opts) {
7
+ if (!server.httpServer || !process.stdin.isTTY || process.env.CI) {
8
+ return;
9
+ }
10
+ server._shortcutsOptions = opts;
11
+ if (opts.print) {
12
+ server.config.logger.info(colors.dim(colors.green(' ➜')) + colors.dim(' press ') + colors.bold('h') + colors.dim(' to show help'));
13
+ }
14
+ const shortcuts = (opts.customShortcuts ?? []).filter(isDefined).concat(BASE_SHORTCUTS);
15
+ let actionRunning = false;
16
+ const onInput = async (input) => {
17
+ if (input === '\x03' || input === '\x04') {
18
+ await server.close().finally(() => process.exit(1));
19
+ return;
20
+ }
21
+ if (actionRunning) {
22
+ return;
23
+ }
24
+ if (input === 'h') {
25
+ server.config.logger.info([
26
+ '',
27
+ colors.bold(' Shortcuts'),
28
+ ...shortcuts.map((shortcut) => colors.dim(' press ') + colors.bold(shortcut.key) + colors.dim(` to ${shortcut.description}`)),
29
+ ].join('\n'));
30
+ }
31
+ const shortcut = shortcuts.find((shortcut) => shortcut.key === input);
32
+ if (!shortcut) {
33
+ return;
34
+ }
35
+ actionRunning = true;
36
+ await shortcut.action(server);
37
+ actionRunning = false;
38
+ };
39
+ process.stdin.setRawMode(true);
40
+ process.stdin.on('data', onInput).setEncoding('utf8').resume();
41
+ server.httpServer.on('close', () => {
42
+ process.stdin.off('data', onInput).pause();
43
+ });
44
+ }
45
+ const BASE_SHORTCUTS = [
46
+ {
47
+ key: 'r',
48
+ description: 'restart the server',
49
+ async action(server) {
50
+ await server.restart();
51
+ },
52
+ },
53
+ {
54
+ key: 'u',
55
+ description: 'show server url',
56
+ action(server) {
57
+ server.config.logger.info('');
58
+ server.printUrls();
59
+ },
60
+ },
61
+ {
62
+ key: 'o',
63
+ description: 'open in browser',
64
+ action(server) {
65
+ server.openBrowser();
66
+ },
67
+ },
68
+ {
69
+ key: 'c',
70
+ description: 'clear console',
71
+ action(server) {
72
+ server.config.logger.clearScreen('error');
73
+ },
74
+ },
75
+ {
76
+ key: 'q',
77
+ description: 'quit',
78
+ async action(server) {
79
+ await server.close().finally(() => process.exit());
80
+ },
81
+ },
82
+ ];
83
+ //# sourceMappingURL=shortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../src/shortcuts.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@metricinsights/pp-dev",
3
+ "type": "module",
4
+ "version": "0.0.1",
5
+ "description": "Portal Page dev build tool",
6
+ "bin": {
7
+ "pp-dev": "bin/pp-dev.js"
8
+ },
9
+ "main": "dist/index.js",
10
+ "scripts": {
11
+ "clean": "rimraf ./dist",
12
+ "prebuild": "npm run clean",
13
+ "build": "npm run build:node && npm run build:client",
14
+ "build:node": "tsc",
15
+ "build:client": "rollup --config src/client/rollup.config.ts --configPlugin typescript",
16
+ "test": "cd test && npm run build"
17
+ },
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ },
23
+ "./plugin": {
24
+ "types": "./dist/plugin.d.ts",
25
+ "import": "./dist/plugin.js"
26
+ },
27
+ "./client/*": "./dist/client/*",
28
+ "./package.json": "./package.json"
29
+ },
30
+ "author": "Serhii Shpak",
31
+ "license": "ISC",
32
+ "dependencies": {
33
+ "axios": "^1.4.0",
34
+ "cac": "^6.7.14",
35
+ "ejs": "^3.1.9",
36
+ "esbuild": "^0.17.18",
37
+ "express": "^4.18.2",
38
+ "file-type": "^18.3.0",
39
+ "http-proxy-middleware": "^2.0.6",
40
+ "jsdom": "^22.0.0",
41
+ "picocolors": "^1.0.0",
42
+ "sass": "^1.62.1",
43
+ "typescript": "^5.0.4",
44
+ "vite": "^4.3.4",
45
+ "vite-plugin-zip-pack": "^1.0.5"
46
+ },
47
+ "devDependencies": {
48
+ "@rollup/plugin-node-resolve": "^15.0.2",
49
+ "@rollup/plugin-typescript": "^11.1.1",
50
+ "@rollup/plugin-url": "^8.0.1",
51
+ "@types/ejs": "^3.1.2",
52
+ "@types/express": "^4.17.17",
53
+ "@types/jsdom": "^21.1.1",
54
+ "rimraf": "^5.0.1",
55
+ "rollup": "^3.23.0",
56
+ "rollup-plugin-scss": "^3.0.0",
57
+ "tslib": "^2.5.2"
58
+ },
59
+ "files": [
60
+ "bin",
61
+ "dist",
62
+ "package.json",
63
+ "README.md",
64
+ "LICENSE.md",
65
+ "pp-dev.d.ts",
66
+ "assets"
67
+ ]
68
+ }
package/pp-dev.d.ts ADDED
@@ -0,0 +1,60 @@
1
+ import type { PPDevConfig, PPWatchConfig } from '.';
2
+
3
+ declare module 'pp-dev.config.ts' {
4
+ const config: PPDevConfig;
5
+
6
+ export default config;
7
+ }
8
+
9
+ declare module '.pp-dev.config.ts' {
10
+ const config: PPDevConfig;
11
+
12
+ export default config;
13
+ }
14
+
15
+ declare module 'pp-dev.config.js' {
16
+ const config: PPDevConfig;
17
+
18
+ export default config;
19
+ }
20
+
21
+ declare module '.pp-dev.config.js' {
22
+ const config: PPDevConfig;
23
+
24
+ export default config;
25
+ }
26
+
27
+ declare module 'pp-dev.config.json' {
28
+ const config: PPDevConfig;
29
+
30
+ export default config;
31
+ }
32
+
33
+ declare module '.pp-dev.config.json' {
34
+ const config: PPDevConfig;
35
+
36
+ export default config;
37
+ }
38
+
39
+ declare module '.pp-watch.config.ts' {
40
+ const config: PPWatchConfig;
41
+
42
+ export default config;
43
+ }
44
+
45
+ declare module '.pp-watch.config.js' {
46
+ const config: PPWatchConfig;
47
+
48
+ export default config;
49
+ }
50
+
51
+ declare module '.pp-watch.config.json' {
52
+ const config: PPWatchConfig;
53
+
54
+ export default config;
55
+ }
56
+
57
+ declare module '*.scss' {
58
+ const content: Record<string, string>;
59
+ export default content;
60
+ }