@certd/pipeline 1.21.2 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{d/access → access}/api.d.ts +2 -2
  3. package/dist/access/api.js +2 -0
  4. package/dist/{d/access → access}/decorator.d.ts +1 -1
  5. package/dist/access/decorator.js +34 -0
  6. package/dist/access/index.d.ts +3 -0
  7. package/dist/access/index.js +4 -0
  8. package/dist/{d/access → access}/registry.d.ts +1 -1
  9. package/dist/access/registry.js +4 -0
  10. package/dist/{d/context → context}/index.d.ts +1 -1
  11. package/dist/context/index.js +2 -0
  12. package/dist/{d/core → core}/context.d.ts +1 -1
  13. package/dist/core/context.js +66 -0
  14. package/dist/{d/core → core}/executor.d.ts +8 -8
  15. package/dist/core/executor.js +273 -0
  16. package/dist/{d/core → core}/file-store.d.ts +6 -1
  17. package/dist/core/file-store.js +41 -0
  18. package/dist/core/index.d.ts +5 -0
  19. package/dist/core/index.js +6 -0
  20. package/dist/{d/core → core}/run-history.d.ts +1 -1
  21. package/dist/core/run-history.js +143 -0
  22. package/dist/core/storage.js +120 -0
  23. package/dist/d.ts/fast-crud.js +2 -0
  24. package/dist/d.ts/index.js +3 -0
  25. package/dist/d.ts/pipeline.d.ts +123 -0
  26. package/dist/d.ts/pipeline.js +31 -0
  27. package/dist/decorator/common.js +12 -0
  28. package/dist/decorator/index.d.ts +2 -0
  29. package/dist/decorator/index.js +3 -0
  30. package/dist/decorator/utils.js +43 -0
  31. package/dist/dt/fast-crud.d.ts +107 -0
  32. package/dist/dt/fast-crud.js +2 -0
  33. package/dist/dt/index.d.ts +2 -0
  34. package/dist/dt/index.js +3 -0
  35. package/dist/dt/pipeline.js +31 -0
  36. package/dist/index.d.ts +11 -0
  37. package/dist/index.js +11 -0
  38. package/dist/{d/plugin → plugin}/api.d.ts +7 -6
  39. package/dist/plugin/api.js +54 -0
  40. package/dist/{d/plugin → plugin}/decorator.d.ts +1 -1
  41. package/dist/plugin/decorator.js +74 -0
  42. package/dist/plugin/index.d.ts +3 -0
  43. package/dist/plugin/index.js +4 -0
  44. package/dist/plugin/registry.d.ts +3 -0
  45. package/dist/plugin/registry.js +3 -0
  46. package/dist/{d/plugin → plugin}/test/echo-plugin.d.ts +1 -1
  47. package/dist/plugin/test/echo-plugin.js +37 -0
  48. package/dist/registry/index.d.ts +1 -0
  49. package/dist/registry/index.js +2 -0
  50. package/dist/registry/registry.js +46 -0
  51. package/dist/service/email.js +2 -0
  52. package/dist/service/index.d.ts +1 -0
  53. package/dist/service/index.js +2 -0
  54. package/dist/utils/index.d.ts +9 -0
  55. package/dist/utils/index.js +11 -0
  56. package/dist/utils/util.file.js +15 -0
  57. package/dist/utils/util.log.js +32 -0
  58. package/dist/utils/util.promise.d.ts +2 -0
  59. package/dist/utils/util.promise.js +26 -0
  60. package/dist/utils/util.request.js +56 -0
  61. package/dist/utils/util.shell.d.ts +23 -0
  62. package/dist/utils/util.shell.js +136 -0
  63. package/dist/utils/util.sleep.js +8 -0
  64. package/dist/utils/util.sp.d.ts +22 -0
  65. package/dist/utils/util.sp.js +91 -0
  66. package/fix-esm-import-paths.js +96 -0
  67. package/package.json +15 -12
  68. package/tsconfig.json +32 -14
  69. package/tsconfig.tsbuildinfo +1 -0
  70. package/dist/bundle.js +0 -23
  71. package/dist/d/access/index.d.ts +0 -3
  72. package/dist/d/core/index.d.ts +0 -5
  73. package/dist/d/decorator/index.d.ts +0 -2
  74. package/dist/d/index.d.ts +0 -11
  75. package/dist/d/plugin/index.d.ts +0 -3
  76. package/dist/d/plugin/registry.d.ts +0 -3
  77. package/dist/d/registry/index.d.ts +0 -1
  78. package/dist/d/service/index.d.ts +0 -1
  79. package/dist/d/utils/index.d.ts +0 -7
  80. package/dist/d/utils/util.promise.d.ts +0 -1
  81. package/rollup.config.js +0 -43
  82. package/vite.config.js +0 -59
  83. /package/dist/{d/core → core}/storage.d.ts +0 -0
  84. /package/dist/{d/d.ts → d.ts}/fast-crud.d.ts +0 -0
  85. /package/dist/{d/d.ts → d.ts}/index.d.ts +0 -0
  86. /package/dist/{d/decorator → decorator}/common.d.ts +0 -0
  87. /package/dist/{d/decorator → decorator}/utils.d.ts +0 -0
  88. /package/dist/{d/d.ts → dt}/pipeline.d.ts +0 -0
  89. /package/dist/{d/registry → registry}/registry.d.ts +0 -0
  90. /package/dist/{d/service → service}/email.d.ts +0 -0
  91. /package/dist/{d/utils → utils}/util.file.d.ts +0 -0
  92. /package/dist/{d/utils → utils}/util.log.d.ts +0 -0
  93. /package/dist/{d/utils → utils}/util.request.d.ts +0 -0
  94. /package/dist/{d/utils → utils}/util.sleep.d.ts +0 -0
@@ -0,0 +1,136 @@
1
+ //转换为import
2
+ import os from "os";
3
+ import childProcess from "child_process";
4
+ import fixPath from "fix-path";
5
+ import iconv from "iconv-lite";
6
+ var _execFile = childProcess.execFile;
7
+ import { logger } from "./util.log.js";
8
+ fixPath();
9
+ class SystemShell {
10
+ async exec(cmds, args = {}) {
11
+ throw new Error("You have to implement the method exec!");
12
+ }
13
+ }
14
+ class LinuxSystemShell extends SystemShell {
15
+ async exec(cmds, args = {}) {
16
+ if (typeof cmds === "string") {
17
+ cmds = [cmds];
18
+ }
19
+ for (const cmd of cmds) {
20
+ await _childExec(cmd, { shell: "/bin/bash" });
21
+ }
22
+ }
23
+ }
24
+ class DarwinSystemShell extends SystemShell {
25
+ async exec(cmds, args = {}) {
26
+ if (typeof cmds === "string") {
27
+ cmds = [cmds];
28
+ }
29
+ let ret;
30
+ for (const cmd of cmds) {
31
+ ret = await _childExec(cmd, args);
32
+ }
33
+ return ret;
34
+ }
35
+ }
36
+ class WindowsSystemShell extends SystemShell {
37
+ async exec(cmds, args = {}) {
38
+ if (typeof cmds === "string") {
39
+ cmds = [cmds];
40
+ }
41
+ let compose = 'echo "test" '; // 'chcp 65001 '
42
+ for (const cmd of cmds) {
43
+ compose += " && " + cmd;
44
+ }
45
+ // compose += '&& exit'
46
+ const ret = await childExec(compose, args);
47
+ // log.info('cmd complete:', compose)
48
+ return ret;
49
+ }
50
+ }
51
+ function _childExec(composeCmds, options = {}) {
52
+ return new Promise((resolve, reject) => {
53
+ logger.info("shell:", composeCmds);
54
+ childProcess.exec(composeCmds, options, function (error, stdout, stderr) {
55
+ if (error) {
56
+ logger.error("cmd 命令执行错误:", composeCmds, stderr);
57
+ reject(new Error(stderr));
58
+ }
59
+ else {
60
+ // log.info('cmd 命令完成:', stdout)
61
+ resolve(stdout);
62
+ }
63
+ // log.info('关闭 cmd')
64
+ // ps.kill('SIGINT')
65
+ });
66
+ });
67
+ }
68
+ function childExec(composeCmds, args = {}) {
69
+ return new Promise((resolve, reject) => {
70
+ const encoding = "cp936";
71
+ const binaryEncoding = "binary";
72
+ logger.info("shell:", composeCmds);
73
+ childProcess.exec(composeCmds, { encoding: binaryEncoding, ...args }, function (error, stdout, stderr) {
74
+ if (error) {
75
+ // console.log('------', decoder.decode(stderr))
76
+ const message = iconv.decode(Buffer.from(stderr, binaryEncoding), encoding);
77
+ logger.error("cmd 命令执行错误:", composeCmds, message);
78
+ reject(new Error(message));
79
+ }
80
+ else {
81
+ // log.info('cmd 命令完成:', stdout)
82
+ const message = iconv.decode(Buffer.from(stdout, binaryEncoding), encoding);
83
+ resolve(message);
84
+ }
85
+ // log.info('关闭 cmd')
86
+ // ps.kill('SIGINT')
87
+ });
88
+ });
89
+ }
90
+ function getSystemShell() {
91
+ switch (getSystemPlatform()) {
92
+ case "mac":
93
+ return new DarwinSystemShell();
94
+ case "linux":
95
+ return new LinuxSystemShell();
96
+ case "windows":
97
+ return new WindowsSystemShell();
98
+ default:
99
+ throw new Error(`UNKNOWN OS TYPE ${os.platform()}`);
100
+ }
101
+ }
102
+ function getSystemPlatform() {
103
+ switch (os.platform()) {
104
+ case "darwin":
105
+ return "mac";
106
+ case "linux":
107
+ return "linux";
108
+ case "win32":
109
+ return "windows";
110
+ default:
111
+ throw new Error(`UNKNOWN OS TYPE ${os.platform()}`);
112
+ }
113
+ }
114
+ async function execute(cmd, args) {
115
+ return await getSystemShell().exec(cmd, args);
116
+ }
117
+ async function execFile(file, args, options) {
118
+ return new Promise((resolve, reject) => {
119
+ _execFile(file, args, options, (err, stdout) => {
120
+ if (err) {
121
+ logger.error("文件执行出错:", file, err);
122
+ reject(err);
123
+ return;
124
+ }
125
+ logger.debug("执行成功:", stdout);
126
+ resolve(stdout);
127
+ });
128
+ });
129
+ }
130
+ export const cmd = {
131
+ getSystemShell,
132
+ getSystemPlatform,
133
+ execute,
134
+ execFile,
135
+ };
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zaGVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91dGlsLnNoZWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsSUFBTyxTQUFTLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxDQUFDO0FBQ1YsTUFBTSxXQUFXO0lBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUF1QixFQUFFLE9BQVksRUFBRTtRQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBRUQsTUFBTSxnQkFBaUIsU0FBUSxXQUFXO0lBQ3hDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBdUIsRUFBRSxPQUFZLEVBQUU7UUFDaEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDZjtRQUNELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3RCLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxpQkFBa0IsU0FBUSxXQUFXO0lBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBdUIsRUFBRSxPQUFZLEVBQUU7UUFDaEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDZjtR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
@@ -0,0 +1,8 @@
1
+ export default function (timeout) {
2
+ return new Promise((resolve) => {
3
+ setTimeout(() => {
4
+ resolve({});
5
+ }, timeout);
6
+ });
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zbGVlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91dGlsLnNsZWVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxPQUFPLFdBQVcsT0FBZTtJQUN0QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNkLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -0,0 +1,22 @@
1
+ import { ILogger } from "./util.log.js";
2
+ export type ExecOption = {
3
+ cmd: string | string[];
4
+ env: any;
5
+ logger?: ILogger;
6
+ options?: any;
7
+ };
8
+ declare function exec(opts: ExecOption): Promise<string>;
9
+ export type SpawnOption = {
10
+ cmd: string | string[];
11
+ onStdout?: (data: string) => void;
12
+ onStderr?: (data: string) => void;
13
+ env: any;
14
+ logger?: ILogger;
15
+ options?: any;
16
+ };
17
+ declare function spawn(opts: SpawnOption): Promise<string>;
18
+ export declare const sp: {
19
+ spawn: typeof spawn;
20
+ exec: typeof exec;
21
+ };
22
+ export {};
@@ -0,0 +1,91 @@
1
+ //转换为import
2
+ import childProcess from "child_process";
3
+ import { safePromise } from "./util.promise.js";
4
+ import { logger } from "./util.log.js";
5
+ async function exec(opts) {
6
+ let cmd = "";
7
+ const log = opts.logger || logger;
8
+ if (opts.cmd instanceof Array) {
9
+ for (const item of opts.cmd) {
10
+ if (cmd) {
11
+ cmd += " && " + item;
12
+ }
13
+ else {
14
+ cmd = item;
15
+ }
16
+ }
17
+ }
18
+ log.info(`执行命令: ${cmd}`);
19
+ return safePromise((resolve, reject) => {
20
+ childProcess.exec(cmd, {
21
+ env: {
22
+ ...process.env,
23
+ ...opts.env,
24
+ },
25
+ ...opts.options,
26
+ }, (error, stdout, stderr) => {
27
+ if (error) {
28
+ log.error(`exec error: ${error}`);
29
+ reject(error);
30
+ }
31
+ else {
32
+ const res = stdout.toString("utf-8");
33
+ log.info(`stdout: ${res}`);
34
+ resolve(res);
35
+ }
36
+ });
37
+ });
38
+ }
39
+ async function spawn(opts) {
40
+ let cmd = "";
41
+ const log = opts.logger || logger;
42
+ if (opts.cmd instanceof Array) {
43
+ for (const item of opts.cmd) {
44
+ if (cmd) {
45
+ cmd += " && " + item;
46
+ }
47
+ else {
48
+ cmd = item;
49
+ }
50
+ }
51
+ }
52
+ log.info(`执行命令: ${cmd}`);
53
+ let stdout = "";
54
+ let stderr = "";
55
+ return safePromise((resolve, reject) => {
56
+ const ls = childProcess.spawn(cmd, {
57
+ shell: process.platform == "win32",
58
+ env: {
59
+ ...process.env,
60
+ ...opts.env,
61
+ },
62
+ ...opts.options,
63
+ });
64
+ ls.stdout.on("data", (data) => {
65
+ log.info(`stdout: ${data}`);
66
+ stdout += data;
67
+ });
68
+ ls.stderr.on("data", (data) => {
69
+ log.error(`stderr: ${data}`);
70
+ stderr += data;
71
+ });
72
+ ls.on("error", (error) => {
73
+ log.error(`child process error: ${error}`);
74
+ reject(error);
75
+ });
76
+ ls.on("close", (code) => {
77
+ if (code !== 0) {
78
+ log.error(`child process exited with code ${code}`);
79
+ reject(new Error(stderr));
80
+ }
81
+ else {
82
+ resolve(stdout);
83
+ }
84
+ });
85
+ });
86
+ }
87
+ export const sp = {
88
+ spawn,
89
+ exec,
90
+ };
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91dGlsLnNwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxPQUFPLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBVyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTaEQsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFnQjtJQUNsQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztJQUNsQyxJQUFJLElBQUksQ0FBQyxHQUFHLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDOUIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixHQUFHLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztZQUN2QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxHQUFHLElBQUksQ0FBQztZQUNiLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLE9BQU8sV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQ2YsR0FBRyxFQUNIO1lBQ0UsR0FBRyxFQUFFO2dCQUNILEdBQUcsT0FBTyxDQUFDLEdBQUc7Z0JBQ2QsR0FBRyxJQUFJLENBQUMsR0FBRzthQUNaO1lBQ0QsR0FBRyxJQUFJLENBQUMsT0FBTztTQUNoQixFQUNELENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QixJQUFJLEtBQUssRUFBRSxDQUFDO2dC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
@@ -0,0 +1,96 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+
4
+ // https://gist.github.com/lovasoa/8691344
5
+ async function* walk(dir) {
6
+ for await (const d of await fs.promises.opendir(dir)) {
7
+ const entry = path.join(dir, d.name);
8
+ if (d.isDirectory()) {
9
+ yield* walk(entry);
10
+ } else if (d.isFile()) {
11
+ yield entry;
12
+ }
13
+ }
14
+ }
15
+
16
+ function resolveImportPath(sourceFile, importPath, options) {
17
+ const sourceFileAbs = path.resolve(process.cwd(), sourceFile);
18
+ const root = path.dirname(sourceFileAbs);
19
+ const { moduleFilter = defaultModuleFilter } = options;
20
+
21
+ if (moduleFilter(importPath)) {
22
+ const importPathAbs = path.resolve(root, importPath);
23
+ let possiblePath = [path.resolve(importPathAbs, "./index.ts"), path.resolve(importPathAbs, "./index.js"), importPathAbs + ".ts", importPathAbs + ".js"];
24
+
25
+ if (possiblePath.length) {
26
+ for (let i = 0; i < possiblePath.length; i++) {
27
+ let entry = possiblePath[i];
28
+ if (fs.existsSync(entry)) {
29
+ const resolved = path.relative(root, entry.replace(/\.ts$/, ".js"));
30
+
31
+ if (!resolved.startsWith(".")) {
32
+ return "./" + resolved;
33
+ }
34
+
35
+ return resolved;
36
+ }
37
+ }
38
+ }
39
+ }
40
+
41
+ return null;
42
+ }
43
+
44
+ function replace(filePath, outFilePath, options) {
45
+ const code = fs.readFileSync(filePath).toString();
46
+ const newCode = code.replace(/(import|export) (.+?) from ('[^\n']+'|"[^\n"]+");/gs, function (found, action, imported, from) {
47
+ const importPath = from.slice(1, -1);
48
+ let resolvedPath = resolveImportPath(filePath, importPath, options);
49
+
50
+ if (resolvedPath) {
51
+ resolvedPath = resolvedPath.replaceAll("\\", "/");
52
+ console.log("\t", importPath, resolvedPath);
53
+ return `${action} ${imported} from "${resolvedPath}";`;
54
+ }
55
+
56
+ return found;
57
+ });
58
+
59
+ if (code !== newCode) {
60
+ fs.writeFileSync(outFilePath, newCode);
61
+ }
62
+ }
63
+
64
+ // Then, use it with a simple async for loop
65
+ async function run(srcDir, options = defaultOptions) {
66
+ const { sourceFileFilter = defaultSourceFileFilter } = options;
67
+
68
+ for await (const entry of walk(srcDir)) {
69
+ if (sourceFileFilter(entry)) {
70
+ console.log(entry);
71
+ replace(entry, entry, options);
72
+ }
73
+ }
74
+ }
75
+
76
+ const defaultSourceFileFilter = function (sourceFilePath) {
77
+ return /\.(js|ts)$/.test(sourceFilePath) && !/node_modules/.test(sourceFilePath);
78
+ };
79
+
80
+ const defaultModuleFilter = function (importedModule) {
81
+ return !path.isAbsolute(importedModule) && !importedModule.startsWith("@") && !importedModule.endsWith(".js");
82
+ };
83
+
84
+ const defaultOptions = {
85
+ sourceFileFilter: defaultSourceFileFilter,
86
+ moduleFilter: defaultModuleFilter,
87
+ };
88
+
89
+ // Switch this to test on one file or directly run on a directory.
90
+ const DEBUG = false;
91
+
92
+ if (DEBUG) {
93
+ replace("./src/index.ts", "./out.ts", defaultOptions);
94
+ } else {
95
+ await run("./src/", defaultOptions);
96
+ }
package/package.json CHANGED
@@ -1,44 +1,46 @@
1
1
  {
2
2
  "name": "@certd/pipeline",
3
3
  "private": false,
4
- "version": "1.21.2",
5
- "main": "./dist/bundle.js",
6
- "module": "./dist/bundle.mjs",
7
- "types": "./dist/d/index.d.ts",
4
+ "version": "1.22.0",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
8
  "scripts": {
9
9
  "dev": "vite",
10
- "build": "rollup -c",
10
+ "build": "tsc --skipLibCheck",
11
+ "build3": "rollup -c",
11
12
  "build2": "vue-tsc --noEmit && vite build",
12
13
  "preview": "vite preview"
13
14
  },
14
15
  "dependencies": {
15
- "axios": "^1.4.0",
16
+ "@types/lodash-es": "^4.17.12",
17
+ "axios": "^1.7.2",
18
+ "fix-path": "^4.0.0",
19
+ "lodash-es": "^4.17.21",
16
20
  "node-forge": "^1.3.1",
17
21
  "nodemailer": "^6.9.3",
18
22
  "qs": "^6.11.2"
19
23
  },
20
24
  "devDependencies": {
21
- "@certd/acme-client": "^1.21.2",
22
25
  "@rollup/plugin-commonjs": "^23.0.4",
23
26
  "@rollup/plugin-json": "^6.0.0",
24
27
  "@rollup/plugin-node-resolve": "^15.0.1",
25
28
  "@rollup/plugin-terser": "^0.4.3",
26
29
  "@rollup/plugin-typescript": "^11.0.0",
27
- "@types/chai": "^4.3.5",
28
- "@types/lodash": "^4.14.194",
30
+ "@types/chai": "^4.3.10",
29
31
  "@types/mocha": "^10.0.1",
30
32
  "@types/node-forge": "^1.3.2",
31
33
  "@types/uuid": "^9.0.2",
32
34
  "@typescript-eslint/eslint-plugin": "^5.59.7",
33
35
  "@typescript-eslint/parser": "^5.59.7",
34
- "chai": "^4.3.7",
36
+ "chai": "4.3.10",
35
37
  "dayjs": "^1.11.7",
36
38
  "eslint": "^8.41.0",
37
39
  "eslint-config-prettier": "^8.8.0",
38
40
  "eslint-plugin-import": "^2.27.5",
39
41
  "eslint-plugin-node": "^11.1.0",
40
42
  "eslint-plugin-prettier": "^4.2.1",
41
- "lodash": "^4.17.21",
43
+ "iconv-lite": "^0.6.3",
42
44
  "log4js": "^6.9.1",
43
45
  "mocha": "^10.2.0",
44
46
  "prettier": "^2.8.8",
@@ -47,10 +49,11 @@
47
49
  "rollup-plugin-typescript2": "^0.34.1",
48
50
  "rollup-plugin-visualizer": "^5.8.2",
49
51
  "ts-node": "^10.9.1",
52
+ "tsc-esm-fix": "^3.0.0",
50
53
  "tslib": "^2.5.2",
51
54
  "typescript": "^5.0.4",
52
55
  "vite": "^4.3.8",
53
56
  "vue-tsc": "^1.6.5"
54
57
  },
55
- "gitHead": "031df8fc35f60650d509b448efe1124e06ac7553"
58
+ "gitHead": "47fe3d5826661f678d081ab53e67c847a3239d88"
56
59
  }
package/tsconfig.json CHANGED
@@ -1,23 +1,41 @@
1
1
  {
2
+ "compileOnSave": true,
2
3
  "compilerOptions": {
3
- "importHelpers": false,
4
4
  "target": "ESNext",
5
- "useDefineForClassFields": true,
6
5
  "module": "ESNext",
7
- "moduleResolution": "Node",
6
+ "moduleResolution": "node",
7
+ "esModuleInterop": true,
8
+ "experimentalDecorators": true,
9
+ "emitDecoratorMetadata": true,
10
+ "inlineSourceMap":true,
11
+ "noImplicitThis": true,
12
+ "noUnusedLocals": true,
13
+ "stripInternal": true,
14
+ "skipLibCheck": true,
15
+ "pretty": true,
16
+ "declaration": true,
17
+ "forceConsistentCasingInFileNames": true,
18
+ "typeRoots": [ "./typings", "./node_modules/@types"],
19
+ "outDir": "dist",
20
+ "rootDir": "src",
21
+ "composite": true,
22
+ "useDefineForClassFields": true,
8
23
  "strict": true,
9
- "jsx": "preserve",
10
- "sourceMap": true,
24
+ // "sourceMap": true,
11
25
  "resolveJsonModule": true,
12
- "isolatedModules": true,
13
- "esModuleInterop": true,
26
+ "isolatedModules": false,
14
27
  "lib": ["ESNext", "DOM"],
15
- "skipLibCheck": true,
16
- "experimentalDecorators": true,
17
- "paths": {
18
- "tslib" : ["./node_modules/tslib/tslib.d.ts"]
19
- }
20
28
  },
21
-
22
- "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue","test/**/*.ts","rollup.config.ts"],
29
+ "include": [
30
+ "src/**/*.ts",
31
+ "src/**/*.d.ts",
32
+ "src/**/*.json"
33
+ ],
34
+ "exclude": [
35
+ "*.js",
36
+ "*.ts",
37
+ "dist",
38
+ "node_modules",
39
+ "test"
40
+ ],
23
41
  }