@actsecurity/cli 0.2.66

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 (117) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.md +143 -0
  3. package/dist/cjs/arguments/argument.d.ts +63 -0
  4. package/dist/cjs/arguments/argument.d.ts.map +1 -0
  5. package/dist/cjs/arguments/argument.js +3 -0
  6. package/dist/cjs/arguments/argument.js.map +1 -0
  7. package/dist/cjs/arguments/arrayValueArgument.d.ts +17 -0
  8. package/dist/cjs/arguments/arrayValueArgument.d.ts.map +1 -0
  9. package/dist/cjs/arguments/arrayValueArgument.js +38 -0
  10. package/dist/cjs/arguments/arrayValueArgument.js.map +1 -0
  11. package/dist/cjs/arguments/booleanArgument.d.ts +11 -0
  12. package/dist/cjs/arguments/booleanArgument.d.ts.map +1 -0
  13. package/dist/cjs/arguments/booleanArgument.js +25 -0
  14. package/dist/cjs/arguments/booleanArgument.js.map +1 -0
  15. package/dist/cjs/arguments/enumArgument.d.ts +20 -0
  16. package/dist/cjs/arguments/enumArgument.d.ts.map +1 -0
  17. package/dist/cjs/arguments/enumArgument.js +35 -0
  18. package/dist/cjs/arguments/enumArgument.js.map +1 -0
  19. package/dist/cjs/arguments/enumArrayArgument.d.ts +20 -0
  20. package/dist/cjs/arguments/enumArrayArgument.d.ts.map +1 -0
  21. package/dist/cjs/arguments/enumArrayArgument.js +43 -0
  22. package/dist/cjs/arguments/enumArrayArgument.js.map +1 -0
  23. package/dist/cjs/arguments/mapArgument.d.ts +20 -0
  24. package/dist/cjs/arguments/mapArgument.d.ts.map +1 -0
  25. package/dist/cjs/arguments/mapArgument.js +35 -0
  26. package/dist/cjs/arguments/mapArgument.js.map +1 -0
  27. package/dist/cjs/arguments/numberArguments.d.ts +17 -0
  28. package/dist/cjs/arguments/numberArguments.d.ts.map +1 -0
  29. package/dist/cjs/arguments/numberArguments.js +15 -0
  30. package/dist/cjs/arguments/numberArguments.js.map +1 -0
  31. package/dist/cjs/arguments/singleValueArgument.d.ts +17 -0
  32. package/dist/cjs/arguments/singleValueArgument.d.ts.map +1 -0
  33. package/dist/cjs/arguments/singleValueArgument.js +35 -0
  34. package/dist/cjs/arguments/singleValueArgument.js.map +1 -0
  35. package/dist/cjs/arguments/stringArguments.d.ts +17 -0
  36. package/dist/cjs/arguments/stringArguments.d.ts.map +1 -0
  37. package/dist/cjs/arguments/stringArguments.js +14 -0
  38. package/dist/cjs/arguments/stringArguments.js.map +1 -0
  39. package/dist/cjs/cli.d.ts +131 -0
  40. package/dist/cjs/cli.d.ts.map +1 -0
  41. package/dist/cjs/cli.js +499 -0
  42. package/dist/cjs/cli.js.map +1 -0
  43. package/dist/cjs/index.d.ts +13 -0
  44. package/dist/cjs/index.d.ts.map +1 -0
  45. package/dist/cjs/index.js +28 -0
  46. package/dist/cjs/index.js.map +1 -0
  47. package/dist/cjs/package.json +3 -0
  48. package/dist/cjs/readRelative.d.ts +35 -0
  49. package/dist/cjs/readRelative.d.ts.map +1 -0
  50. package/dist/cjs/readRelative.js +81 -0
  51. package/dist/cjs/readRelative.js.map +1 -0
  52. package/dist/cjs/stdin.d.ts +7 -0
  53. package/dist/cjs/stdin.d.ts.map +1 -0
  54. package/dist/cjs/stdin.js +38 -0
  55. package/dist/cjs/stdin.js.map +1 -0
  56. package/dist/cjs/utils.d.ts +14 -0
  57. package/dist/cjs/utils.d.ts.map +1 -0
  58. package/dist/cjs/utils.js +21 -0
  59. package/dist/cjs/utils.js.map +1 -0
  60. package/dist/esm/arguments/argument.d.ts +63 -0
  61. package/dist/esm/arguments/argument.d.ts.map +1 -0
  62. package/dist/esm/arguments/argument.js +2 -0
  63. package/dist/esm/arguments/argument.js.map +1 -0
  64. package/dist/esm/arguments/arrayValueArgument.d.ts +17 -0
  65. package/dist/esm/arguments/arrayValueArgument.d.ts.map +1 -0
  66. package/dist/esm/arguments/arrayValueArgument.js +36 -0
  67. package/dist/esm/arguments/arrayValueArgument.js.map +1 -0
  68. package/dist/esm/arguments/booleanArgument.d.ts +11 -0
  69. package/dist/esm/arguments/booleanArgument.d.ts.map +1 -0
  70. package/dist/esm/arguments/booleanArgument.js +23 -0
  71. package/dist/esm/arguments/booleanArgument.js.map +1 -0
  72. package/dist/esm/arguments/enumArgument.d.ts +20 -0
  73. package/dist/esm/arguments/enumArgument.d.ts.map +1 -0
  74. package/dist/esm/arguments/enumArgument.js +34 -0
  75. package/dist/esm/arguments/enumArgument.js.map +1 -0
  76. package/dist/esm/arguments/enumArrayArgument.d.ts +20 -0
  77. package/dist/esm/arguments/enumArrayArgument.d.ts.map +1 -0
  78. package/dist/esm/arguments/enumArrayArgument.js +42 -0
  79. package/dist/esm/arguments/enumArrayArgument.js.map +1 -0
  80. package/dist/esm/arguments/mapArgument.d.ts +20 -0
  81. package/dist/esm/arguments/mapArgument.d.ts.map +1 -0
  82. package/dist/esm/arguments/mapArgument.js +33 -0
  83. package/dist/esm/arguments/mapArgument.js.map +1 -0
  84. package/dist/esm/arguments/numberArguments.d.ts +17 -0
  85. package/dist/esm/arguments/numberArguments.d.ts.map +1 -0
  86. package/dist/esm/arguments/numberArguments.js +13 -0
  87. package/dist/esm/arguments/numberArguments.js.map +1 -0
  88. package/dist/esm/arguments/singleValueArgument.d.ts +17 -0
  89. package/dist/esm/arguments/singleValueArgument.d.ts.map +1 -0
  90. package/dist/esm/arguments/singleValueArgument.js +33 -0
  91. package/dist/esm/arguments/singleValueArgument.js.map +1 -0
  92. package/dist/esm/arguments/stringArguments.d.ts +17 -0
  93. package/dist/esm/arguments/stringArguments.d.ts.map +1 -0
  94. package/dist/esm/arguments/stringArguments.js +11 -0
  95. package/dist/esm/arguments/stringArguments.js.map +1 -0
  96. package/dist/esm/cli.d.ts +131 -0
  97. package/dist/esm/cli.d.ts.map +1 -0
  98. package/dist/esm/cli.js +494 -0
  99. package/dist/esm/cli.js.map +1 -0
  100. package/dist/esm/index.d.ts +13 -0
  101. package/dist/esm/index.d.ts.map +1 -0
  102. package/dist/esm/index.js +13 -0
  103. package/dist/esm/index.js.map +1 -0
  104. package/dist/esm/package.json +3 -0
  105. package/dist/esm/readRelative.d.ts +35 -0
  106. package/dist/esm/readRelative.d.ts.map +1 -0
  107. package/dist/esm/readRelative.js +74 -0
  108. package/dist/esm/readRelative.js.map +1 -0
  109. package/dist/esm/stdin.d.ts +7 -0
  110. package/dist/esm/stdin.d.ts.map +1 -0
  111. package/dist/esm/stdin.js +35 -0
  112. package/dist/esm/stdin.js.map +1 -0
  113. package/dist/esm/utils.d.ts +14 -0
  114. package/dist/esm/utils.d.ts.map +1 -0
  115. package/dist/esm/utils.js +18 -0
  116. package/dist/esm/utils.js.map +1 -0
  117. package/package.json +114 -0
@@ -0,0 +1,17 @@
1
+ import { type Argument, type PerArgumentArgs, type ValidatedValues } from './argument.js';
2
+ type SingleValueValidator<ValueType> = (rawValue: string) => Promise<ValidatedValues<ValueType>> | ValidatedValues<ValueType>;
3
+ type ArgumentWithDefault<ValueType> = {
4
+ defaultValue: ValueType;
5
+ } & PerArgumentArgs;
6
+ type ArgumentWithoutDefault<ValueType> = {
7
+ defaultValue?: undefined;
8
+ } & PerArgumentArgs;
9
+ /**
10
+ * Creates a single value argument factory for a specific type
11
+ */
12
+ export declare function singleValueArgument<ValueType>(validator: SingleValueValidator<ValueType>, descriptionSuffix?: string): {
13
+ (options: ArgumentWithDefault<ValueType>): Argument<ValueType>;
14
+ (options: ArgumentWithoutDefault<ValueType>): Argument<ValueType | undefined>;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=singleValueArgument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleValueArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/singleValueArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAEzF,KAAK,oBAAoB,CAAC,SAAS,IAAI,CACrC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAErE,KAAK,mBAAmB,CAAC,SAAS,IAAI;IAAE,YAAY,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,CAAA;AACnF,KAAK,sBAAsB,CAAC,SAAS,IAAI;IAAE,YAAY,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,CAAA;AAKvF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAC3C,SAAS,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAC1C,iBAAiB,GAAE,MAAW;cAEG,mBAAmB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;cAE1E,sBAAsB,CAAC,SAAS,CAAC,GACzC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;EAuCnC"}
@@ -0,0 +1,33 @@
1
+ import {} from './argument.js';
2
+ /**
3
+ * Creates a single value argument factory for a specific type
4
+ */
5
+ export function singleValueArgument(validator, descriptionSuffix = '') {
6
+ function createArgument(options) {
7
+ return {
8
+ description: options.description + descriptionSuffix,
9
+ validateValues: async (currentValue, values, isCurrentlyDefaulted) => {
10
+ if (currentValue !== undefined && currentValue != options.defaultValue) {
11
+ return {
12
+ valid: false,
13
+ message: 'expects a single value but was set multiple times'
14
+ };
15
+ }
16
+ if (values.length == 0) {
17
+ return { valid: false, message: 'a value is required' };
18
+ }
19
+ if (values.length > 1) {
20
+ return {
21
+ valid: false,
22
+ message: 'expects a single value but received ' + values.join(', ')
23
+ };
24
+ }
25
+ return validator(values[0]);
26
+ },
27
+ reduceValues: async (current, newValue, isCurrentlyDefaulted) => newValue,
28
+ defaultValue: options.defaultValue
29
+ };
30
+ }
31
+ return createArgument;
32
+ }
33
+ //# sourceMappingURL=singleValueArgument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleValueArgument.js","sourceRoot":"","sources":["../../../src/arguments/singleValueArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,MAAM,eAAe,CAAA;AAYzF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAA0C,EAC1C,oBAA4B,EAAE;IAM9B,SAAS,cAAc,CACrB,OAA+C;QAE/C,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,iBAAiB;YACpD,cAAc,EAAE,KAAK,EACnB,YAAmC,EACnC,MAAgB,EAChB,oBAA6B,EACQ,EAAE;gBACvC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBACvE,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,mDAAmD;qBAC7D,CAAA;gBACH,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;gBACzD,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,sCAAsC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBACpE,CAAA;gBACH,CAAC;gBAED,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,CAAC;YACD,YAAY,EAAE,KAAK,EACjB,OAA8B,EAC9B,QAAmB,EACnB,oBAA6B,EAC7B,EAAE,CAAC,QAAQ;YACb,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const stringArgument: {
2
+ (options: {
3
+ defaultValue: string;
4
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string>;
5
+ (options: {
6
+ defaultValue?: undefined;
7
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string | undefined>;
8
+ };
9
+ export declare const stringArrayArgument: {
10
+ (options: {
11
+ defaultValue: string[];
12
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string[]>;
13
+ (options: {
14
+ defaultValue?: undefined;
15
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string[] | undefined>;
16
+ };
17
+ //# sourceMappingURL=stringArguments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringArguments.d.ts","sourceRoot":"","sources":["../../../src/arguments/stringArguments.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;;CAM1B,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;CAM/B,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { arrayValueArgument } from './arrayValueArgument.js';
2
+ import { singleValueArgument } from './singleValueArgument.js';
3
+ export const stringArgument = singleValueArgument((rawValue) => ({
4
+ valid: true,
5
+ value: rawValue
6
+ }), '. One string required.');
7
+ export const stringArrayArgument = arrayValueArgument((rawValue) => ({
8
+ valid: true,
9
+ value: rawValue
10
+ }), '. One or more strings required.');
11
+ //# sourceMappingURL=stringArguments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringArguments.js","sourceRoot":"","sources":["../../../src/arguments/stringArguments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACb,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,QAAQ;CAChB,CAAC,EACF,wBAAwB,CACzB,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CACnD,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACb,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,QAAQ;CAChB,CAAC,EACF,iCAAiC,CAClC,CAAA"}
@@ -0,0 +1,131 @@
1
+ import { type Argument } from './arguments/argument.js';
2
+ type ParsedArguments<T extends Record<string, Argument<any>>> = {
3
+ [K in keyof T as K]: T[K] extends Argument<infer V> ? V : never;
4
+ };
5
+ /**
6
+ * A subcommand that can be used in the CLI.
7
+ */
8
+ export type Subcommand = {
9
+ description: string;
10
+ arguments: Record<string, Argument<any>>;
11
+ };
12
+ /**
13
+ * A map of CLI argument keys to their configuration.
14
+ */
15
+ export type Config<T extends Record<string, Argument<any>>> = T;
16
+ interface ConsoleLogger {
17
+ log: (...args: any[]) => void;
18
+ }
19
+ /**
20
+ * Additional arguments that can be used to configure the CLI parser.
21
+ */
22
+ export interface AdditionalCliOptions {
23
+ /**
24
+ * The version of the CLI command. If provided, the CLI provides a --version flag that prints the version and exits.
25
+ *
26
+ * If a string is provided, it is printed as-is.
27
+ * If an object it can have the following properties:
28
+ * - currentVersion: the current version of the CLI. This can be a string or a function that returns a Promise<string> or string.
29
+ * - checkForUpdates: Can be:
30
+ * - a string name of the npm package to check for updates
31
+ * - a function that returns a Promise<string | null> that returns the latest version or null if no update is available.
32
+ * - updateMessage: a function that takes the current version and latest version and returns a string message to display when an update is available.
33
+ */
34
+ version?: string | {
35
+ currentVersion: string | (() => Promise<string> | string);
36
+ checkForUpdates?: string | (() => Promise<string | null>);
37
+ updateMessage?: (current: string, latest: string) => string;
38
+ };
39
+ /**
40
+ * The argument string from the CLI. If not provided, the process.argv.slice(2) is used.
41
+ */
42
+ args?: string[];
43
+ /**
44
+ * The environment variables to use for parsing. If not provided, process.env is used.
45
+ */
46
+ env?: Record<string, string>;
47
+ /**
48
+ * The prefix to use for environment variables. If provided, the CLI will look for environment variables with the prefix followed by an underscore.
49
+ */
50
+ envPrefix?: string;
51
+ /**
52
+ * The name of the operands to display in the help message. Defaults to "operands".
53
+ */
54
+ operandsName?: string;
55
+ /**
56
+ * Whether a subcommand is required. If true, the CLI will exit with an error if no subcommand is provided.
57
+ */
58
+ requireSubcommand?: boolean;
59
+ /**
60
+ * If there are zero arguments, show the help message. Defaults to false.
61
+ */
62
+ showHelpIfNoArgs?: boolean;
63
+ /**
64
+ * Expect operands. Whether the app expects operands. Defaults to true.
65
+ *
66
+ * Changes the help message to include operands.
67
+ */
68
+ expectOperands?: boolean;
69
+ /**
70
+ * Allow operands from standard input. If true, the help will include a note about reading operands from standard input.
71
+ *
72
+ * Defaults to false
73
+ */
74
+ allowOperandsFromStdin?: boolean;
75
+ /**
76
+ * A logger to use for printing help messages. If not provided, console.log is used.
77
+ */
78
+ consoleLogger?: ConsoleLogger;
79
+ }
80
+ type OperandsType<A extends AdditionalCliOptions> = A extends {
81
+ expectOperands: false;
82
+ } ? never : string[];
83
+ export type SelectedSubcommandWithArgs<C extends Record<string, Subcommand>, O extends Record<string, Argument<any>>, A extends AdditionalCliOptions> = keyof C extends never ? {
84
+ subcommand: never;
85
+ args: ParsedArguments<O>;
86
+ operands: OperandsType<A>;
87
+ anyValues: boolean;
88
+ printHelp: () => void;
89
+ } : A extends {
90
+ requireSubcommand: true;
91
+ } ? {
92
+ [K in keyof C]: {
93
+ subcommand: K;
94
+ args: ParsedArguments<C[K]['arguments']> & ParsedArguments<O>;
95
+ operands: OperandsType<A>;
96
+ anyValues: boolean;
97
+ printHelp: () => void;
98
+ };
99
+ }[keyof C] : {
100
+ subcommand: undefined;
101
+ args: ParsedArguments<O>;
102
+ operands: OperandsType<A>;
103
+ anyValues: boolean;
104
+ printHelp: () => void;
105
+ } | {
106
+ [K in keyof C]: {
107
+ subcommand: K;
108
+ args: ParsedArguments<C[K]['arguments']> & ParsedArguments<O>;
109
+ operands: OperandsType<A>;
110
+ anyValues: boolean;
111
+ printHelp: () => void;
112
+ };
113
+ }[keyof C];
114
+ type Only<A, B> = {
115
+ [K in keyof A]: K extends keyof B ? A[K] : never;
116
+ } & Partial<B>;
117
+ /**
118
+ * Parse CLI Arguments and return the parsed typesafe results.
119
+ *
120
+ * @param command the name of the command arguments are being parsed for.
121
+ * @param subcommands the list of subcommands that can be used, if any.
122
+ * @param cliArgs the configuration options for the CLI command.
123
+ * @param additionalOptions additional arguments to be used for parsing and displaying help.
124
+ * @returns the parsed arguments, operands, and subcommand if applicable.
125
+ */
126
+ export declare function parseCliArguments<const O extends Record<string, Argument<any>>, const C extends Record<string, Subcommand>, const A extends AdditionalCliOptions>(command: string, subcommands: C, cliArgs: Config<O>, additionalOptions?: Only<A, AdditionalCliOptions>): Promise<SelectedSubcommandWithArgs<C, O, A>>;
127
+ export declare function camelToCapitalSnakeCase(input: string): string;
128
+ export declare function camelToKebabCase(input: string): string;
129
+ export declare function printHelpContents<O extends Record<string, Argument<any>>, C extends Record<string, Subcommand>>(command: string, subcommands: C, cliOptions: O, additionalArgs?: AdditionalCliOptions, selectedSubcommand?: string | undefined): void;
130
+ export {};
131
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}