smart-commit-copilot-cli 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/CHANGELOG.md +31 -0
- package/LICENSE +21 -0
- package/README.md +392 -0
- package/docs/configuration.md +262 -0
- package/docs/contracts.md +134 -0
- package/docs/getting-started.md +177 -0
- package/docs/integrations.md +85 -0
- package/docs/publish.md +135 -0
- package/docs/release-checklist.md +39 -0
- package/docs/releases/0.1.0-draft.md +52 -0
- package/docs/roadmap.md +94 -0
- package/examples/agent/bridge-agent.mjs +51 -0
- package/examples/agent/report-agent.mjs +48 -0
- package/examples/config/smart-commit.json +60 -0
- package/examples/hooks/cursor-bridge-wrapper.sh +12 -0
- package/examples/hooks/husky-pre-commit.sh +6 -0
- package/examples/hooks/smart-commit-bridge.sh +11 -0
- package/out/cli.js +19 -0
- package/out/cli.js.map +1 -0
- package/out/cliApp.js +239 -0
- package/out/cliApp.js.map +1 -0
- package/out/commands/bridge.js +607 -0
- package/out/commands/bridge.js.map +1 -0
- package/out/commands/report.js +266 -0
- package/out/commands/report.js.map +1 -0
- package/out/commands/types.js +3 -0
- package/out/commands/types.js.map +1 -0
- package/out/commitMessage/index.js +110 -0
- package/out/commitMessage/index.js.map +1 -0
- package/out/commitMessage/mockProvider.js +27 -0
- package/out/commitMessage/mockProvider.js.map +1 -0
- package/out/commitMessage/openaiProvider.js +44 -0
- package/out/commitMessage/openaiProvider.js.map +1 -0
- package/out/commitMessage/prompt.js +65 -0
- package/out/commitMessage/prompt.js.map +1 -0
- package/out/commitMessage/protocol.js +126 -0
- package/out/commitMessage/protocol.js.map +1 -0
- package/out/commitMessage/provider.js +3 -0
- package/out/commitMessage/provider.js.map +1 -0
- package/out/config/cliArgs.js +249 -0
- package/out/config/cliArgs.js.map +1 -0
- package/out/config/constants.js +47 -0
- package/out/config/constants.js.map +1 -0
- package/out/config/env.js +183 -0
- package/out/config/env.js.map +1 -0
- package/out/config/file.js +245 -0
- package/out/config/file.js.map +1 -0
- package/out/config/index.js +46 -0
- package/out/config/index.js.map +1 -0
- package/out/config/legacySmartCommit.js +200 -0
- package/out/config/legacySmartCommit.js.map +1 -0
- package/out/config/merge.js +70 -0
- package/out/config/merge.js.map +1 -0
- package/out/config/runtime.js +36 -0
- package/out/config/runtime.js.map +1 -0
- package/out/config/schema.js +204 -0
- package/out/config/schema.js.map +1 -0
- package/out/contracts.js +311 -0
- package/out/contracts.js.map +1 -0
- package/out/git.js +119 -0
- package/out/git.js.map +1 -0
- package/out/logger.js +17 -0
- package/out/logger.js.map +1 -0
- package/out/openaiCompatible.js +67 -0
- package/out/openaiCompatible.js.map +1 -0
- package/out/output.js +23 -0
- package/out/output.js.map +1 -0
- package/out/passHistory/index.js +119 -0
- package/out/passHistory/index.js.map +1 -0
- package/out/passHistory/store.js +252 -0
- package/out/passHistory/store.js.map +1 -0
- package/out/passHistory/types.js +6 -0
- package/out/passHistory/types.js.map +1 -0
- package/out/promptContext.js +72 -0
- package/out/promptContext.js.map +1 -0
- package/out/renderOutput.js +89 -0
- package/out/renderOutput.js.map +1 -0
- package/out/reporting/aggregate.js +113 -0
- package/out/reporting/aggregate.js.map +1 -0
- package/out/reporting/index.js +72 -0
- package/out/reporting/index.js.map +1 -0
- package/out/reporting/mockProvider.js +25 -0
- package/out/reporting/mockProvider.js.map +1 -0
- package/out/reporting/openaiProvider.js +19 -0
- package/out/reporting/openaiProvider.js.map +1 -0
- package/out/reporting/prompt.js +28 -0
- package/out/reporting/prompt.js.map +1 -0
- package/out/reporting/provider.js +3 -0
- package/out/reporting/provider.js.map +1 -0
- package/out/reporting/render.js +151 -0
- package/out/reporting/render.js.map +1 -0
- package/out/reporting/timeWindow.js +79 -0
- package/out/reporting/timeWindow.js.map +1 -0
- package/out/reporting/types.js +11 -0
- package/out/reporting/types.js.map +1 -0
- package/out/review/index.js +64 -0
- package/out/review/index.js.map +1 -0
- package/out/review/mockProvider.js +57 -0
- package/out/review/mockProvider.js.map +1 -0
- package/out/review/openaiProvider.js +40 -0
- package/out/review/openaiProvider.js.map +1 -0
- package/out/review/parser.js +92 -0
- package/out/review/parser.js.map +1 -0
- package/out/review/prompt.js +61 -0
- package/out/review/prompt.js.map +1 -0
- package/out/review/provider.js +3 -0
- package/out/review/provider.js.map +1 -0
- package/out/review/types.js +3 -0
- package/out/review/types.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveCliConfigFilePath = resolveCliConfigFilePath;
|
|
37
|
+
exports.loadCliConfigFile = loadCliConfigFile;
|
|
38
|
+
exports.parseCanonicalCliConfig = parseCanonicalCliConfig;
|
|
39
|
+
const fs = __importStar(require("node:fs"));
|
|
40
|
+
const path = __importStar(require("node:path"));
|
|
41
|
+
const schema_1 = require("./schema");
|
|
42
|
+
const legacySmartCommit_1 = require("./legacySmartCommit");
|
|
43
|
+
const merge_1 = require("./merge");
|
|
44
|
+
function resolveCliConfigFilePath(configuredPath, cwd) {
|
|
45
|
+
const resolved = path.isAbsolute(configuredPath) ? path.normalize(configuredPath) : path.resolve(cwd, configuredPath);
|
|
46
|
+
if (!fs.existsSync(resolved)) {
|
|
47
|
+
throw new Error(`CLI config file not found: ${configuredPath} (resolved to ${resolved})`);
|
|
48
|
+
}
|
|
49
|
+
if (!fs.statSync(resolved).isFile()) {
|
|
50
|
+
throw new Error(`CLI config path must be a JSON file: ${configuredPath} (resolved to ${resolved})`);
|
|
51
|
+
}
|
|
52
|
+
return resolved;
|
|
53
|
+
}
|
|
54
|
+
function loadCliConfigFile(filePath) {
|
|
55
|
+
let content;
|
|
56
|
+
try {
|
|
57
|
+
content = fs.readFileSync(filePath, "utf8");
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
61
|
+
throw new Error(`Failed to read CLI config file: ${filePath}. ${message}`);
|
|
62
|
+
}
|
|
63
|
+
if (!content.trim()) {
|
|
64
|
+
throw new Error(`CLI config file must not be empty: ${filePath}`);
|
|
65
|
+
}
|
|
66
|
+
let parsed;
|
|
67
|
+
try {
|
|
68
|
+
parsed = JSON.parse(content);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
72
|
+
throw new Error(`CLI config file is not valid JSON: ${filePath}. ${message}`);
|
|
73
|
+
}
|
|
74
|
+
const root = (0, schema_1.parseObject)(parsed, `CLI config file ${filePath}`);
|
|
75
|
+
const legacy = (0, legacySmartCommit_1.hasLegacySmartCommitKeys)(root) ? (0, legacySmartCommit_1.parseLegacySmartCommitConfig)(root, filePath) : undefined;
|
|
76
|
+
const canonical = Object.hasOwn(root, "smartCommitCli")
|
|
77
|
+
? parseCanonicalCliConfig(root.smartCommitCli, `${filePath}:smartCommitCli`)
|
|
78
|
+
: undefined;
|
|
79
|
+
return (0, merge_1.mergeCliConfig)(legacy, canonical);
|
|
80
|
+
}
|
|
81
|
+
function parseCanonicalCliConfig(raw, sourceLabel) {
|
|
82
|
+
const root = (0, schema_1.parseObject)(raw, sourceLabel);
|
|
83
|
+
const config = {};
|
|
84
|
+
if (Object.hasOwn(root, "connection")) {
|
|
85
|
+
const connection = (0, schema_1.parseObject)(root.connection, `${sourceLabel}.connection`);
|
|
86
|
+
config.connection = {
|
|
87
|
+
...(Object.hasOwn(connection, "baseUrl")
|
|
88
|
+
? { baseUrl: (0, schema_1.parseString)(connection.baseUrl, `${sourceLabel}.connection.baseUrl`).trim() }
|
|
89
|
+
: {}),
|
|
90
|
+
...(Object.hasOwn(connection, "apiKey")
|
|
91
|
+
? { apiKey: (0, schema_1.parseString)(connection.apiKey, `${sourceLabel}.connection.apiKey`).trim() }
|
|
92
|
+
: {}),
|
|
93
|
+
...(Object.hasOwn(connection, "model")
|
|
94
|
+
? { model: (0, schema_1.parseString)(connection.model, `${sourceLabel}.connection.model`).trim() }
|
|
95
|
+
: {}),
|
|
96
|
+
...(Object.hasOwn(connection, "extraHeaders")
|
|
97
|
+
? { extraHeaders: (0, schema_1.parseStringMap)(connection.extraHeaders, `${sourceLabel}.connection.extraHeaders`) }
|
|
98
|
+
: {}),
|
|
99
|
+
...(Object.hasOwn(connection, "requestTimeoutMs")
|
|
100
|
+
? { requestTimeoutMs: (0, schema_1.parseFiniteNumber)(connection.requestTimeoutMs, `${sourceLabel}.connection.requestTimeoutMs`) }
|
|
101
|
+
: {})
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (Object.hasOwn(root, "review")) {
|
|
105
|
+
const review = (0, schema_1.parseObject)(root.review, `${sourceLabel}.review`);
|
|
106
|
+
config.review = {
|
|
107
|
+
...(Object.hasOwn(review, "threshold")
|
|
108
|
+
? { threshold: (0, schema_1.parseFiniteNumber)(review.threshold, `${sourceLabel}.review.threshold`) }
|
|
109
|
+
: {}),
|
|
110
|
+
...(Object.hasOwn(review, "language")
|
|
111
|
+
? { language: (0, schema_1.parseOutputLanguage)((0, schema_1.parseString)(review.language, `${sourceLabel}.review.language`), `${sourceLabel}.review.language`) }
|
|
112
|
+
: {}),
|
|
113
|
+
...(Object.hasOwn(review, "maxDiffChars")
|
|
114
|
+
? { maxDiffChars: (0, schema_1.parseFiniteNumber)(review.maxDiffChars, `${sourceLabel}.review.maxDiffChars`) }
|
|
115
|
+
: {}),
|
|
116
|
+
...(Object.hasOwn(review, "skill") ? { skill: parseSkillConfig(review.skill, `${sourceLabel}.review.skill`) } : {})
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (Object.hasOwn(root, "commitMessage")) {
|
|
120
|
+
const commitMessage = (0, schema_1.parseObject)(root.commitMessage, `${sourceLabel}.commitMessage`);
|
|
121
|
+
config.commitMessage = {
|
|
122
|
+
...(Object.hasOwn(commitMessage, "input")
|
|
123
|
+
? { input: (0, schema_1.parseString)(commitMessage.input, `${sourceLabel}.commitMessage.input`) }
|
|
124
|
+
: {}),
|
|
125
|
+
...(Object.hasOwn(commitMessage, "language")
|
|
126
|
+
? {
|
|
127
|
+
language: (0, schema_1.parseOutputLanguage)((0, schema_1.parseString)(commitMessage.language, `${sourceLabel}.commitMessage.language`), `${sourceLabel}.commitMessage.language`)
|
|
128
|
+
}
|
|
129
|
+
: {}),
|
|
130
|
+
...(Object.hasOwn(commitMessage, "autoGenerate")
|
|
131
|
+
? { autoGenerate: (0, schema_1.parseBoolean)(commitMessage.autoGenerate, `${sourceLabel}.commitMessage.autoGenerate`) }
|
|
132
|
+
: {}),
|
|
133
|
+
...(Object.hasOwn(commitMessage, "hybridGenerate")
|
|
134
|
+
? { hybridGenerate: (0, schema_1.parseBoolean)(commitMessage.hybridGenerate, `${sourceLabel}.commitMessage.hybridGenerate`) }
|
|
135
|
+
: {}),
|
|
136
|
+
...(Object.hasOwn(commitMessage, "skill")
|
|
137
|
+
? { skill: parseSkillConfig(commitMessage.skill, `${sourceLabel}.commitMessage.skill`) }
|
|
138
|
+
: {}),
|
|
139
|
+
...(Object.hasOwn(commitMessage, "validation")
|
|
140
|
+
? { validation: parseValidationConfig(commitMessage.validation, `${sourceLabel}.commitMessage.validation`) }
|
|
141
|
+
: {})
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
if (Object.hasOwn(root, "git")) {
|
|
145
|
+
const git = (0, schema_1.parseObject)(root.git, `${sourceLabel}.git`);
|
|
146
|
+
config.git = {
|
|
147
|
+
...(Object.hasOwn(git, "autoStageWhenNothingStaged")
|
|
148
|
+
? { autoStageWhenNothingStaged: (0, schema_1.parseBoolean)(git.autoStageWhenNothingStaged, `${sourceLabel}.git.autoStageWhenNothingStaged`) }
|
|
149
|
+
: {}),
|
|
150
|
+
...(Object.hasOwn(git, "autoCommit") ? { autoCommit: (0, schema_1.parseBoolean)(git.autoCommit, `${sourceLabel}.git.autoCommit`) } : {}),
|
|
151
|
+
...(Object.hasOwn(git, "autoPush") ? { autoPush: (0, schema_1.parseBoolean)(git.autoPush, `${sourceLabel}.git.autoPush`) } : {}),
|
|
152
|
+
...(Object.hasOwn(git, "pushTimeoutMs")
|
|
153
|
+
? { pushTimeoutMs: (0, schema_1.parseFiniteNumber)(git.pushTimeoutMs, `${sourceLabel}.git.pushTimeoutMs`) }
|
|
154
|
+
: {})
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
if (Object.hasOwn(root, "passHistory")) {
|
|
158
|
+
const passHistory = (0, schema_1.parseObject)(root.passHistory, `${sourceLabel}.passHistory`);
|
|
159
|
+
config.passHistory = {
|
|
160
|
+
...(Object.hasOwn(passHistory, "enabled")
|
|
161
|
+
? { enabled: (0, schema_1.parseBoolean)(passHistory.enabled, `${sourceLabel}.passHistory.enabled`) }
|
|
162
|
+
: {}),
|
|
163
|
+
...(Object.hasOwn(passHistory, "dirPath")
|
|
164
|
+
? { dirPath: (0, schema_1.parseString)(passHistory.dirPath, `${sourceLabel}.passHistory.dirPath`).trim() }
|
|
165
|
+
: {}),
|
|
166
|
+
...(Object.hasOwn(passHistory, "maxEntries")
|
|
167
|
+
? { maxEntries: (0, schema_1.parseFiniteNumber)(passHistory.maxEntries, `${sourceLabel}.passHistory.maxEntries`) }
|
|
168
|
+
: {})
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
if (Object.hasOwn(root, "reporting")) {
|
|
172
|
+
const reporting = (0, schema_1.parseObject)(root.reporting, `${sourceLabel}.reporting`);
|
|
173
|
+
config.reporting = {
|
|
174
|
+
...(Object.hasOwn(reporting, "language")
|
|
175
|
+
? { language: (0, schema_1.parseOutputLanguage)((0, schema_1.parseString)(reporting.language, `${sourceLabel}.reporting.language`), `${sourceLabel}.reporting.language`) }
|
|
176
|
+
: {}),
|
|
177
|
+
...(Object.hasOwn(reporting, "weekStartsOn")
|
|
178
|
+
? {
|
|
179
|
+
weekStartsOn: (0, schema_1.parseReportWeekStartsOn)((0, schema_1.parseString)(reporting.weekStartsOn, `${sourceLabel}.reporting.weekStartsOn`), `${sourceLabel}.reporting.weekStartsOn`)
|
|
180
|
+
}
|
|
181
|
+
: {}),
|
|
182
|
+
...(Object.hasOwn(reporting, "outputDirPath")
|
|
183
|
+
? { outputDirPath: (0, schema_1.parseString)(reporting.outputDirPath, `${sourceLabel}.reporting.outputDirPath`).trim() }
|
|
184
|
+
: {}),
|
|
185
|
+
...(Object.hasOwn(reporting, "prompt")
|
|
186
|
+
? { prompt: (0, schema_1.parseString)(reporting.prompt, `${sourceLabel}.reporting.prompt`).trim() }
|
|
187
|
+
: {}),
|
|
188
|
+
...(Object.hasOwn(reporting, "ai")
|
|
189
|
+
? { ai: parseReportingAiConfig(reporting.ai, `${sourceLabel}.reporting.ai`) }
|
|
190
|
+
: {})
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
if (Object.hasOwn(root, "output")) {
|
|
194
|
+
const output = (0, schema_1.parseObject)(root.output, `${sourceLabel}.output`);
|
|
195
|
+
config.output = {
|
|
196
|
+
...(Object.hasOwn(output, "format")
|
|
197
|
+
? { format: (0, schema_1.parseOutputFormat)((0, schema_1.parseString)(output.format, `${sourceLabel}.output.format`), `${sourceLabel}.output.format`) }
|
|
198
|
+
: {}),
|
|
199
|
+
...(Object.hasOwn(output, "logLevel")
|
|
200
|
+
? { logLevel: (0, schema_1.parseLogLevel)((0, schema_1.parseString)(output.logLevel, `${sourceLabel}.output.logLevel`), `${sourceLabel}.output.logLevel`) }
|
|
201
|
+
: {})
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
return config;
|
|
205
|
+
}
|
|
206
|
+
function parseReportingAiConfig(raw, sourceLabel) {
|
|
207
|
+
const ai = (0, schema_1.parseObject)(raw, sourceLabel);
|
|
208
|
+
return {
|
|
209
|
+
...(Object.hasOwn(ai, "enabled") ? { enabled: (0, schema_1.parseBoolean)(ai.enabled, `${sourceLabel}.enabled`) } : {})
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function parseSkillConfig(raw, sourceLabel) {
|
|
213
|
+
const skill = (0, schema_1.parseObject)(raw, sourceLabel);
|
|
214
|
+
return {
|
|
215
|
+
...(Object.hasOwn(skill, "id") ? { id: (0, schema_1.parseString)(skill.id, `${sourceLabel}.id`).trim() } : {}),
|
|
216
|
+
...(Object.hasOwn(skill, "path") ? { path: (0, schema_1.parseString)(skill.path, `${sourceLabel}.path`).trim() } : {}),
|
|
217
|
+
...(Object.hasOwn(skill, "promptTuning")
|
|
218
|
+
? { promptTuning: (0, schema_1.parseString)(skill.promptTuning, `${sourceLabel}.promptTuning`).trim() }
|
|
219
|
+
: {})
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
function parseValidationConfig(raw, sourceLabel) {
|
|
223
|
+
const validation = (0, schema_1.parseObject)(raw, sourceLabel);
|
|
224
|
+
return {
|
|
225
|
+
...(Object.hasOwn(validation, "protocol")
|
|
226
|
+
? {
|
|
227
|
+
protocol: (0, schema_1.parseCommitMessageValidationProtocol)((0, schema_1.parseString)(validation.protocol, `${sourceLabel}.protocol`), `${sourceLabel}.protocol`)
|
|
228
|
+
}
|
|
229
|
+
: {}),
|
|
230
|
+
...(Object.hasOwn(validation, "pattern")
|
|
231
|
+
? { pattern: (0, schema_1.parseString)(validation.pattern, `${sourceLabel}.pattern`).trim() }
|
|
232
|
+
: {}),
|
|
233
|
+
...(Object.hasOwn(validation, "extractTicketIdFromBranch")
|
|
234
|
+
? {
|
|
235
|
+
extractTicketIdFromBranch: (0, schema_1.parseBoolean)(validation.extractTicketIdFromBranch, `${sourceLabel}.extractTicketIdFromBranch`)
|
|
236
|
+
}
|
|
237
|
+
: {}),
|
|
238
|
+
...(Object.hasOwn(validation, "requireTicketIdInMessage")
|
|
239
|
+
? {
|
|
240
|
+
requireTicketIdInMessage: (0, schema_1.parseBoolean)(validation.requireTicketIdInMessage, `${sourceLabel}.requireTicketIdInMessage`)
|
|
241
|
+
}
|
|
242
|
+
: {})
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/config/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.resolveCliConfig = resolveCliConfig;
|
|
18
|
+
const cliArgs_1 = require("./cliArgs");
|
|
19
|
+
const env_1 = require("./env");
|
|
20
|
+
const file_1 = require("./file");
|
|
21
|
+
const merge_1 = require("./merge");
|
|
22
|
+
const runtime_1 = require("./runtime");
|
|
23
|
+
const schema_1 = require("./schema");
|
|
24
|
+
__exportStar(require("./cliArgs"), exports);
|
|
25
|
+
__exportStar(require("./constants"), exports);
|
|
26
|
+
__exportStar(require("./env"), exports);
|
|
27
|
+
__exportStar(require("./file"), exports);
|
|
28
|
+
__exportStar(require("./legacySmartCommit"), exports);
|
|
29
|
+
__exportStar(require("./merge"), exports);
|
|
30
|
+
__exportStar(require("./runtime"), exports);
|
|
31
|
+
__exportStar(require("./schema"), exports);
|
|
32
|
+
function resolveCliConfig(input = {}) {
|
|
33
|
+
const parsedArgs = (0, cliArgs_1.parseCliArgs)(input.argv ?? []);
|
|
34
|
+
const envConfig = (0, env_1.parseCliEnvironment)(input.env ?? process.env);
|
|
35
|
+
const fileConfig = input.fileConfig ??
|
|
36
|
+
(parsedArgs.runtime.configPath ? (0, file_1.loadCliConfigFile)(parsedArgs.runtime.configPath) : undefined);
|
|
37
|
+
const config = (0, runtime_1.resolveRuntimeConfigReferences)((0, merge_1.mergeCliConfig)(fileConfig, envConfig, parsedArgs.config), input.env ?? process.env);
|
|
38
|
+
if (input.validate ?? true) {
|
|
39
|
+
(0, schema_1.validateCliConfig)(config, { requireConnection: input.requireConnection });
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
config,
|
|
43
|
+
runtime: parsedArgs.runtime
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAwBA,4CAoBC;AA5CD,uCAAyC;AACzC,+BAA4C;AAC5C,iCAA2C;AAC3C,mCAAyC;AACzC,uCAA2D;AAC3D,qCAAwF;AAExF,4CAA0B;AAC1B,8CAA4B;AAC5B,wCAAsB;AACtB,yCAAuB;AACvB,sDAAoC;AACpC,0CAAwB;AACxB,4CAA0B;AAC1B,2CAAyB;AAUzB,SAAgB,gBAAgB,CAAC,QAA+B,EAAE;IAChE,MAAM,UAAU,GAAG,IAAA,sBAAY,EAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAA,yBAAmB,EAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,UAAU,GACd,KAAK,CAAC,UAAU;QAChB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAiB,EAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjG,MAAM,MAAM,GAAG,IAAA,wCAA8B,EAC3C,IAAA,sBAAc,EAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,EACxD,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CACzB,CAAC;IAEF,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAA,0BAAiB,EAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO;QACL,MAAM;QACN,OAAO,EAAE,UAAU,CAAC,OAAO;KAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasLegacySmartCommitKeys = hasLegacySmartCommitKeys;
|
|
4
|
+
exports.parseLegacySmartCommitConfig = parseLegacySmartCommitConfig;
|
|
5
|
+
const schema_1 = require("./schema");
|
|
6
|
+
const legacyKeys = [
|
|
7
|
+
"smartCommit.baseUrl",
|
|
8
|
+
"smartCommit.apiKey",
|
|
9
|
+
"smartCommit.model",
|
|
10
|
+
"smartCommit.extraHeaders",
|
|
11
|
+
"smartCommit.requestTimeoutMs",
|
|
12
|
+
"smartCommit.gitPushTimeoutMs",
|
|
13
|
+
"smartCommit.threshold",
|
|
14
|
+
"smartCommit.maxDiffChars",
|
|
15
|
+
"smartCommit.autoGenerateCommitMessage",
|
|
16
|
+
"smartCommit.hybridGenerateCommitMessage",
|
|
17
|
+
"smartCommit.commitMessageValidationProtocol",
|
|
18
|
+
"smartCommit.extractTicketIdFromBranch",
|
|
19
|
+
"smartCommit.requireTicketIdInCommitMessage",
|
|
20
|
+
"smartCommit.commitMessageValidationPattern",
|
|
21
|
+
"smartCommit.commitMessageLanguage",
|
|
22
|
+
"smartCommit.reviewLanguage",
|
|
23
|
+
"smartCommit.autoCommitAndPush",
|
|
24
|
+
"smartCommit.autoStageWhenNothingStaged",
|
|
25
|
+
"smartCommit.codeReviewSkillId",
|
|
26
|
+
"smartCommit.codeReviewSkillPath",
|
|
27
|
+
"smartCommit.gitCommitMessageSkillId",
|
|
28
|
+
"smartCommit.gitCommitMessageSkillPath",
|
|
29
|
+
"smartCommit.codeReviewSkillPromptTuning",
|
|
30
|
+
"smartCommit.gitCommitMessageSkillPromptTuning",
|
|
31
|
+
"smartCommit.enablePassHistory",
|
|
32
|
+
"smartCommit.passHistoryDirPath",
|
|
33
|
+
"smartCommit.passHistoryMaxEntries",
|
|
34
|
+
"smartCommit.reportLanguage",
|
|
35
|
+
"smartCommit.reportWeekStartsOn",
|
|
36
|
+
"smartCommit.reportOutputDirPath",
|
|
37
|
+
"smartCommit.reportPrompt"
|
|
38
|
+
];
|
|
39
|
+
const legacyKeySet = new Set(legacyKeys);
|
|
40
|
+
function hasLegacySmartCommitKeys(raw) {
|
|
41
|
+
return Object.keys(raw).some((key) => legacyKeySet.has(key));
|
|
42
|
+
}
|
|
43
|
+
function parseLegacySmartCommitConfig(raw, sourceLabel) {
|
|
44
|
+
const overrides = {};
|
|
45
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
46
|
+
if (!legacyKeySet.has(key)) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
applyLegacyKey(overrides, key, value, sourceLabel);
|
|
50
|
+
}
|
|
51
|
+
return overrides;
|
|
52
|
+
}
|
|
53
|
+
function applyLegacyKey(config, key, value, sourceLabel) {
|
|
54
|
+
const keyLabel = `${sourceLabel}:${key}`;
|
|
55
|
+
switch (key) {
|
|
56
|
+
case "smartCommit.baseUrl":
|
|
57
|
+
config.connection = { ...config.connection, baseUrl: (0, schema_1.parseString)(value, keyLabel).trim() };
|
|
58
|
+
return;
|
|
59
|
+
case "smartCommit.apiKey":
|
|
60
|
+
config.connection = { ...config.connection, apiKey: (0, schema_1.parseString)(value, keyLabel).trim() };
|
|
61
|
+
return;
|
|
62
|
+
case "smartCommit.model":
|
|
63
|
+
config.connection = { ...config.connection, model: (0, schema_1.parseString)(value, keyLabel).trim() };
|
|
64
|
+
return;
|
|
65
|
+
case "smartCommit.extraHeaders":
|
|
66
|
+
config.connection = { ...config.connection, extraHeaders: (0, schema_1.parseStringMap)(value, keyLabel) };
|
|
67
|
+
return;
|
|
68
|
+
case "smartCommit.requestTimeoutMs":
|
|
69
|
+
config.connection = { ...config.connection, requestTimeoutMs: (0, schema_1.parseFiniteNumber)(value, keyLabel) };
|
|
70
|
+
return;
|
|
71
|
+
case "smartCommit.gitPushTimeoutMs":
|
|
72
|
+
config.git = { ...config.git, pushTimeoutMs: (0, schema_1.parseFiniteNumber)(value, keyLabel) };
|
|
73
|
+
return;
|
|
74
|
+
case "smartCommit.threshold":
|
|
75
|
+
config.review = { ...config.review, threshold: (0, schema_1.parseFiniteNumber)(value, keyLabel) };
|
|
76
|
+
return;
|
|
77
|
+
case "smartCommit.maxDiffChars":
|
|
78
|
+
config.review = { ...config.review, maxDiffChars: (0, schema_1.parseFiniteNumber)(value, keyLabel) };
|
|
79
|
+
return;
|
|
80
|
+
case "smartCommit.autoGenerateCommitMessage":
|
|
81
|
+
config.commitMessage = { ...config.commitMessage, autoGenerate: (0, schema_1.parseBoolean)(value, keyLabel) };
|
|
82
|
+
return;
|
|
83
|
+
case "smartCommit.hybridGenerateCommitMessage":
|
|
84
|
+
config.commitMessage = { ...config.commitMessage, hybridGenerate: (0, schema_1.parseBoolean)(value, keyLabel) };
|
|
85
|
+
return;
|
|
86
|
+
case "smartCommit.commitMessageValidationProtocol":
|
|
87
|
+
config.commitMessage = {
|
|
88
|
+
...config.commitMessage,
|
|
89
|
+
validation: {
|
|
90
|
+
...config.commitMessage?.validation,
|
|
91
|
+
protocol: (0, schema_1.parseCommitMessageValidationProtocol)((0, schema_1.parseString)(value, keyLabel), keyLabel)
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
return;
|
|
95
|
+
case "smartCommit.extractTicketIdFromBranch":
|
|
96
|
+
config.commitMessage = {
|
|
97
|
+
...config.commitMessage,
|
|
98
|
+
validation: {
|
|
99
|
+
...config.commitMessage?.validation,
|
|
100
|
+
extractTicketIdFromBranch: (0, schema_1.parseBoolean)(value, keyLabel)
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
return;
|
|
104
|
+
case "smartCommit.requireTicketIdInCommitMessage":
|
|
105
|
+
config.commitMessage = {
|
|
106
|
+
...config.commitMessage,
|
|
107
|
+
validation: {
|
|
108
|
+
...config.commitMessage?.validation,
|
|
109
|
+
requireTicketIdInMessage: (0, schema_1.parseBoolean)(value, keyLabel)
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
return;
|
|
113
|
+
case "smartCommit.commitMessageValidationPattern":
|
|
114
|
+
config.commitMessage = {
|
|
115
|
+
...config.commitMessage,
|
|
116
|
+
validation: {
|
|
117
|
+
...config.commitMessage?.validation,
|
|
118
|
+
pattern: (0, schema_1.parseString)(value, keyLabel).trim()
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
return;
|
|
122
|
+
case "smartCommit.commitMessageLanguage":
|
|
123
|
+
config.commitMessage = {
|
|
124
|
+
...config.commitMessage,
|
|
125
|
+
language: (0, schema_1.parseOutputLanguage)((0, schema_1.parseString)(value, keyLabel), keyLabel)
|
|
126
|
+
};
|
|
127
|
+
return;
|
|
128
|
+
case "smartCommit.reviewLanguage":
|
|
129
|
+
config.review = { ...config.review, language: (0, schema_1.parseOutputLanguage)((0, schema_1.parseString)(value, keyLabel), keyLabel) };
|
|
130
|
+
return;
|
|
131
|
+
case "smartCommit.autoCommitAndPush": {
|
|
132
|
+
const enabled = (0, schema_1.parseBoolean)(value, keyLabel);
|
|
133
|
+
config.git = { ...config.git, autoCommit: enabled, autoPush: enabled };
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
case "smartCommit.autoStageWhenNothingStaged":
|
|
137
|
+
config.git = { ...config.git, autoStageWhenNothingStaged: (0, schema_1.parseBoolean)(value, keyLabel) };
|
|
138
|
+
return;
|
|
139
|
+
case "smartCommit.codeReviewSkillId":
|
|
140
|
+
config.review = { ...config.review, skill: { ...config.review?.skill, id: (0, schema_1.parseString)(value, keyLabel).trim() } };
|
|
141
|
+
return;
|
|
142
|
+
case "smartCommit.codeReviewSkillPath":
|
|
143
|
+
config.review = { ...config.review, skill: { ...config.review?.skill, path: (0, schema_1.parseString)(value, keyLabel).trim() } };
|
|
144
|
+
return;
|
|
145
|
+
case "smartCommit.gitCommitMessageSkillId":
|
|
146
|
+
config.commitMessage = {
|
|
147
|
+
...config.commitMessage,
|
|
148
|
+
skill: { ...config.commitMessage?.skill, id: (0, schema_1.parseString)(value, keyLabel).trim() }
|
|
149
|
+
};
|
|
150
|
+
return;
|
|
151
|
+
case "smartCommit.gitCommitMessageSkillPath":
|
|
152
|
+
config.commitMessage = {
|
|
153
|
+
...config.commitMessage,
|
|
154
|
+
skill: { ...config.commitMessage?.skill, path: (0, schema_1.parseString)(value, keyLabel).trim() }
|
|
155
|
+
};
|
|
156
|
+
return;
|
|
157
|
+
case "smartCommit.codeReviewSkillPromptTuning":
|
|
158
|
+
config.review = {
|
|
159
|
+
...config.review,
|
|
160
|
+
skill: { ...config.review?.skill, promptTuning: (0, schema_1.parseString)(value, keyLabel).trim() }
|
|
161
|
+
};
|
|
162
|
+
return;
|
|
163
|
+
case "smartCommit.gitCommitMessageSkillPromptTuning":
|
|
164
|
+
config.commitMessage = {
|
|
165
|
+
...config.commitMessage,
|
|
166
|
+
skill: { ...config.commitMessage?.skill, promptTuning: (0, schema_1.parseString)(value, keyLabel).trim() }
|
|
167
|
+
};
|
|
168
|
+
return;
|
|
169
|
+
case "smartCommit.enablePassHistory":
|
|
170
|
+
config.passHistory = { ...config.passHistory, enabled: (0, schema_1.parseBoolean)(value, keyLabel) };
|
|
171
|
+
return;
|
|
172
|
+
case "smartCommit.passHistoryDirPath":
|
|
173
|
+
config.passHistory = { ...config.passHistory, dirPath: (0, schema_1.parseString)(value, keyLabel).trim() };
|
|
174
|
+
return;
|
|
175
|
+
case "smartCommit.passHistoryMaxEntries":
|
|
176
|
+
config.passHistory = { ...config.passHistory, maxEntries: (0, schema_1.parseFiniteNumber)(value, keyLabel) };
|
|
177
|
+
return;
|
|
178
|
+
case "smartCommit.reportLanguage":
|
|
179
|
+
config.reporting = {
|
|
180
|
+
...config.reporting,
|
|
181
|
+
language: (0, schema_1.parseOutputLanguage)((0, schema_1.parseString)(value, keyLabel), keyLabel)
|
|
182
|
+
};
|
|
183
|
+
return;
|
|
184
|
+
case "smartCommit.reportWeekStartsOn":
|
|
185
|
+
config.reporting = {
|
|
186
|
+
...config.reporting,
|
|
187
|
+
weekStartsOn: (0, schema_1.parseReportWeekStartsOn)((0, schema_1.parseString)(value, keyLabel), keyLabel)
|
|
188
|
+
};
|
|
189
|
+
return;
|
|
190
|
+
case "smartCommit.reportOutputDirPath":
|
|
191
|
+
config.reporting = { ...config.reporting, outputDirPath: (0, schema_1.parseString)(value, keyLabel).trim() };
|
|
192
|
+
return;
|
|
193
|
+
case "smartCommit.reportPrompt":
|
|
194
|
+
config.reporting = { ...config.reporting, prompt: (0, schema_1.parseString)(value, keyLabel).trim() };
|
|
195
|
+
return;
|
|
196
|
+
default:
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=legacySmartCommit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacySmartCommit.js","sourceRoot":"","sources":["../../src/config/legacySmartCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeCliConfig = mergeCliConfig;
|
|
4
|
+
const schema_1 = require("./schema");
|
|
5
|
+
function mergeCliConfig(...configs) {
|
|
6
|
+
let result = structuredClone(schema_1.defaultCliConfig);
|
|
7
|
+
for (const config of configs) {
|
|
8
|
+
if (!config) {
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
result = mergeOne(result, config);
|
|
12
|
+
}
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
function mergeOne(base, override) {
|
|
16
|
+
return {
|
|
17
|
+
connection: {
|
|
18
|
+
...base.connection,
|
|
19
|
+
...override.connection,
|
|
20
|
+
extraHeaders: mergeStringMap(base.connection.extraHeaders, override.connection?.extraHeaders)
|
|
21
|
+
},
|
|
22
|
+
review: {
|
|
23
|
+
...base.review,
|
|
24
|
+
...override.review,
|
|
25
|
+
skill: {
|
|
26
|
+
...base.review.skill,
|
|
27
|
+
...override.review?.skill
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
commitMessage: {
|
|
31
|
+
...base.commitMessage,
|
|
32
|
+
...override.commitMessage,
|
|
33
|
+
skill: {
|
|
34
|
+
...base.commitMessage.skill,
|
|
35
|
+
...override.commitMessage?.skill
|
|
36
|
+
},
|
|
37
|
+
validation: {
|
|
38
|
+
...base.commitMessage.validation,
|
|
39
|
+
...override.commitMessage?.validation
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
git: {
|
|
43
|
+
...base.git,
|
|
44
|
+
...override.git
|
|
45
|
+
},
|
|
46
|
+
passHistory: {
|
|
47
|
+
...base.passHistory,
|
|
48
|
+
...override.passHistory
|
|
49
|
+
},
|
|
50
|
+
reporting: {
|
|
51
|
+
...base.reporting,
|
|
52
|
+
...override.reporting,
|
|
53
|
+
ai: {
|
|
54
|
+
...base.reporting.ai,
|
|
55
|
+
...override.reporting?.ai
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
output: {
|
|
59
|
+
...base.output,
|
|
60
|
+
...override.output
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function mergeStringMap(base, override) {
|
|
65
|
+
if (!override) {
|
|
66
|
+
return { ...base };
|
|
67
|
+
}
|
|
68
|
+
return Object.fromEntries([...Object.entries(base), ...Object.entries(override)].filter((entry) => entry[1] !== undefined));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/config/merge.ts"],"names":[],"mappings":";;AAEA,wCAYC;AAdD,qCAAoE;AAEpE,SAAgB,cAAc,CAAC,GAAG,OAAkD;IAClF,IAAI,MAAM,GAAG,eAAe,CAAC,yBAAgB,CAAC,CAAC;IAE/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QAED,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAe,EAAE,QAAgC;IACjE,OAAO;QACL,UAAU,EAAE;YACV,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,QAAQ,CAAC,UAAU;YACtB,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;SAC9F;QACD,MAAM,EAAE;YACN,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,QAAQ,CAAC,MAAM;YAClB,KAAK,EAAE;gBACL,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;gBACpB,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK;aAC1B;SACF;QACD,aAAa,EAAE;YACb,GAAG,IAAI,CAAC,aAAa;YACrB,GAAG,QAAQ,CAAC,aAAa;YACzB,KAAK,EAAE;gBACL,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;gBAC3B,GAAG,QAAQ,CAAC,aAAa,EAAE,KAAK;aACjC;YACD,UAAU,EAAE;gBACV,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU;gBAChC,GAAG,QAAQ,CAAC,aAAa,EAAE,UAAU;aACtC;SACF;QACD,GAAG,EAAE;YACH,GAAG,IAAI,CAAC,GAAG;YACX,GAAG,QAAQ,CAAC,GAAG;SAChB;QACD,WAAW,EAAE;YACX,GAAG,IAAI,CAAC,WAAW;YACnB,GAAG,QAAQ,CAAC,WAAW;SACxB;QACD,SAAS,EAAE;YACT,GAAG,IAAI,CAAC,SAAS;YACjB,GAAG,QAAQ,CAAC,SAAS;YACrB,EAAE,EAAE;gBACF,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE;gBACpB,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE;aAC1B;SACF;QACD,MAAM,EAAE;YACN,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,QAAQ,CAAC,MAAM;SACnB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,IAA4B,EAC5B,QAAyD;IAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAC5H,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveRuntimeConfigReferences = resolveRuntimeConfigReferences;
|
|
4
|
+
function resolveRuntimeConfigReferences(config, env) {
|
|
5
|
+
return resolveValue(config, [], env);
|
|
6
|
+
}
|
|
7
|
+
function resolveValue(value, path, env) {
|
|
8
|
+
if (typeof value === "string") {
|
|
9
|
+
return resolveStringReference(value, path, env);
|
|
10
|
+
}
|
|
11
|
+
if (Array.isArray(value)) {
|
|
12
|
+
return value.map((item, index) => resolveValue(item, [...path, String(index)], env));
|
|
13
|
+
}
|
|
14
|
+
if (!value || typeof value !== "object") {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, resolveValue(item, [...path, key], env)]));
|
|
18
|
+
}
|
|
19
|
+
function resolveStringReference(value, path, env) {
|
|
20
|
+
const trimmed = value.trim();
|
|
21
|
+
if (!trimmed.startsWith("env:")) {
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
const envName = trimmed.slice("env:".length).trim();
|
|
25
|
+
if (!envName) {
|
|
26
|
+
throw new Error(`${formatPath(path)} must reference a non-empty environment variable name.`);
|
|
27
|
+
}
|
|
28
|
+
if (!(envName in env)) {
|
|
29
|
+
throw new Error(`${formatPath(path)} references missing environment variable ${envName}.`);
|
|
30
|
+
}
|
|
31
|
+
return env[envName] ?? "";
|
|
32
|
+
}
|
|
33
|
+
function formatPath(path) {
|
|
34
|
+
return path.join(".");
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/config/runtime.ts"],"names":[],"mappings":";;AAEA,wEAEC;AAFD,SAAgB,8BAA8B,CAAC,MAAiB,EAAE,GAAsB;IACtF,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAc,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,IAAc,EAAE,GAAsB;IAC1E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAC3F,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,IAAc,EAAE,GAAsB;IACnF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,4CAA4C,OAAO,GAAG,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
|