@quiltdata/benchling-webhook 0.7.4-20251107T155705Z → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/bin/cli.js +0 -18
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/get-env.d.ts +16 -0
- package/dist/bin/commands/get-env.d.ts.map +1 -0
- package/dist/bin/commands/get-env.js +210 -0
- package/dist/bin/commands/get-env.js.map +1 -0
- package/dist/bin/commands/infer-quilt-config.d.ts +3 -2
- package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -1
- package/dist/bin/commands/infer-quilt-config.js +39 -65
- package/dist/bin/commands/infer-quilt-config.js.map +1 -1
- package/dist/bin/commands/setup-wizard.d.ts.map +1 -1
- package/dist/bin/commands/setup-wizard.js +108 -153
- package/dist/bin/commands/setup-wizard.js.map +1 -1
- package/dist/bin/commands/sync-secrets.d.ts +6 -3
- package/dist/bin/commands/sync-secrets.d.ts.map +1 -1
- package/dist/bin/commands/sync-secrets.js +14 -6
- package/dist/bin/commands/sync-secrets.js.map +1 -1
- package/dist/lib/interfaces/config-storage.d.ts +80 -0
- package/dist/lib/interfaces/config-storage.d.ts.map +1 -0
- package/dist/lib/interfaces/config-storage.js +9 -0
- package/dist/lib/interfaces/config-storage.js.map +1 -0
- package/dist/lib/utils/stack-inference.d.ts +28 -0
- package/dist/lib/utils/stack-inference.d.ts.map +1 -1
- package/dist/lib/utils/stack-inference.js +61 -0
- package/dist/lib/utils/stack-inference.js.map +1 -1
- package/dist/lib/xdg-base.d.ts +306 -0
- package/dist/lib/xdg-base.d.ts.map +1 -0
- package/dist/lib/xdg-base.js +440 -0
- package/dist/lib/xdg-base.js.map +1 -0
- package/dist/lib/xdg-config.d.ts +54 -187
- package/dist/lib/xdg-config.d.ts.map +1 -1
- package/dist/lib/xdg-config.js +83 -342
- package/dist/lib/xdg-config.js.map +1 -1
- package/dist/package.json +4 -3
- package/dist/scripts/list-quilt-stacks.d.ts +14 -0
- package/dist/scripts/list-quilt-stacks.d.ts.map +1 -0
- package/dist/scripts/list-quilt-stacks.js +96 -0
- package/dist/scripts/list-quilt-stacks.js.map +1 -0
- package/env.template +79 -0
- package/package.json +4 -3
- package/dist/bin/commands/config-show.d.ts +0 -14
- package/dist/bin/commands/config-show.d.ts.map +0 -1
- package/dist/bin/commands/config-show.js +0 -24
- package/dist/bin/commands/config-show.js.map +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Storage Interface
|
|
3
|
+
*
|
|
4
|
+
* This interface abstracts the storage mechanism for configuration,
|
|
5
|
+
* allowing tests to use in-memory implementations instead of the filesystem.
|
|
6
|
+
*/
|
|
7
|
+
import { ProfileConfig, DeploymentHistory, DeploymentRecord, ValidationResult } from "../types/config";
|
|
8
|
+
/**
|
|
9
|
+
* Interface for configuration storage operations
|
|
10
|
+
*
|
|
11
|
+
* This abstraction allows for multiple implementations:
|
|
12
|
+
* - XDGConfigStorage: Real filesystem-based storage (production)
|
|
13
|
+
* - MockConfigStorage: In-memory storage (testing)
|
|
14
|
+
*/
|
|
15
|
+
export interface IConfigStorage {
|
|
16
|
+
/**
|
|
17
|
+
* Reads configuration for a profile
|
|
18
|
+
* @param profile - Profile name
|
|
19
|
+
* @returns Parsed configuration object
|
|
20
|
+
* @throws {Error} If profile not found or configuration is invalid
|
|
21
|
+
*/
|
|
22
|
+
readProfile(profile: string): ProfileConfig;
|
|
23
|
+
/**
|
|
24
|
+
* Writes configuration for a profile
|
|
25
|
+
* @param profile - Profile name
|
|
26
|
+
* @param config - Configuration object to write
|
|
27
|
+
* @throws {Error} If validation fails or write operation fails
|
|
28
|
+
*/
|
|
29
|
+
writeProfile(profile: string, config: ProfileConfig): void;
|
|
30
|
+
/**
|
|
31
|
+
* Deletes a profile and all its files
|
|
32
|
+
* @param profile - Profile name to delete
|
|
33
|
+
* @throws {Error} If attempting to delete default profile or if deletion fails
|
|
34
|
+
*/
|
|
35
|
+
deleteProfile(profile: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Lists all available profiles
|
|
38
|
+
* @returns Array of profile names
|
|
39
|
+
*/
|
|
40
|
+
listProfiles(): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Checks if a profile exists
|
|
43
|
+
* @param profile - Profile name to check
|
|
44
|
+
* @returns True if profile exists, false otherwise
|
|
45
|
+
*/
|
|
46
|
+
profileExists(profile: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Gets deployment history for a profile
|
|
49
|
+
* @param profile - Profile name
|
|
50
|
+
* @returns Deployment history with active deployments and full history
|
|
51
|
+
*/
|
|
52
|
+
getDeployments(profile: string): DeploymentHistory;
|
|
53
|
+
/**
|
|
54
|
+
* Records a new deployment for a profile
|
|
55
|
+
* @param profile - Profile name
|
|
56
|
+
* @param deployment - Deployment record to add
|
|
57
|
+
*/
|
|
58
|
+
recordDeployment(profile: string, deployment: DeploymentRecord): void;
|
|
59
|
+
/**
|
|
60
|
+
* Gets the active deployment for a specific stage
|
|
61
|
+
* @param profile - Profile name
|
|
62
|
+
* @param stage - Stage name (e.g., "dev", "prod")
|
|
63
|
+
* @returns Active deployment record for the stage, or null if none exists
|
|
64
|
+
*/
|
|
65
|
+
getActiveDeployment(profile: string, stage: string): DeploymentRecord | null;
|
|
66
|
+
/**
|
|
67
|
+
* Reads profile configuration with inheritance support
|
|
68
|
+
* @param profile - Profile name to read
|
|
69
|
+
* @param baseProfile - Optional explicit base profile
|
|
70
|
+
* @returns Merged configuration with inheritance applied
|
|
71
|
+
*/
|
|
72
|
+
readProfileWithInheritance(profile: string, baseProfile?: string): ProfileConfig;
|
|
73
|
+
/**
|
|
74
|
+
* Validates a profile configuration against the schema
|
|
75
|
+
* @param config - Configuration object to validate
|
|
76
|
+
* @returns Validation result with errors and warnings
|
|
77
|
+
*/
|
|
78
|
+
validateProfile(config: ProfileConfig): ValidationResult;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=config-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-storage.d.ts","sourceRoot":"","sources":["../../../lib/interfaces/config-storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IAE5C;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAE3D;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;OAGG;IACH,YAAY,IAAI,MAAM,EAAE,CAAC;IAEzB;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAExC;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAEnD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAE7E;;;;;OAKG;IACH,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAEjF;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB,CAAC;CAC5D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration Storage Interface
|
|
4
|
+
*
|
|
5
|
+
* This interface abstracts the storage mechanism for configuration,
|
|
6
|
+
* allowing tests to use in-memory implementations instead of the filesystem.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=config-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-storage.js","sourceRoot":"","sources":["../../../lib/interfaces/config-storage.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -26,6 +26,20 @@ export interface InferredStackInfo {
|
|
|
26
26
|
stackDetails: StackDetails;
|
|
27
27
|
inferredVars: Record<string, string>;
|
|
28
28
|
}
|
|
29
|
+
export interface QuiltStack {
|
|
30
|
+
StackName: string;
|
|
31
|
+
StackStatus: string;
|
|
32
|
+
Outputs?: Array<{
|
|
33
|
+
OutputKey: string;
|
|
34
|
+
OutputValue: string;
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
export interface StackSummary {
|
|
38
|
+
StackName: string;
|
|
39
|
+
StackStatus: string;
|
|
40
|
+
CreationTime: string;
|
|
41
|
+
LastUpdatedTime?: string;
|
|
42
|
+
}
|
|
29
43
|
/**
|
|
30
44
|
* Fetch JSON from a URL using native Node.js modules
|
|
31
45
|
*/
|
|
@@ -50,6 +64,20 @@ export declare function extractApiGatewayId(endpoint: string): string | null;
|
|
|
50
64
|
* Find CloudFormation stack using API Gateway ID
|
|
51
65
|
*/
|
|
52
66
|
export declare function findStack(region: string, apiGatewayId: string | null, verbose?: boolean): string | null;
|
|
67
|
+
/**
|
|
68
|
+
* List all CloudFormation stacks in a region
|
|
69
|
+
*/
|
|
70
|
+
export declare function listAllStacks(region: string): StackSummary[];
|
|
71
|
+
/**
|
|
72
|
+
* Check if a stack has the QuiltWebHost output (identifying it as a Quilt catalog stack)
|
|
73
|
+
* This is the canonical way to identify Quilt stacks vs other CloudFormation stacks.
|
|
74
|
+
*/
|
|
75
|
+
export declare function isQuiltStack(region: string, stackName: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Find all Quilt catalog stacks in a region
|
|
78
|
+
* Returns an array of stacks that have the QuiltWebHost output
|
|
79
|
+
*/
|
|
80
|
+
export declare function findAllQuiltStacks(region: string, verbose?: boolean): QuiltStack[];
|
|
53
81
|
/**
|
|
54
82
|
* Build inferred configuration from stack details
|
|
55
83
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-inference.d.ts","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,UAAU,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuC7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWrF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAsB/E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAS/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAGD;;GAEG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,OAAO,UAAO,GACf,MAAM,GAAG,IAAI,CAaf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,aAAa,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkDxB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,UAAO,GACf,OAAO,CAAC,iBAAiB,CAAC,CAoI5B"}
|
|
1
|
+
{"version":3,"file":"stack-inference.d.ts","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,UAAU,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuC7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWrF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAsB/E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAS/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAGD;;GAEG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,OAAO,UAAO,GACf,MAAM,GAAG,IAAI,CAaf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAiB5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAUvE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,UAAU,EAAE,CA0BhF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,aAAa,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkDxB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,UAAO,GACf,OAAO,CAAC,iBAAiB,CAAC,CAoI5B"}
|
|
@@ -43,6 +43,9 @@ exports.getStackDetails = getStackDetails;
|
|
|
43
43
|
exports.getAwsAccountId = getAwsAccountId;
|
|
44
44
|
exports.extractApiGatewayId = extractApiGatewayId;
|
|
45
45
|
exports.findStack = findStack;
|
|
46
|
+
exports.listAllStacks = listAllStacks;
|
|
47
|
+
exports.isQuiltStack = isQuiltStack;
|
|
48
|
+
exports.findAllQuiltStacks = findAllQuiltStacks;
|
|
46
49
|
exports.buildInferredConfig = buildInferredConfig;
|
|
47
50
|
exports.inferStackConfig = inferStackConfig;
|
|
48
51
|
const child_process_1 = require("child_process");
|
|
@@ -152,6 +155,64 @@ function findStack(region, apiGatewayId, verbose = true) {
|
|
|
152
155
|
}
|
|
153
156
|
return stackName;
|
|
154
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* List all CloudFormation stacks in a region
|
|
160
|
+
*/
|
|
161
|
+
function listAllStacks(region) {
|
|
162
|
+
const statusFilters = [
|
|
163
|
+
"CREATE_COMPLETE",
|
|
164
|
+
"UPDATE_COMPLETE",
|
|
165
|
+
"UPDATE_ROLLBACK_COMPLETE",
|
|
166
|
+
].join(" ");
|
|
167
|
+
try {
|
|
168
|
+
const result = (0, child_process_1.execSync)(`aws cloudformation list-stacks --region ${region} --stack-status-filter ${statusFilters} --query 'StackSummaries' --output json`, { encoding: "utf-8" });
|
|
169
|
+
return JSON.parse(result);
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
console.error(`Error listing stacks: ${error.message}`);
|
|
173
|
+
return [];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if a stack has the QuiltWebHost output (identifying it as a Quilt catalog stack)
|
|
178
|
+
* This is the canonical way to identify Quilt stacks vs other CloudFormation stacks.
|
|
179
|
+
*/
|
|
180
|
+
function isQuiltStack(region, stackName) {
|
|
181
|
+
try {
|
|
182
|
+
const result = (0, child_process_1.execSync)(`aws cloudformation describe-stacks --region ${region} --stack-name "${stackName}" --query 'Stacks[0].Outputs[?OutputKey==\`QuiltWebHost\`] | length(@)' --output text 2>/dev/null`, { encoding: "utf-8" });
|
|
183
|
+
return parseInt(result.trim()) > 0;
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Find all Quilt catalog stacks in a region
|
|
191
|
+
* Returns an array of stacks that have the QuiltWebHost output
|
|
192
|
+
*/
|
|
193
|
+
function findAllQuiltStacks(region, verbose = false) {
|
|
194
|
+
if (verbose) {
|
|
195
|
+
console.log(`Searching for Quilt stacks in ${region}...`);
|
|
196
|
+
}
|
|
197
|
+
const allStacks = listAllStacks(region);
|
|
198
|
+
const quiltStacks = [];
|
|
199
|
+
for (const stackSummary of allStacks) {
|
|
200
|
+
if (isQuiltStack(region, stackSummary.StackName)) {
|
|
201
|
+
const details = getStackDetails(region, stackSummary.StackName);
|
|
202
|
+
if (details) {
|
|
203
|
+
quiltStacks.push({
|
|
204
|
+
StackName: stackSummary.StackName,
|
|
205
|
+
StackStatus: stackSummary.StackStatus,
|
|
206
|
+
Outputs: details.outputs,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (verbose) {
|
|
212
|
+
console.log(`Found ${quiltStacks.length} Quilt stack(s)`);
|
|
213
|
+
}
|
|
214
|
+
return quiltStacks;
|
|
215
|
+
}
|
|
155
216
|
/**
|
|
156
217
|
* Build inferred configuration from stack details
|
|
157
218
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-inference.js","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stack-inference.js","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XDG Base Abstract Class (v0.7.0)
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class containing all shared business logic for configuration management.
|
|
5
|
+
* Concrete implementations (XDGConfig, XDGTest) provide storage primitives.
|
|
6
|
+
*
|
|
7
|
+
* This separation allows:
|
|
8
|
+
* - Shared validation, inheritance, and error handling logic in one place
|
|
9
|
+
* - Multiple storage backends (filesystem, in-memory) with identical behavior
|
|
10
|
+
* - Better test coverage by exercising business logic through both implementations
|
|
11
|
+
*
|
|
12
|
+
* @module xdg-base
|
|
13
|
+
* @version 0.7.0
|
|
14
|
+
*/
|
|
15
|
+
import { ProfileConfig, DeploymentHistory, DeploymentRecord, ValidationResult } from "./types/config";
|
|
16
|
+
import { IConfigStorage } from "./interfaces/config-storage";
|
|
17
|
+
/**
|
|
18
|
+
* Abstract base class for XDG configuration management
|
|
19
|
+
*
|
|
20
|
+
* Implements IConfigStorage interface with all business logic.
|
|
21
|
+
* Subclasses must implement abstract storage primitives for their specific storage mechanism.
|
|
22
|
+
*
|
|
23
|
+
* @abstract
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Filesystem implementation
|
|
27
|
+
* class XDGConfig extends XDGBase {
|
|
28
|
+
* protected readProfileRaw(profile: string): ProfileConfig {
|
|
29
|
+
* const data = readFileSync(this.getProfilePath(profile), "utf-8");
|
|
30
|
+
* return JSON.parse(data);
|
|
31
|
+
* }
|
|
32
|
+
* // ... other primitives
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* // In-memory implementation
|
|
36
|
+
* class XDGTest extends XDGBase {
|
|
37
|
+
* private profiles = new Map<string, ProfileConfig>();
|
|
38
|
+
* protected readProfileRaw(profile: string): ProfileConfig {
|
|
39
|
+
* const config = this.profiles.get(profile);
|
|
40
|
+
* if (!config) throw new Error(`Profile not found: ${profile}`);
|
|
41
|
+
* return config;
|
|
42
|
+
* }
|
|
43
|
+
* // ... other primitives
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare abstract class XDGBase implements IConfigStorage {
|
|
48
|
+
/**
|
|
49
|
+
* Reads raw profile configuration without validation
|
|
50
|
+
*
|
|
51
|
+
* @param profile - Profile name
|
|
52
|
+
* @returns Raw profile configuration
|
|
53
|
+
* @throws {Error} If profile cannot be read
|
|
54
|
+
*/
|
|
55
|
+
protected abstract readProfileRaw(profile: string): ProfileConfig;
|
|
56
|
+
/**
|
|
57
|
+
* Writes raw profile configuration without validation
|
|
58
|
+
*
|
|
59
|
+
* @param profile - Profile name
|
|
60
|
+
* @param config - Configuration to write
|
|
61
|
+
* @throws {Error} If write fails
|
|
62
|
+
*/
|
|
63
|
+
protected abstract writeProfileRaw(profile: string, config: ProfileConfig): void;
|
|
64
|
+
/**
|
|
65
|
+
* Deletes profile and all associated data
|
|
66
|
+
*
|
|
67
|
+
* @param profile - Profile name
|
|
68
|
+
* @throws {Error} If deletion fails
|
|
69
|
+
*/
|
|
70
|
+
protected abstract deleteProfileRaw(profile: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* Lists all profile names
|
|
73
|
+
*
|
|
74
|
+
* @returns Array of profile names
|
|
75
|
+
*/
|
|
76
|
+
protected abstract listProfilesRaw(): string[];
|
|
77
|
+
/**
|
|
78
|
+
* Checks if profile exists
|
|
79
|
+
*
|
|
80
|
+
* @param profile - Profile name
|
|
81
|
+
* @returns True if profile exists
|
|
82
|
+
*/
|
|
83
|
+
protected abstract profileExistsRaw(profile: string): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Reads raw deployment history without validation
|
|
86
|
+
*
|
|
87
|
+
* @param profile - Profile name
|
|
88
|
+
* @returns Deployment history or null if none exists
|
|
89
|
+
* @throws {Error} If read fails
|
|
90
|
+
*/
|
|
91
|
+
protected abstract readDeploymentsRaw(profile: string): DeploymentHistory | null;
|
|
92
|
+
/**
|
|
93
|
+
* Writes raw deployment history without validation
|
|
94
|
+
*
|
|
95
|
+
* @param profile - Profile name
|
|
96
|
+
* @param history - Deployment history to write
|
|
97
|
+
* @throws {Error} If write fails
|
|
98
|
+
*/
|
|
99
|
+
protected abstract writeDeploymentsRaw(profile: string, history: DeploymentHistory): void;
|
|
100
|
+
/**
|
|
101
|
+
* Reads configuration for a profile with validation
|
|
102
|
+
*
|
|
103
|
+
* @param profile - Profile name (e.g., "default", "dev", "prod")
|
|
104
|
+
* @returns Validated configuration object
|
|
105
|
+
* @throws {Error} If profile not found or configuration is invalid
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const config = storage.readProfile("default");
|
|
110
|
+
* console.log(config.benchling.tenant);
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
readProfile(profile: string): ProfileConfig;
|
|
114
|
+
/**
|
|
115
|
+
* Writes configuration for a profile with validation
|
|
116
|
+
*
|
|
117
|
+
* Creates the profile if it doesn't exist.
|
|
118
|
+
*
|
|
119
|
+
* @param profile - Profile name
|
|
120
|
+
* @param config - Configuration object to write
|
|
121
|
+
* @throws {Error} If validation fails or write operation fails
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* storage.writeProfile("default", {
|
|
126
|
+
* quilt: { ... },
|
|
127
|
+
* benchling: { ... },
|
|
128
|
+
* packages: { ... },
|
|
129
|
+
* deployment: { ... },
|
|
130
|
+
* _metadata: {
|
|
131
|
+
* version: "0.7.0",
|
|
132
|
+
* createdAt: new Date().toISOString(),
|
|
133
|
+
* updatedAt: new Date().toISOString(),
|
|
134
|
+
* source: "wizard"
|
|
135
|
+
* }
|
|
136
|
+
* });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
writeProfile(profile: string, config: ProfileConfig): void;
|
|
140
|
+
/**
|
|
141
|
+
* Deletes a profile and all its data
|
|
142
|
+
*
|
|
143
|
+
* WARNING: This is a destructive operation!
|
|
144
|
+
* Cannot delete the "default" profile.
|
|
145
|
+
*
|
|
146
|
+
* @param profile - Profile name to delete
|
|
147
|
+
* @throws {Error} If attempting to delete default profile or if deletion fails
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* storage.deleteProfile("dev");
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
deleteProfile(profile: string): void;
|
|
155
|
+
/**
|
|
156
|
+
* Lists all available profiles
|
|
157
|
+
*
|
|
158
|
+
* @returns Array of profile names
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* const profiles = storage.listProfiles();
|
|
163
|
+
* console.log(profiles); // ["default", "dev", "prod"]
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
listProfiles(): string[];
|
|
167
|
+
/**
|
|
168
|
+
* Checks if a profile exists
|
|
169
|
+
*
|
|
170
|
+
* @param profile - Profile name to check
|
|
171
|
+
* @returns True if profile exists and has valid configuration, false otherwise
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* if (storage.profileExists("dev")) {
|
|
176
|
+
* const config = storage.readProfile("dev");
|
|
177
|
+
* }
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
profileExists(profile: string): boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Gets deployment history for a profile with validation
|
|
183
|
+
*
|
|
184
|
+
* Returns empty history if deployments don't exist.
|
|
185
|
+
*
|
|
186
|
+
* @param profile - Profile name
|
|
187
|
+
* @returns Deployment history with active deployments and full history
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* const deployments = storage.getDeployments("default");
|
|
192
|
+
* console.log(deployments.active["prod"]); // Active prod deployment
|
|
193
|
+
* console.log(deployments.history[0]); // Most recent deployment
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
getDeployments(profile: string): DeploymentHistory;
|
|
197
|
+
/**
|
|
198
|
+
* Records a new deployment for a profile
|
|
199
|
+
*
|
|
200
|
+
* Adds deployment to history and updates active deployment for the stage.
|
|
201
|
+
* Creates deployment history if it doesn't exist.
|
|
202
|
+
*
|
|
203
|
+
* @param profile - Profile name
|
|
204
|
+
* @param deployment - Deployment record to add
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```typescript
|
|
208
|
+
* storage.recordDeployment("default", {
|
|
209
|
+
* stage: "prod",
|
|
210
|
+
* timestamp: new Date().toISOString(),
|
|
211
|
+
* imageTag: "0.7.0",
|
|
212
|
+
* endpoint: "https://abc123.execute-api.us-east-1.amazonaws.com/prod",
|
|
213
|
+
* stackName: "BenchlingWebhookStack",
|
|
214
|
+
* region: "us-east-1",
|
|
215
|
+
* deployedBy: "ernest@example.com",
|
|
216
|
+
* commit: "abc123f"
|
|
217
|
+
* });
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
recordDeployment(profile: string, deployment: DeploymentRecord): void;
|
|
221
|
+
/**
|
|
222
|
+
* Gets the active deployment for a specific stage
|
|
223
|
+
*
|
|
224
|
+
* @param profile - Profile name
|
|
225
|
+
* @param stage - Stage name (e.g., "dev", "prod")
|
|
226
|
+
* @returns Active deployment record for the stage, or null if none exists
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```typescript
|
|
230
|
+
* const prodDeployment = storage.getActiveDeployment("default", "prod");
|
|
231
|
+
* if (prodDeployment) {
|
|
232
|
+
* console.log("Prod endpoint:", prodDeployment.endpoint);
|
|
233
|
+
* }
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
getActiveDeployment(profile: string, stage: string): DeploymentRecord | null;
|
|
237
|
+
/**
|
|
238
|
+
* Reads profile configuration with inheritance support
|
|
239
|
+
*
|
|
240
|
+
* If the profile has an `_inherits` field, loads the base profile first
|
|
241
|
+
* and deep merges the current profile on top.
|
|
242
|
+
*
|
|
243
|
+
* Detects and prevents circular inheritance chains.
|
|
244
|
+
*
|
|
245
|
+
* @param profile - Profile name to read
|
|
246
|
+
* @param baseProfile - Optional explicit base profile (overrides `_inherits`)
|
|
247
|
+
* @returns Merged configuration with inheritance applied
|
|
248
|
+
* @throws {Error} If circular inheritance is detected
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* ```typescript
|
|
252
|
+
* // dev/config.json has "_inherits": "default"
|
|
253
|
+
* const devConfig = storage.readProfileWithInheritance("dev");
|
|
254
|
+
* // Returns default config deep-merged with dev overrides
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
readProfileWithInheritance(profile: string, baseProfile?: string): ProfileConfig;
|
|
258
|
+
/**
|
|
259
|
+
* Internal recursive implementation of profile inheritance
|
|
260
|
+
*
|
|
261
|
+
* @param profile - Current profile name
|
|
262
|
+
* @param explicitBase - Explicitly specified base profile
|
|
263
|
+
* @param visited - Set of visited profiles (for circular detection)
|
|
264
|
+
* @returns Merged configuration
|
|
265
|
+
* @throws {Error} If circular inheritance is detected
|
|
266
|
+
*/
|
|
267
|
+
private readProfileWithInheritanceInternal;
|
|
268
|
+
/**
|
|
269
|
+
* Deep merges two profile configurations
|
|
270
|
+
*
|
|
271
|
+
* Nested objects are merged recursively.
|
|
272
|
+
* Arrays are replaced (not concatenated).
|
|
273
|
+
* Current config takes precedence over base config.
|
|
274
|
+
*
|
|
275
|
+
* @param base - Base configuration
|
|
276
|
+
* @param current - Current configuration (takes precedence)
|
|
277
|
+
* @returns Merged configuration
|
|
278
|
+
*/
|
|
279
|
+
private deepMergeConfigs;
|
|
280
|
+
/**
|
|
281
|
+
* Validates a profile configuration against the schema
|
|
282
|
+
*
|
|
283
|
+
* @param config - Configuration object to validate
|
|
284
|
+
* @returns Validation result with errors and warnings
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* ```typescript
|
|
288
|
+
* const validation = storage.validateProfile(config);
|
|
289
|
+
* if (!validation.isValid) {
|
|
290
|
+
* console.error("Validation errors:", validation.errors);
|
|
291
|
+
* }
|
|
292
|
+
* ```
|
|
293
|
+
*/
|
|
294
|
+
validateProfile(config: ProfileConfig): ValidationResult;
|
|
295
|
+
/**
|
|
296
|
+
* Builds a helpful error message when a profile is not found
|
|
297
|
+
*
|
|
298
|
+
* Subclasses can override this to add storage-specific detection
|
|
299
|
+
* (e.g., legacy file detection for filesystem storage).
|
|
300
|
+
*
|
|
301
|
+
* @param profile - Profile name that was not found
|
|
302
|
+
* @returns Formatted error message
|
|
303
|
+
*/
|
|
304
|
+
protected buildProfileNotFoundError(profile: string): string;
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=xdg-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xdg-base.d.ts","sourceRoot":"","sources":["../../lib/xdg-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8BAAsB,OAAQ,YAAW,cAAc;IAKnD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAEjE;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAEhF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAE1D;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,MAAM,EAAE;IAE9C;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAE7D;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAEhF;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAMzF;;;;;;;;;;;;OAYG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAqBlD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAcjE;;;;;;;;;;;;;OAaG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAgB3C;;;;;;;;;;OAUG;IACI,YAAY,IAAI,MAAM,EAAE;IAI/B;;;;;;;;;;;;OAYG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ9C;;;;;;;;;;;;;;OAcG;IACI,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB;IA8BzD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IA2B5E;;;;;;;;;;;;;;OAcG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAanF;;;;;;;;;;;;;;;;;;;OAmBG;IACI,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IAKvF;;;;;;;;OAQG;IACH,OAAO,CAAC,kCAAkC;IAoC1C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;;;;;;;OAaG;IACI,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB;IA8B/D;;;;;;;;OAQG;IACH,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAY/D"}
|