@michijs/dev-server 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
- # Michi Dev Server
2
- Development server built with esbuild.
1
+ # Michijs Dev Server
2
+ Development server built on top of esbuild.
3
3
 
4
4
  ![npm][version] [![license][github-license]][github-license-url] ![npm][npm-downloads] ![npm][repo-size]
5
5
  [![CodeQL](https://github.com/michijs/dev-server/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/michijs/dev-server/actions/workflows/codeql-analysis.yml)
@@ -17,7 +17,33 @@ You can use the following [test project](https://github.com/michijs/michijs-temp
17
17
 
18
18
  npm install -D @michijs/dev-server
19
19
 
20
+ ## CLI commands
21
+ You have the following CLI commands:
22
+ <table>
23
+ <thead>
24
+ <tr>
25
+ <th>CLI command</th>
26
+ <th>Default environment</th>
27
+ </tr>
28
+ </thead>
29
+ <tbody>
30
+ <tr>
31
+ <td>start</td>
32
+ <td>DEVELOPMENT</td>
33
+ </tr>
34
+ <tr>
35
+ <td>build</td>
36
+ <td>PRODUCTION</td>
37
+ </tr>
38
+ <tr>
39
+ <td>dist</td>
40
+ <td>DISTRIBUTION</td>
41
+ </tr>
42
+ </tbody>
43
+ </table>
44
+
20
45
 
46
+ ## Configure the server
21
47
  To configure the server you just need to create an optional file called michi.config.ts at the root of your project. This file would look like this:
22
48
 
23
49
  ```ts
@@ -51,34 +77,42 @@ export default config;
51
77
  <td colspan="2">All the options available at <a href="https://esbuild.github.io/plugins/#build-options">esbuild documentation</a></td>
52
78
  <td>Can be chequed <a href="#esbuild-default-options">here</a></td>
53
79
  </tr>
80
+ <tr>
81
+ <td rowspan="3">manifest</td>
82
+ <td rowspan="3">Is a JSON document that contains startup parameters and application defaults for when a web application is launched.</td>
83
+ <tr>
84
+ <td>name</td>
85
+ <td>"manifest.json"</td>
86
+ </tr>
87
+ <tr>
88
+ <td>options</td>
89
+ <td></td>
90
+ </tr>
91
+ </tr>
54
92
  <tr>
55
93
  <td>openBrowser</td>
56
94
  <td colspan="2">If the browser should open at localhost url when server starts</td>
57
- <td>true</td>
95
+ <td>"true"</td>
58
96
  </tr>
59
97
  <tr>
60
98
  <td>port</td>
61
99
  <td colspan="2">Port to run dev server on</td>
62
- <td>3000</td>
100
+ <td>"3000"</td>
63
101
  </tr>
64
102
  <tr>
65
103
  <td rowspan="5">public</td>
66
104
  <td rowspan="5">Public folder - will be copied at server start</td>
67
- <tr>
68
- <td>path</td>
69
- <td>public</td>
70
- </tr>
71
105
  <tr>
72
106
  <td>indexName</td>
73
- <td>index.html</td>
107
+ <td>"index.html"</td>
74
108
  </tr>
75
109
  <tr>
76
- <td>minifyIndex</td>
77
- <td>true if environment is PRODUCTION</td>
110
+ <td>minify</td>
111
+ <td>"true" if environment is PRODUCTION</td>
78
112
  </tr>
79
113
  <tr>
80
- <td>serviceWorkerName</td>
81
- <td></td>
114
+ <td>path</td>
115
+ <td>"public"</td>
82
116
  </tr>
83
117
  </tr>
84
118
  </tbody>
@@ -95,45 +129,53 @@ export default config;
95
129
  </thead>
96
130
  <tbody>
97
131
  <tr>
98
- <td>outdir</td>
99
- <td>"build"</td>
132
+ <td>bundle</td>
133
+ <td>"true"</td>
100
134
  </tr>
101
135
  <tr>
102
- <td>tsconfig</td>
103
- <td>"tsconfig.json"</td>
136
+ <td>entryPoints</td>
137
+ <td>['src/index.ts']</td>
104
138
  </tr>
105
139
  <tr>
106
- <td>minifySyntax</td>
107
- <td>"true" if environment is PRODUCTION</td>
140
+ <td>format</td>
141
+ <td>"esm"</td>
108
142
  </tr>
109
143
  <tr>
110
- <td>minifyWhitespace</td>
144
+ <td>keepNames</td>
111
145
  <td>"true" if environment is PRODUCTION</td>
112
146
  </tr>
113
147
  <tr>
114
- <td>sourcemap</td>
115
- <td>"true" if environment is <b>NOT</b> PRODUCTION</td>
148
+ <td>logLevel</td>
149
+ <td>"error"</td>
116
150
  </tr>
117
151
  <tr>
118
- <td>bundle</td>
119
- <td>"true"</td>
152
+ <td>minifySyntax</td>
153
+ <td>"true" if environment is PRODUCTION</td>
120
154
  </tr>
121
155
  <tr>
122
- <td>keepNames</td>
156
+ <td>minifyWhitespace</td>
123
157
  <td>"true" if environment is PRODUCTION</td>
124
158
  </tr>
125
159
  <tr>
126
- <td>entryPoints</td>
127
- <td>['src/index.ts']</td>
160
+ <td>outdir</td>
161
+ <td>"build"</td>
128
162
  </tr>
129
163
  <tr>
130
- <td>format</td>
131
- <td>"esm"</td>
164
+ <td>sourcemap</td>
165
+ <td>"true" if environment is <b>NOT</b> PRODUCTION</td>
166
+ </tr>
167
+ <tr>
168
+ <td>splitting</td>
169
+ <td>"true"</td>
132
170
  </tr>
133
171
  <tr>
134
172
  <td>target</td>
135
173
  <td>"esnext"</td>
136
174
  </tr>
175
+ <tr>
176
+ <td>tsconfig</td>
177
+ <td>"tsconfig.json"</td>
178
+ </tr>
137
179
  </tbody>
138
180
  </table>
139
181
 
@@ -1,17 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.build = void 0;
7
4
  const config_1 = require("../config/config");
8
5
  const esbuild_1 = require("esbuild");
9
- const timer_1 = __importDefault(require("../utils/timer"));
10
- const setupBuild_1 = require("../utils/setupBuild");
11
6
  function build(callback) {
12
- const timer = new timer_1.default();
13
- timer.startTimer();
14
- (0, setupBuild_1.setupBuild)();
15
7
  return new Promise((resolve) => {
16
8
  (0, esbuild_1.build)(config_1.config.esbuildOptions).then(() => {
17
9
  callback?.();
@@ -11,14 +11,48 @@ const coloredString_1 = __importDefault(require("../utils/coloredString"));
11
11
  const getPath_1 = require("../utils/getPath");
12
12
  const open_1 = __importDefault(require("open"));
13
13
  const esbuild_1 = require("esbuild");
14
- const setupBuild_1 = require("../utils/setupBuild");
14
+ const node_watch_1 = __importDefault(require("node-watch"));
15
+ const copy_1 = require("../utils/copy");
16
+ const path_1 = require("path");
17
+ const transformers_1 = require("../utils/transformers");
15
18
  const start = (callback) => {
16
- (0, setupBuild_1.setupBuild)();
19
+ config_1.config.esbuildOptions.plugins?.push({
20
+ name: 'michijs-dev-server-watch-public-folder',
21
+ setup(build) {
22
+ if (config_1.config.public.path)
23
+ (0, node_watch_1.default)(config_1.config.public.path, {
24
+ encoding: 'utf-8',
25
+ persistent: true,
26
+ recursive: true,
27
+ }, (event, fileChangedPath) => {
28
+ const updated = new Array();
29
+ const removed = new Array();
30
+ const added = new Array();
31
+ const splittedPath = fileChangedPath.split(path_1.sep);
32
+ const srcDir = splittedPath.slice(0, -1).join(path_1.sep);
33
+ const fileName = splittedPath.at(-1);
34
+ const outDir = srcDir.replace(config_1.config.public.path, build.initialOptions.outdir);
35
+ fs_1.default.rmSync((0, getPath_1.getPath)(`${outDir}/${transformers_1.transformers.find(x => x.fileRegex.test(fileName))?.pathTransformer?.(fileName) ?? fileName}`), { force: true, recursive: true });
36
+ if (event === 'remove')
37
+ removed.push(fileChangedPath);
38
+ else {
39
+ updated.push(fileChangedPath);
40
+ (0, copy_1.copyFile)(srcDir, fileName, outDir);
41
+ }
42
+ // Refresh browser
43
+ config_1.connections.forEach(x => x.write(`event: change\ndata: ${JSON.stringify({
44
+ added, removed, updated
45
+ })}\n\n`));
46
+ });
47
+ }
48
+ });
17
49
  (0, esbuild_1.context)(config_1.config.esbuildOptions).then(async (buildContext) => {
18
50
  const { host: esbuildHost, port: esbuildPort } = await buildContext.serve({
19
51
  servedir: config_1.config.esbuildOptions.outdir,
20
52
  });
21
53
  http_1.default.createServer(async (req, res) => {
54
+ if (req.url === '/esbuild')
55
+ config_1.connections.push(res);
22
56
  const esbuildProxyRequestOptions = {
23
57
  hostname: esbuildHost,
24
58
  port: esbuildPort,
@@ -1,4 +1,4 @@
1
- export default class Timer {
1
+ export declare class Timer {
2
2
  start: number;
3
3
  startTimer(): void;
4
4
  endTimer(): number;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Timer = void 0;
3
4
  class Timer {
4
5
  start;
5
6
  startTimer() {
@@ -9,4 +10,4 @@ class Timer {
9
10
  return Date.now() - this.start;
10
11
  }
11
12
  }
12
- exports.default = Timer;
13
+ exports.Timer = Timer;
package/bin/cli.js CHANGED
@@ -29,9 +29,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.cli = void 0;
30
30
  const coloredString_1 = __importDefault(require("./utils/coloredString"));
31
31
  const yargs = __importStar(require("yargs"));
32
- const timer_1 = __importDefault(require("./utils/timer"));
32
+ const Timer_1 = require("./classes/Timer");
33
33
  async function cli() {
34
- const timer = new timer_1.default();
34
+ const timer = new Timer_1.Timer();
35
35
  const showReadyMessage = () => console.log(`
36
36
  ${(0, coloredString_1.default)(`Ready in ${timer.endTimer()}ms.`)}`);
37
37
  timer.startTimer();
@@ -1,4 +1,9 @@
1
+ /// <reference types="node" />
1
2
  import { Config } from '../types';
3
+ import http from 'http';
4
+ export declare const connections: (http.ServerResponse<http.IncomingMessage> & {
5
+ req: http.IncomingMessage;
6
+ })[];
2
7
  declare const config: Required<Config>;
3
8
  declare const hostURL: string;
4
9
  declare const localURL: string;
@@ -3,15 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.localURL = exports.hostURL = exports.config = void 0;
6
+ exports.localURL = exports.hostURL = exports.config = exports.connections = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const coloredString_1 = __importDefault(require("../utils/coloredString"));
9
+ const copy_1 = require("../utils/copy");
9
10
  const getPath_1 = require("../utils/getPath");
10
- const timer_1 = __importDefault(require("../utils/timer"));
11
+ const Timer_1 = require("../classes/Timer");
11
12
  const getIPAddress_1 = require("./getIPAddress");
12
13
  const userConfig_1 = require("./userConfig");
14
+ const transformers_1 = require("../utils/transformers");
13
15
  const minify = process.env.NODE_ENV === 'PRODUCTION';
14
16
  const devServerListener = process.env.NODE_ENV === 'DEVELOPMENT' ? [(0, getPath_1.getPath)(`${__dirname}/public/client.js`)] : [];
17
+ exports.connections = [];
15
18
  const config = {
16
19
  port: 3000,
17
20
  openBrowser: process.env.NODE_ENV === 'DEVELOPMENT',
@@ -21,8 +24,12 @@ const config = {
21
24
  public: {
22
25
  path: 'public',
23
26
  indexName: 'index.html',
24
- minifyIndex: minify,
25
- ...(userConfig_1.userConfig.public ?? {})
27
+ minify: minify,
28
+ ...(userConfig_1.userConfig.public ?? {}),
29
+ manifest: {
30
+ name: 'manifest.json',
31
+ ...(userConfig_1.userConfig.public?.manifest ?? {})
32
+ },
26
33
  },
27
34
  esbuildOptions: {
28
35
  outdir: 'build',
@@ -30,11 +37,13 @@ const config = {
30
37
  minifySyntax: minify,
31
38
  minifyWhitespace: minify,
32
39
  sourcemap: process.env.NODE_ENV !== 'PRODUCTION',
40
+ splitting: true,
33
41
  bundle: true,
34
42
  keepNames: minify,
35
43
  entryPoints: ['src/index.ts'],
36
44
  format: 'esm',
37
45
  target: 'esnext',
46
+ logLevel: 'error',
38
47
  ...(userConfig_1.userConfig.esbuildOptions ?? {}),
39
48
  // Still not supported
40
49
  // bug .css.ts
@@ -60,12 +69,31 @@ const config = {
60
69
  plugins: [
61
70
  ...(userConfig_1.userConfig.esbuildOptions?.plugins ?? []),
62
71
  {
63
- name: 'track-build-time',
72
+ name: 'michijs-dev-server',
64
73
  setup(build) {
65
- let timer = new timer_1.default();
66
- build.onStart(() => timer.startTimer());
74
+ // Clean outdir
75
+ if (build.initialOptions.outdir) {
76
+ if (fs_1.default.existsSync(build.initialOptions.outdir)) {
77
+ fs_1.default.rmSync(build.initialOptions.outdir, { recursive: true });
78
+ }
79
+ fs_1.default.mkdirSync(build.initialOptions.outdir, { recursive: true });
80
+ }
81
+ if (config.public.manifest?.options && config.public.manifest.name) {
82
+ const transformedFile = transformers_1.jsonTransformer.transformer(JSON.stringify(config.public.manifest.options, null, 2));
83
+ fs_1.default.writeFileSync((0, getPath_1.getPath)(`${build.initialOptions.outdir}/${config.public.manifest.name}`), transformedFile);
84
+ }
85
+ // Copy public path - Omit to copy service worker - will be transformed after
86
+ if (config.public.path && build.initialOptions.outdir)
87
+ (0, copy_1.copy)(config.public.path, build.initialOptions.outdir, [transformers_1.jsAndTsRegex]);
88
+ const buildTimer = new Timer_1.Timer();
89
+ let firstLoad = true;
90
+ build.onStart(() => buildTimer.startTimer());
67
91
  build.onEnd(() => {
68
- console.log((0, coloredString_1.default)(` Build finished in ${timer.endTimer()}ms`));
92
+ // first-load sw - Omit to copy any other non-js file
93
+ if (firstLoad && config.public.path && build.initialOptions.outdir)
94
+ (0, copy_1.copy)(config.public.path, build.initialOptions.outdir, [transformers_1.notJsAndTsRegex]);
95
+ console.log((0, coloredString_1.default)(` Build finished in ${buildTimer.endTimer()}ms`));
96
+ firstLoad = false;
69
97
  });
70
98
  }
71
99
  }
@@ -4,24 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.userConfig = void 0;
7
- const getPath_1 = require("../utils/getPath");
8
7
  const fs_1 = __importDefault(require("fs"));
9
8
  const esbuild_1 = require("esbuild");
10
9
  let config = {};
11
10
  if (fs_1.default.existsSync('michi.config.ts')) {
12
- const configTs = fs_1.default.readFileSync('michi.config.ts', 'utf-8');
13
- const transpiledConfigTs = (0, esbuild_1.transformSync)(configTs, {
14
- loader: 'ts',
15
- logLevel: 'debug',
11
+ (0, esbuild_1.buildSync)({
12
+ bundle: true,
13
+ entryPoints: [{
14
+ in: 'michi.config.ts',
15
+ out: 'michi.config'
16
+ }],
17
+ outdir: __dirname,
16
18
  format: 'cjs',
17
19
  platform: 'node',
20
+ logLevel: 'error',
18
21
  target: ['node16'],
19
22
  });
20
- const transpiledConfigPath = (0, getPath_1.getPath)(`${__dirname}/michi.config.js`);
21
- if (fs_1.default.existsSync(transpiledConfigPath)) {
22
- fs_1.default.rmSync(transpiledConfigPath);
23
- }
24
- fs_1.default.writeFileSync(transpiledConfigPath, transpiledConfigTs.code);
25
23
  config = require('./michi.config.js').default(process.env.NODE_ENV);
26
24
  }
27
25
  exports.userConfig = config;
package/bin/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- export type { ServerConfigFactory, ServerConfig, PublicOptions, DefaultEnvironment } from './types';
2
+ export type { ServerConfigFactory, ServerConfig, PublicOptions, DefaultEnvironment, ProcessSWType, ProcessType } from './types';
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/utils/coloredString.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../src/utils/timer.ts","../node_modules/esbuild/lib/main.d.ts","../src/types.ts","../src/utils/getPath.ts","../src/config/getIPAddress.ts","../src/config/userConfig.ts","../src/config/config.ts","../node_modules/open/index.d.ts","../src/utils/copy.ts","../src/utils/getAllFiles.ts","../src/utils/injectServiceWorker.ts","../src/utils/minifyHTML.ts","../src/utils/setupBuild.ts","../src/actions/start.ts","../src/actions/build.ts","../node_modules/typescript/lib/typescript.d.ts","../src/config/tsconfig.ts","../src/actions/dist.ts","../src/cli.ts","../src/global.ts","../src/index.ts","../src/config/public/client.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"d53690b2fd0130061c375d203542a618f2881fe3d0e8c2466b864862dec7d8eb","signature":"6dc6a466033398972f5c22ccb99fec2c1b680a058afb46fd141672c9cadeb56c"},"70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","1d57d3163eba70449a0f91cfdad1262bcdd7e72372bc7fda40620a73e277793c",{"version":"1dd46d72e9d48755a3f9ff186fa6de1de5b4bea94cc822f871e05f44da9021dd","signature":"9bf79e5ad9696c1684c71b8d35cd973855f43c4217dd6f07c0e73bc501107cff"},"99d951629f7096dcd79adbaa83a85e3be57613005533bd23029b3aba4ce9383e",{"version":"d79d5f6b18b9d46db34301ca728a007fac8c6810baf59400fdb269c645bb506c","signature":"9ef279296caef902c9898a830da7c46038b9fe337f5c51ab1466a203db78f3b9"},{"version":"a457749c56ff6b56ac59503eea53caea1f37ee357430074c0acb5f80ddf7eaa2","signature":"63b8b59bbc7f575405461d1d1b91a6cdf09eefa44db414430e93f6df4d3e7be3"},{"version":"cab872ef7156f5d032caf8f6547c5400e8493a7746053728831a5bb7977b77cf","signature":"7a27baf1053443cefab73b720106d1f9d730a50a37f82155d664145663040f20"},{"version":"f254d9c434ddbee567e9cc9a66f7298187f5e3991b9753d185d36337d525cd76","signature":"d6e94f1aef0aea8abc566e84f7a3d5590d8ea57c52aa129db035b5f1613e6974"},{"version":"69932a7ede32825bdca5bc71c420203d9f56c44c649757a9228c7fa73f6d3008","signature":"b3fe1cb54e0ef9f7873c5f93ea7a8a697cac04e7e77f8c647039e997dab85e3e"},"ac0e45806dfb87684696b8a268697c8e789c50e29fd285fec047830e773f9832",{"version":"97ef3797f89ac6de5ffbefddec24688ac811cc21e257086343f71c69532be6b9","signature":"d966694681a2d7ce59515bf30eae290eab504a01e4e04cd98971222d700873e1"},{"version":"c7ada178fad3e08916ba5ed3dcd348140345da462fe6d11e7b34938a3930cb43","signature":"efd0f4958c494e39e91a6291abbff412a2665e43b3138ecbf3611e85cd8a264d"},{"version":"19cb9a72be0b0fec7130816a4614f55bab1ec2d81acb73f8ebf856b95614a720","signature":"e56a6c82ade50a1c5d7c8b1f56bf7f87d82f22fc0ceb1c85011a2a94f965153a"},{"version":"c7d28264b1f9c62c3f2e1a1cfb7727bd4d97b34fd84567e9a1ef98bc57bfbff9","signature":"7b3c9d883fb0785df76e0ba99869dd6f3bfbdc290b9671c1442999cea00e92fd"},{"version":"7d613bf39908b71da0a60e24d853f254f78276399334eda604b24355b676d345","signature":"e49ede384d56e2e32247d838fd32af92b45e5d07de8306e3e60b0dea6c548972"},{"version":"0e0ade5bf39c9a6c2d02ca90de23378119eb620f9432332047c81e210e61cd1c","signature":"e3a5c94a3ecbb59aeda9068f01df05a93b53cc5d2cfe63809b6ec103052c35b9"},{"version":"b1f1948f00b25b26ccfc63f92908d4cd41b702697944a834466c143740c63e32","signature":"c6639f380d643933407420d2fcb5f074984799a24a237bd049b9945b03659a28"},"57e52a0882af4e835473dda27e4316cc31149866970210f9f79b940e916b7838",{"version":"ef4a213c8bcf86d5b0bd2abdc96a824e3272cb88e8997200897bd1c2b7bec985","signature":"53e18a9b1bd6a21ca1a0decbeecb6087f2d65bd5728ac6e47da0ccd3f0d92a2d"},{"version":"211e42a19b8ae37183ccfc159aba63940f91708363f5567441dcd96c4eacb6e2","signature":"b9676c103abbcded39e23921ecfef7f65ad5b091ceee5e964a4921331f15a547"},{"version":"3eeee6cabfc13dd746e1ffe8c2e36b354838c305cb4f03c1f0afacc4a3dac596","signature":"f1c55f9c94533ef546614eedb041912be0e86df25ff276dfbfa72a5d6d1e9ffb"},{"version":"1b6cabe42309fa26bf2f8f489890445185684de80456744bf99f8c697145cfbf","signature":"3d9e96efc2e7d0fc0d2514090856611287fcb7348678e32c30af5c9791725963"},{"version":"1a7be2e3a768a04524264b8f1497e5fc89355e3b9283647ab9e785c34c4c80ce","signature":"009e91165dbb34ab3bf0ffc2048c0317ed1d8b48fd3b7a70afb4caa27679f216"},{"version":"8ea17c6e71e7f8bd756a0455fa69b9261beef45c2e0faa4c585ba28162bc748e","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236"],"options":{"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noErrorTruncation":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"target":99},"fileIdsList":[[68,114],[71,114],[72,77,105,114],[73,84,85,92,102,113,114],[73,74,84,92,114],[75,114],[76,77,85,93,114],[77,102,110,114],[78,80,84,92,114],[79,114],[80,81,114],[84,114],[82,84,114],[84,85,86,102,113,114],[84,85,86,99,102,105,114],[114,118],[114],[80,87,92,102,113,114],[84,85,87,88,92,102,110,113,114],[87,89,102,110,113,114],[68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120],[84,90,114],[91,113,114],[80,84,92,102,114],[93,114],[94,114],[71,95,114],[96,112,114,118],[97,114],[98,114],[84,99,100,114],[99,101,114,116],[72,84,102,103,104,105,114],[72,102,104,114],[102,103,114],[105,114],[106,114],[84,108,109,114],[108,109,114],[77,92,102,110,114],[111,114],[92,112,114],[72,87,98,113,114],[77,114],[102,114,115],[114,116],[114,117],[72,77,84,86,95,102,113,114,116,118],[102,114,119],[44,114],[73,114],[46,47,52,58,114],[52,62,73,85,114],[43,47,49,52,53,58,85,87,114],[43,45,46,59,60,63,114],[43,46,48,49,50,51,85,114],[52,61,85,114],[47,48,49,85,114],[48,64,114],[47,114],[49,85,114],[47,49,52,55,85,114],[52,54,56,57,85,114],[48],[61],[47]],"referencedMap":[[68,1],[69,1],[71,2],[72,3],[73,4],[74,5],[75,6],[76,7],[77,8],[78,9],[79,10],[80,11],[81,11],[83,12],[82,13],[84,12],[85,14],[86,15],[70,16],[120,17],[87,18],[88,19],[89,20],[121,21],[90,22],[91,23],[92,24],[93,25],[94,26],[95,27],[96,28],[97,29],[98,30],[99,31],[100,31],[101,32],[102,33],[104,34],[103,35],[105,36],[106,37],[107,17],[108,38],[109,39],[110,40],[111,41],[112,42],[113,43],[114,44],[115,45],[116,46],[117,47],[118,48],[119,49],[44,17],[45,50],[47,17],[53,51],[8,17],[10,17],[9,17],[2,17],[11,17],[12,17],[13,17],[14,17],[15,17],[16,17],[17,17],[18,17],[3,17],[4,17],[22,17],[19,17],[20,17],[21,17],[23,17],[24,17],[25,17],[5,17],[26,17],[27,17],[28,17],[29,17],[6,17],[33,17],[30,17],[31,17],[32,17],[34,17],[7,17],[35,17],[40,17],[41,17],[36,17],[37,17],[38,17],[39,17],[1,17],[42,17],[61,17],[60,52],[63,53],[59,54],[64,55],[52,56],[50,25],[67,17],[62,57],[51,58],[65,17],[66,59],[48,60],[43,17],[54,61],[55,61],[49,26],[56,62],[57,17],[58,63],[46,17]],"exportedModulesMap":[[68,1],[69,1],[71,2],[72,3],[73,4],[74,5],[75,6],[76,7],[77,8],[78,9],[79,10],[80,11],[81,11],[83,12],[82,13],[84,12],[85,14],[86,15],[70,16],[120,17],[87,18],[88,19],[89,20],[121,21],[90,22],[91,23],[92,24],[93,25],[94,26],[95,27],[96,28],[97,29],[98,30],[99,31],[100,31],[101,32],[102,33],[104,34],[103,35],[105,36],[106,37],[107,17],[108,38],[109,39],[110,40],[111,41],[112,42],[113,43],[114,44],[115,45],[116,46],[117,47],[118,48],[119,49],[44,17],[45,50],[47,17],[53,51],[8,17],[10,17],[9,17],[2,17],[11,17],[12,17],[13,17],[14,17],[15,17],[16,17],[17,17],[18,17],[3,17],[4,17],[22,17],[19,17],[20,17],[21,17],[23,17],[24,17],[25,17],[5,17],[26,17],[27,17],[28,17],[29,17],[6,17],[33,17],[30,17],[31,17],[32,17],[34,17],[7,17],[35,17],[40,17],[41,17],[36,17],[37,17],[38,17],[39,17],[1,17],[42,17],[61,17],[52,64],[62,65],[51,64],[66,64],[48,66]],"semanticDiagnosticsPerFile":[68,69,71,72,73,74,75,76,77,78,79,80,81,83,82,84,85,86,70,120,87,88,89,121,90,91,92,93,94,95,96,97,98,99,100,101,102,104,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,44,45,47,53,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,61,60,63,59,64,52,50,67,62,51,65,66,48,43,54,55,49,56,57,58,46]},"version":"4.9.4"}
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/utils/coloredString.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../src/classes/Timer.ts","../node_modules/esbuild/lib/main.d.ts","../node_modules/@types/web-app-manifest/index.d.ts","../src/types.ts","../src/utils/getPath.ts","../src/utils/minify.ts","../src/utils/getAllFiles.ts","../src/utils/serviceWorkerTransformer.ts","../src/utils/transformers.ts","../src/utils/copy.ts","../src/config/getIPAddress.ts","../src/config/userConfig.ts","../src/config/config.ts","../node_modules/open/index.d.ts","../node_modules/node-watch/lib/watch.d.ts","../src/actions/start.ts","../src/actions/build.ts","../node_modules/typescript/lib/typescript.d.ts","../src/config/tsconfig.ts","../src/actions/dist.ts","../src/cli.ts","../src/global.ts","../src/index.ts","../src/config/public/client.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"bd5c3fe61b7cad5489bc6145a67984f5bc17008380381dd6b29f29d4c4f4a8d1","signature":"5a3576ed8855e67c68886fdd82d176b7faffe1dd5b3abf4befb6123142ad2475"},"70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","ae84439d1ae42b30ced3df38c4285f35b805be40dfc95b0647d0e59c70b11f97",{"version":"a3111cf4fd2760e8755267f15b4ebb2f2269b68eca185abbaf336758d54a3b8c","signature":"df43ac2a510c4a7eb3dc639ea2f6c41373fe0e689b89e80a9aae6cfddcbbe4a5"},"99d951629f7096dcd79adbaa83a85e3be57613005533bd23029b3aba4ce9383e","2edf0849603b9673588489bbfd2db6b035a2ae3341484dfce5089125ac732a60",{"version":"0fd45245b8c6758ed6f28f01bfe9bc027bf5d163f9a6c72881f2bcfcdb83cbc5","signature":"201123af31eecdc66ece275d3e414fdf594785d2b0ec5f90060f70ce8a114299"},{"version":"79ad00c1e018e22201329abe0810c011b185f77e09e3ecb5d9b5a58defe3c8ed","signature":"75c7dd820ff92e5e07931d7ba78bd6b2e14102552edfd1e479588448734c482d"},{"version":"196ed037f1dbca35746e81a2617eed0b6bb19c5905eaf38a666802583e309f7e","signature":"e35226acb4d207d378ff9506b1306145149afe1266b071d1c4daa98033c7a569"},{"version":"c7ada178fad3e08916ba5ed3dcd348140345da462fe6d11e7b34938a3930cb43","signature":"efd0f4958c494e39e91a6291abbff412a2665e43b3138ecbf3611e85cd8a264d"},{"version":"c7c68a12c803ace3d804e5db80ad93c333954b91772f3d5455f0104444aa3121","signature":"4631d41542840f670827bbf5b761d7430b7cad804f01a6e2f2e190db6173e1d5"},{"version":"4f869d2a2313e264f16fa4787525e73a05774dbcc99cd7ff0cb096b18a0719fd","signature":"3b250180316e136158dfc3161dc782e7dd9482ac00684f9313d25618113299cc"},{"version":"5b24e91ad33f073de664f462c229413e55333b2e7aeb9b0a8db9ce9be214fab2","signature":"b537efe18de1c06f59ac23ce62b73073ffd6b4e56ce8eea0495a4f926ef57874"},{"version":"cab872ef7156f5d032caf8f6547c5400e8493a7746053728831a5bb7977b77cf","signature":"7a27baf1053443cefab73b720106d1f9d730a50a37f82155d664145663040f20"},{"version":"5489fb24aa4f921f341b270f45d26cd6cf2aa918a7fc73643cf510e69ab60a25","signature":"d6e94f1aef0aea8abc566e84f7a3d5590d8ea57c52aa129db035b5f1613e6974"},{"version":"40e2152263f6ac000f0073b209ee864ff95fa90e333febc4a4a39d2d891599db","signature":"86be05332b9fa7c2d5e9a591926cc1b9fd8391eba7acd06837bdca1e036a379c"},"ac0e45806dfb87684696b8a268697c8e789c50e29fd285fec047830e773f9832","0623f0b85a159f595d99b06e84bfad75b78c722a55dd7fee6c52952026493345",{"version":"fd93cd353427217988e41a5f0b6ded790a3cd3b945e0ce5cdfddb400d2d03d1e","signature":"e3a5c94a3ecbb59aeda9068f01df05a93b53cc5d2cfe63809b6ec103052c35b9"},{"version":"6ad22a1b568272592c5cadb5df456100460250ffffc8357fad1efea6ef2dba83","signature":"c6639f380d643933407420d2fcb5f074984799a24a237bd049b9945b03659a28"},"57e52a0882af4e835473dda27e4316cc31149866970210f9f79b940e916b7838",{"version":"ef4a213c8bcf86d5b0bd2abdc96a824e3272cb88e8997200897bd1c2b7bec985","signature":"53e18a9b1bd6a21ca1a0decbeecb6087f2d65bd5728ac6e47da0ccd3f0d92a2d"},{"version":"211e42a19b8ae37183ccfc159aba63940f91708363f5567441dcd96c4eacb6e2","signature":"b9676c103abbcded39e23921ecfef7f65ad5b091ceee5e964a4921331f15a547"},{"version":"608888e8bf1bf37eec582d4f838e6619c0ccdf27952dfd5d6a5cfdfc40fa246d","signature":"f1c55f9c94533ef546614eedb041912be0e86df25ff276dfbfa72a5d6d1e9ffb"},{"version":"1b6cabe42309fa26bf2f8f489890445185684de80456744bf99f8c697145cfbf","signature":"3d9e96efc2e7d0fc0d2514090856611287fcb7348678e32c30af5c9791725963"},{"version":"374b9bba430e61c8523d5274338d2624c14a08a84922351dae1ac6892cfb0fee","signature":"e913254107e93f6ccbbca4e86b400bff02ed223603013d1142fe31ee9b7ee0d9"},{"version":"8ea17c6e71e7f8bd756a0455fa69b9261beef45c2e0faa4c585ba28162bc748e","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"11e2d554398d2bd460e7d06b2fa5827a297c8acfbe00b4f894a224ac0862857f",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"2c45b35f4850881ab132f80d3cb51e8a359a4d8fafdc5ff2401d260dc27862f4","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","a15eb098ed86a4135cba05d77e792d6189fa8607a00c9b1b381c0e9550c04ba5",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c4577fb855ca259bdbf3ea663ca73988ce5f84251a92b4aef80a1f4122b6f98e","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"ff07a9a03c65732ccc59b3c65bc584173da093bd563a6565411c01f5703bd3cb","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"cc4fa603eb4f28847cfa5bfb698dd186a0864853383d49f2478b3482d5caca9e"],"options":{"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noErrorTruncation":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"target":99},"fileIdsList":[[70,116],[73,116],[74,79,107,116],[75,86,87,94,104,115,116],[75,76,86,94,116],[77,116],[78,79,87,95,116],[79,104,112,116],[80,82,86,94,116],[81,116],[82,83,116],[86,116],[84,86,116],[86,87,88,104,115,116],[86,87,88,101,104,107,116],[116,120],[116],[82,89,94,104,115,116],[86,87,89,90,94,104,112,115,116],[89,91,104,112,115,116],[70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],[86,92,116],[93,115,116],[82,86,94,104,116],[95,116],[96,116],[73,97,116],[98,114,116,120],[99,116],[100,116],[86,101,102,116],[101,103,116,118],[74,86,104,105,106,107,116],[74,104,106,116],[104,105,116],[107,116],[108,116],[86,110,111,116],[110,111,116],[79,94,104,112,116],[113,116],[94,114,116],[74,89,100,115,116],[79,116],[104,116,117],[116,118],[116,119],[74,79,86,88,97,104,115,116,118,120],[104,116,121],[44,116],[87,116],[75,116],[47,58,116],[58,64,75,87,116],[43,47,50,54,55,58,59,60,87,89,96,116],[43,45,46,61,62,65,116],[43,46,49,50,54,55,56,57,87,89,116],[58,63,87,116],[47,49,87,116],[49,66,116],[47,48,116],[50,54,87,116],[50,87,116],[47,52,58,116],[51,53,55,58,116],[49,89],[63],[49],[47,48],[47],[55]],"referencedMap":[[70,1],[71,1],[73,2],[74,3],[75,4],[76,5],[77,6],[78,7],[79,8],[80,9],[81,10],[82,11],[83,11],[85,12],[84,13],[86,12],[87,14],[88,15],[72,16],[122,17],[89,18],[90,19],[91,20],[123,21],[92,22],[93,23],[94,24],[95,25],[96,26],[97,27],[98,28],[99,29],[100,30],[101,31],[102,31],[103,32],[104,33],[106,34],[105,35],[107,36],[108,37],[109,17],[110,38],[111,39],[112,40],[113,41],[114,42],[115,43],[116,44],[117,45],[118,46],[119,47],[120,48],[121,49],[48,17],[44,17],[45,50],[47,17],[60,51],[59,52],[8,17],[10,17],[9,17],[2,17],[11,17],[12,17],[13,17],[14,17],[15,17],[16,17],[17,17],[18,17],[3,17],[4,17],[22,17],[19,17],[20,17],[21,17],[23,17],[24,17],[25,17],[5,17],[26,17],[27,17],[28,17],[29,17],[6,17],[33,17],[30,17],[31,17],[32,17],[34,17],[7,17],[35,17],[40,17],[41,17],[36,17],[37,17],[38,17],[39,17],[1,17],[42,17],[63,17],[62,53],[65,54],[61,55],[46,17],[66,56],[58,57],[56,25],[69,17],[64,58],[57,59],[67,17],[68,60],[49,61],[43,17],[55,62],[52,63],[50,26],[51,17],[53,64],[54,65]],"exportedModulesMap":[[70,1],[71,1],[73,2],[74,3],[75,4],[76,5],[77,6],[78,7],[79,8],[80,9],[81,10],[82,11],[83,11],[85,12],[84,13],[86,12],[87,14],[88,15],[72,16],[122,17],[89,18],[90,19],[91,20],[123,21],[92,22],[93,23],[94,24],[95,25],[96,26],[97,27],[98,28],[99,29],[100,30],[101,31],[102,31],[103,32],[104,33],[106,34],[105,35],[107,36],[108,37],[109,17],[110,38],[111,39],[112,40],[113,41],[114,42],[115,43],[116,44],[117,45],[118,46],[119,47],[120,48],[121,49],[48,17],[44,17],[45,50],[47,17],[60,51],[59,52],[8,17],[10,17],[9,17],[2,17],[11,17],[12,17],[13,17],[14,17],[15,17],[16,17],[17,17],[18,17],[3,17],[4,17],[22,17],[19,17],[20,17],[21,17],[23,17],[24,17],[25,17],[5,17],[26,17],[27,17],[28,17],[29,17],[6,17],[33,17],[30,17],[31,17],[32,17],[34,17],[7,17],[35,17],[40,17],[41,17],[36,17],[37,17],[38,17],[39,17],[1,17],[42,17],[63,17],[58,66],[64,67],[57,68],[68,68],[49,69],[53,70],[54,71]],"semanticDiagnosticsPerFile":[70,71,73,74,75,76,77,78,79,80,81,82,83,85,84,86,87,88,72,122,89,90,91,123,92,93,94,95,96,97,98,99,100,101,102,103,104,106,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,48,44,45,47,60,59,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,63,62,65,61,46,66,58,56,69,64,57,67,68,49,43,55,52,50,51,53,54]},"version":"4.9.5"}
package/bin/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { BuildOptions } from 'esbuild';
2
+ import type { WebAppManifest } from 'web-app-manifest';
2
3
  export type PublicOptions = {
3
4
  /**
4
5
  * Public folder path
@@ -11,12 +12,26 @@ export type PublicOptions = {
11
12
  * */
12
13
  indexName?: string;
13
14
  /**
14
- * If the main html needs to be minified
15
+ * If html/svg/json/xml files to be minified
15
16
  * @default true if environment is PRODUCTION
16
17
  */
17
- minifyIndex?: boolean;
18
- /**Service worker name in public folder */
19
- serviceWorkerName?: string;
18
+ minify?: boolean;
19
+ /**
20
+ * Is a JSON document that contains startup parameters and application defaults for when a web application is launched.
21
+ *
22
+ * @see https://w3c.github.io/manifest/#webappmanifest-dictionary
23
+ */
24
+ manifest?: {
25
+ /**
26
+ * Document name
27
+ * @default manifest.json
28
+ */
29
+ name?: string;
30
+ /**
31
+ * startup parameters and application defaults for when a web application is launched.
32
+ */
33
+ options?: WebAppManifest;
34
+ };
20
35
  };
21
36
  export type Config = {
22
37
  /**
@@ -48,4 +63,15 @@ export type ServerConfig = Config & {
48
63
  [key: string]: any;
49
64
  };
50
65
  };
66
+ export type ProcessType = {
67
+ env: {
68
+ NODE_ENV: DefaultEnvironment;
69
+ };
70
+ };
71
+ export type ProcessSWType = {
72
+ env: {
73
+ BUILD_FILES: string[];
74
+ CACHE_NAME: string;
75
+ };
76
+ };
51
77
  export type ServerConfigFactory<T extends string = DefaultEnvironment> = (environment: T) => ServerConfig;
@@ -1,2 +1,2 @@
1
- declare const _default: (string: any) => string;
1
+ declare const _default: (text: string) => string;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = (string) => `\x1b[36m${string}\x1b[0m`;
3
+ exports.default = (text) => `\x1b[36m${text}\x1b[0m`;
@@ -1,7 +1,8 @@
1
1
  /// <reference types="node" />
2
- type Tranformer = {
3
- fileName: string;
2
+ export type Tranformer = {
3
+ fileRegex: RegExp;
4
4
  transformer: (fileContent: string) => Buffer | string;
5
+ pathTransformer?: (destPath: string) => string;
5
6
  };
6
- export declare function copy(src: any, dest: any, fileTransformers?: Tranformer[]): void;
7
- export {};
7
+ export declare function copyFile(src: string, fileName: string, dest: string, omit?: RegExp[]): void;
8
+ export declare function copy(src: string, dest: string, omit?: RegExp[]): void;
package/bin/utils/copy.js CHANGED
@@ -3,28 +3,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.copy = void 0;
6
+ exports.copy = exports.copyFile = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const getPath_1 = require("./getPath");
9
- function copy(src, dest, fileTransformers) {
10
- const srcDir = fs_1.default.readdirSync(src);
11
- srcDir.forEach(fileName => {
9
+ const transformers_1 = require("./transformers");
10
+ function copyFile(src, fileName, dest, omit) {
11
+ if (!omit?.find(x => x.test(fileName))) {
12
12
  const srcPath = (0, getPath_1.getPath)(`${src}/${fileName}`);
13
13
  const destPath = (0, getPath_1.getPath)(`${dest}/${fileName}`);
14
14
  if (fs_1.default.lstatSync(srcPath).isDirectory()) {
15
- fs_1.default.mkdirSync(destPath);
16
- copy(srcPath, destPath, fileTransformers);
15
+ if (!fs_1.default.existsSync(destPath))
16
+ fs_1.default.mkdirSync(destPath);
17
+ copy(srcPath, destPath);
17
18
  }
18
19
  else {
19
- const fileTransformer = fileTransformers?.find(x => x.fileName === fileName);
20
+ const fileTransformer = transformers_1.transformers?.find(x => x.fileRegex.test(fileName));
20
21
  if (fileTransformer) {
21
22
  const srcFileContent = fs_1.default.readFileSync(srcPath, { encoding: 'utf-8' });
23
+ const finalDestPath = fileTransformer.pathTransformer?.(destPath) ?? destPath;
22
24
  const transformedFile = fileTransformer.transformer(srcFileContent);
23
- fs_1.default.writeFileSync(destPath, transformedFile);
25
+ fs_1.default.writeFileSync(finalDestPath, transformedFile);
24
26
  }
25
27
  else
26
- fs_1.default.copyFileSync(srcPath, destPath);
28
+ fs_1.default.copyFileSync(srcPath, destPath, fs_1.default.constants.COPYFILE_FICLONE);
27
29
  }
28
- });
30
+ }
31
+ }
32
+ exports.copyFile = copyFile;
33
+ function copy(src, dest, omit) {
34
+ const srcDir = fs_1.default.readdirSync(src);
35
+ srcDir.forEach(fileName => copyFile(src, fileName, dest, omit));
29
36
  }
30
37
  exports.copy = copy;
@@ -1 +1 @@
1
- export declare function getPath(path: any): string;
1
+ export declare function getPath(path: string): string;
@@ -0,0 +1,2 @@
1
+ export declare function replaceEnter(json: string, replaceWith?: string): string;
2
+ export declare function minifyXMLLike(xml: string): string;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.minifyXMLLike = exports.replaceEnter = void 0;
4
+ function replaceEnter(json, replaceWith = '') {
5
+ return json.replace(/\s+/g, replaceWith).trim();
6
+ }
7
+ exports.replaceEnter = replaceEnter;
8
+ function minifyXMLLike(xml) {
9
+ const removeEnterResult = replaceEnter(xml, ' ');
10
+ return removeEnterResult.replace(/> </g, '><').trim();
11
+ }
12
+ exports.minifyXMLLike = minifyXMLLike;
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ import { Loader } from 'esbuild';
3
+ export declare const serviceWorkerTransformer: (serviceWorkerCode: string, loader?: Loader) => string | Buffer;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serviceWorkerTransformer = void 0;
4
+ const config_1 = require("../config/config");
5
+ const getAllFiles_1 = require("./getAllFiles");
6
+ const esbuild_1 = require("esbuild");
7
+ const serviceWorkerTransformer = (serviceWorkerCode, loader = 'ts') => {
8
+ const { sourcemap, keepNames, format, outdir, define, target } = config_1.config.esbuildOptions;
9
+ try {
10
+ const allFiles = (0, getAllFiles_1.getAllFiles)(outdir, '.');
11
+ const result = (0, esbuild_1.transformSync)(serviceWorkerCode, {
12
+ define: {
13
+ 'process.env.BUILD_FILES': `${JSON.stringify(allFiles)}`,
14
+ // Time at GMT+0
15
+ 'process.env.CACHE_NAME': `"${new Date(new Date().toLocaleString('en-US', { timeZone: 'Etc/GMT' })).getTime()}"`,
16
+ ...define
17
+ },
18
+ loader,
19
+ logLevel: 'error',
20
+ format,
21
+ target,
22
+ sourcemap,
23
+ minifySyntax: config_1.config.public.minify,
24
+ minifyWhitespace: config_1.config.public.minify,
25
+ keepNames
26
+ });
27
+ return result.code;
28
+ }
29
+ catch (ex) {
30
+ console.log(ex);
31
+ throw ex;
32
+ }
33
+ };
34
+ exports.serviceWorkerTransformer = serviceWorkerTransformer;
@@ -0,0 +1,5 @@
1
+ import { Tranformer } from "./copy";
2
+ export declare const jsAndTsRegex: RegExp;
3
+ export declare const notJsAndTsRegex: RegExp;
4
+ export declare const jsonTransformer: Tranformer;
5
+ export declare const transformers: Tranformer[];
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformers = exports.jsonTransformer = exports.notJsAndTsRegex = exports.jsAndTsRegex = void 0;
4
+ const config_1 = require("../config/config");
5
+ const minify_1 = require("./minify");
6
+ const serviceWorkerTransformer_1 = require("./serviceWorkerTransformer");
7
+ exports.jsAndTsRegex = /.*\.(?:ts|js)/;
8
+ exports.notJsAndTsRegex = /.*\.(?!ts|js)/;
9
+ exports.jsonTransformer = {
10
+ fileRegex: /.*\.(?:json)/,
11
+ transformer: (fileContent) => config_1.config.public.minify ? (0, minify_1.replaceEnter)(fileContent) : fileContent
12
+ };
13
+ exports.transformers = [
14
+ exports.jsonTransformer,
15
+ {
16
+ fileRegex: /.*\.(?:svg|xml|html)/,
17
+ transformer: (fileContent) => config_1.config.public.minify ? (0, minify_1.minifyXMLLike)(fileContent) : fileContent
18
+ },
19
+ {
20
+ fileRegex: exports.jsAndTsRegex,
21
+ transformer: serviceWorkerTransformer_1.serviceWorkerTransformer,
22
+ pathTransformer: destPath => destPath.replace('.ts', '.js')
23
+ }
24
+ ];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@michijs/dev-server",
3
3
  "license": "MIT",
4
- "version": "0.1.0",
4
+ "version": "0.2.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/michijs/dev-server.git"
@@ -22,9 +22,9 @@
22
22
  "publish-npm": "npm run dist && npm publish --access public"
23
23
  },
24
24
  "devDependencies": {
25
- "@types/node": "18.11.18",
26
- "@types/yargs": "17.0.0",
27
- "lint-staged": "13.1.0",
25
+ "@types/node": "18.13.0",
26
+ "@types/yargs": "17.0.22",
27
+ "lint-staged": "13.1.2",
28
28
  "rome": "11.0.0",
29
29
  "simple-git-hooks": "2.8.1"
30
30
  },
@@ -44,10 +44,12 @@
44
44
  "development"
45
45
  ],
46
46
  "dependencies": {
47
- "typescript": "4.9.4",
48
- "esbuild": "0.17.4",
49
- "open": "8.4.0",
50
- "yargs": "17.6.0"
47
+ "@types/web-app-manifest": "^1.0.2",
48
+ "esbuild": "0.17.10",
49
+ "node-watch": "0.7.3",
50
+ "open": "8.4.2",
51
+ "typescript": "4.9.5",
52
+ "yargs": "17.6.2"
51
53
  },
52
54
  "simple-git-hooks": {
53
55
  "pre-commit": "npx lint-staged"
@@ -1 +0,0 @@
1
- export declare const injectServiceWorker: () => void;
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.injectServiceWorker = void 0;
27
- const config_1 = require("../config/config");
28
- const getAllFiles_1 = require("./getAllFiles");
29
- const esbuild_1 = require("esbuild");
30
- const getPath_1 = require("./getPath");
31
- const fs = __importStar(require("fs"));
32
- const injectServiceWorker = () => {
33
- const { outdir, minify, minifyIdentifiers, minifySyntax, minifyWhitespace, keepNames, define } = config_1.config.esbuildOptions;
34
- if (config_1.config.public.serviceWorkerName && outdir) {
35
- try {
36
- const allFiles = (0, getAllFiles_1.getAllFiles)(outdir, '.');
37
- const serviceWorkerPath = (0, getPath_1.getPath)(`${config_1.config.public.path}/${config_1.config.public.serviceWorkerName}`);
38
- const outServiceWorkerPath = (0, getPath_1.getPath)(`${outdir}/${config_1.config.public.serviceWorkerName}`);
39
- const file = fs.readFileSync(serviceWorkerPath, 'utf-8');
40
- const result = (0, esbuild_1.transformSync)(file, {
41
- define: {
42
- 'process.env.BUILD_FILES': `${JSON.stringify(allFiles)}`,
43
- // Time at GMT+0
44
- 'process.env.CACHE_NAME': `"${new Date(new Date().toLocaleString('en-US', { timeZone: 'Etc/GMT' })).getTime()}"`,
45
- ...define
46
- },
47
- logLevel: 'debug',
48
- format: 'esm',
49
- target: ['esnext'],
50
- minify, minifyIdentifiers, minifySyntax, minifyWhitespace, keepNames
51
- });
52
- fs.writeFileSync(outServiceWorkerPath, result.code);
53
- }
54
- catch (ex) {
55
- console.log(ex);
56
- }
57
- }
58
- };
59
- exports.injectServiceWorker = injectServiceWorker;
@@ -1 +0,0 @@
1
- export declare function minifyHTML(string: any): any;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.minifyHTML = void 0;
4
- function minifyHTML(string) {
5
- const removeEnterResult = string.replace(/\s+/g, ' ').trim();
6
- return removeEnterResult.replace(/> </g, '><').trim();
7
- }
8
- exports.minifyHTML = minifyHTML;
@@ -1 +0,0 @@
1
- export declare const setupBuild: () => void;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setupBuild = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const config_1 = require("../config/config");
9
- const copy_1 = require("../utils/copy");
10
- const injectServiceWorker_1 = require("../utils/injectServiceWorker");
11
- const minifyHTML_1 = require("../utils/minifyHTML");
12
- const setupBuild = () => {
13
- if (config_1.config.esbuildOptions?.outdir) {
14
- if (fs_1.default.existsSync(config_1.config.esbuildOptions.outdir)) {
15
- fs_1.default.rmSync(config_1.config.esbuildOptions.outdir, { recursive: true });
16
- }
17
- fs_1.default.mkdirSync(config_1.config.esbuildOptions.outdir, { recursive: true });
18
- const indexTranformer = (fileContent) => config_1.config.public.minifyIndex ? (0, minifyHTML_1.minifyHTML)(fileContent) : fileContent;
19
- if (config_1.config.public.indexName)
20
- (0, copy_1.copy)(config_1.config.public.path, config_1.config.esbuildOptions.outdir, [{ fileName: config_1.config.public.indexName, transformer: indexTranformer }]);
21
- (0, injectServiceWorker_1.injectServiceWorker)();
22
- }
23
- };
24
- exports.setupBuild = setupBuild;