@payfit/nx-core 0.0.0-e2e
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 +173 -0
- package/dist/src/codegen.d.ts +3 -0
- package/dist/src/codegen.js +25 -0
- package/dist/src/codegen.js.map +1 -0
- package/dist/src/executors/preview-deploy/README.md +5 -0
- package/dist/src/executors/preview-deploy/argocdOverride.d.ts +4 -0
- package/dist/src/executors/preview-deploy/argocdOverride.js +22 -0
- package/dist/src/executors/preview-deploy/argocdOverride.js.map +1 -0
- package/dist/src/executors/preview-deploy/executor.d.ts +4 -0
- package/dist/src/executors/preview-deploy/executor.js +143 -0
- package/dist/src/executors/preview-deploy/executor.js.map +1 -0
- package/dist/src/executors/preview-deploy/kargoPolicy.d.ts +14 -0
- package/dist/src/executors/preview-deploy/kargoPolicy.js +69 -0
- package/dist/src/executors/preview-deploy/kargoPolicy.js.map +1 -0
- package/dist/src/executors/preview-deploy/schema.json +28 -0
- package/dist/src/executors/publisher/README.md +3 -0
- package/dist/src/executors/publisher/docker.d.ts +3 -0
- package/dist/src/executors/publisher/docker.js +66 -0
- package/dist/src/executors/publisher/docker.js.map +1 -0
- package/dist/src/executors/publisher/executor.d.ts +4 -0
- package/dist/src/executors/publisher/executor.js +20 -0
- package/dist/src/executors/publisher/executor.js.map +1 -0
- package/dist/src/executors/publisher/helm.d.ts +3 -0
- package/dist/src/executors/publisher/helm.js +69 -0
- package/dist/src/executors/publisher/helm.js.map +1 -0
- package/dist/src/executors/publisher/lambda.d.ts +18 -0
- package/dist/src/executors/publisher/lambda.js +86 -0
- package/dist/src/executors/publisher/lambda.js.map +1 -0
- package/dist/src/executors/publisher/schema.json +62 -0
- package/dist/src/executors/release/README.md +15 -0
- package/dist/src/executors/release/executor.d.ts +4 -0
- package/dist/src/executors/release/executor.js +104 -0
- package/dist/src/executors/release/executor.js.map +1 -0
- package/dist/src/executors/release/schema.json +37 -0
- package/dist/src/generators/init/README.md +5 -0
- package/dist/src/generators/init/files/.circleci/config.yml.template +232 -0
- package/dist/src/generators/init/files/.circleci/teleport/shared-charts.conf.template +24 -0
- package/dist/src/generators/init/files/.npmrc.template +1 -0
- package/dist/src/generators/init/init.d.ts +13 -0
- package/dist/src/generators/init/init.js +278 -0
- package/dist/src/generators/init/init.js.map +1 -0
- package/dist/src/generators/init/schema.json +7 -0
- package/dist/src/index.d.ts +27 -0
- package/dist/src/index.js +118 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/scripts/codegen-with-auth.js +55 -0
- package/dist/src/scripts/version-actions.d.ts +8 -0
- package/dist/src/scripts/version-actions.js +41 -0
- package/dist/src/scripts/version-actions.js.map +1 -0
- package/dist/src/scripts/version-actions.mock.d.ts +6 -0
- package/dist/src/scripts/version-actions.mock.js +61 -0
- package/dist/src/scripts/version-actions.mock.js.map +1 -0
- package/dist/src/utils/common/aws-auth.d.ts +47 -0
- package/dist/src/utils/common/aws-auth.js +145 -0
- package/dist/src/utils/common/aws-auth.js.map +1 -0
- package/dist/src/utils/common/circleci.d.ts +2 -0
- package/dist/src/utils/common/circleci.js +20 -0
- package/dist/src/utils/common/circleci.js.map +1 -0
- package/dist/src/utils/common/exec.d.ts +4 -0
- package/dist/src/utils/common/exec.js +52 -0
- package/dist/src/utils/common/exec.js.map +1 -0
- package/dist/src/utils/common/github.d.ts +20 -0
- package/dist/src/utils/common/github.js +60 -0
- package/dist/src/utils/common/github.js.map +1 -0
- package/dist/src/utils/common/import-esm.d.ts +2 -0
- package/dist/src/utils/common/import-esm.js +12 -0
- package/dist/src/utils/common/import-esm.js.map +1 -0
- package/dist/src/utils/common/logger.d.ts +1 -0
- package/dist/src/utils/common/logger.js +8 -0
- package/dist/src/utils/common/logger.js.map +1 -0
- package/dist/src/utils/common/nx.d.ts +22 -0
- package/dist/src/utils/common/nx.js +174 -0
- package/dist/src/utils/common/nx.js.map +1 -0
- package/dist/src/utils/common/s3.d.ts +1 -0
- package/dist/src/utils/common/s3.js +18 -0
- package/dist/src/utils/common/s3.js.map +1 -0
- package/dist/src/utils/common/tsh.d.ts +11 -0
- package/dist/src/utils/common/tsh.js +112 -0
- package/dist/src/utils/common/tsh.js.map +1 -0
- package/dist/src/utils/datadog.d.ts +1 -0
- package/dist/src/utils/datadog.js +33 -0
- package/dist/src/utils/datadog.js.map +1 -0
- package/dist/src/utils/docker.d.ts +15 -0
- package/dist/src/utils/docker.js +73 -0
- package/dist/src/utils/docker.js.map +1 -0
- package/dist/src/utils/helm.d.ts +64 -0
- package/dist/src/utils/helm.js +159 -0
- package/dist/src/utils/helm.js.map +1 -0
- package/dist/src/utils/helm.mock.d.ts +85 -0
- package/dist/src/utils/helm.mock.js +100 -0
- package/dist/src/utils/helm.mock.js.map +1 -0
- package/dist/src/utils/lambda/aws-lambda.d.ts +47 -0
- package/dist/src/utils/lambda/aws-lambda.js +231 -0
- package/dist/src/utils/lambda/aws-lambda.js.map +1 -0
- package/dist/src/utils/lambda/lambda.d.ts +7 -0
- package/dist/src/utils/lambda/lambda.js +20 -0
- package/dist/src/utils/lambda/lambda.js.map +1 -0
- package/dist/src/utils/lambda/oci.d.ts +8 -0
- package/dist/src/utils/lambda/oci.js +22 -0
- package/dist/src/utils/lambda/oci.js.map +1 -0
- package/dist/src/utils/lambda/publish.d.ts +14 -0
- package/dist/src/utils/lambda/publish.js +44 -0
- package/dist/src/utils/lambda/publish.js.map +1 -0
- package/dist/src/utils/lambda/spacelift.d.ts +3 -0
- package/dist/src/utils/lambda/spacelift.js +55 -0
- package/dist/src/utils/lambda/spacelift.js.map +1 -0
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.d.ts +19 -0
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js +22 -0
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js.map +1 -0
- package/dist/src/utils/spacelift/lib/__generated__/gql.d.ts +15 -0
- package/dist/src/utils/spacelift/lib/__generated__/gql.js +8 -0
- package/dist/src/utils/spacelift/lib/__generated__/gql.js.map +1 -0
- package/dist/src/utils/spacelift/lib/__generated__/graphql.d.ts +9426 -0
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js +819 -0
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js.map +1 -0
- package/dist/src/utils/spacelift/lib/__generated__/index.d.ts +2 -0
- package/dist/src/utils/spacelift/lib/__generated__/index.js +6 -0
- package/dist/src/utils/spacelift/lib/__generated__/index.js.map +1 -0
- package/dist/src/utils/spacelift/lib/graphql.service.d.ts +18 -0
- package/dist/src/utils/spacelift/lib/graphql.service.js +186 -0
- package/dist/src/utils/spacelift/lib/graphql.service.js.map +1 -0
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.d.ts +34 -0
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.js +48 -0
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.js.map +1 -0
- package/dist/src/utils/spacelift/lib/spacelift.error.d.ts +43 -0
- package/dist/src/utils/spacelift/lib/spacelift.error.js +63 -0
- package/dist/src/utils/spacelift/lib/spacelift.error.js.map +1 -0
- package/dist/src/utils/spacelift/lib/spacelift.service.d.ts +16 -0
- package/dist/src/utils/spacelift/lib/spacelift.service.js +58 -0
- package/dist/src/utils/spacelift/lib/spacelift.service.js.map +1 -0
- package/dist/src/utils/spacelift/lib/utils.d.ts +4 -0
- package/dist/src/utils/spacelift/lib/utils.js +32 -0
- package/dist/src/utils/spacelift/lib/utils.js.map +1 -0
- package/executors.json +19 -0
- package/generators.json +9 -0
- package/package.json +60 -0
|
@@ -0,0 +1,20 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +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
|
+
*/
|
|
8
|
+
export declare function pushImageToEcr(lambdaEcrRepository: string, tag: string, pathToPackageJson: string): Promise<void>;
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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>;
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
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>;
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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>;
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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;
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|