@payfit/nx-core 0.0.0-e2e → 0.0.0-semver
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 +10 -163
- package/dist/src/executors/publisher/docker.d.ts +3 -1
- package/dist/src/executors/publisher/docker.js +12 -57
- package/dist/src/executors/publisher/docker.js.map +1 -1
- package/dist/src/executors/publisher/executor.js +12 -9
- package/dist/src/executors/publisher/executor.js.map +1 -1
- package/dist/src/executors/publisher/helm.d.ts +5 -1
- package/dist/src/executors/publisher/helm.js +11 -40
- package/dist/src/executors/publisher/helm.js.map +1 -1
- package/dist/src/executors/publisher/schema.d.ts +5 -0
- package/dist/src/executors/publisher/schema.json +0 -44
- package/dist/src/index.d.ts +1 -24
- package/dist/src/index.js +11 -67
- package/dist/src/index.js.map +1 -1
- package/dist/src/scripts/version-actions.d.ts +20 -3
- package/dist/src/scripts/version-actions.js +41 -23
- package/dist/src/scripts/version-actions.js.map +1 -1
- package/dist/src/utils/{common/aws-auth.d.ts → aws-auth.d.ts} +8 -16
- package/dist/src/utils/aws-auth.js +84 -0
- package/dist/src/utils/aws-auth.js.map +1 -0
- package/dist/src/utils/docker.d.ts +16 -12
- package/dist/src/utils/docker.js +23 -63
- package/dist/src/utils/docker.js.map +1 -1
- package/dist/src/utils/exec.d.ts +7 -0
- package/dist/src/utils/exec.js +25 -0
- package/dist/src/utils/exec.js.map +1 -0
- package/dist/src/utils/get-version.d.ts +6 -0
- package/dist/src/utils/get-version.js +14 -0
- package/dist/src/utils/get-version.js.map +1 -0
- package/dist/src/utils/github.d.ts +4 -0
- package/dist/src/utils/github.js +17 -0
- package/dist/src/utils/github.js.map +1 -0
- package/dist/src/utils/helm.d.ts +16 -32
- package/dist/src/utils/helm.js +15 -83
- package/dist/src/utils/helm.js.map +1 -1
- package/dist/src/utils/import-esm.js.map +1 -0
- package/dist/src/utils/{common/tsh.d.ts → tsh.d.ts} +0 -1
- package/dist/src/utils/{common/tsh.js → tsh.js} +15 -20
- package/dist/src/utils/tsh.js.map +1 -0
- package/executors.json +2 -12
- package/package.json +18 -42
- package/dist/src/codegen.d.ts +0 -3
- package/dist/src/codegen.js +0 -25
- package/dist/src/codegen.js.map +0 -1
- package/dist/src/executors/preview-deploy/README.md +0 -5
- package/dist/src/executors/preview-deploy/argocdOverride.d.ts +0 -4
- package/dist/src/executors/preview-deploy/argocdOverride.js +0 -22
- package/dist/src/executors/preview-deploy/argocdOverride.js.map +0 -1
- package/dist/src/executors/preview-deploy/executor.d.ts +0 -4
- package/dist/src/executors/preview-deploy/executor.js +0 -143
- package/dist/src/executors/preview-deploy/executor.js.map +0 -1
- package/dist/src/executors/preview-deploy/kargoPolicy.d.ts +0 -14
- package/dist/src/executors/preview-deploy/kargoPolicy.js +0 -69
- package/dist/src/executors/preview-deploy/kargoPolicy.js.map +0 -1
- package/dist/src/executors/preview-deploy/schema.json +0 -28
- package/dist/src/executors/publisher/README.md +0 -3
- package/dist/src/executors/publisher/lambda.d.ts +0 -18
- package/dist/src/executors/publisher/lambda.js +0 -86
- package/dist/src/executors/publisher/lambda.js.map +0 -1
- package/dist/src/executors/release/README.md +0 -15
- package/dist/src/executors/release/executor.d.ts +0 -4
- package/dist/src/executors/release/executor.js +0 -104
- package/dist/src/executors/release/executor.js.map +0 -1
- package/dist/src/executors/release/schema.json +0 -37
- package/dist/src/generators/init/README.md +0 -5
- package/dist/src/generators/init/files/.circleci/config.yml.template +0 -232
- package/dist/src/generators/init/files/.circleci/teleport/shared-charts.conf.template +0 -24
- package/dist/src/generators/init/files/.npmrc.template +0 -1
- package/dist/src/generators/init/init.d.ts +0 -13
- package/dist/src/generators/init/init.js +0 -278
- package/dist/src/generators/init/init.js.map +0 -1
- package/dist/src/generators/init/schema.json +0 -7
- package/dist/src/scripts/codegen-with-auth.js +0 -55
- package/dist/src/scripts/version-actions.mock.d.ts +0 -6
- package/dist/src/scripts/version-actions.mock.js +0 -61
- package/dist/src/scripts/version-actions.mock.js.map +0 -1
- package/dist/src/utils/common/aws-auth.js +0 -145
- package/dist/src/utils/common/aws-auth.js.map +0 -1
- package/dist/src/utils/common/circleci.d.ts +0 -2
- package/dist/src/utils/common/circleci.js +0 -20
- package/dist/src/utils/common/circleci.js.map +0 -1
- package/dist/src/utils/common/exec.d.ts +0 -4
- package/dist/src/utils/common/exec.js +0 -52
- package/dist/src/utils/common/exec.js.map +0 -1
- package/dist/src/utils/common/github.d.ts +0 -20
- package/dist/src/utils/common/github.js +0 -60
- package/dist/src/utils/common/github.js.map +0 -1
- package/dist/src/utils/common/import-esm.js.map +0 -1
- package/dist/src/utils/common/logger.d.ts +0 -1
- package/dist/src/utils/common/logger.js +0 -8
- package/dist/src/utils/common/logger.js.map +0 -1
- package/dist/src/utils/common/nx.d.ts +0 -22
- package/dist/src/utils/common/nx.js +0 -174
- package/dist/src/utils/common/nx.js.map +0 -1
- package/dist/src/utils/common/s3.d.ts +0 -1
- package/dist/src/utils/common/s3.js +0 -18
- package/dist/src/utils/common/s3.js.map +0 -1
- package/dist/src/utils/common/tsh.js.map +0 -1
- package/dist/src/utils/datadog.d.ts +0 -1
- package/dist/src/utils/datadog.js +0 -33
- package/dist/src/utils/datadog.js.map +0 -1
- package/dist/src/utils/helm.mock.d.ts +0 -85
- package/dist/src/utils/helm.mock.js +0 -100
- package/dist/src/utils/helm.mock.js.map +0 -1
- package/dist/src/utils/lambda/aws-lambda.d.ts +0 -47
- package/dist/src/utils/lambda/aws-lambda.js +0 -231
- package/dist/src/utils/lambda/aws-lambda.js.map +0 -1
- package/dist/src/utils/lambda/lambda.d.ts +0 -7
- package/dist/src/utils/lambda/lambda.js +0 -20
- package/dist/src/utils/lambda/lambda.js.map +0 -1
- package/dist/src/utils/lambda/oci.d.ts +0 -8
- package/dist/src/utils/lambda/oci.js +0 -22
- package/dist/src/utils/lambda/oci.js.map +0 -1
- package/dist/src/utils/lambda/publish.d.ts +0 -14
- package/dist/src/utils/lambda/publish.js +0 -44
- package/dist/src/utils/lambda/publish.js.map +0 -1
- package/dist/src/utils/lambda/spacelift.d.ts +0 -3
- package/dist/src/utils/lambda/spacelift.js +0 -55
- package/dist/src/utils/lambda/spacelift.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.d.ts +0 -19
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js +0 -22
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/gql.d.ts +0 -15
- package/dist/src/utils/spacelift/lib/__generated__/gql.js +0 -8
- package/dist/src/utils/spacelift/lib/__generated__/gql.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/graphql.d.ts +0 -9426
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js +0 -819
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/index.d.ts +0 -2
- package/dist/src/utils/spacelift/lib/__generated__/index.js +0 -6
- package/dist/src/utils/spacelift/lib/__generated__/index.js.map +0 -1
- package/dist/src/utils/spacelift/lib/graphql.service.d.ts +0 -18
- package/dist/src/utils/spacelift/lib/graphql.service.js +0 -186
- package/dist/src/utils/spacelift/lib/graphql.service.js.map +0 -1
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.d.ts +0 -34
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.js +0 -48
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.js.map +0 -1
- package/dist/src/utils/spacelift/lib/spacelift.error.d.ts +0 -43
- package/dist/src/utils/spacelift/lib/spacelift.error.js +0 -63
- package/dist/src/utils/spacelift/lib/spacelift.error.js.map +0 -1
- package/dist/src/utils/spacelift/lib/spacelift.service.d.ts +0 -16
- package/dist/src/utils/spacelift/lib/spacelift.service.js +0 -58
- package/dist/src/utils/spacelift/lib/spacelift.service.js.map +0 -1
- package/dist/src/utils/spacelift/lib/utils.d.ts +0 -4
- package/dist/src/utils/spacelift/lib/utils.js +0 -32
- package/dist/src/utils/spacelift/lib/utils.js.map +0 -1
- package/generators.json +0 -9
- /package/dist/src/utils/{common/import-esm.d.ts → import-esm.d.ts} +0 -0
- /package/dist/src/utils/{common/import-esm.js → import-esm.js} +0 -0
|
@@ -1,47 +0,0 @@
|
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
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
|
-
* @param lambdaHealthCheckPayload
|
|
22
|
-
*/
|
|
23
|
-
export declare function runSmokeTests(stackId: string, lambdaFunctions: string[], lambdaHealthCheckPayload: string): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Creates or updates a Lambda function alias to point to latest version.
|
|
26
|
-
*
|
|
27
|
-
* @param accountId - AWS account ID
|
|
28
|
-
* @param lambdaARN - Lambda function ARN
|
|
29
|
-
* @param alias - Alias name to create/update
|
|
30
|
-
* @param envVars - AWS credentials environment variables
|
|
31
|
-
*/
|
|
32
|
-
export declare function createOrUpdateLambdaAlias(accountId: string, lambdaARN: string, alias: string, envVars: Record<string, string>): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Sanitizes alias names for AWS Lambda compatibility (replaces dots with dashes).
|
|
35
|
-
*
|
|
36
|
-
* @param alias - Raw alias name
|
|
37
|
-
* @returns Sanitized alias name
|
|
38
|
-
*/
|
|
39
|
-
export declare function sanitizeAliasName(alias: string): string;
|
|
40
|
-
/**
|
|
41
|
-
* Creates or updates aliases for multiple Lambda functions in parallel.
|
|
42
|
-
*
|
|
43
|
-
* @param stackId - Spacelift stack ID to determine environment
|
|
44
|
-
* @param lambdaFunctions - Array of Lambda function names
|
|
45
|
-
* @param alias - Alias name to create/update
|
|
46
|
-
*/
|
|
47
|
-
export declare function createOrMoveAlias(stackId: string, lambdaFunctions: string[], alias: string): Promise<void>;
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.retrieveAccoundId = retrieveAccoundId;
|
|
4
|
-
exports.getLatestVersion = getLatestVersion;
|
|
5
|
-
exports.runSmokeTests = runSmokeTests;
|
|
6
|
-
exports.createOrUpdateLambdaAlias = createOrUpdateLambdaAlias;
|
|
7
|
-
exports.sanitizeAliasName = sanitizeAliasName;
|
|
8
|
-
exports.createOrMoveAlias = createOrMoveAlias;
|
|
9
|
-
const devkit_1 = require("@nx/devkit");
|
|
10
|
-
const exec_1 = require("../common/exec");
|
|
11
|
-
const logger_1 = require("../common/logger");
|
|
12
|
-
const ACCOUNT_IDS = {
|
|
13
|
-
dev: '533547282673',
|
|
14
|
-
staging: '589883667243',
|
|
15
|
-
testing: '623580596988',
|
|
16
|
-
shared: '574592175410',
|
|
17
|
-
prod: '614948436281',
|
|
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
|
-
*/
|
|
25
|
-
function retrieveAccoundId(stackId) {
|
|
26
|
-
const environmentMatch = stackId.match(/-(dev|testing|prod|staging|shared)-/);
|
|
27
|
-
const environment = environmentMatch ? environmentMatch[1] : 'unknown';
|
|
28
|
-
return [environment, ACCOUNT_IDS[environment]];
|
|
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
|
-
*/
|
|
37
|
-
async function getLatestVersion(lambdaARN, envVars) {
|
|
38
|
-
logger_1.consola.log(`Retrieving latest version for function ${lambdaARN}`);
|
|
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: true, nodeOptions: { env: envVars } });
|
|
40
|
-
if (latestVersionResult.exitCode !== 0) {
|
|
41
|
-
logger_1.consola.error(`AWS Lambda list-versions-by-function failed: ${latestVersionResult.stderr}`);
|
|
42
|
-
throw new Error(`AWS Lambda list-versions-by-function failed: ${latestVersionResult.stderr}`);
|
|
43
|
-
}
|
|
44
|
-
// with pagination stdout looks like "49\n99\n109" we want to retieve the last version
|
|
45
|
-
return latestVersionResult.stdout.trim().split('\n').pop();
|
|
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
|
-
* @param lambdaHealthCheckPayload
|
|
53
|
-
*/
|
|
54
|
-
async function runSmokeTests(stackId, lambdaFunctions, lambdaHealthCheckPayload) {
|
|
55
|
-
const [environment, accountId] = retrieveAccoundId(stackId);
|
|
56
|
-
const credentials = await assumeEnvironmentSpecificRole(environment);
|
|
57
|
-
const envVars = getAssumedRoleEnvVars(credentials);
|
|
58
|
-
const smokeTestFunction = async (functionName) => {
|
|
59
|
-
const lambdaARN = `arn:aws:lambda:eu-west-3:${accountId}:function:${functionName}`;
|
|
60
|
-
const latestVersion = await getLatestVersion(lambdaARN, envVars);
|
|
61
|
-
const lambdaFullARN = `${lambdaARN}:${latestVersion}`;
|
|
62
|
-
try {
|
|
63
|
-
logger_1.consola.log(`Running smoke tests for ${functionName} in env ${environment}`);
|
|
64
|
-
const invokeResult = await (0, exec_1.exec)(`aws lambda invoke --function-name ${lambdaFullARN} --payload ${btoa(lambdaHealthCheckPayload)} /tmp/lambda-response.json`, { throwOnError: true, nodeOptions: { env: envVars } });
|
|
65
|
-
if (JSON.parse(invokeResult.stdout)['FunctionError']) {
|
|
66
|
-
const errorFile = (0, devkit_1.readJsonFile)('/tmp/lambda-response.json');
|
|
67
|
-
const errorMessage = errorFile.errorMessage;
|
|
68
|
-
const trace = errorFile.trace;
|
|
69
|
-
logger_1.consola.error(`AWS Lambda invoke failed for lambda ${functionName} : ${errorMessage}`, `Stack trace: ${trace}`);
|
|
70
|
-
throw new Error(`AWS Lambda invoke failed for lambda ${functionName}: ${errorMessage}`);
|
|
71
|
-
}
|
|
72
|
-
logger_1.consola.success(`Smoke test passed for function ${functionName} in ${environment}`);
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
logger_1.consola.error(`Smoke test failed for function ${functionName} in ${environment}:`, error);
|
|
76
|
-
throw error;
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
// Run smoke tests in different envs in parallel
|
|
80
|
-
await Promise.all(lambdaFunctions.map(smokeTestFunction));
|
|
81
|
-
logger_1.consola.success(`All smoke tests passed in ${environment} environment`);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Creates or updates a Lambda function alias to point to latest version.
|
|
85
|
-
*
|
|
86
|
-
* @param accountId - AWS account ID
|
|
87
|
-
* @param lambdaARN - Lambda function ARN
|
|
88
|
-
* @param alias - Alias name to create/update
|
|
89
|
-
* @param envVars - AWS credentials environment variables
|
|
90
|
-
*/
|
|
91
|
-
async function createOrUpdateLambdaAlias(accountId, lambdaARN, alias, envVars) {
|
|
92
|
-
const latestVersion = await getLatestVersion(lambdaARN, envVars);
|
|
93
|
-
// Check if alias already exists
|
|
94
|
-
logger_1.consola.log(`Checking if alias ${alias} exists for function ${lambdaARN}`);
|
|
95
|
-
const getAliasResult = await (0, exec_1.exec)(`aws lambda get-alias --function-name ${lambdaARN} --name ${alias}`, { throwOnError: false, nodeOptions: { env: envVars } });
|
|
96
|
-
const aliasExists = getAliasResult.exitCode === 0;
|
|
97
|
-
const aliasAction = aliasExists ? 'update-alias' : 'create-alias';
|
|
98
|
-
logger_1.consola.log(`${aliasExists ? 'Updating' : 'Creating'} alias ${alias} for function ${lambdaARN} with version ${latestVersion}`);
|
|
99
|
-
logger_1.consola.log(`Executing command aws lambda ${aliasAction} --function-name ${lambdaARN} --name ${alias} --function-version ${latestVersion}`);
|
|
100
|
-
const result = await (0, exec_1.exec)(`aws lambda ${aliasAction} --function-name ${lambdaARN} --name ${alias} --function-version ${latestVersion}`, {
|
|
101
|
-
throwOnError: true,
|
|
102
|
-
nodeOptions: { env: envVars },
|
|
103
|
-
});
|
|
104
|
-
const response = JSON.parse(result.stdout);
|
|
105
|
-
if (response.Name !== alias) {
|
|
106
|
-
throw new Error(`Lambda alias ${alias} ${aliasExists ? 'update' : 'creation'} failed for function ${lambdaARN} in ${accountId}. Response name should match alias`);
|
|
107
|
-
}
|
|
108
|
-
logger_1.consola.success(`Successfully ${aliasExists ? 'updated' : 'created'} alias ${alias} for function ${lambdaARN} with version ${latestVersion}`);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Assumes IAM role for environment-specific Lambda operations.
|
|
112
|
-
*
|
|
113
|
-
* @param environment - Target environment name
|
|
114
|
-
* @returns AWS temporary credentials
|
|
115
|
-
*/
|
|
116
|
-
async function assumeEnvironmentSpecificRole(environment) {
|
|
117
|
-
const roleName = `invoke-lambda-nx-core`;
|
|
118
|
-
const accountId = ACCOUNT_IDS[environment];
|
|
119
|
-
const roleArn = `arn:aws:iam::${accountId}:role/${roleName}`;
|
|
120
|
-
logger_1.consola.log(`Assuming role ${roleName} for environment ${environment}`);
|
|
121
|
-
try {
|
|
122
|
-
const result = await (0, exec_1.exec)(`aws sts assume-role --role-arn ${roleArn} --role-session-name nx-core`, { throwOnError: true });
|
|
123
|
-
if (result.exitCode !== 0) {
|
|
124
|
-
logger_1.consola.error(`AWS STS assume-role failed: ${result.stderr}`);
|
|
125
|
-
throw new Error(`AWS STS assume-role failed: ${result.stderr}`);
|
|
126
|
-
}
|
|
127
|
-
if (!result.stdout) {
|
|
128
|
-
throw new Error('Empty response from AWS STS assume-role command');
|
|
129
|
-
}
|
|
130
|
-
let parsedResponse;
|
|
131
|
-
try {
|
|
132
|
-
parsedResponse = JSON.parse(result.stdout);
|
|
133
|
-
}
|
|
134
|
-
catch (parseError) {
|
|
135
|
-
logger_1.consola.error('Failed to parse AWS STS response:', result.stdout);
|
|
136
|
-
throw new Error(`Invalid JSON response from AWS STS: ${parseError.message}`);
|
|
137
|
-
}
|
|
138
|
-
if (!parsedResponse.Credentials) {
|
|
139
|
-
logger_1.consola.error('AWS STS response missing credentials:', parsedResponse);
|
|
140
|
-
throw new Error('AWS STS response does not contain credentials');
|
|
141
|
-
}
|
|
142
|
-
const credentials = parsedResponse.Credentials;
|
|
143
|
-
logger_1.consola.success(`Successfully assumed role ${roleName} for environment ${environment}`);
|
|
144
|
-
return {
|
|
145
|
-
accessKeyId: credentials.AccessKeyId,
|
|
146
|
-
secretAccessKey: credentials.SecretAccessKey,
|
|
147
|
-
sessionToken: credentials.SessionToken,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
logger_1.consola.error(`Failed to assume role ${roleName} for environment ${environment}`);
|
|
152
|
-
logger_1.consola.error(`Role ARN: ${roleArn}`);
|
|
153
|
-
logger_1.consola.error(`Account ID: ${accountId}`);
|
|
154
|
-
if (error.message?.includes('is not authorized to perform: sts:AssumeRole')) {
|
|
155
|
-
logger_1.consola.error(`❌ Authorization Error: Current AWS credentials are not authorized to assume the role '${roleName}'`);
|
|
156
|
-
logger_1.consola.info(`💡 Possible solutions:`);
|
|
157
|
-
logger_1.consola.info(` • Ensure your AWS credentials have the 'sts:AssumeRole' permission`);
|
|
158
|
-
logger_1.consola.info(` • Verify the role '${roleName}' exists in account ${accountId}`);
|
|
159
|
-
logger_1.consola.info(` • Check if the role's trust policy allows your current identity to assume it`);
|
|
160
|
-
logger_1.consola.info(` • Confirm you're using the correct AWS profile/credentials`);
|
|
161
|
-
}
|
|
162
|
-
else if (error.message?.includes('does not exist')) {
|
|
163
|
-
logger_1.consola.error(`❌ Role Not Found: The role '${roleName}' does not exist in account ${accountId}`);
|
|
164
|
-
logger_1.consola.info(`💡 Please ensure the role is created in the target AWS account`);
|
|
165
|
-
}
|
|
166
|
-
else if (error.message?.includes('Invalid identity token')) {
|
|
167
|
-
logger_1.consola.error(`❌ Token Error: AWS credentials are invalid or expired`);
|
|
168
|
-
logger_1.consola.info(`💡 Please refresh your AWS credentials`);
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
logger_1.consola.error(`❌ Unexpected error: ${error.message}`);
|
|
172
|
-
if (error.stderr) {
|
|
173
|
-
logger_1.consola.error(`AWS CLI stderr: ${error.stderr}`);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
throw new Error(`Role assumption failed for ${environment}: ${error.message}`);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Converts assumed role credentials to environment variables.
|
|
181
|
-
*
|
|
182
|
-
* @param credentials - AWS temporary credentials
|
|
183
|
-
* @returns Environment variables with AWS credentials
|
|
184
|
-
*/
|
|
185
|
-
function getAssumedRoleEnvVars(credentials) {
|
|
186
|
-
// Only override the specific AWS credential environment variables
|
|
187
|
-
const baseEnv = { ...process.env };
|
|
188
|
-
baseEnv.AWS_ACCESS_KEY_ID = credentials.accessKeyId;
|
|
189
|
-
baseEnv.AWS_SECRET_ACCESS_KEY = credentials.secretAccessKey;
|
|
190
|
-
baseEnv.AWS_SESSION_TOKEN = credentials.sessionToken;
|
|
191
|
-
return baseEnv;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Sanitizes alias names for AWS Lambda compatibility (replaces dots with dashes).
|
|
195
|
-
*
|
|
196
|
-
* @param alias - Raw alias name
|
|
197
|
-
* @returns Sanitized alias name
|
|
198
|
-
*/
|
|
199
|
-
function sanitizeAliasName(alias) {
|
|
200
|
-
// AWS Lambda alias names must satisfy: (?!^[0-9]+$)([a-zA-Z0-9-_]+)
|
|
201
|
-
// Replace dots with dashes and ensure it's not all numbers
|
|
202
|
-
return alias.replace(/\./g, '-');
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Creates or updates aliases for multiple Lambda functions in parallel.
|
|
206
|
-
*
|
|
207
|
-
* @param stackId - Spacelift stack ID to determine environment
|
|
208
|
-
* @param lambdaFunctions - Array of Lambda function names
|
|
209
|
-
* @param alias - Alias name to create/update
|
|
210
|
-
*/
|
|
211
|
-
async function createOrMoveAlias(stackId, lambdaFunctions, alias) {
|
|
212
|
-
const [environment, accountId] = retrieveAccoundId(stackId);
|
|
213
|
-
const credentials = await assumeEnvironmentSpecificRole(environment);
|
|
214
|
-
const envVars = getAssumedRoleEnvVars(credentials);
|
|
215
|
-
const sanitizedAlias = sanitizeAliasName(alias);
|
|
216
|
-
const addAliasFunction = async (functionName) => {
|
|
217
|
-
try {
|
|
218
|
-
logger_1.consola.log(`Add alias ${sanitizedAlias} for ${functionName} in env ${environment}`);
|
|
219
|
-
const lambdaARN = `arn:aws:lambda:eu-west-3:${accountId}:function:${functionName}`;
|
|
220
|
-
return createOrUpdateLambdaAlias(accountId, lambdaARN, sanitizedAlias, envVars);
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
logger_1.consola.error(`Lambda alias ${sanitizedAlias} creation failed for function ${functionName} in ${environment}:`, error);
|
|
224
|
-
throw error;
|
|
225
|
-
}
|
|
226
|
-
};
|
|
227
|
-
// Run create alias in different envs in parallel
|
|
228
|
-
await Promise.all(lambdaFunctions.map(addAliasFunction));
|
|
229
|
-
logger_1.consola.success(`All alias created for functions in ${environment}`);
|
|
230
|
-
}
|
|
231
|
-
//# sourceMappingURL=aws-lambda.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../../../src/utils/lambda/aws-lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
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
|
-
*/
|
|
7
|
-
export declare const createZip: (source: string, zipName: string) => Promise<import("tinyexec").Output>;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createZip = void 0;
|
|
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
|
-
*/
|
|
11
|
-
const createZip = async (source, zipName) => {
|
|
12
|
-
const cwd = process.cwd();
|
|
13
|
-
process.chdir(source);
|
|
14
|
-
const cmd = `zip -r ${zipName} .`;
|
|
15
|
-
const zip = await (0, exec_1.exec)(cmd, { throwOnError: true });
|
|
16
|
-
process.chdir(cwd);
|
|
17
|
-
return zip;
|
|
18
|
-
};
|
|
19
|
-
exports.createZip = createZip;
|
|
20
|
-
//# sourceMappingURL=lambda.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,8 +0,0 @@
|
|
|
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
|
-
*/
|
|
8
|
-
export declare function pushImageToEcr(lambdaEcrRepository: string, tag: string, pathToPackageJson: string): Promise<void>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pushImageToEcr = pushImageToEcr;
|
|
4
|
-
const consola_1 = require("consola");
|
|
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
|
-
*/
|
|
13
|
-
async function pushImageToEcr(lambdaEcrRepository, tag, pathToPackageJson) {
|
|
14
|
-
if (!process.env.AWS_ECR_REGISTRY) {
|
|
15
|
-
throw new Error('AWS_ECR_REGISTRY environment variable is not set');
|
|
16
|
-
}
|
|
17
|
-
const uploadToOci = await (0, exec_1.exec)(`oras push ${process.env.AWS_ECR_REGISTRY}/${lambdaEcrRepository}:${tag} --disable-path-validation --artifact-type application/vnd.payfit.lambda.manifest ${pathToPackageJson}`, {
|
|
18
|
-
throwOnError: true,
|
|
19
|
-
});
|
|
20
|
-
consola_1.consola.log(uploadToOci.stdout);
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=oci.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../src/utils/lambda/oci.ts"],"names":[],"mappings":";;AAWA,wCAeC;AA1BD,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,IAAI;KACnB,CACF,CAAA;IACD,iBAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
* @param lambdaHealthCheckPayload
|
|
13
|
-
*/
|
|
14
|
-
export declare function createLambdaVersion(stacksName: string[], lambdaFunctions: string[], version: string, lambdaHealthCheckPayload: string): Promise<void>;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createLambdaVersion = createLambdaVersion;
|
|
4
|
-
const github_1 = require("../common/github");
|
|
5
|
-
const logger_1 = require("../common/logger");
|
|
6
|
-
const graphql_service_1 = require("../spacelift/lib/graphql.service");
|
|
7
|
-
const spacelift_service_1 = require("../spacelift/lib/spacelift.service");
|
|
8
|
-
const aws_lambda_1 = require("./aws-lambda");
|
|
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
|
-
* @param lambdaHealthCheckPayload
|
|
22
|
-
*/
|
|
23
|
-
async function createLambdaVersion(stacksName, lambdaFunctions, version, lambdaHealthCheckPayload) {
|
|
24
|
-
const graphqlService = new graphql_service_1.GraphQlService();
|
|
25
|
-
const spaceliftService = new spacelift_service_1.SpaceliftService(graphqlService);
|
|
26
|
-
const processEnvironment = async (stackId) => {
|
|
27
|
-
const currentCommitSha = await (0, github_1.getCurrentGitCommitSha)();
|
|
28
|
-
logger_1.consola.log(`Updating Spacelift stack ${stackId} TF_VAR_commit_sha with version ${currentCommitSha}`);
|
|
29
|
-
await (0, spacelift_1.updateSpaceliftEnvironmentVariable)(spaceliftService, stackId, 'TF_VAR_commit_sha', currentCommitSha);
|
|
30
|
-
logger_1.consola.log(`Updating Spacelift stack ${stackId} TF_VAR_lambda_version with version ${currentCommitSha}`);
|
|
31
|
-
await (0, spacelift_1.updateSpaceliftEnvironmentVariable)(spaceliftService, stackId, 'TF_VAR_lambda_version', version);
|
|
32
|
-
await (0, spacelift_1.triggerSpaceliftStack)(spaceliftService, stackId);
|
|
33
|
-
await (0, aws_lambda_1.runSmokeTests)(stackId, lambdaFunctions, lambdaHealthCheckPayload);
|
|
34
|
-
};
|
|
35
|
-
const publishFunction = async (stackId) => {
|
|
36
|
-
await (0, aws_lambda_1.createOrMoveAlias)(stackId, lambdaFunctions, version);
|
|
37
|
-
};
|
|
38
|
-
// wait for each stack
|
|
39
|
-
await Promise.all(stacksName.map(processEnvironment));
|
|
40
|
-
logger_1.consola.success(`Lambda version created and smoke tests passed`);
|
|
41
|
-
logger_1.consola.box(`Publishing Lambda alias smoke-tested to alias: ${version}`);
|
|
42
|
-
await Promise.all(stacksName.map(publishFunction));
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=publish.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../src/utils/lambda/publish.ts"],"names":[],"mappings":";;AAuBA,kDAyCC;AAhED,6CAAyD;AACzD,6CAA0C;AAC1C,sEAAiE;AACjE,0EAAqE;AACrE,6CAA+D;AAC/D,2CAGoB;AAEpB;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,mBAAmB,CACvC,UAAoB,EACpB,eAAyB,EACzB,OAAe,EACf,wBAAgC;IAEhC,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,EAAE,wBAAwB,CAAC,CAAA;IACzE,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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { SpaceliftService } from '../spacelift/lib/spacelift.service';
|
|
2
|
-
export declare function updateSpaceliftEnvironmentVariable(spaceliftService: SpaceliftService, stackId: string, key: string, value: string): Promise<void>;
|
|
3
|
-
export declare function triggerSpaceliftStack(spaceliftService: SpaceliftService, stackId: string): Promise<void>;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateSpaceliftEnvironmentVariable = updateSpaceliftEnvironmentVariable;
|
|
4
|
-
exports.triggerSpaceliftStack = triggerSpaceliftStack;
|
|
5
|
-
const logger_1 = require("../common/logger");
|
|
6
|
-
const graphql_1 = require("../spacelift/lib/__generated__/graphql");
|
|
7
|
-
const utils_1 = require("../spacelift/lib/utils");
|
|
8
|
-
const RETRIEVE_STATE_INTERVAL_IN_MS = 5000;
|
|
9
|
-
async function updateSpaceliftEnvironmentVariable(spaceliftService, stackId, key, value) {
|
|
10
|
-
try {
|
|
11
|
-
await spaceliftService.updateStackEnvironmentVariable(stackId, key, value);
|
|
12
|
-
logger_1.consola.success(`Successfully updated Spacelift stack ${stackId} with environment variable ${key}:${value}\n`);
|
|
13
|
-
}
|
|
14
|
-
catch (error) {
|
|
15
|
-
logger_1.consola.error(`Failed to update Spacelift stack ${stackId}`, error);
|
|
16
|
-
throw error;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function sleep(ms) {
|
|
20
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
21
|
-
}
|
|
22
|
-
async function triggerSpaceliftStack(spaceliftService, stackId) {
|
|
23
|
-
logger_1.consola.log(`Triggering Spacelift run for stack: ${stackId}`);
|
|
24
|
-
try {
|
|
25
|
-
const result = await spaceliftService.triggerStackRun(stackId);
|
|
26
|
-
const spaceliftRunUrl = `https://payfit.app.spacelift.io/stack/${stackId}/run/${result.runId}`;
|
|
27
|
-
logger_1.consola.success(`Successfully triggered Spacelift stack ${stackId}. Run: ${spaceliftRunUrl}`);
|
|
28
|
-
let runState = graphql_1.RunState.Unknown;
|
|
29
|
-
while ((0, utils_1.isRunInProgress)(runState)) {
|
|
30
|
-
const stack = await spaceliftService.getStackById(stackId);
|
|
31
|
-
const stackCurrentRun = stack.runs?.find(run => run.id === result.runId);
|
|
32
|
-
if (!stackCurrentRun) {
|
|
33
|
-
logger_1.consola.error(`Cannot retrieve run state, run not found: ${spaceliftRunUrl}`);
|
|
34
|
-
throw new Error(`Run id not found: ${result.runId}`);
|
|
35
|
-
}
|
|
36
|
-
runState = stackCurrentRun.state;
|
|
37
|
-
if ((0, utils_1.isRunFinished)(runState)) {
|
|
38
|
-
logger_1.consola.success(`Successfully finished run ${spaceliftRunUrl} for Spacelift stack ${stackId}`);
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
if ((0, utils_1.isRunInNonValidState)(runState)) {
|
|
42
|
-
logger_1.consola.error(`Run is in a non valid state : ${runState}`);
|
|
43
|
-
throw new Error(`Run is in a non valid state : ${runState}`);
|
|
44
|
-
}
|
|
45
|
-
logger_1.consola.info(`Waiting for run to finish, actual state : ${runState}`);
|
|
46
|
-
// TO DO ADD GLOBAL TIMEOUT
|
|
47
|
-
await sleep(RETRIEVE_STATE_INTERVAL_IN_MS);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
logger_1.consola.error(`Failed to trigger Spacelift stack ${stackId}`, error);
|
|
52
|
-
throw error;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=spacelift.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spacelift.js","sourceRoot":"","sources":["../../../../src/utils/lambda/spacelift.ts"],"names":[],"mappings":";;AAwBA,gFAeC;AAMD,sDA2CC;AAxFD,6CAA0C;AAC1C,oEAAiE;AAEjE,kDAI+B;AAE/B,MAAM,6BAA6B,GAAG,IAAI,CAAA;AAenC,KAAK,UAAU,kCAAkC,CACtD,gBAAkC,EAClC,OAAe,EACf,GAAW,EACX,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,8BAA8B,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QAC1E,gBAAO,CAAC,OAAO,CACb,wCAAwC,OAAO,8BAA8B,GAAG,IAAI,KAAK,IAAI,CAC9F,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAO,CAAC,KAAK,CAAC,oCAAoC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;QACnE,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,gBAAkC,EAClC,OAAe;IAEf,gBAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC9D,MAAM,eAAe,GAAG,yCAAyC,OAAO,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAA;QAC9F,gBAAO,CAAC,OAAO,CACb,0CAA0C,OAAO,UAAU,eAAe,EAAE,CAC7E,CAAA;QAED,IAAI,QAAQ,GAAa,kBAAQ,CAAC,OAAO,CAAA;QACzC,OAAO,IAAA,uBAAe,EAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAiB,MAAM,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACxE,MAAM,eAAe,GAAe,KAAK,CAAC,IAAI,EAAE,IAAI,CAClD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAC/B,CAAA;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,gBAAO,CAAC,KAAK,CACX,6CAA6C,eAAe,EAAE,CAC/D,CAAA;gBACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YACtD,CAAC;YACD,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAA;YAChC,IAAI,IAAA,qBAAa,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,gBAAO,CAAC,OAAO,CACb,6BAA6B,eAAe,wBAAwB,OAAO,EAAE,CAC9E,CAAA;gBACD,MAAK;YACP,CAAC;YACD,IAAI,IAAA,4BAAoB,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,gBAAO,CAAC,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAA;gBAC1D,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAA;YAC9D,CAAC;YACD,gBAAO,CAAC,IAAI,CAAC,6CAA6C,QAAQ,EAAE,CAAC,CAAA;YACrE,2BAA2B;YAC3B,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAO,CAAC,KAAK,CAAC,qCAAqC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;QACpE,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core';
|
|
2
|
-
import { Incremental } from './graphql';
|
|
3
|
-
export type FragmentType<TDocumentType extends DocumentTypeDecoration<any, any>> = TDocumentType extends DocumentTypeDecoration<infer TType, any> ? [TType] extends [{
|
|
4
|
-
' $fragmentName'?: infer TKey;
|
|
5
|
-
}] ? TKey extends string ? {
|
|
6
|
-
' $fragmentRefs'?: {
|
|
7
|
-
[key in TKey]: TType;
|
|
8
|
-
};
|
|
9
|
-
} : never : never : never;
|
|
10
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>): TType;
|
|
11
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined): TType | undefined;
|
|
12
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null): TType | null;
|
|
13
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null | undefined): TType | null | undefined;
|
|
14
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>): Array<TType>;
|
|
15
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined): Array<TType> | null | undefined;
|
|
16
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>): ReadonlyArray<TType>;
|
|
17
|
-
export declare function useFragment<TType>(_documentNode: DocumentTypeDecoration<TType, any>, fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined): ReadonlyArray<TType> | null | undefined;
|
|
18
|
-
export declare function makeFragmentData<F extends DocumentTypeDecoration<any, any>, FT extends ResultOf<F>>(data: FT, _fragment: F): FragmentType<F>;
|
|
19
|
-
export declare function isFragmentReady<TQuery, TFrag>(queryNode: DocumentTypeDecoration<TQuery, any>, fragmentNode: TypedDocumentNode<TFrag>, data: FragmentType<TypedDocumentNode<Incremental<TFrag>, any>> | null | undefined): data is FragmentType<typeof fragmentNode>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useFragment = useFragment;
|
|
4
|
-
exports.makeFragmentData = makeFragmentData;
|
|
5
|
-
exports.isFragmentReady = isFragmentReady;
|
|
6
|
-
function useFragment(_documentNode, fragmentType) {
|
|
7
|
-
return fragmentType;
|
|
8
|
-
}
|
|
9
|
-
function makeFragmentData(data, _fragment) {
|
|
10
|
-
return data;
|
|
11
|
-
}
|
|
12
|
-
function isFragmentReady(queryNode, fragmentNode, data) {
|
|
13
|
-
const deferredFields = queryNode.__meta__
|
|
14
|
-
?.deferredFields;
|
|
15
|
-
if (!deferredFields)
|
|
16
|
-
return true;
|
|
17
|
-
const fragDef = fragmentNode.definitions[0];
|
|
18
|
-
const fragName = fragDef?.name?.value;
|
|
19
|
-
const fields = (fragName && deferredFields[fragName]) || [];
|
|
20
|
-
return fields.length > 0 && fields.every(field => data && field in data);
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=fragment-masking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragment-masking.js","sourceRoot":"","sources":["../../../../../../src/utils/spacelift/lib/__generated__/fragment-masking.ts"],"names":[],"mappings":";;AAyDA,kCAKC;AAGD,4CAKC;AACD,0CAeC;AA7BD,SAAgB,WAAW,CACzB,aAAiD,EACjD,YAA6M;IAE7M,OAAO,YAAmB,CAAC;AAC7B,CAAC;AAGD,SAAgB,gBAAgB,CAG9B,IAAQ,EAAE,SAAY;IACtB,OAAO,IAAuB,CAAC;AACjC,CAAC;AACD,SAAgB,eAAe,CAC7B,SAA8C,EAC9C,YAAsC,EACtC,IAAiF;IAEjF,MAAM,cAAc,GAAI,SAAgF,CAAC,QAAQ;QAC/G,EAAE,cAAc,CAAC;IAEnB,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAuC,CAAC;IAClF,MAAM,QAAQ,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;IAEtC,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
|
2
|
-
/**
|
|
3
|
-
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```ts
|
|
8
|
-
* const query = gql(`query GetUser($id: ID!) { user(id: $id) { name } }`);
|
|
9
|
-
* ```
|
|
10
|
-
*
|
|
11
|
-
* The query argument is unknown!
|
|
12
|
-
* Please regenerate the types.
|
|
13
|
-
*/
|
|
14
|
-
export declare function gql(source: string): unknown;
|
|
15
|
-
export type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","sourceRoot":"","sources":["../../../../../../src/utils/spacelift/lib/__generated__/gql.ts"],"names":[],"mappings":";;AAmBA,kBAEC;AAjBD,MAAM,SAAS,GAAG,EAAE,CAAC;AAerB,SAAgB,GAAG,CAAC,MAAc;IAChC,OAAQ,SAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
|