@michijs/dev-server 0.5.14 → 0.5.15-beta.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.
@@ -1 +1 @@
1
- export declare function build(callback?: Function): Promise<unknown>;
1
+ export declare function build(callback: Function): Promise<void>;
@@ -1,12 +1,6 @@
1
1
  import { config } from "../config/config.js";
2
2
  import { build as esbuild } from "esbuild";
3
- export function build(callback) {
4
- return new Promise((resolve, reject) => {
5
- esbuild(config.esbuildOptions)
6
- .then(() => {
7
- callback?.();
8
- resolve(true);
9
- })
10
- .catch(reject);
11
- });
3
+ export async function build(callback) {
4
+ await esbuild(config.esbuildOptions);
5
+ callback();
12
6
  }
@@ -1 +1,3 @@
1
- export declare function dist(callback: () => void, watch?: boolean): void;
1
+ import { type Transformer } from "../utils/copy.js";
2
+ export declare const transformers: Transformer[];
3
+ export declare function dist(callback: () => void, watchOption?: boolean): Promise<void>;
@@ -1,11 +1,142 @@
1
1
  import { tsconfig } from "../config/tsconfig.js";
2
+ import fs from "fs";
3
+ import { transpileDeclaration, formatDiagnosticsWithColorAndContext, sys, createProgram, readConfigFile, parseJsonConfigFileContent, flattenDiagnosticMessageText, } from "typescript";
4
+ import path from "path";
5
+ import { transformSync as esbuild } from "esbuild";
6
+ import { copy } from "../utils/copy.js";
7
+ import { Timer } from "../classes/Timer.js";
8
+ import coloredString from "../utils/coloredString.js";
9
+ import { syncDirs } from "../utils/syncDirs.js";
10
+ import { getPath } from "../utils/getPath.js";
11
+ import { globToRegex } from "../utils/globToRegex.js";
2
12
  import { config } from "../config/config.js";
3
13
  import { exec } from "child_process";
4
- import fs from "fs";
5
- export function dist(callback, watch = false) {
6
- if (tsconfig.compilerOptions.outDir &&
7
- fs.existsSync(tsconfig.compilerOptions.outDir)) {
8
- fs.rmSync(tsconfig.compilerOptions.outDir, { recursive: true });
14
+ const allJsFilesRegex = /.*\.(?:ts|js|tsx|jsx)/;
15
+ const showErrors = (diagnostics) => {
16
+ if (diagnostics && diagnostics.length > 0)
17
+ console.log(formatDiagnosticsWithColorAndContext(diagnostics, {
18
+ getCanonicalFileName: (path) => path,
19
+ getCurrentDirectory: sys.getCurrentDirectory,
20
+ getNewLine: () => sys.newLine,
21
+ }));
22
+ };
23
+ const configPath = config.esbuildOptions.tsconfig;
24
+ const configFile = readConfigFile(configPath, sys.readFile);
25
+ if (configFile.error) {
26
+ const errorMessage = flattenDiagnosticMessageText(configFile.error.messageText, "\n");
27
+ console.error(`Error reading tsconfig: ${errorMessage}`);
28
+ process.exit(1);
29
+ }
30
+ const parsedCommandLine = parseJsonConfigFileContent(configFile.config, sys, path.dirname(configPath));
31
+ let delayedDeclarationFiles = [];
32
+ const generateIncompatibleDeclarationFiles = () => {
33
+ const program = createProgram(delayedDeclarationFiles, parsedCommandLine.options);
34
+ // const sourceFile = program.getSourceFile(filePath);
35
+ program.emit(undefined, (fileName, data) => {
36
+ fs.writeFileSync(fileName, data);
37
+ }, undefined, true);
38
+ delayedDeclarationFiles = [];
39
+ };
40
+ function isErrorInsideCreateCustomElement(diagnostic) {
41
+ if (!diagnostic.file || diagnostic.start === undefined) {
42
+ return false;
43
+ }
44
+ const sourceText = diagnostic.file.text;
45
+ const errorPos = diagnostic.start;
46
+ // Get the line containing the error
47
+ const lineStart = sourceText.lastIndexOf("\n", errorPos);
48
+ const lineEnd = sourceText.indexOf("\n", errorPos);
49
+ const errorLine = sourceText.substring(lineStart + 1, lineEnd);
50
+ return errorLine.includes("createCustomElement");
51
+ }
52
+ export const transformers = [
53
+ {
54
+ fileRegex: allJsFilesRegex,
55
+ transformer: (fileContent, path) => {
56
+ const options = {
57
+ compilerOptions: tsconfig.compilerOptions,
58
+ fileName: path,
59
+ };
60
+ const { outputText, diagnostics } = transpileDeclaration(fileContent, options);
61
+ if (diagnostics && diagnostics?.length > 0) {
62
+ const notRelatedWithCustomElementDiagnosis = diagnostics.filter((x) => !isErrorInsideCreateCustomElement(x));
63
+ if (notRelatedWithCustomElementDiagnosis.length > 0) {
64
+ showErrors(notRelatedWithCustomElementDiagnosis);
65
+ delayedDeclarationFiles.push(path);
66
+ throw "Not compatible ts";
67
+ }
68
+ const regex = /const\s+(\w+)\s*=\s*createCustomElement\(\s*".*?"\s*,/gs;
69
+ const michijsElementsNames = [];
70
+ // Obtaining const names
71
+ let match;
72
+ while ((match = regex.exec(fileContent)) !== null) {
73
+ michijsElementsNames.push(match[1]);
74
+ }
75
+ const eventsRegexPattern = /new\s+EventDispatcher\s*<\s*([^>]+)\s*>\s*\(\s*\)/gs;
76
+ const classRegexPattern = /class:\s*(\w+)/gs;
77
+ const trailingCommaPattern = /\s*,\s*\)\s*;/gs;
78
+ fileContent = fileContent
79
+ // Removing createCustomElement and the name of the element
80
+ .replaceAll(regex, "const $1 = (")
81
+ // Helping to resolve events
82
+ .replaceAll(eventsRegexPattern, "new EventDispatcher<$1>() as EventDispatcher<$1>")
83
+ // Helping to resolve classes
84
+ .replaceAll(classRegexPattern, "class: $1 as $1")
85
+ .replaceAll(trailingCommaPattern, " );");
86
+ const elementNamesRegex = new RegExp(`\\b(${michijsElementsNames.join("|")})\\b: `, "g");
87
+ // Converting everything into types
88
+ const { outputText: newOutputText } = transpileDeclaration(fileContent, options);
89
+ const finalSrc = newOutputText.replace(elementNamesRegex, `$1: import("@michijs/michijs").MichiElementClass<`);
90
+ const { outputText: finalOutputText } = transpileDeclaration(finalSrc, options);
91
+ return finalOutputText;
92
+ }
93
+ return outputText;
94
+ },
95
+ pathTransformer: (destPath) => destPath.replace(path.extname(destPath), ".d.ts"),
96
+ },
97
+ {
98
+ fileRegex: allJsFilesRegex,
99
+ transformer: (fileContent, path) => {
100
+ const result = esbuild(fileContent, {
101
+ tsconfigRaw: JSON.stringify(tsconfig),
102
+ sourcefile: path,
103
+ loader: "default",
104
+ }).code;
105
+ return result === ""
106
+ ? `export {};
107
+ `
108
+ : result;
109
+ },
110
+ pathTransformer: (destPath) => destPath.replace(path.extname(destPath), ".js"),
111
+ },
112
+ ];
113
+ export async function dist(callback, watchOption = false) {
114
+ const { outDir, isolatedDeclarations } = tsconfig.compilerOptions;
115
+ if (outDir) {
116
+ if (fs.existsSync(outDir))
117
+ fs.rmSync(outDir, { recursive: true });
118
+ if (isolatedDeclarations) {
119
+ const timer = new Timer();
120
+ timer.startTimer();
121
+ const omit = tsconfig.exclude.map((x) => globToRegex(getPath(x)));
122
+ tsconfig.include.forEach((x) => copy(x, outDir, transformers, omit));
123
+ generateIncompatibleDeclarationFiles();
124
+ console.log(coloredString(` Dist finished in ${timer.endTimer()}ms`));
125
+ if (watchOption)
126
+ tsconfig.include.forEach((x) => {
127
+ const timer = new Timer();
128
+ syncDirs(x, outDir, transformers, omit, () => timer.startTimer(), () => {
129
+ generateIncompatibleDeclarationFiles();
130
+ console.log(coloredString(` Dist finished in ${timer.endTimer()}ms`));
131
+ });
132
+ });
133
+ callback();
134
+ }
135
+ else {
136
+ exec(`tsc ${watchOption ? "-w" : ""} --project ${config.esbuildOptions.tsconfig}`, callback);
137
+ }
138
+ }
139
+ else {
140
+ throw new Error(`Your tsconfig needs an outdir`);
9
141
  }
10
- exec(`tsc ${watch ? "-w" : ""} --project ${config.esbuildOptions.tsconfig}`, callback);
11
142
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  export declare function generateFeatureImage(src: string): Promise<void>;
3
2
  export declare function generateScreenshots(): Promise<Buffer[][]>;
4
3
  export declare function generateAssets(callback: () => void, src: string): Promise<void>;
@@ -121,6 +121,5 @@ export async function generateAssets(callback, src) {
121
121
  ]);
122
122
  callback();
123
123
  await browser.close();
124
- console.log("pase");
125
124
  process.exit();
126
125
  }
@@ -0,0 +1,8 @@
1
+ import type { Transformer } from "../../utils/copy.js";
2
+ export declare const jsAndTsRegex: RegExp;
3
+ export declare const notJsAndTsRegex: RegExp;
4
+ export declare const jsonTransformer: {
5
+ fileRegex: RegExp;
6
+ transformer: (fileContent: string) => string;
7
+ };
8
+ export declare const transformers: Transformer[];
@@ -1,6 +1,6 @@
1
- import { config } from "../config/config.js";
2
- import { minifyXMLLike } from "./minify.js";
3
- import { serviceWorkerTransformer } from "./serviceWorkerTransformer.js";
1
+ import { config } from "../../config/config.js";
2
+ import { minifyXMLLike } from "../../utils/minify.js";
3
+ import { serviceWorkerTransformer } from "../../utils/serviceWorkerTransformer.js";
4
4
  export const jsAndTsRegex = /.*\.(?:ts|js)/;
5
5
  export const notJsAndTsRegex = /.*\.(?!ts|js)/;
6
6
  export const jsonTransformer = {
@@ -1 +1 @@
1
- export declare const start: (callback: (selectedPort: number) => void) => void;
1
+ export declare const start: (callback: (selectedPort: number) => void) => Promise<void>;
@@ -5,101 +5,64 @@ import coloredString from "../utils/coloredString.js";
5
5
  import { getPath } from "../utils/getPath.js";
6
6
  import open from "open";
7
7
  import { context } from "esbuild";
8
- import watch from "node-watch";
9
- import { copyFile } from "../utils/copy.js";
10
- import { sep } from "path";
11
- import { transformers } from "../utils/transformers.js";
12
8
  import { getHostURL } from "../utils/getHostURL.js";
13
9
  import { getLocalURL } from "../utils/getLocalURL.js";
14
- export const start = (callback) => {
15
- config.esbuildOptions.plugins?.push({
16
- name: "michijs-dev-server-watch-public-folder",
17
- setup(build) {
18
- if (config.public.path && config.watch)
19
- watch.default(config.public.path, {
20
- encoding: "utf-8",
21
- persistent: true,
22
- recursive: true,
23
- }, (event, fileChangedPath) => {
24
- const updated = new Array();
25
- const removed = new Array();
26
- const added = new Array();
27
- const splittedPath = fileChangedPath.split(sep);
28
- const srcDir = splittedPath.slice(0, -1).join(sep);
29
- const fileName = splittedPath.at(-1);
30
- const outDir = srcDir.replace(getPath(config.public.path), build.initialOptions.outdir);
31
- fs.rmSync(getPath(`${outDir}/${transformers
32
- .find((x) => x.fileRegex.test(fileName))
33
- ?.pathTransformer?.(fileName) ?? fileName}`), { force: true, recursive: true });
34
- if (event === "remove")
35
- removed.push(fileChangedPath);
36
- else {
37
- updated.push(fileChangedPath);
38
- copyFile(srcDir, fileName, outDir);
39
- }
40
- // Refresh browser
41
- connections.forEach((x) => x.write(`event: change\ndata: ${JSON.stringify({
42
- added,
43
- removed,
44
- updated,
45
- })}\n\n`));
46
- });
47
- },
10
+ import { watchPublicFolderPlugin } from "../config/plugins/watchPublicFolder.js";
11
+ export const start = async (callback) => {
12
+ config.esbuildOptions.plugins?.push(watchPublicFolderPlugin);
13
+ const buildContext = await context(config.esbuildOptions);
14
+ const { host: esbuildHost, port: esbuildPort } = await buildContext.serve({
15
+ servedir: config.esbuildOptions.outdir,
48
16
  });
49
- context(config.esbuildOptions).then(async (buildContext) => {
50
- const { host: esbuildHost, port: esbuildPort } = await buildContext.serve({
51
- servedir: config.esbuildOptions.outdir,
52
- });
53
- const server = http.createServer(async (req, res) => {
54
- if (req.url === "/esbuild")
55
- connections.push(res);
56
- const esbuildProxyRequestOptions = {
57
- hostname: esbuildHost,
58
- port: esbuildPort,
59
- path: req.url,
60
- method: req.method,
61
- headers: req.headers,
62
- };
63
- // Forward each incoming request to esbuild
64
- const proxyReq = http.request(esbuildProxyRequestOptions, (proxyRes) => {
65
- // If esbuild returns "not found", send a custom 404 page
66
- if (!proxyRes.statusCode || proxyRes.statusCode === 404) {
67
- res.writeHead(200, { "Content-Type": "text/html" });
68
- // TODO: Find a better way to do this
69
- res.end(fs.readFileSync(getPath(`${config.esbuildOptions.outdir}/${config.public.indexName}`)));
70
- return;
71
- }
72
- // Otherwise, forward the response from esbuild to the client
73
- res.writeHead(proxyRes.statusCode, proxyRes.headers);
74
- proxyRes.pipe(res, { end: true });
75
- });
76
- // Forward the body of the request to esbuild
77
- req.pipe(proxyReq, { end: true });
78
- });
79
- let selectedPort = config.port;
80
- server.on("error", (e) => {
81
- // @ts-ignore
82
- if (e.code === "EADDRINUSE") {
83
- selectedPort++;
84
- server.listen(selectedPort);
17
+ const server = http.createServer(async (req, res) => {
18
+ if (req.url === "/esbuild")
19
+ connections.push(res);
20
+ const esbuildProxyRequestOptions = {
21
+ hostname: esbuildHost,
22
+ port: esbuildPort,
23
+ path: req.url,
24
+ method: req.method,
25
+ headers: req.headers,
26
+ };
27
+ // Forward each incoming request to esbuild
28
+ const proxyReq = http.request(esbuildProxyRequestOptions, (proxyRes) => {
29
+ // If esbuild returns "not found", send a custom 404 page
30
+ if (!proxyRes.statusCode || proxyRes.statusCode === 404) {
31
+ res.writeHead(200, { "Content-Type": "text/html" });
32
+ // TODO: Find a better way to do this
33
+ res.end(fs.readFileSync(getPath(`${config.esbuildOptions.outdir}/${config.public.indexName}`)));
34
+ return;
85
35
  }
86
- else
87
- throw e;
36
+ // Otherwise, forward the response from esbuild to the client
37
+ res.writeHead(proxyRes.statusCode, proxyRes.headers);
38
+ proxyRes.pipe(res, { end: true });
88
39
  });
89
- server.on("listening", () => {
90
- const localURL = getLocalURL(selectedPort);
91
- console.log(`
40
+ // Forward the body of the request to esbuild
41
+ req.pipe(proxyReq, { end: true });
42
+ });
43
+ let selectedPort = config.port;
44
+ server.on("error", (e) => {
45
+ // @ts-ignore
46
+ if (e.code === "EADDRINUSE") {
47
+ selectedPort++;
48
+ server.listen(selectedPort);
49
+ }
50
+ else
51
+ throw e;
52
+ });
53
+ server.on("listening", () => {
54
+ const localURL = getLocalURL(selectedPort);
55
+ console.log(`
92
56
  Server running at:
93
57
 
94
58
  > Network: ${coloredString(getHostURL(selectedPort))}
95
59
  > Local: ${coloredString(localURL)}`);
96
- callback(selectedPort);
97
- if (config.watch)
98
- buildContext.watch();
99
- if (config.openBrowser)
100
- open(localURL);
101
- });
102
- // First try
103
- server.listen(selectedPort);
60
+ callback(selectedPort);
61
+ if (config.watch)
62
+ buildContext.watch();
63
+ if (config.openBrowser)
64
+ open(localURL);
104
65
  });
66
+ // First try
67
+ server.listen(selectedPort);
105
68
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import type http from "http";
3
2
  export declare const connections: (http.ServerResponse<http.IncomingMessage> & {
4
3
  req: http.IncomingMessage;
@@ -8,19 +7,19 @@ declare const config: {
8
7
  assets: {
9
8
  screenshots: {
10
9
  paths: string[];
11
- pageCallbacks: import("../types.js").PageCallback<string | void>[];
10
+ pageCallbacks: import("../types.js").PageCallback[];
12
11
  };
13
12
  featureImage: {
14
13
  path: string;
15
- pageCallback?: import("../types.js").PageCallback<void> | undefined;
14
+ pageCallback?: import("../types.js").PageCallback<void>;
16
15
  };
17
16
  path: string;
18
17
  };
19
18
  manifest: {
20
19
  name: string;
21
- options?: import("web-app-manifest").WebAppManifest | undefined;
20
+ options?: import("web-app-manifest").WebAppManifest;
22
21
  };
23
- wellKnown?: import("../types.js").WellKnown[] | undefined;
22
+ wellKnown?: import("../types.js").WellKnown[];
24
23
  path: string;
25
24
  indexName: string;
26
25
  minify: boolean;
@@ -33,83 +32,83 @@ declare const config: {
33
32
  inject: string[];
34
33
  bundle: boolean;
35
34
  splitting: boolean;
36
- preserveSymlinks?: boolean | undefined;
37
- outfile?: string | undefined;
38
- metafile?: boolean | undefined;
35
+ preserveSymlinks?: boolean;
36
+ outfile?: string;
37
+ metafile?: boolean;
39
38
  outdir: string;
40
- outbase?: string | undefined;
41
- external?: string[] | undefined;
42
- packages?: "external" | undefined;
43
- alias?: Record<string, string> | undefined;
39
+ outbase?: string;
40
+ external?: string[];
41
+ packages?: "external";
42
+ alias?: Record<string, string>;
44
43
  loader?: {
45
44
  [ext: string]: import("esbuild").Loader;
46
- } | undefined;
47
- resolveExtensions?: string[] | undefined;
48
- mainFields?: string[] | undefined;
49
- conditions?: string[] | undefined;
50
- write?: boolean | undefined;
51
- allowOverwrite?: boolean | undefined;
45
+ };
46
+ resolveExtensions?: string[];
47
+ mainFields?: string[];
48
+ conditions?: string[];
49
+ write?: boolean;
50
+ allowOverwrite?: boolean;
52
51
  tsconfig: string;
53
52
  outExtension?: {
54
53
  [ext: string]: string;
55
- } | undefined;
56
- publicPath?: string | undefined;
57
- entryNames?: string | undefined;
58
- chunkNames?: string | undefined;
59
- assetNames?: string | undefined;
54
+ };
55
+ publicPath?: string;
56
+ entryNames?: string;
57
+ chunkNames?: string;
58
+ assetNames?: string;
60
59
  banner?: {
61
60
  [type: string]: string;
62
- } | undefined;
61
+ };
63
62
  footer?: {
64
63
  [type: string]: string;
65
- } | undefined;
64
+ };
66
65
  entryPoints: string[] | Record<string, string> | {
67
66
  in: string;
68
67
  out: string;
69
68
  }[];
70
- stdin?: import("esbuild").StdinOptions | undefined;
71
- absWorkingDir?: string | undefined;
72
- nodePaths?: string[] | undefined;
69
+ stdin?: import("esbuild").StdinOptions;
70
+ absWorkingDir?: string;
71
+ nodePaths?: string[];
73
72
  sourcemap: boolean | "linked" | "inline" | "external" | "both";
74
- legalComments?: "linked" | "inline" | "external" | "none" | "eof" | undefined;
75
- sourceRoot?: string | undefined;
76
- sourcesContent?: boolean | undefined;
73
+ legalComments?: "none" | "inline" | "eof" | "linked" | "external";
74
+ sourceRoot?: string;
75
+ sourcesContent?: boolean;
77
76
  format: import("esbuild").Format;
78
- globalName?: string | undefined;
77
+ globalName?: string;
79
78
  target: string | string[];
80
- supported?: Record<string, boolean> | undefined;
81
- platform?: import("esbuild").Platform | undefined;
82
- mangleProps?: RegExp | undefined;
83
- reserveProps?: RegExp | undefined;
84
- mangleQuoted?: boolean | undefined;
85
- mangleCache?: Record<string, string | false> | undefined;
86
- drop?: import("esbuild").Drop[] | undefined;
87
- dropLabels?: string[] | undefined;
88
- minify?: boolean | undefined;
79
+ supported?: Record<string, boolean>;
80
+ platform?: import("esbuild").Platform;
81
+ mangleProps?: RegExp;
82
+ reserveProps?: RegExp;
83
+ mangleQuoted?: boolean;
84
+ mangleCache?: Record<string, string | false>;
85
+ drop?: import("esbuild").Drop[];
86
+ dropLabels?: string[];
87
+ minify?: boolean;
89
88
  minifyWhitespace: boolean;
90
- minifyIdentifiers?: boolean | undefined;
89
+ minifyIdentifiers?: boolean;
91
90
  minifySyntax: boolean;
92
- lineLimit?: number | undefined;
93
- charset?: import("esbuild").Charset | undefined;
94
- treeShaking?: boolean | undefined;
95
- ignoreAnnotations?: boolean | undefined;
96
- jsx?: "transform" | "preserve" | "automatic" | undefined;
97
- jsxFactory?: string | undefined;
98
- jsxFragment?: string | undefined;
99
- jsxImportSource?: string | undefined;
100
- jsxDev?: boolean | undefined;
101
- jsxSideEffects?: boolean | undefined;
102
- pure?: string[] | undefined;
91
+ lineLimit?: number;
92
+ charset?: import("esbuild").Charset;
93
+ treeShaking?: boolean;
94
+ ignoreAnnotations?: boolean;
95
+ jsx?: "transform" | "preserve" | "automatic";
96
+ jsxFactory?: string;
97
+ jsxFragment?: string;
98
+ jsxImportSource?: string;
99
+ jsxDev?: boolean;
100
+ jsxSideEffects?: boolean;
101
+ pure?: string[];
103
102
  keepNames: boolean;
104
- color?: boolean | undefined;
103
+ color?: boolean;
105
104
  logLevel: import("esbuild").LogLevel;
106
- logLimit?: number | undefined;
107
- logOverride?: Record<string, import("esbuild").LogLevel> | undefined;
108
- tsconfigRaw?: string | import("esbuild").TsconfigRaw | undefined;
105
+ logLimit?: number;
106
+ logOverride?: Record<string, import("esbuild").LogLevel>;
107
+ tsconfigRaw?: string | import("esbuild").TsconfigRaw;
109
108
  };
110
109
  env?: {
111
110
  [key: string]: any;
112
- } | undefined;
111
+ };
113
112
  watch: boolean;
114
113
  port: number;
115
114
  openBrowser: boolean;
@@ -2,12 +2,12 @@ import fs from "fs";
2
2
  import coloredString from "../utils/coloredString.js";
3
3
  import { copy } from "../utils/copy.js";
4
4
  import { getPath } from "../utils/getPath.js";
5
- import { Timer } from "../classes/Timer.js";
6
5
  import { userConfig } from "./userConfig.js";
7
6
  import { resolve } from "path";
8
- import { jsAndTsRegex, jsonTransformer, notJsAndTsRegex, } from "../utils/transformers.js";
7
+ import { jsAndTsRegex, jsonTransformer, notJsAndTsRegex, transformers, } from "../actions/start/transformers.js";
9
8
  import { dirname } from "path";
10
9
  import { fileURLToPath } from "url";
10
+ import { counterPlugin } from "./plugins/counter.js";
11
11
  const minify = process.env.NODE_ENV === "PRODUCTION";
12
12
  const devServerListener = process.env.NODE_ENV === "DEVELOPMENT"
13
13
  ? [getPath(`${dirname(fileURLToPath(import.meta.url))}/public/client.js`)]
@@ -53,9 +53,9 @@ const config = {
53
53
  tsconfig: "tsconfig.json",
54
54
  minifySyntax: minify,
55
55
  minifyWhitespace: minify,
56
- sourcemap: process.env.NODE_ENV !== "PRODUCTION",
56
+ sourcemap: process.env.NODE_ENV === "DEVELOPMENT",
57
57
  splitting: true,
58
- bundle: true,
58
+ bundle: process.env.NODE_ENV !== "DISTRIBUTION",
59
59
  keepNames: minify,
60
60
  entryPoints: [defaultEntryPoint],
61
61
  format: "esm",
@@ -108,23 +108,17 @@ const config = {
108
108
  }
109
109
  // Copy public path - Omit to copy service worker - will be transformed after
110
110
  if (config.public.path && build.initialOptions.outdir)
111
- copy(config.public.path, build.initialOptions.outdir, [
112
- jsAndTsRegex,
113
- ]);
114
- const buildTimer = new Timer();
111
+ copy(config.public.path, build.initialOptions.outdir, transformers, [jsAndTsRegex]);
115
112
  let firstLoad = true;
116
- build.onStart(() => buildTimer.startTimer());
117
113
  build.onEnd(() => {
118
114
  // first-load sw - Omit to copy any other non-js file
119
115
  if (firstLoad && config.public.path && build.initialOptions.outdir)
120
- copy(config.public.path, build.initialOptions.outdir, [
121
- notJsAndTsRegex,
122
- ]);
123
- console.log(coloredString(` Build finished in ${buildTimer.endTimer()}ms`));
116
+ copy(config.public.path, build.initialOptions.outdir, transformers, [notJsAndTsRegex]);
124
117
  firstLoad = false;
125
118
  });
126
119
  },
127
120
  },
121
+ counterPlugin,
128
122
  ],
129
123
  define: {
130
124
  // Intentionally added before process
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from "esbuild";
2
+ export declare const counterPlugin: Plugin;
@@ -0,0 +1,12 @@
1
+ import coloredString from "../../utils/coloredString.js";
2
+ import { Timer } from "../../classes/Timer.js";
3
+ export const counterPlugin = {
4
+ name: "michijs-counter",
5
+ setup(build) {
6
+ const buildTimer = new Timer();
7
+ build.onStart(() => buildTimer.startTimer());
8
+ build.onEnd(() => {
9
+ console.log(coloredString(` Build finished in ${buildTimer.endTimer()}ms`));
10
+ });
11
+ },
12
+ };
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from "esbuild";
2
+ export declare const watchPublicFolderPlugin: Plugin;
@@ -0,0 +1,16 @@
1
+ import { config, connections } from "../../config/config.js";
2
+ import { transformers } from "../../actions/start/transformers.js";
3
+ import { syncDirs } from "../../utils/syncDirs.js";
4
+ export const watchPublicFolderPlugin = {
5
+ name: "michijs-dev-server-watch-public-folder",
6
+ setup() {
7
+ if (config.public.path && config.watch)
8
+ syncDirs(config.public.path, config.esbuildOptions.outdir, transformers, undefined, undefined, (event, fileChangedPath) => {
9
+ connections.forEach((x) => x.write(`event: change\ndata: ${JSON.stringify({
10
+ added: [],
11
+ removed: event === "remove" ? [fileChangedPath] : [],
12
+ updated: event === "update" ? [fileChangedPath] : [],
13
+ })}\n\n`));
14
+ });
15
+ },
16
+ };
@@ -1,7 +1,10 @@
1
- import type { CompilerOptions } from "typescript";
2
- declare let tsconfig: {
1
+ import { type CompilerOptions } from "typescript";
2
+ interface TsConfig {
3
3
  compilerOptions: CompilerOptions;
4
4
  include: string[];
5
5
  exclude: string[];
6
- };
7
- export { tsconfig };
6
+ files: string[];
7
+ extends?: string;
8
+ }
9
+ export declare const tsconfig: TsConfig;
10
+ export {};
@@ -1,11 +1,51 @@
1
1
  import { config } from "./config.js";
2
2
  import fs from "fs";
3
- let tsconfig;
4
- if (config.esbuildOptions.tsconfig &&
5
- fs.existsSync(config.esbuildOptions?.tsconfig)) {
6
- tsconfig = JSON.parse(fs.readFileSync(config.esbuildOptions.tsconfig, "utf-8"));
3
+ import path from "path";
4
+ import { parseConfigFileTextToJson } from "typescript";
5
+ function readConfigFile(filePath) {
6
+ const absolutePath = path.resolve(filePath);
7
+ const rawContent = fs.readFileSync(absolutePath, "utf8");
8
+ const parsed = parseConfigFileTextToJson(absolutePath, rawContent);
9
+ if (parsed.error) {
10
+ throw new Error(`Error parsing ${absolutePath}: ${JSON.stringify(parsed.error)}`);
11
+ }
12
+ return parsed.config;
7
13
  }
8
- else {
9
- throw `Unable to find tsconfig at ${config.esbuildOptions.tsconfig}`;
14
+ function mergeConfigs(baseConfig, additionalConfig) {
15
+ // Merge compilerOptions
16
+ const mergedCompilerOptions = {
17
+ ...baseConfig.compilerOptions,
18
+ ...additionalConfig.compilerOptions,
19
+ };
20
+ // Merge include, exclude, files
21
+ const mergedInclude = [
22
+ ...(baseConfig.include || []),
23
+ ...(additionalConfig.include || []),
24
+ ];
25
+ const mergedExclude = [
26
+ ...(baseConfig.exclude || []),
27
+ ...(additionalConfig.exclude || []),
28
+ ];
29
+ const mergedFiles = [
30
+ ...(baseConfig.files || []),
31
+ ...(additionalConfig.files || []),
32
+ ];
33
+ return {
34
+ ...baseConfig,
35
+ ...additionalConfig,
36
+ compilerOptions: mergedCompilerOptions,
37
+ include: mergedInclude,
38
+ exclude: mergedExclude,
39
+ files: mergedFiles,
40
+ };
10
41
  }
11
- export { tsconfig };
42
+ function getFullConfig(filePath) {
43
+ const config = readConfigFile(filePath);
44
+ if (config.extends) {
45
+ const parentConfigPath = path.resolve(path.dirname(filePath), config.extends);
46
+ const parentConfig = getFullConfig(parentConfigPath);
47
+ return mergeConfigs(parentConfig, config);
48
+ }
49
+ return config;
50
+ }
51
+ export const tsconfig = getFullConfig(config.esbuildOptions.tsconfig ?? "tsconfig.json");
@@ -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.es2021.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.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.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.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/utils/coloredString.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../node_modules/@types/yargs/index.d.mts","../src/classes/Timer.ts","../node_modules/@types/yargs/helpers.d.ts","../node_modules/@types/yargs/helpers.d.mts","../src/utils/getPath.ts","../node_modules/esbuild/lib/main.d.ts","../node_modules/@types/web-app-manifest/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.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/sea.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","../node_modules/devtools-protocol/types/protocol.d.ts","../node_modules/devtools-protocol/types/protocol-mapping.d.ts","../node_modules/puppeteer/lib/types.d.ts","../src/constants.ts","../src/types.ts","../src/utils/minify.ts","../src/utils/getAllFiles.ts","../src/utils/serviceWorkerTransformer.ts","../src/utils/transformers.ts","../src/utils/copy.ts","../src/config/userConfig.ts","../src/config/config.ts","../src/utils/pngToIco.ts","../node_modules/sharp/lib/index.d.ts","../src/utils/getLocalURL.ts","../node_modules/open/index.d.ts","../node_modules/node-watch/lib/watch.d.ts","../src/config/getIPAddress.ts","../src/utils/getHostURL.ts","../src/actions/start.ts","../src/actions/generateAssets.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.d.ts","../src/index.ts","../src/config/public/client.ts","../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true,"impliedFormat":1},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true,"impliedFormat":1},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f620e24dc1d3ece30246163c207434bbbf4b9759a5b0a1265f3f5606338ac0c","signature":"5a3576ed8855e67c68886fdd82d176b7faffe1dd5b3abf4befb6123142ad2475","impliedFormat":99},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e","impliedFormat":1},{"version":"2b421c821711ac9ed8ff035e900c765e87eba84dc10c1351948f8dcfaf2b00fd","impliedFormat":99},{"version":"44afcb14a76d04c7007ddcd59ece41df0027252049b43df36b99fc4bf6b19465","signature":"df43ac2a510c4a7eb3dc639ea2f6c41373fe0e689b89e80a9aae6cfddcbbe4a5","impliedFormat":99},{"version":"4eb2499d385eff0db377104ae091822c4ba889b318b55a764dee8ee323c837ed","impliedFormat":1},{"version":"059b7930d2e7946e2b7cacdb256f5d1ccaa24f073e557b511295fb3af7d876d8","impliedFormat":99},{"version":"fd12bdd89cbf484ec2c2c85df4bc53c0d59d01e6b75236537936cce217e442fd","signature":"75c7dd820ff92e5e07931d7ba78bd6b2e14102552edfd1e479588448734c482d","impliedFormat":99},{"version":"55bbfa2fcb7692e366773b23a0338463fc9254301414f861a3ae46ff000b5783","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf5ad05851a8259d7754b35c348be05da440396210e16e58e3e6825d9642de0d","impliedFormat":1},{"version":"acdc9fb9638a235a69bd270003d8db4d6153ada2b7ccbea741ade36b295e431e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c","impliedFormat":1},{"version":"7fd7fcbf021a5845bdd9397d4649fcf2fe17152d2098140fc723099a215d19ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df3389f71a71a38bc931aaf1ef97a65fada98f0a27f19dd12f8b8de2b0f4e461","impliedFormat":1},{"version":"d69a3298a197fe5d59edba0ec23b4abf2c8e7b8c6718eac97833633cd664e4c9","impliedFormat":1},{"version":"a9544f6f8af0d046565e8dde585502698ebc99eef28b715bad7c2bded62e4a32","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"8b809082dfeffc8cc4f3b9c59f55c0ff52ba12f5ae0766cb5c35deee83b8552e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","impliedFormat":1},{"version":"4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","impliedFormat":1},{"version":"d4f9d3ae2fe1ae199e1c832cca2c44f45e0b305dfa2808afdd51249b6f4a5163","impliedFormat":1},{"version":"7525257b4aa35efc7a1bbc00f205a9a96c4e4ab791da90db41b77938c4e0c18e","impliedFormat":1},{"version":"b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c611eff81287837680c1f4496daf9e737d6f3a1ff17752207814b8f8e1265af","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe1fd6afdfe77976d4c702f3746c05fb05a7e566845c890e0e970fe9376d6a90","impliedFormat":1},{"version":"b5d4e3e524f2eead4519c8e819eaf7fa44a27c22418eff1b7b2d0ebc5fdc510d","impliedFormat":1},{"version":"afb1701fd4be413a8a5a88df6befdd4510c30a31372c07a4138facf61594c66d","impliedFormat":1},{"version":"9bd8e5984676cf28ebffcc65620b4ab5cb38ab2ec0aac0825df8568856895653","impliedFormat":1},{"version":"396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","impliedFormat":1},{"version":"5e8dc64e7e68b2b3ea52ed685cf85239e0d5fb9df31aabc94370c6bc7e19077b","impliedFormat":1},{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"c07146dbbbd8b347241b5df250a51e48f2d7bef19b1e187b1a3f20c849988ff1","impliedFormat":1},{"version":"45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","impliedFormat":1},{"version":"0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7","impliedFormat":1},{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true,"impliedFormat":1},{"version":"46755a4afc53df75f0bfce72259fb971daac826b0cdd8c4eaccad2755a817403","affectsGlobalScope":true,"impliedFormat":1},{"version":"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","impliedFormat":1},{"version":"54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","impliedFormat":1},{"version":"d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","impliedFormat":1},{"version":"8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","impliedFormat":1},{"version":"01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"7fa32887f8a97909fca35ebba3740f8caf8df146618d8fff957a3f89f67a2f6a","impliedFormat":1},{"version":"9a9634296cca836c3308923ba7aa094fa6ed76bb1e366d8ddcf5c65888ab1024","impliedFormat":1},{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true,"impliedFormat":1},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","impliedFormat":1},{"version":"4b55240c2a03b2c71e98a7fc528b16136faa762211c92e781a01c37821915ea6","impliedFormat":1},{"version":"7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","impliedFormat":1},{"version":"7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df","impliedFormat":1},{"version":"94c086dff8dbc5998749326bc69b520e8e4273fb5b7b58b50e0210e0885dfcde","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebe5facd12fd7745cda5f4bc3319f91fb29dc1f96e57e9c6f8b260a7cc5b67ee","impliedFormat":1},{"version":"79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","impliedFormat":1},{"version":"21c56c6e8eeacef15f63f373a29fab6a2b36e4705be7a528aae8c51469e2737b","impliedFormat":1},{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","impliedFormat":1},{"version":"87c1d95c4160dd74c2e474927a987776e52f45436fd56cca242eaa18feeef34f","impliedFormat":1},{"version":"cb2f9c7170bc1583b1f384134a96ed6926139782196e0917bb02f46a44b45037","impliedFormat":1},{"version":"41d778f99acc22ed63281d4d6235e6300a6574b09c4f46cd8a962d4b772fc460","impliedFormat":1},{"version":"20973b98a37a20b0eece4e1b5a28e4ecded38d7cf786f86d6ee2509fc53e80d7","signature":"3f95f54e062734aeedd545093e86306b5236cb1565fcd4d5fb8c399d56f20ee5","impliedFormat":99},{"version":"b7855dd2520c62a5eb53a61580805ad684e0e1d70d9da24d2677d4569c8eba17","signature":"2072ccb52e67b21530f948a77523dee1f5bcb7a163e0cf11a4b8c25762fd52be","impliedFormat":99},{"version":"db43731424654ca6985118bf123bdd98ea9b5af5d8149a90cf795977bf41b9a6","signature":"e35226acb4d207d378ff9506b1306145149afe1266b071d1c4daa98033c7a569","impliedFormat":99},{"version":"7405a0c5444d4b78f96ca1370bc0849b388fa993b99fe0ebed06890f84dce96a","signature":"efd0f4958c494e39e91a6291abbff412a2665e43b3138ecbf3611e85cd8a264d","impliedFormat":99},{"version":"d8e0bb51daa025396e5d02437da119bc7901fff4aaeb8e2efb70a620988b2015","signature":"268fed927eada45fae99b136be2973510d4f13b6250960169f6f4f37c675022e","impliedFormat":99},{"version":"da202e0a71a8ab467daf64519071f7794f2d2751a67ceb84a44761b578ff39e8","signature":"0509e1f14edbae88a76ac37e789a95c12008905bc6797f2e4ff25428b0da1594","impliedFormat":99},{"version":"eec9fc348ce1a6dcae088021b23e1522624e868aa406e08b469fac119e3a3b67","signature":"29328117e05b54040699d2b667bc8b77e88782f68e2e324473a3043bb566b4cd","impliedFormat":99},{"version":"57dc200de1add6e537188563b00126ba0a90731e31895c258e706ab9179e4080","signature":"42f071a1624eacdd2ccfa9f52f775a23dfbea86992b9a26ac2d68b033c85a0f4","impliedFormat":99},{"version":"533c504cf5f10f3f428869669dff2657801cc24ed6908c81522c6266c8e7782c","signature":"58f6d459b25edae0cd2c711f50ab8ff3525742922cf9479875bbbd64ca35162f","impliedFormat":99},{"version":"5409de0378cba8c9199d4604a45c85275a4e7bb4dc15542d6cf9b11cdbe2874c","signature":"52d5ce71c449f1bbcbe7610e66c0fdf7282ca6e5c37d35562d2a93e75cb4bcc1","impliedFormat":99},{"version":"53f081658f2706f0e8ec3d40a3f44d83098c49c359206da3a7187efb7744a981","impliedFormat":1},{"version":"6d1a23e4c0f8428b1e00b77b3756503dac3a505a99f3055a29774cd7a81fdd5a","signature":"d303bc4f31c976ab221244ccd5a6b87fb8b17f56ef9780a8806e3f7aecf85eb4","impliedFormat":99},{"version":"93a98ba747d8637f2e65250461ff910355f755caf6a29744def94b1c0636843d","impliedFormat":99},{"version":"511b7e393e5663ef536a2afb21cc06f1bd52246fb3cca039a2b28266e180362a","impliedFormat":1},{"version":"2aa80019d2cc87a412b5281df66b78e449df36b3ea125ec8b61034d5a4dc4ba1","signature":"7a27baf1053443cefab73b720106d1f9d730a50a37f82155d664145663040f20","impliedFormat":99},{"version":"868d28d0b7a26a4034f646f8e84fd61e42fd57a8143327349f120ad00edda173","signature":"fae2934c0aa77d24e9ed52baa42d42f311907eadcb851dfed170d6c66a696c1e","impliedFormat":99},{"version":"06a50d208a6baae511e2500c0336adec96ba80875b585bf5788136b335cd9ca0","signature":"e71c57ef3bdfcd87b491106bdf70578dfbbd3e48582aece785e3a01552fa65ee","impliedFormat":99},{"version":"8630f0c90c2617085847809099214915d453fa15aedb85bd5046671380420af5","signature":"fb37d192fee13974d29a712fd5cc642244c04bcc5791435e74460547c8a8791c","impliedFormat":99},{"version":"eeb97303ac8da68d9a35c26cf1bf6791a2a136c828ba68b10df05ba9991658ce","signature":"c6639f380d643933407420d2fcb5f074984799a24a237bd049b9945b03659a28","impliedFormat":99},{"version":"e4ba061c5bcfc75ef8a18eaf677e0ea007ca67931a12aab286cc4a851ce49263","impliedFormat":1},{"version":"79b81885210ace9337e3e8db3bc8ac633c226ac85843e033a05bb468e344187e","signature":"2343bf3e073ba79279ac16e749322d9e229e625b7dfab1cc4d36f136fc6d8108","impliedFormat":99},{"version":"e0978d980afa00b06cfa3ca9918a5cb5d450b308c2d88a2ad905b45c04d80aa0","signature":"b9676c103abbcded39e23921ecfef7f65ad5b091ceee5e964a4921331f15a547","impliedFormat":99},{"version":"122aa3e60f7ad1b470d5b02fb45893955bddac67f79b4a6a4ab0f05b8103484f","signature":"f1c55f9c94533ef546614eedb041912be0e86df25ff276dfbfa72a5d6d1e9ffb","impliedFormat":99},{"version":"6a400aa275fbe7de7ce057315060d1388fcf59dfc8d17c6c435458754164fffc","impliedFormat":99},{"version":"930378a857f9429ea1e0eec081ccbf02c97f6b34d7e02015d93f9cf53f074860","signature":"950e163ec71f6cbeba6a0bb17dbc2c90a838db7748fe9b602abdd5fddacd8ea3","impliedFormat":99},{"version":"0052de5b3c8ef75cc5bdb1260c0df7a4cb02801a1294769634bd5bc095dc0a18","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185","impliedFormat":1}],"root":[52,56,59,[153,162],164,[167,171],[173,178]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":100,"noErrorTruncation":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"target":99},"fileIdsList":[[62],[98],[99,104,133],[100,111,112,119,130,141],[100,101,111,119],[102,142],[103,104,112,120],[104,130,138],[105,107,111,119],[98,106],[107,108],[111],[109,111],[98,111],[111,112,113,130,141],[111,112,113,126,130,133],[96,99,146],[107,111,114,119,130,141],[111,112,114,115,119,130,138,141],[114,116,130,138,141],[62,63,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,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148],[111,117],[118,141,146],[107,111,119,130],[120],[121],[98,122],[123,140,146],[124],[125],[111,126,127],[126,128,142,144],[99,111,130,131,132,133],[99,130,132],[130,131],[133],[134],[98,130],[111,136,137],[136,137],[104,119,130,138],[139],[119,140],[99,114,125,141],[104,142],[130,143],[118,144],[145],[99,104,111,113,122,130,141,144,146],[130,147],[57],[53],[54],[111,130,149],[150],[112],[100],[100,130,149,150,151],[130,149],[73,77,141],[73,130,141],[68],[70,73,138,141],[119,138],[149],[68,149],[70,73,119,141],[65,66,69,72,99,111,130,141],[65,71],[69,73,99,133,141,149],[99,149],[89,99,149],[67,68,149],[73],[67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,85,86,87,88,90,91,92,93,94,95],[73,80,81],[71,73,81,82],[72],[65,68,73],[73,77,81,82],[77],[71,73,76,141],[65,70,71,73,77,80],[99,130],[68,73,89,99,146,149],[60,161],[100,112,161,173],[59,112,121,141,152,153,154,161,162,163,164,169],[52,59,60,112,114,121,158,159,161,164,165,166,168],[52,55,56,58,169,170,171,174],[52,56,59,112,114,121,141,154,158,159,160],[112,161,172],[60,112,121,141,153,154],[152,154],[154,175],[60,61,152,153],[59,112,158],[59,112],[167],[60,156,161],[155,157,159,161],[60,61,114,154],[172],[154],[60],[159]],"referencedMap":[[62,1],[63,1],[98,2],[99,3],[100,4],[101,5],[102,6],[103,7],[104,8],[105,9],[106,10],[107,11],[108,11],[110,12],[109,13],[111,14],[112,15],[113,16],[97,17],[114,18],[115,19],[116,20],[149,21],[117,22],[118,23],[119,24],[120,25],[121,26],[122,27],[123,28],[124,29],[125,30],[126,31],[127,31],[128,32],[130,33],[132,34],[131,35],[133,36],[134,37],[135,38],[136,39],[137,40],[138,41],[139,42],[140,43],[141,44],[142,45],[143,46],[144,47],[145,48],[146,49],[147,50],[58,51],[57,52],[55,53],[54,52],[179,54],[151,55],[166,56],[165,57],[152,58],[163,59],[80,60],[87,61],[79,60],[94,62],[71,63],[70,64],[93,65],[88,66],[91,67],[73,68],[72,69],[68,70],[67,71],[90,72],[69,73],[74,74],[78,74],[96,75],[95,74],[82,76],[83,77],[85,78],[81,79],[84,80],[89,65],[76,81],[77,82],[86,83],[66,84],[92,85],[171,86],[174,87],[170,88],[169,89],[175,90],[161,91],[167,25],[173,92],[160,93],[153,94],[177,95],[154,96],[159,97],[156,98],[168,99],[59,26],[157,100],[158,101]],"exportedModulesMap":[[62,1],[63,1],[98,2],[99,3],[100,4],[101,5],[102,6],[103,7],[104,8],[105,9],[106,10],[107,11],[108,11],[110,12],[109,13],[111,14],[112,15],[113,16],[97,17],[114,18],[115,19],[116,20],[149,21],[117,22],[118,23],[119,24],[120,25],[121,26],[122,27],[123,28],[124,29],[125,30],[126,31],[127,31],[128,32],[130,33],[132,34],[131,35],[133,36],[134,37],[135,38],[136,39],[137,40],[138,41],[139,42],[140,43],[141,44],[142,45],[143,46],[144,47],[145,48],[146,49],[147,50],[58,51],[57,52],[55,53],[54,52],[179,54],[151,55],[166,56],[165,57],[152,58],[163,59],[80,60],[87,61],[79,60],[94,62],[71,63],[70,64],[93,65],[88,66],[91,67],[73,68],[72,69],[68,70],[67,71],[90,72],[69,73],[74,74],[78,74],[96,75],[95,74],[82,76],[83,77],[85,78],[81,79],[84,80],[89,65],[76,81],[77,82],[86,83],[66,84],[92,85],[161,102],[173,103],[160,104],[153,104],[177,104],[154,96],[157,105],[158,106]],"semanticDiagnosticsPerFile":[62,63,98,99,100,101,102,103,104,105,106,107,108,110,109,111,112,113,97,148,114,115,116,149,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,131,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,61,53,58,57,55,54,179,64,151,150,60,166,165,152,163,50,51,9,11,10,2,12,13,14,15,16,17,18,19,3,20,4,21,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,1,49,172,80,87,79,94,71,70,93,88,91,73,72,68,67,90,69,74,75,78,65,96,95,82,83,85,81,84,89,76,77,86,66,92,171,174,170,169,56,175,161,167,178,173,160,153,176,177,154,52,159,156,168,164,59,155,162,157,158]},"version":"5.4.5"}
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.es2021.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.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.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.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/utils/coloredString.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../node_modules/@types/yargs/index.d.mts","../src/classes/Timer.ts","../node_modules/@types/yargs/helpers.d.ts","../node_modules/@types/yargs/helpers.d.mts","../src/utils/getPath.ts","../node_modules/esbuild/lib/main.d.ts","../node_modules/@types/web-app-manifest/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.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/sea.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","../node_modules/devtools-protocol/types/protocol.d.ts","../node_modules/devtools-protocol/types/protocol-mapping.d.ts","../node_modules/puppeteer/lib/types.d.ts","../src/constants.ts","../src/types.ts","../src/utils/copy.ts","../src/config/userConfig.ts","../src/utils/minify.ts","../src/utils/getAllFiles.ts","../src/utils/serviceWorkerTransformer.ts","../src/actions/start/transformers.ts","../src/config/plugins/counter.ts","../src/config/config.ts","../src/utils/pngToIco.ts","../node_modules/sharp/lib/index.d.ts","../src/utils/getLocalURL.ts","../node_modules/open/index.d.ts","../src/config/getIPAddress.ts","../src/utils/getHostURL.ts","../node_modules/node-watch/lib/watch.d.ts","../src/utils/syncDirs.ts","../src/config/plugins/watchPublicFolder.ts","../src/actions/start.ts","../src/actions/generateAssets.ts","../src/actions/build.ts","../node_modules/typescript/lib/typescript.d.ts","../src/config/tsconfig.ts","../src/utils/globToRegex.ts","../src/actions/dist.ts","../src/cli.ts","../src/global.d.ts","../src/index.ts","../src/config/public/client.ts","../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f620e24dc1d3ece30246163c207434bbbf4b9759a5b0a1265f3f5606338ac0c","signature":"5a3576ed8855e67c68886fdd82d176b7faffe1dd5b3abf4befb6123142ad2475","impliedFormat":99},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e","impliedFormat":1},{"version":"2b421c821711ac9ed8ff035e900c765e87eba84dc10c1351948f8dcfaf2b00fd","impliedFormat":99},{"version":"44afcb14a76d04c7007ddcd59ece41df0027252049b43df36b99fc4bf6b19465","signature":"df43ac2a510c4a7eb3dc639ea2f6c41373fe0e689b89e80a9aae6cfddcbbe4a5","impliedFormat":99},{"version":"4eb2499d385eff0db377104ae091822c4ba889b318b55a764dee8ee323c837ed","impliedFormat":1},{"version":"059b7930d2e7946e2b7cacdb256f5d1ccaa24f073e557b511295fb3af7d876d8","impliedFormat":99},{"version":"fd12bdd89cbf484ec2c2c85df4bc53c0d59d01e6b75236537936cce217e442fd","signature":"75c7dd820ff92e5e07931d7ba78bd6b2e14102552edfd1e479588448734c482d","impliedFormat":99},{"version":"bacf2c84cf448b2cd02c717ad46c3d7fd530e0c91282888c923ad64810a4d511","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf5ad05851a8259d7754b35c348be05da440396210e16e58e3e6825d9642de0d","impliedFormat":1},{"version":"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"e7be367719c613d580d4b27fdf8fe64c9736f48217f4b322c0d63b2971460918","affectsGlobalScope":true,"impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"392eadc2af403dd10b4debfbc655c089a7fa6a9750caeb770cfb30051e55e848","affectsGlobalScope":true,"impliedFormat":1},{"version":"62f1c00d3d246e0e3cf0224f91e122d560428ec1ccc36bb51d4574a84f1dbad0","impliedFormat":1},{"version":"53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6","impliedFormat":1},{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"c48c503c6b3f63baf18257e9a87559b5602a4e960107c762586d2a6a62b64a18","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"0364f8bb461d6e84252412d4e5590feda4eb582f77d47f7a024a7a9ff105dfdc","impliedFormat":1},{"version":"5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","impliedFormat":1},{"version":"d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"1493cc4d72bfaabe2ac13e987d026a5fc99a816f6289bfca7192834a396205cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","impliedFormat":1},{"version":"304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","impliedFormat":1},{"version":"1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","impliedFormat":1},{"version":"98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","impliedFormat":1},{"version":"c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","impliedFormat":1},{"version":"2eaa31492906bc8525aff3c3ec2236e22d90b0dfeee77089f196cd0adf0b3e3b","impliedFormat":1},{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","impliedFormat":1},{"version":"a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","impliedFormat":1},{"version":"d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900","impliedFormat":1},{"version":"1d4d78c8b23c9ddaaaa49485e6adc2ec01086dfe5d8d4d36ca4cdc98d2f7e74a","affectsGlobalScope":true,"impliedFormat":1},{"version":"44fc16356b81c0463cc7d7b2b35dcf324d8144136f5bc5ce73ced86f2b3475b5","affectsGlobalScope":true,"impliedFormat":1},{"version":"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","impliedFormat":1},{"version":"6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","impliedFormat":1},{"version":"56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","impliedFormat":1},{"version":"139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","impliedFormat":1},{"version":"7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","impliedFormat":1},{"version":"2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927","impliedFormat":1},{"version":"071d4b4af5755e1a081aa3b785b5526d09276af5a50e4725dea26edd4e7deb31","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","impliedFormat":1},{"version":"9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","impliedFormat":1},{"version":"e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","impliedFormat":1},{"version":"b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0","impliedFormat":1},{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"7245af181218216bacb01fbdf51095617a51661f20d77178c69a377e16fb69ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","impliedFormat":1},{"version":"4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"8704423bf338bff381ebc951ed819935d0252d90cd6de7dffe5b0a5debb65d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c6929fd7cbf38499b6a600b91c3b603d1d78395046dc3499b2b92d01418b94b","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","impliedFormat":1},{"version":"a6ac6a18f0b3caac60dcbb6b56d52a27219fbf094ccf11f61abb260412a43458","impliedFormat":1},{"version":"97ab8ba0dac75c79957b1a98c9e88cfdb3f374ea0055a997dd0932e839b5ccdc","impliedFormat":1},{"version":"c71e8f05ccc74b7d7fb48a57d66182da949c10fb6d3c7e85ac621cd724c31ba4","impliedFormat":1},{"version":"20973b98a37a20b0eece4e1b5a28e4ecded38d7cf786f86d6ee2509fc53e80d7","signature":"3f95f54e062734aeedd545093e86306b5236cb1565fcd4d5fb8c399d56f20ee5","impliedFormat":99},{"version":"b7855dd2520c62a5eb53a61580805ad684e0e1d70d9da24d2677d4569c8eba17","signature":"2072ccb52e67b21530f948a77523dee1f5bcb7a163e0cf11a4b8c25762fd52be","impliedFormat":99},{"version":"383d1f24a71ce9bda3d4958d77a2a3f60e32ef23270a7a40cdf40902694945df","signature":"41a75509bb7c26c7bdfea57ba5c79bab98868e3087a398ce576c40d616146b88","impliedFormat":99},{"version":"57dc200de1add6e537188563b00126ba0a90731e31895c258e706ab9179e4080","signature":"42f071a1624eacdd2ccfa9f52f775a23dfbea86992b9a26ac2d68b033c85a0f4","impliedFormat":99},{"version":"db43731424654ca6985118bf123bdd98ea9b5af5d8149a90cf795977bf41b9a6","signature":"e35226acb4d207d378ff9506b1306145149afe1266b071d1c4daa98033c7a569","impliedFormat":99},{"version":"7405a0c5444d4b78f96ca1370bc0849b388fa993b99fe0ebed06890f84dce96a","signature":"efd0f4958c494e39e91a6291abbff412a2665e43b3138ecbf3611e85cd8a264d","impliedFormat":99},{"version":"99fc1ef9128cf10ef6a981da26bd6b0611a6e9ce8ea69c216c16275c443c3471","signature":"0004eba506fd56191438abf814ca92dfa9002b3cf886303ba2986610c2536654","impliedFormat":99},{"version":"b444812bdba44dc1a088db6465cdf32214395b22cc88f5afda2a04671d77f5cd","signature":"2022e4ffb9023903e433c54ddb2483b8b8a0f08f5c419a5b88b6ac0cd7f73f6e","impliedFormat":99},{"version":"c6283788e404ae9dde1b0ee827869444a1a48c155481f4397db7a23d0c307a59","signature":"4076452b75587cecd133306b7f7b60ce174eb52ffaea9812017482d3d2be5f18","impliedFormat":99},{"version":"dcaebce8ffe07432cb3b73f486bae96f994664dc472c0ee901f85df76bdaab01","signature":"101c3fc6a073ba2bddb3e2cc4f1e1e2cc4766e480f34fc11246b58e2064b07a2","impliedFormat":99},{"version":"5409de0378cba8c9199d4604a45c85275a4e7bb4dc15542d6cf9b11cdbe2874c","signature":"ec348a3f769a87d7a7adff70438221fa047ada00f8a936ba9982070a2d2591ca","impliedFormat":99},{"version":"563752f92a7f43abc0154cf9f6a0c74be3969a7c34d1a17f1516f5aedcbe9fc8","impliedFormat":1},{"version":"6d1a23e4c0f8428b1e00b77b3756503dac3a505a99f3055a29774cd7a81fdd5a","signature":"d303bc4f31c976ab221244ccd5a6b87fb8b17f56ef9780a8806e3f7aecf85eb4","impliedFormat":99},{"version":"93a98ba747d8637f2e65250461ff910355f755caf6a29744def94b1c0636843d","impliedFormat":99},{"version":"2aa80019d2cc87a412b5281df66b78e449df36b3ea125ec8b61034d5a4dc4ba1","signature":"7a27baf1053443cefab73b720106d1f9d730a50a37f82155d664145663040f20","impliedFormat":99},{"version":"868d28d0b7a26a4034f646f8e84fd61e42fd57a8143327349f120ad00edda173","signature":"fae2934c0aa77d24e9ed52baa42d42f311907eadcb851dfed170d6c66a696c1e","impliedFormat":99},{"version":"511b7e393e5663ef536a2afb21cc06f1bd52246fb3cca039a2b28266e180362a","impliedFormat":1},{"version":"4c27ad35b24e2ad7522ad1c9c536817226befc5effdb84e24e212a7bcd0c42b0","signature":"8787dbb8d72bda7af22694e7500a4624a09380bfb129f7a7d355e41e6a9cdb54","impliedFormat":99},{"version":"54b86dd54ba1ecacbee133b1dfa8f139701d39bd7c228128278c24132634e40d","signature":"92305fe8601ab8fa53048d34d89a1d5091aab06ba7069e6c1dea1ba65c7a0f00","impliedFormat":99},{"version":"eaab5cdf6b817ef9c850184bdd421daeb467af9cce24944697fbc99cf74ba35b","signature":"b2d8e4de85cf47c554885a03d78324bcc6be8485c5aca483b1d76989659765e3","impliedFormat":99},{"version":"37df1fe72ea5b6b7d3d8d86cd343d0e783ec61a2eaf3e4e15cbcdb3c79a92013","signature":"cd63403b9b180b7a62bcdabeb163f5fa26024139e84b7e6a8d505fc84a12c80f","impliedFormat":99},{"version":"771088279778ffb12156a8c9aa8c6cbf2e3ce17e70dc2e66a004dcb2c5912433","signature":"7f7b8ba164f62bf6eb9d82b360ffc2d52774ccdbdc0429a97383da398fdaaa8e","impliedFormat":99},{"version":"8eb142d9d0e29220c562296bdbed6b2c228df84589ce5d0c74ed7c333c1ba6cd","impliedFormat":1},{"version":"f9fcfb2b0f15edbbabee4b27f7ac241aba2d19a40e2114cdc03d6e269486813c","signature":"f73ca0f19bfb93582541e7452cfa6688123ca97ea5585334d0f7b12b504ff5b9","impliedFormat":99},{"version":"d9787fd820d40bf4b9e3b4e387136a30d2e27d7d22eaf0b0a3964d6f38e18f81","signature":"00402d87b779a21e5f780c8c4b35021e54118fca63f8b2ba108036ef6cf40fae","impliedFormat":99},{"version":"beda44592677696db4906027d7c74ab2f3a74d7eea9923fc0d44c6352b88e1dc","signature":"22030ac3a97726956b9f34be674b869204167c2e49bc9078b48f97e074036a82","impliedFormat":99},{"version":"122aa3e60f7ad1b470d5b02fb45893955bddac67f79b4a6a4ab0f05b8103484f","signature":"f1c55f9c94533ef546614eedb041912be0e86df25ff276dfbfa72a5d6d1e9ffb","impliedFormat":99},{"version":"6a400aa275fbe7de7ce057315060d1388fcf59dfc8d17c6c435458754164fffc","impliedFormat":99},{"version":"930378a857f9429ea1e0eec081ccbf02c97f6b34d7e02015d93f9cf53f074860","signature":"950e163ec71f6cbeba6a0bb17dbc2c90a838db7748fe9b602abdd5fddacd8ea3","impliedFormat":99},{"version":"0052de5b3c8ef75cc5bdb1260c0df7a4cb02801a1294769634bd5bc095dc0a18","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185","impliedFormat":1}],"root":[52,56,59,[153,163],165,167,168,[170,174],[176,182]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":100,"noErrorTruncation":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"target":99},"fileIdsList":[[62],[98],[99,104,133],[100,105,111,112,119,130,141],[100,101,111,119],[102,142],[103,104,112,120],[104,130,138],[105,107,111,119],[98,106],[107,108],[111],[109,111],[98,111],[111,112,113,130,141],[111,112,113,126,130,133],[96,99,146],[107,111,114,119,130,141],[111,112,114,115,119,130,138,141],[114,116,130,138,141],[62,63,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,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148],[111,117],[118,141,146],[107,111,119,130],[120],[121],[98,122],[119,120,123,140,146],[124],[125],[111,126,127],[126,128,142,144],[99,111,130,131,132,133],[99,130,132],[130,131],[133],[134],[98,130],[111,136,137],[136,137],[104,119,130,138],[139],[119,140],[99,114,125,141],[104,142],[130,143],[118,144],[145],[99,104,111,113,122,130,141,144,146],[130,147],[57],[53],[54],[111,130,149],[150],[112],[100],[100,130,149,150,151],[130,149],[73,77,141],[73,130,141],[68],[70,73,138,141],[119,138],[149],[68,149],[70,73,119,141],[65,66,69,72,99,111,130,141],[65,71],[69,73,99,133,141,149],[99,149],[89,99,149],[67,68,149],[73],[67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,85,86,87,88,90,91,92,93,94,95],[73,80,81],[71,73,81,82],[72],[65,68,73],[73,77,81,82],[77],[71,73,76,141],[65,70,71,73,77,80],[99,130],[68,73,89,99,146,149],[60,162],[52,56,59,60,100,112,121,155,162,170,175,176,177],[59,112,121,141,152,153,154,162,163,164,165,172],[52,59,60,112,114,162,165,166,168,171],[155,157,159,162],[52,55,56,58,172,173,174,178],[52,59,112,114,121,141,154,155,156,160,161],[52,56,60],[60,160,162,170],[112,121,162,175],[60,112,121,141,153,154],[152,154],[154,179],[60,61,152,153],[59,112],[167],[60,158,162],[59,112,121,155,169]],"referencedMap":[[62,1],[63,1],[98,2],[99,3],[100,4],[101,5],[102,6],[103,7],[104,8],[105,9],[106,10],[107,11],[108,11],[110,12],[109,13],[111,14],[112,15],[113,16],[97,17],[114,18],[115,19],[116,20],[149,21],[117,22],[118,23],[119,24],[120,25],[121,26],[122,27],[123,28],[124,29],[125,30],[126,31],[127,31],[128,32],[130,33],[132,34],[131,35],[133,36],[134,37],[135,38],[136,39],[137,40],[138,41],[139,42],[140,43],[141,44],[142,45],[143,46],[144,47],[145,48],[146,49],[147,50],[58,51],[57,52],[55,53],[54,52],[183,54],[151,55],[169,56],[166,57],[152,58],[164,59],[80,60],[87,61],[79,60],[94,62],[71,63],[70,64],[93,65],[88,66],[91,67],[73,68],[72,69],[68,70],[67,71],[90,72],[69,73],[74,74],[78,74],[96,75],[95,74],[82,76],[83,77],[85,78],[81,79],[84,80],[89,65],[76,81],[77,82],[86,83],[66,84],[92,85],[174,86],[178,87],[173,88],[172,89],[160,90],[179,91],[162,92],[167,25],[161,93],[171,94],[176,95],[156,96],[153,97],[181,98],[154,99],[155,100],[158,100],[168,101],[59,26],[159,102],[170,103]]},"version":"5.5.2"}
@@ -1,8 +1,7 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- export type Tranformer = {
1
+ export type Transformer = {
3
2
  fileRegex: RegExp;
4
- transformer: (fileContent: string) => Buffer | string;
3
+ transformer: (fileContent: string, path?: string) => Buffer | string;
5
4
  pathTransformer?: (destPath: string) => string;
6
5
  };
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;
6
+ export declare function copyFile(src: string, fileName: string, dest: string, transformers: Transformer[], omit?: RegExp[]): void;
7
+ export declare function copy(src: string, dest: string, transformers: Transformer[], omit?: RegExp[]): void;
package/bin/utils/copy.js CHANGED
@@ -1,29 +1,37 @@
1
1
  import fs from "fs";
2
2
  import { getPath } from "./getPath.js";
3
- import { transformers } from "./transformers.js";
4
- export function copyFile(src, fileName, dest, omit) {
5
- if (!omit?.find((x) => x.test(fileName))) {
6
- const srcPath = getPath(`${src}/${fileName}`);
3
+ export function copyFile(src, fileName, dest, transformers, omit) {
4
+ const srcPath = getPath(`${src}/${fileName}`);
5
+ if (!omit?.find((x) => x.test(srcPath))) {
7
6
  const destPath = getPath(`${dest}/${fileName}`);
8
7
  if (fs.lstatSync(srcPath).isDirectory()) {
9
- if (!fs.existsSync(destPath))
10
- fs.mkdirSync(destPath);
11
- copy(srcPath, destPath);
8
+ copy(srcPath, destPath, transformers, omit);
12
9
  }
13
10
  else {
14
- const fileTransformer = transformers?.find((x) => x.fileRegex.test(fileName));
15
- if (fileTransformer) {
16
- const srcFileContent = fs.readFileSync(srcPath, { encoding: "utf-8" });
17
- const finalDestPath = fileTransformer.pathTransformer?.(destPath) ?? destPath;
18
- const transformedFile = fileTransformer.transformer(srcFileContent);
19
- fs.writeFileSync(finalDestPath, transformedFile);
11
+ const fileTransformer = transformers?.filter((x) => x.fileRegex.test(fileName));
12
+ if (fileTransformer.length > 0) {
13
+ fileTransformer.forEach(async (x) => {
14
+ const srcFileContent = fs.readFileSync(srcPath, {
15
+ encoding: "utf-8",
16
+ });
17
+ const finalDestPath = x.pathTransformer?.(destPath) ?? destPath;
18
+ try {
19
+ const transformedFile = x.transformer(srcFileContent, srcPath);
20
+ fs.writeFileSync(finalDestPath, transformedFile);
21
+ }
22
+ catch { }
23
+ });
20
24
  }
21
25
  else
22
26
  fs.copyFileSync(srcPath, destPath, fs.constants.COPYFILE_FICLONE);
23
27
  }
24
28
  }
25
29
  }
26
- export function copy(src, dest, omit) {
30
+ export function copy(src, dest, transformers, omit) {
27
31
  const srcDir = fs.readdirSync(src);
28
- srcDir.forEach((fileName) => copyFile(src, fileName, dest, omit));
32
+ try {
33
+ fs.mkdirSync(dest);
34
+ }
35
+ catch { }
36
+ srcDir.forEach((fileName) => copyFile(src, fileName, dest, transformers, omit));
29
37
  }
@@ -0,0 +1 @@
1
+ export declare function globToRegex(glob: string): RegExp;
@@ -0,0 +1,37 @@
1
+ export function globToRegex(glob) {
2
+ const regexSpecialChars = [
3
+ ".",
4
+ "\\",
5
+ "+",
6
+ "*",
7
+ "?",
8
+ "|",
9
+ "(",
10
+ ")",
11
+ "[",
12
+ "]",
13
+ "{",
14
+ "}",
15
+ "^",
16
+ "$",
17
+ ];
18
+ return new RegExp("^" +
19
+ glob
20
+ .split("")
21
+ .map((char) => {
22
+ if (char === "*") {
23
+ return ".*";
24
+ }
25
+ else if (char === "?") {
26
+ return ".";
27
+ }
28
+ else if (regexSpecialChars.includes(char)) {
29
+ return "\\" + char;
30
+ }
31
+ else {
32
+ return char;
33
+ }
34
+ })
35
+ .join("") +
36
+ "$");
37
+ }
@@ -1,2 +1 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  export declare function pngToIco(files: Buffer[], iconSizes: number[]): Promise<Buffer>;
@@ -1,3 +1 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { type Loader } from "esbuild";
3
- export declare const serviceWorkerTransformer: (serviceWorkerCode: string, loader?: Loader) => string | Buffer;
1
+ export declare const serviceWorkerTransformer: (serviceWorkerCode: string) => string | Buffer;
@@ -1,7 +1,7 @@
1
1
  import { config } from "../config/config.js";
2
2
  import { getAllFiles } from "./getAllFiles.js";
3
3
  import { transformSync as esbuild } from "esbuild";
4
- export const serviceWorkerTransformer = (serviceWorkerCode, loader = "ts") => {
4
+ export const serviceWorkerTransformer = (serviceWorkerCode) => {
5
5
  const { sourcemap, keepNames, format, outdir, define, target } = config.esbuildOptions;
6
6
  try {
7
7
  const allFiles = getAllFiles(outdir, ".");
@@ -12,7 +12,7 @@ export const serviceWorkerTransformer = (serviceWorkerCode, loader = "ts") => {
12
12
  "michiProcess.env.CACHE_NAME": `"${new Date(new Date().toLocaleString("en-US", { timeZone: "Etc/GMT" })).getTime()}"`,
13
13
  ...define,
14
14
  },
15
- loader,
15
+ loader: "ts",
16
16
  logLevel: "error",
17
17
  format,
18
18
  target,
@@ -0,0 +1,3 @@
1
+ import { type Transformer } from "../utils/copy.js";
2
+ import watch from "node-watch";
3
+ export declare const syncDirs: (srcDir: string, outDir: string, transformers: Transformer[], omit?: RegExp[], onStartSync?: () => void, onEndSync?: Parameters<typeof watch.default>[2]) => void;
@@ -0,0 +1,26 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { copyFile } from "../utils/copy.js";
4
+ import watch from "node-watch";
5
+ import { getPath } from "../utils/getPath.js";
6
+ export const syncDirs = (srcDir, outDir, transformers, omit, onStartSync, onEndSync) => {
7
+ watch.default(srcDir, {
8
+ encoding: "utf-8",
9
+ persistent: true,
10
+ recursive: true,
11
+ }, (event, fileChangedPath) => {
12
+ onStartSync?.();
13
+ const fileSrcDir = path.dirname(fileChangedPath);
14
+ const fileName = path.basename(fileChangedPath);
15
+ const fileOutDir = fileSrcDir.replace(srcDir, outDir);
16
+ if (event === "remove")
17
+ transformers.forEach((x) => {
18
+ if (x.fileRegex.test(fileChangedPath)) {
19
+ fs.rmSync(getPath(`${fileOutDir}/${x.pathTransformer?.(fileName) ?? fileName}`), { force: true, recursive: true });
20
+ }
21
+ });
22
+ else
23
+ copyFile(fileSrcDir, fileName, fileOutDir, transformers, omit);
24
+ onEndSync?.(event, fileChangedPath);
25
+ });
26
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@michijs/dev-server",
3
3
  "license": "MIT",
4
- "version": "0.5.14",
4
+ "version": "0.5.15-beta.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/michijs/dev-server.git"
@@ -27,7 +27,7 @@
27
27
  "link": "bun run dist && bun link --force && tsc -w"
28
28
  },
29
29
  "devDependencies": {
30
- "@types/node": "20.12.7",
30
+ "@types/node": "20.14.8",
31
31
  "@types/yargs": "17.0.32"
32
32
  },
33
33
  "keywords": [
@@ -50,14 +50,14 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@types/web-app-manifest": "1.0.8",
53
- "esbuild": "0.20.2",
53
+ "esbuild": "0.21.5",
54
54
  "node-watch": "0.7.4",
55
55
  "open": "10.1.0",
56
- "puppeteer": "22.6.5",
57
- "sharp": "0.33.3",
56
+ "puppeteer": "22.12.0",
57
+ "sharp": "0.33.4",
58
58
  "yargs": "17.7.2"
59
59
  },
60
60
  "peerDependencies": {
61
- "typescript": "^5.0.4"
61
+ "typescript": "^5.5.2"
62
62
  }
63
63
  }
@@ -1,5 +0,0 @@
1
- import type { Tranformer } from "./copy.js";
2
- export declare const jsAndTsRegex: RegExp;
3
- export declare const notJsAndTsRegex: RegExp;
4
- export declare const jsonTransformer: Tranformer;
5
- export declare const transformers: Tranformer[];