ts-repo-utils 7.7.3 → 7.8.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.
- package/README.md +197 -144
- package/dist/cmd/assert-repo-is-clean.mjs +1 -1
- package/dist/cmd/assert-repo-is-clean.mjs.map +1 -1
- package/dist/cmd/check-should-run-type-checks.mjs +1 -1
- package/dist/cmd/check-should-run-type-checks.mjs.map +1 -1
- package/dist/cmd/format-diff-from.mjs +1 -1
- package/dist/cmd/format-diff-from.mjs.map +1 -1
- package/dist/cmd/format-uncommitted.mjs +1 -1
- package/dist/cmd/format-uncommitted.mjs.map +1 -1
- package/dist/cmd/gen-index-ts.mjs +1 -1
- package/dist/cmd/gen-index-ts.mjs.map +1 -1
- package/dist/entry-point.mjs +2 -1
- package/dist/entry-point.mjs.map +1 -1
- package/dist/functions/assert-ext.d.mts +20 -1
- package/dist/functions/assert-ext.d.mts.map +1 -1
- package/dist/functions/assert-ext.mjs +52 -35
- package/dist/functions/assert-ext.mjs.map +1 -1
- package/dist/functions/create-result-assert.d.mts +18 -0
- package/dist/functions/create-result-assert.d.mts.map +1 -0
- package/dist/functions/create-result-assert.mjs +40 -0
- package/dist/functions/create-result-assert.mjs.map +1 -0
- package/dist/functions/exec-async.d.mts +5 -6
- package/dist/functions/exec-async.d.mts.map +1 -1
- package/dist/functions/exec-async.mjs +26 -7
- package/dist/functions/exec-async.mjs.map +1 -1
- package/dist/functions/index.d.mts +1 -0
- package/dist/functions/index.d.mts.map +1 -1
- package/dist/functions/index.mjs +2 -1
- package/dist/functions/index.mjs.map +1 -1
- package/dist/functions/workspace-utils/execute-parallel.mjs.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/dist/node-global.d.mts +2 -0
- package/dist/node-global.d.mts.map +1 -1
- package/dist/node-global.mjs +3 -1
- package/dist/node-global.mjs.map +1 -1
- package/package.json +20 -14
- package/src/cmd/assert-repo-is-clean.mts +2 -2
- package/src/cmd/check-should-run-type-checks.mts +2 -2
- package/src/cmd/format-diff-from.mts +2 -2
- package/src/cmd/format-uncommitted.mts +2 -2
- package/src/cmd/gen-index-ts.mts +3 -3
- package/src/functions/assert-ext.mts +78 -52
- package/src/functions/create-result-assert.mts +59 -0
- package/src/functions/exec-async.mts +71 -14
- package/src/functions/exec-async.test.mts +5 -5
- package/src/functions/index.mts +1 -0
- package/src/functions/workspace-utils/execute-parallel.mts +1 -1
- package/src/functions/workspace-utils/run-cmd-in-stages.test.mts +5 -8
- package/src/node-global.mts +4 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Result } from 'ts-data-forge';
|
|
1
2
|
import '../node-global.mjs';
|
|
2
3
|
/** Configuration for directory extension checking. */
|
|
3
4
|
export type CheckExtConfig = DeepReadonly<{
|
|
@@ -17,11 +18,29 @@ export type CheckExtConfig = DeepReadonly<{
|
|
|
17
18
|
ignorePatterns?: string[];
|
|
18
19
|
}[];
|
|
19
20
|
}>;
|
|
21
|
+
export type CheckExtError = Readonly<{
|
|
22
|
+
message: string;
|
|
23
|
+
files: readonly string[];
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Validates that all files in specified directories have the correct
|
|
27
|
+
* extensions.
|
|
28
|
+
*
|
|
29
|
+
* @param config - Configuration specifying directories and expected extensions.
|
|
30
|
+
* @returns Result.ok when all files pass, otherwise Result.err with details.
|
|
31
|
+
*/
|
|
32
|
+
export declare const checkExt: (config: CheckExtConfig) => Promise<Result<undefined, CheckExtError>>;
|
|
20
33
|
/**
|
|
21
34
|
* Validates that all files in specified directories have the correct
|
|
22
35
|
* extensions. Exits with code 1 if any files have incorrect extensions.
|
|
23
36
|
*
|
|
24
37
|
* @param config - Configuration specifying directories and expected extensions.
|
|
25
38
|
*/
|
|
26
|
-
export declare const assertExt: (config:
|
|
39
|
+
export declare const assertExt: (config: {
|
|
40
|
+
readonly directories: readonly {
|
|
41
|
+
readonly path: string;
|
|
42
|
+
readonly extension: `.${string}` | readonly `.${string}`[];
|
|
43
|
+
readonly ignorePatterns?: readonly string[] | undefined;
|
|
44
|
+
}[];
|
|
45
|
+
}) => Promise<undefined>;
|
|
27
46
|
//# sourceMappingURL=assert-ext.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-ext.d.mts","sourceRoot":"","sources":["../../src/functions/assert-ext.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assert-ext.d.mts","sourceRoot":"","sources":["../../src/functions/assert-ext.mts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,MAAM,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,oBAAoB,CAAC;AAI5B,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC;IACxC,6DAA6D;IAC7D,WAAW,EAAE;QACX,8BAA8B;QAC9B,IAAI,EAAE,MAAM,CAAC;QAEb;;;WAGG;QACH,SAAS,EAAE,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,EAAE,CAAC;QAEzC;;;WAGG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,EAAE,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GACnB,QAAQ,cAAc,KACrB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAmC1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;uBAzEZ,MAAM;;;;wBAqFd,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { isString, Arr } from 'ts-data-forge';
|
|
1
|
+
import { isString, Result, Arr } from 'ts-data-forge';
|
|
2
2
|
import '../node-global.mjs';
|
|
3
3
|
import { assertPathExists } from './assert-path-exists.mjs';
|
|
4
|
+
import { createResultAssert } from './create-result-assert.mjs';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Validates that all files in specified directories have the correct
|
|
7
|
-
* extensions.
|
|
8
|
+
* extensions.
|
|
8
9
|
*
|
|
9
10
|
* @param config - Configuration specifying directories and expected extensions.
|
|
11
|
+
* @returns Result.ok when all files pass, otherwise Result.err with details.
|
|
10
12
|
*/
|
|
11
|
-
const
|
|
13
|
+
const checkExt = async (config) => {
|
|
12
14
|
// Check all directories in parallel
|
|
13
15
|
const results = await Promise.all(config.directories.map(async ({ path: dir, extension, ignorePatterns }) => {
|
|
14
16
|
try {
|
|
@@ -21,39 +23,35 @@ const assertExt = async (config) => {
|
|
|
21
23
|
}));
|
|
22
24
|
// Collect all incorrect files
|
|
23
25
|
const allIncorrectFiles = results.flat();
|
|
24
|
-
if (allIncorrectFiles.length
|
|
25
|
-
|
|
26
|
-
// Group directories by extension for a cleaner message
|
|
27
|
-
const extensionGroups = Arr.groupBy(config.directories.map(({ path: dirPath, extension }) => {
|
|
28
|
-
const relativePath = path.relative(process.cwd(), dirPath);
|
|
29
|
-
const extKey = isString(extension)
|
|
30
|
-
? extension
|
|
31
|
-
: extension.join(' or ');
|
|
32
|
-
return {
|
|
33
|
-
relativePath,
|
|
34
|
-
extKey,
|
|
35
|
-
};
|
|
36
|
-
}), ({ extKey }) => extKey);
|
|
37
|
-
// Generate message parts for each extension
|
|
38
|
-
const messageParts = Array.from(extensionGroups.entries(), ([ext, dirs]) => {
|
|
39
|
-
const dirList = dirs.length === 1
|
|
40
|
-
? dirs[0]?.relativePath
|
|
41
|
-
: dirs.map((d) => d.relativePath).join(', ');
|
|
42
|
-
return `${dirList} should have ${ext} extension`;
|
|
43
|
-
});
|
|
44
|
-
return `All files in ${messageParts.join(' and ')}.`;
|
|
45
|
-
};
|
|
46
|
-
const errorMessage = [
|
|
47
|
-
'Files with incorrect extensions found:',
|
|
48
|
-
...allIncorrectFiles.map((file) => ` - ${file}`),
|
|
49
|
-
'',
|
|
50
|
-
generateErrorMessage(),
|
|
51
|
-
].join('\n');
|
|
52
|
-
echo(errorMessage);
|
|
53
|
-
process.exit(1);
|
|
26
|
+
if (allIncorrectFiles.length === 0) {
|
|
27
|
+
return Result.ok(undefined);
|
|
54
28
|
}
|
|
55
|
-
|
|
29
|
+
const message = [
|
|
30
|
+
'Files with incorrect extensions found:',
|
|
31
|
+
...allIncorrectFiles.map((file) => ` - ${file}`),
|
|
32
|
+
'',
|
|
33
|
+
describeExpectedExtensions(config),
|
|
34
|
+
].join('\n');
|
|
35
|
+
return Result.err({
|
|
36
|
+
message,
|
|
37
|
+
files: allIncorrectFiles,
|
|
38
|
+
});
|
|
56
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Validates that all files in specified directories have the correct
|
|
42
|
+
* extensions. Exits with code 1 if any files have incorrect extensions.
|
|
43
|
+
*
|
|
44
|
+
* @param config - Configuration specifying directories and expected extensions.
|
|
45
|
+
*/
|
|
46
|
+
const assertExt = createResultAssert({
|
|
47
|
+
run: checkExt,
|
|
48
|
+
onError: (error) => {
|
|
49
|
+
echo(error.message);
|
|
50
|
+
},
|
|
51
|
+
onSuccess: () => {
|
|
52
|
+
echo('✓ All files have correct extensions');
|
|
53
|
+
},
|
|
54
|
+
});
|
|
57
55
|
/**
|
|
58
56
|
* Checks if all files in a directory have the expected extension.
|
|
59
57
|
*
|
|
@@ -74,6 +72,25 @@ const getFilesWithIncorrectExtension = async (dir, expectedExtensions, ignorePat
|
|
|
74
72
|
// Type assertion: glob always returns string[] for this use case
|
|
75
73
|
return files.filter((file) => !expectedExtensions.some((ext) => file.endsWith(ext)));
|
|
76
74
|
};
|
|
75
|
+
const describeExpectedExtensions = (config) => {
|
|
76
|
+
// Group directories by extension for a cleaner message
|
|
77
|
+
const extensionGroups = Arr.groupBy(config.directories.map(({ path: dirPath, extension }) => {
|
|
78
|
+
const relativePath = path.relative(process.cwd(), dirPath);
|
|
79
|
+
const extKey = isString(extension) ? extension : extension.join(' or ');
|
|
80
|
+
return {
|
|
81
|
+
relativePath,
|
|
82
|
+
extKey,
|
|
83
|
+
};
|
|
84
|
+
}), ({ extKey }) => extKey);
|
|
85
|
+
// Generate message parts for each extension
|
|
86
|
+
const messageParts = Array.from(extensionGroups.entries(), ([ext, dirs]) => {
|
|
87
|
+
const dirList = dirs.length === 1
|
|
88
|
+
? dirs[0]?.relativePath
|
|
89
|
+
: dirs.map((d) => d.relativePath).join(', ');
|
|
90
|
+
return `${dirList} should have ${ext} extension`;
|
|
91
|
+
});
|
|
92
|
+
return `All files in ${messageParts.join(' and ')}.`;
|
|
93
|
+
};
|
|
77
94
|
|
|
78
|
-
export { assertExt };
|
|
95
|
+
export { assertExt, checkExt };
|
|
79
96
|
//# sourceMappingURL=assert-ext.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-ext.mjs","sources":["../../src/functions/assert-ext.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assert-ext.mjs","sources":["../../src/functions/assert-ext.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Result } from 'ts-data-forge';
|
|
2
|
+
import '../node-global.mjs';
|
|
3
|
+
type ResultProducer<TConfig, TOk, TErr> = (config: TConfig) => Promise<Result<TOk, TErr>>;
|
|
4
|
+
export type CreateResultAssertOptions<Config, Ok, Err> = Readonly<{
|
|
5
|
+
run: ResultProducer<Config, Ok, Err>;
|
|
6
|
+
onSuccess?: (value: Ok, config: Config) => void | Promise<void>;
|
|
7
|
+
onError?: (error: Err, config: Config) => void | Promise<void>;
|
|
8
|
+
exitCode?: number;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Converts a function that returns a Result into an assert-style variant that
|
|
12
|
+
* exits the process when the Result is Err. This is useful for building CLI
|
|
13
|
+
* commands that should stop execution on failure but remain composable when a
|
|
14
|
+
* Result is preferred.
|
|
15
|
+
*/
|
|
16
|
+
export declare const createResultAssert: <Config, Ok, Err>({ run, onSuccess, onError, exitCode, }: CreateResultAssertOptions<Config, Ok, Err>) => ((config: Config) => Promise<Ok>);
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=create-result-assert.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-result-assert.d.mts","sourceRoot":"","sources":["../../src/functions/create-result-assert.mts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,oBAAoB,CAAC;AAE5B,KAAK,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CACxC,MAAM,EAAE,OAAO,KACZ,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAEhC,MAAM,MAAM,yBAAyB,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,QAAQ,CAAC;IAChE,GAAG,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,wCAKjD,yBAAyB,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,KAAG,CAAC,CAC/C,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,EAAE,CAAC,CA+Bf,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Result, isRecord, hasKey, isString } from 'ts-data-forge';
|
|
2
|
+
import '../node-global.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Converts a function that returns a Result into an assert-style variant that
|
|
6
|
+
* exits the process when the Result is Err. This is useful for building CLI
|
|
7
|
+
* commands that should stop execution on failure but remain composable when a
|
|
8
|
+
* Result is preferred.
|
|
9
|
+
*/
|
|
10
|
+
const createResultAssert = ({ run, onSuccess, onError, exitCode = 1, }) => {
|
|
11
|
+
const defaultOnError = (error) => {
|
|
12
|
+
if (isRecord(error) &&
|
|
13
|
+
hasKey(error, 'message') &&
|
|
14
|
+
isString(error.message)) {
|
|
15
|
+
echo(error.message);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
console.error(error);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
return async (config) => {
|
|
22
|
+
const result = await run(config);
|
|
23
|
+
if (Result.isErr(result)) {
|
|
24
|
+
if (onError !== undefined) {
|
|
25
|
+
await onError(result.value, config);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
defaultOnError(result.value);
|
|
29
|
+
}
|
|
30
|
+
process.exit(exitCode);
|
|
31
|
+
}
|
|
32
|
+
if (onSuccess !== undefined) {
|
|
33
|
+
await onSuccess(result.value, config);
|
|
34
|
+
}
|
|
35
|
+
return result.value;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export { createResultAssert };
|
|
40
|
+
//# sourceMappingURL=create-result-assert.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-result-assert.mjs","sources":["../../src/functions/create-result-assert.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAcA;;;;;AAKG;AACI,MAAM,kBAAkB,GAAG,CAAkB,EAClD,GAAG,EACH,SAAS,EACT,OAAO,EACP,QAAQ,GAAG,CAAC,GAC+B,KAEzB;AAClB,IAAA,MAAM,cAAc,GAAG,CAAC,KAAU,KAAU;QAC1C,IACE,QAAQ,CAAC,KAAK,CAAC;AACf,YAAA,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;AACxB,YAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EACvB;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB;aAAO;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QACtB;AACF,IAAA,CAAC;AAED,IAAA,OAAO,OAAO,MAAc,KAAiB;AAC3C,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;AAEhC,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,YAAA,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;YACrC;iBAAO;AACL,gBAAA,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9B;AACA,YAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxB;AAEA,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QACvC;QAEA,OAAO,MAAM,CAAC,KAAK;AACrB,IAAA,CAAC;AACH;;;;"}
|
|
@@ -3,6 +3,8 @@ import { Result } from 'ts-data-forge';
|
|
|
3
3
|
type ExecOptionsCustom = Readonly<{
|
|
4
4
|
silent?: boolean;
|
|
5
5
|
}>;
|
|
6
|
+
type ExecOptionsWithStringEncoding = Readonly<childProcess.ExecOptionsWithStringEncoding & ExecOptionsCustom>;
|
|
7
|
+
type ExecOptionsWithBufferEncoding = Readonly<childProcess.ExecOptionsWithBufferEncoding & ExecOptionsCustom>;
|
|
6
8
|
export type ExecOptions = childProcess.ExecOptions & ExecOptionsCustom;
|
|
7
9
|
export type ExecResult<T extends string | Buffer> = Result<Readonly<{
|
|
8
10
|
stdout: T;
|
|
@@ -15,11 +17,8 @@ export type ExecResult<T extends string | Buffer> = Result<Readonly<{
|
|
|
15
17
|
* @param options - Optional configuration for command execution.
|
|
16
18
|
* @returns A promise that resolves with the command result.
|
|
17
19
|
*/
|
|
18
|
-
export declare function $(command: string, options?:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export declare function $(command: string, options?: Readonly<{
|
|
22
|
-
encoding: 'buffer' | null;
|
|
23
|
-
} & ExecOptions>): Promise<ExecResult<Buffer>>;
|
|
20
|
+
export declare function $(command: string, options?: ExecOptionsWithStringEncoding): Promise<ExecResult<string>>;
|
|
21
|
+
export declare function $(command: string, options: ExecOptionsWithBufferEncoding): Promise<ExecResult<Buffer>>;
|
|
22
|
+
export declare function $<TOptions extends ExecOptionsWithBufferEncoding | ExecOptionsWithStringEncoding | undefined = undefined>(command: string, options?: TOptions): Promise<ExecResult<TOptions extends ExecOptionsWithBufferEncoding ? Buffer : string>>;
|
|
24
23
|
export {};
|
|
25
24
|
//# sourceMappingURL=exec-async.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-async.d.mts","sourceRoot":"","sources":["../../src/functions/exec-async.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,QAAQ,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEvE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CACxD,QAAQ,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,EAClC,YAAY,CAAC,aAAa,CAC3B,CAAC;AAEF;;;;;;GAMG;AAEH,wBAAgB,CAAC,CACf,OAAO,EAAE,MAAM,EAEf,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"exec-async.d.mts","sourceRoot":"","sources":["../../src/functions/exec-async.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,QAAQ,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC,CAAC;AAEH,KAAK,6BAA6B,GAAG,QAAQ,CAC3C,YAAY,CAAC,6BAA6B,GAAG,iBAAiB,CAC/D,CAAC;AAEF,KAAK,6BAA6B,GAAG,QAAQ,CAC3C,YAAY,CAAC,6BAA6B,GAAG,iBAAiB,CAC/D,CAAC;AAMF,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEvE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CACxD,QAAQ,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,EAClC,YAAY,CAAC,aAAa,CAC3B,CAAC;AAEF;;;;;;GAMG;AAEH,wBAAgB,CAAC,CACf,OAAO,EAAE,MAAM,EAEf,OAAO,CAAC,EAAE,6BAA6B,GACtC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/B,wBAAgB,CAAC,CACf,OAAO,EAAE,MAAM,EAEf,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/B,wBAAgB,CAAC,CACf,QAAQ,SACJ,6BAA6B,GAC7B,6BAA6B,GAC7B,SAAS,GAAG,SAAS,EAEzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,QAAQ,GACjB,OAAO,CACR,UAAU,CAAC,QAAQ,SAAS,6BAA6B,GAAG,MAAM,GAAG,MAAM,CAAC,CAC7E,CAAC"}
|
|
@@ -5,29 +5,48 @@ function $(command,
|
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
6
6
|
options) {
|
|
7
7
|
const { silent = false, ...restOptions } = options ?? {};
|
|
8
|
+
const normalizedOptions = restOptions;
|
|
8
9
|
if (!silent) {
|
|
9
10
|
echo(`$ ${command}`);
|
|
10
11
|
}
|
|
11
12
|
return new Promise((resolve) => {
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
const handleResult = (
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
15
|
+
error, stdout, stderr) => {
|
|
14
16
|
if (!silent) {
|
|
15
|
-
if (stdout
|
|
17
|
+
if (!isEmpty(stdout)) {
|
|
16
18
|
echo(stdout);
|
|
17
19
|
}
|
|
18
|
-
if (stderr
|
|
20
|
+
if (!isEmpty(stderr)) {
|
|
19
21
|
console.error(stderr);
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
24
|
if (error !== null) {
|
|
23
25
|
resolve(Result.err(error));
|
|
26
|
+
return;
|
|
24
27
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
resolve(Result.ok({ stdout, stderr }));
|
|
29
|
+
};
|
|
30
|
+
const encoding = normalizedOptions.encoding;
|
|
31
|
+
if (encoding === 'buffer' || encoding === null) {
|
|
32
|
+
// eslint-disable-next-line security/detect-child-process
|
|
33
|
+
childProcess.exec(command,
|
|
34
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
35
|
+
normalizedOptions, (error, stdout, stderr) => {
|
|
36
|
+
handleResult(error, stdout, stderr);
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// eslint-disable-next-line security/detect-child-process
|
|
41
|
+
childProcess.exec(command,
|
|
42
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
43
|
+
normalizedOptions, (error, stdout, stderr) => {
|
|
44
|
+
handleResult(error, stdout, stderr);
|
|
28
45
|
});
|
|
29
46
|
});
|
|
30
47
|
}
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
49
|
+
const isEmpty = (value) => typeof value === 'string' ? value === '' : value.length === 0;
|
|
31
50
|
|
|
32
51
|
export { $ };
|
|
33
52
|
//# sourceMappingURL=exec-async.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-async.mjs","sources":["../../src/functions/exec-async.mts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"exec-async.mjs","sources":["../../src/functions/exec-async.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AA0DM,SAAU,CAAC,CACf,OAAe;AACf;AACA,OAAuE,EAAA;AAEvE,IAAA,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE;IACxD,MAAM,iBAAiB,GAA0B,WAAW;IAE5D,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,IAAI,CAAC,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAC;IACtB;AAEA,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,QAAA,MAAM,YAAY,GAAG;;AAEnB,QAAA,KAAwC,EACxC,MAAS,EACT,MAAS,KACD;YACR,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACpB,IAAI,CAAC,MAAM,CAAC;gBACd;AACA,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACpB,oBAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvB;YACF;AAEA,YAAA,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B;YACF;AAEA,YAAA,OAAO,CACL,MAAM,CAAC,EAAE,CAAqC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAClE;AACH,QAAA,CAAC;AAED,QAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ;QAE3C,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;;YAE9C,YAAY,CAAC,IAAI,CACf,OAAO;;YAEP,iBAA+D,EAC/D,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,KAAI;AACxB,gBAAA,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AACrC,YAAA,CAAC,CACF;YACD;QACF;;QAGA,YAAY,CAAC,IAAI,CACf,OAAO;;QAEP,iBAA+D,EAC/D,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,KAAI;AACxB,YAAA,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AACrC,QAAA,CAAC,CACF;AACH,IAAA,CAAC,CAAC;AACJ;AAEA;AACA,MAAM,OAAO,GAAG,CAAC,KAAsB,KACrC,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/functions/index.mts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/functions/index.mts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC"}
|
package/dist/functions/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { assertExt } from './assert-ext.mjs';
|
|
1
|
+
export { assertExt, checkExt } from './assert-ext.mjs';
|
|
2
2
|
export { assertPathExists, pathExists } from './assert-path-exists.mjs';
|
|
3
3
|
export { assertRepoIsClean, repoIsDirty } from './assert-repo-is-clean.mjs';
|
|
4
|
+
export { createResultAssert } from './create-result-assert.mjs';
|
|
4
5
|
export { getDiffFrom, getModifiedFiles, getStagedFiles, getUntrackedFiles } from './diff.mjs';
|
|
5
6
|
export { $ } from './exec-async.mjs';
|
|
6
7
|
export { formatDiffFrom, formatFiles, formatFilesGlob, formatUncommittedFiles } from './format.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-parallel.mjs","sources":["../../../src/functions/workspace-utils/execute-parallel.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;AAeA;;;;;;;;;;;AAWG;AACI,MAAM,eAAe,GAAG,OAC7B,QAA4B,EAC5B,UAAkB,EAClB,WAAA,GAAsB,CAAC,KAC+C;IACtE,MAAM,kBAAkB,GAElB,EAAE;AAER,IAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB;IACjD,IAAI,UAAU,GAAG,KAAgB;AAEjC,IAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;;QAE1B,IAAI,UAAU,EAAE;YACd;QACF;;AAGA,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;;AAE7D,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBACxB,UAAU,GAAG,IAAI;AACjB,gBAAA,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB;AACA,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,QAAA,CAAC,CAAC;AAEF,QAAA,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QAEhC,MAAM,cAAc,GAAG;;AAEpB,aAAA,KAAK,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"execute-parallel.mjs","sources":["../../../src/functions/workspace-utils/execute-parallel.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { assertExt } from './functions/assert-ext.mjs';
|
|
1
|
+
export { assertExt, checkExt } from './functions/assert-ext.mjs';
|
|
2
2
|
export { assertPathExists, pathExists } from './functions/assert-path-exists.mjs';
|
|
3
3
|
export { assertRepoIsClean, repoIsDirty } from './functions/assert-repo-is-clean.mjs';
|
|
4
|
+
export { createResultAssert } from './functions/create-result-assert.mjs';
|
|
4
5
|
export { getDiffFrom, getModifiedFiles, getStagedFiles, getUntrackedFiles } from './functions/diff.mjs';
|
|
5
6
|
export { $ } from './functions/exec-async.mjs';
|
|
6
7
|
export { formatDiffFrom, formatFiles, formatFilesGlob, formatUncommittedFiles } from './functions/format.mjs';
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
|
package/dist/node-global.d.mts
CHANGED
|
@@ -2,6 +2,7 @@ import glob_ from 'fast-glob';
|
|
|
2
2
|
import * as fs_ from 'node:fs/promises';
|
|
3
3
|
import * as os_ from 'node:os';
|
|
4
4
|
import * as path_ from 'node:path';
|
|
5
|
+
import { chdir as chdir_ } from 'node:process';
|
|
5
6
|
import { Result as Result_ } from 'ts-data-forge';
|
|
6
7
|
import { $ as $_ } from './functions/exec-async.mjs';
|
|
7
8
|
import { isDirectlyExecuted as isDirectlyExecuted_ } from './functions/is-directly-executed.mjs';
|
|
@@ -14,6 +15,7 @@ declare global {
|
|
|
14
15
|
const Result: typeof Result_;
|
|
15
16
|
type Result<S, E> = Result_<S, E>;
|
|
16
17
|
const echo: typeof console.log;
|
|
18
|
+
const cd: typeof chdir_;
|
|
17
19
|
const isDirectlyExecuted: typeof isDirectlyExecuted_;
|
|
18
20
|
}
|
|
19
21
|
//# sourceMappingURL=node-global.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-global.d.mts","sourceRoot":"","sources":["../src/node-global.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,WAAW,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,kBAAkB,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"node-global.d.mts","sourceRoot":"","sources":["../src/node-global.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,WAAW,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,kBAAkB,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAqBjG,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,IAAI,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC;IACrB,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC;IACrB,MAAM,IAAI,EAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,MAAM,EAAE,OAAO,OAAO,CAAC;IAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IAC/B,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC;IACxB,MAAM,kBAAkB,EAAE,OAAO,mBAAmB,CAAC;CACtD"}
|
package/dist/node-global.mjs
CHANGED
|
@@ -2,11 +2,12 @@ import glob_ from 'fast-glob';
|
|
|
2
2
|
import * as fs from 'node:fs/promises';
|
|
3
3
|
import * as os_ from 'node:os';
|
|
4
4
|
import * as path_ from 'node:path';
|
|
5
|
+
import { chdir } from 'node:process';
|
|
5
6
|
import { Result } from 'ts-data-forge';
|
|
6
7
|
import { $ } from './functions/exec-async.mjs';
|
|
7
8
|
import { isDirectlyExecuted } from './functions/is-directly-executed.mjs';
|
|
8
9
|
|
|
9
|
-
/* eslint-disable import/no-internal-modules */
|
|
10
|
+
/* eslint-disable import-x/no-internal-modules */
|
|
10
11
|
const globalsDef = {
|
|
11
12
|
// eslint-disable-next-line tree-shakable/import-star
|
|
12
13
|
path: path_,
|
|
@@ -18,6 +19,7 @@ const globalsDef = {
|
|
|
18
19
|
$: $,
|
|
19
20
|
Result: Result,
|
|
20
21
|
echo: console.log,
|
|
22
|
+
cd: chdir,
|
|
21
23
|
isDirectlyExecuted: isDirectlyExecuted,
|
|
22
24
|
};
|
|
23
25
|
// eslint-disable-next-line functional/immutable-data
|
package/dist/node-global.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-global.mjs","sources":["../src/node-global.mts"],"sourcesContent":[null],"names":["fs_","$_","Result_","isDirectlyExecuted_"],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-global.mjs","sources":["../src/node-global.mts"],"sourcesContent":[null],"names":["fs_","$_","Result_","chdir_","isDirectlyExecuted_"],"mappings":";;;;;;;;;AAAA;AAUA,MAAM,UAAU,GAAG;;AAEjB,IAAA,IAAI,EAAE,KAAK;;AAEX,IAAA,EAAE,EAAEA,EAAG;;AAEP,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,IAAI,EAAE,KAAK;AAEX,IAAA,CAAC,EAAEC,CAAE;AACL,IAAA,MAAM,EAAEC,MAAO;IACf,IAAI,EAAE,OAAO,CAAC,GAAG;AACjB,IAAA,EAAE,EAAEC,KAAM;AACV,IAAA,kBAAkB,EAAEC,kBAAmB;CAC/B;AAEV;AACA,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-repo-utils",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.8.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript"
|
|
@@ -84,34 +84,35 @@
|
|
|
84
84
|
"fast-glob": "^3.3.3",
|
|
85
85
|
"micromatch": "^4.0.8",
|
|
86
86
|
"prettier": "^3.6.2",
|
|
87
|
-
"ts-data-forge": "^3.3.
|
|
87
|
+
"ts-data-forge": "^3.3.1",
|
|
88
88
|
"tsx": "^4.20.6"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
|
-
"@octokit/core": "
|
|
92
|
-
"@rollup/plugin-replace": "^6.0.
|
|
91
|
+
"@octokit/core": "7.0.6",
|
|
92
|
+
"@rollup/plugin-replace": "^6.0.3",
|
|
93
93
|
"@rollup/plugin-strip": "^3.0.4",
|
|
94
|
-
"@rollup/plugin-typescript": "^12.
|
|
94
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
95
95
|
"@semantic-release/changelog": "^6.0.3",
|
|
96
96
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
97
97
|
"@semantic-release/exec": "^7.1.0",
|
|
98
98
|
"@semantic-release/git": "^10.0.1",
|
|
99
|
-
"@semantic-release/github": "^12.0.
|
|
99
|
+
"@semantic-release/github": "^12.0.1",
|
|
100
100
|
"@semantic-release/npm": "^13.1.1",
|
|
101
101
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
102
|
-
"@types/node": "^24.
|
|
103
|
-
"@vitest/coverage-v8": "^
|
|
104
|
-
"@vitest/ui": "^
|
|
102
|
+
"@types/node": "^24.9.2",
|
|
103
|
+
"@vitest/coverage-v8": "^4.0.6",
|
|
104
|
+
"@vitest/ui": "^4.0.6",
|
|
105
105
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
106
|
-
"cspell": "^9.2.
|
|
106
|
+
"cspell": "^9.2.2",
|
|
107
107
|
"dedent": "^1.7.0",
|
|
108
|
-
"eslint": "
|
|
109
|
-
"eslint-config-typed": "^1.
|
|
108
|
+
"eslint": "9.38.0",
|
|
109
|
+
"eslint-config-typed": "^3.1.1",
|
|
110
110
|
"fast-glob": "^3.3.3",
|
|
111
|
+
"jiti": "^2.6.1",
|
|
111
112
|
"markdownlint": "^0.39.0",
|
|
112
113
|
"markdownlint-cli2": "^0.18.1",
|
|
113
114
|
"npm-run-all2": "^8.0.4",
|
|
114
|
-
"octokit-safe-types": "^1.1.
|
|
115
|
+
"octokit-safe-types": "^1.1.2",
|
|
115
116
|
"prettier": "^3.6.2",
|
|
116
117
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
117
118
|
"prettier-plugin-packagejson": "^2.5.19",
|
|
@@ -120,12 +121,17 @@
|
|
|
120
121
|
"ts-fortress": "^5.2.0",
|
|
121
122
|
"ts-type-forge": "^2.3.0",
|
|
122
123
|
"tslib": "^2.8.1",
|
|
124
|
+
"tsx": "^4.20.6",
|
|
123
125
|
"typedoc": "^0.28.14",
|
|
124
126
|
"typedoc-plugin-markdown": "^4.9.0",
|
|
125
127
|
"typescript": "^5.9.3",
|
|
126
|
-
"vitest": "^
|
|
128
|
+
"vitest": "^4.0.6"
|
|
127
129
|
},
|
|
128
130
|
"peerDependencies": {
|
|
129
131
|
"prettier": "^3.6.2"
|
|
132
|
+
},
|
|
133
|
+
"volta": {
|
|
134
|
+
"node": "25.0.0",
|
|
135
|
+
"npm": "11.6.2"
|
|
130
136
|
}
|
|
131
137
|
}
|
|
@@ -5,7 +5,7 @@ import { assertRepoIsClean } from '../functions/index.mjs';
|
|
|
5
5
|
|
|
6
6
|
const cmdDef = cmd.command({
|
|
7
7
|
name: 'assert-repo-is-clean-cli',
|
|
8
|
-
version: '7.
|
|
8
|
+
version: '7.8.0',
|
|
9
9
|
args: {
|
|
10
10
|
silent: cmd.flag({
|
|
11
11
|
long: 'silent',
|
|
@@ -14,7 +14,7 @@ const cmdDef = cmd.command({
|
|
|
14
14
|
}),
|
|
15
15
|
},
|
|
16
16
|
handler: (args) => {
|
|
17
|
-
main(args).catch((error) => {
|
|
17
|
+
main(args).catch((error: unknown) => {
|
|
18
18
|
console.error('An error occurred:', error);
|
|
19
19
|
process.exit(1);
|
|
20
20
|
});
|
|
@@ -5,7 +5,7 @@ import { checkShouldRunTypeChecks } from '../functions/index.mjs';
|
|
|
5
5
|
|
|
6
6
|
const cmdDef = cmd.command({
|
|
7
7
|
name: 'check-should-run-type-checks-cli',
|
|
8
|
-
version: '7.
|
|
8
|
+
version: '7.8.0',
|
|
9
9
|
args: {
|
|
10
10
|
pathsIgnore: cmd.multioption({
|
|
11
11
|
long: 'paths-ignore',
|
|
@@ -21,7 +21,7 @@ const cmdDef = cmd.command({
|
|
|
21
21
|
}),
|
|
22
22
|
},
|
|
23
23
|
handler: (args) => {
|
|
24
|
-
main(args).catch((error) => {
|
|
24
|
+
main(args).catch((error: unknown) => {
|
|
25
25
|
console.error('An error occurred:', error);
|
|
26
26
|
process.exit(1);
|
|
27
27
|
});
|
|
@@ -6,7 +6,7 @@ import { formatDiffFrom } from '../functions/index.mjs';
|
|
|
6
6
|
|
|
7
7
|
const cmdDef = cmd.command({
|
|
8
8
|
name: 'format-diff-from-cli',
|
|
9
|
-
version: '7.
|
|
9
|
+
version: '7.8.0',
|
|
10
10
|
args: {
|
|
11
11
|
base: cmd.positional({
|
|
12
12
|
type: cmd.string,
|
|
@@ -50,7 +50,7 @@ const cmdDef = cmd.command({
|
|
|
50
50
|
excludeStaged: args.excludeStaged ?? false,
|
|
51
51
|
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
52
52
|
silent: args.silent ?? false,
|
|
53
|
-
}).catch((error) => {
|
|
53
|
+
}).catch((error: unknown) => {
|
|
54
54
|
console.error('An error occurred:', error);
|
|
55
55
|
process.exit(1);
|
|
56
56
|
});
|