@uapkg/cli 1.1.8 → 1.1.9
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/app/CompositionRoot.d.ts +47 -0
- package/dist/app/CompositionRoot.d.ts.map +1 -0
- package/dist/app/CompositionRoot.js +95 -0
- package/dist/app/CompositionRoot.js.map +1 -0
- package/dist/app/UAPKGApplication.d.ts +14 -0
- package/dist/app/UAPKGApplication.d.ts.map +1 -0
- package/dist/app/UAPKGApplication.js +111 -0
- package/dist/app/UAPKGApplication.js.map +1 -0
- package/dist/cli/UAPKGCommandLine.d.ts +166 -0
- package/dist/cli/UAPKGCommandLine.d.ts.map +1 -0
- package/dist/cli/UAPKGCommandLine.js +172 -0
- package/dist/cli/UAPKGCommandLine.js.map +1 -0
- package/dist/cli/parseCommandLine.d.ts +2 -0
- package/dist/cli/parseCommandLine.d.ts.map +1 -0
- package/dist/cli/parseCommandLine.js +6 -0
- package/dist/cli/parseCommandLine.js.map +1 -0
- package/dist/cli/parsing/UAPKGCommandLineParser.d.ts +8 -0
- package/dist/cli/parsing/UAPKGCommandLineParser.d.ts.map +1 -0
- package/dist/cli/parsing/UAPKGCommandLineParser.js +25 -0
- package/dist/cli/parsing/UAPKGCommandLineParser.js.map +1 -0
- package/dist/cli/parsing/UAPKGParserRegistry.d.ts +11 -0
- package/dist/cli/parsing/UAPKGParserRegistry.d.ts.map +1 -0
- package/dist/cli/parsing/UAPKGParserRegistry.js +39 -0
- package/dist/cli/parsing/UAPKGParserRegistry.js.map +1 -0
- package/dist/cli/parsing/contracts/UAPKGCommandModule.d.ts +9 -0
- package/dist/cli/parsing/contracts/UAPKGCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/contracts/UAPKGCommandModule.js +2 -0
- package/dist/cli/parsing/contracts/UAPKGCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/AddCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/AddCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/AddCommandModule.js +37 -0
- package/dist/cli/parsing/modules/AddCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/ConfigCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/ConfigCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/ConfigCommandModule.js +84 -0
- package/dist/cli/parsing/modules/ConfigCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/InitCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/InitCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/InitCommandModule.js +23 -0
- package/dist/cli/parsing/modules/InitCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/InstallCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/InstallCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/InstallCommandModule.js +29 -0
- package/dist/cli/parsing/modules/InstallCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/ListCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/ListCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/ListCommandModule.js +16 -0
- package/dist/cli/parsing/modules/ListCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/OutdatedCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/OutdatedCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/OutdatedCommandModule.js +17 -0
- package/dist/cli/parsing/modules/OutdatedCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/PackCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/PackCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/PackCommandModule.js +29 -0
- package/dist/cli/parsing/modules/PackCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/ProjectGetNameCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/ProjectGetNameCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/ProjectGetNameCommandModule.js +12 -0
- package/dist/cli/parsing/modules/ProjectGetNameCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/RegistryCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/RegistryCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/RegistryCommandModule.js +92 -0
- package/dist/cli/parsing/modules/RegistryCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/RemoveCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/RemoveCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/RemoveCommandModule.js +15 -0
- package/dist/cli/parsing/modules/RemoveCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/UpdateCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/UpdateCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/UpdateCommandModule.js +26 -0
- package/dist/cli/parsing/modules/UpdateCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/WhyCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/WhyCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/WhyCommandModule.js +15 -0
- package/dist/cli/parsing/modules/WhyCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/sharedOptions.d.ts +8 -0
- package/dist/cli/parsing/modules/sharedOptions.d.ts.map +1 -0
- package/dist/cli/parsing/modules/sharedOptions.js +26 -0
- package/dist/cli/parsing/modules/sharedOptions.js.map +1 -0
- package/dist/cli/runUAPKGCLI.d.ts +2 -0
- package/dist/cli/runUAPKGCLI.d.ts.map +1 -0
- package/dist/cli/runUAPKGCLI.js +7 -0
- package/dist/cli/runUAPKGCLI.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/AddCommand.d.ts +26 -0
- package/dist/commands/AddCommand.d.ts.map +1 -0
- package/dist/commands/AddCommand.js +55 -0
- package/dist/commands/AddCommand.js.map +1 -0
- package/dist/commands/Command.d.ts +4 -0
- package/dist/commands/Command.d.ts.map +1 -0
- package/dist/commands/Command.js +2 -0
- package/dist/commands/Command.js.map +1 -0
- package/dist/commands/ConfigCommand.d.ts +28 -0
- package/dist/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/commands/ConfigCommand.js +187 -0
- package/dist/commands/ConfigCommand.js.map +1 -0
- package/dist/commands/InitCommand.d.ts +19 -0
- package/dist/commands/InitCommand.d.ts.map +1 -0
- package/dist/commands/InitCommand.js +61 -0
- package/dist/commands/InitCommand.js.map +1 -0
- package/dist/commands/InstallCommand.d.ts +30 -0
- package/dist/commands/InstallCommand.d.ts.map +1 -0
- package/dist/commands/InstallCommand.js +97 -0
- package/dist/commands/InstallCommand.js.map +1 -0
- package/dist/commands/ListCommand.d.ts +20 -0
- package/dist/commands/ListCommand.d.ts.map +1 -0
- package/dist/commands/ListCommand.js +83 -0
- package/dist/commands/ListCommand.js.map +1 -0
- package/dist/commands/OutdatedCommand.d.ts +20 -0
- package/dist/commands/OutdatedCommand.d.ts.map +1 -0
- package/dist/commands/OutdatedCommand.js +42 -0
- package/dist/commands/OutdatedCommand.js.map +1 -0
- package/dist/commands/PackCommand.d.ts +13 -0
- package/dist/commands/PackCommand.d.ts.map +1 -0
- package/dist/commands/PackCommand.js +22 -0
- package/dist/commands/PackCommand.js.map +1 -0
- package/dist/commands/PostinstallCandidateBuilder.d.ts +25 -0
- package/dist/commands/PostinstallCandidateBuilder.d.ts.map +1 -0
- package/dist/commands/PostinstallCandidateBuilder.js +41 -0
- package/dist/commands/PostinstallCandidateBuilder.js.map +1 -0
- package/dist/commands/ProjectGetNameCommand.d.ts +14 -0
- package/dist/commands/ProjectGetNameCommand.d.ts.map +1 -0
- package/dist/commands/ProjectGetNameCommand.js +26 -0
- package/dist/commands/ProjectGetNameCommand.js.map +1 -0
- package/dist/commands/RegistryCommand.d.ts +29 -0
- package/dist/commands/RegistryCommand.d.ts.map +1 -0
- package/dist/commands/RegistryCommand.js +121 -0
- package/dist/commands/RegistryCommand.js.map +1 -0
- package/dist/commands/RemoveCommand.d.ts +14 -0
- package/dist/commands/RemoveCommand.d.ts.map +1 -0
- package/dist/commands/RemoveCommand.js +55 -0
- package/dist/commands/RemoveCommand.js.map +1 -0
- package/dist/commands/UpdateCommand.d.ts +45 -0
- package/dist/commands/UpdateCommand.d.ts.map +1 -0
- package/dist/commands/UpdateCommand.js +113 -0
- package/dist/commands/UpdateCommand.js.map +1 -0
- package/dist/commands/WhyCommand.d.ts +21 -0
- package/dist/commands/WhyCommand.d.ts.map +1 -0
- package/dist/commands/WhyCommand.js +46 -0
- package/dist/commands/WhyCommand.js.map +1 -0
- package/dist/commands/add/DependencyAddResolver.d.ts +18 -0
- package/dist/commands/add/DependencyAddResolver.d.ts.map +1 -0
- package/dist/commands/add/DependencyAddResolver.js +36 -0
- package/dist/commands/add/DependencyAddResolver.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/postinstall/api/PostinstallDsl.d.ts +44 -0
- package/dist/postinstall/api/PostinstallDsl.d.ts.map +1 -0
- package/dist/postinstall/api/PostinstallDsl.js +39 -0
- package/dist/postinstall/api/PostinstallDsl.js.map +1 -0
- package/dist/postinstall/api/definePostinstall.d.ts +18 -0
- package/dist/postinstall/api/definePostinstall.d.ts.map +1 -0
- package/dist/postinstall/api/definePostinstall.js +19 -0
- package/dist/postinstall/api/definePostinstall.js.map +1 -0
- package/dist/postinstall/index.d.ts +26 -0
- package/dist/postinstall/index.d.ts.map +1 -0
- package/dist/postinstall/index.js +37 -0
- package/dist/postinstall/index.js.map +1 -0
- package/dist/postinstall/loader/EntryResolver.d.ts +20 -0
- package/dist/postinstall/loader/EntryResolver.d.ts.map +1 -0
- package/dist/postinstall/loader/EntryResolver.js +35 -0
- package/dist/postinstall/loader/EntryResolver.js.map +1 -0
- package/dist/postinstall/loader/EsbuildTranspiler.d.ts +18 -0
- package/dist/postinstall/loader/EsbuildTranspiler.d.ts.map +1 -0
- package/dist/postinstall/loader/EsbuildTranspiler.js +58 -0
- package/dist/postinstall/loader/EsbuildTranspiler.js.map +1 -0
- package/dist/postinstall/loader/ExportValidator.d.ts +15 -0
- package/dist/postinstall/loader/ExportValidator.d.ts.map +1 -0
- package/dist/postinstall/loader/ExportValidator.js +34 -0
- package/dist/postinstall/loader/ExportValidator.js.map +1 -0
- package/dist/postinstall/loader/ModuleImporter.d.ts +29 -0
- package/dist/postinstall/loader/ModuleImporter.d.ts.map +1 -0
- package/dist/postinstall/loader/ModuleImporter.js +60 -0
- package/dist/postinstall/loader/ModuleImporter.js.map +1 -0
- package/dist/postinstall/loader/PostinstallLoader.d.ts +32 -0
- package/dist/postinstall/loader/PostinstallLoader.d.ts.map +1 -0
- package/dist/postinstall/loader/PostinstallLoader.js +60 -0
- package/dist/postinstall/loader/PostinstallLoader.js.map +1 -0
- package/dist/postinstall/markers/MarkerBlockEditor.d.ts +30 -0
- package/dist/postinstall/markers/MarkerBlockEditor.d.ts.map +1 -0
- package/dist/postinstall/markers/MarkerBlockEditor.js +46 -0
- package/dist/postinstall/markers/MarkerBlockEditor.js.map +1 -0
- package/dist/postinstall/markers/MarkerBlockService.d.ts +24 -0
- package/dist/postinstall/markers/MarkerBlockService.d.ts.map +1 -0
- package/dist/postinstall/markers/MarkerBlockService.js +46 -0
- package/dist/postinstall/markers/MarkerBlockService.js.map +1 -0
- package/dist/postinstall/markers/MarkerIntegrityValidator.d.ts +29 -0
- package/dist/postinstall/markers/MarkerIntegrityValidator.d.ts.map +1 -0
- package/dist/postinstall/markers/MarkerIntegrityValidator.js +53 -0
- package/dist/postinstall/markers/MarkerIntegrityValidator.js.map +1 -0
- package/dist/postinstall/policy/PostinstallPolicyGate.d.ts +36 -0
- package/dist/postinstall/policy/PostinstallPolicyGate.d.ts.map +1 -0
- package/dist/postinstall/policy/PostinstallPolicyGate.js +57 -0
- package/dist/postinstall/policy/PostinstallPolicyGate.js.map +1 -0
- package/dist/postinstall/runner/PostinstallOrchestrator.d.ts +71 -0
- package/dist/postinstall/runner/PostinstallOrchestrator.d.ts.map +1 -0
- package/dist/postinstall/runner/PostinstallOrchestrator.js +172 -0
- package/dist/postinstall/runner/PostinstallOrchestrator.js.map +1 -0
- package/dist/postinstall/unreal/BuildCsInjector.d.ts +23 -0
- package/dist/postinstall/unreal/BuildCsInjector.d.ts.map +1 -0
- package/dist/postinstall/unreal/BuildCsInjector.js +55 -0
- package/dist/postinstall/unreal/BuildCsInjector.js.map +1 -0
- package/dist/postinstall/unreal/CSharpInjectionEngine.d.ts +22 -0
- package/dist/postinstall/unreal/CSharpInjectionEngine.d.ts.map +1 -0
- package/dist/postinstall/unreal/CSharpInjectionEngine.js +61 -0
- package/dist/postinstall/unreal/CSharpInjectionEngine.js.map +1 -0
- package/dist/postinstall/unreal/CSharpStructureAnalyzer.d.ts +22 -0
- package/dist/postinstall/unreal/CSharpStructureAnalyzer.d.ts.map +1 -0
- package/dist/postinstall/unreal/CSharpStructureAnalyzer.js +130 -0
- package/dist/postinstall/unreal/CSharpStructureAnalyzer.js.map +1 -0
- package/dist/postinstall/unreal/CSharpStructures.d.ts +19 -0
- package/dist/postinstall/unreal/CSharpStructures.d.ts.map +1 -0
- package/dist/postinstall/unreal/CSharpStructures.js +2 -0
- package/dist/postinstall/unreal/CSharpStructures.js.map +1 -0
- package/dist/postinstall/unreal/CSharpWrapperFactory.d.ts +26 -0
- package/dist/postinstall/unreal/CSharpWrapperFactory.d.ts.map +1 -0
- package/dist/postinstall/unreal/CSharpWrapperFactory.js +60 -0
- package/dist/postinstall/unreal/CSharpWrapperFactory.js.map +1 -0
- package/dist/postinstall/unreal/PluginHash.d.ts +8 -0
- package/dist/postinstall/unreal/PluginHash.d.ts.map +1 -0
- package/dist/postinstall/unreal/PluginHash.js +13 -0
- package/dist/postinstall/unreal/PluginHash.js.map +1 -0
- package/dist/postinstall/unreal/PrettyParseError.d.ts +15 -0
- package/dist/postinstall/unreal/PrettyParseError.d.ts.map +1 -0
- package/dist/postinstall/unreal/PrettyParseError.js +43 -0
- package/dist/postinstall/unreal/PrettyParseError.js.map +1 -0
- package/dist/postinstall/unreal/ProjectFileLocator.d.ts +20 -0
- package/dist/postinstall/unreal/ProjectFileLocator.d.ts.map +1 -0
- package/dist/postinstall/unreal/ProjectFileLocator.js +53 -0
- package/dist/postinstall/unreal/ProjectFileLocator.js.map +1 -0
- package/dist/postinstall/unreal/TargetCsInjector.d.ts +23 -0
- package/dist/postinstall/unreal/TargetCsInjector.d.ts.map +1 -0
- package/dist/postinstall/unreal/TargetCsInjector.js +55 -0
- package/dist/postinstall/unreal/TargetCsInjector.js.map +1 -0
- package/dist/postinstall/unreal/UProjectInjector.d.ts +12 -0
- package/dist/postinstall/unreal/UProjectInjector.d.ts.map +1 -0
- package/dist/postinstall/unreal/UProjectInjector.js +54 -0
- package/dist/postinstall/unreal/UProjectInjector.js.map +1 -0
- package/dist/postinstall/unreal/UProjectMetadataReader.d.ts +9 -0
- package/dist/postinstall/unreal/UProjectMetadataReader.d.ts.map +1 -0
- package/dist/postinstall/unreal/UProjectMetadataReader.js +20 -0
- package/dist/postinstall/unreal/UProjectMetadataReader.js.map +1 -0
- package/dist/postinstall/unreal/UnrealSourceCatalog.d.ts +23 -0
- package/dist/postinstall/unreal/UnrealSourceCatalog.d.ts.map +1 -0
- package/dist/postinstall/unreal/UnrealSourceCatalog.js +52 -0
- package/dist/postinstall/unreal/UnrealSourceCatalog.js.map +1 -0
- package/dist/prompts/InkPromptService.d.ts +8 -0
- package/dist/prompts/InkPromptService.d.ts.map +1 -0
- package/dist/prompts/InkPromptService.js +56 -0
- package/dist/prompts/InkPromptService.js.map +1 -0
- package/dist/prompts/ProjectContextDetector.d.ts +10 -0
- package/dist/prompts/ProjectContextDetector.d.ts.map +1 -0
- package/dist/prompts/ProjectContextDetector.js +27 -0
- package/dist/prompts/ProjectContextDetector.js.map +1 -0
- package/dist/prompts/PromptService.d.ts +9 -0
- package/dist/prompts/PromptService.d.ts.map +1 -0
- package/dist/prompts/PromptService.js +8 -0
- package/dist/prompts/PromptService.js.map +1 -0
- package/dist/reporting/DiagnosticDeduplicator.d.ts +11 -0
- package/dist/reporting/DiagnosticDeduplicator.d.ts.map +1 -0
- package/dist/reporting/DiagnosticDeduplicator.js +37 -0
- package/dist/reporting/DiagnosticDeduplicator.js.map +1 -0
- package/dist/reporting/DiagnosticRenderer.d.ts +18 -0
- package/dist/reporting/DiagnosticRenderer.d.ts.map +1 -0
- package/dist/reporting/DiagnosticRenderer.js +2 -0
- package/dist/reporting/DiagnosticRenderer.js.map +1 -0
- package/dist/reporting/DiagnosticReporter.d.ts +23 -0
- package/dist/reporting/DiagnosticReporter.d.ts.map +1 -0
- package/dist/reporting/DiagnosticReporter.js +41 -0
- package/dist/reporting/DiagnosticReporter.js.map +1 -0
- package/dist/reporting/InkDiagnosticRenderer.d.ts +21 -0
- package/dist/reporting/InkDiagnosticRenderer.d.ts.map +1 -0
- package/dist/reporting/InkDiagnosticRenderer.js +44 -0
- package/dist/reporting/InkDiagnosticRenderer.js.map +1 -0
- package/dist/reporting/InstallProgressReporter.d.ts +34 -0
- package/dist/reporting/InstallProgressReporter.d.ts.map +1 -0
- package/dist/reporting/InstallProgressReporter.js +49 -0
- package/dist/reporting/InstallProgressReporter.js.map +1 -0
- package/dist/reporting/JsonReporter.d.ts +26 -0
- package/dist/reporting/JsonReporter.d.ts.map +1 -0
- package/dist/reporting/JsonReporter.js +16 -0
- package/dist/reporting/JsonReporter.js.map +1 -0
- package/dist/reporting/TextDiagnosticRenderer.d.ts +20 -0
- package/dist/reporting/TextDiagnosticRenderer.d.ts.map +1 -0
- package/dist/reporting/TextDiagnosticRenderer.js +30 -0
- package/dist/reporting/TextDiagnosticRenderer.js.map +1 -0
- package/dist/reporting/TextSink.d.ts +21 -0
- package/dist/reporting/TextSink.d.ts.map +1 -0
- package/dist/reporting/TextSink.js +25 -0
- package/dist/reporting/TextSink.js.map +1 -0
- package/package.json +12 -12
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { createConfig, isLeafConfigPath, parseConfigCliValue, validateConfigPath, } from '@uapkg/config';
|
|
5
|
+
import { createParseErrorDiagnostic } from '@uapkg/diagnostics';
|
|
6
|
+
import Log from '@uapkg/log';
|
|
7
|
+
import { DiagnosticReporter } from '../reporting/DiagnosticReporter.js';
|
|
8
|
+
export class ConfigCommand {
|
|
9
|
+
options;
|
|
10
|
+
reporter = new DiagnosticReporter();
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.options = options;
|
|
13
|
+
}
|
|
14
|
+
async execute() {
|
|
15
|
+
const flagError = this.validateFlags();
|
|
16
|
+
if (flagError)
|
|
17
|
+
return this.fail([flagError]);
|
|
18
|
+
const config = createConfig({ cwd: this.options.cwd });
|
|
19
|
+
this.reportIfText(config.getDiagnostics());
|
|
20
|
+
const action = this.options.action;
|
|
21
|
+
switch (action) {
|
|
22
|
+
case 'get':
|
|
23
|
+
return this.executeGet(config);
|
|
24
|
+
case 'list':
|
|
25
|
+
return this.executeList(config);
|
|
26
|
+
case 'set':
|
|
27
|
+
return this.executeSet(config);
|
|
28
|
+
case 'delete':
|
|
29
|
+
return this.executeDelete(config);
|
|
30
|
+
case 'edit':
|
|
31
|
+
return this.executeEdit(config);
|
|
32
|
+
default:
|
|
33
|
+
return this.fail([createParseErrorDiagnostic(`Unsupported config action: ${action}`)]);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
executeGet(config) {
|
|
37
|
+
const pathToProperty = this.options.pathToProperty;
|
|
38
|
+
if (!pathToProperty) {
|
|
39
|
+
return this.fail([createParseErrorDiagnostic('config get requires path_to_property')]);
|
|
40
|
+
}
|
|
41
|
+
if (this.options.trace) {
|
|
42
|
+
const trace = config.trace(pathToProperty).map((entry) => ({
|
|
43
|
+
...entry,
|
|
44
|
+
file: entry.file ? config.toDisplayPath(entry.file) : undefined,
|
|
45
|
+
}));
|
|
46
|
+
this.print(trace);
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
if (this.options.showOrigin) {
|
|
50
|
+
if (this.options.scope === 'global') {
|
|
51
|
+
const value = config.get(pathToProperty, { scope: 'global' });
|
|
52
|
+
this.print({
|
|
53
|
+
value,
|
|
54
|
+
source: 'global',
|
|
55
|
+
file: value === null ? undefined : config.toDisplayPath(config.getEditTarget({ scope: 'global' })),
|
|
56
|
+
});
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
if (this.options.scope === 'local') {
|
|
60
|
+
const value = config.get(pathToProperty, { scope: 'local' });
|
|
61
|
+
const localFile = config.getEditTarget({ scope: 'local' });
|
|
62
|
+
this.print({
|
|
63
|
+
value,
|
|
64
|
+
source: 'local',
|
|
65
|
+
file: value === null ? undefined : config.toDisplayPath(localFile),
|
|
66
|
+
});
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
const result = config.getWithOrigin(pathToProperty);
|
|
70
|
+
if (!result) {
|
|
71
|
+
this.print({ value: null, source: 'default' });
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
this.print({
|
|
75
|
+
...result,
|
|
76
|
+
file: result.file ? config.toDisplayPath(result.file) : undefined,
|
|
77
|
+
});
|
|
78
|
+
return 0;
|
|
79
|
+
}
|
|
80
|
+
if (this.options.scope === 'global') {
|
|
81
|
+
this.print(config.get(pathToProperty, { scope: 'global' }));
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
if (this.options.scope === 'local') {
|
|
85
|
+
this.print(config.get(pathToProperty, { scope: 'local' }));
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
this.print(config.get(pathToProperty));
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
executeList(config) {
|
|
92
|
+
if (this.options.scope === 'global') {
|
|
93
|
+
this.print(config.getAll({ scope: 'global' }));
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
if (this.options.scope === 'local') {
|
|
97
|
+
this.print(config.getAll({ scope: 'local' }));
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
this.print(config.getAll());
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
executeSet(config) {
|
|
104
|
+
const pathToProperty = this.options.pathToProperty;
|
|
105
|
+
const rawValue = this.options.rawValue;
|
|
106
|
+
if (!pathToProperty || rawValue === undefined) {
|
|
107
|
+
return this.fail([createParseErrorDiagnostic('config set requires path_to_property and value')]);
|
|
108
|
+
}
|
|
109
|
+
const pathValidation = validateConfigPath(pathToProperty);
|
|
110
|
+
if (!pathValidation.ok)
|
|
111
|
+
return this.fail(pathValidation.diagnostics);
|
|
112
|
+
if (!isLeafConfigPath(pathToProperty)) {
|
|
113
|
+
return this.fail([
|
|
114
|
+
createParseErrorDiagnostic(`config set only supports leaf properties. Use a concrete path like "${pathToProperty}.<field>".`),
|
|
115
|
+
]);
|
|
116
|
+
}
|
|
117
|
+
const parsedValue = parseConfigCliValue(pathToProperty, rawValue);
|
|
118
|
+
if (!parsedValue.ok)
|
|
119
|
+
return this.fail(parsedValue.diagnostics);
|
|
120
|
+
const plan = config.set(pathToProperty, parsedValue.value, this.options.scope ? { scope: this.options.scope } : {});
|
|
121
|
+
if (!plan.ok)
|
|
122
|
+
return this.fail(plan.diagnostics);
|
|
123
|
+
fs.mkdirSync(path.dirname(plan.value.file), { recursive: true });
|
|
124
|
+
fs.writeFileSync(plan.value.file, `${JSON.stringify(plan.value.values, null, 2)}\n`, 'utf8');
|
|
125
|
+
config.reload({ cwd: this.options.cwd });
|
|
126
|
+
this.reportIfText(config.getDiagnostics());
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
executeDelete(config) {
|
|
130
|
+
const pathToProperty = this.options.pathToProperty;
|
|
131
|
+
if (!pathToProperty) {
|
|
132
|
+
return this.fail([createParseErrorDiagnostic('config delete requires path_to_property')]);
|
|
133
|
+
}
|
|
134
|
+
const plan = config.delete(pathToProperty, this.options.scope ? { scope: this.options.scope } : {});
|
|
135
|
+
if (!plan.ok)
|
|
136
|
+
return this.fail(plan.diagnostics);
|
|
137
|
+
fs.mkdirSync(path.dirname(plan.value.file), { recursive: true });
|
|
138
|
+
fs.writeFileSync(plan.value.file, `${JSON.stringify(plan.value.values, null, 2)}\n`, 'utf8');
|
|
139
|
+
config.reload({ cwd: this.options.cwd });
|
|
140
|
+
this.reportIfText(config.getDiagnostics());
|
|
141
|
+
return 0;
|
|
142
|
+
}
|
|
143
|
+
executeEdit(config) {
|
|
144
|
+
const filePath = config.getEditTarget(this.options.scope ? { scope: this.options.scope } : {});
|
|
145
|
+
if (!fs.existsSync(filePath)) {
|
|
146
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
147
|
+
fs.writeFileSync(filePath, '{}\n', 'utf8');
|
|
148
|
+
}
|
|
149
|
+
const editorValue = config.get('editor');
|
|
150
|
+
const editor = typeof editorValue === 'string' ? editorValue : process.platform === 'win32' ? 'notepad.exe' : 'vi';
|
|
151
|
+
const result = spawnSync(editor, [filePath], {
|
|
152
|
+
cwd: this.options.cwd,
|
|
153
|
+
shell: true,
|
|
154
|
+
stdio: 'inherit',
|
|
155
|
+
});
|
|
156
|
+
if (result.error) {
|
|
157
|
+
return this.fail([createParseErrorDiagnostic(`Failed to open editor '${editor}': ${result.error.message}`)]);
|
|
158
|
+
}
|
|
159
|
+
if ((result.status ?? 0) !== 0) {
|
|
160
|
+
return this.fail([createParseErrorDiagnostic(`Editor exited with status ${result.status}`)]);
|
|
161
|
+
}
|
|
162
|
+
return 0;
|
|
163
|
+
}
|
|
164
|
+
validateFlags() {
|
|
165
|
+
if (this.options.showOrigin && this.options.trace) {
|
|
166
|
+
return createParseErrorDiagnostic('--show-origin and --trace cannot be used together');
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
fail(diagnostics) {
|
|
171
|
+
this.reporter.reportAll(diagnostics);
|
|
172
|
+
return 1;
|
|
173
|
+
}
|
|
174
|
+
reportIfText(diagnostics) {
|
|
175
|
+
if (this.options.output === 'text') {
|
|
176
|
+
this.reporter.reportAll(diagnostics);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
print(value) {
|
|
180
|
+
if (this.options.output === 'json' || typeof value === 'object') {
|
|
181
|
+
Log.info(JSON.stringify(value, null, 2));
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
Log.info(JSON.stringify(value));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=ConfigCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigCommand.js","sourceRoot":"","sources":["../../src/commands/ConfigCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAEL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,0BAA0B,EAAmB,MAAM,oBAAoB,CAAC;AACjF,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAcxE,MAAM,OAAO,aAAa;IAGK;IAFZ,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAErD,YAA6B,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;IAAG,CAAC;IAE9D,KAAK,CAAC,OAAO;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACpC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,8BAA8B,MAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,MAAsB;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACnD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzD,GAAG,KAAK;gBACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAChE,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC;oBACT,KAAK;oBACL,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACnG,CAAC,CAAC;gBACH,OAAO,CAAC,CAAC;YACX,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,CAAC;oBACT,KAAK;oBACL,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;iBACnE,CAAC,CAAC;gBACH,OAAO,CAAC,CAAC;YACX,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC;gBACT,GAAG,MAAM;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAClE,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,WAAW,CAAC,MAAsB;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,UAAU,CAAC,MAAsB;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEvC,IAAI,CAAC,cAAc,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,0BAA0B,CACxB,uEAAuE,cAAc,YAAY,CAClG;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpH,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,aAAa,CAAC,MAAsB;QAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACnD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,WAAW,CAAC,MAAsB;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE/F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC3C,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;YACrB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,0BAA0B,MAAM,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/G,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,6BAA6B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClD,OAAO,0BAA0B,CAAC,mDAAmD,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,IAAI,CAAC,WAAkC;QAC7C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,YAAY,CAAC,WAAkC;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAc;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ManifestKind } from '@uapkg/package-manifest-schema';
|
|
2
|
+
import type { CompositionRoot } from '../app/CompositionRoot.js';
|
|
3
|
+
import type { ProjectContextDetector } from '../prompts/ProjectContextDetector.js';
|
|
4
|
+
import type { PromptService } from '../prompts/PromptService.js';
|
|
5
|
+
import type { Command } from './Command.js';
|
|
6
|
+
export interface InitCommandOptions {
|
|
7
|
+
readonly explicitKind?: ManifestKind;
|
|
8
|
+
readonly explicitName?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class InitCommand implements Command {
|
|
11
|
+
private readonly root;
|
|
12
|
+
private readonly options;
|
|
13
|
+
private readonly detector;
|
|
14
|
+
private readonly prompts;
|
|
15
|
+
constructor(root: CompositionRoot, options: InitCommandOptions, detector: ProjectContextDetector, prompts: PromptService);
|
|
16
|
+
execute(): Promise<number>;
|
|
17
|
+
private buildManifest;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=InitCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitCommand.d.ts","sourceRoot":"","sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAYD,qBAAa,WAAY,YAAW,OAAO;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,aAAa;IAG5B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA2CvC,OAAO,CAAC,aAAa;CAMtB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { PackageNameSchema, PackageVersionSchema } from '@uapkg/common-schema';
|
|
2
|
+
import { ManifestReader, ManifestWriter } from '@uapkg/package-manifest';
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// InitCommand — creates a minimal `uapkg.json` (new schema) for the current
|
|
5
|
+
// working directory, interactively selecting `kind` + `name` when missing.
|
|
6
|
+
//
|
|
7
|
+
// - Writes via `@uapkg/package-manifest` ManifestWriter.
|
|
8
|
+
// - Pre-check uses ManifestReader (fails fast if manifest already present).
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
const DEFAULT_INITIAL_VERSION = '0.1.0';
|
|
11
|
+
export class InitCommand {
|
|
12
|
+
root;
|
|
13
|
+
options;
|
|
14
|
+
detector;
|
|
15
|
+
prompts;
|
|
16
|
+
constructor(root, options, detector, prompts) {
|
|
17
|
+
this.root = root;
|
|
18
|
+
this.options = options;
|
|
19
|
+
this.detector = detector;
|
|
20
|
+
this.prompts = prompts;
|
|
21
|
+
}
|
|
22
|
+
async execute() {
|
|
23
|
+
const existing = await new ManifestReader().read(this.root.cwd);
|
|
24
|
+
if (existing.ok) {
|
|
25
|
+
process.stderr.write('[uapkg] uapkg.json already exists in current directory\n');
|
|
26
|
+
return 1;
|
|
27
|
+
}
|
|
28
|
+
const detected = this.detector.detect(this.root.cwd);
|
|
29
|
+
const kind = this.options.explicitKind ??
|
|
30
|
+
(await this.prompts.select('Select manifest kind', [
|
|
31
|
+
{ label: 'Project', value: 'project' },
|
|
32
|
+
{ label: 'Plugin', value: 'plugin' },
|
|
33
|
+
], detected.suggestedKind));
|
|
34
|
+
const rawName = this.options.explicitName ?? (await this.prompts.text('Package name', detected.suggestedName));
|
|
35
|
+
const nameResult = PackageNameSchema.safeParse(rawName.trim());
|
|
36
|
+
if (!nameResult.success) {
|
|
37
|
+
process.stderr.write(`[uapkg] Invalid package name "${rawName}": must be lowercase alphanumeric with hyphens\n`);
|
|
38
|
+
return 1;
|
|
39
|
+
}
|
|
40
|
+
const versionResult = PackageVersionSchema.safeParse(DEFAULT_INITIAL_VERSION);
|
|
41
|
+
if (!versionResult.success) {
|
|
42
|
+
process.stderr.write(`[uapkg] Internal error: default version "${DEFAULT_INITIAL_VERSION}" rejected by schema\n`);
|
|
43
|
+
return 1;
|
|
44
|
+
}
|
|
45
|
+
const manifest = this.buildManifest(kind, nameResult.data, versionResult.data);
|
|
46
|
+
const writeResult = await new ManifestWriter().write(this.root.cwd, manifest);
|
|
47
|
+
if (!writeResult.ok) {
|
|
48
|
+
this.root.diagnostics.reportAll(writeResult.diagnostics);
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
process.stdout.write(`[uapkg] Created uapkg.json (${kind}) for ${String(nameResult.data)}\n`);
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
buildManifest(kind, name, version) {
|
|
55
|
+
if (kind === 'plugin') {
|
|
56
|
+
return { name, version, kind: 'plugin' };
|
|
57
|
+
}
|
|
58
|
+
return { name, version, kind: 'project' };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=InitCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitCommand.js","sourceRoot":"","sources":["../../src/commands/InitCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CompositionRoot } from '../app/CompositionRoot.js';
|
|
2
|
+
import type { Command } from './Command.js';
|
|
3
|
+
export interface InstallCommandOptions {
|
|
4
|
+
readonly force: boolean;
|
|
5
|
+
readonly frozen: boolean;
|
|
6
|
+
readonly dryRun: boolean;
|
|
7
|
+
readonly outputFormat: 'text' | 'json';
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* `uapkg install` — resolve → plan → download/extract/remove → postinstall.
|
|
11
|
+
*
|
|
12
|
+
* Pipeline (never throws; errors become diagnostics):
|
|
13
|
+
*
|
|
14
|
+
* 1. Read manifest + previous lockfile (best-effort).
|
|
15
|
+
* 2. `PackageManifest.install({ frozen })` → writes a fresh lockfile.
|
|
16
|
+
* 3. `Installer.execute(...)` → executes the install plan.
|
|
17
|
+
* 4. Consume installer's status stream in parallel via `InstallProgressReporter`.
|
|
18
|
+
* 5. On success (non-dryRun), `PostinstallOrchestrator.run()` for added/updated plugins.
|
|
19
|
+
* 6. Report summary + diagnostics.
|
|
20
|
+
*
|
|
21
|
+
* `--force` and `--frozen` are mutually exclusive; the parser layer enforces this.
|
|
22
|
+
*/
|
|
23
|
+
export declare class InstallCommand implements Command {
|
|
24
|
+
private readonly root;
|
|
25
|
+
private readonly options;
|
|
26
|
+
constructor(root: CompositionRoot, options: InstallCommandOptions);
|
|
27
|
+
execute(): Promise<number>;
|
|
28
|
+
private fail;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=InstallCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallCommand.d.ts","sourceRoot":"","sources":["../../src/commands/InstallCommand.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,YAAW,OAAO;IAE1C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,qBAAqB;IAGpC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAsEvC,OAAO,CAAC,IAAI;CAQb"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { InstallProgressReporter } from '../reporting/InstallProgressReporter.js';
|
|
2
|
+
import { PostinstallCandidateBuilder } from './PostinstallCandidateBuilder.js';
|
|
3
|
+
/**
|
|
4
|
+
* `uapkg install` — resolve → plan → download/extract/remove → postinstall.
|
|
5
|
+
*
|
|
6
|
+
* Pipeline (never throws; errors become diagnostics):
|
|
7
|
+
*
|
|
8
|
+
* 1. Read manifest + previous lockfile (best-effort).
|
|
9
|
+
* 2. `PackageManifest.install({ frozen })` → writes a fresh lockfile.
|
|
10
|
+
* 3. `Installer.execute(...)` → executes the install plan.
|
|
11
|
+
* 4. Consume installer's status stream in parallel via `InstallProgressReporter`.
|
|
12
|
+
* 5. On success (non-dryRun), `PostinstallOrchestrator.run()` for added/updated plugins.
|
|
13
|
+
* 6. Report summary + diagnostics.
|
|
14
|
+
*
|
|
15
|
+
* `--force` and `--frozen` are mutually exclusive; the parser layer enforces this.
|
|
16
|
+
*/
|
|
17
|
+
export class InstallCommand {
|
|
18
|
+
root;
|
|
19
|
+
options;
|
|
20
|
+
constructor(root, options) {
|
|
21
|
+
this.root = root;
|
|
22
|
+
this.options = options;
|
|
23
|
+
}
|
|
24
|
+
async execute() {
|
|
25
|
+
const pm = this.root.packageManifest;
|
|
26
|
+
const commandDiagnostics = [];
|
|
27
|
+
const manifestResult = await pm.readManifest();
|
|
28
|
+
if (!manifestResult.ok)
|
|
29
|
+
return this.fail(manifestResult.diagnostics);
|
|
30
|
+
const manifest = manifestResult.value;
|
|
31
|
+
let previousLockfile = null;
|
|
32
|
+
if (!this.options.frozen) {
|
|
33
|
+
const previousLockfileResult = await pm.readLockfileOptional();
|
|
34
|
+
if (!previousLockfileResult.ok)
|
|
35
|
+
return this.fail(previousLockfileResult.diagnostics);
|
|
36
|
+
previousLockfile = previousLockfileResult.value;
|
|
37
|
+
}
|
|
38
|
+
const installResult = await pm.install({ frozen: this.options.frozen });
|
|
39
|
+
if (!installResult.ok)
|
|
40
|
+
return this.fail([...commandDiagnostics, ...installResult.diagnostics]);
|
|
41
|
+
commandDiagnostics.push(...installResult.diagnostics);
|
|
42
|
+
const lockfile = installResult.value;
|
|
43
|
+
if (this.options.frozen) {
|
|
44
|
+
previousLockfile = lockfile;
|
|
45
|
+
}
|
|
46
|
+
const progress = new InstallProgressReporter();
|
|
47
|
+
const consumer = progress.consume(this.root.installer.getStatusStream());
|
|
48
|
+
const executeResult = await this.root.installer.execute(lockfile, previousLockfile, {
|
|
49
|
+
manifestRoot: this.root.cwd,
|
|
50
|
+
force: this.options.force,
|
|
51
|
+
dryRun: this.options.dryRun,
|
|
52
|
+
});
|
|
53
|
+
await consumer;
|
|
54
|
+
if (!executeResult.ok)
|
|
55
|
+
return this.fail([...commandDiagnostics, ...executeResult.diagnostics]);
|
|
56
|
+
const plan = executeResult.value;
|
|
57
|
+
const builder = new PostinstallCandidateBuilder();
|
|
58
|
+
const candidates = builder.build(this.root, plan, lockfile);
|
|
59
|
+
const manifestType = builder.resolveManifestType(manifest);
|
|
60
|
+
let postDiagnostics = [];
|
|
61
|
+
if (!this.options.dryRun && candidates.length > 0) {
|
|
62
|
+
const moduleNameOverride = manifest.kind === 'project' ? manifest.postinstall?.modules : undefined;
|
|
63
|
+
const postResult = await this.root.postinstall.run({
|
|
64
|
+
projectRoot: this.root.cwd,
|
|
65
|
+
manifestType,
|
|
66
|
+
candidates,
|
|
67
|
+
moduleNameOverride,
|
|
68
|
+
});
|
|
69
|
+
postDiagnostics = postResult.diagnostics;
|
|
70
|
+
if (!postResult.ok) {
|
|
71
|
+
return this.fail([...commandDiagnostics, ...executeResult.diagnostics, ...postResult.diagnostics]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (this.options.outputFormat === 'json') {
|
|
75
|
+
this.root.json.emit({
|
|
76
|
+
status: 'ok',
|
|
77
|
+
command: 'install',
|
|
78
|
+
data: { plan: plan.summary },
|
|
79
|
+
diagnostics: [...commandDiagnostics, ...executeResult.diagnostics, ...postDiagnostics],
|
|
80
|
+
});
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
this.root.diagnostics.reportAll([...commandDiagnostics, ...executeResult.diagnostics, ...postDiagnostics]);
|
|
84
|
+
progress.renderSummary(plan.summary);
|
|
85
|
+
return 0;
|
|
86
|
+
}
|
|
87
|
+
fail(diagnostics) {
|
|
88
|
+
if (this.options.outputFormat === 'json') {
|
|
89
|
+
this.root.json.emit({ status: 'error', command: 'install', diagnostics });
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.root.diagnostics.reportAll(diagnostics);
|
|
93
|
+
}
|
|
94
|
+
return 1;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=InstallCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallCommand.js","sourceRoot":"","sources":["../../src/commands/InstallCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CompositionRoot } from '../app/CompositionRoot.js';
|
|
2
|
+
import type { Command } from './Command.js';
|
|
3
|
+
export interface ListCommandOptions {
|
|
4
|
+
readonly depth: number;
|
|
5
|
+
readonly outputFormat: 'text' | 'json';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* `uapkg list [--depth N]` — renders the resolved dependency tree.
|
|
9
|
+
*
|
|
10
|
+
* Pulls the lockfile via {@link PackageManifest.readLockfile}. A depth of 0
|
|
11
|
+
* prints only root declarations; `Infinity` prints everything (duplicates
|
|
12
|
+
* guarded so cycles can't loop forever).
|
|
13
|
+
*/
|
|
14
|
+
export declare class ListCommand implements Command {
|
|
15
|
+
private readonly root;
|
|
16
|
+
private readonly options;
|
|
17
|
+
constructor(root: CompositionRoot, options: ListCommandOptions);
|
|
18
|
+
execute(): Promise<number>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ListCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListCommand.d.ts","sourceRoot":"","sources":["../../src/commands/ListCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;AAED;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,OAAO;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kBAAkB;IAGjC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAyExC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `uapkg list [--depth N]` — renders the resolved dependency tree.
|
|
3
|
+
*
|
|
4
|
+
* Pulls the lockfile via {@link PackageManifest.readLockfile}. A depth of 0
|
|
5
|
+
* prints only root declarations; `Infinity` prints everything (duplicates
|
|
6
|
+
* guarded so cycles can't loop forever).
|
|
7
|
+
*/
|
|
8
|
+
export class ListCommand {
|
|
9
|
+
root;
|
|
10
|
+
options;
|
|
11
|
+
constructor(root, options) {
|
|
12
|
+
this.root = root;
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
15
|
+
async execute() {
|
|
16
|
+
const manifestResult = await this.root.packageManifest.readManifest();
|
|
17
|
+
const lockfileResult = await this.root.packageManifest.getLockfileForReadOnly();
|
|
18
|
+
if (!manifestResult.ok) {
|
|
19
|
+
if (this.options.outputFormat === 'json') {
|
|
20
|
+
this.root.json.emit({
|
|
21
|
+
status: 'error',
|
|
22
|
+
command: 'list',
|
|
23
|
+
diagnostics: [...(manifestResult.diagnostics ?? [])],
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.root.diagnostics.reportAll(manifestResult.diagnostics);
|
|
28
|
+
}
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
if (!lockfileResult.ok) {
|
|
32
|
+
if (this.options.outputFormat === 'json') {
|
|
33
|
+
this.root.json.emit({
|
|
34
|
+
status: 'error',
|
|
35
|
+
command: 'list',
|
|
36
|
+
diagnostics: [...(lockfileResult.diagnostics ?? [])],
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.root.diagnostics.reportAll(lockfileResult.diagnostics);
|
|
41
|
+
}
|
|
42
|
+
return 1;
|
|
43
|
+
}
|
|
44
|
+
if (this.options.outputFormat === 'text') {
|
|
45
|
+
this.root.diagnostics.reportAll(lockfileResult.diagnostics);
|
|
46
|
+
}
|
|
47
|
+
const lockfile = lockfileResult.value;
|
|
48
|
+
const manifest = manifestResult.value;
|
|
49
|
+
const declared = Object.keys({
|
|
50
|
+
...(manifest.dependencies ?? {}),
|
|
51
|
+
...(manifest.devDependencies ?? {}),
|
|
52
|
+
});
|
|
53
|
+
if (this.options.outputFormat === 'json') {
|
|
54
|
+
this.root.json.emit({
|
|
55
|
+
status: 'ok',
|
|
56
|
+
command: 'list',
|
|
57
|
+
data: { declared, packages: lockfile.packages },
|
|
58
|
+
diagnostics: lockfileResult.diagnostics,
|
|
59
|
+
});
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
process.stdout.write(`${this.root.cwd}\n`);
|
|
63
|
+
for (const name of declared) {
|
|
64
|
+
const locked = lockfile.packages[name];
|
|
65
|
+
if (!locked) {
|
|
66
|
+
process.stdout.write(` ${name} (not in lockfile)\n`);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
process.stdout.write(` ${name}@${locked.version} [${locked.registry}]\n`);
|
|
70
|
+
}
|
|
71
|
+
if (this.options.depth > 0) {
|
|
72
|
+
const remaining = Object.entries(lockfile.packages).filter(([name]) => !declared.includes(name));
|
|
73
|
+
if (remaining.length > 0) {
|
|
74
|
+
process.stdout.write(' --- transitive ---\n');
|
|
75
|
+
for (const [name, locked] of remaining) {
|
|
76
|
+
process.stdout.write(` ${name}@${locked.version} [${locked.registry}]\n`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=ListCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListCommand.js","sourceRoot":"","sources":["../../src/commands/ListCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CompositionRoot } from '../app/CompositionRoot.js';
|
|
2
|
+
import type { Command } from './Command.js';
|
|
3
|
+
export interface OutdatedCommandOptions {
|
|
4
|
+
readonly outputFormat: 'text' | 'json';
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `uapkg outdated` — emits one row per declared dependency with
|
|
8
|
+
* `current / wanted / latest / status` taken from
|
|
9
|
+
* {@link PackageManifest.checkOutdated}.
|
|
10
|
+
*
|
|
11
|
+
* Exit code 0 when all rows are `up-to-date`; otherwise 2 so CI gates can
|
|
12
|
+
* branch on it. JSON mode emits the full array on stdout in a single write.
|
|
13
|
+
*/
|
|
14
|
+
export declare class OutdatedCommand implements Command {
|
|
15
|
+
private readonly root;
|
|
16
|
+
private readonly options;
|
|
17
|
+
constructor(root: CompositionRoot, options: OutdatedCommandOptions);
|
|
18
|
+
execute(): Promise<number>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=OutdatedCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutdatedCommand.d.ts","sourceRoot":"","sources":["../../src/commands/OutdatedCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAE3C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,sBAAsB;IAGrC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA6BxC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `uapkg outdated` — emits one row per declared dependency with
|
|
3
|
+
* `current / wanted / latest / status` taken from
|
|
4
|
+
* {@link PackageManifest.checkOutdated}.
|
|
5
|
+
*
|
|
6
|
+
* Exit code 0 when all rows are `up-to-date`; otherwise 2 so CI gates can
|
|
7
|
+
* branch on it. JSON mode emits the full array on stdout in a single write.
|
|
8
|
+
*/
|
|
9
|
+
export class OutdatedCommand {
|
|
10
|
+
root;
|
|
11
|
+
options;
|
|
12
|
+
constructor(root, options) {
|
|
13
|
+
this.root = root;
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
async execute() {
|
|
17
|
+
const result = await this.root.packageManifest.checkOutdated();
|
|
18
|
+
if (this.options.outputFormat === 'json') {
|
|
19
|
+
this.root.json.emit({
|
|
20
|
+
status: result.ok ? 'ok' : 'error',
|
|
21
|
+
command: 'outdated',
|
|
22
|
+
data: result.ok ? result.value : undefined,
|
|
23
|
+
diagnostics: result.diagnostics,
|
|
24
|
+
});
|
|
25
|
+
return result.ok ? (result.value.some((r) => r.status !== 'up-to-date') ? 2 : 0) : 1;
|
|
26
|
+
}
|
|
27
|
+
this.root.diagnostics.reportAll(result.diagnostics);
|
|
28
|
+
if (!result.ok)
|
|
29
|
+
return 1;
|
|
30
|
+
const rows = result.value;
|
|
31
|
+
if (rows.length === 0) {
|
|
32
|
+
process.stdout.write('No declared dependencies.\n');
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
const outdated = rows.filter((r) => r.status !== 'up-to-date');
|
|
36
|
+
for (const row of rows) {
|
|
37
|
+
process.stdout.write(`${row.status.padEnd(16)} ${row.name.padEnd(32)} ${row.current} → ${row.wanted} (latest ${row.latest})\n`);
|
|
38
|
+
}
|
|
39
|
+
return outdated.length > 0 ? 2 : 0;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=OutdatedCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutdatedCommand.js","sourceRoot":"","sources":["../../src/commands/OutdatedCommand.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAEP;IACA;IAFnB,YACmB,IAAqB,EACrB,OAA+B;QAD/B,SAAI,GAAJ,IAAI,CAAiB;QACrB,YAAO,GAAP,OAAO,CAAwB;IAC/C,CAAC;IAEG,KAAK,CAAC,OAAO;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QAE/D,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClB,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;gBAClC,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC1C,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACpD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,MAAM,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,KAAK,CAC1G,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Command } from './Command.js';
|
|
2
|
+
export interface PackCommandOptions {
|
|
3
|
+
cwd: string;
|
|
4
|
+
dryRun: boolean;
|
|
5
|
+
allowMissingLfs: boolean;
|
|
6
|
+
outFile?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class PackCommand implements Command {
|
|
9
|
+
private readonly options;
|
|
10
|
+
constructor(options: PackCommandOptions);
|
|
11
|
+
execute(): Promise<0 | 1>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=PackCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackCommand.d.ts","sourceRoot":"","sources":["../../src/commands/PackCommand.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAY,YAAW,OAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAElD,OAAO;CAed"}
|