@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.
Files changed (149) hide show
  1. package/README.md +10 -163
  2. package/dist/src/executors/publisher/docker.d.ts +3 -1
  3. package/dist/src/executors/publisher/docker.js +12 -57
  4. package/dist/src/executors/publisher/docker.js.map +1 -1
  5. package/dist/src/executors/publisher/executor.js +12 -9
  6. package/dist/src/executors/publisher/executor.js.map +1 -1
  7. package/dist/src/executors/publisher/helm.d.ts +5 -1
  8. package/dist/src/executors/publisher/helm.js +11 -40
  9. package/dist/src/executors/publisher/helm.js.map +1 -1
  10. package/dist/src/executors/publisher/schema.d.ts +5 -0
  11. package/dist/src/executors/publisher/schema.json +0 -44
  12. package/dist/src/index.d.ts +1 -24
  13. package/dist/src/index.js +11 -67
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/scripts/version-actions.d.ts +20 -3
  16. package/dist/src/scripts/version-actions.js +41 -23
  17. package/dist/src/scripts/version-actions.js.map +1 -1
  18. package/dist/src/utils/{common/aws-auth.d.ts → aws-auth.d.ts} +8 -16
  19. package/dist/src/utils/aws-auth.js +84 -0
  20. package/dist/src/utils/aws-auth.js.map +1 -0
  21. package/dist/src/utils/docker.d.ts +16 -12
  22. package/dist/src/utils/docker.js +23 -63
  23. package/dist/src/utils/docker.js.map +1 -1
  24. package/dist/src/utils/exec.d.ts +7 -0
  25. package/dist/src/utils/exec.js +25 -0
  26. package/dist/src/utils/exec.js.map +1 -0
  27. package/dist/src/utils/get-version.d.ts +6 -0
  28. package/dist/src/utils/get-version.js +14 -0
  29. package/dist/src/utils/get-version.js.map +1 -0
  30. package/dist/src/utils/github.d.ts +4 -0
  31. package/dist/src/utils/github.js +17 -0
  32. package/dist/src/utils/github.js.map +1 -0
  33. package/dist/src/utils/helm.d.ts +16 -32
  34. package/dist/src/utils/helm.js +15 -83
  35. package/dist/src/utils/helm.js.map +1 -1
  36. package/dist/src/utils/import-esm.js.map +1 -0
  37. package/dist/src/utils/{common/tsh.d.ts → tsh.d.ts} +0 -1
  38. package/dist/src/utils/{common/tsh.js → tsh.js} +15 -20
  39. package/dist/src/utils/tsh.js.map +1 -0
  40. package/executors.json +2 -12
  41. package/package.json +18 -42
  42. package/dist/src/codegen.d.ts +0 -3
  43. package/dist/src/codegen.js +0 -25
  44. package/dist/src/codegen.js.map +0 -1
  45. package/dist/src/executors/preview-deploy/README.md +0 -5
  46. package/dist/src/executors/preview-deploy/argocdOverride.d.ts +0 -4
  47. package/dist/src/executors/preview-deploy/argocdOverride.js +0 -22
  48. package/dist/src/executors/preview-deploy/argocdOverride.js.map +0 -1
  49. package/dist/src/executors/preview-deploy/executor.d.ts +0 -4
  50. package/dist/src/executors/preview-deploy/executor.js +0 -143
  51. package/dist/src/executors/preview-deploy/executor.js.map +0 -1
  52. package/dist/src/executors/preview-deploy/kargoPolicy.d.ts +0 -14
  53. package/dist/src/executors/preview-deploy/kargoPolicy.js +0 -69
  54. package/dist/src/executors/preview-deploy/kargoPolicy.js.map +0 -1
  55. package/dist/src/executors/preview-deploy/schema.json +0 -28
  56. package/dist/src/executors/publisher/README.md +0 -3
  57. package/dist/src/executors/publisher/lambda.d.ts +0 -18
  58. package/dist/src/executors/publisher/lambda.js +0 -86
  59. package/dist/src/executors/publisher/lambda.js.map +0 -1
  60. package/dist/src/executors/release/README.md +0 -15
  61. package/dist/src/executors/release/executor.d.ts +0 -4
  62. package/dist/src/executors/release/executor.js +0 -104
  63. package/dist/src/executors/release/executor.js.map +0 -1
  64. package/dist/src/executors/release/schema.json +0 -37
  65. package/dist/src/generators/init/README.md +0 -5
  66. package/dist/src/generators/init/files/.circleci/config.yml.template +0 -232
  67. package/dist/src/generators/init/files/.circleci/teleport/shared-charts.conf.template +0 -24
  68. package/dist/src/generators/init/files/.npmrc.template +0 -1
  69. package/dist/src/generators/init/init.d.ts +0 -13
  70. package/dist/src/generators/init/init.js +0 -278
  71. package/dist/src/generators/init/init.js.map +0 -1
  72. package/dist/src/generators/init/schema.json +0 -7
  73. package/dist/src/scripts/codegen-with-auth.js +0 -55
  74. package/dist/src/scripts/version-actions.mock.d.ts +0 -6
  75. package/dist/src/scripts/version-actions.mock.js +0 -61
  76. package/dist/src/scripts/version-actions.mock.js.map +0 -1
  77. package/dist/src/utils/common/aws-auth.js +0 -145
  78. package/dist/src/utils/common/aws-auth.js.map +0 -1
  79. package/dist/src/utils/common/circleci.d.ts +0 -2
  80. package/dist/src/utils/common/circleci.js +0 -20
  81. package/dist/src/utils/common/circleci.js.map +0 -1
  82. package/dist/src/utils/common/exec.d.ts +0 -4
  83. package/dist/src/utils/common/exec.js +0 -52
  84. package/dist/src/utils/common/exec.js.map +0 -1
  85. package/dist/src/utils/common/github.d.ts +0 -20
  86. package/dist/src/utils/common/github.js +0 -60
  87. package/dist/src/utils/common/github.js.map +0 -1
  88. package/dist/src/utils/common/import-esm.js.map +0 -1
  89. package/dist/src/utils/common/logger.d.ts +0 -1
  90. package/dist/src/utils/common/logger.js +0 -8
  91. package/dist/src/utils/common/logger.js.map +0 -1
  92. package/dist/src/utils/common/nx.d.ts +0 -22
  93. package/dist/src/utils/common/nx.js +0 -174
  94. package/dist/src/utils/common/nx.js.map +0 -1
  95. package/dist/src/utils/common/s3.d.ts +0 -1
  96. package/dist/src/utils/common/s3.js +0 -18
  97. package/dist/src/utils/common/s3.js.map +0 -1
  98. package/dist/src/utils/common/tsh.js.map +0 -1
  99. package/dist/src/utils/datadog.d.ts +0 -1
  100. package/dist/src/utils/datadog.js +0 -33
  101. package/dist/src/utils/datadog.js.map +0 -1
  102. package/dist/src/utils/helm.mock.d.ts +0 -85
  103. package/dist/src/utils/helm.mock.js +0 -100
  104. package/dist/src/utils/helm.mock.js.map +0 -1
  105. package/dist/src/utils/lambda/aws-lambda.d.ts +0 -47
  106. package/dist/src/utils/lambda/aws-lambda.js +0 -231
  107. package/dist/src/utils/lambda/aws-lambda.js.map +0 -1
  108. package/dist/src/utils/lambda/lambda.d.ts +0 -7
  109. package/dist/src/utils/lambda/lambda.js +0 -20
  110. package/dist/src/utils/lambda/lambda.js.map +0 -1
  111. package/dist/src/utils/lambda/oci.d.ts +0 -8
  112. package/dist/src/utils/lambda/oci.js +0 -22
  113. package/dist/src/utils/lambda/oci.js.map +0 -1
  114. package/dist/src/utils/lambda/publish.d.ts +0 -14
  115. package/dist/src/utils/lambda/publish.js +0 -44
  116. package/dist/src/utils/lambda/publish.js.map +0 -1
  117. package/dist/src/utils/lambda/spacelift.d.ts +0 -3
  118. package/dist/src/utils/lambda/spacelift.js +0 -55
  119. package/dist/src/utils/lambda/spacelift.js.map +0 -1
  120. package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.d.ts +0 -19
  121. package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js +0 -22
  122. package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js.map +0 -1
  123. package/dist/src/utils/spacelift/lib/__generated__/gql.d.ts +0 -15
  124. package/dist/src/utils/spacelift/lib/__generated__/gql.js +0 -8
  125. package/dist/src/utils/spacelift/lib/__generated__/gql.js.map +0 -1
  126. package/dist/src/utils/spacelift/lib/__generated__/graphql.d.ts +0 -9426
  127. package/dist/src/utils/spacelift/lib/__generated__/graphql.js +0 -819
  128. package/dist/src/utils/spacelift/lib/__generated__/graphql.js.map +0 -1
  129. package/dist/src/utils/spacelift/lib/__generated__/index.d.ts +0 -2
  130. package/dist/src/utils/spacelift/lib/__generated__/index.js +0 -6
  131. package/dist/src/utils/spacelift/lib/__generated__/index.js.map +0 -1
  132. package/dist/src/utils/spacelift/lib/graphql.service.d.ts +0 -18
  133. package/dist/src/utils/spacelift/lib/graphql.service.js +0 -186
  134. package/dist/src/utils/spacelift/lib/graphql.service.js.map +0 -1
  135. package/dist/src/utils/spacelift/lib/query/spacelift.queries.d.ts +0 -34
  136. package/dist/src/utils/spacelift/lib/query/spacelift.queries.js +0 -48
  137. package/dist/src/utils/spacelift/lib/query/spacelift.queries.js.map +0 -1
  138. package/dist/src/utils/spacelift/lib/spacelift.error.d.ts +0 -43
  139. package/dist/src/utils/spacelift/lib/spacelift.error.js +0 -63
  140. package/dist/src/utils/spacelift/lib/spacelift.error.js.map +0 -1
  141. package/dist/src/utils/spacelift/lib/spacelift.service.d.ts +0 -16
  142. package/dist/src/utils/spacelift/lib/spacelift.service.js +0 -58
  143. package/dist/src/utils/spacelift/lib/spacelift.service.js.map +0 -1
  144. package/dist/src/utils/spacelift/lib/utils.d.ts +0 -4
  145. package/dist/src/utils/spacelift/lib/utils.js +0 -32
  146. package/dist/src/utils/spacelift/lib/utils.js.map +0 -1
  147. package/generators.json +0 -9
  148. /package/dist/src/utils/{common/import-esm.d.ts → import-esm.d.ts} +0 -0
  149. /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,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gql = gql;
4
- const documents = [];
5
- function gql(source) {
6
- return documents[source] ?? {};
7
- }
8
- //# sourceMappingURL=gql.js.map
@@ -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"}