@eldrforge/core 0.1.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/LICENSE +190 -0
- package/README.md +59 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2748 -0
- package/dist/index.js.map +1 -0
- package/dist/src/constants.d.ts +235 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/content/diff.d.ts +25 -0
- package/dist/src/content/diff.d.ts.map +1 -0
- package/dist/src/content/files.d.ts +10 -0
- package/dist/src/content/files.d.ts.map +1 -0
- package/dist/src/content/log.d.ts +11 -0
- package/dist/src/content/log.d.ts.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/logging.d.ts +18 -0
- package/dist/src/logging.d.ts.map +1 -0
- package/dist/src/types.d.ts +1343 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/util/aiAdapter.d.ts +7 -0
- package/dist/src/util/aiAdapter.d.ts.map +1 -0
- package/dist/src/util/errorHandler.d.ts +34 -0
- package/dist/src/util/errorHandler.d.ts.map +1 -0
- package/dist/src/util/fileLock.d.ts +63 -0
- package/dist/src/util/fileLock.d.ts.map +1 -0
- package/dist/src/util/general.d.ts +83 -0
- package/dist/src/util/general.d.ts.map +1 -0
- package/dist/src/util/gitMutex.d.ts +66 -0
- package/dist/src/util/gitMutex.d.ts.map +1 -0
- package/dist/src/util/interactive.d.ts +36 -0
- package/dist/src/util/interactive.d.ts.map +1 -0
- package/dist/src/util/loggerAdapter.d.ts +6 -0
- package/dist/src/util/loggerAdapter.d.ts.map +1 -0
- package/dist/src/util/stopContext.d.ts +27 -0
- package/dist/src/util/stopContext.d.ts.map +1 -0
- package/dist/src/util/storageAdapter.d.ts +8 -0
- package/dist/src/util/storageAdapter.d.ts.map +1 -0
- package/dist/src/util/validation.d.ts +21 -0
- package/dist/src/util/validation.d.ts.map +1 -0
- package/guide/index.md +64 -0
- package/package.json +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiAdapter.d.ts","sourceRoot":"","sources":["../../../src/util/aiAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAoBnD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Logger } from 'winston';
|
|
2
|
+
import { CommandError } from '@eldrforge/shared';
|
|
3
|
+
export interface ErrorHandlerOptions {
|
|
4
|
+
logger: Logger;
|
|
5
|
+
command: string;
|
|
6
|
+
exitOnError?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface CommandResult<T = string> {
|
|
9
|
+
success: boolean;
|
|
10
|
+
data?: T;
|
|
11
|
+
error?: CommandError;
|
|
12
|
+
warnings?: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface Command<TConfig = any, TResult = string> {
|
|
15
|
+
execute(config: TConfig): Promise<CommandResult<TResult>>;
|
|
16
|
+
validate?(config: TConfig): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Standardized error handler for all commands
|
|
20
|
+
*/
|
|
21
|
+
export declare const handleCommandError: (error: Error, options: ErrorHandlerOptions) => Promise<never | void>;
|
|
22
|
+
/**
|
|
23
|
+
* Wrapper for command execution with standardized error handling
|
|
24
|
+
*/
|
|
25
|
+
export declare const executeWithErrorHandling: <T>(command: string, logger: Logger, execution: () => Promise<T>, exitOnError?: boolean) => Promise<T>;
|
|
26
|
+
/**
|
|
27
|
+
* Creates a command result for successful operations
|
|
28
|
+
*/
|
|
29
|
+
export declare const createSuccessResult: <T>(data: T, warnings?: string[]) => CommandResult<T>;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a command result for failed operations
|
|
32
|
+
*/
|
|
33
|
+
export declare const createErrorResult: <T>(error: CommandError, warnings?: string[]) => CommandResult<T>;
|
|
34
|
+
//# sourceMappingURL=errorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../../src/util/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,GAAG,MAAM;IACpD,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC3B,OAAO,KAAK,EACZ,SAAS,mBAAmB,KAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CA+CtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAU,CAAC,EAC5C,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,cAAa,OAAc,KAC5B,OAAO,CAAC,CAAC,CAYX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,MAAM,EAAE,KAAG,aAAa,CAAC,CAAC,CAInF,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,MAAM,EAAE,KAAG,aAAa,CAAC,CAAC,CAI7F,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-based lock for cross-process synchronization
|
|
3
|
+
* Uses atomic file operations to coordinate across multiple Node processes
|
|
4
|
+
*/
|
|
5
|
+
export declare class FileLock {
|
|
6
|
+
private lockPath;
|
|
7
|
+
private lockAcquired;
|
|
8
|
+
private maxRetries;
|
|
9
|
+
private retryDelay;
|
|
10
|
+
private maxRetryDelay;
|
|
11
|
+
private lockTimeout;
|
|
12
|
+
private logger;
|
|
13
|
+
constructor(lockPath: string);
|
|
14
|
+
/**
|
|
15
|
+
* Acquire the file lock with exponential backoff retry
|
|
16
|
+
*/
|
|
17
|
+
lock(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Release the file lock
|
|
20
|
+
*/
|
|
21
|
+
unlock(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Check if this instance currently holds the lock
|
|
24
|
+
*/
|
|
25
|
+
isLocked(): boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Manages file-based locks for git repositories (cross-process safe)
|
|
29
|
+
*/
|
|
30
|
+
export declare class RepositoryFileLockManager {
|
|
31
|
+
private locks;
|
|
32
|
+
private logger;
|
|
33
|
+
private cleanupRegistered;
|
|
34
|
+
/**
|
|
35
|
+
* Get or create a file lock for a specific git repository
|
|
36
|
+
* @param repoPath Path to the git repository root
|
|
37
|
+
* @returns FileLock for this repository
|
|
38
|
+
*/
|
|
39
|
+
getRepositoryLock(repoPath: string): FileLock;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the actual .git directory path, handling both regular repos and submodules
|
|
42
|
+
* @param repoPath Path to the repository root
|
|
43
|
+
* @returns Path to the actual .git directory
|
|
44
|
+
*/
|
|
45
|
+
private resolveGitDirectory;
|
|
46
|
+
/**
|
|
47
|
+
* Register cleanup handlers to release locks on process exit
|
|
48
|
+
*/
|
|
49
|
+
private registerCleanupHandlers;
|
|
50
|
+
/**
|
|
51
|
+
* Execute a git operation with repository-level file locking
|
|
52
|
+
* @param repoPath Path to the git repository root
|
|
53
|
+
* @param operation The async operation to execute under lock
|
|
54
|
+
* @param operationName Optional name for logging
|
|
55
|
+
* @returns Result of the operation
|
|
56
|
+
*/
|
|
57
|
+
withGitLock<T>(repoPath: string, operation: () => Promise<T>, operationName?: string): Promise<T>;
|
|
58
|
+
/**
|
|
59
|
+
* Clean up all locks
|
|
60
|
+
*/
|
|
61
|
+
destroy(): void;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=fileLock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileLock.d.ts","sourceRoot":"","sources":["../../../src/util/fileLock.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAe;gBAEjB,QAAQ,EAAE,MAAM;IAI5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuE3B;;OAEG;IACH,MAAM,IAAI,IAAI;IAkBd;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGtB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IAClC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAAS;IAElC;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAoB7C;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAwC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;;;;;OAMG;IACG,WAAW,CAAC,CAAC,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC;IAwBb;;OAEG;IACH,OAAO,IAAI,IAAI;CAOlB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { deepMerge, stringifyJSON, incrementPatchVersion, incrementMinorVersion, incrementMajorVersion, validateVersionString, calculateTargetVersion, incrementPrereleaseVersion, convertToReleaseVersion } from '@eldrforge/shared';
|
|
2
|
+
/**
|
|
3
|
+
* Get version from a specific branch's package.json
|
|
4
|
+
*/
|
|
5
|
+
export declare const getVersionFromBranch: (branchName: string) => Promise<string | null>;
|
|
6
|
+
/**
|
|
7
|
+
* Calculate target version based on branch configuration
|
|
8
|
+
* SEMANTICS: The version config specifies what version should be ON the target branch
|
|
9
|
+
*/
|
|
10
|
+
export declare const calculateBranchDependentVersion: (currentVersion: string, currentBranch: string, branchesConfig: any, targetBranch?: string) => Promise<{
|
|
11
|
+
version: string;
|
|
12
|
+
targetBranch: string;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Find the development branch from branches configuration
|
|
16
|
+
* Returns the branch marked with developmentBranch: true
|
|
17
|
+
*/
|
|
18
|
+
export declare const findDevelopmentBranch: (branchesConfig: any) => string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Check if two prerelease versions have the same tag
|
|
21
|
+
* Examples:
|
|
22
|
+
* - haveSamePrereleaseTag("1.2.3-dev.0", "1.2.3-dev.5") => true
|
|
23
|
+
* - haveSamePrereleaseTag("1.2.3-dev.0", "1.2.3-test.0") => false
|
|
24
|
+
* - haveSamePrereleaseTag("1.2.3", "1.2.3-dev.0") => false
|
|
25
|
+
*/
|
|
26
|
+
export declare const haveSamePrereleaseTag: (version1: string, version2: string) => boolean;
|
|
27
|
+
export declare const checkIfTagExists: (tagName: string) => Promise<boolean>;
|
|
28
|
+
export declare const confirmVersionInteractively: (currentVersion: string, proposedVersion: string, targetVersionInput?: string) => Promise<string>;
|
|
29
|
+
export declare const getOutputPath: (outputDirectory: string, filename: string) => string;
|
|
30
|
+
export declare const getTimestampedFilename: (baseName: string, extension?: string) => string;
|
|
31
|
+
export declare const getTimestampedRequestFilename: (baseName: string) => string;
|
|
32
|
+
export declare const getTimestampedResponseFilename: (baseName: string) => string;
|
|
33
|
+
export declare const getTimestampedCommitFilename: () => string;
|
|
34
|
+
export declare const getTimestampedReleaseNotesFilename: () => string;
|
|
35
|
+
export declare const getTimestampedAudioFilename: () => string;
|
|
36
|
+
export declare const getTimestampedTranscriptFilename: () => string;
|
|
37
|
+
export declare const getTimestampedReviewFilename: () => string;
|
|
38
|
+
export declare const getTimestampedReviewNotesFilename: () => string;
|
|
39
|
+
export declare const getTimestampedArchivedAudioFilename: (originalExtension?: string) => string;
|
|
40
|
+
export declare const getTimestampedArchivedTranscriptFilename: () => string;
|
|
41
|
+
/**
|
|
42
|
+
* Query npm registry for published version of a package
|
|
43
|
+
* Returns null if package is not published or on error
|
|
44
|
+
*/
|
|
45
|
+
export declare const getNpmPublishedVersion: (packageName: string) => Promise<string | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Check if a package version already exists on npm registry
|
|
48
|
+
*/
|
|
49
|
+
export declare const isVersionPublishedOnNpm: (packageName: string, version: string) => Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Get detailed info about a tag including the version it points to
|
|
52
|
+
*/
|
|
53
|
+
export declare const getTagInfo: (tagName: string) => Promise<{
|
|
54
|
+
exists: boolean;
|
|
55
|
+
commit?: string;
|
|
56
|
+
version?: string;
|
|
57
|
+
} | null>;
|
|
58
|
+
/**
|
|
59
|
+
* Check if a version is a development/prerelease version (has prerelease tag)
|
|
60
|
+
*/
|
|
61
|
+
export declare const isDevelopmentVersion: (version: string) => boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Check if a version is a release version (no prerelease tag)
|
|
64
|
+
*/
|
|
65
|
+
export declare const isReleaseVersion: (version: string) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Get expected version pattern for a branch
|
|
68
|
+
*/
|
|
69
|
+
export declare const getExpectedVersionPattern: (branchName: string) => {
|
|
70
|
+
pattern: RegExp;
|
|
71
|
+
description: string;
|
|
72
|
+
isDevelopment: boolean;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Validate version against branch expectations
|
|
76
|
+
*/
|
|
77
|
+
export declare const validateVersionForBranch: (version: string, branchName: string) => {
|
|
78
|
+
valid: boolean;
|
|
79
|
+
issue?: string;
|
|
80
|
+
fix?: string;
|
|
81
|
+
};
|
|
82
|
+
export { deepMerge, stringifyJSON, incrementPatchVersion, incrementMinorVersion, incrementMajorVersion, validateVersionString, calculateTargetVersion, incrementPrereleaseVersion, convertToReleaseVersion };
|
|
83
|
+
//# sourceMappingURL=general.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/util/general.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAGtO;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAiBpF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,GACxC,gBAAgB,MAAM,EACtB,eAAe,MAAM,EACrB,gBAAgB,GAAG,EACnB,eAAe,MAAM,KACtB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAmDnD,CAAC;AAmDF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,gBAAgB,GAAG,KAAG,MAAM,GAAG,IAYpE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,EAAE,UAAU,MAAM,KAAG,OAsB1E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAavE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAU,gBAAgB,MAAM,EAAE,iBAAiB,MAAM,EAAE,qBAAqB,MAAM,KAAG,OAAO,CAAC,MAAM,CAuC9I,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,iBAAiB,MAAM,EAAE,UAAU,MAAM,KAAG,MAEzE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,EAAE,YAAW,MAAgB,KAAG,MAatF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,KAAG,MAEhE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,UAAU,MAAM,KAAG,MAEjE,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAAO,MAE/C,CAAC;AAEF,eAAO,MAAM,kCAAkC,QAAO,MAErD,CAAC;AAEF,eAAO,MAAM,2BAA2B,QAAO,MAE9C,CAAC;AAEF,eAAO,MAAM,gCAAgC,QAAO,MAEnD,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAAO,MAE/C,CAAC;AAEF,eAAO,MAAM,iCAAiC,QAAO,MAEpD,CAAC;AAEF,eAAO,MAAM,mCAAmC,GAAI,oBAAmB,MAAe,KAAG,MAExF,CAAC;AAEF,eAAO,MAAM,wCAAwC,QAAO,MAE3D,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAuBvF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAU,aAAa,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAoBnG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6BvH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,OAGtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,OAGlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,YAAY,MAAM,KAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CA6B5H,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,EAAE,YAAY,MAAM,KAAG;IAC3E,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CAiChB,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages per-repository locks for git operations (cross-process safe)
|
|
3
|
+
* Prevents concurrent git operations in the same repository (which cause .git/index.lock conflicts)
|
|
4
|
+
* while still allowing parallel operations across different repositories
|
|
5
|
+
*
|
|
6
|
+
* Uses file-based locks to coordinate across multiple processes (e.g., parallel tree execution)
|
|
7
|
+
*/
|
|
8
|
+
export declare class RepositoryMutexManager {
|
|
9
|
+
private lockManager;
|
|
10
|
+
private logger;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Execute a git operation with repository-level locking
|
|
14
|
+
* @param packagePath Path to the package (will find its git repo root)
|
|
15
|
+
* @param operation The async operation to execute under lock
|
|
16
|
+
* @param operationName Optional name for logging
|
|
17
|
+
* @returns Result of the operation
|
|
18
|
+
*/
|
|
19
|
+
withGitLock<T>(packagePath: string, operation: () => Promise<T>, operationName?: string): Promise<T>;
|
|
20
|
+
/**
|
|
21
|
+
* Destroy all locks and clean up resources
|
|
22
|
+
*/
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Find the git repository root for a given path
|
|
27
|
+
* Walks up the directory tree until it finds a .git directory
|
|
28
|
+
* @param startPath Starting path (can be a file or directory)
|
|
29
|
+
* @returns Absolute path to git repository root, or null if not in a git repo
|
|
30
|
+
*/
|
|
31
|
+
export declare function getGitRepositoryRoot(startPath: string): string | null;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a path is within a git repository
|
|
34
|
+
* @param checkPath Path to check
|
|
35
|
+
* @returns true if path is in a git repository
|
|
36
|
+
*/
|
|
37
|
+
export declare function isInGitRepository(checkPath: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Check if two paths are in the same git repository
|
|
40
|
+
* @param path1 First path
|
|
41
|
+
* @param path2 Second path
|
|
42
|
+
* @returns true if both paths are in the same git repository
|
|
43
|
+
*/
|
|
44
|
+
export declare function areInSameRepository(path1: string, path2: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Get the global git mutex manager instance
|
|
47
|
+
* Creates one if it doesn't exist
|
|
48
|
+
*/
|
|
49
|
+
export declare function getGitMutexManager(): RepositoryMutexManager;
|
|
50
|
+
/**
|
|
51
|
+
* Destroy the global git mutex manager
|
|
52
|
+
* Should be called when shutting down or during cleanup
|
|
53
|
+
*/
|
|
54
|
+
export declare function destroyGitMutexManager(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Helper function to wrap git operations with automatic locking
|
|
57
|
+
* Uses the global git mutex manager
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* await runGitWithLock(packagePath, async () => {
|
|
61
|
+
* await run('git add package.json');
|
|
62
|
+
* await run('git commit -m "Update version"');
|
|
63
|
+
* }, 'version bump commit');
|
|
64
|
+
*/
|
|
65
|
+
export declare function runGitWithLock<T>(packagePath: string, operation: () => Promise<T>, operationName?: string): Promise<T>;
|
|
66
|
+
//# sourceMappingURL=gitMutex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitMutex.d.ts","sourceRoot":"","sources":["../../../src/util/gitMutex.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAe;;IAM7B;;;;;;OAMG;IACG,WAAW,CAAC,CAAC,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC;IAYb;;OAEG;IACH,OAAO,IAAI,IAAI;CAGlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiDrE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAsB5D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CASzE;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,sBAAsB,CAK3D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC,CAGZ"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Kodrdriv-specific interactive utilities
|
|
4
|
+
*
|
|
5
|
+
* This module contains application-specific interactive workflows that build on
|
|
6
|
+
* top of the generic interactive functions from @eldrforge/ai-service.
|
|
7
|
+
*
|
|
8
|
+
* Re-exports from ai-service for convenience, plus kodrdriv-specific functions.
|
|
9
|
+
*/
|
|
10
|
+
export { getUserChoice, getUserTextInput, editContentInEditor, getLLMFeedbackInEditor, requireTTY, SecureTempFile, createSecureTempFile, cleanupTempFile, STANDARD_CHOICES, type Choice, type InteractiveOptions, type EditorResult, } from '@eldrforge/ai-service';
|
|
11
|
+
export interface LLMImprovementConfig {
|
|
12
|
+
/** The type of content being improved (for filenames and logging) */
|
|
13
|
+
contentType: string;
|
|
14
|
+
/** Function that creates a prompt for improvement */
|
|
15
|
+
createImprovedPrompt: (promptConfig: any, improvementContent: any, promptContext: any) => Promise<any>;
|
|
16
|
+
/** Function that calls LLM with the improved prompt */
|
|
17
|
+
callLLM: (request: any, runConfig: any, outputDirectory: string) => Promise<any>;
|
|
18
|
+
/** Function that validates/processes the LLM response */
|
|
19
|
+
processResponse?: (response: any) => any;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Generic LLM improvement function that can be configured for different content types
|
|
23
|
+
*
|
|
24
|
+
* This is kodrdriv-specific orchestration logic that combines multiple ai-service
|
|
25
|
+
* primitives into a higher-level workflow.
|
|
26
|
+
*
|
|
27
|
+
* @param currentContent The current content to improve
|
|
28
|
+
* @param runConfig Runtime configuration
|
|
29
|
+
* @param promptConfig Prompt configuration
|
|
30
|
+
* @param promptContext Prompt context
|
|
31
|
+
* @param outputDirectory Output directory for debug files
|
|
32
|
+
* @param improvementConfig Configuration for this specific improvement type
|
|
33
|
+
* @returns Promise resolving to the improved content
|
|
34
|
+
*/
|
|
35
|
+
export declare function improveContentWithLLM<T>(currentContent: T, runConfig: any, promptConfig: any, promptContext: any, outputDirectory: string, improvementConfig: LLMImprovementConfig): Promise<T>;
|
|
36
|
+
//# sourceMappingURL=interactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/util/interactive.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAKH,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,YAAY,GACpB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,oBAAoB;IACjC,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,oBAAoB,EAAE,CAClB,YAAY,EAAE,GAAG,EACjB,kBAAkB,EAAE,GAAG,EACvB,aAAa,EAAE,GAAG,KACjB,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB,uDAAuD;IACvD,OAAO,EAAE,CACL,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,GAAG,EACd,eAAe,EAAE,MAAM,KACtB,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB,yDAAyD;IACzD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EACzC,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,GAAG,EACd,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,EAClB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,oBAAoB,GACxC,OAAO,CAAC,CAAC,CAAC,CAsBZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggerAdapter.d.ts","sourceRoot":"","sources":["../../../src/util/loggerAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAuC3D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { StopContextConfig } from '../types';
|
|
2
|
+
export interface FilterResult {
|
|
3
|
+
filtered: string;
|
|
4
|
+
originalLength: number;
|
|
5
|
+
filteredLength: number;
|
|
6
|
+
matchCount: number;
|
|
7
|
+
matches: FilterMatch[];
|
|
8
|
+
}
|
|
9
|
+
export interface FilterMatch {
|
|
10
|
+
type: 'string' | 'pattern';
|
|
11
|
+
matched: string;
|
|
12
|
+
position: number;
|
|
13
|
+
replacement: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Filter content based on stop-context configuration
|
|
17
|
+
*
|
|
18
|
+
* @param text - The text to filter
|
|
19
|
+
* @param config - The stop-context configuration
|
|
20
|
+
* @returns FilterResult with filtered text and metadata
|
|
21
|
+
*/
|
|
22
|
+
export declare function filterContent(text: string, config: StopContextConfig | undefined): FilterResult;
|
|
23
|
+
/**
|
|
24
|
+
* Check if stop-context filtering is enabled in config
|
|
25
|
+
*/
|
|
26
|
+
export declare function isStopContextEnabled(config: StopContextConfig | undefined): boolean;
|
|
27
|
+
//# sourceMappingURL=stopContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stopContext.d.ts","sourceRoot":"","sources":["../../../src/util/stopContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAyGD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAiE/F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CASnF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { StorageAdapter } from '@eldrforge/ai-service';
|
|
2
|
+
/**
|
|
3
|
+
* Create a StorageAdapter implementation using kodrdriv Storage
|
|
4
|
+
*
|
|
5
|
+
* @param outputDirectory - Directory where output files should be written (default: 'output')
|
|
6
|
+
*/
|
|
7
|
+
export declare function createStorageAdapter(outputDirectory?: string): StorageAdapter;
|
|
8
|
+
//# sourceMappingURL=storageAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageAdapter.d.ts","sourceRoot":"","sources":["../../../src/util/storageAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,GAAE,MAAiB,GAAG,cAAc,CAyBvF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReleaseSummary } from '../types';
|
|
2
|
+
export interface TranscriptionResult {
|
|
3
|
+
text: string;
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Validates and safely casts data to ReleaseSummary type
|
|
8
|
+
*/
|
|
9
|
+
export declare const validateReleaseSummary: (data: any) => ReleaseSummary;
|
|
10
|
+
/**
|
|
11
|
+
* Validates transcription result has required text property
|
|
12
|
+
*/
|
|
13
|
+
export declare const validateTranscriptionResult: (data: any) => TranscriptionResult;
|
|
14
|
+
/**
|
|
15
|
+
* Sanitizes and truncates direction parameter for safe use in prompts
|
|
16
|
+
* @param direction The direction string to sanitize
|
|
17
|
+
* @param maxLength Maximum length before truncation (default: 2000)
|
|
18
|
+
* @returns Sanitized and truncated direction string
|
|
19
|
+
*/
|
|
20
|
+
export declare const sanitizeDirection: (direction: string | undefined, maxLength?: number) => string | undefined;
|
|
21
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/util/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,GAAG,KAAG,cAWlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,MAAM,GAAG,KAAG,mBAQvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,GAAG,SAAS,EAAE,YAAW,MAAa,KAAG,MAAM,GAAG,SAqBpG,CAAC"}
|
package/guide/index.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# @eldrforge/core - Agentic Guide
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Core utilities for kodrdriv command packages. Provides shared infrastructure including:
|
|
6
|
+
- Content generation (diff, log, files)
|
|
7
|
+
- Utility functions (general, interactive, adapters)
|
|
8
|
+
- Foundation (types, constants, logging)
|
|
9
|
+
|
|
10
|
+
## Quick Reference
|
|
11
|
+
|
|
12
|
+
For AI agents working with this package:
|
|
13
|
+
- [Architecture](./architecture.md) - Package structure and design
|
|
14
|
+
- [Usage](./usage.md) - How to use core utilities
|
|
15
|
+
- [Development](./development.md) - Contributing guidelines
|
|
16
|
+
- [Configuration](./configuration.md) - Setup and configuration
|
|
17
|
+
|
|
18
|
+
## Key Exports
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// Content utilities
|
|
22
|
+
import { create as createDiff } from '@eldrforge/core';
|
|
23
|
+
import { create as createLog } from '@eldrforge/core';
|
|
24
|
+
import { create as createFiles } from '@eldrforge/core';
|
|
25
|
+
|
|
26
|
+
// Utilities
|
|
27
|
+
import { getOutputPath, improveContentWithLLM } from '@eldrforge/core';
|
|
28
|
+
|
|
29
|
+
// Foundation
|
|
30
|
+
import { Config, getLogger } from '@eldrforge/core';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Dependencies
|
|
34
|
+
|
|
35
|
+
- @eldrforge/git-tools
|
|
36
|
+
- @eldrforge/github-tools
|
|
37
|
+
- @eldrforge/ai-service
|
|
38
|
+
- @eldrforge/shared
|
|
39
|
+
|
|
40
|
+
## Package Structure
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
src/
|
|
44
|
+
├── content/ # Git content utilities
|
|
45
|
+
│ ├── diff.ts # Git diff operations
|
|
46
|
+
│ ├── log.ts # Git log operations
|
|
47
|
+
│ └── files.ts # File content collection
|
|
48
|
+
├── util/ # Utility functions
|
|
49
|
+
│ ├── general.ts # General utilities
|
|
50
|
+
│ ├── interactive.ts # Interactive prompts
|
|
51
|
+
│ ├── aiAdapter.ts # AI service adapter
|
|
52
|
+
│ ├── storageAdapter.ts # Storage adapter
|
|
53
|
+
│ ├── loggerAdapter.ts # Logger adapter
|
|
54
|
+
│ ├── stopContext.ts # Content filtering
|
|
55
|
+
│ ├── gitMutex.ts # Git repository locking
|
|
56
|
+
│ ├── fileLock.ts # File-based locking
|
|
57
|
+
│ ├── validation.ts # Data validation
|
|
58
|
+
│ └── errorHandler.ts # Error handling
|
|
59
|
+
├── types.ts # TypeScript types
|
|
60
|
+
├── constants.ts # Package constants
|
|
61
|
+
├── logging.ts # Winston logging setup
|
|
62
|
+
└── index.ts # Main exports
|
|
63
|
+
```
|
|
64
|
+
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@eldrforge/core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Core utilities for kodrdriv command packages",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"guide"
|
|
16
|
+
],
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/grunnverk/core.git"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "npm run lint && tsc --noEmit && vite build",
|
|
23
|
+
"dev": "vite",
|
|
24
|
+
"watch": "vite build --watch",
|
|
25
|
+
"test": "vitest run --coverage",
|
|
26
|
+
"lint": "eslint . --ext .ts",
|
|
27
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
28
|
+
"clean": "rm -rf dist",
|
|
29
|
+
"precommit": "npm run clean && npm run build && npm run lint && npm run test",
|
|
30
|
+
"prepublishOnly": "npm run clean && npm run lint && npm run build && npm run test"
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"kodrdriv",
|
|
34
|
+
"core",
|
|
35
|
+
"utilities",
|
|
36
|
+
"git",
|
|
37
|
+
"automation"
|
|
38
|
+
],
|
|
39
|
+
"author": "Tim O'Brien <tobrien@discursive.com>",
|
|
40
|
+
"license": "Apache-2.0",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@eldrforge/git-tools": "^0.1.16",
|
|
43
|
+
"@eldrforge/github-tools": "^0.1.18",
|
|
44
|
+
"@eldrforge/ai-service": "^0.1.17",
|
|
45
|
+
"@eldrforge/shared": "^0.1.6",
|
|
46
|
+
"@riotprompt/riotprompt": "^0.0.10",
|
|
47
|
+
"@theunwalked/cardigantime": "^0.0.10",
|
|
48
|
+
"dotenv": "^16.4.7",
|
|
49
|
+
"glob": "^11.0.2",
|
|
50
|
+
"openai": "^4.87.3",
|
|
51
|
+
"winston": "^3.17.0",
|
|
52
|
+
"zod": "^3.24.2"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@eslint/eslintrc": "^3.3.1",
|
|
56
|
+
"@eslint/js": "^9.33.0",
|
|
57
|
+
"@swc/core": "^1.13.3",
|
|
58
|
+
"@types/node": "^25.0.3",
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "^8.39.1",
|
|
60
|
+
"@typescript-eslint/parser": "^8.39.1",
|
|
61
|
+
"@vitest/coverage-v8": "^4.0.13",
|
|
62
|
+
"esbuild": "0.25.10",
|
|
63
|
+
"eslint": "^9.33.0",
|
|
64
|
+
"eslint-plugin-import": "^2.32.0",
|
|
65
|
+
"globals": "^16.3.0",
|
|
66
|
+
"mockdate": "^3.0.5",
|
|
67
|
+
"typescript": "^5.9.2",
|
|
68
|
+
"vite": "^7.1.2",
|
|
69
|
+
"vite-plugin-dts": "^4.3.0",
|
|
70
|
+
"vite-plugin-node": "^7.0.0",
|
|
71
|
+
"vitest": "^4.0.13"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|