@payfit/nx-core 4.45.3-ephemeral-last-fixes-lambda-e6ccb0e.0 → 4.45.3
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/src/executors/publisher/lambda.d.ts +15 -0
- package/dist/src/executors/publisher/lambda.js +15 -0
- package/dist/src/executors/publisher/lambda.js.map +1 -1
- package/dist/src/utils/lambda/aws-lambda.d.ts +40 -0
- package/dist/src/utils/lambda/aws-lambda.js +53 -1
- package/dist/src/utils/lambda/aws-lambda.js.map +1 -1
- package/dist/src/utils/lambda/lambda.d.ts +6 -0
- package/dist/src/utils/lambda/lambda.js +6 -0
- package/dist/src/utils/lambda/lambda.js.map +1 -1
- package/dist/src/utils/lambda/oci.d.ts +7 -0
- package/dist/src/utils/lambda/oci.js +7 -0
- package/dist/src/utils/lambda/oci.js.map +1 -1
- package/dist/src/utils/lambda/publish.d.ts +12 -0
- package/dist/src/utils/lambda/publish.js +12 -0
- package/dist/src/utils/lambda/publish.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
import { ExecutorContext } from '@nx/devkit';
|
|
2
2
|
import { PublisherExecutorOptions } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* Function called by nx-release-publish, it :
|
|
5
|
+
* - publish zip to S3
|
|
6
|
+
* - creates new version via Spacelift
|
|
7
|
+
* - runs smoke tests
|
|
8
|
+
* - create alias for lambda function
|
|
9
|
+
* - push OCI in ECR registry
|
|
10
|
+
*
|
|
11
|
+
* @param options - Contains lambdaBucket, lambdaFunctions, and lambdaStacks configuration
|
|
12
|
+
* @param context - NX executor context with project information
|
|
13
|
+
* @param version - Version string for deployment
|
|
14
|
+
* @param projectRoot - Project root directory path
|
|
15
|
+
* @param projectDist - Built code directory path
|
|
16
|
+
* @param isDryRun - Skip actual deployment if true
|
|
17
|
+
*/
|
|
3
18
|
export declare function publishLambda(options: PublisherExecutorOptions, context: ExecutorContext, version: string, projectRoot: string, projectDist: string, isDryRun: boolean): Promise<void>;
|
|
@@ -9,6 +9,21 @@ const s3_1 = require("../../utils/common/s3");
|
|
|
9
9
|
const lambda_1 = require("../../utils/lambda/lambda");
|
|
10
10
|
const oci_1 = require("../../utils/lambda/oci");
|
|
11
11
|
const publish_1 = require("../../utils/lambda/publish");
|
|
12
|
+
/**
|
|
13
|
+
* Function called by nx-release-publish, it :
|
|
14
|
+
* - publish zip to S3
|
|
15
|
+
* - creates new version via Spacelift
|
|
16
|
+
* - runs smoke tests
|
|
17
|
+
* - create alias for lambda function
|
|
18
|
+
* - push OCI in ECR registry
|
|
19
|
+
*
|
|
20
|
+
* @param options - Contains lambdaBucket, lambdaFunctions, and lambdaStacks configuration
|
|
21
|
+
* @param context - NX executor context with project information
|
|
22
|
+
* @param version - Version string for deployment
|
|
23
|
+
* @param projectRoot - Project root directory path
|
|
24
|
+
* @param projectDist - Built code directory path
|
|
25
|
+
* @param isDryRun - Skip actual deployment if true
|
|
26
|
+
*/
|
|
12
27
|
async function publishLambda(options, context, version, projectRoot, projectDist, isDryRun) {
|
|
13
28
|
const gitBranchName = await (0, github_1.getSanitizedCurrentGitBranch)();
|
|
14
29
|
const repoUrl = await (0, github_1.getSanitizedCurrentGitRepoUrl)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/executors/publisher/lambda.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/executors/publisher/lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts environment and AWS account ID from Spacelift stack ID.
|
|
3
|
+
*
|
|
4
|
+
* @param stackId - Spacelift stack identifier
|
|
5
|
+
* @returns Tuple of [environment, accountId]
|
|
6
|
+
*/
|
|
1
7
|
export declare function retrieveAccoundId(stackId: string): [string, string];
|
|
8
|
+
/**
|
|
9
|
+
* Gets the latest version number of a Lambda function.
|
|
10
|
+
*
|
|
11
|
+
* @param lambdaARN - AWS Lambda function ARN
|
|
12
|
+
* @param envVars - AWS credentials environment variables
|
|
13
|
+
* @returns Latest version number
|
|
14
|
+
*/
|
|
2
15
|
export declare function getLatestVersion(lambdaARN: string, envVars: Record<string, string>): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Runs smoke tests on Lambda functions by invoking them with empty payload.
|
|
18
|
+
*
|
|
19
|
+
* @param stackId - Spacelift stack ID to determine environment
|
|
20
|
+
* @param lambdaFunctions - Array of Lambda function names to test
|
|
21
|
+
*/
|
|
3
22
|
export declare function runSmokeTests(stackId: string, lambdaFunctions: string[]): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Creates or updates a Lambda function alias to point to latest version.
|
|
25
|
+
*
|
|
26
|
+
* @param accountId - AWS account ID
|
|
27
|
+
* @param lambdaARN - Lambda function ARN
|
|
28
|
+
* @param alias - Alias name to create/update
|
|
29
|
+
* @param envVars - AWS credentials environment variables
|
|
30
|
+
*/
|
|
4
31
|
export declare function createOrUpdateLambdaAlias(accountId: string, lambdaARN: string, alias: string, envVars: Record<string, string>): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Sanitizes alias names for AWS Lambda compatibility (replaces dots with dashes).
|
|
34
|
+
*
|
|
35
|
+
* @param alias - Raw alias name
|
|
36
|
+
* @returns Sanitized alias name
|
|
37
|
+
*/
|
|
5
38
|
export declare function sanitizeAliasName(alias: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Creates or updates aliases for multiple Lambda functions in parallel.
|
|
41
|
+
*
|
|
42
|
+
* @param stackId - Spacelift stack ID to determine environment
|
|
43
|
+
* @param lambdaFunctions - Array of Lambda function names
|
|
44
|
+
* @param alias - Alias name to create/update
|
|
45
|
+
*/
|
|
6
46
|
export declare function createOrMoveAlias(stackId: string, lambdaFunctions: string[], alias: string): Promise<void>;
|
|
@@ -16,11 +16,24 @@ const ACCOUNT_IDS = {
|
|
|
16
16
|
shared: '574592175410',
|
|
17
17
|
prod: '614948436281',
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Extracts environment and AWS account ID from Spacelift stack ID.
|
|
21
|
+
*
|
|
22
|
+
* @param stackId - Spacelift stack identifier
|
|
23
|
+
* @returns Tuple of [environment, accountId]
|
|
24
|
+
*/
|
|
19
25
|
function retrieveAccoundId(stackId) {
|
|
20
26
|
const environmentMatch = stackId.match(/-(dev|testing|prod|staging|shared)-/);
|
|
21
27
|
const environment = environmentMatch ? environmentMatch[1] : 'unknown';
|
|
22
28
|
return [environment, ACCOUNT_IDS[environment]];
|
|
23
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Gets the latest version number of a Lambda function.
|
|
32
|
+
*
|
|
33
|
+
* @param lambdaARN - AWS Lambda function ARN
|
|
34
|
+
* @param envVars - AWS credentials environment variables
|
|
35
|
+
* @returns Latest version number
|
|
36
|
+
*/
|
|
24
37
|
async function getLatestVersion(lambdaARN, envVars) {
|
|
25
38
|
logger_1.consola.log(`Retrieving latest version for function ${lambdaARN}`);
|
|
26
39
|
const latestVersionResult = await (0, exec_1.exec)(`aws lambda list-versions-by-function --function-name ${lambdaARN} --query 'Versions[?Version!=\`$LATEST\`] | [-1].Version' --output text`, { throwOnError: false, nodeOptions: { env: envVars } });
|
|
@@ -31,6 +44,12 @@ async function getLatestVersion(lambdaARN, envVars) {
|
|
|
31
44
|
// with pagination stdout looks like "49\n99\n109" we want to retieve the last version
|
|
32
45
|
return latestVersionResult.stdout.trim().split('\n').pop();
|
|
33
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Runs smoke tests on Lambda functions by invoking them with empty payload.
|
|
49
|
+
*
|
|
50
|
+
* @param stackId - Spacelift stack ID to determine environment
|
|
51
|
+
* @param lambdaFunctions - Array of Lambda function names to test
|
|
52
|
+
*/
|
|
34
53
|
async function runSmokeTests(stackId, lambdaFunctions) {
|
|
35
54
|
const [environment, accountId] = retrieveAccoundId(stackId);
|
|
36
55
|
const credentials = await assumeEnvironmentSpecificRole(environment);
|
|
@@ -43,9 +62,9 @@ async function runSmokeTests(stackId, lambdaFunctions) {
|
|
|
43
62
|
logger_1.consola.log(`Running smoke tests for ${functionName} in env ${environment}`);
|
|
44
63
|
const emptyPayload = JSON.stringify({ Records: [] });
|
|
45
64
|
const invokeResult = await (0, exec_1.exec)(`aws lambda invoke --function-name ${lambdaFullARN} --payload ${btoa(emptyPayload)} /tmp/lambda-response.json`, { throwOnError: false, nodeOptions: { env: envVars } });
|
|
65
|
+
logger_1.consola.log('invokeResult :', invokeResult);
|
|
46
66
|
if (JSON.parse(invokeResult.stdout)['FunctionError']) {
|
|
47
67
|
const errorFile = (0, devkit_1.readJsonFile)('/tmp/lambda-response.json');
|
|
48
|
-
logger_1.consola.log('errorFile content :', errorFile);
|
|
49
68
|
const errorMessage = errorFile.errorMessage;
|
|
50
69
|
const trace = errorFile.trace;
|
|
51
70
|
logger_1.consola.error(`AWS Lambda invoke failed for lambda ${functionName} : ${errorMessage}`, `Stack trace: ${trace}`);
|
|
@@ -62,6 +81,14 @@ async function runSmokeTests(stackId, lambdaFunctions) {
|
|
|
62
81
|
await Promise.all(lambdaFunctions.map(smokeTestFunction));
|
|
63
82
|
logger_1.consola.success(`All smoke tests passed in ${environment} environment`);
|
|
64
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Creates or updates a Lambda function alias to point to latest version.
|
|
86
|
+
*
|
|
87
|
+
* @param accountId - AWS account ID
|
|
88
|
+
* @param lambdaARN - Lambda function ARN
|
|
89
|
+
* @param alias - Alias name to create/update
|
|
90
|
+
* @param envVars - AWS credentials environment variables
|
|
91
|
+
*/
|
|
65
92
|
async function createOrUpdateLambdaAlias(accountId, lambdaARN, alias, envVars) {
|
|
66
93
|
const latestVersion = await getLatestVersion(lambdaARN, envVars);
|
|
67
94
|
// Check if alias already exists
|
|
@@ -85,6 +112,12 @@ async function createOrUpdateLambdaAlias(accountId, lambdaARN, alias, envVars) {
|
|
|
85
112
|
}
|
|
86
113
|
logger_1.consola.success(`Successfully ${aliasExists ? 'updated' : 'created'} alias ${alias} for function ${lambdaARN} with version ${latestVersion}`);
|
|
87
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Assumes IAM role for environment-specific Lambda operations.
|
|
117
|
+
*
|
|
118
|
+
* @param environment - Target environment name
|
|
119
|
+
* @returns AWS temporary credentials
|
|
120
|
+
*/
|
|
88
121
|
async function assumeEnvironmentSpecificRole(environment) {
|
|
89
122
|
const roleName = `invoke-lambda-nx-core`;
|
|
90
123
|
const accountId = ACCOUNT_IDS[environment];
|
|
@@ -148,6 +181,12 @@ async function assumeEnvironmentSpecificRole(environment) {
|
|
|
148
181
|
throw new Error(`Role assumption failed for ${environment}: ${error.message}`);
|
|
149
182
|
}
|
|
150
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Converts assumed role credentials to environment variables.
|
|
186
|
+
*
|
|
187
|
+
* @param credentials - AWS temporary credentials
|
|
188
|
+
* @returns Environment variables with AWS credentials
|
|
189
|
+
*/
|
|
151
190
|
function getAssumedRoleEnvVars(credentials) {
|
|
152
191
|
// Only override the specific AWS credential environment variables
|
|
153
192
|
const baseEnv = { ...process.env };
|
|
@@ -156,11 +195,24 @@ function getAssumedRoleEnvVars(credentials) {
|
|
|
156
195
|
baseEnv.AWS_SESSION_TOKEN = credentials.sessionToken;
|
|
157
196
|
return baseEnv;
|
|
158
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Sanitizes alias names for AWS Lambda compatibility (replaces dots with dashes).
|
|
200
|
+
*
|
|
201
|
+
* @param alias - Raw alias name
|
|
202
|
+
* @returns Sanitized alias name
|
|
203
|
+
*/
|
|
159
204
|
function sanitizeAliasName(alias) {
|
|
160
205
|
// AWS Lambda alias names must satisfy: (?!^[0-9]+$)([a-zA-Z0-9-_]+)
|
|
161
206
|
// Replace dots with dashes and ensure it's not all numbers
|
|
162
207
|
return alias.replace(/\./g, '-');
|
|
163
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Creates or updates aliases for multiple Lambda functions in parallel.
|
|
211
|
+
*
|
|
212
|
+
* @param stackId - Spacelift stack ID to determine environment
|
|
213
|
+
* @param lambdaFunctions - Array of Lambda function names
|
|
214
|
+
* @param alias - Alias name to create/update
|
|
215
|
+
*/
|
|
164
216
|
async function createOrMoveAlias(stackId, lambdaFunctions, alias) {
|
|
165
217
|
const [environment, accountId] = retrieveAccoundId(stackId);
|
|
166
218
|
const credentials = await assumeEnvironmentSpecificRole(environment);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../../../src/utils/lambda/aws-lambda.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../../../src/utils/lambda/aws-lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a ZIP archive of Lambda function code.
|
|
3
|
+
*
|
|
4
|
+
* @param source - Directory path containing Lambda code
|
|
5
|
+
* @param zipName - Name for the ZIP file
|
|
6
|
+
*/
|
|
1
7
|
export declare const createZip: (source: string, zipName: string) => Promise<import("tinyexec").Output>;
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createZip = void 0;
|
|
4
4
|
const exec_1 = require("../common/exec");
|
|
5
|
+
/**
|
|
6
|
+
* Creates a ZIP archive of Lambda function code.
|
|
7
|
+
*
|
|
8
|
+
* @param source - Directory path containing Lambda code
|
|
9
|
+
* @param zipName - Name for the ZIP file
|
|
10
|
+
*/
|
|
5
11
|
const createZip = async (source, zipName) => {
|
|
6
12
|
const cwd = process.cwd();
|
|
7
13
|
process.chdir(source);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/utils/lambda/lambda.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/utils/lambda/lambda.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAErC;;;;;GAKG;AACI,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,MAAM,GAAG,GAAG,UAAU,OAAO,IAAI,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,SAAS,aAOrB"}
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pushes Lambda function package.json as OCI artifact to ECR using ORAS.
|
|
3
|
+
*
|
|
4
|
+
* @param lambdaEcrRepository - ECR repository name
|
|
5
|
+
* @param tag - Version tag for the artifact
|
|
6
|
+
* @param pathToPackageJson - Path to package.json file
|
|
7
|
+
*/
|
|
1
8
|
export declare function pushImageToEcr(lambdaEcrRepository: string, tag: string, pathToPackageJson: string): Promise<void>;
|
|
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.pushImageToEcr = pushImageToEcr;
|
|
4
4
|
const consola_1 = require("consola");
|
|
5
5
|
const exec_1 = require("../common/exec");
|
|
6
|
+
/**
|
|
7
|
+
* Pushes Lambda function package.json as OCI artifact to ECR using ORAS.
|
|
8
|
+
*
|
|
9
|
+
* @param lambdaEcrRepository - ECR repository name
|
|
10
|
+
* @param tag - Version tag for the artifact
|
|
11
|
+
* @param pathToPackageJson - Path to package.json file
|
|
12
|
+
*/
|
|
6
13
|
async function pushImageToEcr(lambdaEcrRepository, tag, pathToPackageJson) {
|
|
7
14
|
if (!process.env.AWS_ECR_REGISTRY) {
|
|
8
15
|
throw new Error('AWS_ECR_REGISTRY environment variable is not set');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../src/utils/lambda/oci.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../src/utils/lambda/oci.ts"],"names":[],"mappings":";;AAWA,wCAuBC;AAlCD,qCAAiC;AAEjC,yCAAqC;AAErC;;;;;;GAMG;AACI,KAAK,UAAU,cAAc,CAClC,mBAA2B,EAC3B,GAAW,EACX,iBAAyB;IAEzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,WAAI,EAC5B,aAAa,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,mBAAmB,IAAI,GAAG,qFAAqF,iBAAiB,EAAE,EAC/K;QACE,YAAY,EAAE,KAAK;KACpB,CACF,CAAA;IACD,iBAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC/B,iBAAO,CAAC,KAAK,CACX,gCAAgC,WAAW,CAAC,MAAM,IAAI,eAAe,EAAE,CACxE,CAAA;QACD,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,CAAC,MAAM,IAAI,eAAe,EAAE,CACxE,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates new lambda release candidate for each stacks in parallel:
|
|
3
|
+
*- Update variable commit_sha in spacelift configuration f
|
|
4
|
+
*- Update variable ambda_version in spacelift configuration
|
|
5
|
+
* - Trigger Spacelift run to create a new lambda version
|
|
6
|
+
* - Run smoke tests on each lambda functions
|
|
7
|
+
* - Create alias on each lambda functions with the new release candidate
|
|
8
|
+
*
|
|
9
|
+
* @param stacksName - Array of Spacelift stack IDs
|
|
10
|
+
* @param lambdaFunctions - Array of Lambda function names
|
|
11
|
+
* @param version - Version string for deployment
|
|
12
|
+
*/
|
|
1
13
|
export declare function createLambdaVersion(stacksName: string[], lambdaFunctions: string[], version: string): Promise<void>;
|
|
@@ -7,6 +7,18 @@ const graphql_service_1 = require("../spacelift/lib/graphql.service");
|
|
|
7
7
|
const spacelift_service_1 = require("../spacelift/lib/spacelift.service");
|
|
8
8
|
const aws_lambda_1 = require("./aws-lambda");
|
|
9
9
|
const spacelift_1 = require("./spacelift");
|
|
10
|
+
/**
|
|
11
|
+
* Creates new lambda release candidate for each stacks in parallel:
|
|
12
|
+
*- Update variable commit_sha in spacelift configuration f
|
|
13
|
+
*- Update variable ambda_version in spacelift configuration
|
|
14
|
+
* - Trigger Spacelift run to create a new lambda version
|
|
15
|
+
* - Run smoke tests on each lambda functions
|
|
16
|
+
* - Create alias on each lambda functions with the new release candidate
|
|
17
|
+
*
|
|
18
|
+
* @param stacksName - Array of Spacelift stack IDs
|
|
19
|
+
* @param lambdaFunctions - Array of Lambda function names
|
|
20
|
+
* @param version - Version string for deployment
|
|
21
|
+
*/
|
|
10
22
|
async function createLambdaVersion(stacksName, lambdaFunctions, version) {
|
|
11
23
|
const graphqlService = new graphql_service_1.GraphQlService();
|
|
12
24
|
const spaceliftService = new spacelift_service_1.SpaceliftService(graphqlService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../src/utils/lambda/publish.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../src/utils/lambda/publish.ts"],"names":[],"mappings":";;AAsBA,kDAwCC;AA9DD,6CAAyD;AACzD,6CAA0C;AAC1C,sEAAiE;AACjE,0EAAqE;AACrE,6CAA+D;AAC/D,2CAGoB;AAEpB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,mBAAmB,CACvC,UAAoB,EACpB,eAAyB,EACzB,OAAe;IAEf,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAA;IAC3C,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,cAAc,CAAC,CAAA;IAC7D,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAe,EAAiB,EAAE;QAClE,MAAM,gBAAgB,GAAG,MAAM,IAAA,+BAAsB,GAAE,CAAA;QACvD,gBAAO,CAAC,GAAG,CACT,4BAA4B,OAAO,mCAAmC,gBAAgB,EAAE,CACzF,CAAA;QACD,MAAM,IAAA,8CAAkC,EACtC,gBAAgB,EAChB,OAAO,EACP,mBAAmB,EACnB,gBAAgB,CACjB,CAAA;QACD,gBAAO,CAAC,GAAG,CACT,4BAA4B,OAAO,uCAAuC,gBAAgB,EAAE,CAC7F,CAAA;QACD,MAAM,IAAA,8CAAkC,EACtC,gBAAgB,EAChB,OAAO,EACP,uBAAuB,EACvB,OAAO,CACR,CAAA;QAED,MAAM,IAAA,iCAAqB,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QACtD,MAAM,IAAA,0BAAa,EAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAC/C,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAiB,EAAE;QAC/D,MAAM,IAAA,8BAAiB,EAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC,CAAA;IACD,sBAAsB;IACtB,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACrD,gBAAO,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAA;IAChE,gBAAO,CAAC,GAAG,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAA;IACxE,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;AACpD,CAAC"}
|