task-script-support-cli 0.2.10 → 0.2.12

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.
@@ -0,0 +1,67 @@
1
+ ## task-runner
2
+
3
+ To get started, first run `npm install`, then:
4
+
5
+ ```
6
+ npm start -- --help
7
+ ```
8
+
9
+ ### Building the project
10
+
11
+ To build the project, run:
12
+
13
+ ```bash
14
+ npm run build
15
+ ```
16
+
17
+ or automatically run the build on file changes:
18
+
19
+ ```bash
20
+ npm run watch
21
+ ```
22
+
23
+ A build will compile the TypeScript code and output to a `dist` directory.
24
+
25
+ ### Linting
26
+
27
+ To lint the code, run:
28
+
29
+ ```bash
30
+ npm run lint
31
+ ```
32
+
33
+ ### Formatting
34
+
35
+ To format the code using Prettier, run:
36
+
37
+ ```bash
38
+ npm run format
39
+ ```
40
+
41
+ or automatically run formatting on file changes:
42
+
43
+ ```bash
44
+ npm run format-watch
45
+ ```
46
+
47
+ ### Clean
48
+
49
+ To clean up the project (delete dist folder):
50
+
51
+ ```bash
52
+ npm run clean
53
+ ```
54
+
55
+ ### Test
56
+
57
+ Run the tests:
58
+
59
+ ```
60
+ npm run test
61
+ ```
62
+
63
+ or automatically run them on file changes:
64
+
65
+ ```
66
+ npm run test-watch
67
+ ```
@@ -2838,9 +2838,9 @@
2838
2838
  }
2839
2839
  },
2840
2840
  "node_modules/task-script-support": {
2841
- "version": "2.3.0",
2842
- "resolved": "https://registry.npmjs.org/task-script-support/-/task-script-support-2.3.0.tgz",
2843
- "integrity": "sha512-6CpSaK6s4VIvT8UqrHLzhwlHxA/cGY475budPsWSbLLOXqLLyA7Slys1WsowtiumAjGYWz6LDC83O+LDrGkIzQ==",
2841
+ "version": "2.3.2",
2842
+ "resolved": "https://registry.npmjs.org/task-script-support/-/task-script-support-2.3.2.tgz",
2843
+ "integrity": "sha512-7q9xmr76iESQun1d/73TOnlacnRJTaV0D+XdcGcILT9AjkdCZXg8F45f6VbFJ9f26gBITe6+MLIe9mhJr2ooQw==",
2844
2844
  "license": "MIT",
2845
2845
  "dependencies": {
2846
2846
  "immutable": "^5.1.4",
@@ -12,8 +12,10 @@
12
12
  "format": "prettier --write ./",
13
13
  "format-check": "prettier --check .",
14
14
  "hooks-one-time-setup": "npx simple-git-hooks",
15
- "prettier-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}",
15
+ "format-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}",
16
16
  "build": "rm -rf ./dist && npx tsc && node dist/src/index.js -v",
17
+ "docker-build": "docker build -t local/task-runner:latest .",
18
+ "docker-run": "docker run --rm -it local/task-runner:latest",
17
19
  "test": "vitest run",
18
20
  "test-watch": "vitest"
19
21
  },
@@ -17,6 +17,14 @@ export class LogService {
17
17
  }
18
18
  }
19
19
 
20
+ flush(): Promise<void> {
21
+ return new Promise((res, rej) => {
22
+ this.logger.flush((err?: Error) => {
23
+ return err ? rej(err) : res();
24
+ });
25
+ });
26
+ }
27
+
20
28
  setPrefix(prefix: string) {
21
29
  if (!LogService.ParentInstance) {
22
30
  this.logger = this.pinoLogger.getLogger(prefix);
@@ -5,6 +5,12 @@ import pkgJson from "../../package.json";
5
5
  export class UtilService {
6
6
  static TITLEIZE_TEXT_BREAKPONT: RegExp = /[. _-]/g;
7
7
 
8
+ /**
9
+ * Convert a string to title case.
10
+ *
11
+ * @param s the string to titleize
12
+ * @returns the titleized string.
13
+ */
8
14
  static titleize = (s: string) =>
9
15
  s ? `${s[0]?.toUpperCase()}${s.slice(1, s.length)}` : s;
10
16
  titleize = (s: string) => UtilService.titleize(s);
@@ -17,6 +23,9 @@ export class UtilService {
17
23
  .map(UtilService.titleize)
18
24
  .join(" ");
19
25
 
26
+ /**
27
+ * Get App information.
28
+ */
20
29
  static getAppName = () => pkgJson.name;
21
30
  getAppName = () => pkgJson.name;
22
31
 
@@ -25,4 +34,44 @@ export class UtilService {
25
34
 
26
35
  static getAppDescription = () => pkgJson.description;
27
36
  getAppDescription = () => pkgJson.description;
37
+
38
+ /**
39
+ * Mask a secret or sensitive value.
40
+ *
41
+ * @param value the string value to mask
42
+ * @returns the masked string
43
+ */
44
+ static maskValue = (value: string) => {
45
+ const maskChar = "*";
46
+ let endReveal = 2;
47
+ const longLength = 64;
48
+ const midLength = 8;
49
+ const shortLength = 4;
50
+ const tooSmallLength = 2;
51
+
52
+ // mask the whole thing
53
+ if (!value || value.length <= tooSmallLength) {
54
+ return maskChar.repeat((value || "").length);
55
+ }
56
+
57
+ // mask all but last char
58
+ if (value.length <= shortLength) {
59
+ return `${maskChar.repeat(value.length - 1)}${value.slice(-1)}`;
60
+ }
61
+
62
+ // reveal less on shorter strings
63
+ if (value.length <= midLength) {
64
+ endReveal = 1;
65
+ }
66
+
67
+ // reveal more on longer strings
68
+ if (value.length >= longLength) {
69
+ endReveal = 3;
70
+ }
71
+
72
+ const end = value.length - endReveal;
73
+ const start = endReveal;
74
+ return `${value.slice(0, start)}${maskChar.repeat(end - start)}${value.slice(end)}`;
75
+ };
76
+ maskValue = (v: string) => UtilService.maskValue(v);
28
77
  }
@@ -2,6 +2,7 @@ import chalk from "chalk";
2
2
  import { AppTask } from "../wrappers/app-task";
3
3
  import { autoInjectable } from "tsyringe";
4
4
  import { EnvironmentConfigKeys } from "../types/state";
5
+ import { UtilService } from "../services/util-service";
5
6
 
6
7
  /**
7
8
  * Checks the environment configuration
@@ -10,26 +11,36 @@ import { EnvironmentConfigKeys } from "../types/state";
10
11
  export default class CheckEnv extends AppTask {
11
12
  loggerName = "Check Environment";
12
13
 
14
+ requiredEnv: string[] = [];
15
+ secretEnv: Set<string> = new Set([
16
+ // add keys that should be masked in log output here
17
+ ]);
18
+ optionalEnv = [
19
+ EnvironmentConfigKeys.NODE_ENV,
20
+ EnvironmentConfigKeys.PINO_LOG_TARGET,
21
+ EnvironmentConfigKeys.PINO_LOG_DIR_PATH,
22
+ EnvironmentConfigKeys.PINO_LOG_FILENAME,
23
+ EnvironmentConfigKeys.PINO_LOG_LEVEL,
24
+ ];
25
+
13
26
  async run() {
14
- this.logger.info(chalk.blueBright("Running Check Environment"));
27
+ this.logger.debug(chalk.blueBright("Running Check Environment"));
15
28
 
16
29
  const errorMessages: string[] = [];
17
- const requiredEnv: string[] = [];
18
- const optionalEnv = [
19
- EnvironmentConfigKeys.NODE_ENV,
20
- EnvironmentConfigKeys.PINO_LOG_TARGET,
21
- EnvironmentConfigKeys.PINO_LOG_DIR_PATH,
22
- EnvironmentConfigKeys.PINO_LOG_FILENAME,
23
- EnvironmentConfigKeys.PINO_LOG_LEVEL,
24
- ];
25
-
26
- [...optionalEnv, ...requiredEnv]
30
+
31
+ [...this.optionalEnv, ...this.requiredEnv]
27
32
  .filter((e) => !!process.env[e])
28
33
  .forEach((e) => {
29
- this.logger.info(`Read value for ${e}: ${process.env[e]}`);
34
+ let envVal = process.env[e] || "";
35
+ if (this.secretEnv.has(e)) {
36
+ envVal = UtilService.maskValue(envVal);
37
+ }
38
+ this.logger.debug(
39
+ `Read value for ${e}: ${chalk.magentaBright(envVal)}`,
40
+ );
30
41
  });
31
42
 
32
- requiredEnv
43
+ this.requiredEnv
33
44
  .filter((e) => !process.env[e])
34
45
  .forEach((e) =>
35
46
  errorMessages.push(`Missing required environment variable ${e}`),
@@ -35,6 +35,11 @@ export class AppTask extends Task<AppStateData, CLIArgs> {
35
35
  throw new Error(`run not implemented (${state.id})`);
36
36
  }
37
37
 
38
+ //@override
39
+ async postRun() {
40
+ await this.logger.flush();
41
+ }
42
+
38
43
  setData(data: Partial<AppStateData>) {
39
44
  this.state = this._commandService!.setData(this.state, data);
40
45
  return this.state;
@@ -0,0 +1,67 @@
1
+ ## task-runner
2
+
3
+ To get started, first run `npm install`, then:
4
+
5
+ ```
6
+ npm start -- --help
7
+ ```
8
+
9
+ ### Building the project
10
+
11
+ To build the project, run:
12
+
13
+ ```bash
14
+ npm run build
15
+ ```
16
+
17
+ or automatically run the build on file changes:
18
+
19
+ ```bash
20
+ npm run watch
21
+ ```
22
+
23
+ A build will compile the TypeScript code and output to a `dist` directory.
24
+
25
+ ### Linting
26
+
27
+ To lint the code, run:
28
+
29
+ ```bash
30
+ npm run lint
31
+ ```
32
+
33
+ ### Formatting
34
+
35
+ To format the code using Prettier, run:
36
+
37
+ ```bash
38
+ npm run format
39
+ ```
40
+
41
+ or automatically run formatting on file changes:
42
+
43
+ ```bash
44
+ npm run format-watch
45
+ ```
46
+
47
+ ### Clean
48
+
49
+ To clean up the project (delete dist folder):
50
+
51
+ ```bash
52
+ npm run clean
53
+ ```
54
+
55
+ ### Test
56
+
57
+ Run the tests:
58
+
59
+ ```
60
+ npm run test
61
+ ```
62
+
63
+ or automatically run them on file changes:
64
+
65
+ ```
66
+ npm run test-watch
67
+ ```
@@ -2838,9 +2838,9 @@
2838
2838
  }
2839
2839
  },
2840
2840
  "node_modules/task-script-support": {
2841
- "version": "2.3.0",
2842
- "resolved": "https://registry.npmjs.org/task-script-support/-/task-script-support-2.3.0.tgz",
2843
- "integrity": "sha512-6CpSaK6s4VIvT8UqrHLzhwlHxA/cGY475budPsWSbLLOXqLLyA7Slys1WsowtiumAjGYWz6LDC83O+LDrGkIzQ==",
2841
+ "version": "2.3.2",
2842
+ "resolved": "https://registry.npmjs.org/task-script-support/-/task-script-support-2.3.2.tgz",
2843
+ "integrity": "sha512-7q9xmr76iESQun1d/73TOnlacnRJTaV0D+XdcGcILT9AjkdCZXg8F45f6VbFJ9f26gBITe6+MLIe9mhJr2ooQw==",
2844
2844
  "license": "MIT",
2845
2845
  "dependencies": {
2846
2846
  "immutable": "^5.1.4",
@@ -12,8 +12,10 @@
12
12
  "format": "prettier --write ./",
13
13
  "format-check": "prettier --check .",
14
14
  "hooks-one-time-setup": "npx simple-git-hooks",
15
- "prettier-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}",
15
+ "format-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}",
16
16
  "build": "rm -rf ./dist && npx tsc && node dist/src/index.js -v",
17
+ "docker-build": "docker build -t local/task-runner:latest .",
18
+ "docker-run": "docker run --rm -it local/task-runner:latest",
17
19
  "test": "vitest run",
18
20
  "test-watch": "vitest"
19
21
  },
@@ -17,6 +17,14 @@ export class LogService {
17
17
  }
18
18
  }
19
19
 
20
+ flush(): Promise<void> {
21
+ return new Promise((res, rej) => {
22
+ this.logger.flush((err?: Error) => {
23
+ return err ? rej(err) : res();
24
+ });
25
+ });
26
+ }
27
+
20
28
  setPrefix(prefix: string) {
21
29
  if (!LogService.ParentInstance) {
22
30
  this.logger = this.pinoLogger.getLogger(prefix);
@@ -5,6 +5,12 @@ import pkgJson from "../../package.json";
5
5
  export class UtilService {
6
6
  static TITLEIZE_TEXT_BREAKPONT: RegExp = /[. _-]/g;
7
7
 
8
+ /**
9
+ * Convert a string to title case.
10
+ *
11
+ * @param s the string to titleize
12
+ * @returns the titleized string.
13
+ */
8
14
  static titleize = (s: string) =>
9
15
  s ? `${s[0]?.toUpperCase()}${s.slice(1, s.length)}` : s;
10
16
  titleize = (s: string) => UtilService.titleize(s);
@@ -17,6 +23,9 @@ export class UtilService {
17
23
  .map(UtilService.titleize)
18
24
  .join(" ");
19
25
 
26
+ /**
27
+ * Get App information.
28
+ */
20
29
  static getAppName = () => pkgJson.name;
21
30
  getAppName = () => pkgJson.name;
22
31
 
@@ -25,4 +34,44 @@ export class UtilService {
25
34
 
26
35
  static getAppDescription = () => pkgJson.description;
27
36
  getAppDescription = () => pkgJson.description;
37
+
38
+ /**
39
+ * Mask a secret or sensitive value.
40
+ *
41
+ * @param value the string value to mask
42
+ * @returns the masked string
43
+ */
44
+ static maskValue = (value: string) => {
45
+ const maskChar = "*";
46
+ let endReveal = 2;
47
+ const longLength = 64;
48
+ const midLength = 8;
49
+ const shortLength = 4;
50
+ const tooSmallLength = 2;
51
+
52
+ // mask the whole thing
53
+ if (!value || value.length <= tooSmallLength) {
54
+ return maskChar.repeat((value || "").length);
55
+ }
56
+
57
+ // mask all but last char
58
+ if (value.length <= shortLength) {
59
+ return `${maskChar.repeat(value.length - 1)}${value.slice(-1)}`;
60
+ }
61
+
62
+ // reveal less on shorter strings
63
+ if (value.length <= midLength) {
64
+ endReveal = 1;
65
+ }
66
+
67
+ // reveal more on longer strings
68
+ if (value.length >= longLength) {
69
+ endReveal = 3;
70
+ }
71
+
72
+ const end = value.length - endReveal;
73
+ const start = endReveal;
74
+ return `${value.slice(0, start)}${maskChar.repeat(end - start)}${value.slice(end)}`;
75
+ };
76
+ maskValue = (v: string) => UtilService.maskValue(v);
28
77
  }
@@ -2,6 +2,7 @@ import chalk from "chalk";
2
2
  import { AppTask } from "../wrappers/app-task";
3
3
  import { autoInjectable } from "tsyringe";
4
4
  import { EnvironmentConfigKeys } from "../types/state";
5
+ import { UtilService } from "../services/util-service";
5
6
 
6
7
  /**
7
8
  * Checks the environment configuration
@@ -10,26 +11,36 @@ import { EnvironmentConfigKeys } from "../types/state";
10
11
  export default class CheckEnv extends AppTask {
11
12
  loggerName = "Check Environment";
12
13
 
14
+ requiredEnv: string[] = [];
15
+ secretEnv: Set<string> = new Set([
16
+ // add keys that should be masked in log output here
17
+ ]);
18
+ optionalEnv = [
19
+ EnvironmentConfigKeys.NODE_ENV,
20
+ EnvironmentConfigKeys.PINO_LOG_TARGET,
21
+ EnvironmentConfigKeys.PINO_LOG_DIR_PATH,
22
+ EnvironmentConfigKeys.PINO_LOG_FILENAME,
23
+ EnvironmentConfigKeys.PINO_LOG_LEVEL,
24
+ ];
25
+
13
26
  async run() {
14
- this.logger.info(chalk.blueBright("Running Check Environment"));
27
+ this.logger.debug(chalk.blueBright("Running Check Environment"));
15
28
 
16
29
  const errorMessages: string[] = [];
17
- const requiredEnv: string[] = [];
18
- const optionalEnv = [
19
- EnvironmentConfigKeys.NODE_ENV,
20
- EnvironmentConfigKeys.PINO_LOG_TARGET,
21
- EnvironmentConfigKeys.PINO_LOG_DIR_PATH,
22
- EnvironmentConfigKeys.PINO_LOG_FILENAME,
23
- EnvironmentConfigKeys.PINO_LOG_LEVEL,
24
- ];
25
-
26
- [...optionalEnv, ...requiredEnv]
30
+
31
+ [...this.optionalEnv, ...this.requiredEnv]
27
32
  .filter((e) => !!process.env[e])
28
33
  .forEach((e) => {
29
- this.logger.info(`Read value for ${e}: ${process.env[e]}`);
34
+ let envVal = process.env[e] || "";
35
+ if (this.secretEnv.has(e)) {
36
+ envVal = UtilService.maskValue(envVal);
37
+ }
38
+ this.logger.debug(
39
+ `Read value for ${e}: ${chalk.magentaBright(envVal)}`,
40
+ );
30
41
  });
31
42
 
32
- requiredEnv
43
+ this.requiredEnv
33
44
  .filter((e) => !process.env[e])
34
45
  .forEach((e) =>
35
46
  errorMessages.push(`Missing required environment variable ${e}`),
@@ -35,6 +35,11 @@ export class AppTask extends Task<AppStateData, CLIArgs> {
35
35
  throw new Error(`run not implemented (${state.id})`);
36
36
  }
37
37
 
38
+ //@override
39
+ async postRun() {
40
+ await this.logger.flush();
41
+ }
42
+
38
43
  setData(data: Partial<AppStateData>) {
39
44
  this.state = this._commandService!.setData(this.state, data);
40
45
  return this.state;
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "task-script-support-cli",
3
- "version": "0.2.9",
3
+ "version": "0.2.12",
4
4
  "main": "index.js",
5
5
  "type": "commonjs",
6
6
  "preferGlobal": true,
@@ -19,6 +19,7 @@
19
19
  "hooks-one-time-setup": "npx simple-git-hooks",
20
20
  "prettier-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}",
21
21
  "build": "rm -rf ./dist && npx tsc && node dist/src/index.js -v && npm run cp-assets",
22
+ "prepublishOnly": "npm run build",
22
23
  "test": "vitest run",
23
24
  "test-watch": "vitest"
24
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"templater-service.d.ts","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,qBACa,eAAe;IA6BxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IA7BhB,OAAO,CAAC,UAAU,CAA0B;IAE5C,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,WAAW,CAAU;IAE7B,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,cAAc,CAWpB;IACF,OAAO,CAAC,WAAW,CAMjB;gBAGQ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU;IASf,YAAY,CAAC,UAAU,EAAE,MAAM;YAqB9B,uBAAuB;YAMvB,eAAe;YASf,SAAS;YAST,SAAS;YAWT,eAAe;YAOf,kBAAkB;YAOlB,gCAAgC;YAUhC,gBAAgB;YAOhB,iBAAiB;CAQhC"}
1
+ {"version":3,"file":"templater-service.d.ts","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,qBACa,eAAe;IA+BxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IA/BhB,OAAO,CAAC,UAAU,CAA0B;IAE5C,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,WAAW,CAAU;IAE7B,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,cAAc,CAYpB;IACF,OAAO,CAAC,WAAW,CAOjB;gBAGQ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU;IASf,YAAY,CAAC,UAAU,EAAE,MAAM;YAqB9B,uBAAuB;YAMvB,eAAe;YASf,SAAS;YAST,SAAS;YAWT,eAAe;YAOf,kBAAkB;YAOlB,gCAAgC;YAUhC,gBAAgB;YAOhB,iBAAiB;CAQhC"}
@@ -36,6 +36,7 @@ let TemplateService = class TemplateService {
36
36
  "task-runner",
37
37
  "install-link.sh",
38
38
  "Dockerfile",
39
+ "README.md",
39
40
  "eslint.config.ts",
40
41
  "vitest.config.ts",
41
42
  "package-lock.json",
@@ -47,6 +48,7 @@ let TemplateService = class TemplateService {
47
48
  "package.json",
48
49
  "package-lock.json",
49
50
  "install-link.sh",
51
+ "README.md",
50
52
  "Dockerfile",
51
53
  ];
52
54
  constructor(spawnService, logger) {
@@ -1 +1 @@
1
- {"version":3,"file":"templater-service.js","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templater-service.js","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "task-script-support-cli",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "main": "index.js",
5
5
  "type": "commonjs",
6
6
  "preferGlobal": true,
@@ -19,6 +19,7 @@
19
19
  "hooks-one-time-setup": "npx simple-git-hooks",
20
20
  "prettier-watch": "onchange \"**/*\" -- prettier --write --ignore-unknown {{changed}}",
21
21
  "build": "rm -rf ./dist && npx tsc && node dist/src/index.js -v && npm run cp-assets",
22
+ "prepublishOnly": "npm run build",
22
23
  "test": "vitest run",
23
24
  "test-watch": "vitest"
24
25
  },
@@ -24,6 +24,7 @@ export class TemplateService {
24
24
  "task-runner",
25
25
  "install-link.sh",
26
26
  "Dockerfile",
27
+ "README.md",
27
28
  "eslint.config.ts",
28
29
  "vitest.config.ts",
29
30
  "package-lock.json",
@@ -35,6 +36,7 @@ export class TemplateService {
35
36
  "package.json",
36
37
  "package-lock.json",
37
38
  "install-link.sh",
39
+ "README.md",
38
40
  "Dockerfile",
39
41
  ];
40
42