@eldrforge/kodrdriv 1.2.29 → 1.2.124
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/dist/application.js +16 -13
- package/dist/application.js.map +1 -1
- package/dist/arguments.js +5 -5
- package/dist/arguments.js.map +1 -1
- package/dist/commands/audio-review.js +2 -5
- package/dist/commands/audio-review.js.map +1 -1
- package/dist/commands/clean.js +2 -4
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/commit.js +3 -6
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/development.js +7 -7
- package/dist/commands/development.js.map +1 -1
- package/dist/commands/link.js +3 -7
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/precommit.js +99 -0
- package/dist/commands/precommit.js.map +1 -0
- package/dist/commands/publish.js +47 -32
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.js +3 -7
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +4 -6
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/tree.js +213 -84
- package/dist/commands/tree.js.map +1 -1
- package/dist/commands/unlink.js +3 -7
- package/dist/commands/unlink.js.map +1 -1
- package/dist/commands/updates.js +2 -4
- package/dist/commands/updates.js.map +1 -1
- package/dist/commands/versions.js +3 -7
- package/dist/commands/versions.js.map +1 -1
- package/dist/constants.js +4 -2
- package/dist/constants.js.map +1 -1
- package/dist/content/files.js +2 -4
- package/dist/content/files.js.map +1 -1
- package/dist/execution/CommandValidator.js +33 -1
- package/dist/execution/CommandValidator.js.map +1 -1
- package/dist/execution/ResourceMonitor.js +26 -1
- package/dist/execution/ResourceMonitor.js.map +1 -1
- package/dist/execution/TreeExecutionAdapter.js +2 -2
- package/dist/execution/TreeExecutionAdapter.js.map +1 -1
- package/dist/util/checkpointManager.js +2 -4
- package/dist/util/checkpointManager.js.map +1 -1
- package/dist/util/dependencyGraph.js +2 -4
- package/dist/util/dependencyGraph.js.map +1 -1
- package/dist/util/general.js +8 -219
- package/dist/util/general.js.map +1 -1
- package/dist/util/gitMutex.js +63 -18
- package/dist/util/gitMutex.js.map +1 -1
- package/dist/util/precommitOptimizations.js +310 -0
- package/dist/util/precommitOptimizations.js.map +1 -0
- package/dist/util/storageAdapter.js +2 -6
- package/dist/util/storageAdapter.js.map +1 -1
- package/dist/util/validation.js +3 -3
- package/dist/util/validation.js.map +1 -1
- package/dist/utils/branchState.js +178 -45
- package/dist/utils/branchState.js.map +1 -1
- package/package.json +6 -5
- package/AI-FRIENDLY-LOGGING-GUIDE.md +0 -237
- package/AI-LOGGING-MIGRATION-COMPLETE.md +0 -371
- package/ALREADY-PUBLISHED-PACKAGES-FIX.md +0 -264
- package/AUDIT-BRANCHES-PROGRESS-FIX.md +0 -90
- package/AUDIT-EXAMPLE-OUTPUT.md +0 -113
- package/CHECKPOINT-RECOVERY-FIX.md +0 -450
- package/LOGGING-MIGRATION-STATUS.md +0 -186
- package/MONOREPO-PUBLISH-IMPROVEMENTS.md +0 -281
- package/PARALLEL-EXECUTION-FIXES.md +0 -132
- package/PARALLEL-PUBLISH-DEBUGGING-GUIDE.md +0 -441
- package/PARALLEL-PUBLISH-FIXES-IMPLEMENTED.md +0 -405
- package/PARALLEL-PUBLISH-IMPROVEMENTS-IMPLEMENTED.md +0 -439
- package/PARALLEL-PUBLISH-LOGGING-FIXES.md +0 -274
- package/PARALLEL-PUBLISH-QUICK-REFERENCE.md +0 -375
- package/PARALLEL_EXECUTION_FIX.md +0 -146
- package/PUBLISH_IMPROVEMENTS_IMPLEMENTED.md +0 -294
- package/RECOVERY-FIXES.md +0 -72
- package/SUBMODULE-LOCK-FIX.md +0 -132
- package/VERSION-AUDIT-FIX.md +0 -333
- package/WORKFLOW-PRECHECK-IMPLEMENTATION.md +0 -239
- package/WORKFLOW-SKIP-SUMMARY.md +0 -121
- package/dist/util/safety.js +0 -166
- package/dist/util/safety.js.map +0 -1
- package/dist/util/stdin.js +0 -133
- package/dist/util/stdin.js.map +0 -1
- package/dist/util/storage.js +0 -187
- package/dist/util/storage.js.map +0 -1
package/dist/application.js
CHANGED
|
@@ -2,23 +2,24 @@ import * as Cardigantime from '@theunwalked/cardigantime';
|
|
|
2
2
|
import 'dotenv/config';
|
|
3
3
|
import { setLogger } from '@eldrforge/git-tools';
|
|
4
4
|
import { setLogger as setLogger$1, setPromptFunction } from '@eldrforge/github-tools';
|
|
5
|
-
import { promptConfirmation } from '
|
|
5
|
+
import { promptConfirmation } from '@eldrforge/shared';
|
|
6
6
|
import { configure } from './arguments.js';
|
|
7
7
|
import { execute as execute$1 } from './commands/audio-commit.js';
|
|
8
8
|
import { execute as execute$7 } from './commands/audio-review.js';
|
|
9
9
|
import { execute as execute$8 } from './commands/clean.js';
|
|
10
10
|
import { execute } from './commands/commit.js';
|
|
11
|
-
import { execute as execute$
|
|
11
|
+
import { execute as execute$c } from './commands/development.js';
|
|
12
12
|
import { execute as execute$5 } from './commands/link.js';
|
|
13
|
+
import { execute as execute$9 } from './commands/precommit.js';
|
|
13
14
|
import { execute as execute$3 } from './commands/publish.js';
|
|
14
15
|
import { execute as execute$2 } from './commands/release.js';
|
|
15
|
-
import { execute as execute$
|
|
16
|
-
import { execute as execute$
|
|
16
|
+
import { execute as execute$a } from './commands/review.js';
|
|
17
|
+
import { execute as execute$b } from './commands/select-audio.js';
|
|
17
18
|
import { execute as execute$4 } from './commands/tree.js';
|
|
18
19
|
import { execute as execute$6 } from './commands/unlink.js';
|
|
19
|
-
import { execute as execute$
|
|
20
|
-
import { execute as execute$
|
|
21
|
-
import { DEFAULT_CONFIG_DIR, VERSION, COMMAND_CHECK_CONFIG, COMMAND_INIT_CONFIG, COMMAND_COMMIT, COMMAND_AUDIO_COMMIT, COMMAND_RELEASE, COMMAND_PUBLISH, COMMAND_TREE, COMMAND_LINK, COMMAND_UNLINK, COMMAND_AUDIO_REVIEW, COMMAND_CLEAN, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_DEVELOPMENT, COMMAND_VERSIONS, COMMAND_UPDATES } from './constants.js';
|
|
20
|
+
import { execute as execute$e } from './commands/updates.js';
|
|
21
|
+
import { execute as execute$d } from './commands/versions.js';
|
|
22
|
+
import { DEFAULT_CONFIG_DIR, VERSION, COMMAND_CHECK_CONFIG, COMMAND_INIT_CONFIG, COMMAND_COMMIT, COMMAND_AUDIO_COMMIT, COMMAND_RELEASE, COMMAND_PUBLISH, COMMAND_TREE, COMMAND_LINK, COMMAND_UNLINK, COMMAND_AUDIO_REVIEW, COMMAND_CLEAN, COMMAND_PRECOMMIT, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_DEVELOPMENT, COMMAND_VERSIONS, COMMAND_UPDATES } from './constants.js';
|
|
22
23
|
import { UserCancellationError } from './error/CommandErrors.js';
|
|
23
24
|
import { getLogger, setLogLevel } from './logging.js';
|
|
24
25
|
|
|
@@ -115,7 +116,7 @@ async function runApplication() {
|
|
|
115
116
|
// Unknown tree argument, let it fail naturally in tree.ts
|
|
116
117
|
commandName = 'tree';
|
|
117
118
|
}
|
|
118
|
-
} else if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'tree' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'review' || command === 'select-audio' || command === 'development' || command === 'versions' || command === 'updates') {
|
|
119
|
+
} else if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'tree' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'precommit' || command === 'review' || command === 'select-audio' || command === 'development' || command === 'versions' || command === 'updates') {
|
|
119
120
|
commandName = command;
|
|
120
121
|
}
|
|
121
122
|
let summary = '';
|
|
@@ -157,17 +158,19 @@ async function runApplication() {
|
|
|
157
158
|
} else if (commandName === COMMAND_CLEAN) {
|
|
158
159
|
await execute$8(runConfig);
|
|
159
160
|
summary = 'Output directory cleaned successfully.';
|
|
160
|
-
} else if (commandName ===
|
|
161
|
+
} else if (commandName === COMMAND_PRECOMMIT) {
|
|
161
162
|
summary = await execute$9(runConfig);
|
|
163
|
+
} else if (commandName === COMMAND_REVIEW) {
|
|
164
|
+
summary = await execute$a(runConfig);
|
|
162
165
|
} else if (commandName === COMMAND_SELECT_AUDIO) {
|
|
163
|
-
await execute$
|
|
166
|
+
await execute$b(runConfig);
|
|
164
167
|
summary = 'Audio selection completed successfully.';
|
|
165
168
|
} else if (commandName === COMMAND_DEVELOPMENT) {
|
|
166
|
-
summary = await execute$b(runConfig);
|
|
167
|
-
} else if (commandName === COMMAND_VERSIONS) {
|
|
168
169
|
summary = await execute$c(runConfig);
|
|
169
|
-
} else if (commandName ===
|
|
170
|
+
} else if (commandName === COMMAND_VERSIONS) {
|
|
170
171
|
summary = await execute$d(runConfig);
|
|
172
|
+
} else if (commandName === COMMAND_UPDATES) {
|
|
173
|
+
summary = await execute$e(runConfig);
|
|
171
174
|
}
|
|
172
175
|
// eslint-disable-next-line no-console
|
|
173
176
|
console.log(`\n\n${summary}\n\n`);
|
package/dist/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sources":["../src/application.ts"],"sourcesContent":["import * as Cardigantime from '@theunwalked/cardigantime';\nimport 'dotenv/config';\nimport { setLogger as setGitLogger } from '@eldrforge/git-tools';\nimport { setLogger as setGitHubLogger, setPromptFunction } from '@eldrforge/github-tools';\nimport { promptConfirmation } from './util/stdin';\nimport { CommandConfig } from 'types';\nimport * as Arguments from './arguments';\nimport * as AudioCommit from './commands/audio-commit';\nimport * as AudioReview from './commands/audio-review';\nimport * as Clean from './commands/clean';\nimport * as Commit from './commands/commit';\nimport * as Development from './commands/development';\nimport * as Link from './commands/link';\nimport * as Publish from './commands/publish';\nimport * as Release from './commands/release';\nimport * as Review from './commands/review';\nimport * as SelectAudio from './commands/select-audio';\nimport * as Tree from './commands/tree';\nimport * as Unlink from './commands/unlink';\nimport * as Updates from './commands/updates';\nimport * as Versions from './commands/versions';\nimport { COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_DEVELOPMENT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_TREE, COMMAND_UNLINK, COMMAND_UPDATES, COMMAND_VERSIONS, DEFAULT_CONFIG_DIR, VERSION } from './constants';\nimport { UserCancellationError } from './error/CommandErrors';\nimport { getLogger, setLogLevel } from './logging';\nimport { Config, SecureConfig } from './types';\n\n/**\n * Print debug information about the command being executed when debug flag is enabled.\n */\nfunction printDebugCommandInfo(commandName: string, runConfig: Config): void {\n if (runConfig.debug) {\n const logger = getLogger();\n logger.info('DEBUG_INFO_HEADER: KodrDriv debug information');\n logger.info('DEBUG_INFO_COMMAND: Command being executed | Command: %s', commandName);\n logger.info('DEBUG_INFO_VERSION: KodrDriv version | Version: %s', VERSION);\n logger.info('DEBUG_INFO_FOOTER: End of debug information');\n }\n}\n\n/**\n * Configure early logging based on command line flags.\n *\n * Hey we need this because we need to be able to debug CardiganTime.\n * This method checks for --verbose and --debug flags early in the process\n * before CardiganTime is configured, allowing us to capture debug output\n * from the CardiganTime initialization itself.\n */\nexport function configureEarlyLogging(): void {\n const hasVerbose = process.argv.includes('--verbose');\n const hasDebug = process.argv.includes('--debug');\n\n // Set log level based on early flag detection\n if (hasDebug) {\n setLogLevel('debug');\n } else if (hasVerbose) {\n setLogLevel('verbose');\n }\n}\n\nexport async function runApplication(): Promise<void> {\n // Configure logging early, before CardiganTime initialization\n configureEarlyLogging();\n\n // Use proper typing for CardiganTime create function\n interface CardigantimeCreateParams {\n defaults?: any;\n features?: string[];\n configShape?: any;\n logger?: any;\n }\n\n interface CardigantimeInstance {\n read: (args: any) => Promise<any>;\n checkConfig: () => Promise<void>;\n generateConfig: (dir: string) => Promise<void>;\n setLogger: (logger: any) => void;\n }\n\n const cardigantimeModule = Cardigantime as any;\n const createCardigantime = cardigantimeModule.create as (params: CardigantimeCreateParams) => CardigantimeInstance;\n\n const cardigantime = createCardigantime({\n defaults: {\n configDirectory: DEFAULT_CONFIG_DIR,\n },\n features: ['config', 'hierarchical'],\n logger: getLogger(),\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [runConfig, secureConfig, commandConfig]: [Config, SecureConfig, CommandConfig] = await Arguments.configure(cardigantime); // Pass cardigantime instance\n\n // Set log level based on verbose flag\n if (runConfig.verbose) {\n setLogLevel('verbose');\n }\n if (runConfig.debug) {\n setLogLevel('debug');\n }\n\n const logger = getLogger();\n cardigantime.setLogger(logger);\n\n // Configure external packages to use our logger and prompt\n setGitLogger(logger);\n setGitHubLogger(logger);\n setPromptFunction(promptConfirmation);\n\n // Display version information\n logger.info('APPLICATION_STARTING: KodrDriv application initializing | Version: %s | Status: starting', VERSION);\n\n // Handle check-config command first\n if (commandConfig.commandName === COMMAND_CHECK_CONFIG) {\n // CardiganTime's checkConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Handle init-config command\n if (commandConfig.commandName === COMMAND_INIT_CONFIG) {\n // CardiganTime's initConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Get the command from Commander\n const command = process.argv[2];\n let commandName = commandConfig.commandName;\n\n // Handle special case for tree command with built-in command argument\n if (command === 'tree' && process.argv[3]) {\n const treeBuiltInCommand = process.argv[3];\n const supportedBuiltInCommands = ['commit', 'publish', 'link', 'unlink', 'development', 'updates'];\n if (supportedBuiltInCommands.includes(treeBuiltInCommand)) {\n // This is a tree command with built-in command, keep commandName as 'tree'\n commandName = 'tree';\n } else {\n // Unknown tree argument, let it fail naturally in tree.ts\n commandName = 'tree';\n }\n }\n // If we have a specific command argument, use that\n else if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'tree' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'review' || command === 'select-audio' || command === 'development' || command === 'versions' || command === 'updates') {\n commandName = command;\n }\n\n let summary: string = '';\n\n try {\n // Print debug info at the start of command execution\n if (commandName) {\n printDebugCommandInfo(commandName, runConfig);\n }\n\n if (commandName === COMMAND_COMMIT) {\n summary = await Commit.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_COMMIT) {\n summary = await AudioCommit.execute(runConfig);\n } else if (commandName === COMMAND_RELEASE) {\n const releaseSummary = await Release.execute(runConfig);\n summary = `${releaseSummary.title}\\n\\n${releaseSummary.body}`;\n } else if (commandName === COMMAND_PUBLISH) {\n await Publish.execute(runConfig);\n } else if (commandName === COMMAND_TREE) {\n // Handle tree directories mapping from command-specific arguments\n if (runConfig.audioReview?.directory && !runConfig.tree?.directories) {\n runConfig.tree = runConfig.tree || {};\n runConfig.tree.directories = [runConfig.audioReview.directory];\n }\n // Handle tree exclusion patterns - use global excludedPatterns for tree\n if (runConfig.excludedPatterns && !runConfig.tree?.exclude) {\n runConfig.tree = runConfig.tree || {};\n runConfig.tree.exclude = runConfig.excludedPatterns;\n }\n summary = await Tree.execute(runConfig);\n } else if (commandName === COMMAND_LINK) {\n summary = await Link.execute(runConfig);\n } else if (commandName === COMMAND_UNLINK) {\n summary = await Unlink.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_REVIEW) {\n summary = await AudioReview.execute(runConfig);\n } else if (commandName === COMMAND_CLEAN) {\n await Clean.execute(runConfig);\n summary = 'Output directory cleaned successfully.';\n } else if (commandName === COMMAND_REVIEW) {\n summary = await Review.execute(runConfig);\n } else if (commandName === COMMAND_SELECT_AUDIO) {\n await SelectAudio.execute(runConfig);\n summary = 'Audio selection completed successfully.';\n } else if (commandName === COMMAND_DEVELOPMENT) {\n summary = await Development.execute(runConfig);\n } else if (commandName === COMMAND_VERSIONS) {\n summary = await Versions.execute(runConfig);\n } else if (commandName === COMMAND_UPDATES) {\n summary = await Updates.execute(runConfig);\n }\n\n // eslint-disable-next-line no-console\n console.log(`\\n\\n${summary}\\n\\n`);\n } catch (error: any) {\n // Handle user cancellation gracefully\n if (error instanceof UserCancellationError) {\n logger.info('APPLICATION_ERROR: Application error occurred | Error: ' + error.message);\n process.exit(0);\n }\n\n // Re-throw other errors to be handled by main.ts\n throw error;\n }\n}\n"],"names":["printDebugCommandInfo","commandName","runConfig","debug","logger","getLogger","info","VERSION","configureEarlyLogging","hasVerbose","process","argv","includes","hasDebug","setLogLevel","runApplication","cardigantimeModule","Cardigantime","createCardigantime","create","cardigantime","defaults","configDirectory","DEFAULT_CONFIG_DIR","features","secureConfig","commandConfig","Arguments","verbose","setLogger","setGitLogger","setGitHubLogger","setPromptFunction","promptConfirmation","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","command","treeBuiltInCommand","supportedBuiltInCommands","summary","COMMAND_COMMIT","Commit","COMMAND_AUDIO_COMMIT","AudioCommit","COMMAND_RELEASE","releaseSummary","Release","title","body","COMMAND_PUBLISH","Publish","COMMAND_TREE","audioReview","directory","tree","directories","excludedPatterns","exclude","Tree","COMMAND_LINK","Link","COMMAND_UNLINK","Unlink","COMMAND_AUDIO_REVIEW","AudioReview","COMMAND_CLEAN","Clean","COMMAND_REVIEW","Review","COMMAND_SELECT_AUDIO","SelectAudio","COMMAND_DEVELOPMENT","Development","COMMAND_VERSIONS","Versions","COMMAND_UPDATES","Updates","console","log","error","UserCancellationError","message","exit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"application.js","sources":["../src/application.ts"],"sourcesContent":["import * as Cardigantime from '@theunwalked/cardigantime';\nimport 'dotenv/config';\nimport { setLogger as setGitLogger } from '@eldrforge/git-tools';\nimport { setLogger as setGitHubLogger, setPromptFunction } from '@eldrforge/github-tools';\nimport { promptConfirmation } from '@eldrforge/shared';\nimport { CommandConfig } from 'types';\nimport * as Arguments from './arguments';\nimport * as AudioCommit from './commands/audio-commit';\nimport * as AudioReview from './commands/audio-review';\nimport * as Clean from './commands/clean';\nimport * as Commit from './commands/commit';\nimport * as Development from './commands/development';\nimport * as Link from './commands/link';\nimport * as Precommit from './commands/precommit';\nimport * as Publish from './commands/publish';\nimport * as Release from './commands/release';\nimport * as Review from './commands/review';\nimport * as SelectAudio from './commands/select-audio';\nimport * as Tree from './commands/tree';\nimport * as Unlink from './commands/unlink';\nimport * as Updates from './commands/updates';\nimport * as Versions from './commands/versions';\nimport { COMMAND_AUDIO_COMMIT, COMMAND_AUDIO_REVIEW, COMMAND_CHECK_CONFIG, COMMAND_CLEAN, COMMAND_COMMIT, COMMAND_DEVELOPMENT, COMMAND_INIT_CONFIG, COMMAND_LINK, COMMAND_PRECOMMIT, COMMAND_PUBLISH, COMMAND_RELEASE, COMMAND_REVIEW, COMMAND_SELECT_AUDIO, COMMAND_TREE, COMMAND_UNLINK, COMMAND_UPDATES, COMMAND_VERSIONS, DEFAULT_CONFIG_DIR, VERSION } from './constants';\nimport { UserCancellationError } from './error/CommandErrors';\nimport { getLogger, setLogLevel } from './logging';\nimport { Config, SecureConfig } from './types';\n\n/**\n * Print debug information about the command being executed when debug flag is enabled.\n */\nfunction printDebugCommandInfo(commandName: string, runConfig: Config): void {\n if (runConfig.debug) {\n const logger = getLogger();\n logger.info('DEBUG_INFO_HEADER: KodrDriv debug information');\n logger.info('DEBUG_INFO_COMMAND: Command being executed | Command: %s', commandName);\n logger.info('DEBUG_INFO_VERSION: KodrDriv version | Version: %s', VERSION);\n logger.info('DEBUG_INFO_FOOTER: End of debug information');\n }\n}\n\n/**\n * Configure early logging based on command line flags.\n *\n * Hey we need this because we need to be able to debug CardiganTime.\n * This method checks for --verbose and --debug flags early in the process\n * before CardiganTime is configured, allowing us to capture debug output\n * from the CardiganTime initialization itself.\n */\nexport function configureEarlyLogging(): void {\n const hasVerbose = process.argv.includes('--verbose');\n const hasDebug = process.argv.includes('--debug');\n\n // Set log level based on early flag detection\n if (hasDebug) {\n setLogLevel('debug');\n } else if (hasVerbose) {\n setLogLevel('verbose');\n }\n}\n\nexport async function runApplication(): Promise<void> {\n // Configure logging early, before CardiganTime initialization\n configureEarlyLogging();\n\n // Use proper typing for CardiganTime create function\n interface CardigantimeCreateParams {\n defaults?: any;\n features?: string[];\n configShape?: any;\n logger?: any;\n }\n\n interface CardigantimeInstance {\n read: (args: any) => Promise<any>;\n checkConfig: () => Promise<void>;\n generateConfig: (dir: string) => Promise<void>;\n setLogger: (logger: any) => void;\n }\n\n const cardigantimeModule = Cardigantime as any;\n const createCardigantime = cardigantimeModule.create as (params: CardigantimeCreateParams) => CardigantimeInstance;\n\n const cardigantime = createCardigantime({\n defaults: {\n configDirectory: DEFAULT_CONFIG_DIR,\n },\n features: ['config', 'hierarchical'],\n logger: getLogger(),\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [runConfig, secureConfig, commandConfig]: [Config, SecureConfig, CommandConfig] = await Arguments.configure(cardigantime); // Pass cardigantime instance\n\n // Set log level based on verbose flag\n if (runConfig.verbose) {\n setLogLevel('verbose');\n }\n if (runConfig.debug) {\n setLogLevel('debug');\n }\n\n const logger = getLogger();\n cardigantime.setLogger(logger);\n\n // Configure external packages to use our logger and prompt\n setGitLogger(logger);\n setGitHubLogger(logger);\n setPromptFunction(promptConfirmation);\n\n // Display version information\n logger.info('APPLICATION_STARTING: KodrDriv application initializing | Version: %s | Status: starting', VERSION);\n\n // Handle check-config command first\n if (commandConfig.commandName === COMMAND_CHECK_CONFIG) {\n // CardiganTime's checkConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Handle init-config command\n if (commandConfig.commandName === COMMAND_INIT_CONFIG) {\n // CardiganTime's initConfig has already been called in Arguments.configure()\n // No additional processing needed here\n return;\n }\n\n // Get the command from Commander\n const command = process.argv[2];\n let commandName = commandConfig.commandName;\n\n // Handle special case for tree command with built-in command argument\n if (command === 'tree' && process.argv[3]) {\n const treeBuiltInCommand = process.argv[3];\n const supportedBuiltInCommands = ['commit', 'publish', 'link', 'unlink', 'development', 'updates'];\n if (supportedBuiltInCommands.includes(treeBuiltInCommand)) {\n // This is a tree command with built-in command, keep commandName as 'tree'\n commandName = 'tree';\n } else {\n // Unknown tree argument, let it fail naturally in tree.ts\n commandName = 'tree';\n }\n }\n // If we have a specific command argument, use that\n else if (command === 'commit' || command === 'audio-commit' || command === 'release' || command === 'publish' || command === 'tree' || command === 'link' || command === 'unlink' || command === 'audio-review' || command === 'clean' || command === 'precommit' || command === 'review' || command === 'select-audio' || command === 'development' || command === 'versions' || command === 'updates') {\n commandName = command;\n }\n\n let summary: string = '';\n\n try {\n // Print debug info at the start of command execution\n if (commandName) {\n printDebugCommandInfo(commandName, runConfig);\n }\n\n if (commandName === COMMAND_COMMIT) {\n summary = await Commit.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_COMMIT) {\n summary = await AudioCommit.execute(runConfig);\n } else if (commandName === COMMAND_RELEASE) {\n const releaseSummary = await Release.execute(runConfig);\n summary = `${releaseSummary.title}\\n\\n${releaseSummary.body}`;\n } else if (commandName === COMMAND_PUBLISH) {\n await Publish.execute(runConfig);\n } else if (commandName === COMMAND_TREE) {\n // Handle tree directories mapping from command-specific arguments\n if (runConfig.audioReview?.directory && !runConfig.tree?.directories) {\n runConfig.tree = runConfig.tree || {};\n runConfig.tree.directories = [runConfig.audioReview.directory];\n }\n // Handle tree exclusion patterns - use global excludedPatterns for tree\n if (runConfig.excludedPatterns && !runConfig.tree?.exclude) {\n runConfig.tree = runConfig.tree || {};\n runConfig.tree.exclude = runConfig.excludedPatterns;\n }\n summary = await Tree.execute(runConfig);\n } else if (commandName === COMMAND_LINK) {\n summary = await Link.execute(runConfig);\n } else if (commandName === COMMAND_UNLINK) {\n summary = await Unlink.execute(runConfig);\n } else if (commandName === COMMAND_AUDIO_REVIEW) {\n summary = await AudioReview.execute(runConfig);\n } else if (commandName === COMMAND_CLEAN) {\n await Clean.execute(runConfig);\n summary = 'Output directory cleaned successfully.';\n } else if (commandName === COMMAND_PRECOMMIT) {\n summary = await Precommit.execute(runConfig);\n } else if (commandName === COMMAND_REVIEW) {\n summary = await Review.execute(runConfig);\n } else if (commandName === COMMAND_SELECT_AUDIO) {\n await SelectAudio.execute(runConfig);\n summary = 'Audio selection completed successfully.';\n } else if (commandName === COMMAND_DEVELOPMENT) {\n summary = await Development.execute(runConfig);\n } else if (commandName === COMMAND_VERSIONS) {\n summary = await Versions.execute(runConfig);\n } else if (commandName === COMMAND_UPDATES) {\n summary = await Updates.execute(runConfig);\n }\n\n // eslint-disable-next-line no-console\n console.log(`\\n\\n${summary}\\n\\n`);\n } catch (error: any) {\n // Handle user cancellation gracefully\n if (error instanceof UserCancellationError) {\n logger.info('APPLICATION_ERROR: Application error occurred | Error: ' + error.message);\n process.exit(0);\n }\n\n // Re-throw other errors to be handled by main.ts\n throw error;\n }\n}\n"],"names":["printDebugCommandInfo","commandName","runConfig","debug","logger","getLogger","info","VERSION","configureEarlyLogging","hasVerbose","process","argv","includes","hasDebug","setLogLevel","runApplication","cardigantimeModule","Cardigantime","createCardigantime","create","cardigantime","defaults","configDirectory","DEFAULT_CONFIG_DIR","features","secureConfig","commandConfig","Arguments","verbose","setLogger","setGitLogger","setGitHubLogger","setPromptFunction","promptConfirmation","COMMAND_CHECK_CONFIG","COMMAND_INIT_CONFIG","command","treeBuiltInCommand","supportedBuiltInCommands","summary","COMMAND_COMMIT","Commit","COMMAND_AUDIO_COMMIT","AudioCommit","COMMAND_RELEASE","releaseSummary","Release","title","body","COMMAND_PUBLISH","Publish","COMMAND_TREE","audioReview","directory","tree","directories","excludedPatterns","exclude","Tree","COMMAND_LINK","Link","COMMAND_UNLINK","Unlink","COMMAND_AUDIO_REVIEW","AudioReview","COMMAND_CLEAN","Clean","COMMAND_PRECOMMIT","Precommit","COMMAND_REVIEW","Review","COMMAND_SELECT_AUDIO","SelectAudio","COMMAND_DEVELOPMENT","Development","COMMAND_VERSIONS","Versions","COMMAND_UPDATES","Updates","console","log","error","UserCancellationError","message","exit"],"mappings":"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"}
|
package/dist/arguments.js
CHANGED
|
@@ -3,9 +3,8 @@ import path__default from 'path';
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { PROGRAM_NAME, VERSION, KODRDRIV_DEFAULTS, ALLOWED_COMMANDS, DEFAULT_COMMAND } from './constants.js';
|
|
5
5
|
import { getLogger } from './logging.js';
|
|
6
|
-
import {
|
|
6
|
+
import { readStdin, createStorage } from '@eldrforge/shared';
|
|
7
7
|
import { safeJsonParse } from '@eldrforge/git-tools';
|
|
8
|
-
import { readStdin } from './util/stdin.js';
|
|
9
8
|
|
|
10
9
|
z.object({
|
|
11
10
|
dryRun: z.boolean().optional(),
|
|
@@ -639,6 +638,7 @@ async function getCliConfig(program, commands) {
|
|
|
639
638
|
Built-in commands:
|
|
640
639
|
commit - Run 'kodrdriv commit' in each package
|
|
641
640
|
publish - Run 'kodrdriv publish' in each package (supports --parallel)
|
|
641
|
+
precommit - Run precommit checks (lint -> build -> test) in each package
|
|
642
642
|
link - Create file: dependencies for local development
|
|
643
643
|
unlink - Restore npm registry dependencies
|
|
644
644
|
development - Switch to development branch with version bump
|
|
@@ -800,6 +800,8 @@ Examples:
|
|
|
800
800
|
});
|
|
801
801
|
const cleanCommand = program.command('clean').description('Remove the output directory and all generated files');
|
|
802
802
|
addSharedOptions(cleanCommand);
|
|
803
|
+
const precommitCommand = program.command('precommit').description('Run precommit checks (lint -> build -> test) with optimization');
|
|
804
|
+
addSharedOptions(precommitCommand);
|
|
803
805
|
const developmentCommand = program.command('development').option('--target-version <targetVersion>', 'target version bump type (patch, minor, major) or explicit version (e.g., "2.1.0")', 'patch').option('--no-milestones', 'disable GitHub milestone integration').option('--tag-working-branch', 'tag working branch with release version before bumping to dev (default: true)').option('--no-tag-working-branch', 'skip tagging working branch').option('--create-retroactive-tags', 'create tags for past releases found in git history (one-time operation)').option('--working-tag-prefix <prefix>', 'tag prefix for working branch tags (default: "working/")').description('Switch to working branch and set up development version');
|
|
804
806
|
addSharedOptions(developmentCommand);
|
|
805
807
|
const versionsCommand = program.command('versions <subcommand>').option('--directories [directories...]', 'directories to scan for packages (defaults to current directory)').description('Update dependency versions across packages. Subcommands: minor');
|
|
@@ -1159,9 +1161,7 @@ function validateCommand(commandName) {
|
|
|
1159
1161
|
// Export for testing
|
|
1160
1162
|
async function validateContextDirectories(contextDirectories) {
|
|
1161
1163
|
const logger = getLogger();
|
|
1162
|
-
const storage =
|
|
1163
|
-
log: logger.info
|
|
1164
|
-
});
|
|
1164
|
+
const storage = createStorage();
|
|
1165
1165
|
// Filter out directories that don't exist
|
|
1166
1166
|
const validDirectories = [];
|
|
1167
1167
|
for (const dir of contextDirectories){
|