@quiltdata/benchling-webhook 0.4.13 → 0.5.0-20251029T180511Z
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/bin/benchling-webhook.d.ts +50 -0
- package/dist/bin/benchling-webhook.d.ts.map +1 -0
- package/dist/bin/benchling-webhook.js +268 -0
- package/dist/bin/benchling-webhook.js.map +1 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +83 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/bin/commands/deploy.d.ts +7 -0
- package/dist/bin/commands/deploy.d.ts.map +1 -0
- package/dist/bin/commands/deploy.js +154 -0
- package/dist/bin/commands/deploy.js.map +1 -0
- package/dist/bin/commands/init.d.ts +9 -0
- package/dist/bin/commands/init.d.ts.map +1 -0
- package/dist/bin/commands/init.js +155 -0
- package/dist/bin/commands/init.js.map +1 -0
- package/dist/bin/commands/validate.d.ts +5 -0
- package/dist/bin/commands/validate.d.ts.map +1 -0
- package/dist/bin/commands/validate.js +135 -0
- package/dist/bin/commands/validate.js.map +1 -0
- package/dist/bin/get-env.js +180 -0
- package/dist/bin/publish.js +327 -0
- package/{bin → dist/bin}/version.js +73 -37
- package/dist/lib/alb-api-gateway.d.ts +17 -0
- package/dist/lib/alb-api-gateway.d.ts.map +1 -0
- package/dist/lib/alb-api-gateway.js +191 -0
- package/dist/lib/alb-api-gateway.js.map +1 -0
- package/dist/lib/benchling-webhook-stack.d.ts +25 -0
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -0
- package/dist/lib/benchling-webhook-stack.js +165 -0
- package/dist/lib/benchling-webhook-stack.js.map +1 -0
- package/dist/lib/constants.d.ts +28 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +31 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/ecr-repository.d.ts +16 -0
- package/dist/lib/ecr-repository.d.ts.map +1 -0
- package/dist/lib/ecr-repository.js +90 -0
- package/dist/lib/ecr-repository.js.map +1 -0
- package/dist/lib/fargate-service.d.ts +32 -0
- package/dist/lib/fargate-service.d.ts.map +1 -0
- package/dist/lib/fargate-service.js +294 -0
- package/dist/lib/fargate-service.js.map +1 -0
- package/{lib/index.ts → dist/lib/index.d.ts} +5 -5
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +38 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/templates/base-template.d.ts +14 -0
- package/dist/lib/templates/base-template.d.ts.map +1 -0
- package/dist/lib/templates/base-template.js +68 -0
- package/dist/lib/templates/base-template.js.map +1 -0
- package/dist/lib/templates/readme.d.ts +11 -0
- package/dist/lib/templates/readme.d.ts.map +1 -0
- package/dist/lib/templates/readme.js +105 -0
- package/dist/lib/templates/readme.js.map +1 -0
- package/dist/lib/utils/config.d.ts +68 -0
- package/dist/lib/utils/config.d.ts.map +1 -0
- package/dist/lib/utils/config.js +195 -0
- package/dist/lib/utils/config.js.map +1 -0
- package/dist/lib/utils/stack-inference.d.ts +73 -0
- package/dist/lib/utils/stack-inference.d.ts.map +1 -0
- package/dist/lib/utils/stack-inference.js +410 -0
- package/dist/lib/utils/stack-inference.js.map +1 -0
- package/dist/package.json +90 -0
- package/package.json +31 -20
- package/AGENTS.md +0 -226
- package/CHANGELOG.md +0 -91
- package/bin/benchling-webhook.ts +0 -172
- package/bin/cli-auth.sh +0 -74
- package/bin/get-env.js +0 -564
- package/bin/publish-manual.js +0 -211
- package/bin/release-notes.sh +0 -82
- package/bin/sync-version.js +0 -72
- package/cdk.context.json +0 -58
- package/cdk.json +0 -85
- package/doc/NPM_OIDC_SETUP.md +0 -95
- package/doc/PARAMETERS.md +0 -203
- package/doc/RELEASE.md +0 -297
- package/doc/RELEASE_NOTES.md +0 -64
- package/jest.config.js +0 -14
- package/lib/README.md +0 -50
- package/lib/oauth-tester.json +0 -35
- package/tsconfig.json +0 -34
- /package/{bin → dist/bin}/check-logs.js +0 -0
- /package/{bin → dist/bin}/release.js +0 -0
- /package/{bin → dist/bin}/send-event.js +0 -0
- /package/{bin → dist/bin}/test-invalid-signature.js +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "dotenv/config";
|
|
3
|
+
import * as cdk from "aws-cdk-lib";
|
|
4
|
+
import { BenchlingWebhookStack } from "../lib/benchling-webhook-stack";
|
|
5
|
+
import type { Config } from "../lib/utils/config";
|
|
6
|
+
declare const inferStackConfig: any;
|
|
7
|
+
/**
|
|
8
|
+
* Result of CDK bootstrap check
|
|
9
|
+
*/
|
|
10
|
+
export interface BootstrapStatus {
|
|
11
|
+
bootstrapped: boolean;
|
|
12
|
+
status?: string;
|
|
13
|
+
message?: string;
|
|
14
|
+
command?: string;
|
|
15
|
+
warning?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result of deployment
|
|
19
|
+
*/
|
|
20
|
+
export interface DeploymentResult {
|
|
21
|
+
app: cdk.App;
|
|
22
|
+
stack: BenchlingWebhookStack;
|
|
23
|
+
stackName: string;
|
|
24
|
+
stackId: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Configuration inference result
|
|
28
|
+
*/
|
|
29
|
+
export interface InferenceResult {
|
|
30
|
+
success: boolean;
|
|
31
|
+
inferredVars: Record<string, string>;
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if CDK is bootstrapped for the given account/region
|
|
36
|
+
* Returns status object instead of exiting
|
|
37
|
+
*/
|
|
38
|
+
export declare function checkCdkBootstrap(account: string, region: string): Promise<BootstrapStatus>;
|
|
39
|
+
/**
|
|
40
|
+
* Attempt to infer configuration from catalog
|
|
41
|
+
* Non-fatal - returns success flag and inferred values
|
|
42
|
+
*/
|
|
43
|
+
export declare function inferConfiguration(catalogUrl: string): Promise<InferenceResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Create CDK app and stack (synthesis only, no deployment)
|
|
46
|
+
* Pure function - returns app and stack objects
|
|
47
|
+
*/
|
|
48
|
+
export declare function createStack(config: Config): DeploymentResult;
|
|
49
|
+
export { inferStackConfig };
|
|
50
|
+
//# sourceMappingURL=benchling-webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchling-webhook.d.ts","sourceRoot":"","sources":["../../bin/benchling-webhook.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,QAAA,MAAQ,gBAAgB,KAA4B,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IACb,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAsC1B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAoBrF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CA6B5D;AAmKD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.inferStackConfig = void 0;
|
|
38
|
+
exports.checkCdkBootstrap = checkCdkBootstrap;
|
|
39
|
+
exports.inferConfiguration = inferConfiguration;
|
|
40
|
+
exports.createStack = createStack;
|
|
41
|
+
require("dotenv/config");
|
|
42
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
43
|
+
const benchling_webhook_stack_1 = require("../lib/benchling-webhook-stack");
|
|
44
|
+
const child_process_1 = require("child_process");
|
|
45
|
+
// Import get-env for library usage
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
47
|
+
const { inferStackConfig } = require("./get-env.js");
|
|
48
|
+
exports.inferStackConfig = inferStackConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Check if CDK is bootstrapped for the given account/region
|
|
51
|
+
* Returns status object instead of exiting
|
|
52
|
+
*/
|
|
53
|
+
async function checkCdkBootstrap(account, region) {
|
|
54
|
+
try {
|
|
55
|
+
const result = (0, child_process_1.execSync)(`aws cloudformation describe-stacks --region ${region} --stack-name CDKToolkit --query "Stacks[0].StackStatus" --output text 2>&1`, { encoding: "utf-8" });
|
|
56
|
+
const stackStatus = result.trim();
|
|
57
|
+
if (stackStatus.includes("does not exist") ||
|
|
58
|
+
stackStatus.includes("ValidationError")) {
|
|
59
|
+
return {
|
|
60
|
+
bootstrapped: false,
|
|
61
|
+
message: `CDK is not bootstrapped for account ${account} in region ${region}`,
|
|
62
|
+
command: `npx cdk bootstrap aws://${account}/${region}`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (!stackStatus.includes("COMPLETE")) {
|
|
66
|
+
return {
|
|
67
|
+
bootstrapped: true,
|
|
68
|
+
status: stackStatus,
|
|
69
|
+
warning: `CDKToolkit stack is in state: ${stackStatus}. This may cause deployment issues.`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
bootstrapped: true,
|
|
74
|
+
status: stackStatus,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
return {
|
|
79
|
+
bootstrapped: false,
|
|
80
|
+
message: `Could not verify CDK bootstrap status: ${error.message}`,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Attempt to infer configuration from catalog
|
|
86
|
+
* Non-fatal - returns success flag and inferred values
|
|
87
|
+
*/
|
|
88
|
+
async function inferConfiguration(catalogUrl) {
|
|
89
|
+
try {
|
|
90
|
+
// Normalize URL
|
|
91
|
+
const normalizedUrl = catalogUrl.startsWith("http")
|
|
92
|
+
? catalogUrl
|
|
93
|
+
: `https://${catalogUrl}`;
|
|
94
|
+
const result = await inferStackConfig(normalizedUrl);
|
|
95
|
+
return {
|
|
96
|
+
success: true,
|
|
97
|
+
inferredVars: result.inferredVars,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
return {
|
|
102
|
+
success: false,
|
|
103
|
+
inferredVars: {},
|
|
104
|
+
error: error.message,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create CDK app and stack (synthesis only, no deployment)
|
|
110
|
+
* Pure function - returns app and stack objects
|
|
111
|
+
*/
|
|
112
|
+
function createStack(config) {
|
|
113
|
+
const app = new cdk.App();
|
|
114
|
+
const stack = new benchling_webhook_stack_1.BenchlingWebhookStack(app, "BenchlingWebhookStack", {
|
|
115
|
+
env: {
|
|
116
|
+
account: config.cdkAccount,
|
|
117
|
+
region: config.cdkRegion,
|
|
118
|
+
},
|
|
119
|
+
bucketName: config.quiltUserBucket,
|
|
120
|
+
queueName: config.queueName,
|
|
121
|
+
environment: "production",
|
|
122
|
+
prefix: config.pkgPrefix || "benchling",
|
|
123
|
+
benchlingClientId: config.benchlingClientId,
|
|
124
|
+
benchlingClientSecret: config.benchlingClientSecret,
|
|
125
|
+
benchlingTenant: config.benchlingTenant,
|
|
126
|
+
quiltCatalog: config.quiltCatalog,
|
|
127
|
+
quiltDatabase: config.quiltDatabase,
|
|
128
|
+
webhookAllowList: config.webhookAllowList,
|
|
129
|
+
logLevel: config.logLevel || "INFO",
|
|
130
|
+
createEcrRepository: config.createEcrRepository === "true",
|
|
131
|
+
ecrRepositoryName: config.ecrRepositoryName || "quiltdata/benchling",
|
|
132
|
+
});
|
|
133
|
+
return {
|
|
134
|
+
app,
|
|
135
|
+
stack,
|
|
136
|
+
stackName: stack.stackName,
|
|
137
|
+
stackId: stack.stackId,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* DEPRECATED: Legacy getConfig function for backwards compatibility
|
|
142
|
+
* This combines user-provided values from .env with inferred values from the Quilt catalog.
|
|
143
|
+
* User values always take precedence over inferred values.
|
|
144
|
+
*/
|
|
145
|
+
async function legacyGetConfig() {
|
|
146
|
+
const userEnv = process.env;
|
|
147
|
+
let inferredEnv = {};
|
|
148
|
+
// If QUILT_CATALOG is provided, try to infer additional configuration
|
|
149
|
+
if (userEnv.QUILT_CATALOG) {
|
|
150
|
+
try {
|
|
151
|
+
console.log(`Inferring configuration from catalog: ${userEnv.QUILT_CATALOG}`);
|
|
152
|
+
const result = await inferStackConfig(`https://${userEnv.QUILT_CATALOG.replace(/^https?:\/\//, "")}`);
|
|
153
|
+
inferredEnv = result.inferredVars;
|
|
154
|
+
console.log("✓ Successfully inferred stack configuration\n");
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
console.error(`Warning: Could not infer configuration from catalog: ${error.message}`);
|
|
158
|
+
console.error("Falling back to environment variables only.\n");
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Merge: user env takes precedence over inferred values
|
|
162
|
+
const config = { ...inferredEnv, ...userEnv };
|
|
163
|
+
// Validate required user-provided values
|
|
164
|
+
const requiredUserVars = [
|
|
165
|
+
"QUILT_CATALOG",
|
|
166
|
+
"QUILT_USER_BUCKET",
|
|
167
|
+
"BENCHLING_CLIENT_ID",
|
|
168
|
+
"BENCHLING_CLIENT_SECRET",
|
|
169
|
+
"BENCHLING_TENANT",
|
|
170
|
+
];
|
|
171
|
+
const missingVars = requiredUserVars.filter((varName) => !config[varName]);
|
|
172
|
+
if (missingVars.length > 0) {
|
|
173
|
+
console.error("Error: Missing required environment variables:");
|
|
174
|
+
missingVars.forEach((varName) => {
|
|
175
|
+
console.error(` - ${varName}`);
|
|
176
|
+
});
|
|
177
|
+
console.error("\nPlease set these variables in your .env file.");
|
|
178
|
+
console.error("See env.template for guidance.");
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
181
|
+
// Validate inferred values are present
|
|
182
|
+
const requiredInferredVars = [
|
|
183
|
+
"CDK_DEFAULT_ACCOUNT",
|
|
184
|
+
"CDK_DEFAULT_REGION",
|
|
185
|
+
"QUEUE_NAME",
|
|
186
|
+
"SQS_QUEUE_URL",
|
|
187
|
+
"QUILT_DATABASE",
|
|
188
|
+
];
|
|
189
|
+
const missingInferredVars = requiredInferredVars.filter((varName) => !config[varName]);
|
|
190
|
+
if (missingInferredVars.length > 0) {
|
|
191
|
+
console.error("Error: Could not infer required configuration:");
|
|
192
|
+
missingInferredVars.forEach((varName) => {
|
|
193
|
+
console.error(` - ${varName}`);
|
|
194
|
+
});
|
|
195
|
+
console.error("\nThese values should be automatically inferred from your Quilt catalog.");
|
|
196
|
+
console.error("Please ensure:");
|
|
197
|
+
console.error(" 1. QUILT_CATALOG is set correctly");
|
|
198
|
+
console.error(" 2. Your AWS credentials have CloudFormation read permissions");
|
|
199
|
+
console.error(" 3. The Quilt stack is deployed and accessible");
|
|
200
|
+
console.error("\nAlternatively, you can manually set these values in your .env file.");
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
// Validate conditional requirements
|
|
204
|
+
if (config.ENABLE_WEBHOOK_VERIFICATION !== "false" &&
|
|
205
|
+
!config.BENCHLING_APP_DEFINITION_ID) {
|
|
206
|
+
console.error("Error: BENCHLING_APP_DEFINITION_ID is required when webhook verification is enabled.");
|
|
207
|
+
console.error("Either set BENCHLING_APP_DEFINITION_ID or set ENABLE_WEBHOOK_VERIFICATION=false");
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
return config;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* DEPRECATED: Legacy main function for backwards compatibility
|
|
214
|
+
* Use createStack() + CDK CLI for new code
|
|
215
|
+
*/
|
|
216
|
+
async function legacyMain() {
|
|
217
|
+
const config = await legacyGetConfig();
|
|
218
|
+
// Check bootstrap
|
|
219
|
+
const bootstrapStatus = await checkCdkBootstrap(config.CDK_DEFAULT_ACCOUNT, config.CDK_DEFAULT_REGION);
|
|
220
|
+
if (!bootstrapStatus.bootstrapped) {
|
|
221
|
+
console.error("\n❌ CDK Bootstrap Error");
|
|
222
|
+
console.error("=".repeat(80));
|
|
223
|
+
console.error(bootstrapStatus.message);
|
|
224
|
+
console.error("\nTo bootstrap CDK, run:");
|
|
225
|
+
console.error(` ${bootstrapStatus.command}`);
|
|
226
|
+
console.error("=".repeat(80));
|
|
227
|
+
process.exit(1);
|
|
228
|
+
}
|
|
229
|
+
if (bootstrapStatus.warning) {
|
|
230
|
+
console.error("\n⚠️ CDK Bootstrap Warning");
|
|
231
|
+
console.error("=".repeat(80));
|
|
232
|
+
console.error(bootstrapStatus.warning);
|
|
233
|
+
console.error("=".repeat(80));
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
console.log(`✓ CDK is bootstrapped (CDKToolkit stack: ${bootstrapStatus.status})\n`);
|
|
237
|
+
}
|
|
238
|
+
// Create stack
|
|
239
|
+
const app = new cdk.App();
|
|
240
|
+
new benchling_webhook_stack_1.BenchlingWebhookStack(app, "BenchlingWebhookStack", {
|
|
241
|
+
env: {
|
|
242
|
+
account: config.CDK_DEFAULT_ACCOUNT,
|
|
243
|
+
region: config.CDK_DEFAULT_REGION,
|
|
244
|
+
},
|
|
245
|
+
bucketName: config.QUILT_USER_BUCKET, // User's data bucket
|
|
246
|
+
queueName: config.QUEUE_NAME,
|
|
247
|
+
environment: "production",
|
|
248
|
+
prefix: config.PKG_PREFIX || "benchling",
|
|
249
|
+
benchlingClientId: config.BENCHLING_CLIENT_ID,
|
|
250
|
+
benchlingClientSecret: config.BENCHLING_CLIENT_SECRET,
|
|
251
|
+
benchlingTenant: config.BENCHLING_TENANT,
|
|
252
|
+
quiltCatalog: config.QUILT_CATALOG,
|
|
253
|
+
quiltDatabase: config.QUILT_DATABASE,
|
|
254
|
+
webhookAllowList: config.WEBHOOK_ALLOW_LIST,
|
|
255
|
+
logLevel: config.LOG_LEVEL || "INFO",
|
|
256
|
+
// ECR repository configuration
|
|
257
|
+
createEcrRepository: config.CREATE_ECR_REPOSITORY === "true",
|
|
258
|
+
ecrRepositoryName: config.ECR_REPOSITORY_NAME || "quiltdata/benchling",
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
// Only run if called directly (not imported)
|
|
262
|
+
if (require.main === module) {
|
|
263
|
+
legacyMain().catch((error) => {
|
|
264
|
+
console.error("Fatal error during CDK synthesis:", error);
|
|
265
|
+
process.exit(1);
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=benchling-webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchling-webhook.js","sourceRoot":"","sources":["../../bin/benchling-webhook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":""}
|
package/dist/bin/cli.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const deploy_1 = require("./commands/deploy");
|
|
10
|
+
const init_1 = require("./commands/init");
|
|
11
|
+
const validate_1 = require("./commands/validate");
|
|
12
|
+
// Load package.json for version
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
14
|
+
const pkg = require("../package.json");
|
|
15
|
+
const program = new commander_1.Command();
|
|
16
|
+
program
|
|
17
|
+
.name("benchling-webhook")
|
|
18
|
+
.description("Benchling Webhook Integration for Quilt - Deploy lab notebook integration to AWS")
|
|
19
|
+
.version(pkg.version, "-v, --version", "Display version number")
|
|
20
|
+
.helpOption("-h, --help", "Display help for command");
|
|
21
|
+
// Deploy command (default)
|
|
22
|
+
program
|
|
23
|
+
.command("deploy", { isDefault: true })
|
|
24
|
+
.description("Deploy the CDK stack to AWS")
|
|
25
|
+
.option("--catalog <url>", "Quilt catalog URL")
|
|
26
|
+
.option("--bucket <name>", "S3 bucket for data")
|
|
27
|
+
.option("--tenant <name>", "Benchling tenant")
|
|
28
|
+
.option("--client-id <id>", "Benchling OAuth client ID")
|
|
29
|
+
.option("--client-secret <secret>", "Benchling OAuth client secret")
|
|
30
|
+
.option("--app-id <id>", "Benchling app definition ID")
|
|
31
|
+
.option("--env-file <path>", "Path to .env file", ".env")
|
|
32
|
+
.option("--no-bootstrap-check", "Skip CDK bootstrap verification")
|
|
33
|
+
.option("--require-approval <level>", "CDK approval level", "never")
|
|
34
|
+
.option("--profile <name>", "AWS profile to use")
|
|
35
|
+
.option("--region <region>", "AWS region to deploy to")
|
|
36
|
+
.option("--yes", "Skip confirmation prompts")
|
|
37
|
+
.action(async (options) => {
|
|
38
|
+
try {
|
|
39
|
+
await (0, deploy_1.deployCommand)(options);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error(chalk_1.default.red(error.message));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
// Init command
|
|
47
|
+
program
|
|
48
|
+
.command("init")
|
|
49
|
+
.description("Initialize configuration interactively")
|
|
50
|
+
.option("--output <path>", "Output file path", ".env")
|
|
51
|
+
.option("--force", "Overwrite existing file")
|
|
52
|
+
.option("--minimal", "Only prompt for required values")
|
|
53
|
+
.option("--infer", "Attempt to infer values from catalog")
|
|
54
|
+
.action(async (options) => {
|
|
55
|
+
try {
|
|
56
|
+
await (0, init_1.initCommand)(options);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
console.error(chalk_1.default.red(error.message));
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
// Validate command
|
|
64
|
+
program
|
|
65
|
+
.command("validate")
|
|
66
|
+
.description("Validate configuration without deploying")
|
|
67
|
+
.option("--env-file <path>", "Path to .env file", ".env")
|
|
68
|
+
.option("--verbose", "Show detailed validation information")
|
|
69
|
+
.action(async (options) => {
|
|
70
|
+
try {
|
|
71
|
+
await (0, validate_1.validateCommand)(options);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.error(chalk_1.default.red(error.message));
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
// Show help when no command provided
|
|
79
|
+
if (!process.argv.slice(2).length) {
|
|
80
|
+
program.outputHelp();
|
|
81
|
+
}
|
|
82
|
+
program.parse();
|
|
83
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";;;;;;AACA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAkD;AAClD,0CAA8C;AAC9C,kDAAsD;AAEtD,gCAAgC;AAChC,iEAAiE;AACjE,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,mBAAmB,CAAC;KACzB,WAAW,CAAC,kFAAkF,CAAC;KAC/F,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,wBAAwB,CAAC;KAC/D,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AAE1D,2BAA2B;AAC3B,OAAO;KACF,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACtC,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;KAC9C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;KAC/C,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;KAC7C,MAAM,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;KACvD,MAAM,CAAC,0BAA0B,EAAE,+BAA+B,CAAC;KACnE,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;KACtD,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KACxD,MAAM,CAAC,sBAAsB,EAAE,iCAAiC,CAAC;KACjE,MAAM,CAAC,4BAA4B,EAAE,oBAAoB,EAAE,OAAO,CAAC;KACnE,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;KAChD,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;KACtD,MAAM,CAAC,OAAO,EAAE,2BAA2B,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,sBAAa,EAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,eAAe;AACf,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,CAAC;KACrD,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;KAC5C,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;KACtD,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,mBAAmB;AACnB,OAAO;KACF,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KACxD,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,0BAAe,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,qCAAqC;AACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,UAAU,EAAE,CAAC;AACzB,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../bin/commands/deploy.ts"],"names":[],"mappings":"AAKA,OAAO,EAMH,KAAK,aAAa,EACrB,MAAM,wBAAwB,CAAC;AAOhC,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuKjJ"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.deployCommand = deployCommand;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const boxen_1 = __importDefault(require("boxen"));
|
|
11
|
+
const enquirer_1 = require("enquirer");
|
|
12
|
+
const config_1 = require("../../lib/utils/config");
|
|
13
|
+
const benchling_webhook_1 = require("../benchling-webhook");
|
|
14
|
+
async function deployCommand(options) {
|
|
15
|
+
console.log((0, boxen_1.default)(chalk_1.default.bold("Benchling Webhook Deployment"), {
|
|
16
|
+
padding: 1,
|
|
17
|
+
borderColor: "blue",
|
|
18
|
+
borderStyle: "round",
|
|
19
|
+
}));
|
|
20
|
+
console.log();
|
|
21
|
+
// 1. Load configuration
|
|
22
|
+
const spinner = (0, ora_1.default)("Loading configuration...").start();
|
|
23
|
+
let config = (0, config_1.loadConfigSync)(options);
|
|
24
|
+
// 2. Attempt inference if catalog is available
|
|
25
|
+
if (config.quiltCatalog) {
|
|
26
|
+
spinner.text = "Inferring configuration from catalog...";
|
|
27
|
+
const inferenceResult = await (0, benchling_webhook_1.inferConfiguration)(config.quiltCatalog);
|
|
28
|
+
if (inferenceResult.success) {
|
|
29
|
+
config = (0, config_1.mergeInferredConfig)(config, inferenceResult.inferredVars);
|
|
30
|
+
spinner.succeed("Configuration loaded and inferred");
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
spinner.warn(`Configuration loaded (inference failed: ${inferenceResult.error})`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
spinner.succeed("Configuration loaded");
|
|
38
|
+
}
|
|
39
|
+
// 3. Validate configuration
|
|
40
|
+
spinner.start("Validating configuration...");
|
|
41
|
+
const validation = (0, config_1.validateConfig)(config);
|
|
42
|
+
if (!validation.valid) {
|
|
43
|
+
spinner.fail("Configuration validation failed");
|
|
44
|
+
console.log();
|
|
45
|
+
console.error(chalk_1.default.red.bold("❌ Configuration Error\n"));
|
|
46
|
+
console.error((0, config_1.formatValidationErrors)(validation));
|
|
47
|
+
console.log(chalk_1.default.yellow("To fix this, you can:"));
|
|
48
|
+
console.log(" 1. Run interactive setup: " + chalk_1.default.cyan("npx @quiltdata/benchling-webhook init"));
|
|
49
|
+
console.log(" 2. Create/edit .env file with required values");
|
|
50
|
+
console.log(" 3. Pass values as CLI options");
|
|
51
|
+
console.log();
|
|
52
|
+
console.log("For help: " + chalk_1.default.cyan("npx @quiltdata/benchling-webhook --help"));
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
spinner.succeed("Configuration validated");
|
|
56
|
+
if (validation.warnings.length > 0) {
|
|
57
|
+
console.log();
|
|
58
|
+
for (const warning of validation.warnings) {
|
|
59
|
+
console.log(chalk_1.default.yellow(` ⚠ ${warning}`));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// 4. Check CDK bootstrap
|
|
63
|
+
if (options.bootstrapCheck !== false) {
|
|
64
|
+
spinner.start("Checking CDK bootstrap status...");
|
|
65
|
+
const bootstrapStatus = await (0, benchling_webhook_1.checkCdkBootstrap)(config.cdkAccount, config.cdkRegion);
|
|
66
|
+
if (!bootstrapStatus.bootstrapped) {
|
|
67
|
+
spinner.fail("CDK is not bootstrapped");
|
|
68
|
+
console.log();
|
|
69
|
+
console.error(chalk_1.default.red.bold("❌ CDK Bootstrap Error\n"));
|
|
70
|
+
console.error(bootstrapStatus.message);
|
|
71
|
+
console.log();
|
|
72
|
+
console.log("To bootstrap CDK, run:");
|
|
73
|
+
console.log(chalk_1.default.cyan(` ${bootstrapStatus.command}`));
|
|
74
|
+
console.log();
|
|
75
|
+
console.log(chalk_1.default.dim("What is CDK bootstrap?"));
|
|
76
|
+
console.log(chalk_1.default.dim(" It creates necessary AWS resources (S3 bucket, IAM roles) that CDK"));
|
|
77
|
+
console.log(chalk_1.default.dim(" needs to deploy CloudFormation stacks. This is a one-time setup per"));
|
|
78
|
+
console.log(chalk_1.default.dim(" AWS account/region combination."));
|
|
79
|
+
console.log();
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
if (bootstrapStatus.warning) {
|
|
83
|
+
spinner.warn(`CDK bootstrap: ${bootstrapStatus.warning}`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
spinner.succeed(`CDK is bootstrapped (${bootstrapStatus.status})`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// 5. Display deployment plan
|
|
90
|
+
console.log();
|
|
91
|
+
console.log(chalk_1.default.bold("Deployment Plan"));
|
|
92
|
+
console.log(chalk_1.default.gray("─".repeat(80)));
|
|
93
|
+
console.log(` ${chalk_1.default.bold("Stack:")} BenchlingWebhookStack`);
|
|
94
|
+
console.log(` ${chalk_1.default.bold("Account:")} ${config.cdkAccount}`);
|
|
95
|
+
console.log(` ${chalk_1.default.bold("Region:")} ${config.cdkRegion}`);
|
|
96
|
+
console.log(` ${chalk_1.default.bold("Catalog:")} ${config.quiltCatalog}`);
|
|
97
|
+
console.log(` ${chalk_1.default.bold("Bucket:")} ${config.quiltUserBucket}`);
|
|
98
|
+
console.log(chalk_1.default.gray("─".repeat(80)));
|
|
99
|
+
console.log();
|
|
100
|
+
// 6. Confirm (unless --yes)
|
|
101
|
+
if (!options.yes) {
|
|
102
|
+
const response = await (0, enquirer_1.prompt)({
|
|
103
|
+
type: "confirm",
|
|
104
|
+
name: "proceed",
|
|
105
|
+
message: "Proceed with deployment?",
|
|
106
|
+
initial: true,
|
|
107
|
+
});
|
|
108
|
+
if (!response.proceed) {
|
|
109
|
+
console.log(chalk_1.default.yellow("Deployment cancelled"));
|
|
110
|
+
process.exit(0);
|
|
111
|
+
}
|
|
112
|
+
console.log();
|
|
113
|
+
}
|
|
114
|
+
// 7. Create stack (synthesis)
|
|
115
|
+
spinner.start("Synthesizing CDK stack...");
|
|
116
|
+
try {
|
|
117
|
+
const result = (0, benchling_webhook_1.createStack)(config);
|
|
118
|
+
spinner.succeed("Stack synthesized");
|
|
119
|
+
// 8. Deploy using CDK CLI
|
|
120
|
+
spinner.start("Deploying to AWS (this may take a few minutes)...");
|
|
121
|
+
spinner.stop(); // Stop spinner for CDK output
|
|
122
|
+
console.log(); // New line for CDK output
|
|
123
|
+
// Execute CDK deploy directly - the app.synth() will be called by CDK
|
|
124
|
+
// We need to synthesize to cdk.out and then deploy
|
|
125
|
+
result.app.synth();
|
|
126
|
+
const cdkCommand = `npx cdk deploy --require-approval ${options.requireApproval || "never"} --app cdk.out`;
|
|
127
|
+
(0, child_process_1.execSync)(cdkCommand, {
|
|
128
|
+
stdio: "inherit",
|
|
129
|
+
env: {
|
|
130
|
+
...process.env,
|
|
131
|
+
CDK_DEFAULT_ACCOUNT: config.cdkAccount,
|
|
132
|
+
CDK_DEFAULT_REGION: config.cdkRegion,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
spinner.succeed("Stack deployed successfully");
|
|
136
|
+
// 9. Success message
|
|
137
|
+
console.log();
|
|
138
|
+
console.log((0, boxen_1.default)(`${chalk_1.default.green.bold("✓ Deployment completed successfully!")}\n\n` +
|
|
139
|
+
`Stack: ${chalk_1.default.cyan(result.stackName)}\n` +
|
|
140
|
+
`Region: ${chalk_1.default.cyan(config.cdkRegion)}\n\n` +
|
|
141
|
+
`${chalk_1.default.bold("Next steps:")}\n` +
|
|
142
|
+
" 1. Configure your Benchling app\n" +
|
|
143
|
+
" 2. Set the webhook URL from AWS console\n" +
|
|
144
|
+
" 3. Test the integration\n\n" +
|
|
145
|
+
`${chalk_1.default.dim("For more info: https://github.com/quiltdata/benchling-webhook#readme")}`, { padding: 1, borderColor: "green", borderStyle: "round" }));
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
spinner.fail("Deployment failed");
|
|
149
|
+
console.error();
|
|
150
|
+
console.error(chalk_1.default.red(error.message));
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../bin/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../bin/commands/init.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkLrE"}
|